 Chromium Code Reviews
 Chromium Code Reviews Issue 5153002:
  Use a service to create device management backends.  (Closed) 
  Base URL: svn://svn.chromium.org/chrome/trunk/src
    
  
    Issue 5153002:
  Use a service to create device management backends.  (Closed) 
  Base URL: svn://svn.chromium.org/chrome/trunk/src| Index: chrome/browser/policy/profile_policy_context.cc | 
| diff --git a/chrome/browser/policy/profile_policy_context.cc b/chrome/browser/policy/profile_policy_context.cc | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..23b6758c34109c532120709a6566f27640b5a571 | 
| --- /dev/null | 
| +++ b/chrome/browser/policy/profile_policy_context.cc | 
| @@ -0,0 +1,52 @@ | 
| +// Copyright (c) 2010 The Chromium Authors. All rights reserved. | 
| +// Use of this source code is governed by a BSD-style license that can be | 
| +// found in the LICENSE file. | 
| + | 
| +#include "base/command_line.h" | 
| +#include "chrome/browser/policy/configuration_policy_pref_store.h" | 
| +#include "chrome/browser/policy/device_management_policy_provider.h" | 
| +#include "chrome/browser/policy/device_management_service.h" | 
| +#include "chrome/browser/policy/profile_policy_context.h" | 
| +#include "chrome/browser/profile.h" | 
| +#include "chrome/common/chrome_switches.h" | 
| + | 
| +namespace policy { | 
| + | 
| +ProfilePolicyContext::ProfilePolicyContext(Profile* profile) | 
| + : profile_(profile) { | 
| + CommandLine* command_line = CommandLine::ForCurrentProcess(); | 
| + if (command_line->HasSwitch(switches::kDeviceManagementUrl)) { | 
| + device_management_service_.reset(new DeviceManagementService( | 
| + command_line->GetSwitchValueASCII(switches::kDeviceManagementUrl))); | 
| + device_management_policy_provider_.reset( | 
| + new policy::DeviceManagementPolicyProvider( | 
| + ConfigurationPolicyPrefStore::GetChromePolicyDefinitionList(), | 
| + device_management_service_->CreateBackend(), | 
| + profile_->GetTokenService(), | 
| + profile_->GetPath())); | 
| + } | 
| +} | 
| + | 
| +ProfilePolicyContext::~ProfilePolicyContext() { | 
| + device_management_policy_provider_.reset(); | 
| + device_management_service_.reset(); | 
| +} | 
| + | 
| +void ProfilePolicyContext::Initialize() { | 
| + if (device_management_service_.get()) | 
| + device_management_service_->Initialize(profile_->GetRequestContext()); | 
| 
Nico
2010/11/22 12:40:16
can you DCHECK that the prefs aren't initialized a
 
Mattias Nissler (ping if slow)
2010/11/22 14:08:07
They are already initialized at this point, and th
 | 
| +} | 
| + | 
| +void ProfilePolicyContext::Shutdown() { | 
| + if (device_management_service_.get()) | 
| + device_management_service_->Shutdown(); | 
| + if (device_management_policy_provider_.get()) | 
| + device_management_policy_provider_->Shutdown(); | 
| +} | 
| + | 
| +DeviceManagementPolicyProvider* | 
| +ProfilePolicyContext::GetDeviceManagementPolicyProvider() { | 
| + return device_management_policy_provider_.get(); | 
| +} | 
| + | 
| +} // namespace policy |