diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt index f1ffe7614640b..af6ec65b180ff 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt @@ -585,7 +585,7 @@ PASS HTMLBodyElement interface: attribute onbeforeunload PASS HTMLBodyElement interface: attribute onhashchange PASS HTMLBodyElement interface: attribute onlanguagechange PASS HTMLBodyElement interface: attribute onmessage -FAIL HTMLBodyElement interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false +PASS HTMLBodyElement interface: attribute onmessageerror PASS HTMLBodyElement interface: attribute onoffline PASS HTMLBodyElement interface: attribute ononline PASS HTMLBodyElement interface: attribute onpagehide @@ -609,7 +609,7 @@ PASS HTMLBodyElement interface: document.createElement("body") must inherit prop PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onhashchange" with the proper type PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onlanguagechange" with the proper type PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onmessage" with the proper type -FAIL HTMLBodyElement interface: document.createElement("body") must inherit property "onmessageerror" with the proper type assert_inherits: property "onmessageerror" not found in prototype chain +PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onmessageerror" with the proper type PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onoffline" with the proper type PASS HTMLBodyElement interface: document.createElement("body") must inherit property "ononline" with the proper type PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onpagehide" with the proper type @@ -4526,7 +4526,7 @@ PASS Window interface: attribute onbeforeunload PASS Window interface: attribute onhashchange PASS Window interface: attribute onlanguagechange PASS Window interface: attribute onmessage -FAIL Window interface: attribute onmessageerror assert_own_property: The global object must have a property "onmessageerror" expected property "onmessageerror" missing +PASS Window interface: attribute onmessageerror PASS Window interface: attribute onoffline PASS Window interface: attribute ononline PASS Window interface: attribute onpagehide @@ -4681,7 +4681,7 @@ PASS Window interface: window must inherit property "onbeforeunload" with the pr PASS Window interface: window must inherit property "onhashchange" with the proper type PASS Window interface: window must inherit property "onlanguagechange" with the proper type PASS Window interface: window must inherit property "onmessage" with the proper type -FAIL Window interface: window must inherit property "onmessageerror" with the proper type assert_own_property: expected property "onmessageerror" missing +PASS Window interface: window must inherit property "onmessageerror" with the proper type PASS Window interface: window must inherit property "onoffline" with the proper type PASS Window interface: window must inherit property "ononline" with the proper type PASS Window interface: window must inherit property "onpagehide" with the proper type @@ -5055,7 +5055,7 @@ PASS MessagePort interface: operation postMessage(any, optional StructuredSerial PASS MessagePort interface: operation start() PASS MessagePort interface: operation close() PASS MessagePort interface: attribute onmessage -FAIL MessagePort interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false +PASS MessagePort interface: attribute onmessageerror PASS BroadcastChannel interface: existence and properties of interface object PASS BroadcastChannel interface object length PASS BroadcastChannel interface object name @@ -5080,7 +5080,7 @@ PASS Worker interface: operation terminate() PASS Worker interface: operation postMessage(any, sequence) PASS Worker interface: operation postMessage(any, optional StructuredSerializeOptions) PASS Worker interface: attribute onmessage -FAIL Worker interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false +PASS Worker interface: attribute onmessageerror PASS Worker interface: attribute onerror PASS SharedWorker interface: existence and properties of interface object PASS SharedWorker interface object length @@ -5205,7 +5205,7 @@ PASS HTMLFrameSetElement interface: attribute onbeforeunload PASS HTMLFrameSetElement interface: attribute onhashchange PASS HTMLFrameSetElement interface: attribute onlanguagechange PASS HTMLFrameSetElement interface: attribute onmessage -FAIL HTMLFrameSetElement interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false +PASS HTMLFrameSetElement interface: attribute onmessageerror PASS HTMLFrameSetElement interface: attribute onoffline PASS HTMLFrameSetElement interface: attribute ononline PASS HTMLFrameSetElement interface: attribute onpagehide @@ -5225,7 +5225,7 @@ PASS HTMLFrameSetElement interface: document.createElement("frameset") must inhe PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onhashchange" with the proper type PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onlanguagechange" with the proper type PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onmessage" with the proper type -FAIL HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onmessageerror" with the proper type assert_inherits: property "onmessageerror" not found in prototype chain +PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onmessageerror" with the proper type PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onoffline" with the proper type PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "ononline" with the proper type PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onpagehide" with the proper type diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt index a4709873e3122..b2d53f8982ea2 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt @@ -584,7 +584,7 @@ PASS MessagePort interface: operation postMessage(any, optional StructuredSerial PASS MessagePort interface: operation start() PASS MessagePort interface: operation close() PASS MessagePort interface: attribute onmessage -FAIL MessagePort interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false +PASS MessagePort interface: attribute onmessageerror PASS BroadcastChannel interface: existence and properties of interface object PASS BroadcastChannel interface object length PASS BroadcastChannel interface object name @@ -643,7 +643,7 @@ PASS DedicatedWorkerGlobalScope interface: operation postMessage(any, sequence) PASS Worker interface: operation postMessage(any, optional StructuredSerializeOptions) PASS Worker interface: attribute onmessage -FAIL Worker interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false +PASS Worker interface: attribute onmessageerror PASS Worker interface: attribute onerror PASS SharedWorker interface: existence and properties of interface object PASS WorkerNavigator interface: existence and properties of interface object diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-body-window-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-body-window-expected.txt index b976274cc43d4..f343da9d7eaf5 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-body-window-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-body-window-expected.txt @@ -11,7 +11,7 @@ PASS shadowed beforeunload (document.body) PASS shadowed hashchange (document.body) PASS shadowed languagechange (document.body) PASS shadowed message (document.body) -FAIL shadowed messageerror (document.body) assert_equals: alternative body should reflect expected (function) function "() => 0" but got (undefined) undefined +PASS shadowed messageerror (document.body) PASS shadowed offline (document.body) PASS shadowed online (document.body) PASS shadowed pagehide (document.body) @@ -98,7 +98,7 @@ PASS shadowed beforeunload removal (document.body) PASS shadowed hashchange removal (document.body) PASS shadowed languagechange removal (document.body) PASS shadowed message removal (document.body) -FAIL shadowed messageerror removal (document.body) assert_equals: body should reflect changes to itself expected (object) null but got (undefined) undefined +PASS shadowed messageerror removal (document.body) PASS shadowed offline removal (document.body) PASS shadowed online removal (document.body) PASS shadowed pagehide removal (document.body) @@ -120,7 +120,7 @@ PASS shadowed beforeunload (document.createElement("body")) PASS shadowed hashchange (document.createElement("body")) PASS shadowed languagechange (document.createElement("body")) PASS shadowed message (document.createElement("body")) -FAIL shadowed messageerror (document.createElement("body")) assert_equals: body should reflect expected (function) function "() => 0" but got (undefined) undefined +PASS shadowed messageerror (document.createElement("body")) PASS shadowed offline (document.createElement("body")) PASS shadowed online (document.createElement("body")) PASS shadowed pagehide (document.createElement("body")) @@ -207,7 +207,7 @@ PASS shadowed beforeunload removal (document.createElement("body")) PASS shadowed hashchange removal (document.createElement("body")) PASS shadowed languagechange removal (document.createElement("body")) PASS shadowed message removal (document.createElement("body")) -FAIL shadowed messageerror removal (document.createElement("body")) assert_equals: alternative body should reflect changes to itself expected (object) null but got (undefined) undefined +PASS shadowed messageerror removal (document.createElement("body")) PASS shadowed offline removal (document.createElement("body")) PASS shadowed online removal (document.createElement("body")) PASS shadowed pagehide removal (document.createElement("body")) @@ -229,7 +229,7 @@ PASS shadowed beforeunload (window) PASS shadowed hashchange (window) PASS shadowed languagechange (window) PASS shadowed message (window) -FAIL shadowed messageerror (window) assert_equals: body should reflect expected (function) function "() => 0" but got (undefined) undefined +PASS shadowed messageerror (window) PASS shadowed offline (window) PASS shadowed online (window) PASS shadowed pagehide (window) @@ -316,7 +316,7 @@ PASS shadowed beforeunload removal (window) PASS shadowed hashchange removal (window) PASS shadowed languagechange removal (window) PASS shadowed message removal (window) -FAIL shadowed messageerror removal (window) assert_equals: window should reflect changes to itself expected (object) null but got (undefined) undefined +PASS shadowed messageerror removal (window) PASS shadowed offline removal (window) PASS shadowed online removal (window) PASS shadowed pagehide removal (window) diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-windowless-body-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-windowless-body-expected.txt index f31f836f570ab..9785850004757 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-windowless-body-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-windowless-body-expected.txt @@ -23,8 +23,8 @@ PASS Return null when getting the languagechange event handler of a windowless b PASS Ignore setting of languagechange window event handlers on windowless body PASS Return null when getting the message event handler of a windowless body PASS Ignore setting of message window event handlers on windowless body -FAIL Return null when getting the messageerror event handler of a windowless body assert_equals: expected (object) null but got (undefined) undefined -FAIL Ignore setting of messageerror window event handlers on windowless body assert_equals: expected (object) null but got (function) function "function () { return "Handler attached to windowless element"; }" +PASS Return null when getting the messageerror event handler of a windowless body +PASS Ignore setting of messageerror window event handlers on windowless body PASS Return null when getting the offline event handler of a windowless body PASS Ignore setting of offline window event handlers on windowless body PASS Return null when getting the online event handler of a windowless body @@ -132,8 +132,8 @@ PASS Return null when getting the languagechange event handler of a windowless f PASS Ignore setting of languagechange window event handlers on windowless frameset PASS Return null when getting the message event handler of a windowless frameset PASS Ignore setting of message window event handlers on windowless frameset -FAIL Return null when getting the messageerror event handler of a windowless frameset assert_equals: expected (object) null but got (undefined) undefined -FAIL Ignore setting of messageerror window event handlers on windowless frameset assert_equals: expected (object) null but got (function) function "function () { return "Handler attached to windowless element"; }" +PASS Return null when getting the messageerror event handler of a windowless frameset +PASS Ignore setting of messageerror window event handlers on windowless frameset PASS Return null when getting the offline event handler of a windowless frameset PASS Ignore setting of offline window event handlers on windowless frameset PASS Return null when getting the online event handler of a windowless frameset diff --git a/LayoutTests/imported/w3c/web-platform-tests/wasm/serialization/module/broadcastchannel-success-and-failure-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/wasm/serialization/module/broadcastchannel-success-and-failure-expected.txt index 01fe31a385781..7945a0213a359 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/wasm/serialization/module/broadcastchannel-success-and-failure-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/wasm/serialization/module/broadcastchannel-success-and-failure-expected.txt @@ -1,5 +1,3 @@ -Harness Error (TIMEOUT), message = null - -TIMEOUT WebAssembly.Module cannot cross agent clusters, BroadcastChannel edition Test timed out +PASS WebAssembly.Module cannot cross agent clusters, BroadcastChannel edition diff --git a/LayoutTests/imported/w3c/web-platform-tests/wasm/serialization/module/window-sharedworker-failure-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/wasm/serialization/module/window-sharedworker-failure-expected.txt index 26b536ec87f7d..5b6317e886026 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/wasm/serialization/module/window-sharedworker-failure-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/wasm/serialization/module/window-sharedworker-failure-expected.txt @@ -1,3 +1,3 @@ -FAIL WebAssembly.Modules cannot cross agent clusters, shared worker edition assert_unreached: Reached unreachable code +PASS WebAssembly.Modules cannot cross agent clusters, shared worker edition diff --git a/LayoutTests/imported/w3c/web-platform-tests/webmessaging/messageerror-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/webmessaging/messageerror-expected.txt index e0698475a8042..390f74f25291c 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/webmessaging/messageerror-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/webmessaging/messageerror-expected.txt @@ -1,5 +1,5 @@ -FAIL The default value of onmessageerror is null assert_equals: body expected (object) null but got (undefined) undefined -FAIL The onmessageerror content attribute must be compiled into the onmessageerror property assert_equals: The onmessageerror property must be a function expected "function" but got "undefined" -FAIL The onmessageerror content attribute must execute when an event is dispatched on the window assert_true: Dispatching the event must run the code expected true got false +PASS The default value of onmessageerror is null +PASS The onmessageerror content attribute must be compiled into the onmessageerror property +PASS The onmessageerror content attribute must execute when an event is dispatched on the window diff --git a/LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt b/LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt index 9663f41077f48..1257a8289ed63 100644 --- a/LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt +++ b/LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt @@ -585,7 +585,7 @@ PASS HTMLBodyElement interface: attribute onbeforeunload PASS HTMLBodyElement interface: attribute onhashchange PASS HTMLBodyElement interface: attribute onlanguagechange PASS HTMLBodyElement interface: attribute onmessage -FAIL HTMLBodyElement interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false +PASS HTMLBodyElement interface: attribute onmessageerror PASS HTMLBodyElement interface: attribute onoffline PASS HTMLBodyElement interface: attribute ononline PASS HTMLBodyElement interface: attribute onpagehide @@ -609,7 +609,7 @@ PASS HTMLBodyElement interface: document.createElement("body") must inherit prop PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onhashchange" with the proper type PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onlanguagechange" with the proper type PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onmessage" with the proper type -FAIL HTMLBodyElement interface: document.createElement("body") must inherit property "onmessageerror" with the proper type assert_inherits: property "onmessageerror" not found in prototype chain +PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onmessageerror" with the proper type PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onoffline" with the proper type PASS HTMLBodyElement interface: document.createElement("body") must inherit property "ononline" with the proper type PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onpagehide" with the proper type @@ -4516,7 +4516,7 @@ PASS Window interface: attribute onbeforeunload PASS Window interface: attribute onhashchange PASS Window interface: attribute onlanguagechange PASS Window interface: attribute onmessage -FAIL Window interface: attribute onmessageerror assert_own_property: The global object must have a property "onmessageerror" expected property "onmessageerror" missing +PASS Window interface: attribute onmessageerror PASS Window interface: attribute onoffline PASS Window interface: attribute ononline PASS Window interface: attribute onpagehide @@ -4671,7 +4671,7 @@ PASS Window interface: window must inherit property "onbeforeunload" with the pr PASS Window interface: window must inherit property "onhashchange" with the proper type PASS Window interface: window must inherit property "onlanguagechange" with the proper type PASS Window interface: window must inherit property "onmessage" with the proper type -FAIL Window interface: window must inherit property "onmessageerror" with the proper type assert_own_property: expected property "onmessageerror" missing +PASS Window interface: window must inherit property "onmessageerror" with the proper type PASS Window interface: window must inherit property "onoffline" with the proper type PASS Window interface: window must inherit property "ononline" with the proper type PASS Window interface: window must inherit property "onpagehide" with the proper type @@ -5045,7 +5045,7 @@ PASS MessagePort interface: operation postMessage(any, optional StructuredSerial PASS MessagePort interface: operation start() PASS MessagePort interface: operation close() PASS MessagePort interface: attribute onmessage -FAIL MessagePort interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false +PASS MessagePort interface: attribute onmessageerror PASS BroadcastChannel interface: existence and properties of interface object PASS BroadcastChannel interface object length PASS BroadcastChannel interface object name @@ -5070,7 +5070,7 @@ PASS Worker interface: operation terminate() PASS Worker interface: operation postMessage(any, sequence) PASS Worker interface: operation postMessage(any, optional StructuredSerializeOptions) PASS Worker interface: attribute onmessage -FAIL Worker interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false +PASS Worker interface: attribute onmessageerror PASS Worker interface: attribute onerror PASS SharedWorker interface: existence and properties of interface object PASS SharedWorker interface object length @@ -5195,7 +5195,7 @@ PASS HTMLFrameSetElement interface: attribute onbeforeunload PASS HTMLFrameSetElement interface: attribute onhashchange PASS HTMLFrameSetElement interface: attribute onlanguagechange PASS HTMLFrameSetElement interface: attribute onmessage -FAIL HTMLFrameSetElement interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false +PASS HTMLFrameSetElement interface: attribute onmessageerror PASS HTMLFrameSetElement interface: attribute onoffline PASS HTMLFrameSetElement interface: attribute ononline PASS HTMLFrameSetElement interface: attribute onpagehide @@ -5215,7 +5215,7 @@ PASS HTMLFrameSetElement interface: document.createElement("frameset") must inhe PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onhashchange" with the proper type PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onlanguagechange" with the proper type PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onmessage" with the proper type -FAIL HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onmessageerror" with the proper type assert_inherits: property "onmessageerror" not found in prototype chain +PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onmessageerror" with the proper type PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onoffline" with the proper type PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "ononline" with the proper type PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onpagehide" with the proper type diff --git a/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt b/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt index 18880655e4b85..1538a4eb005cf 100644 --- a/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt +++ b/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt @@ -585,7 +585,7 @@ PASS HTMLBodyElement interface: attribute onbeforeunload PASS HTMLBodyElement interface: attribute onhashchange PASS HTMLBodyElement interface: attribute onlanguagechange PASS HTMLBodyElement interface: attribute onmessage -FAIL HTMLBodyElement interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false +PASS HTMLBodyElement interface: attribute onmessageerror PASS HTMLBodyElement interface: attribute onoffline PASS HTMLBodyElement interface: attribute ononline PASS HTMLBodyElement interface: attribute onpagehide @@ -609,7 +609,7 @@ PASS HTMLBodyElement interface: document.createElement("body") must inherit prop PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onhashchange" with the proper type PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onlanguagechange" with the proper type PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onmessage" with the proper type -FAIL HTMLBodyElement interface: document.createElement("body") must inherit property "onmessageerror" with the proper type assert_inherits: property "onmessageerror" not found in prototype chain +PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onmessageerror" with the proper type PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onoffline" with the proper type PASS HTMLBodyElement interface: document.createElement("body") must inherit property "ononline" with the proper type PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onpagehide" with the proper type @@ -4526,7 +4526,7 @@ PASS Window interface: attribute onbeforeunload PASS Window interface: attribute onhashchange PASS Window interface: attribute onlanguagechange PASS Window interface: attribute onmessage -FAIL Window interface: attribute onmessageerror assert_own_property: The global object must have a property "onmessageerror" expected property "onmessageerror" missing +PASS Window interface: attribute onmessageerror PASS Window interface: attribute onoffline PASS Window interface: attribute ononline PASS Window interface: attribute onpagehide @@ -4681,7 +4681,7 @@ PASS Window interface: window must inherit property "onbeforeunload" with the pr PASS Window interface: window must inherit property "onhashchange" with the proper type PASS Window interface: window must inherit property "onlanguagechange" with the proper type PASS Window interface: window must inherit property "onmessage" with the proper type -FAIL Window interface: window must inherit property "onmessageerror" with the proper type assert_own_property: expected property "onmessageerror" missing +PASS Window interface: window must inherit property "onmessageerror" with the proper type PASS Window interface: window must inherit property "onoffline" with the proper type PASS Window interface: window must inherit property "ononline" with the proper type PASS Window interface: window must inherit property "onpagehide" with the proper type @@ -5055,7 +5055,7 @@ PASS MessagePort interface: operation postMessage(any, optional StructuredSerial PASS MessagePort interface: operation start() PASS MessagePort interface: operation close() PASS MessagePort interface: attribute onmessage -FAIL MessagePort interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false +PASS MessagePort interface: attribute onmessageerror PASS BroadcastChannel interface: existence and properties of interface object PASS BroadcastChannel interface object length PASS BroadcastChannel interface object name @@ -5080,7 +5080,7 @@ PASS Worker interface: operation terminate() PASS Worker interface: operation postMessage(any, sequence) PASS Worker interface: operation postMessage(any, optional StructuredSerializeOptions) PASS Worker interface: attribute onmessage -FAIL Worker interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false +PASS Worker interface: attribute onmessageerror PASS Worker interface: attribute onerror PASS SharedWorker interface: existence and properties of interface object PASS SharedWorker interface object length @@ -5205,7 +5205,7 @@ PASS HTMLFrameSetElement interface: attribute onbeforeunload PASS HTMLFrameSetElement interface: attribute onhashchange PASS HTMLFrameSetElement interface: attribute onlanguagechange PASS HTMLFrameSetElement interface: attribute onmessage -FAIL HTMLFrameSetElement interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false +PASS HTMLFrameSetElement interface: attribute onmessageerror PASS HTMLFrameSetElement interface: attribute onoffline PASS HTMLFrameSetElement interface: attribute ononline PASS HTMLFrameSetElement interface: attribute onpagehide @@ -5225,7 +5225,7 @@ PASS HTMLFrameSetElement interface: document.createElement("frameset") must inhe PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onhashchange" with the proper type PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onlanguagechange" with the proper type PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onmessage" with the proper type -FAIL HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onmessageerror" with the proper type assert_inherits: property "onmessageerror" not found in prototype chain +PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onmessageerror" with the proper type PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onoffline" with the proper type PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "ononline" with the proper type PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onpagehide" with the proper type diff --git a/Source/WebCore/bindings/js/SerializedScriptValue.cpp b/Source/WebCore/bindings/js/SerializedScriptValue.cpp index 26d8fc2552209..e4b81ac63309e 100644 --- a/Source/WebCore/bindings/js/SerializedScriptValue.cpp +++ b/Source/WebCore/bindings/js/SerializedScriptValue.cpp @@ -4732,19 +4732,19 @@ String SerializedScriptValue::toString() const return CloneDeserializer::deserializeString(m_data); } -JSValue SerializedScriptValue::deserialize(JSGlobalObject& lexicalGlobalObject, JSGlobalObject* globalObject, SerializationErrorMode throwExceptions) +JSValue SerializedScriptValue::deserialize(JSGlobalObject& lexicalGlobalObject, JSGlobalObject* globalObject, SerializationErrorMode throwExceptions, bool* didFail) { - return deserialize(lexicalGlobalObject, globalObject, { }, throwExceptions); + return deserialize(lexicalGlobalObject, globalObject, { }, throwExceptions, didFail); } -JSValue SerializedScriptValue::deserialize(JSGlobalObject& lexicalGlobalObject, JSGlobalObject* globalObject, const Vector>& messagePorts, SerializationErrorMode throwExceptions) +JSValue SerializedScriptValue::deserialize(JSGlobalObject& lexicalGlobalObject, JSGlobalObject* globalObject, const Vector>& messagePorts, SerializationErrorMode throwExceptions, bool* didFail) { Vector dummyBlobs; Vector dummyPaths; - return deserialize(lexicalGlobalObject, globalObject, messagePorts, dummyBlobs, dummyPaths, throwExceptions); + return deserialize(lexicalGlobalObject, globalObject, messagePorts, dummyBlobs, dummyPaths, throwExceptions, didFail); } -JSValue SerializedScriptValue::deserialize(JSGlobalObject& lexicalGlobalObject, JSGlobalObject* globalObject, const Vector>& messagePorts, const Vector& blobURLs, const Vector& blobFilePaths, SerializationErrorMode throwExceptions) +JSValue SerializedScriptValue::deserialize(JSGlobalObject& lexicalGlobalObject, JSGlobalObject* globalObject, const Vector>& messagePorts, const Vector& blobURLs, const Vector& blobFilePaths, SerializationErrorMode throwExceptions, bool* didFail) { DeserializationResult result = CloneDeserializer::deserialize(&lexicalGlobalObject, globalObject, messagePorts, WTFMove(m_backingStores) #if ENABLE(OFFSCREEN_CANVAS_IN_WORKERS) @@ -4763,6 +4763,8 @@ JSValue SerializedScriptValue::deserialize(JSGlobalObject& lexicalGlobalObject, , WTFMove(m_serializedVideoFrames) #endif ); + if (didFail) + *didFail = result.second != SerializationReturnCode::SuccessfullyCompleted; if (throwExceptions == SerializationErrorMode::Throwing) maybeThrowExceptionIfSerializationFailed(lexicalGlobalObject, result.second); return result.first ? result.first : jsNull(); diff --git a/Source/WebCore/bindings/js/SerializedScriptValue.h b/Source/WebCore/bindings/js/SerializedScriptValue.h index d22c85132c873..22dc11c855a1b 100644 --- a/Source/WebCore/bindings/js/SerializedScriptValue.h +++ b/Source/WebCore/bindings/js/SerializedScriptValue.h @@ -85,9 +85,9 @@ class SerializedScriptValue : public ThreadSafeRefCounted static Ref nullValue(); - WEBCORE_EXPORT JSC::JSValue deserialize(JSC::JSGlobalObject&, JSC::JSGlobalObject*, SerializationErrorMode = SerializationErrorMode::Throwing); - WEBCORE_EXPORT JSC::JSValue deserialize(JSC::JSGlobalObject&, JSC::JSGlobalObject*, const Vector>&, SerializationErrorMode = SerializationErrorMode::Throwing); - JSC::JSValue deserialize(JSC::JSGlobalObject&, JSC::JSGlobalObject*, const Vector>&, const Vector& blobURLs, const Vector& blobFilePaths, SerializationErrorMode = SerializationErrorMode::Throwing); + WEBCORE_EXPORT JSC::JSValue deserialize(JSC::JSGlobalObject&, JSC::JSGlobalObject*, SerializationErrorMode = SerializationErrorMode::Throwing, bool* didFail = nullptr); + WEBCORE_EXPORT JSC::JSValue deserialize(JSC::JSGlobalObject&, JSC::JSGlobalObject*, const Vector>&, SerializationErrorMode = SerializationErrorMode::Throwing, bool* didFail = nullptr); + JSC::JSValue deserialize(JSC::JSGlobalObject&, JSC::JSGlobalObject*, const Vector>&, const Vector& blobURLs, const Vector& blobFilePaths, SerializationErrorMode = SerializationErrorMode::Throwing, bool* didFail = nullptr); static uint32_t wireFormatVersion(); diff --git a/Source/WebCore/dom/BroadcastChannel.cpp b/Source/WebCore/dom/BroadcastChannel.cpp index 875cf5ef15756..e3dda9a8c9c24 100644 --- a/Source/WebCore/dom/BroadcastChannel.cpp +++ b/Source/WebCore/dom/BroadcastChannel.cpp @@ -240,8 +240,15 @@ void BroadcastChannel::dispatchMessage(Ref&& message) return; queueTaskKeepingObjectAlive(*this, TaskSource::PostedMessageQueue, [this, message = WTFMove(message)]() mutable { - if (!m_isClosed && scriptExecutionContext()) - dispatchEvent(MessageEvent::create(WTFMove(message), scriptExecutionContext()->securityOrigin()->toString())); + if (m_isClosed || !scriptExecutionContext()) + return; + + auto* globalObject = scriptExecutionContext()->globalObject(); + if (!globalObject) + return; + + auto event = MessageEvent::create(*globalObject, WTFMove(message), scriptExecutionContext()->securityOrigin()->toString()); + dispatchEvent(event.event); }); } diff --git a/Source/WebCore/dom/MessageEvent.cpp b/Source/WebCore/dom/MessageEvent.cpp index 3162c4c4651a7..fc1ddbb3fddce 100644 --- a/Source/WebCore/dom/MessageEvent.cpp +++ b/Source/WebCore/dom/MessageEvent.cpp @@ -30,6 +30,7 @@ #include "Blob.h" #include "EventNames.h" +#include "JSMessageEvent.h" #include #include @@ -62,6 +63,24 @@ inline MessageEvent::MessageEvent(const AtomString& type, DataType&& data, const { } +auto MessageEvent::create(JSC::JSGlobalObject& globalObject, Ref&& data, const String& origin, const String& lastEventId, std::optional&& source, Vector>&& ports) -> MessageEventWithStrongData +{ + auto& vm = globalObject.vm(); + Locker locker(vm.apiLock()); + + bool didFail = false; + + auto deserialized = data->deserialize(globalObject, &globalObject, ports, SerializationErrorMode::NonThrowing, &didFail); + JSC::Strong strongData(vm, deserialized); + + auto& eventType = didFail ? eventNames().messageerrorEvent : eventNames().messageEvent; + auto event = adoptRef(*new MessageEvent(eventType, MessageEvent::JSValueTag { }, origin, lastEventId, WTFMove(source), WTFMove(ports))); + JSC::Strong strongWrapper(vm, JSC::jsCast(toJS(&globalObject, JSC::jsCast(&globalObject), event.get()))); + event->jsData().set(vm, strongWrapper.get(), deserialized); + + return MessageEventWithStrongData { event, WTFMove(strongWrapper) }; +} + Ref MessageEvent::create(const AtomString& type, DataType&& data, const String& origin, const String& lastEventId, std::optional&& source, Vector>&& ports) { return adoptRef(*new MessageEvent(type, WTFMove(data), origin, lastEventId, WTFMove(source), WTFMove(ports))); diff --git a/Source/WebCore/dom/MessageEvent.h b/Source/WebCore/dom/MessageEvent.h index 4668807bce456..76f130b0328ab 100644 --- a/Source/WebCore/dom/MessageEvent.h +++ b/Source/WebCore/dom/MessageEvent.h @@ -54,6 +54,13 @@ class MessageEvent final : public Event { static Ref create(DataType&&, const String& origin = { }, const String& lastEventId = { }, std::optional&& = std::nullopt, Vector>&& = { }); static Ref createForBindings(); + struct MessageEventWithStrongData { + Ref event; + JSC::Strong strongWrapper; // Keep the wrapper alive until the event is fired, since it is what keeps `data` alive. + }; + + static MessageEventWithStrongData create(JSC::JSGlobalObject&, Ref&&, const String& origin = { }, const String& lastEventId = { }, std::optional&& = std::nullopt, Vector>&& = { }); + struct Init : EventInit { JSC::JSValue data; String origin; diff --git a/Source/WebCore/dom/MessagePort.cpp b/Source/WebCore/dom/MessagePort.cpp index 104325a8701bf..be82b8a91c5f6 100644 --- a/Source/WebCore/dom/MessagePort.cpp +++ b/Source/WebCore/dom/MessagePort.cpp @@ -274,7 +274,7 @@ void MessagePort::dispatchMessages() LOG(MessagePorts, "MessagePort %s (%p) dispatching %zu messages", m_identifier.logString().utf8().data(), this, messages.size()); auto* context = scriptExecutionContext(); - if (!context) + if (!context || !context->globalObject()) return; ASSERT(context->isContextThread()); @@ -284,9 +284,14 @@ void MessagePort::dispatchMessages() // close() in Worker onmessage handler should prevent next message from dispatching. if (contextIsWorker && downcast(*context).isClosing()) return; + auto ports = MessagePort::entanglePorts(*context, WTFMove(message.transferredPorts)); + auto event = MessageEvent::create(*context->globalObject(), message.message.releaseNonNull(), { }, { }, { }, WTFMove(ports)); + // Per specification, each MessagePort object has a task source called the port message queue. - queueTaskToDispatchEvent(*this, TaskSource::PostedMessageQueue, MessageEvent::create(message.message.releaseNonNull(), { }, { }, { }, WTFMove(ports))); + queueTaskKeepingObjectAlive(*this, TaskSource::PostedMessageQueue, [this, event = WTFMove(event)] { + dispatchEvent(event.event); + }); } }; diff --git a/Source/WebCore/dom/MessagePort.idl b/Source/WebCore/dom/MessagePort.idl index 624cd4b70782a..3144cc5971415 100644 --- a/Source/WebCore/dom/MessagePort.idl +++ b/Source/WebCore/dom/MessagePort.idl @@ -38,4 +38,5 @@ undefined close(); attribute EventHandler onmessage; + attribute EventHandler onmessageerror; }; diff --git a/Source/WebCore/html/HTMLAttributeNames.in b/Source/WebCore/html/HTMLAttributeNames.in index c3110d0bdee9a..ae59ffd1cbe45 100644 --- a/Source/WebCore/html/HTMLAttributeNames.in +++ b/Source/WebCore/html/HTMLAttributeNames.in @@ -271,6 +271,7 @@ onloadedmetadata onloadstart onlostpointercapture onmessage +onmessageerror onmousedown onmouseenter onmouseleave diff --git a/Source/WebCore/page/DOMWindow.cpp b/Source/WebCore/page/DOMWindow.cpp index da1060844230b..832336550770f 100644 --- a/Source/WebCore/page/DOMWindow.cpp +++ b/Source/WebCore/page/DOMWindow.cpp @@ -961,11 +961,16 @@ ExceptionOr DOMWindow::postMessage(JSC::JSGlobalObject& lexicalGlobalObjec } } + auto* globalObject = document()->globalObject(); + if (!globalObject) + return; + UserGestureIndicator userGestureIndicator(userGestureToForward); InspectorInstrumentation::willDispatchPostMessage(frame, postMessageIdentifier); - auto event = MessageEvent::create(message.message.releaseNonNull(), sourceOrigin, { }, incumbentWindowProxy ? std::make_optional(MessageEventSource(WTFMove(incumbentWindowProxy))) : std::nullopt, MessagePort::entanglePorts(*document(), WTFMove(message.transferredPorts))); - dispatchEvent(event); + auto ports = MessagePort::entanglePorts(*document(), WTFMove(message.transferredPorts)); + auto event = MessageEvent::create(*globalObject, message.message.releaseNonNull(), sourceOrigin, { }, incumbentWindowProxy ? std::make_optional(MessageEventSource(WTFMove(incumbentWindowProxy))) : std::nullopt, WTFMove(ports)); + dispatchEvent(event.event); InspectorInstrumentation::didDispatchPostMessage(frame, postMessageIdentifier); }); diff --git a/Source/WebCore/page/WindowEventHandlers.idl b/Source/WebCore/page/WindowEventHandlers.idl index ed89465732ee7..622be216344d2 100644 --- a/Source/WebCore/page/WindowEventHandlers.idl +++ b/Source/WebCore/page/WindowEventHandlers.idl @@ -33,8 +33,7 @@ interface mixin WindowEventHandlers { [WindowEventHandler] attribute EventHandler onhashchange; [WindowEventHandler] attribute EventHandler onlanguagechange; [WindowEventHandler] attribute EventHandler onmessage; - // FIXME: Implement 'onmessageerror' - // attribute EventHandler onmessageerror; + [WindowEventHandler] attribute EventHandler onmessageerror; [WindowEventHandler] attribute EventHandler onoffline; [WindowEventHandler] attribute EventHandler ononline; [WindowEventHandler] attribute EventHandler onpagehide; diff --git a/Source/WebCore/workers/DedicatedWorkerGlobalScope.idl b/Source/WebCore/workers/DedicatedWorkerGlobalScope.idl index 355c24a8dcf9c..9a9faa6a777a6 100644 --- a/Source/WebCore/workers/DedicatedWorkerGlobalScope.idl +++ b/Source/WebCore/workers/DedicatedWorkerGlobalScope.idl @@ -43,6 +43,7 @@ undefined close(); attribute EventHandler onmessage; + attribute EventHandler onmessageerror; }; [Conditional=OFFSCREEN_CANVAS_IN_WORKERS, EnabledByDeprecatedGlobalSetting=OffscreenCanvasInWorkersEnabled] DedicatedWorkerGlobalScope includes AnimationFrameProvider; diff --git a/Source/WebCore/workers/Worker.idl b/Source/WebCore/workers/Worker.idl index 6cbabf17a9c1b..476f1289d8d52 100644 --- a/Source/WebCore/workers/Worker.idl +++ b/Source/WebCore/workers/Worker.idl @@ -35,6 +35,7 @@ [CallWith=CurrentGlobalObject] undefined postMessage(any message, sequence transfer); [CallWith=CurrentGlobalObject] undefined postMessage(any message, optional StructuredSerializeOptions options); attribute EventHandler onmessage; + attribute EventHandler onmessageerror; }; Worker includes AbstractWorker; diff --git a/Source/WebCore/workers/WorkerMessagingProxy.cpp b/Source/WebCore/workers/WorkerMessagingProxy.cpp index dc0ece0c15aae..cd2d71f0ea4de 100644 --- a/Source/WebCore/workers/WorkerMessagingProxy.cpp +++ b/Source/WebCore/workers/WorkerMessagingProxy.cpp @@ -165,8 +165,16 @@ void WorkerMessagingProxy::postMessageToWorkerObject(MessageWithMessagePorts&& m auto ports = MessagePort::entanglePorts(context, WTFMove(message.transferredPorts)); ActiveDOMObject::queueTaskKeepingObjectAlive(*workerObject, TaskSource::PostedMessageQueue, [worker = Ref { *workerObject }, message = WTFMove(message), userGestureForwarder = WTFMove(userGestureForwarder), ports = WTFMove(ports)] () mutable { + if (!worker->scriptExecutionContext()) + return; + + auto* globalObject = worker->scriptExecutionContext()->globalObject(); + if (!globalObject) + return; + UserGestureIndicator userGestureIndicator(userGestureForwarder ? userGestureForwarder->userGestureToForward() : nullptr); - worker->dispatchEvent(MessageEvent::create(message.message.releaseNonNull(), { }, { }, std::nullopt, WTFMove(ports))); + auto event = MessageEvent::create(*globalObject, message.message.releaseNonNull(), { }, { }, { }, WTFMove(ports)); + worker->dispatchEvent(event.event); }); }); } @@ -193,14 +201,18 @@ void WorkerMessagingProxy::postMessageToWorkerGlobalScope(MessageWithMessagePort postTaskToWorkerGlobalScope([this, protectedThis = Ref { *this }, message = WTFMove(message), userGestureForwarder = WTFMove(userGestureForwarder)](auto& scriptContext) mutable { ASSERT_WITH_SECURITY_IMPLICATION(scriptContext.isWorkerGlobalScope()); auto& context = static_cast(scriptContext); - auto ports = MessagePort::entanglePorts(scriptContext, WTFMove(message.transferredPorts)); + auto* globalObject = context.globalObject(); + if (!globalObject) + return; // Setting m_userGestureForwarder here, before dispatching the MessageEvent, will allow all calls to // worker.postMessage() made during the handling of that MessageEvent to inherit the UserGestureToken // held by the forwarder; see postMessageToWorkerObject() above. m_userGestureForwarder = WTFMove(userGestureForwarder); - context.dispatchEvent(MessageEvent::create(message.message.releaseNonNull(), { }, { }, std::nullopt, WTFMove(ports))); + auto ports = MessagePort::entanglePorts(scriptContext, WTFMove(message.transferredPorts)); + auto event = MessageEvent::create(*globalObject, message.message.releaseNonNull(), { }, { }, std::nullopt, WTFMove(ports)); + context.dispatchEvent(event.event); // Because WorkerUserGestureForwarder is defined as DestructionThread::Main, releasing this Ref // on the Worker thread will cause the forwarder to be destroyed on the main thread. diff --git a/Source/WebCore/workers/service/ServiceWorkerContainer.cpp b/Source/WebCore/workers/service/ServiceWorkerContainer.cpp index a6db2d854bbaa..9f7ed6018733e 100644 --- a/Source/WebCore/workers/service/ServiceWorkerContainer.cpp +++ b/Source/WebCore/workers/service/ServiceWorkerContainer.cpp @@ -45,7 +45,6 @@ #include "JSServiceWorkerRegistration.h" #include "LegacySchemeRegistry.h" #include "Logging.h" -#include "MessageEvent.h" #include "NavigatorBase.h" #include "Page.h" #include "PushSubscriptionOptions.h" @@ -350,9 +349,11 @@ void ServiceWorkerContainer::getRegistrations(Ref&& promise) void ServiceWorkerContainer::startMessages() { m_shouldDeferMessageEvents = false; - auto deferredMessageEvents = WTFMove(m_deferredMessageEvents); - for (auto& messageEvent : deferredMessageEvents) - queueTaskToDispatchEvent(*this, TaskSource::DOMManipulation, WTFMove(messageEvent)); + for (auto&& messageEvent : std::exchange(m_deferredMessageEvents, Vector { })) { + queueTaskKeepingObjectAlive(*this, TaskSource::DOMManipulation, [this, messageEvent = WTFMove(messageEvent)] { + dispatchEvent(messageEvent.event); + }); + } } void ServiceWorkerContainer::jobFailedWithException(ServiceWorkerJob& job, const Exception& exception) @@ -440,14 +441,20 @@ void ServiceWorkerContainer::jobResolvedWithRegistration(ServiceWorkerJob& job, void ServiceWorkerContainer::postMessage(MessageWithMessagePorts&& message, ServiceWorkerData&& sourceData, String&& sourceOrigin) { auto& context = *scriptExecutionContext(); + auto* globalObject = context.globalObject(); + if (!globalObject) + return; + MessageEventSource source = RefPtr { ServiceWorker::getOrCreate(context, WTFMove(sourceData)) }; - auto messageEvent = MessageEvent::create(message.message.releaseNonNull(), sourceOrigin, { }, WTFMove(source), MessagePort::entanglePorts(context, WTFMove(message.transferredPorts))); + auto messageEvent = MessageEvent::create(*globalObject, message.message.releaseNonNull(), sourceOrigin, { }, WTFMove(source), MessagePort::entanglePorts(context, WTFMove(message.transferredPorts))); if (m_shouldDeferMessageEvents) m_deferredMessageEvents.append(WTFMove(messageEvent)); else { ASSERT(m_deferredMessageEvents.isEmpty()); - queueTaskToDispatchEvent(*this, TaskSource::DOMManipulation, WTFMove(messageEvent)); + queueTaskKeepingObjectAlive(*this, TaskSource::DOMManipulation, [this, messageEvent = WTFMove(messageEvent)] { + dispatchEvent(messageEvent.event); + }); } } diff --git a/Source/WebCore/workers/service/ServiceWorkerContainer.h b/Source/WebCore/workers/service/ServiceWorkerContainer.h index 7508c951e7dfa..be31c1df73adb 100644 --- a/Source/WebCore/workers/service/ServiceWorkerContainer.h +++ b/Source/WebCore/workers/service/ServiceWorkerContainer.h @@ -32,6 +32,7 @@ #include "EventTarget.h" #include "IDLTypes.h" #include "JSDOMPromiseDeferred.h" +#include "MessageEvent.h" #include "PushPermissionState.h" #include "PushSubscription.h" #include "SWClientConnection.h" @@ -166,7 +167,7 @@ class ServiceWorkerContainer final : public EventTarget, public ActiveDOMObject, uint64_t m_lastOngoingSettledRegistrationIdentifier { 0 }; HashMap m_ongoingSettledRegistrations; bool m_shouldDeferMessageEvents { false }; - Vector> m_deferredMessageEvents; + Vector m_deferredMessageEvents; }; } // namespace WebCore diff --git a/Source/WebCore/workers/service/context/ServiceWorkerThread.cpp b/Source/WebCore/workers/service/context/ServiceWorkerThread.cpp index 86ac1629b60c5..9b1a10239b957 100644 --- a/Source/WebCore/workers/service/context/ServiceWorkerThread.cpp +++ b/Source/WebCore/workers/service/context/ServiceWorkerThread.cpp @@ -141,6 +141,7 @@ void ServiceWorkerThread::queueTaskToFireFetchEvent(Ref