Index: chrome/browser/chromeos/settings/device_settings_service.cc |
diff --git a/chrome/browser/chromeos/settings/device_settings_service.cc b/chrome/browser/chromeos/settings/device_settings_service.cc |
index 970c1c6a4bfed19de238d76a847384ed63a482f2..93761c16ae149aa6a10418b59c1cf38b46190919 100644 |
--- a/chrome/browser/chromeos/settings/device_settings_service.cc |
+++ b/chrome/browser/chromeos/settings/device_settings_service.cc |
@@ -6,7 +6,6 @@ |
#include "base/bind.h" |
#include "base/file_util.h" |
-#include "base/lazy_instance.h" |
#include "base/logging.h" |
#include "base/message_loop.h" |
#include "base/stl_util.h" |
@@ -37,9 +36,6 @@ int kMaxLoadRetries = (1000 * 60 * 10) / kLoadRetryDelayMs; |
namespace chromeos { |
-static base::LazyInstance<DeviceSettingsService> g_device_settings_service = |
- LAZY_INSTANCE_INITIALIZER; |
- |
OwnerKey::OwnerKey(scoped_ptr<std::vector<uint8> > public_key, |
scoped_ptr<crypto::RSAPrivateKey> private_key) |
: public_key_(public_key.Pass()), |
@@ -49,22 +45,28 @@ OwnerKey::~OwnerKey() {} |
DeviceSettingsService::Observer::~Observer() {} |
-DeviceSettingsService::DeviceSettingsService() |
- : session_manager_client_(NULL), |
- ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)), |
- store_status_(STORE_SUCCESS), |
- load_retries_left_(kMaxLoadRetries) {} |
+static DeviceSettingsService* g_device_settings_service = NULL; |
Mattias Nissler (ping if slow)
2013/04/16 16:09:51
nit: spacing
stevenjb
2013/04/16 16:49:43
Done.
|
-DeviceSettingsService::~DeviceSettingsService() { |
- DCHECK(pending_operations_.empty()); |
+// static |
+void DeviceSettingsService::Initialize() { |
+ CHECK(!g_device_settings_service); |
+ g_device_settings_service = new DeviceSettingsService(); |
+} |
+ |
+// static |
+void DeviceSettingsService::Shutdown() { |
+ CHECK(g_device_settings_service); |
+ delete g_device_settings_service; |
+ g_device_settings_service = NULL; |
} |
// static |
DeviceSettingsService* DeviceSettingsService::Get() { |
- return g_device_settings_service.Pointer(); |
+ CHECK(g_device_settings_service); |
+ return g_device_settings_service; |
} |
-void DeviceSettingsService::Initialize( |
+void DeviceSettingsService::InitializeSessionManager( |
SessionManagerClient* session_manager_client, |
scoped_refptr<OwnerKeyUtil> owner_key_util) { |
DCHECK(session_manager_client); |
@@ -80,7 +82,7 @@ void DeviceSettingsService::Initialize( |
StartNextOperation(); |
} |
-void DeviceSettingsService::Shutdown() { |
+void DeviceSettingsService::ShutdownSessionManager() { |
STLDeleteContainerPointers(pending_operations_.begin(), |
pending_operations_.end()); |
pending_operations_.clear(); |
@@ -191,6 +193,17 @@ void DeviceSettingsService::PropertyChangeComplete(bool success) { |
EnsureReload(false); |
} |
+DeviceSettingsService::DeviceSettingsService() |
+ : session_manager_client_(NULL), |
+ ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)), |
+ store_status_(STORE_SUCCESS), |
+ load_retries_left_(kMaxLoadRetries) { |
+} |
+ |
+DeviceSettingsService::~DeviceSettingsService() { |
+ DCHECK(pending_operations_.empty()); |
+} |
+ |
void DeviceSettingsService::Enqueue(SessionManagerOperation* operation) { |
pending_operations_.push_back(operation); |
if (pending_operations_.front() == operation) |