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

Issue 817137 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
not working at Google anymore
Closed: Mar 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 1
Type: Bug



Sign in to add a comment

Introduce chrome://flags/#site-isolation-trial-opt-out

Project Member Reported by creis@chromium.org, Feb 28 2018

Issue description

Chrome Version: 65.0.3325.73
OS: Win/Mac/Linux/ChromeOS/Android

The current #enable-site-per-process flag on chrome://flags can only be set to Enabled or Disabled, the latter of which is the default.  This doesn't indicate if Site Isolation has been turned on via a field trial or (enterprise policy), via either SitePerProcess or IsolateOrigins.

While we can't easily reflect that information on chrome://flags, we should update the text to make it clearer what it controls.  We could also suggest that users check the other ways Site Isolation could be enabled (e.g., SitePerProcess or IsolateOrigins on chrome://policy, or via command lines on chrome://version).

We should also make the setting tri-state (Default/Enabled/Disabled), so that users who end up in the SitePerProcess field trial can turn it off via chrome://flags.  This value would override field trials (and optionally command lines, depending on best practice?), but *not* enterprise policy.

This would not affect whether IsolateOrigins has been enabled via field trial or enterprise policy, although we could consider a chrome://flags setting of Default/Disabled for IsolateOrigins as well.  (Can't easily set it to Enabled without specifying which origins to isolate.)
 

Comment 1 by creis@chromium.org, Feb 28 2018

Just to note the complexity, lukasza@ pointed out that this risks resetting SitePerProcess for users who had it enabled before.  We'll want to see if we can map current Enabled values to Enabled in the tri-state, and current Disabled values to Default in the tri-state.  Not sure if that's easy or not.

Comment 2 by creis@chromium.org, Feb 28 2018

Cc: asvitk...@chromium.org
Labels: -Pri-2 Pri-1
Owner: nick@chromium.org
Status: Assigned (was: Available)
This is a bit tricky, unfortunately, since we don't want Chrome to forget if a user enabled the value before.  I've confirmed that switching from SINGLE_VALUE_TYPE to FEATURE_VALUE_TYPE doesn't preserve site-per-process if the user had it before.  Same for switching from SINGLE_VALUE_TYPE to ENABLE_DISABLE_VALUE_TYPE, since the enabled value changes from "enable-site-per-process" to "enable-site-per-process@1" and doesn't match.

Alexei suggested looking at custom code when the value is read from disk to enable it.  Nick is considering how to add support for this with a migration rule, such that we can switch over to a FEATURE_VALUE_TYPE and set it to enabled if the SINGLE_VALUE_TYPE had been set before.

Nick said he can probably take a look after his current CL.  Let's try to target this for next week's Dev Channel build if possible.  Thanks!

Comment 3 by wfh@chromium.org, Feb 28 2018

During "upgrade", you could just directly read the pref "browser.enabled_labs_experiments" and see if this has been set or not. You can see this in chrome://local-state

Comment 4 by creis@chromium.org, Mar 12 2018

