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

Side by Side Diff: chrome/browser/chromeos/policy/proxy_policy_provider.cc

Issue 137203005: Moved the ProxyPolicyProvider to the policy component. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@BPC-3-dm-url-at-base
Patch Set: Created 6 years, 11 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
(Empty)
1 // Copyright (c) 2012 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/chromeos/policy/proxy_policy_provider.h"
6
7 namespace policy {
8
9 ProxyPolicyProvider::ProxyPolicyProvider() : delegate_(NULL) {}
10
11 ProxyPolicyProvider::~ProxyPolicyProvider() {
12 DCHECK(!delegate_);
13 }
14
15 void ProxyPolicyProvider::SetDelegate(ConfigurationPolicyProvider* delegate) {
16 if (delegate_)
17 delegate_->RemoveObserver(this);
18 delegate_ = delegate;
19 if (delegate_) {
20 delegate_->AddObserver(this);
21 OnUpdatePolicy(delegate_);
22 } else {
23 UpdatePolicy(scoped_ptr<PolicyBundle>(new PolicyBundle()));
24 }
25 }
26
27 void ProxyPolicyProvider::Shutdown() {
28 // Note: the delegate is not owned by the proxy provider, so this call is not
29 // forwarded. The same applies for the Init() call.
30 // Just drop the delegate without propagating updates here.
31 if (delegate_) {
32 delegate_->RemoveObserver(this);
33 delegate_ = NULL;
34 }
35 ConfigurationPolicyProvider::Shutdown();
36 }
37
38 void ProxyPolicyProvider::RefreshPolicies() {
39 if (delegate_) {
40 delegate_->RefreshPolicies();
41 } else {
42 // Subtle: if a RefreshPolicies() call comes after Shutdown() then the
43 // current bundle should be served instead. This also does the right thing
44 // if SetDelegate() was never called before.
45 scoped_ptr<PolicyBundle> bundle(new PolicyBundle());
46 bundle->CopyFrom(policies());
47 UpdatePolicy(bundle.Pass());
48 }
49 }
50
51 void ProxyPolicyProvider::OnUpdatePolicy(
52 ConfigurationPolicyProvider* provider) {
53 DCHECK_EQ(delegate_, provider);
54 scoped_ptr<PolicyBundle> bundle(new PolicyBundle());
55 bundle->CopyFrom(delegate_->policies());
56 UpdatePolicy(bundle.Pass());
57 }
58
59 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698