WebGLRenderingContext removed when mime type is application/xhtml+xml
Reported by
geert.ro...@gmail.com,
Apr 19 2018
|
||||||||||||
Issue descriptionUserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36 Steps to reproduce the problem: 1. open any file with the extension .xhtml 2. check window.WebGLRenderingContext, which is now undefined What is the expected behavior? window.WebGLRenderingContext should still exist. Renaming the file to have the extension html solves the issue immediately. What went wrong? The pixi.js animation framework uses the existence of window.WebGLRenderingContext as a condition to allow WebGL rendering. With Chrome 66 this fails for us, and we have traced the fault to the Content-type of our index files. It is not easy to switch all our applications to use index.html instead of index.xhtml, even when that seems to be solving the issue. Did this work before? N/A Chrome version: 66.0.3359.117 Channel: n/a OS Version: OS X 10.13.4 Flash Version: The problem seems to be with the MIME type "application/xhtml+xml": If I make my Apache daemon serve a file ending in xhtml with the MIME type text/html, WebGLRenderingContext is available. If I configure Apache to serve the html extension with the MIME type application/xhtml+xml, then WebGLRenderingContext disappears when loading html files.
,
Apr 20 2018
Over to peria@ I can confirm this used to work fine in M65, and that it's related to the V8 context snapshots -- disabling use_v8_context_snapshot in GN allows things to work again in master. An older January checkout used to work fine, but applying https://chromium-review.googlesource.com/c/chromium/src/+/903523 causes things to fail in content_shell.
,
Apr 20 2018
Possibly due to V8ContextSnapshot::TakeSnapshot() calling RuntimeEnabledFeatures::SetStableFeaturesEnabled(false); and webgl_rendering_context.idl having
Exposed(Worker OffscreenCanvas, Window StableBlinkFeatures)
,
Apr 20 2018
Thank you for reporting this! It seems no runtime enabled features are enabled if either of following conditions are fullfilled. - Document other than HTMLDocument, or - non main world (e.g. extensions) This issue can happen only with V8 context snapsphot. I'll work for this ASAP, and will upstream the patch in stable/beta branches.
,
Apr 27 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/01ccd7810f7835135ec976d78868c61f6e159117 commit 01ccd7810f7835135ec976d78868c61f6e159117 Author: Hitoshi Yoshida <peria@chromium.org> Date: Fri Apr 27 07:34:28 2018 bindings: Prepare Blink modules before setting up the main thread Before this CL, the main thread is set up only for core module. i.e. In V8ContextSnapshot::EnsureTemplate, it creates V8Window function template for modules, and it is used for default contexts. After this CL, those elements are set with modules component. Bug: 834642 Change-Id: I94bb23376d8138abbf9806b7bbad4f59eaee6d8f Reviewed-on: https://chromium-review.googlesource.com/1030530 Commit-Queue: Hitoshi Yoshida <peria@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Cr-Commit-Position: refs/heads/master@{#554335} [modify] https://crrev.com/01ccd7810f7835135ec976d78868c61f6e159117/third_party/blink/renderer/controller/blink_initializer.cc
,
Apr 30 2018
Able to reproduce the issue on mac 10.13.3 using chrome reported version #66.0.3359.117. Verified the fix on Mac 10.13.3, Win-10 and Ubuntu 17.10 using Chrome version #68.0.3415.0 as per the comment #0. Attaching screen cast for reference. Observed that window.WebGLRenderingContext still exist without any issues when opened any file with the extension .xhtml. Hence, the fix is working as expected. Adding the verified labels. Thanks...!!
,
May 1 2018
Thank you for verification!
,
May 1 2018
Shouldn't this be merged into M66 and M67?
,
May 2 2018
Yes, this change should be merged into them. I'm preparing a test to verify the fix.
,
May 2 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9fcf7a93e16663969afc3b0204e6526434b106be commit 9fcf7a93e16663969afc3b0204e6526434b106be Author: Hitoshi Yoshida <peria@chromium.org> Date: Wed May 02 08:34:38 2018 test: Add a layout test to test if window function template is set up correctly For V8ContextEnabled feature, we create and update function templates of some interfaces in some places. This test tests if the prepared templates for default contexts are set up correctly. Bug: 834642 Change-Id: I387cc5c8f451fb8b81c59618a95aa47701ea0196 Reviewed-on: https://chromium-review.googlesource.com/1038925 Reviewed-by: Yuki Shiino <yukishiino@chromium.org> Commit-Queue: Hitoshi Yoshida <peria@chromium.org> Cr-Commit-Position: refs/heads/master@{#555330} [add] https://crrev.com/9fcf7a93e16663969afc3b0204e6526434b106be/third_party/WebKit/LayoutTests/bindings/function-template-initialization.xhtml
,
May 7 2018
The test in #10 wend fine through out this weekend. Can we merge the CL in #5 to M66/67?
,
May 7 2018
This bug requires manual review: M67 has already been promoted to the beta branch, so this requires manual review Please contact the milestone owner if you have questions. Owners: cmasso@(Android), cmasso@(iOS), kbleicher@(ChromeOS), govind@(Desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
May 7 2018
Add govind@ in cc as a milestone owner of desktop.
,
May 7 2018
Approving merge for CL listed at #5 to M67 branch 3396 based on comment #6 and #11. Pls merge ASAP. Thank you. + abdulsyed@ for M66 merge review.
,
May 7 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/54a3f5b7a7029f30bc7910bd7a1454711d9ee480 commit 54a3f5b7a7029f30bc7910bd7a1454711d9ee480 Author: Hitoshi Yoshida <peria@chromium.org> Date: Mon May 07 05:59:46 2018 bindings: Prepare Blink modules before setting up the main thread Before this CL, the main thread is set up only for core module. i.e. In V8ContextSnapshot::EnsureTemplate, it creates V8Window function template for modules, and it is used for default contexts. After this CL, those elements are set with modules component. Bug: 834642 Change-Id: I94bb23376d8138abbf9806b7bbad4f59eaee6d8f Reviewed-on: https://chromium-review.googlesource.com/1030530 Commit-Queue: Hitoshi Yoshida <peria@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#554335}(cherry picked from commit 01ccd7810f7835135ec976d78868c61f6e159117) Reviewed-on: https://chromium-review.googlesource.com/1046406 Reviewed-by: Hitoshi Yoshida <peria@chromium.org> Cr-Commit-Position: refs/branch-heads/3396@{#498} Cr-Branched-From: 9ef2aa869bc7bc0c089e255d698cca6e47d6b038-refs/heads/master@{#550428} [modify] https://crrev.com/54a3f5b7a7029f30bc7910bd7a1454711d9ee480/third_party/blink/renderer/controller/blink_initializer.cc
,
May 7 2018
Since M66 is already out in stable, why is this urgent?
,
May 7 2018
This issue affects on limited features in very limited situation, but I think it needs to be merged. Because of this bug, all runtime enabled features in following situation are disabled regardless the flags. - browsing xhtml/xml files, or in Chrome extensions - defined on Window or Document interfaces - defined in modules component Especially, like WebGLRenderingContext, 4 more features are enabled with StableBlinkFeatures flag, so they are expected to be always enabled. Affected cases can be rare, but therefore, this issue should be fixed on Stable Chrome.
,
May 8 2018
How safe is the merge overall? What are the chances of it introducing new regressions? And are you okay with waiting 3 more weeks for this to be fixed in M67? We are planning a respin for M66 this week, but only merging items that are absolutely critical and user blocking.
,
May 8 2018
> How safe is the merge overall? It has no security risk, I believe. > What are the chances of it introducing new regressions? I did not confirm yet, but issue 839167 may happen. > And are you okay with waiting 3 more weeks for this to be fixed in M67? Let me check the use counter for the 5 StableBlinkFeatures, though the numbers are counted in HTML.
,
May 8 2018
Re #19, if you confirm this change is causing issue 839167 , what will be the plan for M67?
,
May 8 2018
Per #19, let's punt this to M67 instead.
,
May 8 2018
#20; I'd keep picked CL in M67. - The CL in #5 fixes an issue in behavior. The behavior issue does not affect on most people, but the issue should not be left for 9 weeks (from M66). - I confirmed the regression on Windows (not reproducible on MacOSX/Linux). - The regression is measurable only with blank pages, so I feel it is not problematic. - The regression was fixed on trunk, but it is difficult to pick it together. https://chromium.googlesource.com/chromium/src/+/2b81be59661f7014eab10658327801f80b5b1ebf
,
May 8 2018
Re #22: SGTM. Pls continue to monitor this and let us know if merged CL needs to be reverted from M67. Thank you.
,
May 9 2018
Able to reproduce the issue on mac 10.13.3 using chrome reported version #66.0.3359.117. Verified the fix on Mac 10.13.3, Win-10 and Ubuntu 17.10 using Chrome version #67.0.3396.40 as per the comment #0. Attaching screen cast for reference. Observed that window.WebGLRenderingContext still exist without any issues when opened any file with the extension .xhtml. Hence, the fix is working as expected. Adding the verified labels. Thanks...!!
,
May 11 2018
|
||||||||||||
►
Sign in to add a comment |
||||||||||||
Comment 1 by dtapu...@chromium.org
, Apr 19 2018