Using --isolate-extensions causes iframe css animations to be buggy
Reported by
pe...@pedroassis.com.br,
Mar 7 2017
|
|||||||||||
Issue descriptionChrome Version : 56.0.2924.87 OS Version: OS X 10.12.3 URLs (if applicable) : https://chrome.google.com/webstore/detail/tenfold-edge-version/djcgjinlbipilgojhejjpelniobbdmkk What steps will reproduce the problem? 1. Install https://chrome.google.com/webstore/detail/tenfold-edge-version/djcgjinlbipilgojhejjpelniobbdmkk 2. Click on the Tenfold logo on the left What is the expected result? Animations should be smooth, all images and fonts load reliably since it's loaded from the file system. What happens instead of that? On Chrome 54 with the --isolate-extensions or 56 with no flags the iframe flashes when "closing", on lower end computers this effect is worse and the gif's fps is not high enough to display all the flashes. The images not loading are hard to reproduce, but is also related to enabling the --isolate-extensions flag. Please provide any additional information below. Attach a screenshot if possible. On Chrome 54 without the --isolate-extensions the animation and image loading works, with --isolate-extensions it doesn't. I realize the image and font loading issues are hard to reproduce, I hope to get help on the CSS Animation and that the loading is related to it somehow, otherwise we can file a new bug for it. Google Chrome 56.0.2924.87 (Official Build) (64-bit) Revision 0e9a9a6f3676ae439b78cd9b3f62b4193c3ac7d5-refs/branch-heads/2924@{#895} OS Mac OS X JavaScript V8 5.6.326.50 Flash 24.0.0.221 /Users/pedro/Library/Application Support/Google/Chrome/PepperFlash/24.0.0.221/PepperFlashPlayer.plugin User Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36 Command Line /Applications/Google Chrome.app/Contents/MacOS/Google Chrome --flag-switches-begin --flag-switches-end Executable Path /Applications/Google Chrome.app/Contents/MacOS/Google Chrome Profile Path /Users/pedro/Library/Application Support/Google/Chrome/Default Variations 6a89113b-a7aa8ed 90757ebb-3f4a17df 3095aa95-3f4a17df 8364a5c2-ca7d8d80 7c1bc906-f55a7974 2a33b90e-e7b70917 ba3f87da-b4a760c3 58aac55e-3f4a17df 31362330-3f4a17df c70841c8-a2567007 9e201a2b-803f8fc4 5274eb09-3f4a17df 684d1cdf-51126808 9773d3bd-ca7d8d80 9e5c75f1-c16ec2e6 6b121ae7-ca7d8d80 f5dd6118-2f5721af f79cb77b-3d47f4f4 b7786474-d93a0620 23a898eb-ca7d8d80 74df3f1-803f8fc4 4ea303a6-ecbb250e fe9bec35-186f5907 9736de91-ca7d8d80 3326cd71-3f4a17df 69bf80fa-91c810ef 867c4c68-3f4a17df b2f0086-93053e47 7fc902e8-ca7d8d80 f11cb941-d6606b56 f47ae82a-86f22ee5 3ac60855-486e2a9c f296190c-fae5d535 4442aae2-a5822863 ed1d377-e1cc0f14 75f0f0a0-a5822863 e2b18481-e1cc0f14 e7e71889-4ad60575 828a5926-ca7d8d80
,
Mar 7 2017
Hey, I realized the Chrome Extension link provided on the ticket will not help to reproduce this. Please use this one https://chrome.google.com/webstore/detail/crm-voice-integration/pebamkepebhbkdanceimkpekibllfnod I have tested on a new profile and it works, after installing it should add the iframe to new tabs you open.
,
Mar 7 2017
When you click on the tenfold logo, two click events are triggered, one on the Iframe's element, another one on the parent document. This issue doesn't happen with every click; it happens more often when clicking on the image. My chome version info: Google Chrome 56.0.2924.87 (Official Build) (64-bit) Revision 0e9a9a6f3676ae439b78cd9b3f62b4193c3ac7d5-refs/branch-heads/2924@{#895} OS Mac OS X JavaScript V8 5.6.326.50 Flash 24.0.0.221 /Users/user/Library/Application Support/Google/Chrome/PepperFlash/24.0.0.221/PepperFlashPlayer.plugin User Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36 Command Line /Applications/Google Chrome.app/Contents/MacOS/Google Chrome --flag-switches-begin --enable-experimental-extension-apis --flag-switches-end Executable Path /Applications/Google Chrome.app/Contents/MacOS/Google Chrome Profile Path /Users/user/Library/Application Support/Google/Chrome/Profile 2 Variations 6a89113b-48cb14a 90757ebb-3f4a17df 3095aa95-3f4a17df 8364a5c2-ca7d8d80 7c1bc906-f55a7974 2a33b90e-e7b70917 ba3f87da-b4a760c3 58aac55e-3f4a17df 31362330-3f4a17df c70841c8-a2567007 9e201a2b-803f8fc4 5274eb09-3f4a17df 684d1cdf-51126808 9773d3bd-ca7d8d80 9e5c75f1-c16ec2e6 6b121ae7-ca7d8d80 f5dd6118-2f5721af f79cb77b-3d47f4f4 b7786474-d93a0620 23a898eb-ca7d8d80 4ea303a6-ecbb250e fe9bec35-186f5907 9736de91-ca7d8d80 3326cd71-3f4a17df 69bf80fa-91c810ef 867c4c68-3f4a17df b2f0086-93053e47 7fc902e8-ca7d8d80 f11cb941-d6606b56 f47ae82a-86f22ee5 3ac60855-486e2a9c f296190c-ed7a1963 4442aae2-6e597ede ed1d377-e1cc0f14 75f0f0a0-4ad60575 e2b18481-3a9ae350 e7e71889-4ad60575 828a5926-ca7d8d80
,
Mar 8 2017
Able to reproduce this issue on Mac 10.12.3 using chrome reported version #56.0.2924.87 and latest canary #59.0.3033.0. But using the URL provided in comment #2, it is very difficult to provide bisect result as it is very inconsistent repro. Reporter@ - Could you please provide any other URL to reproduce the issue consistently. Thanks...!!
,
Mar 8 2017
Thanks for the report! I was out yesterday, but I'll make sure we look into this today.
,
Mar 8 2017
Sorry for not commenting... I have been poking at this today, but don't yet have any insight on the problem. I haven't seen images failing to load, but flickering animations happen easily on both Mac and Windows. Re: comment#3, can you please explain this comment a bit more? "When you click on the tenfold logo, two click events are triggered, one on the Iframe's element, another one on the parent document." That's not the way clicks are supposed to work. Multiple handlers within a single document can fire, but only one Document receives the click.
,
Mar 8 2017
For reference, you can test both modes on a particular version of Chrome using the following command line flags:
--force-fieldtrials=SiteIsolationExtensions/Control
--force-fieldtrials=SiteIsolationExtensions/Enabled
If set to Enabled, then --isolate-extensions is on and the bug should repro. That mode is enabled by default for Chrome 56 and up. If set to Control, you should see the old behavior.
Note: When set to Control on 59.0.3033.0 trunk build, I'm seeing the following DCHECK fail in SelectionEditor::updateCachedVisibleSelectionIfNeeded:
// Note: Since we |FrameCaret::updateApperance()| is called from
// |FrameView::performPostLayoutTasks()|, we check lifecycle against
// |AfterPerformLayout| instead of |LayoutClean|.
DCHECK_GE(document().lifecycle().state(),
DocumentLifecycle::AfterPerformLayout);
That was added in https://codereview.chromium.org/2680943004 by yosin@. Probably unrelated to the bug here, since I don't see it fail with SiteIsolationExtensions/Enabled. Just wanted to mention it in case it interferes with repro steps.
,
Mar 8 2017
I am curious which part of the animation is considered the bug here. I see a few possible artifacts, so we should be specific about what to investigate: 1) The blue "tenfold" tab sometimes flickers downward briefly once the iframe has slid out of view to the right. I see this whether I'm in Enabled or Control, but perhaps slightly more often in Enabled than Control. 2) The sliding animation itself seems to catch a bit sometimes as the iframe slides out, only in Enabled mode. This is more prominent on debug builds, so probably more on slower machines as well. Is this the primary concern? 3) When clicking the blue tab to slide it back in, I see the blue tab momentarily appear far to the left (in what appears to be the final location for it), then disappear while the tab animates and slides from right to left. Maybe this is also a concern? Let me know if I missed anything else. I don't see the image or font issue, presumably because I'm not logged in.
,
Mar 8 2017
Hey guys, We have created a new CE with logs to show the 2 clicks issue. You'll need to start loading the extension attached since we are actively working on trying to mitigate the problems we are facing. When clicking on the Tenfold logo you will see a console log in the iframe, triggered by a click listener on the element containing the logo, and in some of the clicks you will also see the log on the parent window, bound to the parent document. To reproduce the images/fonts not loading: - The user opens more than 10 tabs - At least 3 are google products (Gmail, Sheets and Calendar) - While using our product some tabs will be broken, usually Google products - Happens a lot more often on users with Mac Airs, users with MacBook Pro almost won't complain. I can send you guys a user to login to our product to your email, that way you can mess around with more data on the UI, I can also get a dump or something of the problem, Let me know how. These issues are causing a lot of different symptoms on our UI, we worked on fixing some of it, and we are about to release to the CE in the #Comment 2. We are now working on removing our html from the iframe and adding it to the page itself, that way it will stop being loaded in a separated process. This causes us a lot of problems since we rely on the chrome.* apis and also localStorage. Any workarounds will be appreciated.
,
Mar 8 2017
We also added a video that shows the logs being trigger twice for the same click in different documents.
,
Mar 8 2017
Comment#8: I had observed similar to you. A lot of the flickering is there with and without --isolate-extensions. For your third point, I think that is an artifact similar to what we are talking about in bug 608455. We haven't fully worked out synchronization during resize, and that could explain the flash of the tab appearing toward the left (it is getting repositioned before it redraws). Comment#9: Thanks for the additional information. I have a guess about the cause of the clicks triggering twice and should be able to test that soon. A user login to email might be helpful, because I have no idea what could be preventing images from loading and haven't been able to repro that.
,
Mar 9 2017
Thanks for the extra details! Which Chrome APIs were you using in the extension iframe? I was under the impression that such frames were "unblessed" before and couldn't use most chrome.* APIs. If it's just communicating with the background page, you might still be able to do that from a content script (without ending up with out-of-process iframes): https://developer.chrome.com/extensions/content_scripts CC'ing rdevlin.cronin@ in case he has thoughts on workarounds here. Also CC'ing csharrison@ in case the image/font loading issue turns out to be a ResourceScheduler or network stack problem.
,
Mar 9 2017
Removing Blink>CSS and Blink>Animation labels to comply with our single component per bug policy. Please assign to Blink>Animations if there is work to be done on the Blink side here.
,
Mar 9 2017
alancutter@: What is the appropriate way to CC people from those teams for input on the bug? It's hard to tell yet if work is required from them.
,
Mar 9 2017
@12 right, before iframes were unblessed and could only use a handful of extension APIs, most of which are also available in the content script (e.g. runtime.sendMessage/connect, storage). But localStorage would be different.
,
Mar 9 2017
@creis: You can CC style-bugs@chromium.org, this covers both the CSS and Blink Animation teams.
,
Mar 10 2017
Hey guys, Is it possible for our chrome extension to get if the current chrome version has this feature enabled? I want to release a fix those users right away, but not to all our user base. I tried getting the chrome://version, but I couldn't. Thank you.
,
Mar 10 2017
I believe you have to parse the Chrome version out of the user agent string (navigator.userAgent). Everybody with Chrome 56 or later should have extension isolations on, which should be the vast majority of the user base at this point because of auto-update.
,
Mar 13 2017
Adding some relevant folks. Note, that we (Mus team) are actively working on surface synchronization.
,
Mar 13 2017
fsamuel@: That's great! I know some of that work is likely to be longer term-- do you know if there's anything in the short term that might help, or that we should be considering here?
,
Mar 13 2017
We are trying to target surface references (prerequisite for surface sync) for M59, and surface synchronization by M60.
,
May 5 2017
|
|||||||||||
►
Sign in to add a comment |
|||||||||||
Comment 1 by dcheng@chromium.org
, Mar 7 2017Labels: -Pri-3 Pri-2
Owner: kenrb@chromium.org