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

Side by Side Diff: chrome/browser/chromeos/net/cert_profile_filter.cc

Issue 419013003: Replace c/b/nss_context by a KeyedService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added cert_database namespace. Created 6 years, 2 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
(Empty)
1 // Copyright 2014 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/net/cert_profile_filter.h"
6
7 #include "base/bind.h"
8 #include "components/cert_database/public/cert_database_service_io_part.h"
9 #include "net/cert/nss_cert_database.h"
10 #include "net/cert/nss_profile_filter_chromeos.h"
11
12 namespace chromeos {
13
14 namespace {
15
16 class ProfileFilterFactory : public net::NSSProfileFilterChromeOSFactory {
17 public:
18 explicit ProfileFilterFactory(
19 const base::WeakPtr<cert_database::CertDatabaseServiceIOPart>& cert_db_io)
20 : cert_db_io_(cert_db_io) {}
21
22 virtual scoped_ptr<net::NSSProfileFilterChromeOS> CreateFilter(
23 const base::Callback<void(const net::NSSProfileFilterChromeOS&)>&
24 callback) override {
25 if (!cert_db_io_)
26 return make_scoped_ptr(new net::NSSProfileFilterChromeOS);
27
28 net::NSSCertDatabase* cert_db = cert_db_io_->GetNSSCertDatabase(
29 base::Bind(&DidGetNSSCertDatabase, callback));
30 if (cert_db)
31 return CreateFilterInternal(cert_db);
32 return scoped_ptr<net::NSSProfileFilterChromeOS>();
mattm 2014/10/18 00:45:15 return nullptr
pneubeck (no reviews) 2014/10/21 09:22:09 Done.
33 }
34
35 private:
36 static void DidGetNSSCertDatabase(
37 const base::Callback<void(const net::NSSProfileFilterChromeOS&)>&
38 callback,
39 net::NSSCertDatabase* cert_db) {
40 callback.Run(*CreateFilterInternal(cert_db));
41 }
42
43 static scoped_ptr<net::NSSProfileFilterChromeOS> CreateFilterInternal(
44 net::NSSCertDatabase* nss_cert_db) {
45 scoped_ptr<net::NSSProfileFilterChromeOS> filter(
46 new net::NSSProfileFilterChromeOS);
47 filter->Init(nss_cert_db->GetPublicSlot(),
48 nss_cert_db->GetPrivateSlot(),
49 nss_cert_db->GetSystemSlot());
50 return filter.Pass();
51 }
52
53 base::WeakPtr<cert_database::CertDatabaseServiceIOPart> cert_db_io_;
54 };
55
56 } // namespace
57
58 scoped_ptr<net::NSSProfileFilterChromeOSFactory> CreateProfileFilterFactory(
59 const base::WeakPtr<cert_database::CertDatabaseServiceIOPart>& cert_db_io) {
60 return scoped_ptr<net::NSSProfileFilterChromeOSFactory>(
61 new ProfileFilterFactory(cert_db_io));
mattm 2014/10/18 00:45:15 I think you can use make_scoped_ptr for this case
pneubeck (no reviews) 2014/10/21 09:22:08 Done.
62 }
63
64 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698