Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
weixin_43355755
engine
提交
daf44674
E
engine
项目概览
weixin_43355755
/
engine
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
engine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
daf44674
编写于
7月 12, 2021
作者:
M
Mouad Debbar
提交者:
GitHub
7月 12, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[web] Librarify all remaining files (#27296)
上级
f0336978
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
151 addition
and
72 deletion
+151
-72
lib/web_ui/lib/src/engine.dart
lib/web_ui/lib/src/engine.dart
+32
-35
lib/web_ui/lib/src/engine/clipboard.dart
lib/web_ui/lib/src/engine/clipboard.dart
+9
-7
lib/web_ui/lib/src/engine/color_filter.dart
lib/web_ui/lib/src/engine/color_filter.dart
+3
-1
lib/web_ui/lib/src/engine/dom_renderer.dart
lib/web_ui/lib/src/engine/dom_renderer.dart
+25
-6
lib/web_ui/lib/src/engine/font_change_util.dart
lib/web_ui/lib/src/engine/font_change_util.dart
+6
-1
lib/web_ui/lib/src/engine/platform_dispatcher.dart
lib/web_ui/lib/src/engine/platform_dispatcher.dart
+28
-3
lib/web_ui/lib/src/engine/platform_views.dart
lib/web_ui/lib/src/engine/platform_views.dart
+0
-2
lib/web_ui/lib/src/engine/platform_views/content_manager.dart
...web_ui/lib/src/engine/platform_views/content_manager.dart
+7
-2
lib/web_ui/lib/src/engine/platform_views/message_handler.dart
...web_ui/lib/src/engine/platform_views/message_handler.dart
+5
-1
lib/web_ui/lib/src/engine/platform_views/slots.dart
lib/web_ui/lib/src/engine/platform_views/slots.dart
+1
-1
lib/web_ui/lib/src/engine/util.dart
lib/web_ui/lib/src/engine/util.dart
+5
-0
lib/web_ui/lib/src/engine/window.dart
lib/web_ui/lib/src/engine/window.dart
+30
-13
未找到文件。
lib/web_ui/lib/src/engine.dart
浏览文件 @
daf44674
...
...
@@ -19,16 +19,20 @@ import 'dart:async';
// ignore: unused_import
import
'dart:collection'
show
ListBase
,
IterableBase
,
DoubleLinkedQueue
,
DoubleLinkedQueueEntry
;
// ignore: unused_import
import
'dart:convert'
hide
Codec
;
import
'dart:developer'
as
developer
;
import
'dart:html'
as
html
;
// ignore: unused_import
import
'dart:js'
as
js
;
// ignore: unused_import
import
'dart:js_util'
as
js_util
;
// ignore: unused_import
import
'dart:math'
as
math
;
import
'dart:typed_data'
;
import
'package:js/js.dart'
;
// ignore: unused_import
import
'package:meta/meta.dart'
;
import
'../ui.dart'
as
ui
;
...
...
@@ -37,16 +41,23 @@ export 'engine/alarm_clock.dart';
export
'engine/assets.dart'
;
import
'engine/browser_detection.dart'
;
export
'engine/browser_detection.dart'
;
export
'engine/canvas_pool.dart'
;
export
'engine/clipboard.dart'
;
export
'engine/color_filter.dart'
;
import
'engine/dom_renderer.dart'
;
export
'engine/dom_renderer.dart'
;
export
'engine/engine_canvas.dart'
;
export
'engine/font_change_util.dart'
;
export
'engine/frame_reference.dart'
;
import
'engine/host_node.dart'
;
export
'engine/host_node.dart'
;
export
'engine/html_image_codec.dart'
;
...
...
@@ -105,7 +116,6 @@ export 'engine/html/recording_canvas.dart';
export
'engine/html/render_vertices.dart'
;
import
'engine/html/scene.dart'
;
export
'engine/html/scene.dart'
;
export
'engine/html/scene_builder.dart'
;
...
...
@@ -130,7 +140,6 @@ export 'engine/html/surface_stats.dart';
export
'engine/html/transform.dart'
;
import
'engine/keyboard_binding.dart'
;
export
'engine/keyboard_binding.dart'
;
import
'engine/keyboard.dart'
;
...
...
@@ -141,7 +150,6 @@ export 'engine/key_map.dart';
import
'engine/mouse_cursor.dart'
;
export
'engine/mouse_cursor.dart'
;
import
'engine/navigation/history.dart'
;
export
'engine/navigation/history.dart'
;
import
'engine/navigation/js_url_strategy.dart'
;
...
...
@@ -154,10 +162,20 @@ export 'engine/onscreen_logging.dart';
export
'engine/picture.dart'
;
import
'engine/plugins.dart'
;
import
'engine/platform_dispatcher.dart'
;
export
'engine/platform_dispatcher.dart'
;
export
'engine/platform_views.dart'
;
import
'engine/platform_views/content_manager.dart'
;
export
'engine/platform_views/content_manager.dart'
;
export
'engine/platform_views/message_handler.dart'
;
export
'engine/platform_views/slots.dart'
;
export
'engine/plugins.dart'
;
import
'engine/pointer_binding.dart'
;
export
'engine/pointer_binding.dart'
;
export
'engine/pointer_converter.dart'
;
...
...
@@ -167,7 +185,6 @@ export 'engine/profiler.dart';
export
'engine/rrect_renderer.dart'
;
import
'engine/semantics/accessibility.dart'
;
export
'engine/semantics/accessibility.dart'
;
export
'engine/semantics/checkable.dart'
;
...
...
@@ -182,7 +199,6 @@ export 'engine/semantics/live_region.dart';
export
'engine/semantics/scrollable.dart'
;
import
'engine/semantics/semantics.dart'
;
export
'engine/semantics/semantics.dart'
;
export
'engine/semantics/semantics_helper.dart'
;
...
...
@@ -193,17 +209,14 @@ export 'engine/semantics/text_field.dart';
export
'engine/services/buffers.dart'
;
import
'engine/services/message_codec.dart'
;
export
'engine/services/message_codec.dart'
;
import
'engine/services/message_codecs.dart'
;
export
'engine/services/message_codecs.dart'
;
export
'engine/services/serialization.dart'
;
export
'engine/shadow.dart'
;
import
'engine/test_embedding.dart'
;
export
'engine/test_embedding.dart'
;
export
'engine/text/font_collection.dart'
;
...
...
@@ -214,7 +227,6 @@ export 'engine/text/line_break_properties.dart';
export
'engine/text/line_breaker.dart'
;
import
'engine/text/measurement.dart'
;
export
'engine/text/measurement.dart'
;
export
'engine/text/paint_service.dart'
;
...
...
@@ -239,10 +251,8 @@ export 'engine/text_editing/input_type.dart';
export
'engine/text_editing/text_capitalization.dart'
;
import
'engine/text_editing/text_editing.dart'
;
export
'engine/text_editing/text_editing.dart'
;
import
'engine/util.dart'
;
export
'engine/util.dart'
;
export
'engine/validators.dart'
;
...
...
@@ -252,17 +262,17 @@ export 'engine/vector_math.dart';
import
'engine/web_experiments.dart'
;
export
'engine/web_experiments.dart'
;
import
'engine/window.dart'
;
export
'engine/window.dart'
;
export
'engine/canvaskit/canvas.dart'
;
import
'engine/canvaskit/canvaskit_api.dart'
;
export
'engine/canvaskit/canvaskit_api.dart'
;
export
'engine/canvaskit/canvaskit_canvas.dart'
;
import
'engine/canvaskit/color_filter.dart'
;
export
'engine/canvaskit/color_filter.dart'
;
import
'engine/canvaskit/embedded_views.dart'
;
export
'engine/canvaskit/embedded_views.dart'
;
export
'engine/canvaskit/fonts.dart'
;
...
...
@@ -273,14 +283,12 @@ export 'engine/canvaskit/image.dart';
export
'engine/canvaskit/image_filter.dart'
;
import
'engine/canvaskit/initialization.dart'
;
export
'engine/canvaskit/initialization.dart'
;
export
'engine/canvaskit/interval_tree.dart'
;
export
'engine/canvaskit/layer.dart'
;
import
'engine/canvaskit/layer_scene_builder.dart'
;
export
'engine/canvaskit/layer_scene_builder.dart'
;
export
'engine/canvaskit/layer_tree.dart'
;
...
...
@@ -299,7 +307,6 @@ export 'engine/canvaskit/picture.dart';
export
'engine/canvaskit/picture_recorder.dart'
;
import
'engine/canvaskit/rasterizer.dart'
;
export
'engine/canvaskit/rasterizer.dart'
;
export
'engine/canvaskit/raster_cache.dart'
;
...
...
@@ -318,16 +325,6 @@ export 'engine/canvaskit/util.dart';
export
'engine/canvaskit/vertices.dart'
;
part
'engine/clipboard.dart'
;
part
'engine/color_filter.dart'
;
part
'engine/dom_renderer.dart'
;
part
'engine/font_change_util.dart'
;
part
'engine/platform_dispatcher.dart'
;
part
'engine/platform_views.dart'
;
part
'engine/platform_views/content_manager.dart'
;
part
'engine/platform_views/message_handler.dart'
;
part
'engine/platform_views/slots.dart'
;
part
'engine/window.dart'
;
// The mode the app is running in.
// Keep these in sync with the same constants on the framework-side under foundation/constants.dart.
...
...
@@ -428,12 +425,12 @@ void initializeEngine() {
// part of the rasterization process, particularly in the HTML
// renderer, takes place in the `SceneBuilder.build()`.
frameTimingsOnBuildStart
();
if
(
EnginePlatformDispatcher
.
instance
.
_
onBeginFrame
!=
null
)
{
if
(
EnginePlatformDispatcher
.
instance
.
onBeginFrame
!=
null
)
{
EnginePlatformDispatcher
.
instance
.
invokeOnBeginFrame
(
Duration
(
microseconds:
highResTimeMicroseconds
));
}
if
(
EnginePlatformDispatcher
.
instance
.
_
onDrawFrame
!=
null
)
{
if
(
EnginePlatformDispatcher
.
instance
.
onDrawFrame
!=
null
)
{
// TODO(yjbanov): technically Flutter flushes microtasks between
// onBeginFrame and onDrawFrame. We don't, which hasn't
// been an issue yet, but eventually we'll have to
...
...
@@ -449,12 +446,12 @@ void initializeEngine() {
}
void
_addUrlStrategyListener
(
)
{
_
jsSetUrlStrategy
=
allowInterop
((
JsUrlStrategy
?
jsStrategy
)
{
jsSetUrlStrategy
=
allowInterop
((
JsUrlStrategy
?
jsStrategy
)
{
customUrlStrategy
=
jsStrategy
==
null
?
null
:
CustomUrlStrategy
.
fromJs
(
jsStrategy
);
});
registerHotRestartListener
(()
{
_
jsSetUrlStrategy
=
null
;
jsSetUrlStrategy
=
null
;
});
}
...
...
lib/web_ui/lib/src/engine/clipboard.dart
浏览文件 @
daf44674
...
...
@@ -2,7 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
part of
engine
;
import
'dart:html'
as
html
;
import
'package:ui/ui.dart'
as
ui
;
import
'browser_detection.dart'
;
import
'services.dart'
;
import
'util.dart'
;
/// Handles clipboard related platform messages.
class
ClipboardMessageHandler
{
...
...
@@ -78,17 +84,13 @@ class ClipboardMessageHandler {
}
}
bool
_unsafeIsNull
(
dynamic
object
)
{
return
object
==
null
;
}
/// Provides functionality for writing text to clipboard.
///
/// A concrete implementation is picked at runtime based on the available
/// APIs and the browser.
abstract
class
CopyToClipboardStrategy
{
factory
CopyToClipboardStrategy
()
{
return
!
_
unsafeIsNull
(
html
.
window
.
navigator
.
clipboard
)
return
!
unsafeIsNull
(
html
.
window
.
navigator
.
clipboard
)
?
ClipboardAPICopyStrategy
()
:
ExecCommandCopyStrategy
();
}
...
...
@@ -108,7 +110,7 @@ abstract class CopyToClipboardStrategy {
abstract
class
PasteFromClipboardStrategy
{
factory
PasteFromClipboardStrategy
()
{
return
(
browserEngine
==
BrowserEngine
.
firefox
||
_
unsafeIsNull
(
html
.
window
.
navigator
.
clipboard
))
unsafeIsNull
(
html
.
window
.
navigator
.
clipboard
))
?
ExecCommandPasteStrategy
()
:
ClipboardAPIPasteStrategy
();
}
...
...
lib/web_ui/lib/src/engine/color_filter.dart
浏览文件 @
daf44674
...
...
@@ -2,7 +2,9 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
part of
engine
;
import
'package:ui/ui.dart'
as
ui
;
import
'canvaskit/color_filter.dart'
;
/// A description of a color filter to apply when drawing a shape or compositing
/// a layer with a particular [Paint]. A color filter is a function that takes
...
...
lib/web_ui/lib/src/engine/dom_renderer.dart
浏览文件 @
daf44674
...
...
@@ -2,7 +2,26 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
part of
engine
;
import
'dart:async'
;
import
'dart:html'
as
html
;
import
'dart:js'
as
js
;
import
'dart:js_util'
as
js_util
;
import
'package:ui/src/engine.dart'
show
buildMode
,
registerHotRestartListener
;
import
'package:ui/ui.dart'
as
ui
;
import
'browser_detection.dart'
;
import
'canvaskit/initialization.dart'
;
import
'canvaskit/canvaskit_api.dart'
;
import
'host_node.dart'
;
import
'keyboard_binding.dart'
;
import
'platform_dispatcher.dart'
;
import
'pointer_binding.dart'
;
import
'semantics.dart'
;
import
'text/measurement.dart'
;
import
'text_editing/text_editing.dart'
;
import
'util.dart'
;
import
'window.dart'
;
class
DomRenderer
{
DomRenderer
()
{
...
...
@@ -514,7 +533,7 @@ class DomRenderer {
}
_localeSubscription
=
languageChangeEvent
.
forTarget
(
html
.
window
).
listen
(
_languageDidChange
);
EnginePlatformDispatcher
.
instance
.
_
updateLocales
();
EnginePlatformDispatcher
.
instance
.
updateLocales
();
}
// Creates a [HostNode] into a `root` [html.Element].
...
...
@@ -550,7 +569,7 @@ class DomRenderer {
window
.
computeOnScreenKeyboardInsets
(
true
);
EnginePlatformDispatcher
.
instance
.
invokeOnMetricsChanged
();
}
else
{
window
.
_
computePhysicalSize
();
window
.
computePhysicalSize
();
// When physical size changes this value has to be recalculated.
window
.
computeOnScreenKeyboardInsets
(
false
);
EnginePlatformDispatcher
.
instance
.
invokeOnMetricsChanged
();
...
...
@@ -559,7 +578,7 @@ class DomRenderer {
/// Called immediately after browser window language change.
void
_languageDidChange
(
html
.
Event
event
)
{
EnginePlatformDispatcher
.
instance
.
_
updateLocales
();
EnginePlatformDispatcher
.
instance
.
updateLocales
();
if
(
ui
.
window
.
onLocaleChanged
!=
null
)
{
ui
.
window
.
onLocaleChanged
!();
}
...
...
@@ -626,9 +645,9 @@ class DomRenderer {
/// See w3c screen api: https://www.w3.org/TR/screen-orientation/
Future
<
bool
>
setPreferredOrientation
(
List
<
dynamic
>
orientations
)
{
final
html
.
Screen
screen
=
html
.
window
.
screen
!;
if
(!
_
unsafeIsNull
(
screen
))
{
if
(!
unsafeIsNull
(
screen
))
{
final
html
.
ScreenOrientation
?
screenOrientation
=
screen
.
orientation
;
if
(!
_
unsafeIsNull
(
screenOrientation
))
{
if
(!
unsafeIsNull
(
screenOrientation
))
{
if
(
orientations
.
isEmpty
)
{
screenOrientation
!.
unlock
();
return
Future
.
value
(
true
);
...
...
lib/web_ui/lib/src/engine/font_change_util.dart
浏览文件 @
daf44674
...
...
@@ -2,7 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
part of
engine
;
import
'dart:async'
;
import
'dart:html'
as
html
;
import
'dart:typed_data'
;
import
'platform_dispatcher.dart'
;
import
'services.dart'
;
final
ByteData
?
_fontChangeMessage
=
JSONMessageCodec
().
encodeMessage
(<
String
,
dynamic
>{
'type'
:
'fontsChange'
});
...
...
lib/web_ui/lib/src/engine/platform_dispatcher.dart
浏览文件 @
daf44674
...
...
@@ -2,7 +2,30 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
part of
engine
;
import
'dart:async'
;
import
'dart:html'
as
html
;
import
'dart:typed_data'
;
import
'dart:convert'
;
import
'package:meta/meta.dart'
;
import
'package:ui/src/engine.dart'
show
platformViewManager
,
registerHotRestartListener
;
import
'package:ui/ui.dart'
as
ui
;
import
'canvaskit/initialization.dart'
;
import
'canvaskit/layer_scene_builder.dart'
;
import
'canvaskit/rasterizer.dart'
;
import
'clipboard.dart'
;
import
'dom_renderer.dart'
;
import
'html/scene.dart'
;
import
'profiler.dart'
;
import
'mouse_cursor.dart'
;
import
'platform_views/message_handler.dart'
;
import
'plugins.dart'
;
import
'semantics.dart'
;
import
'services.dart'
;
import
'text_editing/text_editing.dart'
;
import
'util.dart'
;
import
'window.dart'
;
/// Requests that the browser schedule a frame.
///
...
...
@@ -54,12 +77,14 @@ class EnginePlatformDispatcher extends ui.PlatformDispatcher {
/// The current list of windows,
Iterable
<
ui
.
FlutterView
>
get
views
=>
_windows
.
values
;
Map
<
Object
,
ui
.
FlutterWindow
>
get
windows
=>
_windows
;
Map
<
Object
,
ui
.
FlutterWindow
>
_windows
=
<
Object
,
ui
.
FlutterWindow
>{};
/// A map of opaque platform window identifiers to window configurations.
///
/// This should be considered a protected member, only to be used by
/// [PlatformDispatcher] subclasses.
Map
<
Object
,
ui
.
ViewConfiguration
>
get
windowConfigurations
=>
_windowConfigurations
;
Map
<
Object
,
ui
.
ViewConfiguration
>
_windowConfigurations
=
<
Object
,
ui
.
ViewConfiguration
>{};
...
...
@@ -326,7 +351,7 @@ class EnginePlatformDispatcher extends ui.PlatformDispatcher {
return
;
}
if
(
_
debugPrintPlatformMessages
)
{
if
(
debugPrintPlatformMessages
)
{
print
(
'Sent platform message on channel: "
$name
"'
);
}
...
...
@@ -684,7 +709,7 @@ class EnginePlatformDispatcher extends ui.PlatformDispatcher {
}
// Called by DomRenderer when browser languages change.
void
_
updateLocales
()
{
void
updateLocales
()
{
_configuration
=
_configuration
.
copyWith
(
locales:
parseBrowserLanguages
());
}
...
...
lib/web_ui/lib/src/engine/platform_views.dart
浏览文件 @
daf44674
...
...
@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
part of
engine
;
// TODO(yjbanov): The code in this file was temporarily moved to lib/web_ui/lib/ui.dart
// during the NNBD migration so that `dart:ui` does not have to export
// `dart:_engine`. NNBD does not allow exported non-migrated libraries
...
...
lib/web_ui/lib/src/engine/platform_views/content_manager.dart
浏览文件 @
daf44674
...
...
@@ -2,7 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
part of
engine
;
import
'dart:html'
as
html
;
import
'../browser_detection.dart'
;
import
'../dom_renderer.dart'
;
import
'../util.dart'
;
import
'slots.dart'
;
/// A function which takes a unique `id` and some `params` and creates an HTML element.
///
...
...
@@ -149,7 +154,7 @@ class PlatformViewManager {
final
html
.
Element
slot
=
html
.
document
.
createElement
(
'slot'
)
..
style
.
display
=
'none'
..
setAttribute
(
'name'
,
tombstoneName
);
domRenderer
.
_
glassPaneShadow
!.
append
(
slot
);
domRenderer
.
glassPaneShadow
!.
append
(
slot
);
// Link the element to the new slot
element
.
setAttribute
(
'slot'
,
tombstoneName
);
// Delete both the element, and the new slot
...
...
lib/web_ui/lib/src/engine/platform_views/message_handler.dart
浏览文件 @
daf44674
...
...
@@ -2,7 +2,11 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
part of
engine
;
import
'dart:html'
as
html
;
import
'dart:typed_data'
;
import
'../services.dart'
;
import
'content_manager.dart'
;
/// The signature for a callback for a Platform Message. From the `ui` package.
/// Copied here so there's no circular dependencies.
...
...
lib/web_ui/lib/src/engine/platform_views/slots.dart
浏览文件 @
daf44674
...
...
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
part of
engine
;
import
'dart:html'
as
html
;
/// Returns the name of a slot from its `viewId`.
///
...
...
lib/web_ui/lib/src/engine/util.dart
浏览文件 @
daf44674
...
...
@@ -555,3 +555,8 @@ bool listEquals<T>(List<T>? a, List<T>? b) {
String
blurSigmasToCssString
(
double
sigmaX
,
double
sigmaY
)
{
return
'blur(
${(sigmaX + sigmaY) * 0.5}
px)'
;
}
/// Checks if the dynamic [object] is equal to null.
bool
unsafeIsNull
(
dynamic
object
)
{
return
object
==
null
;
}
lib/web_ui/lib/src/engine/window.dart
浏览文件 @
daf44674
...
...
@@ -2,12 +2,30 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
part of
engine
;
@JS
()
library
window
;
import
'dart:async'
;
import
'dart:html'
as
html
;
import
'dart:typed_data'
;
import
'package:js/js.dart'
;
import
'package:meta/meta.dart'
;
import
'package:ui/src/engine.dart'
show
registerHotRestartListener
;
import
'package:ui/ui.dart'
as
ui
;
import
'browser_detection.dart'
;
import
'navigation/history.dart'
;
import
'navigation/js_url_strategy.dart'
;
import
'navigation/url_strategy.dart'
;
import
'platform_dispatcher.dart'
;
import
'services.dart'
;
import
'test_embedding.dart'
;
typedef
_HandleMessageCallBack
=
Future
<
bool
>
Function
();
/// When set to true, all platform messages will be printed to the console.
const
bool
/*!*/
_
debugPrintPlatformMessages
=
false
;
const
bool
debugPrintPlatformMessages
=
false
;
/// Whether [_customUrlStrategy] has been set or not.
///
...
...
@@ -28,8 +46,8 @@ class EngineFlutterWindow extends ui.SingletonFlutterWindow {
EngineFlutterWindow
(
this
.
_windowId
,
this
.
platformDispatcher
)
{
final
EnginePlatformDispatcher
engineDispatcher
=
platformDispatcher
as
EnginePlatformDispatcher
;
engineDispatcher
.
_
windows
[
_windowId
]
=
this
;
engineDispatcher
.
_
windowConfigurations
[
_windowId
]
=
ui
.
ViewConfiguration
();
engineDispatcher
.
windows
[
_windowId
]
=
this
;
engineDispatcher
.
windowConfigurations
[
_windowId
]
=
ui
.
ViewConfiguration
();
if
(
_isUrlStrategySet
)
{
_browserHistory
=
MultiEntriesBrowserHistory
(
urlStrategy:
_customUrlStrategy
);
...
...
@@ -44,7 +62,6 @@ class EngineFlutterWindow extends ui.SingletonFlutterWindow {
/// Handles the browser history integration to allow users to use the back
/// button, etc.
@visibleForTesting
BrowserHistory
get
browserHistory
{
return
_browserHistory
??=
MultiEntriesBrowserHistory
(
urlStrategy:
_urlStrategyForInitialization
);
...
...
@@ -164,15 +181,15 @@ class EngineFlutterWindow extends ui.SingletonFlutterWindow {
ui
.
ViewConfiguration
get
viewConfiguration
{
final
EnginePlatformDispatcher
engineDispatcher
=
platformDispatcher
as
EnginePlatformDispatcher
;
assert
(
engineDispatcher
.
_
windowConfigurations
.
containsKey
(
_windowId
));
return
engineDispatcher
.
_
windowConfigurations
[
_windowId
]
??
assert
(
engineDispatcher
.
windowConfigurations
.
containsKey
(
_windowId
));
return
engineDispatcher
.
windowConfigurations
[
_windowId
]
??
ui
.
ViewConfiguration
();
}
@override
ui
.
Size
get
physicalSize
{
if
(
_physicalSize
==
null
)
{
_
computePhysicalSize
();
computePhysicalSize
();
}
assert
(
_physicalSize
!=
null
);
return
_physicalSize
!;
...
...
@@ -182,7 +199,7 @@ class EngineFlutterWindow extends ui.SingletonFlutterWindow {
///
/// This function is expensive. It triggers browser layout if there are
/// pending DOM writes.
void
_
computePhysicalSize
()
{
void
computePhysicalSize
()
{
bool
override
=
false
;
assert
(()
{
...
...
@@ -231,7 +248,7 @@ class EngineFlutterWindow extends ui.SingletonFlutterWindow {
/// Forces the window to recompute its physical size. Useful for tests.
void
debugForceResize
()
{
_
computePhysicalSize
();
computePhysicalSize
();
}
void
computeOnScreenKeyboardInsets
(
bool
isEditingOnMobile
)
{
...
...
@@ -315,7 +332,7 @@ typedef _JsSetUrlStrategy = void Function(JsUrlStrategy?);
//
// TODO: Add integration test https://github.com/flutter/flutter/issues/66852
@JS
(
'_flutter_web_set_location_strategy'
)
external
set
_
jsSetUrlStrategy
(
_JsSetUrlStrategy
?
newJsSetUrlStrategy
);
external
set
jsSetUrlStrategy
(
_JsSetUrlStrategy
?
newJsSetUrlStrategy
);
UrlStrategy
?
_createDefaultUrlStrategy
()
{
return
ui
.
debugEmulateFlutterTesterEnvironment
...
...
@@ -356,8 +373,8 @@ class EngineFlutterWindowView extends ui.FlutterWindow {
ui
.
ViewConfiguration
get
viewConfiguration
{
final
EnginePlatformDispatcher
engineDispatcher
=
platformDispatcher
as
EnginePlatformDispatcher
;
assert
(
engineDispatcher
.
_
windowConfigurations
.
containsKey
(
_viewId
));
return
engineDispatcher
.
_
windowConfigurations
[
_viewId
]
??
assert
(
engineDispatcher
.
windowConfigurations
.
containsKey
(
_viewId
));
return
engineDispatcher
.
windowConfigurations
[
_viewId
]
??
ui
.
ViewConfiguration
();
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录