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

Issue 809291 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

mash: Investigate base::Feature usage in the ash process

Project Member Reported by jamescook@chromium.org, Feb 6 2018

Issue description

base::Feature relies on local state. Historically this wasn't loaded early enough for features to be used for configuration at startup. sky@ fixed this for --mus by moving local state loading earlier.

Verify that this works in the ash_and_ui process for --mash.

Until we make this work, "features" will need to be ordinary command line switches.

 

Comment 1 by wutao@chromium.org, Feb 6 2018

Cc: reve...@chromium.org
Status: Fixed (was: Assigned)
TL;DR - base::Feature works fine in //ash for both mustash and classic ash. We should introduce ash/public/cpp/ash_features.(h|cc) and start using it.

Details:
* Enabling flags via command line works (--enable-features=Foo)
* Features enabled via Finch are synchronized after browser startup. These features are applied on the next Chrome start. This behavior is identical in mustash and classic ash.
* There is code in FieldTrialsSynchronizer that copies features to long-runner renderer processes. The ash process under mustash doesn't need this today. If we need it in the future we could change this code to provide an interface for utility processes or other arbitrary mojo service processes:

https://cs.chromium.org/chromium/src/chrome/browser/metrics/field_trial_synchronizer.cc?l=48

If you need to work on this in the future:
* You can experiment on linux-chromeos builds.
* Use an official, branded build.
* Pass --fake-variations-channel=canary to make the metrics system think you are on a real release channel and not on an engineering build
* Use chrome://version/?show-variations-cmd to see what field trials the browser process thinks you are in
* Use logging of base::FeatureList::IsEnabled() in ash to see what the ash process thinks under --mash
* Test with a commonly set field trial, like HappinessTrackingSystem (enabled for 99% of users)

See go/uma and go/finch-debugging for other tips.

Other tricks:
* Wipe your user data dir before starting
* On first login you won't have variations in chrome://version, but you will on the next run

Components: -Internals>MUS Internals>Services>WindowService

Sign in to add a comment