Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(423)

Issue 2714493002: Load DeviceLocalAccount policy and DeviceSettings immediately on restore after Chrome crash. (Closed)

Created:
3 years, 10 months ago by Sergey Poromov
Modified:
3 years, 9 months ago
CC:
chromium-reviews, hashimoto+watch_chromium.org, oshima+watch_chromium.org, davemoore+watch_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Load DeviceLocalAccount policy and DeviceSettings immediately on restore after Chrome crash. UserCloudPolicyManagerChromeOS and UserCloudPolicyManager are loading user policy immediately after Chrome crash as profile is created synchronously so that the Profile initialization never sees unmanaged prefs. However, it was not true for device local accounts, such as public sessions and ARC Kiosk session, that means having Profile with uninitialized prefs, that particularly leads to crash/data loss for ARC kiosk. This change forces policies for these accounts to also be loaded immediately on crash with blocking call to D-Bus, similar to loading policies for users. note: While this change fixes the described issue, the better way is to get rid of synchronous profile creation, but still ensure that policy is loaded before end of profile creation. See crbug.com/160522 BUG=679810 BUG=694546 TEST=Ran tryjobs, start and restore after crash for: ARC Kiosk, Public Session, User Session. Review-Url: https://codereview.chromium.org/2714493002 Cr-Commit-Position: refs/heads/master@{#453621} Committed: https://chromium.googlesource.com/chromium/src/+/afc9d60e96d31a11f756d5c56c2be54a28130960

Patch Set 1 #

Patch Set 2 : add flag to correctly process LoadImmediately() call #

Total comments: 34

Patch Set 3 : add unit tests #

Patch Set 4 : fix setup for UserImageManagerBrowserTest and WallpaperManagerPolicyBrowserTest #

Patch Set 5 : address some comments, todo: reduce code duplication, avoid load duplication calls #

Patch Set 6 : oops, revert important code #

Patch Set 7 : oops, revert important code #

Patch Set 8 : rebase #

Patch Set 9 : reduce duplication and avoid double load start #

Total comments: 2

Patch Set 10 : wrap Validator in unique_ptr #

Unified diffs Side-by-side diffs Delta from patch set Stats (+378 lines, -59 lines) Patch
M chrome/browser/chromeos/login/users/avatar/user_image_manager_browsertest.cc View 1 2 3 5 chunks +20 lines, -9 lines 0 comments Download
M chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager_policy_browsertest.cc View 1 2 3 6 chunks +15 lines, -3 lines 0 comments Download
M chrome/browser/chromeos/policy/device_local_account_policy_provider.h View 1 chunk +4 lines, -1 line 0 comments Download
M chrome/browser/chromeos/policy/device_local_account_policy_provider.cc View 1 2 2 chunks +5 lines, -1 line 0 comments Download
M chrome/browser/chromeos/policy/device_local_account_policy_service.h View 1 2 3 4 1 chunk +4 lines, -1 line 0 comments Download
M chrome/browser/chromeos/policy/device_local_account_policy_service.cc View 1 chunk +4 lines, -0 lines 0 comments Download
M chrome/browser/chromeos/policy/device_local_account_policy_service_unittest.cc View 1 2 2 chunks +49 lines, -1 line 0 comments Download
M chrome/browser/chromeos/policy/device_local_account_policy_store.h View 1 2 3 4 5 6 7 8 4 chunks +7 lines, -1 line 0 comments Download
M chrome/browser/chromeos/policy/device_local_account_policy_store.cc View 1 2 3 4 5 6 7 8 5 chunks +47 lines, -9 lines 0 comments Download
M chrome/browser/chromeos/settings/device_settings_service.h View 1 2 3 4 2 chunks +9 lines, -1 line 0 comments Download
M chrome/browser/chromeos/settings/device_settings_service.cc View 1 2 3 4 5 4 chunks +29 lines, -10 lines 0 comments Download
M chrome/browser/chromeos/settings/device_settings_test_helper.h View 1 2 3 4 5 6 1 chunk +3 lines, -0 lines 0 comments Download
M chrome/browser/chromeos/settings/device_settings_test_helper.cc View 1 2 3 4 5 6 2 chunks +9 lines, -0 lines 0 comments Download
M chrome/browser/chromeos/settings/session_manager_operation.h View 4 chunks +11 lines, -0 lines 0 comments Download
M chrome/browser/chromeos/settings/session_manager_operation.cc View 1 2 3 4 5 6 7 8 9 6 chunks +32 lines, -7 lines 0 comments Download
M chrome/browser/chromeos/settings/session_manager_operation_unittest.cc View 1 2 4 chunks +27 lines, -0 lines 0 comments Download
M chrome/browser/policy/profile_policy_connector.h View 1 chunk +4 lines, -1 line 0 comments Download
M chrome/browser/policy/profile_policy_connector.cc View 2 chunks +3 lines, -2 lines 0 comments Download
M chrome/browser/policy/profile_policy_connector_factory.cc View 1 chunk +2 lines, -1 line 0 comments Download
M chrome/browser/policy/profile_policy_connector_unittest.cc View 2 chunks +2 lines, -2 lines 0 comments Download
M chrome/browser/profiles/profile_impl.cc View 2 chunks +3 lines, -0 lines 0 comments Download
M chromeos/dbus/fake_session_manager_client.h View 2 chunks +3 lines, -0 lines 0 comments Download
M chromeos/dbus/fake_session_manager_client.cc View 2 chunks +9 lines, -0 lines 0 comments Download
M chromeos/dbus/mock_session_manager_client.h View 2 chunks +3 lines, -0 lines 0 comments Download
M chromeos/dbus/session_manager_client.h View 1 2 3 4 3 chunks +20 lines, -0 lines 0 comments Download
M chromeos/dbus/session_manager_client.cc View 1 2 3 4 5 6 7 8 8 chunks +54 lines, -9 lines 0 comments Download

