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

Side by Side Diff: chrome/browser/policy/cloud/policy_header_service_factory.cc

Issue 99433004: Add a header when fetching pages under the DMServer URL. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixes to iOS and CrOS compilation errors. Created 7 years 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/policy/cloud/policy_header_service_factory.h"
6
7 #include "base/memory/scoped_ptr.h"
8 #include "chrome/browser/browser_process.h"
9 #include "chrome/browser/policy/browser_policy_connector.h"
10 #include "chrome/browser/policy/cloud/policy_header_service.h"
11 #include "chrome/browser/policy/cloud/user_cloud_policy_manager.h"
12 #include "chrome/browser/policy/cloud/user_cloud_policy_manager_factory.h"
Joao da Silva 2013/12/10 08:34:21 Note that user_cloud_policy_manager[_factory].(h|c
Andrew T Wilson (Slow) 2013/12/10 20:04:57 Done.
13 #include "components/browser_context_keyed_service/browser_context_dependency_ma nager.h"
14 #include "components/policy/core/common/cloud/cloud_policy_store.h"
15 #include "components/policy/core/common/cloud/device_management_service.h"
16
17 #if defined(OS_CHROMEOS)
18 #include "chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.h"
19 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h"
20 #endif
21
22 namespace policy {
23
24 namespace {
25
26 class PolicyHeaderServiceWrapper : public BrowserContextKeyedService {
27 public:
28 explicit PolicyHeaderServiceWrapper(scoped_ptr<PolicyHeaderService> service)
29 : policy_header_service_(service.Pass()) {}
30
31 PolicyHeaderService* policy_header_service() const {
32 return policy_header_service_.get();
33 }
34
35 virtual void Shutdown() OVERRIDE {
36 // Shutdown our core object so it can unregister any observers before the
37 // services we depend on are shutdown.
38 policy_header_service_.reset();
39 }
40
41 private:
42 scoped_ptr<PolicyHeaderService> policy_header_service_;
43 };
44
45 } // namespace
46
47 PolicyHeaderServiceFactory::PolicyHeaderServiceFactory()
48 : BrowserContextKeyedServiceFactory(
49 "PolicyHeaderServiceFactory",
50 BrowserContextDependencyManager::GetInstance()) {
51 #if defined(OS_CHROMEOS)
52 DependsOn(UserCloudPolicyManagerFactoryChromeOS::GetInstance());
53 #else
54 DependsOn(UserCloudPolicyManagerFactory::GetInstance());
55 #endif
56 }
57
58 PolicyHeaderServiceFactory::~PolicyHeaderServiceFactory() {
59 }
60
61 // static
62 PolicyHeaderService* PolicyHeaderServiceFactory::GetForBrowserContext(
63 content::BrowserContext* context) {
64 PolicyHeaderServiceWrapper* wrapper =
65 static_cast<PolicyHeaderServiceWrapper*>(
66 GetInstance()->GetServiceForBrowserContext(context, true));
67 if (wrapper)
68 return wrapper->policy_header_service();
69 else
70 return NULL;
71 }
72
73 BrowserContextKeyedService*
74 PolicyHeaderServiceFactory::BuildServiceInstanceFor(
75 content::BrowserContext* context) const {
76 BrowserPolicyConnector* connector =
77 g_browser_process->browser_policy_connector();
78 DeviceManagementService* device_management_service =
79 connector->device_management_service();
80 #if defined(OS_CHROMEOS)
81 UserCloudPolicyManager* manager =
Joao da Silva 2013/12/10 08:34:22 UserCloudPolicyManagerChromeOS
Andrew T Wilson (Slow) 2013/12/10 20:04:57 Done.
82 UserCloudPolicyManagerFactoryChromeOS::GetForProfile(
83 static_cast<Profile*>(context));
84 #else
85 UserCloudPolicyManager* manager =
86 UserCloudPolicyManagerFactory::GetForBrowserContext(context);
87 #endif
88 CloudPolicyStore* user_store = manager->core()->store();
89 CloudPolicyStore* device_store = NULL;
90 #if defined(OS_CHROMEOS)
91 device_store = connector->GetDeviceCloudPolicyManager()->core()->store();
92 #endif
93
94 scoped_ptr<PolicyHeaderService> service = make_scoped_ptr(
95 new PolicyHeaderService(
96 device_management_service->GetServerUrl(), user_store, device_store));
97 return new PolicyHeaderServiceWrapper(service.Pass());
98 }
99
100 // static
101 PolicyHeaderServiceFactory* PolicyHeaderServiceFactory::GetInstance() {
102 return Singleton<PolicyHeaderServiceFactory>::get();
103 }
104
105 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698