diff options
author | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-06 08:48:23 +0000 |
---|---|---|
committer | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-06 08:48:23 +0000 |
commit | f8f69210d233566fddf71b57b093dd16da609ffc (patch) | |
tree | 9ed9ffcd865d65c11b11f73ea486efa79af13346 | |
parent | 0af29d8cedd97d4604619dd4ab2b5e0a0805ecb1 (diff) | |
download | chromium_src-f8f69210d233566fddf71b57b093dd16da609ffc.zip chromium_src-f8f69210d233566fddf71b57b093dd16da609ffc.tar.gz chromium_src-f8f69210d233566fddf71b57b093dd16da609ffc.tar.bz2 |
Display an info link in the blocked cookies info bubble.
The link will pop up a dialog that displays the cookies blocked and accessed by the current page.
The XIB change adds a link-styled button (cell type HyperlinkButtonCell) below the title and above the horizontal line on the bubble with the text IDS_BLOCKED_COOKIES_INFO. The button action is hooked up to showMoreInfo: in the File's Owner.
BUG=45230
TEST=none
Review URL: http://codereview.chromium.org/2799012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51656 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/app/generated_resources.grd | 3 | ||||
-rw-r--r-- | chrome/app/nibs/ContentBlockedCookies.xib | 108 | ||||
-rw-r--r-- | chrome/browser/cocoa/content_blocked_bubble_controller.h | 3 | ||||
-rw-r--r-- | chrome/browser/cocoa/content_blocked_bubble_controller.mm | 5 | ||||
-rw-r--r-- | chrome/browser/content_setting_bubble_model.cc | 38 | ||||
-rw-r--r-- | chrome/browser/content_setting_bubble_model.h | 5 | ||||
-rw-r--r-- | chrome/browser/content_setting_bubble_model_unittest.cc | 3 | ||||
-rw-r--r-- | chrome/browser/gtk/content_setting_bubble_gtk.cc | 18 | ||||
-rw-r--r-- | chrome/browser/gtk/content_setting_bubble_gtk.h | 1 | ||||
-rw-r--r-- | chrome/browser/views/content_blocked_bubble_contents.cc | 22 | ||||
-rw-r--r-- | chrome/browser/views/content_blocked_bubble_contents.h | 1 |
11 files changed, 189 insertions, 18 deletions
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index 7a86de3..22ceb84 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd @@ -2330,6 +2330,9 @@ each locale. --> <message name="IDS_BLOCKED_COOKIES_LINK" desc="Link to cookie section of content blocking management dialog, displayed in bubble when a page tries to write cookies or other site data."> Manage cookie blocking... </message> + <message name="IDS_BLOCKED_COOKIES_INFO" desc="Info link to a dialog showing the blocked/allowed cookies, displayed in bubble when a page tries to write cookies or other site data."> + See cookies and other site data... + </message> <message name="IDS_BLOCKED_IMAGES_TITLE" desc="Tooltip and bubble info header text when a page is not allowed to display images."> Images were blocked on this page. </message> diff --git a/chrome/app/nibs/ContentBlockedCookies.xib b/chrome/app/nibs/ContentBlockedCookies.xib index af1ffca..fb9cca0 100644 --- a/chrome/app/nibs/ContentBlockedCookies.xib +++ b/chrome/app/nibs/ContentBlockedCookies.xib @@ -3,7 +3,7 @@ <data> <int key="IBDocument.SystemTarget">1050</int> <string key="IBDocument.SystemVersion">9L31a</string> - <string key="IBDocument.InterfaceBuilderVersion">677</string> + <string key="IBDocument.InterfaceBuilderVersion">680</string> <string key="IBDocument.AppKitVersion">949.54</string> <string key="IBDocument.HIToolboxVersion">353.00</string> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> @@ -37,7 +37,7 @@ <object class="NSWindowTemplate" id="1005"> <int key="NSWindowStyleMask">15</int> <int key="NSWindowBacking">2</int> - <string key="NSWindowRect">{{196, 422}, {316, 88}}</string> + <string key="NSWindowRect">{{196, 428}, {316, 114}}</string> <int key="NSWTFlags">536873984</int> <string key="NSWindowTitle">Window</string> <string key="NSWindowClass">InfoBubbleWindow</string> @@ -56,7 +56,7 @@ <object class="NSTextField" id="266815090"> <reference key="NSNextResponder" ref="301729179"/> <int key="NSvFlags">266</int> - <string key="NSFrame">{{17, 54}, {282, 14}}</string> + <string key="NSFrame">{{17, 86}, {282, 14}}</string> <reference key="NSSuperview" ref="301729179"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="157361777"> @@ -92,14 +92,14 @@ <object class="NSBox" id="913795455"> <reference key="NSNextResponder" ref="301729179"/> <int key="NSvFlags">34</int> - <string key="NSFrame">{{20, 43}, {276, 5}}</string> + <string key="NSFrame">{{20, 48}, {276, 5}}</string> <reference key="NSSuperview" ref="301729179"/> <string key="NSOffsets">{0, 0}</string> <object class="NSTextFieldCell" key="NSTitleCell"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">0</int> <string key="NSContents">Box</string> - <object class="NSFont" key="NSSupport"> + <object class="NSFont" key="NSSupport" id="27790857"> <string key="NSName">LucidaGrande</string> <double key="NSSize">1.300000e+01</double> <int key="NSfFlags">1044</int> @@ -149,7 +149,7 @@ </object> </object> </object> - <string key="NSFrameSize">{192, 37}</string> + <string key="NSFrame">{{0, 5}, {192, 37}}</string> <reference key="NSSuperview" ref="301729179"/> <string key="NSClassName">GTMWidthBasedTweaker</string> </object> @@ -179,17 +179,42 @@ </object> </object> </object> - <string key="NSFrame">{{193, 0}, {123, 37}}</string> + <string key="NSFrame">{{193, 5}, {123, 37}}</string> <reference key="NSSuperview" ref="301729179"/> <string key="NSClassName">GTMWidthBasedTweaker</string> </object> + <object class="NSButton" id="594274651"> + <reference key="NSNextResponder" ref="301729179"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{18, 46}, {280, 25}}</string> + <reference key="NSSuperview" ref="301729179"/> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="189684656"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">0</int> + <string key="NSContents">^IDS_BLOCKED_COOKIES_INFO</string> + <reference key="NSSupport" ref="27790857"/> + <reference key="NSControlView" ref="594274651"/> + <int key="NSButtonFlags">-2038021889</int> + <int key="NSButtonFlags2">134</int> + <object class="NSFont" key="NSAlternateImage"> + <string key="NSName">LucidaGrande</string> + <double key="NSSize">1.300000e+01</double> + <int key="NSfFlags">16</int> + </object> + <string key="NSAlternateContents"/> + <string key="NSKeyEquivalent"/> + <int key="NSPeriodicDelay">200</int> + <int key="NSPeriodicInterval">25</int> + </object> + </object> </object> - <string key="NSFrameSize">{316, 88}</string> + <string key="NSFrame">{{0, -6}, {316, 120}}</string> <reference key="NSSuperview" ref="1006"/> <string key="NSClassName">InfoBubbleView</string> </object> </object> - <string key="NSFrameSize">{316, 88}</string> + <string key="NSFrameSize">{316, 114}</string> <reference key="NSSuperview"/> </object> <string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string> @@ -285,6 +310,14 @@ </object> <int key="connectionID">34</int> </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">showMoreInfo:</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="594274651"/> + </object> + <int key="connectionID">39</int> + </object> </object> <object class="IBMutableOrderedSet" key="objectRecords"> <object class="NSArray" key="orderedObjects"> @@ -339,9 +372,10 @@ <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> <reference ref="266815090"/> - <reference ref="913795455"/> <reference ref="395762087"/> <reference ref="730386640"/> + <reference ref="594274651"/> + <reference ref="913795455"/> </object> <reference key="parent" ref="1006"/> </object> @@ -420,6 +454,20 @@ <reference key="object" ref="319182835"/> <reference key="parent" ref="91589614"/> </object> + <object class="IBObjectRecord"> + <int key="objectID">37</int> + <reference key="object" ref="594274651"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="189684656"/> + </object> + <reference key="parent" ref="301729179"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">38</int> + <reference key="object" ref="189684656"/> + <reference key="parent" ref="594274651"/> + </object> </object> </object> <object class="NSMutableDictionary" key="flattenedProperties"> @@ -443,6 +491,9 @@ <string>2.IBPluginDependency</string> <string>20.IBPluginDependency</string> <string>21.IBPluginDependency</string> + <string>37.IBPluginDependency</string> + <string>38.CustomClassName</string> + <string>38.IBPluginDependency</string> <string>4.IBPluginDependency</string> <string>7.IBPluginDependency</string> <string>8.IBPluginDependency</string> @@ -452,9 +503,9 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{345, 608}, {316, 88}}</string> + <string>{{345, 582}, {316, 114}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{345, 608}, {316, 88}}</string> + <string>{{345, 582}, {316, 114}}</string> <boolean value="NO"/> <string>{196, 240}</string> <string>{{357, 418}, {480, 270}}</string> @@ -467,6 +518,9 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>HyperlinkButtonCell</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> </object> @@ -491,7 +545,7 @@ </object> </object> <nil key="sourceID"/> - <int key="maxID">34</int> + <int key="maxID">39</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <object class="NSMutableArray" key="referencedPartialClassDescriptions"> @@ -521,6 +575,7 @@ <bool key="EncodedWithXMLCoder">YES</bool> <string>allowBlockToggled:</string> <string>closeBubble:</string> + <string>showMoreInfo:</string> <string>manageBlocking:</string> </object> <object class="NSMutableArray" key="dict.values"> @@ -528,6 +583,7 @@ <string>id</string> <string>id</string> <string>id</string> + <string>id</string> </object> </object> <object class="NSMutableDictionary" key="outlets"> @@ -597,7 +653,7 @@ <string>id</string> </object> </object> - <object class="IBClassDescriptionSource" key="sourceIdentifier" id="767752153"> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="907487000"> <string key="majorKey">IBProjectSource</string> <string key="minorKey">../third_party/GTM/AppKit/GTMUILocalizerAndLayoutTweaker.h</string> </object> @@ -620,7 +676,15 @@ <string>NSView</string> </object> </object> - <reference key="sourceIdentifier" ref="767752153"/> + <reference key="sourceIdentifier" ref="907487000"/> + </object> + <object class="IBPartialClassDescription"> + <string key="className">HyperlinkButtonCell</string> + <string key="superclassName">NSButtonCell</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">browser/cocoa/hyperlink_button_cell.h</string> + </object> </object> <object class="IBPartialClassDescription"> <string key="className">InfoBubbleView</string> @@ -642,6 +706,20 @@ <string key="className">NSObject</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBProjectSource</string> + <string key="minorKey">../third_party/GTM/Foundation/GTMNSObject+KeyValueObserving.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">browser/cocoa/objc_zombie.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> <string key="minorKey">browser/cocoa/status_bubble_mac.h</string> </object> </object> diff --git a/chrome/browser/cocoa/content_blocked_bubble_controller.h b/chrome/browser/cocoa/content_blocked_bubble_controller.h index 6bb7c90..3d824cf 100644 --- a/chrome/browser/cocoa/content_blocked_bubble_controller.h +++ b/chrome/browser/cocoa/content_blocked_bubble_controller.h @@ -53,4 +53,7 @@ typedef std::map<NSButton*, int> PopupLinks; // Callback for "manage" button. - (IBAction)manageBlocking:(id)sender; +// Callback for "info" link. +- (IBAction)showMoreInfo:(id)sender; + @end diff --git a/chrome/browser/cocoa/content_blocked_bubble_controller.mm b/chrome/browser/cocoa/content_blocked_bubble_controller.mm index d0ae86f..b4c453b 100644 --- a/chrome/browser/cocoa/content_blocked_bubble_controller.mm +++ b/chrome/browser/cocoa/content_blocked_bubble_controller.mm @@ -393,6 +393,11 @@ NSTextField* LabelWithFrame(NSString* text, const NSRect& frame) { contentSettingBubbleModel_->OnManageLinkClicked(); } +- (IBAction)showMoreInfo:(id)sender { + contentSettingBubbleModel_->OnInfoLinkClicked(); + [self close]; +} + - (void)popupLinkClicked:(id)sender { content_blocked_bubble::PopupLinks::iterator i(popupLinks_.find(sender)); DCHECK(i != popupLinks_.end()); diff --git a/chrome/browser/content_setting_bubble_model.cc b/chrome/browser/content_setting_bubble_model.cc index f396cded..19587a5 100644 --- a/chrome/browser/content_setting_bubble_model.cc +++ b/chrome/browser/content_setting_bubble_model.cc @@ -66,6 +66,40 @@ class ContentSettingTitleAndLinkModel : public ContentSettingBubbleModel { } }; +class ContentSettingTitleLinkAndInfoModel + : public ContentSettingTitleAndLinkModel { + public: + ContentSettingTitleLinkAndInfoModel(TabContents* tab_contents, + Profile* profile, + ContentSettingsType content_type) + : ContentSettingTitleAndLinkModel(tab_contents, profile, content_type) { + SetInfoLink(); + } + + private: + void SetInfoLink() { + static const int kInfoIDs[] = { + IDS_BLOCKED_COOKIES_INFO, + 0, // Images do not have an info link. + 0, // Javascript doesn't have an info link. + 0, // Plugins do not have an info link. + 0, // Popups do not have an info link. + 0, // Geolocation does not have an info link. + 0, // Notifications do not have a bubble. + }; + COMPILE_ASSERT(arraysize(kInfoIDs) == CONTENT_SETTINGS_NUM_TYPES, + Need_a_setting_for_every_content_settings_type); + if (kInfoIDs[content_type()]) + set_info_link(l10n_util::GetStringUTF8(kInfoIDs[content_type()])); + } + + virtual void OnInfoLinkClicked() { + DCHECK(content_type() == CONTENT_SETTINGS_TYPE_COOKIES); + // FIXME(jochen): show cookie info dialog. + } +}; + + class ContentSettingSingleRadioGroup : public ContentSettingTitleAndLinkModel { public: ContentSettingSingleRadioGroup(TabContents* tab_contents, Profile* profile, @@ -256,8 +290,8 @@ ContentSettingBubbleModel* Profile* profile, ContentSettingsType content_type) { if (content_type == CONTENT_SETTINGS_TYPE_COOKIES) { - return new ContentSettingTitleAndLinkModel(tab_contents, profile, - content_type); + return new ContentSettingTitleLinkAndInfoModel(tab_contents, profile, + content_type); } if (content_type == CONTENT_SETTINGS_TYPE_POPUPS) { return new ContentSettingPopupBubbleModel(tab_contents, profile, diff --git a/chrome/browser/content_setting_bubble_model.h b/chrome/browser/content_setting_bubble_model.h index 18cf6ac..a8aa744 100644 --- a/chrome/browser/content_setting_bubble_model.h +++ b/chrome/browser/content_setting_bubble_model.h @@ -59,6 +59,7 @@ class ContentSettingBubbleModel : public NotificationObserver { std::vector<DomainList> domain_lists; std::string manage_link; std::string clear_link; + std::string info_link; }; const BubbleContent& bubble_content() const { return bubble_content_; } @@ -72,6 +73,7 @@ class ContentSettingBubbleModel : public NotificationObserver { virtual void OnPopupClicked(int index) {} virtual void OnManageLinkClicked() {} virtual void OnClearLinkClicked() {} + virtual void OnInfoLinkClicked() {} protected: ContentSettingBubbleModel(TabContents* tab_contents, Profile* profile, @@ -96,6 +98,9 @@ class ContentSettingBubbleModel : public NotificationObserver { void set_clear_link(const std::string& link) { bubble_content_.clear_link = link; } + void set_info_link(const std::string& link) { + bubble_content_.info_link = link; + } private: TabContents* tab_contents_; diff --git a/chrome/browser/content_setting_bubble_model_unittest.cc b/chrome/browser/content_setting_bubble_model_unittest.cc index 5615a94..5f96e49 100644 --- a/chrome/browser/content_setting_bubble_model_unittest.cc +++ b/chrome/browser/content_setting_bubble_model_unittest.cc @@ -36,6 +36,7 @@ class ContentSettingBubbleModelTest : public RenderViewHostTestHarness { else EXPECT_EQ(std::string(), bubble_content.clear_link); EXPECT_NE(std::string(), bubble_content.manage_link); + EXPECT_EQ(std::string(), bubble_content.info_link); EXPECT_EQ(std::string(), bubble_content.title); } @@ -55,6 +56,7 @@ TEST_F(ContentSettingBubbleModelTest, ImageRadios) { EXPECT_EQ(2U, bubble_content.radio_group.radio_items.size()); EXPECT_EQ(0, bubble_content.radio_group.default_item); EXPECT_NE(std::string(), bubble_content.manage_link); + EXPECT_EQ(std::string(), bubble_content.info_link); EXPECT_NE(std::string(), bubble_content.title); } @@ -70,6 +72,7 @@ TEST_F(ContentSettingBubbleModelTest, Cookies) { content_setting_bubble_model->bubble_content(); EXPECT_EQ(0U, bubble_content.radio_group.radio_items.size()); EXPECT_NE(std::string(), bubble_content.manage_link); + EXPECT_NE(std::string(), bubble_content.info_link); EXPECT_NE(std::string(), bubble_content.title); } diff --git a/chrome/browser/gtk/content_setting_bubble_gtk.cc b/chrome/browser/gtk/content_setting_bubble_gtk.cc index e4afdcd..f285fd8 100644 --- a/chrome/browser/gtk/content_setting_bubble_gtk.cc +++ b/chrome/browser/gtk/content_setting_bubble_gtk.cc @@ -184,6 +184,19 @@ void ContentSettingBubbleGtk::BuildBubble() { FALSE, FALSE, 0); } + if (!content.info_link.empty()) { + GtkWidget* info_link_box = gtk_hbox_new(FALSE, 0); + GtkWidget* info_link = gtk_chrome_link_button_new( + content.info_link.c_str()); + g_signal_connect(info_link, "clicked", G_CALLBACK(OnInfoLinkClickedThunk), + this); + gtk_box_pack_start(GTK_BOX(info_link_box), info_link, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(bubble_content), info_link_box, + FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(bubble_content), gtk_hseparator_new(), + FALSE, FALSE, 0); + } + GtkWidget* bottom_box = gtk_hbox_new(FALSE, 0); GtkWidget* manage_link = @@ -263,3 +276,8 @@ void ContentSettingBubbleGtk::OnClearLinkClicked(GtkWidget* button) { content_setting_bubble_model_->OnClearLinkClicked(); Close(); } + +void ContentSettingBubbleGtk::OnInfoLinkClicked(GtkWidget* button) { + content_setting_bubble_model_->OnInfoLinkClicked(); + Close(); +} diff --git a/chrome/browser/gtk/content_setting_bubble_gtk.h b/chrome/browser/gtk/content_setting_bubble_gtk.h index e0e9921..868eeb2 100644 --- a/chrome/browser/gtk/content_setting_bubble_gtk.h +++ b/chrome/browser/gtk/content_setting_bubble_gtk.h @@ -58,6 +58,7 @@ class ContentSettingBubbleGtk : public InfoBubbleGtkDelegate, CHROMEGTK_CALLBACK_0(ContentSettingBubbleGtk, void, OnCloseButtonClicked); CHROMEGTK_CALLBACK_0(ContentSettingBubbleGtk, void, OnManageLinkClicked); CHROMEGTK_CALLBACK_0(ContentSettingBubbleGtk, void, OnClearLinkClicked); + CHROMEGTK_CALLBACK_0(ContentSettingBubbleGtk, void, OnInfoLinkClicked); // We position the bubble near this widget. GtkWidget* anchor_; diff --git a/chrome/browser/views/content_blocked_bubble_contents.cc b/chrome/browser/views/content_blocked_bubble_contents.cc index ab7675a..bef80be 100644 --- a/chrome/browser/views/content_blocked_bubble_contents.cc +++ b/chrome/browser/views/content_blocked_bubble_contents.cc @@ -102,7 +102,8 @@ ContentSettingBubbleContents::ContentSettingBubbleContents( info_bubble_(NULL), close_button_(NULL), manage_link_(NULL), - clear_link_(NULL) { + clear_link_(NULL), + info_link_(NULL) { registrar_.Add(this, NotificationType::TAB_CONTENTS_DESTROYED, Source<TabContents>(tab_contents)); } @@ -150,6 +151,12 @@ void ContentSettingBubbleContents::LinkActivated(views::Link* source, info_bubble_->Close(); // CAREFUL: This deletes us. return; } + if (source == info_link_) { + content_setting_bubble_model_->OnInfoLinkClicked(); + info_bubble_->set_fade_away_on_close(true); + info_bubble_->Close(); // CAREFUL: This deletes us. + return; + } PopupLinks::const_iterator i(popup_links_.find(source)); DCHECK(i != popup_links_.end()); @@ -283,6 +290,19 @@ void ContentSettingBubbleContents::InitControlLayout() { layout->AddPaddingRow(0, kRelatedControlVerticalSpacing); } + if (!bubble_content.info_link.empty()) { + info_link_ = new views::Link(UTF8ToWide(bubble_content.info_link)); + info_link_->SetController(this); + layout->StartRow(0, single_column_set_id); + layout->AddView(info_link_); + + layout->AddPaddingRow(0, kRelatedControlVerticalSpacing); + layout->StartRow(0, single_column_set_id); + layout->AddView(new views::Separator, 1, 1, + GridLayout::FILL, GridLayout::FILL); + layout->AddPaddingRow(0, kRelatedControlVerticalSpacing); + } + const int double_column_set_id = 1; views::ColumnSet* double_column_set = layout->AddColumnSet(double_column_set_id); diff --git a/chrome/browser/views/content_blocked_bubble_contents.h b/chrome/browser/views/content_blocked_bubble_contents.h index ad4511c..bdbaf9e 100644 --- a/chrome/browser/views/content_blocked_bubble_contents.h +++ b/chrome/browser/views/content_blocked_bubble_contents.h @@ -93,6 +93,7 @@ class ContentSettingBubbleContents : public views::View, views::NativeButton* close_button_; views::Link* manage_link_; views::Link* clear_link_; + views::Link* info_link_; DISALLOW_IMPLICIT_CONSTRUCTORS(ContentSettingBubbleContents); }; |