summaryrefslogtreecommitdiffstats
path: root/chrome/browser/page_info_window.h
diff options
context:
space:
mode:
authorjcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-30 18:24:56 +0000
committerjcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-30 18:24:56 +0000
commit6fbdc9ca2946e7841adf64e7b8bb9999d8810301 (patch)
tree6b8df37c7d52fbce42354ebf53f141da30f4f660 /chrome/browser/page_info_window.h
parentf0037f16b1ce3bdecd6b99caff499f6ed5b6ef6a (diff)
downloadchromium_src-6fbdc9ca2946e7841adf64e7b8bb9999d8810301.zip
chromium_src-6fbdc9ca2946e7841adf64e7b8bb9999d8810301.tar.gz
chromium_src-6fbdc9ca2946e7841adf64e7b8bb9999d8810301.tar.bz2
Reverting 22070.
Review URL: http://codereview.chromium.org/159645 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22071 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/page_info_window.h')
-rw-r--r--chrome/browser/page_info_window.h84
1 files changed, 68 insertions, 16 deletions
diff --git a/chrome/browser/page_info_window.h b/chrome/browser/page_info_window.h
index 737c884..c39bd38 100644
--- a/chrome/browser/page_info_window.h
+++ b/chrome/browser/page_info_window.h
@@ -1,28 +1,80 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Copyright (c) 2006-2009 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_PAGE_INFO_WINDOW_H_
-#define CHROME_BROWSER_PAGE_INFO_WINDOW_H_
+#ifndef CHROME_BROWSER_PAGE_INFO_WINDOW_H__
+#define CHROME_BROWSER_PAGE_INFO_WINDOW_H__
#include "base/gfx/native_widget_types.h"
#include "chrome/browser/tab_contents/navigation_entry.h"
+#include "googleurl/src/gurl.h"
+#include "net/base/x509_certificate.h"
+// The page info window displays information regarding the current page,
+// including security information.
+
+class NavigationEntry;
+class PageInfoContentView;
+class PrefService;
class Profile;
-class GURL;
-namespace browser {
+class PageInfoWindow {
+ public:
+ enum TabID {
+ GENERAL = 0,
+ SECURITY,
+ };
+
+ // Factory method to get a new platform impl of PageInfoWindow
+ static PageInfoWindow* Factory();
+
+ // Creates and shows a new page info window for the main page.
+ static void CreatePageInfo(Profile* profile,
+ NavigationEntry* nav_entry,
+ gfx::NativeView parent,
+ TabID tab);
+
+ // Creates and shows a new page info window for the frame at |url| with the
+ // specified SSL information.
+ static void CreateFrameInfo(Profile* profile,
+ const GURL& url,
+ const NavigationEntry::SSLStatus& ssl,
+ gfx::NativeView parent,
+ TabID tab);
+
+ static void RegisterPrefs(PrefService* prefs);
+
+ PageInfoWindow();
+ virtual ~PageInfoWindow();
+
+ // This is the main initializer that creates the window.
+ virtual void Init(Profile* profile,
+ const GURL& url,
+ const NavigationEntry::SSLStatus& ssl,
+ NavigationEntry::PageType page_type,
+ bool show_history,
+ gfx::NativeView parent) = 0;
+
+ // Brings the page info window to the foreground.
+ virtual void Show() = 0;
+
+ // Shows various information for the specified certificate in a new dialog.
+ // This can be implemented as an individual window (like on Windows), or as
+ // a modal dialog/sheet (on Mac). Either will work since we're only expecting
+ // one certificate per page.
+ virtual void ShowCertDialog(int cert_id) = 0;
+
+ protected:
+ // Returns a name that can be used to represent the issuer. It tries in this
+ // order CN, O and OU and returns the first non-empty one found.
+ static std::string GetIssuerName(
+ const net::X509Certificate::Principal& issuer);
-// Shows the page info using the specified information.
-// |url| is the url of the page/frame the info applies to, |ssl| is the SSL
-// information for that page/frame. If |show_history| is true, a section
-// showing how many times that URL has been visited is added to the page info.
-void ShowPageInfo(gfx::NativeWindow parent,
- Profile* profile,
- const GURL& url,
- const NavigationEntry::SSLStatus& ssl,
- bool show_history);
+ // The id of the server cert for this page (0 means no cert).
+ int cert_id_;
-} // namespace browser
+ private:
+ DISALLOW_COPY_AND_ASSIGN(PageInfoWindow);
+};
-#endif // CHROME_BROWSER_PAGE_INFO_WINDOW_H_
+#endif // #define CHROME_BROWSER_PAGE_INFO_WINDOW_H__