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

Side by Side Diff: chrome/browser/ssl/ssl_manager.h

Issue 48091: SSLPolicy Fix: Step 8.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 11 years, 9 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
« no previous file with comments | « no previous file | chrome/browser/ssl/ssl_manager.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 #ifndef CHROME_BROWSER_SSL_SSL_MANAGER_H_ 5 #ifndef CHROME_BROWSER_SSL_SSL_MANAGER_H_
6 #define CHROME_BROWSER_SSL_SSL_MANAGER_H_ 6 #define CHROME_BROWSER_SSL_SSL_MANAGER_H_
7 7
8 #include <string> 8 #include <string>
9 #include <map> 9 #include <map>
10 #include <vector> 10 #include <vector>
(...skipping 27 matching lines...) Expand all
38 class URLRequest; 38 class URLRequest;
39 class WebContents; 39 class WebContents;
40 40
41 // The SSLManager SSLManager controls the SSL UI elements in a TabContents. It 41 // The SSLManager SSLManager controls the SSL UI elements in a TabContents. It
42 // listens for various events that influence when these elements should or 42 // listens for various events that influence when these elements should or
43 // should not be displayed and adjusts them accordingly. 43 // should not be displayed and adjusts them accordingly.
44 // 44 //
45 // There is one SSLManager per tab. 45 // There is one SSLManager per tab.
46 // The security state (secure/insecure) is stored in the navigation entry. 46 // The security state (secure/insecure) is stored in the navigation entry.
47 // Along with it are stored any SSL error code and the associated cert. 47 // Along with it are stored any SSL error code and the associated cert.
48 //
49 48
50 class SSLManager : public NotificationObserver { 49 class SSLManager : public NotificationObserver {
51 public: 50 public:
52 class CertError; 51 class CertError;
53 52
54 // An ErrorHandler carries information from the IO thread to the UI thread 53 // An ErrorHandler carries information from the IO thread to the UI thread
55 // and is dispatched to the appropriate SSLManager when it arrives on the 54 // and is dispatched to the appropriate SSLManager when it arrives on the
56 // UI thread. Subclasses should override the OnDispatched/OnDispatchFailed 55 // UI thread. Subclasses should override the OnDispatched/OnDispatchFailed
57 // methods to implement the actions that should be taken on the UI thread. 56 // methods to implement the actions that should be taken on the UI thread.
58 // These methods can call the different convenience methods ContinueRequest/ 57 // These methods can call the different convenience methods ContinueRequest/
(...skipping 10 matching lines...) Expand all
69 68
70 // Find the appropriate SSLManager for the URLRequest and begin handling 69 // Find the appropriate SSLManager for the URLRequest and begin handling
71 // this error. 70 // this error.
72 // 71 //
73 // Call on UI thread. 72 // Call on UI thread.
74 void Dispatch(); 73 void Dispatch();
75 74
76 // Available on either thread. 75 // Available on either thread.
77 const GURL& request_url() const { return request_url_; } 76 const GURL& request_url() const { return request_url_; }
78 77
78 // Available on either thread.
79 ResourceType::Type resource_type() const { return resource_type_; }
80
81 // Available on either thread.
82 const std::string& frame_origin() const { return frame_origin_; }
83
84 // Available on either thread.
85 const std::string& main_frame_origin() const { return main_frame_origin_; }
86
79 // Call on the UI thread. 87 // Call on the UI thread.
80 SSLManager* manager() const { return manager_; } 88 SSLManager* manager() const { return manager_; }
81 89
82 // Returns the WebContents this object is associated with. Should be 90 // Returns the WebContents this object is associated with. Should be
83 // called from the UI thread. 91 // called from the UI thread.
84 WebContents* GetWebContents(); 92 WebContents* GetWebContents();
85 93
86 // Cancels the associated URLRequest. 94 // Cancels the associated URLRequest.
87 // This method can be called from OnDispatchFailed and OnDispatched. 95 // This method can be called from OnDispatchFailed and OnDispatched.
88 void CancelRequest(); 96 void CancelRequest();
(...skipping 22 matching lines...) Expand all
111 // Does nothing on the URLRequest but ensures the current instance ref 119 // Does nothing on the URLRequest but ensures the current instance ref
112 // count is decremented appropriately. Subclasses that do not want to 120 // count is decremented appropriately. Subclasses that do not want to
113 // take any specific actions in their OnDispatched/OnDispatchFailed should 121 // take any specific actions in their OnDispatched/OnDispatchFailed should
114 // call this. 122 // call this.
115 void TakeNoAction(); 123 void TakeNoAction();
116 124
117 protected: 125 protected:
118 // Construct on the IO thread. 126 // Construct on the IO thread.
119 ErrorHandler(ResourceDispatcherHost* resource_dispatcher_host, 127 ErrorHandler(ResourceDispatcherHost* resource_dispatcher_host,
120 URLRequest* request, 128 URLRequest* request,
129 ResourceType::Type resource_type,
130 const std::string& frame_origin,
131 const std::string& main_frame_origin,
121 MessageLoop* ui_loop); 132 MessageLoop* ui_loop);
122 133
123 // The following 2 methods are the methods subclasses should implement. 134 // The following 2 methods are the methods subclasses should implement.
124 virtual void OnDispatchFailed() { TakeNoAction(); } 135 virtual void OnDispatchFailed() { TakeNoAction(); }
125 136
126 // Can use the manager_ member. 137 // Can use the manager_ member.
127 virtual void OnDispatched() { TakeNoAction(); } 138 virtual void OnDispatched() { TakeNoAction(); }
128 139
129 // We cache the message loops to be able to proxy events across the thread 140 // We cache the message loops to be able to proxy events across the thread
130 // boundaries. 141 // boundaries.
(...skipping 26 matching lines...) Expand all
157 168
158 // Derefs this instance. 169 // Derefs this instance.
159 // Call on the IO thread. 170 // Call on the IO thread.
160 void CompleteTakeNoAction(); 171 void CompleteTakeNoAction();
161 172
162 // We use these members to find the correct SSLManager when we arrive on 173 // We use these members to find the correct SSLManager when we arrive on
163 // the UI thread. 174 // the UI thread.
164 int render_process_host_id_; 175 int render_process_host_id_;
165 int tab_contents_id_; 176 int tab_contents_id_;
166 177
178 // The URL that we requested.
167 // This read-only member can be accessed on any thread. 179 // This read-only member can be accessed on any thread.
168 const GURL request_url_; // The URL that we requested. 180 const GURL request_url_;
169 181
182 // What kind of resource is associated with the requested that generated
183 // that error.
184 // This read-only member can be accessed on any thread.
185 const ResourceType::Type resource_type_;
186
187 // The origin of the frame associated with this request.
188 // This read-only member can be accessed on any thread.
189 const std::string frame_origin_;
190
191 // The origin of the main frame associated with this request.
192 // This read-only member can be accessed on any thread.
193 const std::string main_frame_origin_;
194
195 // A flag to make sure we notify the URLRequest exactly once.
170 // Should only be accessed on the IO thread 196 // Should only be accessed on the IO thread
171 bool request_has_been_notified_; // A flag to make sure we notify the 197 bool request_has_been_notified_;
172 // URLRequest exactly once.
173 198
174 DISALLOW_COPY_AND_ASSIGN(ErrorHandler); 199 DISALLOW_COPY_AND_ASSIGN(ErrorHandler);
175 }; 200 };
176 201
177 // A CertError represents an error that occurred with the certificate in an 202 // A CertError represents an error that occurred with the certificate in an
178 // SSL session. A CertError object exists both on the IO thread and on the UI 203 // SSL session. A CertError object exists both on the IO thread and on the UI
179 // thread and allows us to cancel/continue a request it is associated with. 204 // thread and allows us to cancel/continue a request it is associated with.
180 class CertError : public ErrorHandler { 205 class CertError : public ErrorHandler {
181 public: 206 public:
182 207
183 virtual CertError* AsCertError() { return this; } 208 virtual CertError* AsCertError() { return this; }
184 209
185 // These accessors are available on either thread 210 // These accessors are available on either thread
186 const net::SSLInfo& ssl_info() const { return ssl_info_; } 211 const net::SSLInfo& ssl_info() const { return ssl_info_; }
187 int cert_error() const { return cert_error_; } 212 int cert_error() const { return cert_error_; }
188 213
189 ResourceType::Type resource_type() const { return resource_type_; }
190 private: 214 private:
191 // SSLManager is responsible for creating CertError objects. 215 // SSLManager is responsible for creating CertError objects.
192 friend class SSLManager; 216 friend class SSLManager;
193 217
194 // Construct on the IO thread. 218 // Construct on the IO thread.
195 // We mark this method as private because it is tricky to correctly 219 // We mark this method as private because it is tricky to correctly
196 // construct a CertError object. 220 // construct a CertError object.
197 CertError(ResourceDispatcherHost* resource_dispatcher_host, 221 CertError(ResourceDispatcherHost* resource_dispatcher_host,
198 URLRequest* request, 222 URLRequest* request,
199 ResourceType::Type resource_type, 223 ResourceType::Type resource_type,
224 const std::string& frame_origin,
225 const std::string& main_frame_origin,
200 int cert_error, 226 int cert_error,
201 net::X509Certificate* cert, 227 net::X509Certificate* cert,
202 MessageLoop* ui_loop); 228 MessageLoop* ui_loop);
203 229
204 // ErrorHandler methods 230 // ErrorHandler methods
205 virtual void OnDispatchFailed() { CancelRequest(); } 231 virtual void OnDispatchFailed() { CancelRequest(); }
206 virtual void OnDispatched() { manager_->OnCertError(this); } 232 virtual void OnDispatched() { manager_->OnCertError(this); }
207 233
208 // These read-only members can be accessed on any thread. 234 // These read-only members can be accessed on any thread.
209 net::SSLInfo ssl_info_; 235 net::SSLInfo ssl_info_;
210 const int cert_error_; // The error we represent. 236 const int cert_error_; // The error we represent.
211 237
212 // What kind of resource is associated with the requested that generated
213 // that error.
214 ResourceType::Type resource_type_;
215
216 DISALLOW_COPY_AND_ASSIGN(CertError); 238 DISALLOW_COPY_AND_ASSIGN(CertError);
217 }; 239 };
218 240
219 // The MixedContentHandler class is used to query what to do with 241 // The MixedContentHandler class is used to query what to do with
220 // mixed content, from the IO thread to the UI thread. 242 // mixed content, from the IO thread to the UI thread.
221 class MixedContentHandler : public ErrorHandler { 243 class MixedContentHandler : public ErrorHandler {
222 public: 244 public:
223 // Created on the IO thread. 245 // Created on the IO thread.
224 MixedContentHandler(ResourceDispatcherHost* rdh, 246 MixedContentHandler(ResourceDispatcherHost* rdh,
225 URLRequest* request, 247 URLRequest* request,
248 ResourceType::Type resource_type,
249 const std::string& frame_origin,
250 const std::string& main_frame_origin,
226 MessageLoop* ui_loop) 251 MessageLoop* ui_loop)
227 : ErrorHandler(rdh, request, ui_loop) { } 252 : ErrorHandler(rdh, request, resource_type, frame_origin,
253 main_frame_origin, ui_loop) { }
228 254
229 protected: 255 protected:
230 virtual void OnDispatchFailed() { TakeNoAction(); } 256 virtual void OnDispatchFailed() { TakeNoAction(); }
231 virtual void OnDispatched() { manager()->OnMixedContent(this); } 257 virtual void OnDispatched() { manager()->OnMixedContent(this); }
232 258
233 private: 259 private:
234 DISALLOW_COPY_AND_ASSIGN(MixedContentHandler); 260 DISALLOW_COPY_AND_ASSIGN(MixedContentHandler);
235 }; 261 };
236 262
263 // RequestInfo wraps up the information SSLPolicy needs about a request in
264 // order to update our security IU. RequestInfo is RefCounted in case we need
265 // to deal with the request asynchronously.
266 class RequestInfo : public base::RefCounted<RequestInfo> {
267 public:
268 RequestInfo(SSLManager* manager,
269 const GURL& url,
270 ResourceType::Type resource_type,
271 const std::string& frame_origin,
272 const std::string& main_frame_origin,
273 int ssl_cert_id,
274 int ssl_cert_status)
275 : manager_(manager),
276 url_(url),
277 resource_type_(resource_type),
278 frame_origin_(frame_origin),
279 main_frame_origin_(main_frame_origin),
280 ssl_cert_id_(ssl_cert_id),
281 ssl_cert_status_(ssl_cert_status) {
282 }
283
284 SSLManager* manager() const { return manager_; }
285 const GURL& url() const { return url_; }
286 ResourceType::Type resource_type() const { return resource_type_; }
287 const std::string& frame_origin() const { return frame_origin_; }
288 const std::string& main_frame_origin() const { return main_frame_origin_; }
289 int ssl_cert_id() const { return ssl_cert_id_; }
290 int ssl_cert_status() const { return ssl_cert_status_; }
291
292 private:
293 SSLManager* manager_;
294 GURL url_;
295 ResourceType::Type resource_type_;
296 std::string frame_origin_;
297 std::string main_frame_origin_;
298 int ssl_cert_id_;
299 int ssl_cert_status_;
300
301 DISALLOW_COPY_AND_ASSIGN(RequestInfo);
302 };
303
237 // The SSLManager will ask its delegate to decide how to handle events 304 // The SSLManager will ask its delegate to decide how to handle events
238 // relevant to SSL. Delegates are expected to be stateless and intended to be 305 // relevant to SSL. Delegates are expected to be stateless and intended to be
239 // easily implementable. 306 // easily implementable.
240 // 307 //
241 // Delegates should interact with the rest of the browser only through their 308 // Delegates should interact with the rest of the browser only through their
242 // parameters and through the delegate API of the SSLManager. 309 // parameters and through the delegate API of the SSLManager.
243 // 310 //
244 // If a delegate needs to do something tricky, consider having the SSLManager 311 // If a delegate needs to do something tricky, consider having the SSLManager
245 // do it instead. 312 // do it instead.
246 class Delegate { 313 class Delegate {
247 public: 314 public:
248 // An error occurred with the certificate in an SSL connection. 315 // An error occurred with the certificate in an SSL connection.
249 virtual void OnCertError(const GURL& main_frame_url, CertError* error) = 0; 316 virtual void OnCertError(CertError* error) = 0;
250 317
251 // A request for a mixed-content resource was made. Note that the resource 318 // A request for a mixed-content resource was made. Note that the resource
252 // request was not started yet and the delegate is responsible for starting 319 // request was not started yet and the delegate is responsible for starting
253 // it. 320 // it.
254 virtual void OnMixedContent( 321 virtual void OnMixedContent(MixedContentHandler* handler) = 0;
255 NavigationController* navigation_controller,
256 const GURL& main_frame_url,
257 MixedContentHandler* mixed_content_handler) = 0;
258 322
259 // We have started a resource request for the given URL. 323 // We have started a resource request with the given info.
260 virtual void OnRequestStarted(SSLManager* manager, 324 virtual void OnRequestStarted(RequestInfo* info) = 0;
261 const GURL& url,
262 ResourceType::Type resource_type,
263 int ssl_cert_id,
264 int ssl_cert_status) = 0;
265 325
266 // Returns the default security style for a given URL. 326 // Returns the default security style for a given URL.
267 virtual SecurityStyle GetDefaultStyle(const GURL& url) = 0; 327 virtual SecurityStyle GetDefaultStyle(const GURL& url) = 0;
268 }; 328 };
269 329
270 static void RegisterUserPrefs(PrefService* prefs); 330 static void RegisterUserPrefs(PrefService* prefs);
271 331
272 // Construct an SSLManager for the specified tab. 332 // Construct an SSLManager for the specified tab.
273 // If |delegate| is NULL, SSLPolicy::GetDefaultPolicy() is used. 333 // If |delegate| is NULL, SSLPolicy::GetDefaultPolicy() is used.
274 SSLManager(NavigationController* controller, Delegate* delegate); 334 SSLManager(NavigationController* controller, Delegate* delegate);
275 335
276 ~SSLManager(); 336 ~SSLManager();
277 337
278 ////////////////////////////////////////////////////////////////////////////// 338 //////////////////////////////////////////////////////////////////////////////
279 // Delegate API 339 // Delegate API
280 // 340 //
281 // The SSL manager expects these methods to be called by its delegate. They 341 // The SSL manager expects these methods to be called by its delegate. They
282 // exist to make Delegates easy to implement. 342 // exist to make Delegates easy to implement.
283 343
284 // Ensure that the specified message is displayed to the user. This will 344 // Ensure that the specified message is displayed to the user. This will
285 // display an InfoBar at the top of the associated tab. 345 // display an InfoBar at the top of the associated tab.
286 void ShowMessage(const std::wstring& msg); 346 void ShowMessage(const std::wstring& msg);
287 347
288 // Same as ShowMessage but also contains a link that when clicked run the 348 // Same as ShowMessage but also contains a link that when clicked run the
289 // specified task. The SSL Manager becomes the owner of the task. 349 // specified task. The SSL Manager becomes the owner of the task.
290 void ShowMessageWithLink(const std::wstring& msg, 350 void ShowMessageWithLink(const std::wstring& msg,
291 const std::wstring& link_text, 351 const std::wstring& link_text,
292 Task* task); 352 Task* task);
293 353
354 // Records that a host is "broken," that is, the origin for that host has been
355 // contaminated with insecure content, either via HTTP or via HTTPS with a
356 // bad certificate.
357 void MarkHostAsBroken(const std::string& host);
358
359 // Returns whether the specified host was marked as broken.
360 bool DidMarkHostAsBroken(const std::string& host) const;
361
294 // Sets the maximum security style for the page. If the current security 362 // Sets the maximum security style for the page. If the current security
295 // style is lower than |style|, this will not have an effect on the security 363 // style is lower than |style|, this will not have an effect on the security
296 // indicators. 364 // indicators.
297 // 365 //
298 // It will return true if the navigation entry was updated or false if 366 // It will return true if the navigation entry was updated or false if
299 // nothing changed. The caller is responsible for broadcasting 367 // nothing changed. The caller is responsible for broadcasting
300 // NOTIFY_SSY_STATE_CHANGED if it returns true. 368 // NOTIFY_SSY_STATE_CHANGED if it returns true.
301 bool SetMaxSecurityStyle(SecurityStyle style); 369 bool SetMaxSecurityStyle(SecurityStyle style);
302 370
303 // Logs a message to the console of the page. 371 // Logs a message to the console of the page.
304 void AddMessageToConsole(const std::wstring& msg, 372 void AddMessageToConsole(const std::wstring& msg,
305 ConsoleMessageLevel level); 373 ConsoleMessageLevel level);
306 374
307 // Records that |cert| is permitted to be used for |host| in the future. 375 // Records that |cert| is permitted to be used for |host| in the future.
308 void DenyCertForHost(net::X509Certificate* cert, const std::string& host); 376 void DenyCertForHost(net::X509Certificate* cert, const std::string& host);
309 377
310 // Records that |cert| is not permitted to be used for |host| in the future. 378 // Records that |cert| is not permitted to be used for |host| in the future.
311 void AllowCertForHost(net::X509Certificate* cert, const std::string& host); 379 void AllowCertForHost(net::X509Certificate* cert, const std::string& host);
312 380
313 // Queries whether |cert| is allowed or denied for |host|. 381 // Queries whether |cert| is allowed or denied for |host|.
314 net::X509Certificate::Policy::Judgment QueryPolicy( 382 net::X509Certificate::Policy::Judgment QueryPolicy(
315 net::X509Certificate* cert, const std::string& host); 383 net::X509Certificate* cert, const std::string& host);
316 384
317 // Allow mixed/unsafe content to be visible (non filtered) for the specified 385 // Allow mixed content to be visible (non filtered).
318 // URL. 386 void AllowMixedContentForHost(const std::string& host);
319 // Note that the current implementation allows on a host name basis.
320 void AllowShowInsecureContentForURL(const GURL& url);
321 387
322 // Returns whether the specified URL is allowed to show insecure (mixed or 388 // Returns whether the specified host is allowed to show mixed content.
323 // unsafe) content. 389 bool DidAllowMixedContentForHost(const std::string& host) const;
324 bool CanShowInsecureContent(const GURL& url);
325 390
326 // 391 //
327 ////////////////////////////////////////////////////////////////////////////// 392 //////////////////////////////////////////////////////////////////////////////
328 393
329 // The delegate of the SSLManager. This value may be changed at any time, 394 // The delegate of the SSLManager. This value may be changed at any time,
330 // but it is not permissible for it to be NULL. 395 // but it is not permissible for it to be NULL.
331 Delegate* delegate() const { return delegate_; } 396 Delegate* delegate() const { return delegate_; }
332 void set_delegate(Delegate* delegate) { delegate_ = delegate; } 397 void set_delegate(Delegate* delegate) { delegate_ = delegate; }
333 398
334 // Entry point for SSLCertificateErrors. This function begins the process 399 // Entry point for SSLCertificateErrors. This function begins the process
(...skipping 24 matching lines...) Expand all
359 // the SSL manager. The error originated from the ResourceDispatcherHost. 424 // the SSL manager. The error originated from the ResourceDispatcherHost.
360 // 425 //
361 // Called on the UI thread. 426 // Called on the UI thread.
362 void OnCertError(CertError* error); 427 void OnCertError(CertError* error);
363 428
364 // Called by MixedContentHandler::Dispatch to kick off processing of the 429 // Called by MixedContentHandler::Dispatch to kick off processing of the
365 // mixed-content resource request. The info originated from the 430 // mixed-content resource request. The info originated from the
366 // ResourceDispatcherHost. 431 // ResourceDispatcherHost.
367 // 432 //
368 // Called on the UI thread. 433 // Called on the UI thread.
369 void OnMixedContent(MixedContentHandler* mixed_content); 434 void OnMixedContent(MixedContentHandler* handler);
370 435
371 // Entry point for navigation. This function begins the process of updating 436 // Entry point for navigation. This function begins the process of updating
372 // the security UI when the main frame navigates to a new URL. 437 // the security UI when the main frame navigates to a new URL.
373 // 438 //
374 // Called on the UI thread. 439 // Called on the UI thread.
375 virtual void Observe(NotificationType type, 440 virtual void Observe(NotificationType type,
376 const NotificationSource& source, 441 const NotificationSource& source,
377 const NotificationDetails& details); 442 const NotificationDetails& details);
378 443
379 // Entry point for navigation. This function begins the process of updating 444 // Entry point for navigation. This function begins the process of updating
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
430 495
431 // Entry points for notifications to which we subscribe. Note that 496 // Entry points for notifications to which we subscribe. Note that
432 // DidCommitProvisionalLoad uses the abstract NotificationDetails type since 497 // DidCommitProvisionalLoad uses the abstract NotificationDetails type since
433 // the type we need is in NavigationController which would create a circular 498 // the type we need is in NavigationController which would create a circular
434 // header file dependency. 499 // header file dependency.
435 void DidLoadFromMemoryCache(LoadFromMemoryCacheDetails* details); 500 void DidLoadFromMemoryCache(LoadFromMemoryCacheDetails* details);
436 void DidCommitProvisionalLoad(const NotificationDetails& details); 501 void DidCommitProvisionalLoad(const NotificationDetails& details);
437 void DidFailProvisionalLoadWithError(ProvisionalLoadDetails* details); 502 void DidFailProvisionalLoadWithError(ProvisionalLoadDetails* details);
438 void DidStartResourceResponse(ResourceRequestDetails* details); 503 void DidStartResourceResponse(ResourceRequestDetails* details);
439 void DidReceiveResourceRedirect(ResourceRedirectDetails* details); 504 void DidReceiveResourceRedirect(ResourceRedirectDetails* details);
505 void DidChangeSSLInternalState();
506
507 // Dispatch NotificationType::SSL_INTERNAL_STATE_CHANGED notification.
508 void DispatchSSLInternalStateChanged();
509
510 // Dispatch NotificationType::SSL_VISIBLE_STATE_CHANGED notification.
511 void DispatchSSLVisibleStateChanged();
440 512
441 // Convenience method for initializing navigation entries. 513 // Convenience method for initializing navigation entries.
442 void InitializeEntryIfNeeded(NavigationEntry* entry); 514 void InitializeEntryIfNeeded(NavigationEntry* entry);
443 515
444 // Shows the pending messages (in info-bars) if any. 516 // Shows the pending messages (in info-bars) if any.
445 void ShowPendingMessages(); 517 void ShowPendingMessages();
446 518
447 // Clears any pending messages. 519 // Clears any pending messages.
448 void ClearPendingMessages(); 520 void ClearPendingMessages();
449 521
(...skipping 12 matching lines...) Expand all
462 SSLHostState* ssl_host_state_; 534 SSLHostState* ssl_host_state_;
463 535
464 // The list of messages that should be displayed (in info bars) when the page 536 // The list of messages that should be displayed (in info bars) when the page
465 // currently loading had loaded. 537 // currently loading had loaded.
466 std::vector<SSLMessageInfo> pending_messages_; 538 std::vector<SSLMessageInfo> pending_messages_;
467 539
468 DISALLOW_COPY_AND_ASSIGN(SSLManager); 540 DISALLOW_COPY_AND_ASSIGN(SSLManager);
469 }; 541 };
470 542
471 #endif // CHROME_BROWSER_SSL_SSL_MANAGER_H_ 543 #endif // CHROME_BROWSER_SSL_SSL_MANAGER_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/ssl/ssl_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698