Google hangouts extension doesn't paint on Linux with --isolate-extensions. |
|||||||||||
Issue descriptionVersion: 51.0.2687.0 OS: Linux What steps will reproduce the problem? (0) Launch chrome with --isolate-extensions. (1) Launch Google Hangouts extension (id nckgahadagoaajjgafhacjanaoiihapd). (2) Login. (3) Observe that the window doesn't paint. What is the expected output? Window should paint. What do you see instead? Window doesn't paint. I tried bisecting but couldn't find a working revision (went back to M49). The extension works fine on Windows. I haven't tested other platforms.
,
Mar 24 2016
I'm using openbox as my window manager, and I tested on Unity and it works there. So this must be window manager-specific. I've recorded a video of the behavior.
,
Mar 24 2016
Since this is window manager specific, let's lower the priority to 3.
,
Mar 24 2016
,
Mar 24 2016
Also works fine in Cinnamon and KDE (as well as Windows/Mac). @lukasza confirmed the bug happens in OpenBox. Devlin, do you know of any window manager specific behavior in extension APIs, such as in this Hangouts extension? (Note it's the Hangouts extension and not the app.)
,
Mar 24 2016
Perhaps this is a fallback path if the window manager doesn't support panels?
,
Mar 24 2016
The hangouts extension is whitelisted to use app window panels. Adding some people familiar with it.
,
Mar 24 2016
Daniel points out that we fall back to popups for unsupported window managers: https://code.google.com/p/chromium/codesearch#chromium/src/chrome/browser/ui/panels/panel_manager.cc&l=121 The bug is probably in how WindowsCreateFunction::RunSync creates the popup in the fallback case. I bet it would be fixed by creating the popup in the same BrowsingInstance (i.e., a related SiteInstance) as the extension.
,
Mar 24 2016
Also, an easy way to repro this without OpenBox is to start Chrome with --disable-panels.
,
Mar 31 2016
Happens on WindowMaker too. Extremely annoying because of the field trial (is there any way to disable it?).
,
Mar 31 2016
I'll write the fix. In the meantime… I don't quite remember the syntax for disabling field trials, but the flags are here: https://code.google.com/p/chromium/codesearch#chromium/src/chrome/browser/chrome_browser_main.cc&l=719 Let me dig through my email and see if I can find what I did for this previously.
,
Mar 31 2016
You can use "--force-fieldtrials=SiteIsolationExtensions/Control" on the command line to get yourself out of the trial and into our control group.
,
Mar 31 2016
I think something like this should work: --force-fieldtrials SiteIsolationExtensions/Control/
,
Mar 31 2016
Thanks a lot. Yep, taking out of the field trial made it work again.
,
Mar 31 2016
,
Apr 1 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7a9e836958ce3a7a2ddf40a4c8548678ffcbefc8 commit 7a9e836958ce3a7a2ddf40a4c8548678ffcbefc8 Author: dcheng <dcheng@chromium.org> Date: Fri Apr 01 19:09:31 2016 Extension-created windows should share the creator's BrowingInstance. Without plumbing through the source SiteInstance, the created window always ends up cross process and unscriptable by the background page that created it. This means a background page that opens an extension resource won't be able to script it, even though they are in related browsing contexts and have the same origin. Note that navigations to non-extension origins will still trigger a process swap so we don't lose extension isolation. This also fixes CreateTargetContents to use the source_site_instance parameter if specified; otherwise, the newly created contents will never be scriptable by same-site pages. Also see r365431 which fixed the same problem for panels. BUG= 597750 Review URL: https://codereview.chromium.org/1843943003 Cr-Commit-Position: refs/heads/master@{#384655} [modify] https://crrev.com/7a9e836958ce3a7a2ddf40a4c8548678ffcbefc8/chrome/browser/extensions/api/tabs/tabs_api.cc [modify] https://crrev.com/7a9e836958ce3a7a2ddf40a4c8548678ffcbefc8/chrome/browser/extensions/api/tabs/tabs_test.cc [modify] https://crrev.com/7a9e836958ce3a7a2ddf40a4c8548678ffcbefc8/chrome/browser/extensions/extension_apitest.cc [modify] https://crrev.com/7a9e836958ce3a7a2ddf40a4c8548678ffcbefc8/chrome/browser/extensions/extension_apitest.h [modify] https://crrev.com/7a9e836958ce3a7a2ddf40a4c8548678ffcbefc8/chrome/browser/extensions/window_open_apitest.cc [modify] https://crrev.com/7a9e836958ce3a7a2ddf40a4c8548678ffcbefc8/chrome/browser/ui/browser_navigator.cc [modify] https://crrev.com/7a9e836958ce3a7a2ddf40a4c8548678ffcbefc8/chrome/test/data/extensions/api_test/window_open/panel_browsing_instance/background.js
,
Apr 1 2016
I can confirm that with the above patch, the hangouts extension now works with --isolate-extensions.
,
Apr 1 2016
,
Apr 20 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f206da906ef1e94ee03feeb67e11a82c565baa3b commit f206da906ef1e94ee03feeb67e11a82c565baa3b Author: lukasza <lukasza@chromium.org> Date: Thu Apr 20 23:26:51 2017 New WebContents created via ctrl-click should be in a new process. This CL puts web contents created via ctrl-click (or shift-click, etc.) into a new process (fixing https://crbug.com/23815 ) and makes sure the new web contents are in a new browsing instance (fixing https://crbug.com/658386 and bringing consistency with the behavior of other browsers). This CL also adds a test that verifies that the new web contents created by chrome.windows.create API are in the same "browsing instance" as the caller (i.e. that the windows can find and script each other). This is a regression test for https://crbug.com/597750 that was broken by my earlier attempts to fix https://crbug.com/23815 (and AFAICT the regression wasn't caught by existing tests / tryjobs). FWIW, I've also manually tested the Hangouts extension when launching Chrome (built with this CL) with --isolate-extensions flag. BUG= 23815 , 597750 , 658386 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation Review-Url: https://codereview.chromium.org/2686943002 Cr-Commit-Position: refs/heads/master@{#466187} [modify] https://crrev.com/f206da906ef1e94ee03feeb67e11a82c565baa3b/chrome/browser/chrome_navigation_browsertest.cc [modify] https://crrev.com/f206da906ef1e94ee03feeb67e11a82c565baa3b/chrome/browser/extensions/api/tabs/tabs_api.cc [modify] https://crrev.com/f206da906ef1e94ee03feeb67e11a82c565baa3b/chrome/browser/extensions/api/tabs/tabs_test.cc [modify] https://crrev.com/f206da906ef1e94ee03feeb67e11a82c565baa3b/chrome/browser/ui/browser_navigator.cc [modify] https://crrev.com/f206da906ef1e94ee03feeb67e11a82c565baa3b/chrome/browser/ui/browser_navigator_params.cc [modify] https://crrev.com/f206da906ef1e94ee03feeb67e11a82c565baa3b/chrome/browser/ui/browser_navigator_params.h [add] https://crrev.com/f206da906ef1e94ee03feeb67e11a82c565baa3b/chrome/test/data/frame_tree/anchor_to_same_site_location.html [modify] https://crrev.com/f206da906ef1e94ee03feeb67e11a82c565baa3b/content/browser/frame_host/navigator.h [modify] https://crrev.com/f206da906ef1e94ee03feeb67e11a82c565baa3b/content/browser/frame_host/navigator_impl.cc [modify] https://crrev.com/f206da906ef1e94ee03feeb67e11a82c565baa3b/content/browser/frame_host/navigator_impl.h [modify] https://crrev.com/f206da906ef1e94ee03feeb67e11a82c565baa3b/content/browser/frame_host/render_frame_host_impl.cc [modify] https://crrev.com/f206da906ef1e94ee03feeb67e11a82c565baa3b/content/browser/security_exploit_browsertest.cc [modify] https://crrev.com/f206da906ef1e94ee03feeb67e11a82c565baa3b/content/public/browser/page_navigator.cc [modify] https://crrev.com/f206da906ef1e94ee03feeb67e11a82c565baa3b/content/public/browser/page_navigator.h
,
May 9 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/35b5da108fd0ae4c66c7665a09d0a3d682ce25e5 commit 35b5da108fd0ae4c66c7665a09d0a3d682ce25e5 Author: lukasza <lukasza@chromium.org> Date: Tue May 09 19:36:10 2017 Adding BrowsingInstance verification to test of chrome.windows.create API. BUG= 597750 Review-Url: https://codereview.chromium.org/2873693003 Cr-Commit-Position: refs/heads/master@{#470409} [modify] https://crrev.com/35b5da108fd0ae4c66c7665a09d0a3d682ce25e5/chrome/browser/extensions/api/tabs/tabs_test.cc
,
May 9 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e89c6ad74ad87fc5c2707c9c0247e00cd80f6dc9 commit e89c6ad74ad87fc5c2707c9c0247e00cd80f6dc9 Author: lukasza <lukasza@chromium.org> Date: Tue May 09 23:06:01 2017 Revert of Adding BrowsingInstance verification to test of chrome.windows.create API. (patchset #1 id:1 of https://codereview.chromium.org/2873693003/ ) Reason for revert: The modified test became flaky. Original issue's description: > Adding BrowsingInstance verification to test of chrome.windows.create API. > > BUG= 597750 > > Review-Url: https://codereview.chromium.org/2873693003 > Cr-Commit-Position: refs/heads/master@{#470409} > Committed: https://chromium.googlesource.com/chromium/src/+/35b5da108fd0ae4c66c7665a09d0a3d682ce25e5 TBR=lazyboy@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= 597750 Review-Url: https://codereview.chromium.org/2870243002 Cr-Commit-Position: refs/heads/master@{#470433} [modify] https://crrev.com/e89c6ad74ad87fc5c2707c9c0247e00cd80f6dc9/chrome/browser/extensions/api/tabs/tabs_test.cc
,
May 10 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/41d0368bc22967ae30b2b5097d887f6552efff83 commit 41d0368bc22967ae30b2b5097d887f6552efff83 Author: lukasza <lukasza@chromium.org> Date: Wed May 10 17:20:04 2017 [relanding] Adding BrowsingInstance verification to test of chrome.windows.create API. BUG= 597750 Review-Url: https://codereview.chromium.org/2871063002 Cr-Commit-Position: refs/heads/master@{#470627} [modify] https://crrev.com/41d0368bc22967ae30b2b5097d887f6552efff83/chrome/browser/extensions/api/tabs/tabs_test.cc |
|||||||||||
►
Sign in to add a comment |
|||||||||||
Comment 1 by creis@chromium.org
, Mar 24 2016