Chromium Code Reviews| Index: ios/web/browser_state.cc |
| diff --git a/ios/web/browser_state.cc b/ios/web/browser_state.cc |
| index 5a8c03270ef169aadb6ede59f61341ee33c24d2c..83b1ee4513a14284bf5a8409401019494c46e0df 100644 |
| --- a/ios/web/browser_state.cc |
| +++ b/ios/web/browser_state.cc |
| @@ -4,11 +4,45 @@ |
| #include "ios/web/public/browser_state.h" |
| +#include "base/memory/ref_counted.h" |
| +#include "ios/web/public/certificate_policy_cache.h" |
| +#include "ios/web/public/web_thread.h" |
| + |
| namespace web { |
| namespace { |
| // Private key used for safe conversion of base::SupportsUserData to |
| // web::BrowserState in web::BrowserState::FromSupportsUserData. |
| const char kBrowserStateIdentifierKey[] = "BrowserStateIdentifierKey"; |
| +// Data key names. |
| +const char kCertificatePolicyCacheKeyName[] = "cert_policy_cache"; |
| + |
| +// Wraps a CertificatePolicyCache as a SupportsUserData::Data; this is necessary |
| +// since reference counted objects can't be user data. |
| +class CertificatePolicyCacheHandle : public base::SupportsUserData::Data { |
| + public: |
| + explicit CertificatePolicyCacheHandle(CertificatePolicyCache* policy_cache) |
| + : policy_cache_(policy_cache) {} |
| + |
| + scoped_refptr<CertificatePolicyCache> policy_cache_; |
|
Eugene But (OOO till 7-30)
2015/03/31 20:11:09
C++ Style Guide says: Make data members private, u
stuartmorgan
2015/03/31 21:08:13
Done.
|
| +}; |
| +} |
| + |
| +// static |
| +scoped_refptr<CertificatePolicyCache> BrowserState::GetCertificatePolicyCache( |
| + BrowserState* browser_state) { |
| + DCHECK_CURRENTLY_ON_WEB_THREAD(WebThread::UI); |
| + if (!browser_state->GetUserData(kCertificatePolicyCacheKeyName)) { |
| + CertificatePolicyCacheHandle* cert_cache_service_handle = |
| + new CertificatePolicyCacheHandle(new CertificatePolicyCache()); |
| + |
| + browser_state->SetUserData(kCertificatePolicyCacheKeyName, |
| + cert_cache_service_handle); |
| + } |
| + |
| + CertificatePolicyCacheHandle* handle = |
| + static_cast<CertificatePolicyCacheHandle*>( |
| + browser_state->GetUserData(kCertificatePolicyCacheKeyName)); |
| + return handle->policy_cache_; |
| } |
| BrowserState::BrowserState() { |