Messages

Total messages: 53 (40 generated)
Sergey Poromov
erg@chromium.org: Please review changes in chrome/browser/profiles/profile_impl.cc stevenjb@chromium.org: Please review changes in chromeos/dbus/* tnagel@chromium.org: Please review ...
3 years, 10 months ago (2017-02-22 13:05:00 UTC) #4
stevenjb
chromeos/dbus owner lgtm w/ caveat. https://codereview.chromium.org/2714493002/diff/20001/chromeos/dbus/session_manager_client.h File chromeos/dbus/session_manager_client.h (right): https://codereview.chromium.org/2714493002/diff/20001/chromeos/dbus/session_manager_client.h#newcode160 chromeos/dbus/session_manager_client.h:160: virtual std::string BlockingRetrieveDevicePolicy() = ...
3 years, 10 months ago (2017-02-22 16:40:19 UTC) #11
emaxx
Could you please add some tests for the new synchronous load code? https://codereview.chromium.org/2714493002/diff/20001/chrome/browser/chromeos/policy/device_local_account_policy_service.h File chrome/browser/chromeos/policy/device_local_account_policy_service.h ...
3 years, 10 months ago (2017-02-22 17:24:34 UTC) #12
Elliot Glaysher
profiles lgtm
3 years, 10 months ago (2017-02-22 18:19:00 UTC) #13
Andrew T Wilson (Slow)
https://codereview.chromium.org/2714493002/diff/20001/chrome/browser/chromeos/policy/device_local_account_policy_provider.cc File chrome/browser/chromeos/policy/device_local_account_policy_provider.cc (right): https://codereview.chromium.org/2714493002/diff/20001/chrome/browser/chromeos/policy/device_local_account_policy_provider.cc#newcode94 chrome/browser/chromeos/policy/device_local_account_policy_provider.cc:94: provider->GetBroker()->LoadImmediately(); See my comment in Store->LoadImmediately() - it's a ...
3 years, 10 months ago (2017-02-23 12:05:48 UTC) #14
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2714493002/130001
3 years, 10 months ago (2017-02-24 13:26:59 UTC) #33
commit-bot: I haz the power
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/372301)
3 years, 10 months ago (2017-02-24 13:33:59 UTC) #35
Sergey Poromov
https://codereview.chromium.org/2714493002/diff/20001/chrome/browser/chromeos/policy/device_local_account_policy_service.h File chrome/browser/chromeos/policy/device_local_account_policy_service.h (right): https://codereview.chromium.org/2714493002/diff/20001/chrome/browser/chromeos/policy/device_local_account_policy_service.h#newcode72 chrome/browser/chromeos/policy/device_local_account_policy_service.h:72: // Initialize the broker, loading its |store_|. On 2017/02/22 ...
3 years, 9 months ago (2017-02-28 14:01:18 UTC) #38
emaxx
https://codereview.chromium.org/2714493002/diff/20001/chrome/browser/chromeos/settings/device_settings_service.cc File chrome/browser/chromeos/settings/device_settings_service.cc (right): https://codereview.chromium.org/2714493002/diff/20001/chrome/browser/chromeos/settings/device_settings_service.cc#newcode134 chrome/browser/chromeos/settings/device_settings_service.cc:134: std::unique_ptr<SessionManagerOperation> operation(new LoadSettingsOperation( On 2017/02/28 14:01:17, Sergey Poromov wrote: ...
3 years, 9 months ago (2017-02-28 14:31:32 UTC) #39
Thiemo Nagel
https://codereview.chromium.org/2714493002/diff/20001/chrome/browser/chromeos/settings/device_settings_service.cc File chrome/browser/chromeos/settings/device_settings_service.cc (right): https://codereview.chromium.org/2714493002/diff/20001/chrome/browser/chromeos/settings/device_settings_service.cc#newcode134 chrome/browser/chromeos/settings/device_settings_service.cc:134: std::unique_ptr<SessionManagerOperation> operation(new LoadSettingsOperation( > > On 2017/02/22 17:24:33, emaxx ...
3 years, 9 months ago (2017-02-28 15:41:05 UTC) #44
Sergey Poromov
https://codereview.chromium.org/2714493002/diff/150001/chrome/browser/chromeos/settings/session_manager_operation.cc File chrome/browser/chromeos/settings/session_manager_operation.cc (right): https://codereview.chromium.org/2714493002/diff/150001/chrome/browser/chromeos/settings/session_manager_operation.cc#newcode208 chrome/browser/chromeos/settings/session_manager_operation.cc:208: ReportValidatorStatus(validator); On 2017/02/28 14:31:31, emaxx wrote: > Isn't the ...
3 years, 9 months ago (2017-02-28 15:47:37 UTC) #45
emaxx
LGTM
3 years, 9 months ago (2017-02-28 15:52:36 UTC) #46
commit-bot: I haz the power
3 years, 9 months ago (2017-02-28 16:44:18 UTC) #53
Message was sent while issue was closed.
Committed patchset #10 (id:170001) as
https://chromium.googlesource.com/chromium/src/+/afc9d60e96d31a11f756d5c56c2b...

Powered by Google App Engine
This is Rietveld 408576698