| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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_ |
| OLD | NEW |