| OLD | NEW |
| 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/views/collected_cookies_win.h" | 5 #include "chrome/browser/views/collected_cookies_win.h" |
| 6 | 6 |
| 7 #include "app/l10n_util.h" | 7 #include "app/l10n_util.h" |
| 8 #include "app/resource_bundle.h" |
| 8 #include "chrome/browser/cookies_tree_model.h" | 9 #include "chrome/browser/cookies_tree_model.h" |
| 9 #include "chrome/browser/profile.h" | 10 #include "chrome/browser/profile.h" |
| 10 #include "chrome/browser/tab_contents/tab_contents.h" | 11 #include "chrome/browser/tab_contents/tab_contents.h" |
| 11 #include "chrome/common/notification_service.h" | 12 #include "chrome/common/notification_service.h" |
| 13 #include "gfx/color_utils.h" |
| 12 #include "grit/generated_resources.h" | 14 #include "grit/generated_resources.h" |
| 13 #include "grit/locale_settings.h" | 15 #include "grit/locale_settings.h" |
| 16 #include "grit/theme_resources.h" |
| 17 #include "views/box_layout.h" |
| 18 #include "views/controls/button/native_button.h" |
| 19 #include "views/controls/image_view.h" |
| 14 #include "views/controls/label.h" | 20 #include "views/controls/label.h" |
| 15 #include "views/controls/button/native_button.h" | 21 #include "views/controls/separator.h" |
| 16 #include "views/standard_layout.h" | 22 #include "views/standard_layout.h" |
| 23 #include "views/widget/root_view.h" |
| 24 #include "views/widget/widget_win.h" |
| 17 #include "views/window/window.h" | 25 #include "views/window/window.h" |
| 18 | 26 |
| 19 namespace browser { | 27 namespace browser { |
| 20 | 28 |
| 21 // Declared in browser_dialogs.h so others don't have to depend on our header. | 29 // Declared in browser_dialogs.h so others don't have to depend on our header. |
| 22 void ShowCollectedCookiesDialog(gfx::NativeWindow parent_window, | 30 void ShowCollectedCookiesDialog(gfx::NativeWindow parent_window, |
| 23 TabContents* tab_contents) { | 31 TabContents* tab_contents) { |
| 24 // Deletes itself on close. | 32 // Deletes itself on close. |
| 25 new CollectedCookiesWin(parent_window, tab_contents); | 33 new CollectedCookiesWin(parent_window, tab_contents); |
| 26 } | 34 } |
| 27 | 35 |
| 28 } // namespace browser | 36 } // namespace browser |
| 29 | 37 |
| 38 namespace { |
| 39 // Spacing between the infobar frame and its contents. |
| 40 const int kInfobarVerticalPadding = 3; |
| 41 const int kInfobarHorizontalPadding = 8; |
| 42 |
| 43 // Width of the infobar frame. |
| 44 const int kInfobarBorderSize = 1; |
| 45 |
| 46 // Dimensions of the tree views. |
| 47 const int kTreeViewWidth = 400; |
| 48 const int kTreeViewHeight = 125; |
| 49 |
| 50 } // namespace |
| 51 |
| 52 // A custom view that conditionally displays an infobar. |
| 53 class InfobarView : public views::View { |
| 54 public: |
| 55 InfobarView() { |
| 56 content_ = new views::View; |
| 57 SkColor border_color = color_utils::GetSysSkColor(COLOR_3DSHADOW); |
| 58 views::Border* border = views::Border::CreateSolidBorder( |
| 59 kInfobarBorderSize, border_color); |
| 60 content_->set_border(border); |
| 61 |
| 62 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
| 63 info_image_ = new views::ImageView(); |
| 64 info_image_->SetImage(rb.GetBitmapNamed(IDR_INFO)); |
| 65 label_ = new views::Label(); |
| 66 } |
| 67 virtual ~InfobarView() {} |
| 68 |
| 69 // Update the visibility of the infobar. If |is_visible| is true, a rule for |
| 70 // |setting| on |domain_name| was created. |
| 71 void UpdateVisibility(bool is_visible, |
| 72 ContentSetting setting, |
| 73 const std::wstring& domain_name) { |
| 74 if (!is_visible) { |
| 75 SetVisible(false); |
| 76 return; |
| 77 } |
| 78 |
| 79 std::wstring label; |
| 80 switch (setting) { |
| 81 case CONTENT_SETTING_BLOCK: |
| 82 label = l10n_util::GetStringF( |
| 83 IDS_COLLECTED_COOKIES_BLOCK_RULE_CREATED, domain_name); |
| 84 break; |
| 85 |
| 86 case CONTENT_SETTING_ALLOW: |
| 87 label = l10n_util::GetStringF( |
| 88 IDS_COLLECTED_COOKIES_ALLOW_RULE_CREATED, domain_name); |
| 89 break; |
| 90 |
| 91 case CONTENT_SETTING_SESSION_ONLY: |
| 92 label = l10n_util::GetStringF( |
| 93 IDS_COLLECTED_COOKIES_SESSION_RULE_CREATED, domain_name); |
| 94 break; |
| 95 |
| 96 default: |
| 97 NOTREACHED(); |
| 98 } |
| 99 label_->SetText(label); |
| 100 content_->Layout(); |
| 101 SetVisible(true); |
| 102 } |
| 103 |
| 104 private: |
| 105 // Initialize contents and layout. |
| 106 void Init() { |
| 107 AddChildView(content_); |
| 108 content_->SetLayoutManager( |
| 109 new views::BoxLayout(views::BoxLayout::kHorizontal, |
| 110 kInfobarHorizontalPadding, |
| 111 kInfobarVerticalPadding, |
| 112 kRelatedControlSmallHorizontalSpacing)); |
| 113 content_->AddChildView(info_image_); |
| 114 content_->AddChildView(label_); |
| 115 UpdateVisibility(false, CONTENT_SETTING_BLOCK, std::wstring()); |
| 116 } |
| 117 |
| 118 // views::View overrides. |
| 119 virtual gfx::Size GetPreferredSize() { |
| 120 if (!IsVisible()) |
| 121 return gfx::Size(); |
| 122 |
| 123 // Add space around the banner. |
| 124 gfx::Size size(content_->GetPreferredSize()); |
| 125 size.Enlarge(0, 2 * kRelatedControlVerticalSpacing); |
| 126 return size; |
| 127 } |
| 128 |
| 129 virtual void Layout() { |
| 130 content_->SetBounds( |
| 131 0, kRelatedControlVerticalSpacing, |
| 132 width(), height() - kRelatedControlVerticalSpacing); |
| 133 } |
| 134 |
| 135 virtual void ViewHierarchyChanged(bool is_add, |
| 136 views::View* parent, |
| 137 views::View* child) { |
| 138 if (is_add && child == this) |
| 139 Init(); |
| 140 } |
| 141 |
| 142 // Holds the info icon image and text label and renders the border. |
| 143 views::View* content_; |
| 144 // Info icon image. |
| 145 views::ImageView* info_image_; |
| 146 // The label responsible for rendering the text. |
| 147 views::Label* label_; |
| 148 |
| 149 DISALLOW_COPY_AND_ASSIGN(InfobarView); |
| 150 }; |
| 30 | 151 |
| 31 /////////////////////////////////////////////////////////////////////////////// | 152 /////////////////////////////////////////////////////////////////////////////// |
| 32 // CollectedCookiesWin, constructor and destructor: | 153 // CollectedCookiesWin, constructor and destructor: |
| 33 | 154 |
| 34 CollectedCookiesWin::CollectedCookiesWin(gfx::NativeWindow parent_window, | 155 CollectedCookiesWin::CollectedCookiesWin(gfx::NativeWindow parent_window, |
| 35 TabContents* tab_contents) | 156 TabContents* tab_contents) |
| 36 : tab_contents_(tab_contents), | 157 : tab_contents_(tab_contents), |
| 37 allowed_label_(NULL), | 158 allowed_label_(NULL), |
| 38 blocked_label_(NULL), | 159 blocked_label_(NULL), |
| 39 allowed_cookies_tree_(NULL), | 160 allowed_cookies_tree_(NULL), |
| 40 blocked_cookies_tree_(NULL), | 161 blocked_cookies_tree_(NULL), |
| 41 block_allowed_button_(NULL), | 162 block_allowed_button_(NULL), |
| 42 allow_blocked_button_(NULL), | 163 allow_blocked_button_(NULL), |
| 43 for_session_blocked_button_(NULL) { | 164 for_session_blocked_button_(NULL), |
| 165 infobar_(NULL) { |
| 44 TabSpecificContentSettings* content_settings = | 166 TabSpecificContentSettings* content_settings = |
| 45 tab_contents->GetTabSpecificContentSettings(); | 167 tab_contents->GetTabSpecificContentSettings(); |
| 46 registrar_.Add(this, NotificationType::COLLECTED_COOKIES_SHOWN, | 168 registrar_.Add(this, NotificationType::COLLECTED_COOKIES_SHOWN, |
| 47 Source<TabSpecificContentSettings>(content_settings)); | 169 Source<TabSpecificContentSettings>(content_settings)); |
| 48 | 170 |
| 49 Init(); | 171 Init(); |
| 50 | 172 |
| 51 window_ = tab_contents_->CreateConstrainedDialog(this); | 173 window_ = tab_contents_->CreateConstrainedDialog(this); |
| 52 } | 174 } |
| 53 | 175 |
| 54 CollectedCookiesWin::~CollectedCookiesWin() { | 176 CollectedCookiesWin::~CollectedCookiesWin() { |
| 55 allowed_cookies_tree_->SetModel(NULL); | 177 allowed_cookies_tree_->SetModel(NULL); |
| 56 blocked_cookies_tree_->SetModel(NULL); | 178 blocked_cookies_tree_->SetModel(NULL); |
| 57 } | 179 } |
| 58 | 180 |
| 59 void CollectedCookiesWin::Init() { | 181 void CollectedCookiesWin::Init() { |
| 60 TabSpecificContentSettings* content_settings = | 182 TabSpecificContentSettings* content_settings = |
| 61 tab_contents_->GetTabSpecificContentSettings(); | 183 tab_contents_->GetTabSpecificContentSettings(); |
| 184 HostContentSettingsMap* host_content_settings_map = |
| 185 tab_contents_->profile()->GetHostContentSettingsMap(); |
| 62 | 186 |
| 63 // Allowed Cookie list. | 187 // Allowed Cookie list. |
| 64 allowed_label_ = new views::Label( | 188 allowed_label_ = new views::Label( |
| 65 l10n_util::GetString(IDS_COLLECTED_COOKIES_ALLOWED_COOKIES_LABEL)); | 189 l10n_util::GetString(IDS_COLLECTED_COOKIES_ALLOWED_COOKIES_LABEL)); |
| 66 allowed_cookies_tree_model_.reset( | 190 allowed_cookies_tree_model_.reset( |
| 67 content_settings->GetAllowedCookiesTreeModel()); | 191 content_settings->GetAllowedCookiesTreeModel()); |
| 68 allowed_cookies_tree_ = new views::TreeView(); | 192 allowed_cookies_tree_ = new views::TreeView(); |
| 69 allowed_cookies_tree_->SetModel(allowed_cookies_tree_model_.get()); | 193 allowed_cookies_tree_->SetModel(allowed_cookies_tree_model_.get()); |
| 70 allowed_cookies_tree_->SetController(this); | 194 allowed_cookies_tree_->SetController(this); |
| 71 allowed_cookies_tree_->SetRootShown(false); | 195 allowed_cookies_tree_->SetRootShown(false); |
| 72 allowed_cookies_tree_->SetEditable(false); | 196 allowed_cookies_tree_->SetEditable(false); |
| 73 allowed_cookies_tree_->set_lines_at_root(true); | 197 allowed_cookies_tree_->set_lines_at_root(true); |
| 74 allowed_cookies_tree_->set_auto_expand_children(true); | 198 allowed_cookies_tree_->set_auto_expand_children(true); |
| 75 | 199 |
| 76 // Blocked Cookie list. | 200 // Blocked Cookie list. |
| 77 blocked_label_ = new views::Label( | 201 blocked_label_ = new views::Label( |
| 78 l10n_util::GetString(IDS_COLLECTED_COOKIES_BLOCKED_COOKIES_LABEL)); | 202 l10n_util::GetString( |
| 203 host_content_settings_map->BlockThirdPartyCookies() ? |
| 204 IDS_COLLECTED_COOKIES_BLOCKED_THIRD_PARTY_BLOCKING_ENABLED : |
| 205 IDS_COLLECTED_COOKIES_BLOCKED_COOKIES_LABEL)); |
| 206 blocked_label_->SetMultiLine(true); |
| 207 blocked_label_->SetHorizontalAlignment(views::Label::ALIGN_LEFT); |
| 79 blocked_cookies_tree_model_.reset( | 208 blocked_cookies_tree_model_.reset( |
| 80 content_settings->GetBlockedCookiesTreeModel()); | 209 content_settings->GetBlockedCookiesTreeModel()); |
| 81 blocked_cookies_tree_ = new views::TreeView(); | 210 blocked_cookies_tree_ = new views::TreeView(); |
| 82 blocked_cookies_tree_->SetModel(blocked_cookies_tree_model_.get()); | 211 blocked_cookies_tree_->SetModel(blocked_cookies_tree_model_.get()); |
| 83 blocked_cookies_tree_->SetController(this); | 212 blocked_cookies_tree_->SetController(this); |
| 84 blocked_cookies_tree_->SetRootShown(false); | 213 blocked_cookies_tree_->SetRootShown(false); |
| 85 blocked_cookies_tree_->SetEditable(false); | 214 blocked_cookies_tree_->SetEditable(false); |
| 86 blocked_cookies_tree_->set_lines_at_root(true); | 215 blocked_cookies_tree_->set_lines_at_root(true); |
| 87 blocked_cookies_tree_->set_auto_expand_children(true); | 216 blocked_cookies_tree_->set_auto_expand_children(true); |
| 88 | 217 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 103 column_set->AddPaddingColumn(0, kRelatedControlHorizontalSpacing); | 232 column_set->AddPaddingColumn(0, kRelatedControlHorizontalSpacing); |
| 104 column_set->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 0, | 233 column_set->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 0, |
| 105 GridLayout::USE_PREF, 0, 0); | 234 GridLayout::USE_PREF, 0, 0); |
| 106 | 235 |
| 107 layout->StartRow(0, single_column_layout_id); | 236 layout->StartRow(0, single_column_layout_id); |
| 108 layout->AddView(allowed_label_); | 237 layout->AddView(allowed_label_); |
| 109 | 238 |
| 110 layout->AddPaddingRow(0, kRelatedControlVerticalSpacing); | 239 layout->AddPaddingRow(0, kRelatedControlVerticalSpacing); |
| 111 layout->StartRow(1, single_column_layout_id); | 240 layout->StartRow(1, single_column_layout_id); |
| 112 layout->AddView( | 241 layout->AddView( |
| 113 allowed_cookies_tree_, 1, 1, GridLayout::FILL, GridLayout::FILL); | 242 allowed_cookies_tree_, 1, 1, GridLayout::FILL, GridLayout::FILL, |
| 243 kTreeViewWidth, kTreeViewHeight); |
| 114 layout->AddPaddingRow(0, kRelatedControlVerticalSpacing); | 244 layout->AddPaddingRow(0, kRelatedControlVerticalSpacing); |
| 115 | 245 |
| 116 layout->StartRow(0, single_column_layout_id); | 246 layout->StartRow(0, single_column_layout_id); |
| 117 block_allowed_button_ = new views::NativeButton( | 247 block_allowed_button_ = new views::NativeButton( |
| 118 this, l10n_util::GetString(IDS_COLLECTED_COOKIES_BLOCK_BUTTON)); | 248 this, l10n_util::GetString(IDS_COLLECTED_COOKIES_BLOCK_BUTTON)); |
| 119 layout->AddView( | 249 layout->AddView( |
| 120 block_allowed_button_, 1, 1, GridLayout::LEADING, GridLayout::CENTER); | 250 block_allowed_button_, 1, 1, GridLayout::LEADING, GridLayout::CENTER); |
| 121 layout->AddPaddingRow(0, kUnrelatedControlVerticalSpacing); | 251 layout->AddPaddingRow(0, kUnrelatedControlVerticalSpacing); |
| 122 | 252 |
| 123 layout->StartRow(0, single_column_layout_id); | 253 layout->StartRow(0, single_column_layout_id); |
| 124 layout->AddView(blocked_label_); | 254 layout->AddView( |
| 255 new views::Separator(), 1, 1, GridLayout::FILL, GridLayout::FILL); |
| 256 layout->AddPaddingRow(0, kUnrelatedControlVerticalSpacing); |
| 257 |
| 258 layout->StartRow(0, single_column_layout_id); |
| 259 layout->AddView(blocked_label_, 1, 1, GridLayout::FILL, GridLayout::FILL); |
| 125 | 260 |
| 126 layout->AddPaddingRow(0, kRelatedControlVerticalSpacing); | 261 layout->AddPaddingRow(0, kRelatedControlVerticalSpacing); |
| 127 layout->StartRow(1, single_column_layout_id); | 262 layout->StartRow(1, single_column_layout_id); |
| 128 layout->AddView( | 263 layout->AddView( |
| 129 blocked_cookies_tree_, 1, 1, GridLayout::FILL, GridLayout::FILL); | 264 blocked_cookies_tree_, 1, 1, GridLayout::FILL, GridLayout::FILL, |
| 265 kTreeViewWidth, kTreeViewHeight); |
| 130 layout->AddPaddingRow(0, kRelatedControlVerticalSpacing); | 266 layout->AddPaddingRow(0, kRelatedControlVerticalSpacing); |
| 131 | 267 |
| 132 layout->StartRow(0, three_columns_layout_id); | 268 layout->StartRow(0, three_columns_layout_id); |
| 133 allow_blocked_button_ = new views::NativeButton( | 269 allow_blocked_button_ = new views::NativeButton( |
| 134 this, l10n_util::GetString(IDS_COLLECTED_COOKIES_ALLOW_BUTTON)); | 270 this, l10n_util::GetString(IDS_COLLECTED_COOKIES_ALLOW_BUTTON)); |
| 135 layout->AddView(allow_blocked_button_); | 271 layout->AddView(allow_blocked_button_); |
| 136 for_session_blocked_button_ = new views::NativeButton( | 272 for_session_blocked_button_ = new views::NativeButton( |
| 137 this, l10n_util::GetString(IDS_COLLECTED_COOKIES_SESSION_ONLY_BUTTON)); | 273 this, l10n_util::GetString(IDS_COLLECTED_COOKIES_SESSION_ONLY_BUTTON)); |
| 138 layout->AddView(for_session_blocked_button_); | 274 layout->AddView(for_session_blocked_button_); |
| 139 | 275 |
| 276 layout->StartRow(0, single_column_layout_id); |
| 277 infobar_ = new InfobarView(); |
| 278 layout->AddView(infobar_, 1, 1, GridLayout::FILL, GridLayout::FILL); |
| 279 |
| 140 EnableControls(); | 280 EnableControls(); |
| 141 } | 281 } |
| 142 | 282 |
| 143 /////////////////////////////////////////////////////////////////////////////// | 283 /////////////////////////////////////////////////////////////////////////////// |
| 144 // ConstrainedDialogDelegate implementation. | 284 // ConstrainedDialogDelegate implementation. |
| 145 | 285 |
| 146 std::wstring CollectedCookiesWin::GetWindowTitle() const { | 286 std::wstring CollectedCookiesWin::GetWindowTitle() const { |
| 147 return l10n_util::GetString(IDS_COLLECTED_COOKIES_DIALOG_TITLE); | 287 return l10n_util::GetString(IDS_COLLECTED_COOKIES_DIALOG_TITLE); |
| 148 } | 288 } |
| 149 | 289 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 183 | 323 |
| 184 /////////////////////////////////////////////////////////////////////////////// | 324 /////////////////////////////////////////////////////////////////////////////// |
| 185 // views::View implementation. | 325 // views::View implementation. |
| 186 | 326 |
| 187 void CollectedCookiesWin::OnTreeViewSelectionChanged( | 327 void CollectedCookiesWin::OnTreeViewSelectionChanged( |
| 188 views::TreeView* tree_view) { | 328 views::TreeView* tree_view) { |
| 189 EnableControls(); | 329 EnableControls(); |
| 190 } | 330 } |
| 191 | 331 |
| 192 /////////////////////////////////////////////////////////////////////////////// | 332 /////////////////////////////////////////////////////////////////////////////// |
| 193 // views::View implementation. | |
| 194 | |
| 195 gfx::Size CollectedCookiesWin::GetPreferredSize() { | |
| 196 return gfx::Size(views::Window::GetLocalizedContentsSize( | |
| 197 IDS_COOKIES_DIALOG_WIDTH_CHARS, | |
| 198 IDS_COOKIES_DIALOG_HEIGHT_LINES)); | |
| 199 } | |
| 200 | |
| 201 /////////////////////////////////////////////////////////////////////////////// | |
| 202 // CollectedCookiesWin, private methods. | 333 // CollectedCookiesWin, private methods. |
| 203 | 334 |
| 204 void CollectedCookiesWin::EnableControls() { | 335 void CollectedCookiesWin::EnableControls() { |
| 205 bool enable_allowed_buttons = false; | 336 bool enable_allowed_buttons = false; |
| 206 TreeModelNode* node = allowed_cookies_tree_->GetSelectedNode(); | 337 TreeModelNode* node = allowed_cookies_tree_->GetSelectedNode(); |
| 207 if (node) { | 338 if (node) { |
| 208 CookieTreeNode* cookie_node = static_cast<CookieTreeNode*>(node); | 339 CookieTreeNode* cookie_node = static_cast<CookieTreeNode*>(node); |
| 209 if (cookie_node->GetDetailedInfo().node_type == | 340 if (cookie_node->GetDetailedInfo().node_type == |
| 210 CookieTreeNode::DetailedInfo::TYPE_ORIGIN) { | 341 CookieTreeNode::DetailedInfo::TYPE_ORIGIN) { |
| 211 enable_allowed_buttons = static_cast<CookieTreeOriginNode*>( | 342 enable_allowed_buttons = static_cast<CookieTreeOriginNode*>( |
| (...skipping 15 matching lines...) Expand all Loading... |
| 227 allow_blocked_button_->SetEnabled(enable_blocked_buttons); | 358 allow_blocked_button_->SetEnabled(enable_blocked_buttons); |
| 228 for_session_blocked_button_->SetEnabled(enable_blocked_buttons); | 359 for_session_blocked_button_->SetEnabled(enable_blocked_buttons); |
| 229 } | 360 } |
| 230 | 361 |
| 231 void CollectedCookiesWin::AddContentException(views::TreeView* tree_view, | 362 void CollectedCookiesWin::AddContentException(views::TreeView* tree_view, |
| 232 ContentSetting setting) { | 363 ContentSetting setting) { |
| 233 CookieTreeOriginNode* origin_node = | 364 CookieTreeOriginNode* origin_node = |
| 234 static_cast<CookieTreeOriginNode*>(tree_view->GetSelectedNode()); | 365 static_cast<CookieTreeOriginNode*>(tree_view->GetSelectedNode()); |
| 235 origin_node->CreateContentException( | 366 origin_node->CreateContentException( |
| 236 tab_contents_->profile()->GetHostContentSettingsMap(), setting); | 367 tab_contents_->profile()->GetHostContentSettingsMap(), setting); |
| 368 infobar_->UpdateVisibility(true, setting, origin_node->GetTitle()); |
| 369 gfx::Rect bounds; |
| 370 GetWidget()->GetBounds(&bounds, false); |
| 371 // WidgetWin::GetBounds returns the bounds relative to the parent window, |
| 372 // while WidgetWin::SetBounds wants screen coordinates. Do the translation |
| 373 // here until http://crbug.com/52851 is fixed. |
| 374 POINT topleft = {bounds.x(), bounds.y()}; |
| 375 MapWindowPoints(HWND_DESKTOP, tab_contents_->GetNativeView(), &topleft, 1); |
| 376 gfx::Size size = GetRootView()->GetPreferredSize(); |
| 377 bounds.SetRect(topleft.x, topleft.y, size.width(), size.height()); |
| 378 GetWidget()->SetBounds(bounds); |
| 237 } | 379 } |
| 238 | 380 |
| 239 /////////////////////////////////////////////////////////////////////////////// | 381 /////////////////////////////////////////////////////////////////////////////// |
| 240 // NotificationObserver implementation. | 382 // NotificationObserver implementation. |
| 241 | 383 |
| 242 void CollectedCookiesWin::Observe(NotificationType type, | 384 void CollectedCookiesWin::Observe(NotificationType type, |
| 243 const NotificationSource& source, | 385 const NotificationSource& source, |
| 244 const NotificationDetails& details) { | 386 const NotificationDetails& details) { |
| 245 DCHECK(type == NotificationType::COLLECTED_COOKIES_SHOWN); | 387 DCHECK(type == NotificationType::COLLECTED_COOKIES_SHOWN); |
| 246 DCHECK_EQ(Source<TabSpecificContentSettings>(source).ptr(), | 388 DCHECK_EQ(Source<TabSpecificContentSettings>(source).ptr(), |
| 247 tab_contents_->GetTabSpecificContentSettings()); | 389 tab_contents_->GetTabSpecificContentSettings()); |
| 248 window_->CloseConstrainedWindow(); | 390 window_->CloseConstrainedWindow(); |
| 249 } | 391 } |
| OLD | NEW |