|
|
Created:
3 years, 8 months ago by hiroshige Modified:
3 years, 7 months ago CC:
chromium-reviews, blink-reviews-w3ctests_chromium.org, blink-reviews-html_chromium.org, tfarina, sof, eae+blinkwatch, loading-reviews+parser_chromium.org, blink-reviews-dom_chromium.org, dglazkov+blink, dominicc+watchlist_chromium.org, blink-reviews, kinuko+watch, rwlbuis Target Ref:
refs/heads/master Project:
chromium Visibility:
Public. |
DescriptionEnable module scripts in ScriptLoader
This enables module scripts in Blink behind a flag.
This CL implements module-script-related steps of "prepare a script"
in ScriptLoader and thus makes the module implementation code paths that
are committed previously to be executed, if the runtime flag is enabled.
This CL also reorganizes the test expectations for module-related tests.
BUG=594639
Review-Url: https://codereview.chromium.org/2781713003
Cr-Commit-Position: refs/heads/master@{#467866}
Committed: https://chromium.googlesource.com/chromium/src/+/7da9cf91983855bf2e5861dbe33d50fc9aca9df0
Patch Set 1 #Patch Set 2 : temp #Patch Set 3 : tempfix #Patch Set 4 : Rebase, fix #Patch Set 5 : Fix tests #Patch Set 6 : Rebase after renaming #Patch Set 7 : Split tests #Patch Set 8 : Rebase, refactor ModulePendingScriptTreeClient #Patch Set 9 : Rebase #
Total comments: 4
Patch Set 10 : move logic of run a module script to ModulatorImpl #Patch Set 11 : Refactor FetchSCript #Patch Set 12 : Rebase #Patch Set 13 : Rebase #Patch Set 14 : refine #Patch Set 15 : Rebase #Patch Set 16 : Rebase #Patch Set 17 : Supply BaseURL() for exception #Patch Set 18 : Rebase #
Total comments: 8
Patch Set 19 : Rebase #Patch Set 20 : Rebase, refine #Patch Set 21 : VLOG #Patch Set 22 : Updated test expectations #Patch Set 23 : Update test expectations #Patch Set 24 : Rebase #Patch Set 25 : Update TestExpectations #Dependent Patchsets: Messages
Total messages: 74 (60 generated)
Description was changed from ========== Schedule module script execution Dependencies: https://codereview.chromium.org/2555653002 Base Revision: r452109 Status: - Basic functionality is working, passing some of the tests. - Test failures: To be splitted into CLs: - Introduce blink::Script and blink::ClassicScript - Introduce Classic/ModulePendingScript (this CL) - Support module execution BUG= ========== to ========== Schedule module script execution Dependencies: https://codereview.chromium.org/2555653002 Base Revision: r452109 Status: - Basic functionality is working, passing some of the tests. - Test failures: To be splitted into CLs: - Introduce blink::Script and blink::ClassicScript - Introduce Classic/ModulePendingScript (this CL) - Support module execution BUG= ==========
Description was changed from ========== Schedule module script execution Dependencies: https://codereview.chromium.org/2555653002 Base Revision: r452109 Status: - Basic functionality is working, passing some of the tests. - Test failures: To be splitted into CLs: - Introduce blink::Script and blink::ClassicScript - Introduce Classic/ModulePendingScript (this CL) - Support module execution BUG= ========== to ========== Schedule module script execution How to build: Apply the following: [kouhei] https://codereview.chromium.org/2555653002 [Module 1] https://codereview.chromium.org/2774843002 [Module 2] https://codereview.chromium.org/2780463002 [Module 3] https://codereview.chromium.org/2653923008 [Module 4] https://codereview.chromium.org/2781713003 (this CL) Base Revision: r459714 how to try: 1. Place top-level js/html files somewhere and start a local HTTP server. 2. ./out/Release/content_shell --run-layout-test http://localhost:8000/module.html (file:// urls don't work because they lack Content-Type) ==========
The CQ bit was checked by hiroshige@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presub...)
Description was changed from ========== Schedule module script execution How to build: Apply the following: [kouhei] https://codereview.chromium.org/2555653002 [Module 1] https://codereview.chromium.org/2774843002 [Module 2] https://codereview.chromium.org/2780463002 [Module 3] https://codereview.chromium.org/2653923008 [Module 4] https://codereview.chromium.org/2781713003 (this CL) Base Revision: r459714 how to try: 1. Place top-level js/html files somewhere and start a local HTTP server. 2. ./out/Release/content_shell --run-layout-test http://localhost:8000/module.html (file:// urls don't work because they lack Content-Type) ========== to ========== Schedule module script execution Dependencies: [Module 2] https://codereview.chromium.org/2780463002 [Module 3] https://codereview.chromium.org/2653923008 [kouhei 1] https://codereview.chromium.org/2790473002 https://codereview.chromium.org/2801073003 [kouhei 2] https://codereview.chromium.org/2555653002 https://codereview.chromium.org/2799323002 [kouhei 3] https://codereview.chromium.org/2798383002 [Module 4] https://codereview.chromium.org/2781713003 (this CL) Base Revision: r459714 how to try: 1. Place top-level js/html files somewhere and start a local HTTP server. 2. ./out/Release/content_shell --run-layout-test http://localhost:8000/module.html (file:// urls don't work because they lack Content-Type) ==========
Description was changed from ========== Schedule module script execution Dependencies: [Module 2] https://codereview.chromium.org/2780463002 [Module 3] https://codereview.chromium.org/2653923008 [kouhei 1] https://codereview.chromium.org/2790473002 https://codereview.chromium.org/2801073003 [kouhei 2] https://codereview.chromium.org/2555653002 https://codereview.chromium.org/2799323002 [kouhei 3] https://codereview.chromium.org/2798383002 [Module 4] https://codereview.chromium.org/2781713003 (this CL) Base Revision: r459714 how to try: 1. Place top-level js/html files somewhere and start a local HTTP server. 2. ./out/Release/content_shell --run-layout-test http://localhost:8000/module.html (file:// urls don't work because they lack Content-Type) ========== to ========== Schedule module script execution ==========
The CQ bit was checked by hiroshige@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: ios-device on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device/builds...) ios-device-xcode-clang on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device-xcode-...) ios-simulator on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator/bui...) ios-simulator-xcode-clang on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator-xco...) mac_chromium_compile_dbg_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_comp...) mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
hiroshige@chromium.org changed reviewers: + kouhei@chromium.org
(Using codereview to discuss specific code fragments) https://codereview.chromium.org/2781713003/diff/160001/third_party/WebKit/Sou... File third_party/WebKit/Source/bindings/core/v8/ScriptModule.cpp (right): https://codereview.chromium.org/2781713003/diff/160001/third_party/WebKit/Sou... third_party/WebKit/Source/bindings/core/v8/ScriptModule.cpp:67: // 3. "If s's instantiation state is "errored", then report the exception Where should this logic be placed? (Note that this logic is not tested and thus significant changes might be done later, but I'd like to start the discussion of the place of this logic) I temporarily put this logic here, because - this step require |isolate|, and I uses |isolate| at Line 62 here. - In the classic script case, ClassicScript::RunScript() is implemented totally in bindings/core/v8, so having this logic here in bindings/core/v8 might be consistent. An alternative is to place this in ModuleScript, as we already get ScriptState there via ToScriptStateForMainWorld(frame), and we can get isolate. But this makes me think about more general question: Which script state and isolate should we use in module scripts? I expect it is Modulator. So I expect ModuleScript should have a direct reference to Modulator, removing the following comments in ModuleScript.h: // Note: A "module script"'s "setttings object" is ommitted, as we currently // always have access to the corresponding Modulator when operating on a // ModuleScript instance. (also related to https://github.com/whatwg/html/issues/2469) https://codereview.chromium.org/2781713003/diff/160001/third_party/WebKit/Sou... File third_party/WebKit/Source/core/dom/ModuleScript.cpp (right): https://codereview.chromium.org/2781713003/diff/160001/third_party/WebKit/Sou... third_party/WebKit/Source/core/dom/ModuleScript.cpp:52: Modulator::From(ToScriptStateForMainWorld(frame))->ExecuteModule(this); I think we should have |m_modulator| in ModuleScript and have CHECK_EQ(Modulator::From(ToScriptStateForMainWorld(frame)), m_modulator); here.
https://codereview.chromium.org/2781713003/diff/160001/third_party/WebKit/Sou... File third_party/WebKit/Source/bindings/core/v8/ScriptModule.cpp (right): https://codereview.chromium.org/2781713003/diff/160001/third_party/WebKit/Sou... third_party/WebKit/Source/bindings/core/v8/ScriptModule.cpp:67: // 3. "If s's instantiation state is "errored", then report the exception On 2017/04/12 19:57:05, hiroshige wrote: > Where should this logic be placed? > (Note that this logic is not tested and thus significant changes might be done > later, but I'd like to start the discussion of the place of this logic) I'd put this logic in ModulatorImpl > I temporarily put this logic here, because > - this step require |isolate|, and I uses |isolate| at Line 62 here. > - In the classic script case, ClassicScript::RunScript() is implemented totally > in bindings/core/v8, so having this logic here in bindings/core/v8 might be > consistent. > > An alternative is to place this in ModuleScript, as we already get ScriptState > there via ToScriptStateForMainWorld(frame), and we can get isolate. > > But this makes me think about more general question: > Which script state and isolate should we use in module scripts? > I expect it is Modulator. > So I expect ModuleScript should have a direct reference to Modulator, removing > the following comments in ModuleScript.h: > // Note: A "module script"'s "setttings object" is ommitted, as we currently > // always have access to the corresponding Modulator when operating on a > // ModuleScript instance. > > (also related to https://github.com/whatwg/html/issues/2469) This path is also fine for me. I don't have a strong opinion here and trust your judgement :)
The CQ bit was checked by hiroshige@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
https://codereview.chromium.org/2781713003/diff/160001/third_party/WebKit/Sou... File third_party/WebKit/Source/bindings/core/v8/ScriptModule.cpp (right): https://codereview.chromium.org/2781713003/diff/160001/third_party/WebKit/Sou... third_party/WebKit/Source/bindings/core/v8/ScriptModule.cpp:67: // 3. "If s's instantiation state is "errored", then report the exception On 2017/04/13 02:28:36, kouhei wrote: > On 2017/04/12 19:57:05, hiroshige wrote: > > Where should this logic be placed? > > (Note that this logic is not tested and thus significant changes might be done > > later, but I'd like to start the discussion of the place of this logic) > I'd put this logic in ModulatorImpl > > > I temporarily put this logic here, because > > - this step require |isolate|, and I uses |isolate| at Line 62 here. > > - In the classic script case, ClassicScript::RunScript() is implemented > totally > > in bindings/core/v8, so having this logic here in bindings/core/v8 might be > > consistent. > > > > An alternative is to place this in ModuleScript, as we already get ScriptState > > there via ToScriptStateForMainWorld(frame), and we can get isolate. > > > > But this makes me think about more general question: > > Which script state and isolate should we use in module scripts? > > I expect it is Modulator. > > So I expect ModuleScript should have a direct reference to Modulator, removing > > the following comments in ModuleScript.h: > > // Note: A "module script"'s "setttings object" is ommitted, as we currently > > // always have access to the corresponding Modulator when operating on a > > // ModuleScript instance. > > > > (also related to https://github.com/whatwg/html/issues/2469) > This path is also fine for me. I don't have a strong opinion here and trust your > judgement :) Splitted the ModulatorImpl change into https://codereview.chromium.org/2819733002, and making ModuleScript to have Modulator reference in https://codereview.chromium.org/2823483002.
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_android_rel_ng on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/linux_androi...)
The CQ bit was checked by hiroshige@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Description was changed from ========== Schedule module script execution ========== to ========== Schedule module script execution BUG=594639 ==========
Description was changed from ========== Schedule module script execution BUG=594639 ========== to ========== Schedule module script execution This enables module scripts in ScriptLoader, make the module implementation code paths that are committed previously to be executed, if the runtime flag is enabled. BUG=594639 ==========
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: android_n5x_swarming_rel on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_n5x_...)
The CQ bit was checked by hiroshige@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
PS18 looks good https://codereview.chromium.org/2781713003/diff/340001/third_party/WebKit/Sou... File third_party/WebKit/Source/bindings/core/v8/V8ScriptRunner.cpp (right): https://codereview.chromium.org/2781713003/diff/340001/third_party/WebKit/Sou... third_party/WebKit/Source/bindings/core/v8/V8ScriptRunner.cpp:545: // v8::Exception::TypeError(V8String(isolate, "FOXME Message")) remove? https://codereview.chromium.org/2781713003/diff/340001/third_party/WebKit/Sou... File third_party/WebKit/Source/core/dom/ScriptLoader.cpp (right): https://codereview.chromium.org/2781713003/diff/340001/third_party/WebKit/Sou... third_party/WebKit/Source/core/dom/ScriptLoader.cpp:485: // FOXME: (how) should we handle this? Should we fail more gracefully? just put NOTIMPLEMENTED() for now (for code which live on ToT) https://codereview.chromium.org/2781713003/diff/340001/third_party/WebKit/Sou... File third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp (right): https://codereview.chromium.org/2781713003/diff/340001/third_party/WebKit/Sou... third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp:1120: CHECK_EQ(script_loader->GetScriptType(), ScriptType::kClassic); If PrepareScript is ensured to fail in XML document, we should CHECK_EQ->DCHECK_EQ(after unflag) If PrepareScript may succeed in XML documents, we should "success = false" and report it via VLOG
Ping me once you have CL ready for commit
The CQ bit was checked by hiroshige@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by hiroshige@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was checked by hiroshige@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
hiroshige@chromium.org changed reviewers: + japhet@chromium.org, module-dev@chromium.org
Updated. I think more CHECK()s are needed to ensure ModuleScript is not fetched/executed without flags. I'll do it a separate CL. (kouhei@, dou you have recommendation for where to put CHECK()s? I expect putting CHECK()s to the entry-point methods of ModulatorImpl and ModuleScript::RunScript() will be sufficient) https://codereview.chromium.org/2781713003/diff/340001/third_party/WebKit/Sou... File third_party/WebKit/Source/bindings/core/v8/V8ScriptRunner.cpp (right): https://codereview.chromium.org/2781713003/diff/340001/third_party/WebKit/Sou... third_party/WebKit/Source/bindings/core/v8/V8ScriptRunner.cpp:545: // v8::Exception::TypeError(V8String(isolate, "FOXME Message")) On 2017/04/24 01:24:03, kouhei wrote: > remove? Done. https://codereview.chromium.org/2781713003/diff/340001/third_party/WebKit/Sou... File third_party/WebKit/Source/core/dom/ScriptLoader.cpp (right): https://codereview.chromium.org/2781713003/diff/340001/third_party/WebKit/Sou... third_party/WebKit/Source/core/dom/ScriptLoader.cpp:485: // FOXME: (how) should we handle this? Should we fail more gracefully? On 2017/04/24 01:24:03, kouhei wrote: > just put NOTIMPLEMENTED() for now (for code which live on ToT) I put console logging in Patch Set 21. https://codereview.chromium.org/2781713003/diff/340001/third_party/WebKit/Sou... File third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp (right): https://codereview.chromium.org/2781713003/diff/340001/third_party/WebKit/Sou... third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp:1120: CHECK_EQ(script_loader->GetScriptType(), ScriptType::kClassic); On 2017/04/24 01:24:04, kouhei wrote: > If PrepareScript is ensured to fail in XML document, we should > CHECK_EQ->DCHECK_EQ(after unflag) (Probably) no because ScriptLoader doesn't check whether it is called from XMLDocument. > If PrepareScript may succeed in XML documents, we should "success = false" and > report it via VLOG Done.
The CQ bit was checked by hiroshige@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
On 2017/04/26 01:09:35, hiroshige wrote: > Updated. > > I think more CHECK()s are needed to ensure ModuleScript is not fetched/executed > without flags. I'll do it a separate CL. > > (kouhei@, dou you have recommendation for where to put CHECK()s? I expect > putting CHECK()s to the entry-point methods of ModulatorImpl and > ModuleScript::RunScript() will be sufficient) > > https://codereview.chromium.org/2781713003/diff/340001/third_party/WebKit/Sou... > File third_party/WebKit/Source/bindings/core/v8/V8ScriptRunner.cpp (right): > > https://codereview.chromium.org/2781713003/diff/340001/third_party/WebKit/Sou... > third_party/WebKit/Source/bindings/core/v8/V8ScriptRunner.cpp:545: // > v8::Exception::TypeError(V8String(isolate, "FOXME Message")) > On 2017/04/24 01:24:03, kouhei wrote: > > remove? > > Done. > > https://codereview.chromium.org/2781713003/diff/340001/third_party/WebKit/Sou... > File third_party/WebKit/Source/core/dom/ScriptLoader.cpp (right): > > https://codereview.chromium.org/2781713003/diff/340001/third_party/WebKit/Sou... > third_party/WebKit/Source/core/dom/ScriptLoader.cpp:485: // FOXME: (how) should > we handle this? Should we fail more gracefully? > On 2017/04/24 01:24:03, kouhei wrote: > > just put NOTIMPLEMENTED() for now (for code which live on ToT) > > I put console logging in Patch Set 21. > > https://codereview.chromium.org/2781713003/diff/340001/third_party/WebKit/Sou... > File third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp (right): > > https://codereview.chromium.org/2781713003/diff/340001/third_party/WebKit/Sou... > third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp:1120: > CHECK_EQ(script_loader->GetScriptType(), ScriptType::kClassic); > On 2017/04/24 01:24:04, kouhei wrote: > > If PrepareScript is ensured to fail in XML document, we should > > CHECK_EQ->DCHECK_EQ(after unflag) > (Probably) no because ScriptLoader doesn't check whether it is called from > XMLDocument. > > > If PrepareScript may succeed in XML documents, we should "success = false" and > > report it via VLOG > Done. Created [1] for inserting CHECK()s that forbid module-related code execution without flag. [1] and this CL don't have code dependencies and [1] should be landed first. [1] https://codereview.chromium.org/2843873002/
https://codereview.chromium.org/2781713003/diff/340001/third_party/WebKit/Sou... File third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp (right): https://codereview.chromium.org/2781713003/diff/340001/third_party/WebKit/Sou... third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp:1120: CHECK_EQ(script_loader->GetScriptType(), ScriptType::kClassic); On 2017/04/26 01:09:34, hiroshige wrote: > On 2017/04/24 01:24:04, kouhei wrote: > > If PrepareScript is ensured to fail in XML document, we should > > CHECK_EQ->DCHECK_EQ(after unflag) > (Probably) no because ScriptLoader doesn't check whether it is called from > XMLDocument. Sorry for the back-and-forth (≧∞≦) Now I think PrepareScript *does* need to care if its in XML doc or not in itself, as that may kick module tree fetch. > > If PrepareScript may succeed in XML documents, we should "success = false" and > > report it via VLOG > Done.
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
https://codereview.chromium.org/2781713003/diff/340001/third_party/WebKit/Sou... File third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp (right): https://codereview.chromium.org/2781713003/diff/340001/third_party/WebKit/Sou... third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp:1120: CHECK_EQ(script_loader->GetScriptType(), ScriptType::kClassic); On 2017/04/26 02:05:27, kouhei wrote: > On 2017/04/26 01:09:34, hiroshige wrote: > > On 2017/04/24 01:24:04, kouhei wrote: > > > If PrepareScript is ensured to fail in XML document, we should > > > CHECK_EQ->DCHECK_EQ(after unflag) > > (Probably) no because ScriptLoader doesn't check whether it is called from > > XMLDocument. > Sorry for the back-and-forth (≧∞≦) > Now I think PrepareScript *does* need to care if its in XML doc or not in > itself, as that may kick module tree fetch. > > > > If PrepareScript may succeed in XML documents, we should "success = false" > and > > > report it via VLOG > > Done. > Hmm. To do so, I think PrepareScript() should take an additional parameter that indicates whether module script should be invoked or not. However, I'm not so sure how important that we should block fetching in this case. If <script module> is created by JavaScript inside an XML document, then it is fetched and executed (because it is not processed by this code path IIUC). I want to disable *parser-inserted* <script module> in an XML document because we need more implementation for that.
The CQ bit was checked by hiroshige@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
The CQ bit was checked by hiroshige@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Description was changed from ========== Schedule module script execution This enables module scripts in ScriptLoader, make the module implementation code paths that are committed previously to be executed, if the runtime flag is enabled. BUG=594639 ========== to ========== Enable module scripts in ScriptLoader This enables module scripts in Blink behind a flag. This CL implements module-script-related steps of "prepare a script" in ScriptLoader and thus makes the module implementation code paths that are committed previously to be executed, if the runtime flag is enabled. BUG=594639 ==========
Description was changed from ========== Enable module scripts in ScriptLoader This enables module scripts in Blink behind a flag. This CL implements module-script-related steps of "prepare a script" in ScriptLoader and thus makes the module implementation code paths that are committed previously to be executed, if the runtime flag is enabled. BUG=594639 ========== to ========== Enable module scripts in ScriptLoader This enables module scripts in Blink behind a flag. This CL implements module-script-related steps of "prepare a script" in ScriptLoader and thus makes the module implementation code paths that are committed previously to be executed, if the runtime flag is enabled. This CL also reorganizes the test expectations for module-related tests. BUG=594639 ==========
lgtm On 2017/04/26 19:10:21, hiroshige wrote: > https://codereview.chromium.org/2781713003/diff/340001/third_party/WebKit/Sou... > File third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp (right): > > https://codereview.chromium.org/2781713003/diff/340001/third_party/WebKit/Sou... > third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp:1120: > CHECK_EQ(script_loader->GetScriptType(), ScriptType::kClassic); > On 2017/04/26 02:05:27, kouhei wrote: > > On 2017/04/26 01:09:34, hiroshige wrote: > > > On 2017/04/24 01:24:04, kouhei wrote: > > > > If PrepareScript is ensured to fail in XML document, we should > > > > CHECK_EQ->DCHECK_EQ(after unflag) > > > (Probably) no because ScriptLoader doesn't check whether it is called from > > > XMLDocument. > > Sorry for the back-and-forth (≧∞≦) > > Now I think PrepareScript *does* need to care if its in XML doc or not in > > itself, as that may kick module tree fetch. > > > > > > If PrepareScript may succeed in XML documents, we should "success = false" > > and > > > > report it via VLOG > > > Done. > > > > Hmm. To do so, I think PrepareScript() should take an additional parameter that > indicates whether module script should be invoked or not. > > However, I'm not so sure how important that we should block fetching in this > case. > If <script module> is created by JavaScript inside an XML document, then it is > fetched and executed (because it is not processed by this code path IIUC). > I want to disable *parser-inserted* <script module> in an XML document because > we need more implementation for that. discussed offline. Let's proceed w/ PS24.
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by hiroshige@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by hiroshige@chromium.org
The CQ bit was checked by hiroshige@chromium.org
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was checked by hiroshige@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from kouhei@chromium.org Link to the patchset: https://codereview.chromium.org/2781713003/#ps470001 (title: "Update TestExpectations")
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by hiroshige@chromium.org
The CQ bit was checked by hiroshige@chromium.org
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch. Bot data: {"patchset_id": 470001, "attempt_start_ts": 1493343220964460, "parent_rev": "f7b4872ff079f43bcb448dcf32d38d1901b952c6", "commit_rev": "7da9cf91983855bf2e5861dbe33d50fc9aca9df0"}
Message was sent while issue was closed.
Description was changed from ========== Enable module scripts in ScriptLoader This enables module scripts in Blink behind a flag. This CL implements module-script-related steps of "prepare a script" in ScriptLoader and thus makes the module implementation code paths that are committed previously to be executed, if the runtime flag is enabled. This CL also reorganizes the test expectations for module-related tests. BUG=594639 ========== to ========== Enable module scripts in ScriptLoader This enables module scripts in Blink behind a flag. This CL implements module-script-related steps of "prepare a script" in ScriptLoader and thus makes the module implementation code paths that are committed previously to be executed, if the runtime flag is enabled. This CL also reorganizes the test expectations for module-related tests. BUG=594639 Review-Url: https://codereview.chromium.org/2781713003 Cr-Commit-Position: refs/heads/master@{#467866} Committed: https://chromium.googlesource.com/chromium/src/+/7da9cf91983855bf2e5861dbe33d... ==========
Message was sent while issue was closed.
Committed patchset #25 (id:470001) as https://chromium.googlesource.com/chromium/src/+/7da9cf91983855bf2e5861dbe33d... |