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

Unified Diff: chrome/browser/ssl/ssl_manager.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_host_state_unittest.cc ('k') | chrome/browser/ssl/ssl_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_
« no previous file with comments | « chrome/browser/ssl/ssl_host_state_unittest.cc ('k') | chrome/browser/ssl/ssl_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698