| Index: chrome/browser/ssl/ssl_manager.h
|
| ===================================================================
|
| --- chrome/browser/ssl/ssl_manager.h (revision 87796)
|
| +++ chrome/browser/ssl/ssl_manager.h (working copy)
|
| @@ -1,132 +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_MANAGER_H_
|
| -#define CHROME_BROWSER_SSL_SSL_MANAGER_H_
|
| -#pragma once
|
| -
|
| -#include <string>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/string16.h"
|
| -#include "chrome/browser/ssl/ssl_policy_backend.h"
|
| -#include "content/common/notification_observer.h"
|
| -#include "content/common/notification_registrar.h"
|
| -#include "googleurl/src/gurl.h"
|
| -#include "net/base/net_errors.h"
|
| -
|
| -class LoadFromMemoryCacheDetails;
|
| -class NavigationController;
|
| -class NavigationEntry;
|
| -class ProvisionalLoadDetails;
|
| -class ResourceDispatcherHost;
|
| -class ResourceRedirectDetails;
|
| -class ResourceRequestDetails;
|
| -class SSLPolicy;
|
| -
|
| -namespace net {
|
| -class URLRequest;
|
| -} // namespace net
|
| -
|
| -// The SSLManager SSLManager controls the SSL UI elements in a TabContents. It
|
| -// listens for various events that influence when these elements should or
|
| -// should not be displayed and adjusts them accordingly.
|
| -//
|
| -// There is one SSLManager per tab.
|
| -// The security state (secure/insecure) is stored in the navigation entry.
|
| -// Along with it are stored any SSL error code and the associated cert.
|
| -
|
| -class SSLManager : public NotificationObserver {
|
| - public:
|
| - // Entry point for SSLCertificateErrors. This function begins the process
|
| - // of resolving a certificate error during an SSL connection. SSLManager
|
| - // will adjust the security UI and either call |Cancel| or
|
| - // |ContinueDespiteLastError| on the net::URLRequest.
|
| - //
|
| - // Called on the IO thread.
|
| - static void OnSSLCertificateError(ResourceDispatcherHost* resource_dispatcher,
|
| - net::URLRequest* request,
|
| - int cert_error,
|
| - net::X509Certificate* cert);
|
| -
|
| - // Called when SSL state for a host or tab changes. Broadcasts the
|
| - // SSL_INTERNAL_STATE_CHANGED notification.
|
| - static void NotifySSLInternalStateChanged();
|
| -
|
| - // Convenience methods for serializing/deserializing the security info.
|
| - static std::string SerializeSecurityInfo(int cert_id,
|
| - int cert_status,
|
| - int security_bits,
|
| - int connection_status);
|
| - static bool DeserializeSecurityInfo(const std::string& state,
|
| - int* cert_id,
|
| - int* cert_status,
|
| - int* security_bits,
|
| - int* connection_status);
|
| -
|
| - // Returns "<organization_name> [<country>]".
|
| - static string16 GetEVCertName(const net::X509Certificate& cert);
|
| -
|
| - // Construct an SSLManager for the specified tab.
|
| - // If |delegate| is NULL, SSLPolicy::GetDefaultPolicy() is used.
|
| - explicit SSLManager(NavigationController* controller);
|
| - virtual ~SSLManager();
|
| -
|
| - SSLPolicy* policy() { return policy_.get(); }
|
| - SSLPolicyBackend* backend() { return &backend_; }
|
| -
|
| - // The navigation controller associated with this SSLManager. The
|
| - // NavigationController is guaranteed to outlive the SSLManager.
|
| - NavigationController* controller() { return controller_; }
|
| -
|
| - // This entry point is called directly (instead of via the notification
|
| - // service) because we need more precise control of the order in which folks
|
| - // are notified of this event.
|
| - void DidCommitProvisionalLoad(const NotificationDetails& details);
|
| -
|
| - // Insecure content entry point.
|
| - void DidRunInsecureContent(const std::string& security_origin);
|
| -
|
| - // Called to determine if there were any processed SSL errors from request.
|
| - bool ProcessedSSLErrorFromRequest() const;
|
| -
|
| - // Entry point for navigation. This function begins the process of updating
|
| - // the security UI when the main frame navigates to a new URL.
|
| - //
|
| - // Called on the UI thread.
|
| - virtual void Observe(NotificationType type,
|
| - const NotificationSource& source,
|
| - const NotificationDetails& details);
|
| -
|
| - private:
|
| - // Entry points for notifications to which we subscribe. Note that
|
| - // DidCommitProvisionalLoad uses the abstract NotificationDetails type since
|
| - // the type we need is in NavigationController which would create a circular
|
| - // header file dependency.
|
| - void DidLoadFromMemoryCache(LoadFromMemoryCacheDetails* details);
|
| - void DidStartResourceResponse(ResourceRequestDetails* details);
|
| - void DidReceiveResourceRedirect(ResourceRedirectDetails* details);
|
| - void DidChangeSSLInternalState();
|
| -
|
| - // Update the NavigationEntry with our current state.
|
| - void UpdateEntry(NavigationEntry* entry);
|
| -
|
| - // The backend for the SSLPolicy to actuate its decisions.
|
| - SSLPolicyBackend backend_;
|
| -
|
| - // The SSLPolicy instance for this manager.
|
| - scoped_ptr<SSLPolicy> policy_;
|
| -
|
| - // The NavigationController that owns this SSLManager. We are responsible
|
| - // for the security UI of this tab.
|
| - NavigationController* controller_;
|
| -
|
| - // Handles registering notifications with the NotificationService.
|
| - NotificationRegistrar registrar_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(SSLManager);
|
| -};
|
| -
|
| -#endif // CHROME_BROWSER_SSL_SSL_MANAGER_H_
|
|
|