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

Issue 884066 link

Starred by 0 users

Issue metadata

Status: Fixed
Owner:
Closed: Oct 13
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Feature

Blocking:
issue 870128


Participants' hotlists:
Better-Together-Launch-Blockers


Sign in to add a comment

Set up OOBE-related flags

Project Member Reported by khorimoto@chromium.org, Sep 14

Issue description

Before OOBE, our plan was to disable our flags by default, then enable them via Finch.

However, once a Finch flag is enabled, it does not turn on automatically. Instead, the Chromebook downloads the updated configuration and applies the new flag values the next time Chrome starts up (i.e., the user must log out/in or turn their machine off/on).

This is problematic for OOBE, which runs the first time the user logs in, before the Finch configuration is downloaded.

alemate@/asvitkine@, do you have suggestions here?
 
Owner: jlklein@chromium.org
Status: Assigned (was: Available)
I'm not familiar with the plan to have the flags be disabled by default.  We need to turn the flags to on-by-default such that the feature has time to soak in dev/beta before releasing on stable.

Assigning to Jeremy to confirm the plan.
Discussed offline, but summarizing the current state of things here for posterity:

We normally follow go/newChromeFeature and go/finch-best-practices for rollouts, which requires that the flags stay off by default for now. There is, however, a path in go/newChromeFeature for enabling flags by default and maybe that should apply here. There are a couple issues with going that route, though:

