| 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_
|
|
|