New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 597750 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug



Sign in to add a comment

Google hangouts extension doesn't paint on Linux with --isolate-extensions.

Project Member Reported by lfg@chromium.org, Mar 24 2016

Issue description

Version: 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.
 

Comment 1 by creis@chromium.org, Mar 24 2016

Hmm, I'm not able to repro on Linux in 51.0.2687.0 with --isolate-extensions.  I did sign in, and it seems to be painting fine.

Comment 2 by lfg@chromium.org, 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.

bug.mp4
35.0 KB Download

Comment 3 by lfg@chromium.org, Mar 24 2016

Labels: -Pri-2 Pri-3
Since this is window manager specific, let's lower the priority to 3.

Comment 4 by lfg@chromium.org, Mar 24 2016

Cc: rdevlin....@chromium.org

Comment 5 by creis@chromium.org, Mar 24 2016

Cc: lukasza@chromium.org alex...@chromium.org
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.)

Comment 6 by creis@chromium.org, Mar 24 2016

Perhaps this is a fallback path if the window manager doesn't support panels?
Cc: tapted@chromium.org dim...@chromium.org
The hangouts extension is whitelisted to use app window panels.  Adding some people familiar with it.

Comment 8 by creis@chromium.org, Mar 24 2016

Cc: dcheng@chromium.org
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.
Also, an easy way to repro this without OpenBox is to start Chrome with --disable-panels.

Comment 10 by piman@chromium.org, Mar 31 2016

Labels: -Pri-3 Pri-1
Happens on WindowMaker too. Extremely annoying because of the field trial (is there any way to disable it?).
Owner: dcheng@chromium.org
Status: Started (was: Available)
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.

Comment 12 by nasko@chromium.org, 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.
I think something like this should work:
--force-fieldtrials SiteIsolationExtensions/Control/

Comment 14 by piman@chromium.org, Mar 31 2016

Labels: -Pri-1 Pri-3
Thanks a lot. Yep, taking out of the field trial made it work again.

Comment 15 by piman@chromium.org, Mar 31 2016

Labels: -Pri-3 Pri-1
Project Member

Comment 16 by bugdroid1@chromium.org, 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

I can confirm that with the above patch, the hangouts extension now works with --isolate-extensions.
Status: Fixed (was: Started)
Project Member

Comment 19 by bugdroid1@chromium.org, 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

Project Member

Comment 20 by bugdroid1@chromium.org, 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

Project Member

Comment 21 by bugdroid1@chromium.org, 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

Project Member

Comment 22 by bugdroid1@chromium.org, 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