From 468343ae185512f73697c5770aa1d1573ccc2f92 Mon Sep 17 00:00:00 2001 From: zjt123 Date: Thu, 20 Jul 2023 00:50:45 +0800 Subject: [PATCH 1/3] feat:support window pageXOffset and pageYOffset --- bridge/core/binding_call_methods.json5 | 2 ++ bridge/core/frame/window.d.ts | 2 ++ webf/lib/src/dom/window.dart | 2 ++ 3 files changed, 6 insertions(+) diff --git a/bridge/core/binding_call_methods.json5 b/bridge/core/binding_call_methods.json5 index bdcc1dd072..52bfa754eb 100644 --- a/bridge/core/binding_call_methods.json5 +++ b/bridge/core/binding_call_methods.json5 @@ -176,5 +176,7 @@ "closest", "elementFromPoint", "dir", + "pageXOffset", + "pageYOffset" ] } diff --git a/bridge/core/frame/window.d.ts b/bridge/core/frame/window.d.ts index a21b527cbe..c0ceca3c3c 100644 --- a/bridge/core/frame/window.d.ts +++ b/bridge/core/frame/window.d.ts @@ -34,6 +34,8 @@ interface Window extends EventTarget, WindowEventHandlers, GlobalEventHandlers { readonly scrollX: DartImpl; readonly scrollY: DartImpl; + readonly pageXOffset: DartImpl; + readonly pageYOffset: DartImpl; readonly devicePixelRatio: DartImpl; readonly colorScheme: DartImpl; readonly innerWidth: DartImpl; diff --git a/webf/lib/src/dom/window.dart b/webf/lib/src/dom/window.dart index c4008c1b93..3e4644eeda 100644 --- a/webf/lib/src/dom/window.dart +++ b/webf/lib/src/dom/window.dart @@ -40,6 +40,8 @@ class Window extends EventTarget { properties['innerHeight'] = BindingObjectProperty(getter: () => innerHeight); properties['scrollX'] = BindingObjectProperty(getter: () => scrollX); properties['scrollY'] = BindingObjectProperty(getter: () => scrollY); + properties['pageXOffset'] = BindingObjectProperty(getter: () => scrollX); + properties['pageYOffset'] = BindingObjectProperty(getter: () => scrollY); properties['screen'] = BindingObjectProperty(getter: () => screen); properties['colorScheme'] = BindingObjectProperty(getter: () => colorScheme); properties['devicePixelRatio'] = BindingObjectProperty(getter: () => devicePixelRatio); From e0350eea3df686a685c94ea73259a5f02de50049 Mon Sep 17 00:00:00 2001 From: zjt123 Date: Thu, 20 Jul 2023 00:51:25 +0800 Subject: [PATCH 2/3] fix:document hidden check --- webf/lib/src/dom/document.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webf/lib/src/dom/document.dart b/webf/lib/src/dom/document.dart index 3dbf1db096..d16772e378 100644 --- a/webf/lib/src/dom/document.dart +++ b/webf/lib/src/dom/document.dart @@ -220,7 +220,7 @@ class Document extends ContainerNode { } get hidden { - return _visibilityState == VisibilityState.visible; + return _visibilityState == VisibilityState.hidden; } void visibilityChange(VisibilityState state) { From c5cad4f4ac96bcbd171897432e822b2ce6af057d Mon Sep 17 00:00:00 2001 From: zjt123 Date: Thu, 20 Jul 2023 00:53:31 +0800 Subject: [PATCH 3/3] fix:change document.readyState is interactive before dispatch DOMContentLoaded Event --- webf/lib/src/launcher/controller.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webf/lib/src/launcher/controller.dart b/webf/lib/src/launcher/controller.dart index a42a249d7b..014e3dc694 100644 --- a/webf/lib/src/launcher/controller.dart +++ b/webf/lib/src/launcher/controller.dart @@ -1133,8 +1133,8 @@ class WebFController { // Are all script element complete? if (_view.document.isDelayingDOMContentLoadedEvent) return; - _dispatchDOMContentLoadedEvent(); _view.document.readyState = DocumentReadyState.interactive; + _dispatchDOMContentLoadedEvent(); // Still waiting for images/scripts? if (_view.document.hasPendingRequest) return;