1) Enabling these by default on dev/beta without the ability for external users to get our GmsCore modulefood and flags enabled means that Magic Tether and SmartLock disappear for dev/beta users with no way for them to re-enable them (setup won't work and won't show up because they won't have a compatible phone).
2) We currently gate features like Magic Tether by hardware class because of Bluetooth compatibility issues. This won't be easily possible if we default its flag to true. If it stays off by default, we have the issues with finch configurations in OOBE like Kyle mentioned. Maybe this means the user just won't get MagicTether until the Finch configuration is downloaded and applied, but they can still go through setup (assuming that's true by default)?

Kyle is going to sync up with asvitkine@ and alemate@ to discuss our options here and how Finch has worked within OOBE in the past.
Owner: khorimoto@chromium.org
It's true that there's no "first run" support for Chrome OS. We support it on some other platforms - for example Windows Chrome installer will download the Finch seed which will then be used on first run of Chrome.

We also do something similar as part of Chrome for Android first run flow - it downloads the seed which is then used when the browser is brought up after the wizard.

It would be nice if something similar was available on Chrome OS - e.g. for it to be downloaded during OOBE. Still even that might not solve your case since you want these to apply to OOBE itself, right?

One option is to set up the configuration entirely on the client side. iOS team recently did something similar. Basically you can specify all your groups, feature associations, percentages that are per channel all up front in the client code. Then, the field trial will exist even before Finch config is downloaded.

If you want to go that route, here's the iOS code you can refer to that does something similar:
https://cs.chromium.org/chromium/src/ios/chrome/browser/ios_chrome_field_trials.cc?rcl=c5e565bc5451d39f3cb1224b79cc103ff8806569&l=52
Expanding on asvitkine@'s response, it looks like we could add a hook at [1] in which we override the flags to enabled for this run. Then, for subsequent runs, we not override the flags so that Finch can take over.

[1] https://cs.chromium.org/chromium/src/chrome/browser/chrome_browser_field_trials.cc?q=SetupFeatureControllingFieldTrials
Components: -UI>ProximityAuth UI>Multidevice
Status: Started (was: Assigned)
Project Member

Comment 8 by bugdroid1@chromium.org, Oct 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d9251a5f84008c7c537fc075de00cace787e5f4f

commit d9251a5f84008c7c537fc075de00cace787e5f4f
Author: Kyle Horimoto <khorimoto@google.com>
Date: Thu Oct 11 16:22:02 2018

[CrOS MultiDevice] Add shutdown flow for DeviceSync service.

Previously, the DeviceSync service would retain references to its
dependencies until it was deleted when the browser process was killed.

When attempting to enable the MultiDevice flags by default, this
causes crashes in some tests due to the service not removing itself as
an observer. This CL adds an explicit shutdown step which removes these
references and causes the observer to be removed.

Sample failure:
https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8933085811650027344/+/steps/sync_integration_tests__with_patch_/0/logs/USS__x2f_SingleClientWalletSyncTest.DownloadProfileStorage__x2f_0/0

Bug:  884066 
Change-Id: I87bcc9ab27f0a1032bc6990a71f863786ddf97fc
Reviewed-on: https://chromium-review.googlesource.com/c/1274886
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Jeremy Klein <jlklein@chromium.org>
Cr-Commit-Position: refs/heads/master@{#598789}
[modify] https://crrev.com/d9251a5f84008c7c537fc075de00cace787e5f4f/chromeos/services/device_sync/device_sync_base.cc
[modify] https://crrev.com/d9251a5f84008c7c537fc075de00cace787e5f4f/chromeos/services/device_sync/device_sync_base.h
[modify] https://crrev.com/d9251a5f84008c7c537fc075de00cace787e5f4f/chromeos/services/device_sync/device_sync_impl.cc
[modify] https://crrev.com/d9251a5f84008c7c537fc075de00cace787e5f4f/chromeos/services/device_sync/device_sync_impl.h

Project Member

Comment 9 by bugdroid1@chromium.org, Oct 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/93a952458774c659ccb7ba85a9ab13120cb8dde3

commit 93a952458774c659ccb7ba85a9ab13120cb8dde3
Author: Kyle Horimoto <khorimoto@google.com>
Date: Thu Oct 11 18:34:51 2018

[CrOS MultiDevice] Don't start multi-device services if prohibited.

This eliminates segfaults when the device administrator has prohibited
all multi-device features and fixes some tests which break when the
multi-device flags are enabled by default.

Bug:  884066 
Change-Id: I6ac54f2e5c065d8368af6c51eb1a61cfb6b5abd7
Reviewed-on: https://chromium-review.googlesource.com/c/1275307
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Jeremy Klein <jlklein@chromium.org>
Reviewed-by: James Hawkins <jhawkins@chromium.org>
Cr-Commit-Position: refs/heads/master@{#598862}
[modify] https://crrev.com/93a952458774c659ccb7ba85a9ab13120cb8dde3/chrome/browser/chromeos/android_sms/android_sms_service_factory.cc
[modify] https://crrev.com/93a952458774c659ccb7ba85a9ab13120cb8dde3/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_factory.cc
[modify] https://crrev.com/93a952458774c659ccb7ba85a9ab13120cb8dde3/chrome/browser/chromeos/multidevice_setup/multidevice_setup_client_factory.cc
[modify] https://crrev.com/93a952458774c659ccb7ba85a9ab13120cb8dde3/chrome/browser/chromeos/tether/tether_service_factory.cc
[modify] https://crrev.com/93a952458774c659ccb7ba85a9ab13120cb8dde3/chrome/browser/ui/webui/settings/chromeos/multidevice_handler.cc
[modify] https://crrev.com/93a952458774c659ccb7ba85a9ab13120cb8dde3/chrome/browser/ui/webui/settings/chromeos/multidevice_handler.h
[modify] https://crrev.com/93a952458774c659ccb7ba85a9ab13120cb8dde3/chromeos/services/multidevice_setup/multidevice_setup_initializer.cc
[modify] https://crrev.com/93a952458774c659ccb7ba85a9ab13120cb8dde3/chromeos/services/multidevice_setup/public/cpp/BUILD.gn
[modify] https://crrev.com/93a952458774c659ccb7ba85a9ab13120cb8dde3/chromeos/services/multidevice_setup/public/cpp/multidevice_setup_client.cc
[modify] https://crrev.com/93a952458774c659ccb7ba85a9ab13120cb8dde3/chromeos/services/multidevice_setup/public/cpp/multidevice_setup_client.h
[modify] https://crrev.com/93a952458774c659ccb7ba85a9ab13120cb8dde3/chromeos/services/multidevice_setup/public/cpp/prefs.cc
[modify] https://crrev.com/93a952458774c659ccb7ba85a9ab13120cb8dde3/chromeos/services/multidevice_setup/public/cpp/prefs.h

Project Member

Comment 10 by bugdroid1@chromium.org, Oct 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5203a4a475d0eb4c10ddacd9728ca6803c07487f

commit 5203a4a475d0eb4c10ddacd9728ca6803c07487f
Author: Kyle Horimoto <khorimoto@google.com>
Date: Thu Oct 11 22:06:43 2018

ProcessMap: Work around racy service listener.

Previously, we would DCHECK() that the ProcessMap did not contain an
identity when initializing it. However, this led to some false-positives
which resulted in the map containing spurious entries.

This CL updates ProcessMap::OnInit() to work around this issue by
removing any existing entries for a given identity before trying to add
new ones.

Bug:  818593 ,  884066 
Change-Id: Ic69af1f6b622dc73dde8fb09ad659b887857e384
Reviewed-on: https://chromium-review.googlesource.com/c/1277808
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#598972}
[modify] https://crrev.com/5203a4a475d0eb4c10ddacd9728ca6803c07487f/services/resource_coordinator/memory_instrumentation/process_map.cc

Project Member

Comment 11 by bugdroid1@chromium.org, Oct 12

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f49ce435169672969142e5da5303def870e7fd98

commit f49ce435169672969142e5da5303def870e7fd98
Author: Kyle Horimoto <khorimoto@google.com>
Date: Fri Oct 12 03:06:39 2018

[CrOS MultiDevice] Add Shutdown() handling in MultiDevice KeyedServices.

This ensures that connections to our Mojo services are disconnected,
which will result in the Shutdown() code added in this CL will run:
https://chromium-review.googlesource.com/c/chromium/src/+/1274886

Bug:  884066 
Change-Id: Ifb4fad53fc9d1a693ae83099dc43ee9908303ea7
TBR: jhawkins@chromium.org
Reviewed-on: https://chromium-review.googlesource.com/c/1277588
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Jeremy Klein <jlklein@chromium.org>
Cr-Commit-Position: refs/heads/master@{#599080}
[modify] https://crrev.com/f49ce435169672969142e5da5303def870e7fd98/chrome/browser/chromeos/android_sms/android_sms_service.cc
[modify] https://crrev.com/f49ce435169672969142e5da5303def870e7fd98/chrome/browser/chromeos/device_sync/device_sync_client_factory.cc
[modify] https://crrev.com/f49ce435169672969142e5da5303def870e7fd98/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_regular.cc
[modify] https://crrev.com/f49ce435169672969142e5da5303def870e7fd98/chrome/browser/chromeos/multidevice_setup/multidevice_setup_client_factory.cc
[modify] https://crrev.com/f49ce435169672969142e5da5303def870e7fd98/chromeos/services/device_sync/BUILD.gn
[modify] https://crrev.com/f49ce435169672969142e5da5303def870e7fd98/chromeos/services/device_sync/device_sync_base.cc
[modify] https://crrev.com/f49ce435169672969142e5da5303def870e7fd98/chromeos/services/device_sync/device_sync_base.h
[modify] https://crrev.com/f49ce435169672969142e5da5303def870e7fd98/chromeos/services/device_sync/device_sync_impl.cc
[modify] https://crrev.com/f49ce435169672969142e5da5303def870e7fd98/chromeos/services/device_sync/fake_device_sync.cc

Project Member

Comment 12 by bugdroid1@chromium.org, Oct 12

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d306c77989003111b93658134ca9212550629631

commit d306c77989003111b93658134ca9212550629631
Author: Kyle Horimoto <khorimoto@google.com>
Date: Fri Oct 12 15:20:45 2018

[CrOS MultiDevice] Enable multi-device features during OOBE.

This CL enables several multi-device flags by default. This resulted in
lots of broken tests, so this CL also fixes those broken tests.

Instant Tethering is enabled via Finch flags; however, Finch does not
immediately enable/disable features. Instead, when a user logs in, a
Finch configuration is downloaded and is applied the next time the user
logs in. Thus, to ensure that these features are available during OOBE,
this CL overrides multi-device feature experiments during the first
run. On subsequent logins, the Finch feature list will be applied.

Bug:  884066 
Change-Id: Ie12f3c62e766457456fd8a35e13168e6b35331ec
Reviewed-on: https://chromium-review.googlesource.com/c/1260491
Commit-Queue: Jeremy Klein <jlklein@chromium.org>
Reviewed-by: Stefan Kuhne <skuhne@chromium.org>
Reviewed-by: Takumi Fujimoto <takumif@chromium.org>
Reviewed-by: Ben Wells <benwells@chromium.org>
Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
Reviewed-by: Jeremy Klein <jlklein@chromium.org>
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Cr-Commit-Position: refs/heads/master@{#599223}
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/ash/multi_device_setup/multi_device_notification_presenter.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chrome/browser/BUILD.gn
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chrome/browser/chrome_browser_field_trials.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chrome/browser/chromeos/android_sms/android_sms_service_factory.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chrome/browser/chromeos/android_sms/android_sms_service_factory.h
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chrome/browser/chromeos/device_sync/device_sync_client_factory.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chrome/browser/chromeos/device_sync/device_sync_client_factory.h
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chrome/browser/chromeos/extensions/quick_unlock_private/quick_unlock_private_api_unittest.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_unittest_chromeos.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chrome/browser/chromeos/login/hid_detection_browsertest.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chrome/browser/chromeos/login/wizard_controller.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chrome/browser/chromeos/multidevice_setup/multidevice_setup_client_factory.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chrome/browser/chromeos/multidevice_setup/multidevice_setup_client_factory.h
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chrome/browser/chromeos/tether/tether_service_factory.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chrome/browser/chromeos/tether/tether_service_factory.h
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chrome/browser/chromeos/tether/tether_service_unittest.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chrome/browser/media/router/presentation/independent_otr_profile_manager_browsertest.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chrome/browser/profiles/profile_browsertest.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chromeos/chromeos_features.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chromeos/components/proximity_auth/BUILD.gn
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chromeos/components/proximity_auth/messenger_impl_unittest.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chromeos/components/proximity_auth/proximity_auth_profile_pref_manager_unittest.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chromeos/components/proximity_auth/proximity_auth_system_unittest.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chromeos/components/proximity_auth/proximity_monitor_impl_unittest.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chromeos/components/proximity_auth/remote_device_life_cycle_impl_unittest.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chromeos/components/proximity_auth/unlock_manager_impl_unittest.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chromeos/components/tether/asynchronous_shutdown_object_container_impl_unittest.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chromeos/components/tether/connect_tethering_operation_unittest.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chromeos/components/tether/connection_preserver_impl_unittest.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chromeos/components/tether/disconnect_tethering_operation_unittest.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chromeos/components/tether/disconnect_tethering_request_sender_impl_unittest.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chromeos/components/tether/host_connection_metrics_logger_unittest.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chromeos/components/tether/host_scan_scheduler_impl_unittest.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chromeos/components/tether/host_scanner_impl_unittest.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chromeos/components/tether/host_scanner_operation_unittest.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chromeos/components/tether/keep_alive_operation_unittest.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chromeos/components/tether/keep_alive_scheduler_unittest.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chromeos/components/tether/message_transfer_operation_unittest.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chromeos/components/tether/tether_connector_impl_unittest.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chromeos/services/device_sync/device_sync_impl.cc
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chromeos/services/multidevice_setup/DEPS
[modify] https://crrev.com/d306c77989003111b93658134ca9212550629631/chromeos/services/multidevice_setup/public/cpp/BUILD.gn
[add] https://crrev.com/d306c77989003111b93658134ca9212550629631/chromeos/services/multidevice_setup/public/cpp/first_run_field_trial.cc
[add] https://crrev.com/d306c77989003111b93658134ca9212550629631/chromeos/services/multidevice_setup/public/cpp/first_run_field_trial.h

Status: Fixed (was: Started)
Project Member

Comment 14 by bugdroid1@chromium.org, Oct 12

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bb14f009a731bd448752cd13cabc1feea2487836

commit bb14f009a731bd448752cd13cabc1feea2487836
Author: James MacLean <wjmaclean@chromium.org>
Date: Fri Oct 12 18:06:10 2018

Revert "[CrOS MultiDevice] Enable multi-device features during OOBE."

This reverts commit d306c77989003111b93658134ca9212550629631.

Reason for revert: speculative revert, suspected of causing flakiness in ErrorPageAutoReloadTest tests. (see https://chromium-review.googlesource.com/c/chromium/src/+/1260491)

Original change's description:
> [CrOS MultiDevice] Enable multi-device features during OOBE.
> 
> This CL enables several multi-device flags by default. This resulted in
> lots of broken tests, so this CL also fixes those broken tests.
> 
> Instant Tethering is enabled via Finch flags; however, Finch does not
> immediately enable/disable features. Instead, when a user logs in, a
> Finch configuration is downloaded and is applied the next time the user
> logs in. Thus, to ensure that these features are available during OOBE,
> this CL overrides multi-device feature experiments during the first
> run. On subsequent logins, the Finch feature list will be applied.
> 
> Bug:  884066 
> Change-Id: Ie12f3c62e766457456fd8a35e13168e6b35331ec
> Reviewed-on: https://chromium-review.googlesource.com/c/1260491
> Commit-Queue: Jeremy Klein <jlklein@chromium.org>
> Reviewed-by: Stefan Kuhne <skuhne@chromium.org>
> Reviewed-by: Takumi Fujimoto <takumif@chromium.org>
> Reviewed-by: Ben Wells <benwells@chromium.org>
> Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
> Reviewed-by: Jeremy Klein <jlklein@chromium.org>
> Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#599223}

TBR=xiyuan@chromium.org,skuhne@chromium.org,khorimoto@chromium.org,benwells@chromium.org,asvitkine@chromium.org,jlklein@chromium.org,takumif@chromium.org

Change-Id: Icd73d0f4f859ab9ea6c0b4a0761d77a32a9bee15
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  884066 
Reviewed-on: https://chromium-review.googlesource.com/c/1277577
Reviewed-by: James MacLean <wjmaclean@chromium.org>
Commit-Queue: James MacLean <wjmaclean@chromium.org>
Cr-Commit-Position: refs/heads/master@{#599286}
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/ash/multi_device_setup/multi_device_notification_presenter.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chrome/browser/BUILD.gn
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chrome/browser/chrome_browser_field_trials.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chrome/browser/chromeos/android_sms/android_sms_service_factory.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chrome/browser/chromeos/android_sms/android_sms_service_factory.h
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chrome/browser/chromeos/device_sync/device_sync_client_factory.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chrome/browser/chromeos/device_sync/device_sync_client_factory.h
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chrome/browser/chromeos/extensions/quick_unlock_private/quick_unlock_private_api_unittest.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_unittest_chromeos.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chrome/browser/chromeos/login/hid_detection_browsertest.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chrome/browser/chromeos/login/wizard_controller.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chrome/browser/chromeos/multidevice_setup/multidevice_setup_client_factory.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chrome/browser/chromeos/multidevice_setup/multidevice_setup_client_factory.h
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chrome/browser/chromeos/tether/tether_service_factory.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chrome/browser/chromeos/tether/tether_service_factory.h
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chrome/browser/chromeos/tether/tether_service_unittest.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chrome/browser/media/router/presentation/independent_otr_profile_manager_browsertest.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chrome/browser/profiles/profile_browsertest.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chromeos/chromeos_features.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chromeos/components/proximity_auth/BUILD.gn
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chromeos/components/proximity_auth/messenger_impl_unittest.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chromeos/components/proximity_auth/proximity_auth_profile_pref_manager_unittest.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chromeos/components/proximity_auth/proximity_auth_system_unittest.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chromeos/components/proximity_auth/proximity_monitor_impl_unittest.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chromeos/components/proximity_auth/remote_device_life_cycle_impl_unittest.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chromeos/components/proximity_auth/unlock_manager_impl_unittest.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chromeos/components/tether/asynchronous_shutdown_object_container_impl_unittest.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chromeos/components/tether/connect_tethering_operation_unittest.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chromeos/components/tether/connection_preserver_impl_unittest.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chromeos/components/tether/disconnect_tethering_operation_unittest.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chromeos/components/tether/disconnect_tethering_request_sender_impl_unittest.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chromeos/components/tether/host_connection_metrics_logger_unittest.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chromeos/components/tether/host_scan_scheduler_impl_unittest.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chromeos/components/tether/host_scanner_impl_unittest.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chromeos/components/tether/host_scanner_operation_unittest.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chromeos/components/tether/keep_alive_operation_unittest.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chromeos/components/tether/keep_alive_scheduler_unittest.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chromeos/components/tether/message_transfer_operation_unittest.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chromeos/components/tether/tether_connector_impl_unittest.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chromeos/services/device_sync/device_sync_impl.cc
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chromeos/services/multidevice_setup/DEPS
[modify] https://crrev.com/bb14f009a731bd448752cd13cabc1feea2487836/chromeos/services/multidevice_setup/public/cpp/BUILD.gn
[delete] https://crrev.com/fd0c7f40430ff6a8ea5833a16be2d44c8e014367/chromeos/services/multidevice_setup/public/cpp/first_run_field_trial.cc
[delete] https://crrev.com/fd0c7f40430ff6a8ea5833a16be2d44c8e014367/chromeos/services/multidevice_setup/public/cpp/first_run_field_trial.h

Status: Started (was: Fixed)
Re-opened due to the above revert CL.
Labels: Merge-Request-71
Requesting merge to M-71.
Project Member

Comment 17 by bugdroid1@chromium.org, Oct 13

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b2868aaedd272b1f32c002076960f95386caa8ba

commit b2868aaedd272b1f32c002076960f95386caa8ba
Author: Kyle Horimoto <khorimoto@google.com>
Date: Sat Oct 13 00:13:44 2018

[CrOS MultiDevice] Reland: Enable multi-device features during OOBE.

Original CL (uploaded as patchset 1):
https://chromium-review.googlesource.com/c/chromium/src/+/1260491

Revert CL:
https://chromium-review.googlesource.com/c/chromium/src/+/1277577

Fix for reland:
To ensure that no unnecessary network requests are made, I used a fake
DeviceSync implementation for browser_tests, which I included in
patchset 2.


Original CL description:
This CL enables several multi-device flags by default. This resulted in
lots of broken tests, so this CL also fixes those broken tests.

Instant Tethering is enabled via Finch flags; however, Finch does not
immediately enable/disable features. Instead, when a user logs in, a
Finch configuration is downloaded and is applied the next time the user
logs in. Thus, to ensure that these features are available during OOBE,
this CL overrides multi-device feature experiments during the first
run. On subsequent logins, the Finch feature list will be applied.

Bug:  884066 ,  894882 
Change-Id: I879b903762f605d93eb6c9b1c709e0a4313903ef
TBR: asvitkine@chromium.org
Reviewed-on: https://chromium-review.googlesource.com/c/1279067
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Takumi Fujimoto <takumif@chromium.org>
Reviewed-by: Jeremy Klein <jlklein@chromium.org>
Cr-Commit-Position: refs/heads/master@{#599432}
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/ash/multi_device_setup/multi_device_notification_presenter.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chrome/browser/BUILD.gn
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chrome/browser/chrome_browser_field_trials.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chrome/browser/chromeos/android_sms/android_sms_service_factory.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chrome/browser/chromeos/android_sms/android_sms_service_factory.h
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chrome/browser/chromeos/device_sync/device_sync_client_factory.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chrome/browser/chromeos/device_sync/device_sync_client_factory.h
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chrome/browser/chromeos/extensions/quick_unlock_private/quick_unlock_private_api_unittest.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_unittest_chromeos.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chrome/browser/chromeos/login/hid_detection_browsertest.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chrome/browser/chromeos/login/wizard_controller.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chrome/browser/chromeos/multidevice_setup/multidevice_setup_client_factory.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chrome/browser/chromeos/multidevice_setup/multidevice_setup_client_factory.h
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chrome/browser/chromeos/tether/tether_service_factory.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chrome/browser/chromeos/tether/tether_service_factory.h
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chrome/browser/chromeos/tether/tether_service_unittest.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chrome/browser/media/router/presentation/independent_otr_profile_manager_browsertest.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chrome/browser/profiles/profile_browsertest.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chrome/test/BUILD.gn
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chrome/test/base/in_process_browser_test.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chromeos/chromeos_features.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chromeos/components/proximity_auth/BUILD.gn
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chromeos/components/proximity_auth/messenger_impl_unittest.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chromeos/components/proximity_auth/proximity_auth_profile_pref_manager_unittest.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chromeos/components/proximity_auth/proximity_auth_system_unittest.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chromeos/components/proximity_auth/proximity_monitor_impl_unittest.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chromeos/components/proximity_auth/remote_device_life_cycle_impl_unittest.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chromeos/components/proximity_auth/unlock_manager_impl_unittest.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chromeos/components/tether/asynchronous_shutdown_object_container_impl_unittest.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chromeos/components/tether/connect_tethering_operation_unittest.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chromeos/components/tether/connection_preserver_impl_unittest.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chromeos/components/tether/disconnect_tethering_operation_unittest.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chromeos/components/tether/disconnect_tethering_request_sender_impl_unittest.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chromeos/components/tether/host_connection_metrics_logger_unittest.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chromeos/components/tether/host_scan_scheduler_impl_unittest.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chromeos/components/tether/host_scanner_impl_unittest.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chromeos/components/tether/host_scanner_operation_unittest.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chromeos/components/tether/keep_alive_operation_unittest.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chromeos/components/tether/keep_alive_scheduler_unittest.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chromeos/components/tether/message_transfer_operation_unittest.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chromeos/components/tether/tether_connector_impl_unittest.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chromeos/services/device_sync/device_sync_impl.cc
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chromeos/services/multidevice_setup/DEPS
[modify] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chromeos/services/multidevice_setup/public/cpp/BUILD.gn
[add] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chromeos/services/multidevice_setup/public/cpp/first_run_field_trial.cc
[add] https://crrev.com/b2868aaedd272b1f32c002076960f95386caa8ba/chromeos/services/multidevice_setup/public/cpp/first_run_field_trial.h

Cc: kbleicher@chromium.org
Labels: -Merge-Request-71 Merge-Approved-71
Approving merge for Chrome OS M71 per chat with jessejames@.
Project Member

Comment 20 by bugdroid1@chromium.org, Oct 13

Labels: -merge-approved-71 merge-merged-3578
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9f374b85c7c6b0c8fbb2ee16c02391619f28365f

commit 9f374b85c7c6b0c8fbb2ee16c02391619f28365f
Author: Kyle Horimoto <khorimoto@google.com>
Date: Sat Oct 13 00:40:36 2018

[CrOS MultiDevice] Reland: Enable multi-device features during OOBE.

Original CL (uploaded as patchset 1):
https://chromium-review.googlesource.com/c/chromium/src/+/1260491

Revert CL:
https://chromium-review.googlesource.com/c/chromium/src/+/1277577

Fix for reland:
To ensure that no unnecessary network requests are made, I used a fake
DeviceSync implementation for browser_tests, which I included in
patchset 2.


Original CL description:
This CL enables several multi-device flags by default. This resulted in
lots of broken tests, so this CL also fixes those broken tests.

Instant Tethering is enabled via Finch flags; however, Finch does not
immediately enable/disable features. Instead, when a user logs in, a
Finch configuration is downloaded and is applied the next time the user
logs in. Thus, to ensure that these features are available during OOBE,
this CL overrides multi-device feature experiments during the first
run. On subsequent logins, the Finch feature list will be applied.

Bug:  884066 ,  894882 
Change-Id: I879b903762f605d93eb6c9b1c709e0a4313903ef
TBR: asvitkine@chromium.org
Reviewed-on: https://chromium-review.googlesource.com/c/1279067
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Takumi Fujimoto <takumif@chromium.org>
Reviewed-by: Jeremy Klein <jlklein@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#599432}(cherry picked from commit b2868aaedd272b1f32c002076960f95386caa8ba)
Reviewed-on: https://chromium-review.googlesource.com/c/1279361
Cr-Commit-Position: refs/branch-heads/3578@{#9}
Cr-Branched-From: 4226ddf99103e493d7afb23a4c7902ee496108b6-refs/heads/master@{#599034}
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/ash/multi_device_setup/multi_device_notification_presenter.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chrome/browser/BUILD.gn
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chrome/browser/chrome_browser_field_trials.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chrome/browser/chromeos/android_sms/android_sms_service_factory.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chrome/browser/chromeos/android_sms/android_sms_service_factory.h
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chrome/browser/chromeos/device_sync/device_sync_client_factory.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chrome/browser/chromeos/device_sync/device_sync_client_factory.h
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chrome/browser/chromeos/extensions/quick_unlock_private/quick_unlock_private_api_unittest.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_unittest_chromeos.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chrome/browser/chromeos/login/hid_detection_browsertest.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chrome/browser/chromeos/login/wizard_controller.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chrome/browser/chromeos/multidevice_setup/multidevice_setup_client_factory.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chrome/browser/chromeos/multidevice_setup/multidevice_setup_client_factory.h
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chrome/browser/chromeos/tether/tether_service_factory.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chrome/browser/chromeos/tether/tether_service_factory.h
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chrome/browser/chromeos/tether/tether_service_unittest.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chrome/browser/media/router/presentation/independent_otr_profile_manager_browsertest.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chrome/browser/profiles/profile_browsertest.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chrome/test/BUILD.gn
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chrome/test/base/in_process_browser_test.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chromeos/chromeos_features.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chromeos/components/proximity_auth/BUILD.gn
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chromeos/components/proximity_auth/messenger_impl_unittest.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chromeos/components/proximity_auth/proximity_auth_profile_pref_manager_unittest.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chromeos/components/proximity_auth/proximity_auth_system_unittest.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chromeos/components/proximity_auth/proximity_monitor_impl_unittest.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chromeos/components/proximity_auth/remote_device_life_cycle_impl_unittest.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chromeos/components/proximity_auth/unlock_manager_impl_unittest.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chromeos/components/tether/asynchronous_shutdown_object_container_impl_unittest.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chromeos/components/tether/connect_tethering_operation_unittest.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chromeos/components/tether/connection_preserver_impl_unittest.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chromeos/components/tether/disconnect_tethering_operation_unittest.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chromeos/components/tether/disconnect_tethering_request_sender_impl_unittest.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chromeos/components/tether/host_connection_metrics_logger_unittest.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chromeos/components/tether/host_scan_scheduler_impl_unittest.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chromeos/components/tether/host_scanner_impl_unittest.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chromeos/components/tether/host_scanner_operation_unittest.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chromeos/components/tether/keep_alive_operation_unittest.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chromeos/components/tether/keep_alive_scheduler_unittest.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chromeos/components/tether/message_transfer_operation_unittest.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chromeos/components/tether/tether_connector_impl_unittest.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chromeos/services/device_sync/device_sync_impl.cc
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chromeos/services/multidevice_setup/DEPS
[modify] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chromeos/services/multidevice_setup/public/cpp/BUILD.gn
[add] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chromeos/services/multidevice_setup/public/cpp/first_run_field_trial.cc
[add] https://crrev.com/9f374b85c7c6b0c8fbb2ee16c02391619f28365f/chromeos/services/multidevice_setup/public/cpp/first_run_field_trial.h

Status: Fixed (was: Started)
Labels: Merge-Merged-71-3578
The following revision refers to this bug: 
https://chromium.googlesource.com/chromium/src.git/+/9f374b85c7c6b0c8fbb2ee16c02391619f28365f

Commit: 9f374b85c7c6b0c8fbb2ee16c02391619f28365f
Author: khorimoto@google.com
Commiter: jlklein@chromium.org
Date: 2018-10-13 00:40:36 +0000 UTC

[CrOS MultiDevice] Reland: Enable multi-device features during OOBE.

Original CL (uploaded as patchset 1):
https://chromium-review.googlesource.com/c/chromium/src/+/1260491

Revert CL:
https://chromium-review.googlesource.com/c/chromium/src/+/1277577

Fix for reland:
To ensure that no unnecessary network requests are made, I used a fake
DeviceSync implementation for browser_tests, which I included in
patchset 2.


Original CL description:
This CL enables several multi-device flags by default. This resulted in
lots of broken tests, so this CL also fixes those broken tests.

Instant Tethering is enabled via Finch flags; however, Finch does not
immediately enable/disable features. Instead, when a user logs in, a
Finch configuration is downloaded and is applied the next time the user
logs in. Thus, to ensure that these features are available during OOBE,
this CL overrides multi-device feature experiments during the first
run. On subsequent logins, the Finch feature list will be applied.

Bug:  884066 ,  894882 
Change-Id: I879b903762f605d93eb6c9b1c709e0a4313903ef
TBR: asvitkine@chromium.org
Reviewed-on: https://chromium-review.googlesource.com/c/1279067
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Takumi Fujimoto <takumif@chromium.org>
Reviewed-by: Jeremy Klein <jlklein@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#599432}(cherry picked from commit b2868aaedd272b1f32c002076960f95386caa8ba)
Reviewed-on: https://chromium-review.googlesource.com/c/1279361
Cr-Commit-Position: refs/branch-heads/3578@{#9}
Cr-Branched-From: 4226ddf99103e493d7afb23a4c7902ee496108b6-refs/heads/master@{#599034}
The following revision refers to this bug: 
https://chromium.googlesource.com/chromium/src.git/+/a3bbeccbabafc2a9a815b5673755b19f5e64e7e5

Commit: a3bbeccbabafc2a9a815b5673755b19f5e64e7e5
Author: khorimoto@google.com
Commiter: khorimoto@chromium.org
Date: 2018-10-24 20:31:51 +0000 UTC

[CrOS MultiDevice] Add Shutdown() handling in MultiDevice KeyedServices.

This ensures that connections to our Mojo services are disconnected,
which will result in the Shutdown() code added in this CL will run:
https://chromium-review.googlesource.com/c/chromium/src/+/1274886

Bug:  884066 
Change-Id: Ifb4fad53fc9d1a693ae83099dc43ee9908303ea7
TBR: jhawkins@chromium.org
Reviewed-on: https://chromium-review.googlesource.com/c/1277588
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Jeremy Klein <jlklein@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#599080}(cherry picked from commit f49ce435169672969142e5da5303def870e7fd98)
Reviewed-on: https://chromium-review.googlesource.com/c/1298350
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/branch-heads/3578@{#303}
Cr-Branched-From: 4226ddf99103e493d7afb23a4c7902ee496108b6-refs/heads/master@{#599034}
Note: [1] (see comment #22) was cherry-picked to the M-71 branch late because I had mistakenly believed that it made the branch when it was cut originally.

[1] https://chromium-review.googlesource.com/c/chromium/src/+/1298350
Project Member

Comment 25 by bugdroid1@chromium.org, Oct 24

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a3bbeccbabafc2a9a815b5673755b19f5e64e7e5

commit a3bbeccbabafc2a9a815b5673755b19f5e64e7e5
Author: Kyle Horimoto <khorimoto@google.com>
Date: Wed Oct 24 20:31:51 2018

[CrOS MultiDevice] Add Shutdown() handling in MultiDevice KeyedServices.

This ensures that connections to our Mojo services are disconnected,
which will result in the Shutdown() code added in this CL will run:
https://chromium-review.googlesource.com/c/chromium/src/+/1274886

Bug:  884066 
Change-Id: Ifb4fad53fc9d1a693ae83099dc43ee9908303ea7
TBR: jhawkins@chromium.org
Reviewed-on: https://chromium-review.googlesource.com/c/1277588
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Jeremy Klein <jlklein@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#599080}(cherry picked from commit f49ce435169672969142e5da5303def870e7fd98)
Reviewed-on: https://chromium-review.googlesource.com/c/1298350
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/branch-heads/3578@{#303}
Cr-Branched-From: 4226ddf99103e493d7afb23a4c7902ee496108b6-refs/heads/master@{#599034}
[modify] https://crrev.com/a3bbeccbabafc2a9a815b5673755b19f5e64e7e5/chrome/browser/chromeos/android_sms/android_sms_service.cc
[modify] https://crrev.com/a3bbeccbabafc2a9a815b5673755b19f5e64e7e5/chrome/browser/chromeos/device_sync/device_sync_client_factory.cc
[modify] https://crrev.com/a3bbeccbabafc2a9a815b5673755b19f5e64e7e5/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_regular.cc
[modify] https://crrev.com/a3bbeccbabafc2a9a815b5673755b19f5e64e7e5/chrome/browser/chromeos/multidevice_setup/multidevice_setup_client_factory.cc
[modify] https://crrev.com/a3bbeccbabafc2a9a815b5673755b19f5e64e7e5/chromeos/services/device_sync/BUILD.gn
[modify] https://crrev.com/a3bbeccbabafc2a9a815b5673755b19f5e64e7e5/chromeos/services/device_sync/device_sync_base.cc
[modify] https://crrev.com/a3bbeccbabafc2a9a815b5673755b19f5e64e7e5/chromeos/services/device_sync/device_sync_base.h
[modify] https://crrev.com/a3bbeccbabafc2a9a815b5673755b19f5e64e7e5/chromeos/services/device_sync/device_sync_impl.cc
[modify] https://crrev.com/a3bbeccbabafc2a9a815b5673755b19f5e64e7e5/chromeos/services/device_sync/fake_device_sync.cc

Sign in to add a comment