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

Side by Side Diff: chrome/browser/cocoa/page_info_window_mac.mm

Issue 3175037: Add a flag for the showing the Page Info dialog as a bubble. This adds stubs for all platforms. (Closed) Base URL: http://src.chromium.org/git/chromium.git
Patch Set: gyp change Created 10 years, 4 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 unified diff | Download patch
« no previous file with comments | « chrome/browser/cocoa/page_info_window_mac.h ('k') | chrome/browser/gtk/browser_window_gtk.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/cocoa/page_info_window_mac.h" 5 #include "chrome/browser/cocoa/page_info_window_mac.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "app/l10n_util.h" 9 #include "app/l10n_util.h"
10 #include "base/scoped_cftyperef.h" 10 #include "base/scoped_cftyperef.h"
11 #include "app/resource_bundle.h" 11 #include "app/resource_bundle.h"
12 #include "base/string_util.h" 12 #include "base/string_util.h"
13 #include "base/sys_string_conversions.h" 13 #include "base/sys_string_conversions.h"
14 #import "chrome/browser/cocoa/page_info_window_controller.h" 14 #import "chrome/browser/cocoa/page_info_window_controller.h"
15 #include "chrome/browser/cert_store.h" 15 #include "chrome/browser/cert_store.h"
16 #include "chrome/browser/certificate_viewer.h" 16 #include "chrome/browser/certificate_viewer.h"
17 #include "chrome/browser/page_info_window.h"
17 #include "chrome/browser/profile.h" 18 #include "chrome/browser/profile.h"
18 #include "grit/generated_resources.h" 19 #include "grit/generated_resources.h"
19 #include "grit/theme_resources.h" 20 #include "grit/theme_resources.h"
20 #include "net/base/cert_status_flags.h" 21 #include "net/base/cert_status_flags.h"
21 #include "net/base/x509_certificate.h" 22 #include "net/base/x509_certificate.h"
22 #import "third_party/GTM/AppKit/GTMUILocalizerAndLayoutTweaker.h" 23 #import "third_party/GTM/AppKit/GTMUILocalizerAndLayoutTweaker.h"
23 24
24 namespace { 25 namespace {
25 26
26 // Spacing in between section boxes. 27 // Spacing in between section boxes.
(...skipping 12 matching lines...) Expand all
39 const NSInteger kBoxBottomSpacing = 7; 40 const NSInteger kBoxBottomSpacing = 7;
40 41
41 // Spacing between the image and the text. 42 // Spacing between the image and the text.
42 const NSInteger kImageSpacing = 10; 43 const NSInteger kImageSpacing = 10;
43 44
44 // Square size of the image. 45 // Square size of the image.
45 const CGFloat kImageSize = 30; 46 const CGFloat kImageSize = 30;
46 47
47 } // namespace 48 } // namespace
48 49
49 void PageInfoWindowMac::ShowPageInfo(Profile* profile, 50 namespace browser {
50 const GURL& url, 51
51 const NavigationEntry::SSLStatus& ssl, 52 void ShowPageInfo(gfx::NativeWindow parent,
52 bool show_history) { 53 Profile* profile,
53 // The controller will clean itself up after the NSWindow it manages closes. 54 const GURL& url,
54 // We do not manage it as it owns us. 55 const NavigationEntry::SSLStatus& ssl,
55 PageInfoWindowController* controller = 56 bool show_history) {
56 [[PageInfoWindowController alloc] init]; 57 PageInfoWindowMac::ShowPageInfo(parent, profile, url, ssl, show_history);
57 PageInfoWindowMac* page_info = new PageInfoWindowMac(controller,
58 profile,
59 url,
60 ssl,
61 show_history);
62 [controller setPageInfo:page_info];
63 page_info->LayoutSections();
64 page_info->Show();
65 } 58 }
66 59
60 void ShowPageInfoBubble(gfx::NativeWindow parent,
61 Profile* profile,
62 const GURL& url,
63 const NavigationEntry::SSLStatus& ssl,
64 bool show_history) {
65 NOTIMPLEMENTED();
66 }
67
68 } // namespace browser
69
67 PageInfoWindowMac::PageInfoWindowMac(PageInfoWindowController* controller, 70 PageInfoWindowMac::PageInfoWindowMac(PageInfoWindowController* controller,
68 Profile* profile, 71 Profile* profile,
69 const GURL& url, 72 const GURL& url,
70 const NavigationEntry::SSLStatus& ssl, 73 const NavigationEntry::SSLStatus& ssl,
71 bool show_history) 74 bool show_history)
72 : controller_(controller), 75 : controller_(controller),
73 model_(new PageInfoModel(profile, url, ssl, show_history, this)), 76 model_(new PageInfoModel(profile, url, ssl, show_history, this)),
74 cert_id_(ssl.cert_id()) { 77 cert_id_(ssl.cert_id()) {
75 Init(); 78 Init();
76 } 79 }
77 80
78 PageInfoWindowMac::PageInfoWindowMac(PageInfoWindowController* controller, 81 PageInfoWindowMac::PageInfoWindowMac(PageInfoWindowController* controller,
79 PageInfoModel* model) 82 PageInfoModel* model)
80 : controller_(controller), 83 : controller_(controller),
81 model_(model), 84 model_(model),
82 cert_id_(0) { 85 cert_id_(0) {
83 Init(); 86 Init();
84 } 87 }
85 88
89 // static
90 void PageInfoWindowMac::ShowPageInfo(gfx::NativeWindow parent,
91 Profile* profile,
92 const GURL& url,
93 const NavigationEntry::SSLStatus& ssl,
94 bool show_history) {
95 // The controller will clean itself up after the NSWindow it manages closes.
96 // We do not manage it as it owns us.
97 PageInfoWindowController* controller =
98 [[PageInfoWindowController alloc] init];
99 PageInfoWindowMac* page_info = new PageInfoWindowMac(controller,
100 profile,
101 url,
102 ssl,
103 show_history);
104 [controller setPageInfo:page_info];
105 page_info->LayoutSections();
106 page_info->Show();
107 }
108
86 void PageInfoWindowMac::Init() { 109 void PageInfoWindowMac::Init() {
87 // Load the image refs. 110 // Load the image refs.
88 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); 111 ResourceBundle& rb = ResourceBundle::GetSharedInstance();
89 good_image_.reset([rb.GetNSImageNamed(IDR_PAGEINFO_GOOD) retain]); 112 good_image_.reset([rb.GetNSImageNamed(IDR_PAGEINFO_GOOD) retain]);
90 DCHECK_GE(kImageSize, [good_image_ size].width); 113 DCHECK_GE(kImageSize, [good_image_ size].width);
91 DCHECK_GE(kImageSize, [good_image_ size].height); 114 DCHECK_GE(kImageSize, [good_image_ size].height);
92 bad_image_.reset([rb.GetNSImageNamed(IDR_PAGEINFO_BAD) retain]); 115 bad_image_.reset([rb.GetNSImageNamed(IDR_PAGEINFO_BAD) retain]);
93 DCHECK_GE(kImageSize, [bad_image_ size].width); 116 DCHECK_GE(kImageSize, [bad_image_ size].width);
94 DCHECK_GE(kImageSize, [bad_image_ size].height); 117 DCHECK_GE(kImageSize, [bad_image_ size].height);
95 } 118 }
96 119
97 PageInfoWindowMac::~PageInfoWindowMac() { 120 PageInfoWindowMac::~PageInfoWindowMac() {
98 } 121 }
99 122
100 void PageInfoWindowMac::Show() {
101 [[controller_ window] makeKeyAndOrderFront:nil];
102 }
103
104 void PageInfoWindowMac::ShowCertDialog(int) { 123 void PageInfoWindowMac::ShowCertDialog(int) {
105 DCHECK(cert_id_ != 0); 124 DCHECK(cert_id_ != 0);
106 ShowCertificateViewerByID([controller_ window], cert_id_); 125 ShowCertificateViewerByID([controller_ window], cert_id_);
107 } 126 }
108 127
128 void PageInfoWindowMac::ModelChanged() {
129 LayoutSections();
130 }
131
132 void PageInfoWindowMac::Show() {
133 [[controller_ window] makeKeyAndOrderFront:nil];
134 }
135
109 // This will create the subviews for the page info window. The general layout 136 // This will create the subviews for the page info window. The general layout
110 // is 2 or 3 boxed and titled sections, each of which has a status image to 137 // is 2 or 3 boxed and titled sections, each of which has a status image to
111 // provide visual feedback and a description that explains it. The description 138 // provide visual feedback and a description that explains it. The description
112 // text is usually only 1 or 2 lines, but can be much longer. At the bottom of 139 // text is usually only 1 or 2 lines, but can be much longer. At the bottom of
113 // the window is a button to view the SSL certificate, which is disabled if 140 // the window is a button to view the SSL certificate, which is disabled if
114 // not using HTTPS. 141 // not using HTTPS.
115 void PageInfoWindowMac::LayoutSections() { 142 void PageInfoWindowMac::LayoutSections() {
116 NSRect window_frame = [[controller_ window] frame]; 143 NSRect window_frame = [[controller_ window] frame];
117 CGFloat window_width = NSWidth(window_frame); 144 CGFloat window_width = NSWidth(window_frame);
118 // |offset| is the Y position that should be drawn at next. 145 // |offset| is the Y position that should be drawn at next.
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 [cert_button setEnabled:YES]; 250 [cert_button setEnabled:YES];
224 } 251 }
225 } 252 }
226 253
227 // Resize the window. Only animate if the window is visible, otherwise it 254 // Resize the window. Only animate if the window is visible, otherwise it
228 // could be "growing" while it's opening, looking awkward. 255 // could be "growing" while it's opening, looking awkward.
229 [[controller_ window] setFrame:window_frame 256 [[controller_ window] setFrame:window_frame
230 display:YES 257 display:YES
231 animate:[[controller_ window] isVisible]]; 258 animate:[[controller_ window] isVisible]];
232 } 259 }
233
234 void PageInfoWindowMac::ModelChanged() {
235 LayoutSections();
236 }
OLDNEW
« no previous file with comments | « chrome/browser/cocoa/page_info_window_mac.h ('k') | chrome/browser/gtk/browser_window_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698