summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ssl_blocking_page.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/ssl_blocking_page.h')
-rw-r--r--chrome/browser/ssl_blocking_page.h63
1 files changed, 16 insertions, 47 deletions
diff --git a/chrome/browser/ssl_blocking_page.h b/chrome/browser/ssl_blocking_page.h
index 9663124..0b4e9c6 100644
--- a/chrome/browser/ssl_blocking_page.h
+++ b/chrome/browser/ssl_blocking_page.h
@@ -2,18 +2,19 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_SSL_BLOCKING_PAGE_H__
-#define CHROME_BROWSER_SSL_BLOCKING_PAGE_H__
+#ifndef CHROME_BROWSER_SSL_BLOCKING_PAGE_H_
+#define CHROME_BROWSER_SSL_BLOCKING_PAGE_H_
#include <string>
+#include "chrome/browser/interstitial_page.h"
#include "chrome/browser/ssl_manager.h"
#include "chrome/views/decision.h"
// This class is responsible for showing/hiding the interstitial page that is
// shown when a certificate error happens.
// It deletes itself when the interstitial page is closed.
-class SSLBlockingPage : public NotificationObserver {
+class SSLBlockingPage : public InterstitialPage {
public:
// An interface that classes that want to interact with the SSLBlockingPage
// should implement.
@@ -30,45 +31,28 @@ class SSLBlockingPage : public NotificationObserver {
virtual void OnAllowCertificate(SSLManager::CertError* error) = 0;
};
- SSLBlockingPage(SSLManager::CertError* error,
- Delegate* delegate);
+ SSLBlockingPage(SSLManager::CertError* error, Delegate* delegate);
virtual ~SSLBlockingPage();
- void Show();
-
- virtual void Observe(NotificationType type,
- const NotificationSource& source,
- const NotificationDetails& details);
-
- // Invoked when the user clicks on proceed.
- // Warning: 'this' has been deleted when this method returns.
- void Proceed();
-
- // Invoked when the user clicks on "take me out of here".
- // Warning: 'this' has been deleted when this method returns.
- void DontProceed();
-
- // Retrieves the SSLBlockingPage if any associated with the specified
- // |tab_contents| (used by ui tests).
- static SSLBlockingPage* GetSSLBlockingPage(TabContents* tab_contents);
-
// A method that sets strings in the specified dictionary from the passed
// vector so that they can be used to resource the ssl_roadblock.html/
// ssl_error.html files.
// Note: there can be up to 5 strings in |extra_info|.
static void SetExtraInfo(DictionaryValue* strings,
const std::vector<std::wstring>& extra_info);
- private:
- typedef std::map<TabContents*,SSLBlockingPage*> SSLBlockingPageMap;
- void NotifyDenyCertificate();
+ protected:
+ // InterstitialPage implementation.
+ virtual std::string GetHTMLContents();
+ virtual void CommandReceived(const std::string& command);
+ virtual void UpdateEntry(NavigationEntry* entry);
+ virtual void Proceed();
+ virtual void DontProceed();
+ private:
+ void NotifyDenyCertificate();
void NotifyAllowCertificate();
- // Initializes tab_to_blocking_page_ in a thread-safe manner. Should be
- // called before accessing tab_to_blocking_page_.
- static void InitSSLBlockingPageMap();
-
// The error we represent. We will either call CancelRequest() or
// ContinueRequest() on this object.
scoped_refptr<SSLManager::CertError> error_;
@@ -80,23 +64,8 @@ class SSLBlockingPage : public NotificationObserver {
// A flag to indicate if we've notified |delegate_| of the user's decision.
bool delegate_has_been_notified_;
- // A flag used to know whether we should remove the last navigation entry from
- // the navigation controller.
- bool remove_last_entry_;
-
- // The tab in which we are displayed.
- TabContents* tab_;
- // Whether we created a fake navigation entry as part of showing the
- // interstitial page.
- bool created_nav_entry_;
-
- // We keep a map of the various blocking pages shown as the UI tests need to
- // be able to retrieve them.
- static SSLBlockingPageMap* tab_to_blocking_page_;
-
- DISALLOW_EVIL_CONSTRUCTORS(SSLBlockingPage);
+ DISALLOW_COPY_AND_ASSIGN(SSLBlockingPage);
};
-
-#endif // #ifndef CHROME_BROWSER_SSL_BLOCKING_PAGE_H__
+#endif // #ifndef CHROME_BROWSER_SSL_BLOCKING_PAGE_H_