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

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

Issue 14192017: Extract certificate policy application from NetworkLibrary. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Initial patch. Created 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 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 "base/command_line.h"
5 #include "chrome/browser/chromeos/policy/network_configuration_updater.h" 6 #include "chrome/browser/chromeos/policy/network_configuration_updater.h"
7 #include "chrome/common/chrome_switches.h"
8 #include "chromeos/network/onc/onc_constants.h"
9 #include "content/public/browser/browser_thread.h"
10 #include "net/cert/cert_trust_anchor_provider.h"
11
12 using content::BrowserThread;
6 13
7 namespace policy { 14 namespace policy {
8 15
9 NetworkConfigurationUpdater::NetworkConfigurationUpdater() { 16 namespace {
17
18 // A simple implementation of net::CertTrustAnchorProvider that returns a list
19 // of certificates that can be set by the owner of this object.
20 class CrosTrustAnchorProvider : public net::CertTrustAnchorProvider {
Joao da Silva 2013/04/22 10:38:09 Just a comment: once we have the ProfilePolicyConn
pneubeck (no reviews) 2013/04/23 18:05:25 Done.
21 public:
22 CrosTrustAnchorProvider() {}
23 virtual ~CrosTrustAnchorProvider() {}
24
25 // CertTrustAnchorProvider overrides.
26 virtual const net::CertificateList& GetAdditionalTrustAnchors() OVERRIDE {
27 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
28 return trust_anchors_;
29 }
30
31 void SetTrustAnchors(scoped_ptr<net::CertificateList> trust_anchors) {
32 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
33 trust_anchors_.swap(*trust_anchors);
stevenjb 2013/04/22 16:53:41 Mixing scoped_ptr and direct pointer operations (s
pneubeck (no reviews) 2013/04/23 18:05:25 @Joao, you added that code. Any comment?
Joao da Silva 2013/04/24 09:21:14 trust_anchors_ as a scoped_ptr SGTM.
34 }
35
36 private:
37 net::CertificateList trust_anchors_;
38
39 DISALLOW_COPY_AND_ASSIGN(CrosTrustAnchorProvider);
40 };
41
42 } // namespace
43
44 NetworkConfigurationUpdater::NetworkConfigurationUpdater()
45 : allow_trusted_certificates_from_policy_(false),
46 cert_trust_provider_(new CrosTrustAnchorProvider()) {
10 } 47 }
11 48
12 NetworkConfigurationUpdater::~NetworkConfigurationUpdater() { 49 NetworkConfigurationUpdater::~NetworkConfigurationUpdater() {
50 bool posted = BrowserThread::DeleteSoon(
51 BrowserThread::IO, FROM_HERE, cert_trust_provider_);
52 if (!posted)
53 delete cert_trust_provider_;
54 }
55
56 net::CertTrustAnchorProvider*
57 NetworkConfigurationUpdater::GetCertTrustAnchorProvider() {
58 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
59 return cert_trust_provider_;
60 }
61
62 void NetworkConfigurationUpdater::SetTrustAnchors(
63 scoped_ptr<net::CertificateList> web_trust_certs) {
64 CommandLine* command_line = CommandLine::ForCurrentProcess();
65 if (allow_trusted_certificates_from_policy_ &&
66 command_line->HasSwitch(switches::kEnableWebTrustCerts)) {
67 BrowserThread::PostTask(
68 BrowserThread::IO, FROM_HERE,
69 base::Bind(&CrosTrustAnchorProvider::SetTrustAnchors,
70 base::Unretained(static_cast<CrosTrustAnchorProvider*>(
71 cert_trust_provider_)),
72 base::Passed(&web_trust_certs)));
73 }
13 } 74 }
14 75
15 } // namespace policy 76 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698