summaryrefslogtreecommitdiffstats
path: root/chrome/browser/page_info_window.h
diff options
context:
space:
mode:
authormark@chromium.org <mark@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-17 19:21:56 +0000
committermark@chromium.org <mark@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-17 19:21:56 +0000
commit3c46b15df4004309cce51688337b43d5af2722c4 (patch)
tree6b5f81d68fa9e2af81a3e78275ee0eeadeb70d50 /chrome/browser/page_info_window.h
parentb55530cc5f175911fac5803367fcb1194a935da8 (diff)
downloadchromium_src-3c46b15df4004309cce51688337b43d5af2722c4.zip
chromium_src-3c46b15df4004309cce51688337b43d5af2722c4.tar.gz
chromium_src-3c46b15df4004309cce51688337b43d5af2722c4.tar.bz2
Implements the Page Info window on Mac.
- Splits out the code that was in chrome/browser/views/page_info_window.{cc,h} into a platform-independent class PageInfoWindow in chrome/browser/page_info_window.{cc,h} - The Windows implementation now lives in chrome/browser/views/page_info_window_win.{cc,h} - Created a Mac implemenation PageInfoWindowMac in chrome/browser/cocoa/page_info_window_mac.{h,mm} to bridge to a Cocoa NSWindowController - Created a new NSWindowController subclass PageInfoWindowController that is in chrome/browser/cocoa/page_info_window_controller.{h,mm} - Created a XIB for the page info window in chrome/app/nibs/en.lproj/PageInfo.xib Patch by Robert Sesek <rsesek@bluestatic.org> Review URL: http://codereview.chromium.org/115116 Review URL: http://codereview.chromium.org/125266 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18643 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/page_info_window.h')
-rw-r--r--chrome/browser/page_info_window.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/chrome/browser/page_info_window.h b/chrome/browser/page_info_window.h
new file mode 100644
index 0000000..c39bd38
--- /dev/null
+++ b/chrome/browser/page_info_window.h
@@ -0,0 +1,80 @@
+// 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__
+
+#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 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);
+
+ // The id of the server cert for this page (0 means no cert).
+ int cert_id_;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(PageInfoWindow);
+};
+
+#endif // #define CHROME_BROWSER_PAGE_INFO_WINDOW_H__