OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/ui/views/content_setting_bubble_contents.h" | 5 #include "chrome/browser/ui/views/content_setting_bubble_contents.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 #include "ui/views/layout/grid_layout.h" | 42 #include "ui/views/layout/grid_layout.h" |
43 #include "ui/views/layout/layout_constants.h" | 43 #include "ui/views/layout/layout_constants.h" |
44 #include "ui/views/native_cursor.h" | 44 #include "ui/views/native_cursor.h" |
45 | 45 |
46 namespace { | 46 namespace { |
47 | 47 |
48 // If we don't clamp the maximum width, then very long URLs and titles can make | 48 // If we don't clamp the maximum width, then very long URLs and titles can make |
49 // the bubble arbitrarily wide. | 49 // the bubble arbitrarily wide. |
50 const int kMaxContentsWidth = 500; | 50 const int kMaxContentsWidth = 500; |
51 | 51 |
| 52 // The new default width for the content settings bubble. The review process to |
| 53 // the width on per-bubble basis is tracked with https://crbug.com/649650. |
| 54 const int kMaxDefaultContentsWidth = 320; |
| 55 |
52 // When we have multiline labels, we should set a minimum width lest we get very | 56 // When we have multiline labels, we should set a minimum width lest we get very |
53 // narrow bubbles with lots of line-wrapping. | 57 // narrow bubbles with lots of line-wrapping. |
54 const int kMinMultiLineContentsWidth = 250; | 58 const int kMinMultiLineContentsWidth = 250; |
55 | 59 |
56 } // namespace | 60 } // namespace |
57 | 61 |
58 using content::PluginService; | 62 using content::PluginService; |
59 using content::WebContents; | 63 using content::WebContents; |
60 | 64 |
61 // ContentSettingBubbleContents::MediaComboboxModel ---------------------------- | 65 // ContentSettingBubbleContents::MediaComboboxModel ---------------------------- |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
175 RemoveAllChildViews(true); | 179 RemoveAllChildViews(true); |
176 } | 180 } |
177 | 181 |
178 gfx::Size ContentSettingBubbleContents::GetPreferredSize() const { | 182 gfx::Size ContentSettingBubbleContents::GetPreferredSize() const { |
179 gfx::Size preferred_size(views::View::GetPreferredSize()); | 183 gfx::Size preferred_size(views::View::GetPreferredSize()); |
180 int preferred_width = | 184 int preferred_width = |
181 (!content_setting_bubble_model_->bubble_content().domain_lists.empty() && | 185 (!content_setting_bubble_model_->bubble_content().domain_lists.empty() && |
182 (kMinMultiLineContentsWidth > preferred_size.width())) | 186 (kMinMultiLineContentsWidth > preferred_size.width())) |
183 ? kMinMultiLineContentsWidth | 187 ? kMinMultiLineContentsWidth |
184 : preferred_size.width(); | 188 : preferred_size.width(); |
185 preferred_size.set_width(std::min(preferred_width, kMaxContentsWidth)); | 189 if (content_setting_bubble_model_->AsSubresourceFilterBubbleModel()) { |
| 190 preferred_size.set_width(std::min(preferred_width, |
| 191 kMaxDefaultContentsWidth)); |
| 192 } else { |
| 193 preferred_size.set_width(std::min(preferred_width, kMaxContentsWidth)); |
| 194 } |
186 return preferred_size; | 195 return preferred_size; |
187 } | 196 } |
188 | 197 |
189 void ContentSettingBubbleContents::Init() { | 198 void ContentSettingBubbleContents::Init() { |
190 using views::GridLayout; | 199 using views::GridLayout; |
191 | 200 |
192 GridLayout* layout = new views::GridLayout(this); | 201 GridLayout* layout = new views::GridLayout(this); |
193 SetLayoutManager(layout); | 202 SetLayoutManager(layout); |
194 | 203 |
195 const int kSingleColumnSetId = 0; | 204 const int kSingleColumnSetId = 0; |
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
460 DCHECK(i != list_item_links_.end()); | 469 DCHECK(i != list_item_links_.end()); |
461 content_setting_bubble_model_->OnListItemClicked(i->second); | 470 content_setting_bubble_model_->OnListItemClicked(i->second); |
462 } | 471 } |
463 | 472 |
464 void ContentSettingBubbleContents::OnPerformAction(views::Combobox* combobox) { | 473 void ContentSettingBubbleContents::OnPerformAction(views::Combobox* combobox) { |
465 MediaComboboxModel* model = | 474 MediaComboboxModel* model = |
466 static_cast<MediaComboboxModel*>(combobox->model()); | 475 static_cast<MediaComboboxModel*>(combobox->model()); |
467 content_setting_bubble_model_->OnMediaMenuClicked( | 476 content_setting_bubble_model_->OnMediaMenuClicked( |
468 model->type(), model->GetDevices()[combobox->selected_index()].id); | 477 model->type(), model->GetDevices()[combobox->selected_index()].id); |
469 } | 478 } |
OLD | NEW |