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

Unified Diff: chrome/browser/ssl/ssl_error_handler.h

Issue 7111013: Move most of the core SSL code from chrome to content. The UI code that's specific to Chrome (i.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ssl/ssl_client_auth_notification_details.cc ('k') | chrome/browser/ssl/ssl_error_handler.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ssl/ssl_error_handler.h
===================================================================
--- chrome/browser/ssl/ssl_error_handler.h (revision 87796)
+++ chrome/browser/ssl/ssl_error_handler.h (working copy)
@@ -1,144 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_SSL_SSL_ERROR_HANDLER_H_
-#define CHROME_BROWSER_SSL_SSL_ERROR_HANDLER_H_
-#pragma once
-
-#include <string>
-
-#include "base/basictypes.h"
-#include "base/memory/ref_counted.h"
-#include "chrome/browser/ssl/ssl_manager.h"
-#include "content/browser/renderer_host/global_request_id.h"
-#include "googleurl/src/gurl.h"
-#include "webkit/glue/resource_type.h"
-
-class ResourceDispatcherHost;
-class SSLCertErrorHandler;
-class TabContents;
-
-namespace net {
-class URLRequest;
-} // namespace net
-
-// An SSLErrorHandler carries information from the IO thread to the UI thread
-// and is dispatched to the appropriate SSLManager when it arrives on the
-// UI thread. Subclasses should override the OnDispatched/OnDispatchFailed
-// methods to implement the actions that should be taken on the UI thread.
-// These methods can call the different convenience methods ContinueRequest/
-// CancelRequest to perform any required action on the net::URLRequest the
-// ErrorHandler was created with.
-//
-// IMPORTANT NOTE:
-//
-// If you are not doing anything in OnDispatched/OnDispatchFailed, make sure
-// you call TakeNoAction(). This is necessary for ensuring the instance is
-// not leaked.
-//
-class SSLErrorHandler : public base::RefCountedThreadSafe<SSLErrorHandler> {
- public:
- virtual SSLCertErrorHandler* AsSSLCertErrorHandler();
-
- // Find the appropriate SSLManager for the net::URLRequest and begin handling
- // this error.
- //
- // Call on UI thread.
- void Dispatch();
-
- // Available on either thread.
- const GURL& request_url() const { return request_url_; }
-
- // Available on either thread.
- ResourceType::Type resource_type() const { return resource_type_; }
-
- // Returns the TabContents this object is associated with. Should be
- // called from the UI thread.
- TabContents* GetTabContents();
-
- // Cancels the associated net::URLRequest.
- // This method can be called from OnDispatchFailed and OnDispatched.
- void CancelRequest();
-
- // Continue the net::URLRequest ignoring any previous errors. Note that some
- // errors cannot be ignored, in which case this will result in the request
- // being canceled.
- // This method can be called from OnDispatchFailed and OnDispatched.
- void ContinueRequest();
-
- // Cancels the associated net::URLRequest and mark it as denied. The renderer
- // processes such request in a special manner, optionally replacing them
- // with alternate content (typically frames content is replaced with a
- // warning message).
- // This method can be called from OnDispatchFailed and OnDispatched.
- void DenyRequest();
-
- // Does nothing on the net::URLRequest but ensures the current instance ref
- // count is decremented appropriately. Subclasses that do not want to
- // take any specific actions in their OnDispatched/OnDispatchFailed should
- // call this.
- void TakeNoAction();
-
- protected:
- friend class base::RefCountedThreadSafe<SSLErrorHandler>;
-
- // Construct on the IO thread.
- SSLErrorHandler(ResourceDispatcherHost* resource_dispatcher_host,
- net::URLRequest* request,
- ResourceType::Type resource_type);
-
- virtual ~SSLErrorHandler();
-
- // The following 2 methods are the methods subclasses should implement.
- virtual void OnDispatchFailed();
-
- // Can use the manager_ member.
- virtual void OnDispatched();
-
- // Should only be accessed on the UI thread.
- SSLManager* manager_; // Our manager.
-
- // The id of the net::URLRequest associated with this object.
- // Should only be accessed from the IO thread.
- GlobalRequestID request_id_;
-
- // The ResourceDispatcherHost we are associated with.
- ResourceDispatcherHost* resource_dispatcher_host_;
-
- private:
- // Completes the CancelRequest operation on the IO thread.
- // Call on the IO thread.
- void CompleteCancelRequest(int error);
-
- // Completes the ContinueRequest operation on the IO thread.
- //
- // Call on the IO thread.
- void CompleteContinueRequest();
-
- // Derefs this instance.
- // Call on the IO thread.
- void CompleteTakeNoAction();
-
- // We use these members to find the correct SSLManager when we arrive on
- // the UI thread.
- int render_process_host_id_;
- int tab_contents_id_;
-
- // The URL that we requested.
- // This read-only member can be accessed on any thread.
- const GURL request_url_;
-
- // What kind of resource is associated with the requested that generated
- // that error.
- // This read-only member can be accessed on any thread.
- const ResourceType::Type resource_type_;
-
- // A flag to make sure we notify the net::URLRequest exactly once.
- // Should only be accessed on the IO thread
- bool request_has_been_notified_;
-
- DISALLOW_COPY_AND_ASSIGN(SSLErrorHandler);
-};
-
-#endif // CHROME_BROWSER_SSL_SSL_ERROR_HANDLER_H_
« no previous file with comments | « chrome/browser/ssl/ssl_client_auth_notification_details.cc ('k') | chrome/browser/ssl/ssl_error_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698