Changeset 280924 in webkit
- Timestamp:
- Aug 11, 2021 12:44:55 PM (11 months ago)
- Location:
- trunk
- Files:
-
- 20 edited
-
LayoutTests/imported/w3c/ChangeLog (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-fetch-error-external-classic-expected.txt (modified) (2 diffs)
-
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-fetch-error-external-module-expected.txt (modified) (2 diffs)
-
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-parse-error-external-classic-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-parse-error-external-module-expected.txt (modified) (2 diffs)
-
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-parse-error-inline-classic-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-success-external-classic-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-success-external-module-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-success-inline-classic-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-fetch-error-external-classic-expected.txt (modified) (2 diffs)
-
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-fetch-error-external-module-expected.txt (modified) (2 diffs)
-
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-parse-error-external-classic-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-parse-error-external-module-expected.txt (modified) (2 diffs)
-
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-parse-error-inline-classic-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-success-external-classic-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-success-external-module-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-success-inline-classic-expected.txt (modified) (1 diff)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/dom/ScriptElement.cpp (modified) (2 diffs)
-
Source/WebCore/dom/ScriptElement.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/imported/w3c/ChangeLog
r280913 r280924 1 2021-08-11 Chris Dumez <cdumez@apple.com> 2 3 Stop evaluating <script>s moved between Documents during fetching 4 https://bugs.webkit.org/show_bug.cgi?id=202714 5 <rdar://problem/56208425> 6 7 Reviewed by Geoffrey Garen. 8 9 Rebaseline WPT tests now that more checks are passing. Note that these checks were already passing in both Firefox and Chrome. 10 11 * web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-fetch-error-external-classic-expected.txt: 12 * web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-fetch-error-external-module-expected.txt: 13 * web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-parse-error-external-classic-expected.txt: 14 * web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-parse-error-external-module-expected.txt: 15 * web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-parse-error-inline-classic-expected.txt: 16 * web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-success-external-classic-expected.txt: 17 * web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-success-external-module-expected.txt: 18 * web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-success-inline-classic-expected.txt: 19 * web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-fetch-error-external-classic-expected.txt: 20 * web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-fetch-error-external-module-expected.txt: 21 * web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-parse-error-external-classic-expected.txt: 22 * web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-parse-error-external-module-expected.txt: 23 * web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-parse-error-inline-classic-expected.txt: 24 * web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-success-external-classic-expected.txt: 25 * web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-success-external-module-expected.txt: 26 * web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-success-inline-classic-expected.txt: 27 1 28 2021-08-11 Chris Dumez <cdumez@apple.com> 2 29 -
trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-fetch-error-external-classic-expected.txt
r267646 r280924 1 CONSOLE MESSAGE: Not executing script because it moved between documents during fetching 1 2 2 3 … … 4 5 PASS Eval: Move fetch-error external classic script to iframe after-prepare 5 6 PASS <script> load: Move fetch-error external classic script to iframe after-prepare 6 FAIL <script> error: Move fetch-error external classic script to iframe after-prepare assert_unreached: Script error evennt fired unexpectedly Reached unreachable code7 PASS <script> error: Move fetch-error external classic script to iframe after-prepare 7 8 PASS window error: Move fetch-error external classic script to iframe after-prepare 8 9 -
trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-fetch-error-external-module-expected.txt
r267646 r280924 1 CONSOLE MESSAGE: Not executing script because it moved between documents during fetching 1 2 2 3 … … 4 5 PASS Eval: Move fetch-error external module script to iframe after-prepare 5 6 PASS <script> load: Move fetch-error external module script to iframe after-prepare 6 FAIL <script> error: Move fetch-error external module script to iframe after-prepare assert_unreached: Script error evennt fired unexpectedly Reached unreachable code7 PASS <script> error: Move fetch-error external module script to iframe after-prepare 7 8 PASS window error: Move fetch-error external module script to iframe after-prepare 8 9 -
trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-parse-error-external-classic-expected.txt
r267646 r280924 1 CONSOLE MESSAGE: SyntaxError: Left side of assignment is not a reference.1 CONSOLE MESSAGE: Not executing script because it moved between documents during fetching 2 2 3 3 4 4 PASS Sanity check around top-level Window 5 5 PASS Eval: Move parse-error external classic script to iframe after-prepare 6 FAIL <script> load: Move parse-error external classic script to iframe after-prepare assert_unreached: Script load event fired unexpectedly Reached unreachable code6 PASS <script> load: Move parse-error external classic script to iframe after-prepare 7 7 PASS <script> error: Move parse-error external classic script to iframe after-prepare 8 FAIL window error: Move parse-error external classic script to iframe after-prepare assert_unreached: Window error event shouldn't fired on destination window Reached unreachable code8 PASS window error: Move parse-error external classic script to iframe after-prepare 9 9 -
trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-parse-error-external-module-expected.txt
r267646 r280924 1 CONSOLE MESSAGE: SyntaxError: Left side of assignment is not a reference.1 CONSOLE MESSAGE: Not executing script because it moved between documents during fetching 2 2 3 3 … … 5 5 PASS Eval: Move parse-error external module script to iframe after-prepare 6 6 PASS <script> load: Move parse-error external module script to iframe after-prepare 7 FAIL <script> error: Move parse-error external module script to iframe after-prepare assert_unreached: Script error evennt fired unexpectedly Reached unreachable code7 PASS <script> error: Move parse-error external module script to iframe after-prepare 8 8 PASS window error: Move parse-error external module script to iframe after-prepare 9 9 -
trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-parse-error-inline-classic-expected.txt
r267646 r280924 1 CONSOLE MESSAGE: SyntaxError: Left side of assignment is not a reference.1 CONSOLE MESSAGE: Not executing script because it moved between documents during fetching 2 2 3 3 4 4 PASS Sanity check around top-level Window 5 5 PASS Eval: Move parse-error inline classic script to iframe after-prepare 6 FAIL <script> load: Move parse-error inline classic script to iframe after-prepare assert_unreached: Script load event fired unexpectedly Reached unreachable code6 PASS <script> load: Move parse-error inline classic script to iframe after-prepare 7 7 PASS <script> error: Move parse-error inline classic script to iframe after-prepare 8 FAIL window error: Move parse-error inline classic script to iframe after-prepare assert_unreached: Window error event shouldn't fired on destination window Reached unreachable code8 PASS window error: Move parse-error inline classic script to iframe after-prepare 9 9 -
trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-success-external-classic-expected.txt
r267646 r280924 1 CONSOLE MESSAGE: exec1 CONSOLE MESSAGE: Not executing script because it moved between documents during fetching 2 2 3 3 4 4 PASS Sanity check around top-level Window 5 FAIL Eval: Move success external classic script to iframe after-prepare assert_false: The script must not have executed in destination window expected false got "executed" 6 FAIL <script> load: Move success external classic script to iframe after-prepare assert_unreached: Script load event fired unexpectedly Reached unreachable code5 PASS Eval: Move success external classic script to iframe after-prepare 6 PASS <script> load: Move success external classic script to iframe after-prepare 7 7 PASS <script> error: Move success external classic script to iframe after-prepare 8 8 PASS window error: Move success external classic script to iframe after-prepare -
trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-success-external-module-expected.txt
r267646 r280924 1 CONSOLE MESSAGE: TypeError: Requested module is not instantiated yet.1 CONSOLE MESSAGE: Not executing script because it moved between documents during fetching 2 2 3 3 4 4 PASS Sanity check around top-level Window 5 5 PASS Eval: Move success external module script to iframe after-prepare 6 FAIL <script> load: Move success external module script to iframe after-prepare assert_unreached: Script load event fired unexpectedly Reached unreachable code6 PASS <script> load: Move success external module script to iframe after-prepare 7 7 PASS <script> error: Move success external module script to iframe after-prepare 8 FAIL window error: Move success external module script to iframe after-prepare assert_unreached: Window error event shouldn't fired on destination window Reached unreachable code8 PASS window error: Move success external module script to iframe after-prepare 9 9 -
trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-success-inline-classic-expected.txt
r267646 r280924 1 CONSOLE MESSAGE: Not executing script because it moved between documents during fetching 1 2 2 3 3 4 PASS Sanity check around top-level Window 4 FAIL Eval: Move success inline classic script to iframe after-prepare assert_false: The script must not have executed in destination window expected false got "executed" 5 FAIL <script> load: Move success inline classic script to iframe after-prepare assert_unreached: Script load event fired unexpectedly Reached unreachable code5 PASS Eval: Move success inline classic script to iframe after-prepare 6 PASS <script> load: Move success inline classic script to iframe after-prepare 6 7 PASS <script> error: Move success inline classic script to iframe after-prepare 7 8 PASS window error: Move success inline classic script to iframe after-prepare -
trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-fetch-error-external-classic-expected.txt
r267646 r280924 1 CONSOLE MESSAGE: Not executing script because it moved between documents during fetching 1 2 2 3 … … 4 5 PASS Eval: Move fetch-error external classic script to iframe move-back 5 6 PASS <script> load: Move fetch-error external classic script to iframe move-back 6 FAIL <script> error: Move fetch-error external classic script to iframe move-back assert_unreached: Script error evennt fired unexpectedly Reached unreachable code 7 PASS <script> error: Move fetch-error external classic script to iframe move-back 7 8 PASS window error: Move fetch-error external classic script to iframe move-back 8 9 -
trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-fetch-error-external-module-expected.txt
r267646 r280924 1 CONSOLE MESSAGE: Not executing script because it moved between documents during fetching 1 2 2 3 … … 4 5 PASS Eval: Move fetch-error external module script to iframe move-back 5 6 PASS <script> load: Move fetch-error external module script to iframe move-back 6 FAIL <script> error: Move fetch-error external module script to iframe move-back assert_unreached: Script error evennt fired unexpectedly Reached unreachable code 7 PASS <script> error: Move fetch-error external module script to iframe move-back 7 8 PASS window error: Move fetch-error external module script to iframe move-back 8 9 -
trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-parse-error-external-classic-expected.txt
r267646 r280924 1 CONSOLE MESSAGE: SyntaxError: Left side of assignment is not a reference.1 CONSOLE MESSAGE: Not executing script because it moved between documents during fetching 2 2 3 3 4 4 PASS Sanity check around top-level Window 5 5 PASS Eval: Move parse-error external classic script to iframe move-back 6 FAIL <script> load: Move parse-error external classic script to iframe move-back assert_unreached: Script load event fired unexpectedly Reached unreachable code 6 PASS <script> load: Move parse-error external classic script to iframe move-back 7 7 PASS <script> error: Move parse-error external classic script to iframe move-back 8 FAIL window error: Move parse-error external classic script to iframe move-back assert_unreached: Window error event shouldn't fired on source window Reached unreachable code 8 PASS window error: Move parse-error external classic script to iframe move-back 9 9 -
trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-parse-error-external-module-expected.txt
r267646 r280924 1 CONSOLE MESSAGE: SyntaxError: Left side of assignment is not a reference.1 CONSOLE MESSAGE: Not executing script because it moved between documents during fetching 2 2 3 3 … … 5 5 PASS Eval: Move parse-error external module script to iframe move-back 6 6 PASS <script> load: Move parse-error external module script to iframe move-back 7 FAIL <script> error: Move parse-error external module script to iframe move-back assert_unreached: Script error evennt fired unexpectedly Reached unreachable code 7 PASS <script> error: Move parse-error external module script to iframe move-back 8 8 PASS window error: Move parse-error external module script to iframe move-back 9 9 -
trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-parse-error-inline-classic-expected.txt
r267646 r280924 1 CONSOLE MESSAGE: SyntaxError: Left side of assignment is not a reference.1 CONSOLE MESSAGE: Not executing script because it moved between documents during fetching 2 2 3 3 4 4 PASS Sanity check around top-level Window 5 5 PASS Eval: Move parse-error inline classic script to iframe move-back 6 FAIL <script> load: Move parse-error inline classic script to iframe move-back assert_unreached: Script load event fired unexpectedly Reached unreachable code 6 PASS <script> load: Move parse-error inline classic script to iframe move-back 7 7 PASS <script> error: Move parse-error inline classic script to iframe move-back 8 FAIL window error: Move parse-error inline classic script to iframe move-back assert_unreached: Window error event shouldn't fired on source window Reached unreachable code 8 PASS window error: Move parse-error inline classic script to iframe move-back 9 9 -
trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-success-external-classic-expected.txt
r267646 r280924 1 CONSOLE MESSAGE: exec1 CONSOLE MESSAGE: Not executing script because it moved between documents during fetching 2 2 3 3 4 4 PASS Sanity check around top-level Window 5 FAIL Eval: Move success external classic script to iframe move-back assert_false: The script must not have executed in source window expected false got "executed" 6 FAIL <script> load: Move success external classic script to iframe move-back assert_unreached: Script load event fired unexpectedly Reached unreachable code 5 PASS Eval: Move success external classic script to iframe move-back 6 PASS <script> load: Move success external classic script to iframe move-back 7 7 PASS <script> error: Move success external classic script to iframe move-back 8 8 PASS window error: Move success external classic script to iframe move-back -
trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-success-external-module-expected.txt
r267646 r280924 1 CONSOLE MESSAGE: TypeError: Requested module is not instantiated yet.1 CONSOLE MESSAGE: Not executing script because it moved between documents during fetching 2 2 3 3 4 4 PASS Sanity check around top-level Window 5 5 PASS Eval: Move success external module script to iframe move-back 6 FAIL <script> load: Move success external module script to iframe move-back assert_unreached: Script load event fired unexpectedly Reached unreachable code 6 PASS <script> load: Move success external module script to iframe move-back 7 7 PASS <script> error: Move success external module script to iframe move-back 8 FAIL window error: Move success external module script to iframe move-back assert_unreached: Window error event shouldn't fired on source window Reached unreachable code 8 PASS window error: Move success external module script to iframe move-back 9 9 -
trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-success-inline-classic-expected.txt
r267646 r280924 1 CONSOLE MESSAGE: Not executing script because it moved between documents during fetching 1 2 2 3 3 4 PASS Sanity check around top-level Window 4 FAIL Eval: Move success inline classic script to iframe move-back assert_false: The script must not have executed in source window expected false got "executed" 5 FAIL <script> load: Move success inline classic script to iframe move-back assert_unreached: Script load event fired unexpectedly Reached unreachable code 5 PASS Eval: Move success inline classic script to iframe move-back 6 PASS <script> load: Move success inline classic script to iframe move-back 6 7 PASS <script> error: Move success inline classic script to iframe move-back 7 8 PASS window error: Move success inline classic script to iframe move-back -
trunk/Source/WebCore/ChangeLog
r280920 r280924 1 2021-08-11 Chris Dumez <cdumez@apple.com> 2 3 Stop evaluating <script>s moved between Documents during fetching 4 https://bugs.webkit.org/show_bug.cgi?id=202714 5 <rdar://problem/56208425> 6 7 Reviewed by Geoffrey Garen. 8 9 Stop evaluating <script>s moved between Documents during fetching: 10 - https://github.com/whatwg/html/issues/2469 11 - https://github.com/whatwg/html/pull/2673 12 13 Both Firefox and Chrome already behave this way. 14 15 No new tests, rebaselined existing tests. 16 17 * dom/ScriptElement.cpp: 18 (WebCore::ScriptElement::prepareScript): 19 Set the element's preparation-time document to its node document, as per: 20 - https://html.spec.whatwg.org/multipage/scripting.html#prepare-a-script (step 11) 21 22 (WebCore::ScriptElement::executePendingScript): 23 If scriptElement's preparation-time document is not equal to scriptElement's node document, then return, as per: 24 - https://html.spec.whatwg.org/multipage/scripting.html#execute-the-script-block (step 2) 25 26 * dom/ScriptElement.h: 27 1 28 2021-08-11 Youenn Fablet <youenn@apple.com> 2 29 -
trunk/Source/WebCore/dom/ScriptElement.cpp
r278669 r280924 217 217 return false; 218 218 219 m_preparationTimeDocumentIdentifier = document.identifier(); 220 219 221 if (!document.frame()->script().canExecuteScripts(AboutToExecuteScript)) 220 222 return false; … … 452 454 void ScriptElement::executePendingScript(PendingScript& pendingScript) 453 455 { 456 if (m_element.document().identifier() != m_preparationTimeDocumentIdentifier) { 457 m_element.document().addConsoleMessage(MessageSource::Security, MessageLevel::Error, "Not executing script because it moved between documents during fetching"_s); 458 return; 459 } 460 454 461 if (auto* loadableScript = pendingScript.loadableScript()) 455 462 executeScriptAndDispatchEvent(*loadableScript); -
trunk/Source/WebCore/dom/ScriptElement.h
r278253 r280924 23 23 24 24 #include "ContainerNode.h" 25 #include "DocumentIdentifier.h" 25 26 #include "LoadableScript.h" 26 27 #include "ReferrerPolicy.h" … … 137 138 RefPtr<LoadableScript> m_loadableScript; 138 139 140 // https://html.spec.whatwg.org/multipage/scripting.html#preparation-time-document 141 DocumentIdentifier m_preparationTimeDocumentIdentifier; 142 139 143 MonotonicTime m_creationTime; 140 144 RefPtr<UserGestureToken> m_userGestureToken;
Note: See TracChangeset
for help on using the changeset viewer.