Cc: gov...@chromium.org abdulsyed@chromium.org
Labels: Merge-Request-66
Status: Fixed (was: Assigned)
Fix landed in r542288.  (Description below, since it was missing the bug number and didn't trigger an update.)  I've verified it works in Chrome Mac Canary 67.0.3368.0.

govind@, ok if we merge this to M66 for beta?  We'd like to use it to help users with field trials.

---

https://chromium-review.googlesource.com/c/chromium/src/+/947398

Add a flag that has the effect of force-disabling the site isolation field
trial.

It's a flag, rather than a Feature, so that it can be marked as unsafe later on.

(Ideally we would make the existing #enable-site-per-process flag multi-state,
but there appears to be no ready way to do that without losing the old setting:
there's no migration scheme at present, and since flags storage isn't
versioned, all the ways I can see to build that would be dangerously clumsy.)

TBR=thestig@chromium.org (for printing)

Change-Id: I2225ded078a14b2ffcf6643e483ff995c48cb66a
Reviewed-on: https://chromium-review.googlesource.com/947398
Commit-Queue: Nick Carter <nick@chromium.org>
Reviewed-by: Charlie Reis <creis@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Cr-Commit-Position: refs/heads/master@{#542288}

Comment 5 by gov...@chromium.org, Mar 12 2018

Cc: cma...@chromium.org
I'm ok for M66 merge based on comment #4.
+camsso@, are you ok with this merge to M66?

Comment 6 by cmasso@google.com, Mar 12 2018

Labels: -Merge-Request-66 Merge-Approved-66
All good!

Comment 7 by creis@chromium.org, Mar 12 2018

Thanks!  Merge on the way.
Project Member

Comment 8 by bugdroid1@chromium.org, Mar 12 2018

Labels: -merge-approved-66 merge-merged-3359
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/eaf1a65d2467fb665ddc6848eab79a6400b865e4

commit eaf1a65d2467fb665ddc6848eab79a6400b865e4
Author: Charlie Reis <creis@chromium.org>
Date: Mon Mar 12 17:06:41 2018

Merge to M66: Add a flag that has the effect of force-disabling the site isolation field trial.

It's a flag, rather than a Feature, so that it can be marked as unsafe later on.

(Ideally we would make the existing #enable-site-per-process flag multi-state,
but there appears to be no ready way to do that without losing the old setting:
there's no migration scheme at present, and since flags storage isn't
versioned, all the ways I can see to build that would be dangerously clumsy.)

TBR=nick@chromium.org, thestig@chromium.org (for printing)
BUG= 817137 

(cherry picked from commit 855bc498e787bb5cbbb393769ce2631bc42ab90d)

Change-Id: I2225ded078a14b2ffcf6643e483ff995c48cb66a
Reviewed-on: https://chromium-review.googlesource.com/947398
Commit-Queue: Nick Carter <nick@chromium.org>
Reviewed-by: Charlie Reis <creis@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#542288}
Reviewed-on: https://chromium-review.googlesource.com/959225
Cr-Commit-Position: refs/branch-heads/3359@{#165}
Cr-Branched-From: 66afc5e5d10127546cc4b98b9117aff588b5e66b-refs/heads/master@{#540276}
[modify] https://crrev.com/eaf1a65d2467fb665ddc6848eab79a6400b865e4/chrome/browser/about_flags.cc
[modify] https://crrev.com/eaf1a65d2467fb665ddc6848eab79a6400b865e4/chrome/browser/flag_descriptions.cc
[modify] https://crrev.com/eaf1a65d2467fb665ddc6848eab79a6400b865e4/chrome/browser/flag_descriptions.h
[modify] https://crrev.com/eaf1a65d2467fb665ddc6848eab79a6400b865e4/chrome/browser/policy/site_isolation_policy_browsertest.cc
[modify] https://crrev.com/eaf1a65d2467fb665ddc6848eab79a6400b865e4/components/printing/browser/print_manager_utils.cc
[modify] https://crrev.com/eaf1a65d2467fb665ddc6848eab79a6400b865e4/content/browser/isolated_origin_browsertest.cc
[modify] https://crrev.com/eaf1a65d2467fb665ddc6848eab79a6400b865e4/content/browser/site_isolation_policy.cc
[modify] https://crrev.com/eaf1a65d2467fb665ddc6848eab79a6400b865e4/content/public/common/content_switches.cc
[modify] https://crrev.com/eaf1a65d2467fb665ddc6848eab79a6400b865e4/content/public/common/content_switches.h
[modify] https://crrev.com/eaf1a65d2467fb665ddc6848eab79a6400b865e4/tools/metrics/histograms/enums.xml

Note to self - when configuring field trials, use min_version = 66.0.3359.30:
- Commit 855bc498... initially landed in 67.0.3367.0
- Merged to 66.0.3359.30 (as eaf1a65d...).
Summary: Introduce chrome://flags/#site-isolation-trial-opt-out (was: Update chrome://flags/#enable-site-per-process to be tri-state (and clearer))

Sign in to add a comment