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

Side by Side Diff: chrome/browser/chromeos/system/device_disabling_manager.cc

Issue 2815893002: Break circular dependency between InitializeDeviceDisablingManager and DeviceDisabledScreen (Closed)
Patch Set: Added a check to the crash site Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/system/device_disabling_manager.h" 5 #include "chrome/browser/chromeos/system/device_disabling_manager.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/values.h" 10 #include "base/values.h"
11 #include "chrome/browser/browser_process.h" 11 #include "chrome/browser/browser_process.h"
12 #include "chrome/browser/browser_process_platform_part.h" 12 #include "chrome/browser/browser_process_platform_part.h"
13 #include "chrome/browser/chromeos/login/existing_user_controller.h" 13 #include "chrome/browser/chromeos/login/existing_user_controller.h"
14 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" 14 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
15 #include "chrome/browser/chromeos/policy/server_backed_device_state.h" 15 #include "chrome/browser/chromeos/policy/server_backed_device_state.h"
16 #include "chrome/browser/chromeos/settings/install_attributes.h" 16 #include "chrome/browser/chromeos/settings/install_attributes.h"
17 #include "chrome/common/pref_names.h" 17 #include "chrome/common/pref_names.h"
18 #include "chromeos/chromeos_switches.h" 18 #include "chromeos/chromeos_switches.h"
19 #include "chromeos/settings/cros_settings_names.h" 19 #include "chromeos/settings/cros_settings_names.h"
20 #include "chromeos/settings/cros_settings_provider.h" 20 #include "chromeos/settings/cros_settings_provider.h"
21 #include "components/policy/core/common/cloud/cloud_policy_constants.h" 21 #include "components/policy/core/common/cloud/cloud_policy_constants.h"
22 #include "components/prefs/pref_service.h" 22 #include "components/prefs/pref_service.h"
23 #include "components/user_manager/user_manager.h" 23 #include "components/user_manager/user_manager.h"
24 #include "content/public/browser/browser_thread.h"
25
26 using content::BrowserThread;
24 27
25 namespace chromeos { 28 namespace chromeos {
26 namespace system { 29 namespace system {
27 30
28 DeviceDisablingManager::Observer::~Observer() { 31 DeviceDisablingManager::Observer::~Observer() {
29 } 32 }
30 33
31 DeviceDisablingManager::Delegate::~Delegate() { 34 DeviceDisablingManager::Delegate::~Delegate() {
32 } 35 }
33 36
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 70
68 device_disabled_subscription_ = cros_settings_->AddSettingsObserver( 71 device_disabled_subscription_ = cros_settings_->AddSettingsObserver(
69 kDeviceDisabled, 72 kDeviceDisabled,
70 base::Bind(&DeviceDisablingManager::UpdateFromCrosSettings, 73 base::Bind(&DeviceDisablingManager::UpdateFromCrosSettings,
71 weak_factory_.GetWeakPtr())); 74 weak_factory_.GetWeakPtr()));
72 disabled_message_subscription_ = cros_settings_->AddSettingsObserver( 75 disabled_message_subscription_ = cros_settings_->AddSettingsObserver(
73 kDeviceDisabledMessage, 76 kDeviceDisabledMessage,
74 base::Bind(&DeviceDisablingManager::UpdateFromCrosSettings, 77 base::Bind(&DeviceDisablingManager::UpdateFromCrosSettings,
75 weak_factory_.GetWeakPtr())); 78 weak_factory_.GetWeakPtr()));
76 79
77 UpdateFromCrosSettings(); 80 auto callback =
emaxx 2017/04/12 17:05:49 nit: Storing the callback in a variable seems to b
Ivan Šandrk 2017/04/13 13:38:00 Done. Should I maybe cleanup the code a bit? Use a
81 base::BindOnce(&DeviceDisablingManager::UpdateFromCrosSettings,
82 weak_factory_.GetWeakPtr());
83 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, callback);
emaxx 2017/04/12 17:05:49 I think the following way of posting tasks is pref
emaxx 2017/04/12 17:05:49 nit: Please add a comment why the deferring is per
Ivan Šandrk 2017/04/13 13:37:59 Done.
Ivan Šandrk 2017/04/13 13:38:00 Done.
78 } 84 }
79 85
80 void DeviceDisablingManager::CacheDisabledMessageAndNotify( 86 void DeviceDisablingManager::CacheDisabledMessageAndNotify(
81 const std::string& disabled_message) { 87 const std::string& disabled_message) {
82 if (disabled_message == disabled_message_) 88 if (disabled_message == disabled_message_)
83 return; 89 return;
84 90
85 disabled_message_ = disabled_message; 91 disabled_message_ = disabled_message;
86 for (auto& observer : observers_) 92 for (auto& observer : observers_)
87 observer.OnDisabledMessageChanged(disabled_message_); 93 observer.OnDisabledMessageChanged(disabled_message_);
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 225
220 // Cache the enrollment domain. 226 // Cache the enrollment domain.
221 enrollment_domain_ = browser_policy_connector_->GetEnterpriseDomain(); 227 enrollment_domain_ = browser_policy_connector_->GetEnterpriseDomain();
222 228
223 // If no session or login is in progress, show the device disabled screen. 229 // If no session or login is in progress, show the device disabled screen.
224 delegate_->ShowDeviceDisabledScreen(); 230 delegate_->ShowDeviceDisabledScreen();
225 } 231 }
226 232
227 } // namespace system 233 } // namespace system
228 } // namespace chromeos 234 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698