diff options
author | jcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-30 18:24:56 +0000 |
---|---|---|
committer | jcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-30 18:24:56 +0000 |
commit | 6fbdc9ca2946e7841adf64e7b8bb9999d8810301 (patch) | |
tree | 6b8df37c7d52fbce42354ebf53f141da30f4f660 /chrome/browser/page_info_window.h | |
parent | f0037f16b1ce3bdecd6b99caff499f6ed5b6ef6a (diff) | |
download | chromium_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.h | 84 |
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__ |