OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/message_loop.h" | 5 #include "base/message_loop.h" |
6 #include "base/thread.h" | 6 #include "base/thread.h" |
7 #include "chrome/browser/browser_process.h" | 7 #include "chrome/browser/browser_process.h" |
8 #include "chrome/browser/io_thread.h" | 8 #include "chrome/browser/io_thread.h" |
9 #include "chrome/browser/net/ssl_config_service_manager.h" | 9 #include "chrome/browser/net/ssl_config_service_manager.h" |
10 #include "chrome/browser/prefs/pref_member.h" | 10 #include "chrome/browser/prefs/pref_member.h" |
11 #include "chrome/browser/prefs/pref_service.h" | 11 #include "chrome/browser/prefs/pref_service.h" |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 virtual void Observe(NotificationType type, | 74 virtual void Observe(NotificationType type, |
75 const NotificationSource& source, | 75 const NotificationSource& source, |
76 const NotificationDetails& details); | 76 const NotificationDetails& details); |
77 | 77 |
78 // Store SSL config settings in |config|, directly from the preferences. Must | 78 // Store SSL config settings in |config|, directly from the preferences. Must |
79 // only be called from UI thread. | 79 // only be called from UI thread. |
80 void GetSSLConfigFromPrefs(net::SSLConfig* config); | 80 void GetSSLConfigFromPrefs(net::SSLConfig* config); |
81 | 81 |
82 // The prefs (should only be accessed from UI thread) | 82 // The prefs (should only be accessed from UI thread) |
83 BooleanPrefMember rev_checking_enabled_; | 83 BooleanPrefMember rev_checking_enabled_; |
84 BooleanPrefMember ssl2_enabled_; | |
85 BooleanPrefMember ssl3_enabled_; | 84 BooleanPrefMember ssl3_enabled_; |
86 BooleanPrefMember tls1_enabled_; | 85 BooleanPrefMember tls1_enabled_; |
87 | 86 |
88 scoped_refptr<SSLConfigServicePref> ssl_config_service_; | 87 scoped_refptr<SSLConfigServicePref> ssl_config_service_; |
89 | 88 |
90 DISALLOW_COPY_AND_ASSIGN(SSLConfigServiceManagerPref); | 89 DISALLOW_COPY_AND_ASSIGN(SSLConfigServiceManagerPref); |
91 }; | 90 }; |
92 | 91 |
93 SSLConfigServiceManagerPref::SSLConfigServiceManagerPref(Profile* profile) | 92 SSLConfigServiceManagerPref::SSLConfigServiceManagerPref(Profile* profile) |
94 : ssl_config_service_(new SSLConfigServicePref()) { | 93 : ssl_config_service_(new SSLConfigServicePref()) { |
95 RegisterUserPrefs(profile->GetPrefs()); | 94 RegisterUserPrefs(profile->GetPrefs()); |
96 | 95 |
97 rev_checking_enabled_.Init(prefs::kCertRevocationCheckingEnabled, | 96 rev_checking_enabled_.Init(prefs::kCertRevocationCheckingEnabled, |
98 profile->GetPrefs(), this); | 97 profile->GetPrefs(), this); |
99 ssl2_enabled_.Init(prefs::kSSL2Enabled, profile->GetPrefs(), this); | |
100 ssl3_enabled_.Init(prefs::kSSL3Enabled, profile->GetPrefs(), this); | 98 ssl3_enabled_.Init(prefs::kSSL3Enabled, profile->GetPrefs(), this); |
101 tls1_enabled_.Init(prefs::kTLS1Enabled, profile->GetPrefs(), this); | 99 tls1_enabled_.Init(prefs::kTLS1Enabled, profile->GetPrefs(), this); |
102 | 100 |
103 // Initialize from UI thread. This is okay as there shouldn't be anything on | 101 // Initialize from UI thread. This is okay as there shouldn't be anything on |
104 // the IO thread trying to access it yet. | 102 // the IO thread trying to access it yet. |
105 GetSSLConfigFromPrefs(&ssl_config_service_->cached_config_); | 103 GetSSLConfigFromPrefs(&ssl_config_service_->cached_config_); |
106 } | 104 } |
107 | 105 |
108 // static | 106 // static |
109 void SSLConfigServiceManagerPref::RegisterUserPrefs(PrefService* user_prefs) { | 107 void SSLConfigServiceManagerPref::RegisterUserPrefs(PrefService* user_prefs) { |
110 net::SSLConfig default_config; | 108 net::SSLConfig default_config; |
111 user_prefs->RegisterBooleanPref(prefs::kCertRevocationCheckingEnabled, | 109 user_prefs->RegisterBooleanPref(prefs::kCertRevocationCheckingEnabled, |
112 default_config.rev_checking_enabled); | 110 default_config.rev_checking_enabled); |
113 user_prefs->RegisterBooleanPref(prefs::kSSL2Enabled, | |
114 default_config.ssl2_enabled); | |
115 user_prefs->RegisterBooleanPref(prefs::kSSL3Enabled, | 111 user_prefs->RegisterBooleanPref(prefs::kSSL3Enabled, |
116 default_config.ssl3_enabled); | 112 default_config.ssl3_enabled); |
117 user_prefs->RegisterBooleanPref(prefs::kTLS1Enabled, | 113 user_prefs->RegisterBooleanPref(prefs::kTLS1Enabled, |
118 default_config.tls1_enabled); | 114 default_config.tls1_enabled); |
119 } | 115 } |
120 | 116 |
121 net::SSLConfigService* SSLConfigServiceManagerPref::Get() { | 117 net::SSLConfigService* SSLConfigServiceManagerPref::Get() { |
122 return ssl_config_service_; | 118 return ssl_config_service_; |
123 } | 119 } |
124 | 120 |
(...skipping 12 matching lines...) Expand all Loading... |
137 NewRunnableMethod( | 133 NewRunnableMethod( |
138 ssl_config_service_.get(), | 134 ssl_config_service_.get(), |
139 &SSLConfigServicePref::SetNewSSLConfig, | 135 &SSLConfigServicePref::SetNewSSLConfig, |
140 new_config)); | 136 new_config)); |
141 } | 137 } |
142 } | 138 } |
143 | 139 |
144 void SSLConfigServiceManagerPref::GetSSLConfigFromPrefs( | 140 void SSLConfigServiceManagerPref::GetSSLConfigFromPrefs( |
145 net::SSLConfig* config) { | 141 net::SSLConfig* config) { |
146 config->rev_checking_enabled = rev_checking_enabled_.GetValue(); | 142 config->rev_checking_enabled = rev_checking_enabled_.GetValue(); |
147 config->ssl2_enabled = ssl2_enabled_.GetValue(); | |
148 config->ssl3_enabled = ssl3_enabled_.GetValue(); | 143 config->ssl3_enabled = ssl3_enabled_.GetValue(); |
149 config->tls1_enabled = tls1_enabled_.GetValue(); | 144 config->tls1_enabled = tls1_enabled_.GetValue(); |
150 SSLConfigServicePref::SetSSLConfigFlags(config); | 145 SSLConfigServicePref::SetSSLConfigFlags(config); |
151 } | 146 } |
152 | 147 |
153 //////////////////////////////////////////////////////////////////////////////// | 148 //////////////////////////////////////////////////////////////////////////////// |
154 // SSLConfigServiceManager | 149 // SSLConfigServiceManager |
155 | 150 |
156 // static | 151 // static |
157 SSLConfigServiceManager* SSLConfigServiceManager::CreateDefaultManager( | 152 SSLConfigServiceManager* SSLConfigServiceManager::CreateDefaultManager( |
158 Profile* profile) { | 153 Profile* profile) { |
159 return new SSLConfigServiceManagerPref(profile); | 154 return new SSLConfigServiceManagerPref(profile); |
160 } | 155 } |
OLD | NEW |