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

Side by Side Diff: chrome/browser/ui/content_settings/content_setting_bubble_model.cc

Issue 2371083002: Cleanup nits in content_setting*model. (Closed)
Patch Set: Created 4 years, 2 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 | « no previous file | chrome/browser/ui/content_settings/content_setting_image_model.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) 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/content_settings/content_setting_bubble_model.h" 5 #include "chrome/browser/ui/content_settings/content_setting_bubble_model.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 SetManageText(); 118 SetManageText();
119 SetCustomLink(); 119 SetCustomLink();
120 } 120 }
121 121
122 ContentSettingSimpleBubbleModel* 122 ContentSettingSimpleBubbleModel*
123 ContentSettingSimpleBubbleModel::AsSimpleBubbleModel() { 123 ContentSettingSimpleBubbleModel::AsSimpleBubbleModel() {
124 return this; 124 return this;
125 } 125 }
126 126
127 void ContentSettingSimpleBubbleModel::SetTitle() { 127 void ContentSettingSimpleBubbleModel::SetTitle() {
128 TabSpecificContentSettings* content_settings = NULL; 128 TabSpecificContentSettings* content_settings =
129 if (web_contents()) { 129 web_contents()
130 content_settings = 130 ? TabSpecificContentSettings::FromWebContents(web_contents())
131 TabSpecificContentSettings::FromWebContents(web_contents()); 131 : nullptr;
132 }
133 132
134 static const ContentSettingsTypeIdEntry kBlockedTitleIDs[] = { 133 static const ContentSettingsTypeIdEntry kBlockedTitleIDs[] = {
135 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_BLOCKED_COOKIES_TITLE}, 134 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_BLOCKED_COOKIES_TITLE},
136 {CONTENT_SETTINGS_TYPE_IMAGES, IDS_BLOCKED_IMAGES_TITLE}, 135 {CONTENT_SETTINGS_TYPE_IMAGES, IDS_BLOCKED_IMAGES_TITLE},
137 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, IDS_BLOCKED_JAVASCRIPT_TITLE}, 136 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, IDS_BLOCKED_JAVASCRIPT_TITLE},
138 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_TITLE}, 137 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_TITLE},
139 {CONTENT_SETTINGS_TYPE_POPUPS, IDS_BLOCKED_POPUPS_TITLE}, 138 {CONTENT_SETTINGS_TYPE_POPUPS, IDS_BLOCKED_POPUPS_TITLE},
140 {CONTENT_SETTINGS_TYPE_MIXEDSCRIPT, 139 {CONTENT_SETTINGS_TYPE_MIXEDSCRIPT,
141 IDS_BLOCKED_DISPLAYING_INSECURE_CONTENT}, 140 IDS_BLOCKED_DISPLAYING_INSECURE_CONTENT},
142 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, 141 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER,
143 IDS_BLOCKED_PPAPI_BROKER_TITLE}, 142 IDS_BLOCKED_PPAPI_BROKER_TITLE},
144 {CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, IDS_BLOCKED_DOWNLOAD_TITLE}, 143 {CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, IDS_BLOCKED_DOWNLOAD_TITLE},
145 }; 144 };
146 // Fields as for kBlockedTitleIDs, above. 145 // Fields as for kBlockedTitleIDs, above.
147 static const ContentSettingsTypeIdEntry kAccessedTitleIDs[] = { 146 static const ContentSettingsTypeIdEntry kAccessedTitleIDs[] = {
148 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_ACCESSED_COOKIES_TITLE}, 147 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_ACCESSED_COOKIES_TITLE},
149 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_ALLOWED_PPAPI_BROKER_TITLE}, 148 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_ALLOWED_PPAPI_BROKER_TITLE},
150 {CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, IDS_ALLOWED_DOWNLOAD_TITLE}, 149 {CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, IDS_ALLOWED_DOWNLOAD_TITLE},
151 }; 150 };
152 const ContentSettingsTypeIdEntry *title_ids = kBlockedTitleIDs; 151 const ContentSettingsTypeIdEntry* title_ids = kBlockedTitleIDs;
153 size_t num_title_ids = arraysize(kBlockedTitleIDs); 152 size_t num_title_ids = arraysize(kBlockedTitleIDs);
154 if (content_settings && content_settings->IsContentAllowed(content_type()) && 153 if (content_settings && content_settings->IsContentAllowed(content_type()) &&
155 !content_settings->IsContentBlocked(content_type())) { 154 !content_settings->IsContentBlocked(content_type())) {
156 title_ids = kAccessedTitleIDs; 155 title_ids = kAccessedTitleIDs;
157 num_title_ids = arraysize(kAccessedTitleIDs); 156 num_title_ids = arraysize(kAccessedTitleIDs);
158 } 157 }
159 int title_id = 158 int title_id = GetIdForContentType(title_ids, num_title_ids, content_type());
160 GetIdForContentType(title_ids, num_title_ids, content_type());
161 if (title_id) 159 if (title_id)
162 set_title(l10n_util::GetStringUTF16(title_id)); 160 set_title(l10n_util::GetStringUTF16(title_id));
163 } 161 }
164 162
165 void ContentSettingSimpleBubbleModel::SetManageText() { 163 void ContentSettingSimpleBubbleModel::SetManageText() {
166 static const ContentSettingsTypeIdEntry kLinkIDs[] = { 164 static const ContentSettingsTypeIdEntry kLinkIDs[] = {
167 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_BLOCKED_COOKIES_LINK}, 165 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_BLOCKED_COOKIES_LINK},
168 {CONTENT_SETTINGS_TYPE_IMAGES, IDS_BLOCKED_IMAGES_LINK}, 166 {CONTENT_SETTINGS_TYPE_IMAGES, IDS_BLOCKED_IMAGES_LINK},
169 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, IDS_BLOCKED_JAVASCRIPT_LINK}, 167 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, IDS_BLOCKED_JAVASCRIPT_LINK},
170 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_LINK}, 168 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_LINK},
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 bool settings_changed() const; 217 bool settings_changed() const;
220 int selected_item() const { return selected_item_; } 218 int selected_item() const { return selected_item_; }
221 219
222 private: 220 private:
223 void SetRadioGroup(); 221 void SetRadioGroup();
224 void SetNarrowestContentSetting(ContentSetting setting); 222 void SetNarrowestContentSetting(ContentSetting setting);
225 void OnRadioClicked(int radio_index) override; 223 void OnRadioClicked(int radio_index) override;
226 224
227 ContentSetting block_setting_; 225 ContentSetting block_setting_;
228 int selected_item_; 226 int selected_item_;
227
228 DISALLOW_COPY_AND_ASSIGN(ContentSettingSingleRadioGroup);
229 }; 229 };
230 230
231 ContentSettingSingleRadioGroup::ContentSettingSingleRadioGroup( 231 ContentSettingSingleRadioGroup::ContentSettingSingleRadioGroup(
232 Delegate* delegate, 232 Delegate* delegate,
233 WebContents* web_contents, 233 WebContents* web_contents,
234 Profile* profile, 234 Profile* profile,
235 ContentSettingsType content_type) 235 ContentSettingsType content_type)
236 : ContentSettingSimpleBubbleModel(delegate, 236 : ContentSettingSimpleBubbleModel(delegate,
237 web_contents, 237 web_contents,
238 profile, 238 profile,
(...skipping 21 matching lines...) Expand all
260 // content type and setting the default value based on the content setting. 260 // content type and setting the default value based on the content setting.
261 void ContentSettingSingleRadioGroup::SetRadioGroup() { 261 void ContentSettingSingleRadioGroup::SetRadioGroup() {
262 GURL url = web_contents()->GetURL(); 262 GURL url = web_contents()->GetURL();
263 base::string16 display_host = 263 base::string16 display_host =
264 url_formatter::FormatUrlForSecurityDisplay(url); 264 url_formatter::FormatUrlForSecurityDisplay(url);
265 if (display_host.empty()) 265 if (display_host.empty())
266 display_host = base::ASCIIToUTF16(url.spec()); 266 display_host = base::ASCIIToUTF16(url.spec());
267 267
268 TabSpecificContentSettings* content_settings = 268 TabSpecificContentSettings* content_settings =
269 TabSpecificContentSettings::FromWebContents(web_contents()); 269 TabSpecificContentSettings::FromWebContents(web_contents());
270 bool allowed = 270 bool allowed = !content_settings->IsContentBlocked(content_type());
271 !content_settings->IsContentBlocked(content_type()); 271 DCHECK(!allowed || content_settings->IsContentAllowed(content_type()));
272 DCHECK(!allowed ||
273 content_settings->IsContentAllowed(content_type()));
274 272
275 RadioGroup radio_group; 273 RadioGroup radio_group;
276 radio_group.url = url; 274 radio_group.url = url;
277 275
278 static const ContentSettingsTypeIdEntry kBlockedAllowIDs[] = { 276 static const ContentSettingsTypeIdEntry kBlockedAllowIDs[] = {
279 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_BLOCKED_COOKIES_UNBLOCK}, 277 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_BLOCKED_COOKIES_UNBLOCK},
280 {CONTENT_SETTINGS_TYPE_IMAGES, IDS_BLOCKED_IMAGES_UNBLOCK}, 278 {CONTENT_SETTINGS_TYPE_IMAGES, IDS_BLOCKED_IMAGES_UNBLOCK},
281 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, IDS_BLOCKED_JAVASCRIPT_UNBLOCK}, 279 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, IDS_BLOCKED_JAVASCRIPT_UNBLOCK},
282 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_UNBLOCK_ALL}, 280 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_UNBLOCK_ALL},
283 {CONTENT_SETTINGS_TYPE_POPUPS, IDS_BLOCKED_POPUPS_UNBLOCK}, 281 {CONTENT_SETTINGS_TYPE_POPUPS, IDS_BLOCKED_POPUPS_UNBLOCK},
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
365 } else if (setting == CONTENT_SETTING_ALLOW) { 363 } else if (setting == CONTENT_SETTING_ALLOW) {
366 radio_group.default_item = kAllowButtonIndex; 364 radio_group.default_item = kAllowButtonIndex;
367 // |block_setting_| is already set to |CONTENT_SETTING_BLOCK|. 365 // |block_setting_| is already set to |CONTENT_SETTING_BLOCK|.
368 } else { 366 } else {
369 radio_group.default_item = 1; 367 radio_group.default_item = 1;
370 block_setting_ = setting; 368 block_setting_ = setting;
371 } 369 }
372 370
373 set_setting_is_managed(setting_source != SETTING_SOURCE_USER && 371 set_setting_is_managed(setting_source != SETTING_SOURCE_USER &&
374 setting != CONTENT_SETTING_ASK); 372 setting != CONTENT_SETTING_ASK);
375 if (setting_source != SETTING_SOURCE_USER) { 373 set_radio_group_enabled(setting_source == SETTING_SOURCE_USER);
376 set_radio_group_enabled(false);
377 } else {
378 set_radio_group_enabled(true);
379 }
380 selected_item_ = radio_group.default_item; 374 selected_item_ = radio_group.default_item;
381 set_radio_group(radio_group); 375 set_radio_group(radio_group);
382 } 376 }
383 377
384 void ContentSettingSingleRadioGroup::SetNarrowestContentSetting( 378 void ContentSettingSingleRadioGroup::SetNarrowestContentSetting(
385 ContentSetting setting) { 379 ContentSetting setting) {
386 if (profile()) { 380 if (!profile())
387 HostContentSettingsMapFactory::GetForProfile(profile()) 381 return;
388 ->SetNarrowestContentSetting(bubble_content().radio_group.url, 382
389 bubble_content().radio_group.url, 383 auto* map = HostContentSettingsMapFactory::GetForProfile(profile());
390 content_type(), setting); 384 map->SetNarrowestContentSetting(bubble_content().radio_group.url,
391 } 385 bubble_content().radio_group.url,
386 content_type(), setting);
392 } 387 }
393 388
394 void ContentSettingSingleRadioGroup::OnRadioClicked(int radio_index) { 389 void ContentSettingSingleRadioGroup::OnRadioClicked(int radio_index) {
395 selected_item_ = radio_index; 390 selected_item_ = radio_index;
396 } 391 }
397 392
398 // ContentSettingCookiesBubbleModel -------------------------------------------- 393 // ContentSettingCookiesBubbleModel --------------------------------------------
399 394
400 class ContentSettingCookiesBubbleModel : public ContentSettingSingleRadioGroup { 395 class ContentSettingCookiesBubbleModel : public ContentSettingSingleRadioGroup {
401 public: 396 public:
402 ContentSettingCookiesBubbleModel(Delegate* delegate, 397 ContentSettingCookiesBubbleModel(Delegate* delegate,
403 WebContents* web_contents, 398 WebContents* web_contents,
404 Profile* profile); 399 Profile* profile);
405
406 ~ContentSettingCookiesBubbleModel() override; 400 ~ContentSettingCookiesBubbleModel() override;
407 401
408 private: 402 private:
409 void OnCustomLinkClicked() override; 403 void OnCustomLinkClicked() override;
404
405 DISALLOW_COPY_AND_ASSIGN(ContentSettingCookiesBubbleModel);
410 }; 406 };
411 407
412 ContentSettingCookiesBubbleModel::ContentSettingCookiesBubbleModel( 408 ContentSettingCookiesBubbleModel::ContentSettingCookiesBubbleModel(
413 Delegate* delegate, 409 Delegate* delegate,
414 WebContents* web_contents, 410 WebContents* web_contents,
415 Profile* profile) 411 Profile* profile)
416 : ContentSettingSingleRadioGroup(delegate, 412 : ContentSettingSingleRadioGroup(delegate,
417 web_contents, 413 web_contents,
418 profile, 414 profile,
419 CONTENT_SETTINGS_TYPE_COOKIES) { 415 CONTENT_SETTINGS_TYPE_COOKIES) {
(...skipping 28 matching lines...) Expand all
448 WebContents* web_contents, 444 WebContents* web_contents,
449 Profile* profile); 445 Profile* profile);
450 446
451 ~ContentSettingPluginBubbleModel() override; 447 ~ContentSettingPluginBubbleModel() override;
452 448
453 private: 449 private:
454 void OnLearnMoreLinkClicked() override; 450 void OnLearnMoreLinkClicked() override;
455 void OnCustomLinkClicked() override; 451 void OnCustomLinkClicked() override;
456 452
457 void RunPluginsOnPage(); 453 void RunPluginsOnPage();
454
455 DISALLOW_COPY_AND_ASSIGN(ContentSettingPluginBubbleModel);
458 }; 456 };
459 457
460 ContentSettingPluginBubbleModel::ContentSettingPluginBubbleModel( 458 ContentSettingPluginBubbleModel::ContentSettingPluginBubbleModel(
461 Delegate* delegate, 459 Delegate* delegate,
462 WebContents* web_contents, 460 WebContents* web_contents,
463 Profile* profile) 461 Profile* profile)
464 : ContentSettingSingleRadioGroup(delegate, 462 : ContentSettingSingleRadioGroup(delegate,
465 web_contents, 463 web_contents,
466 profile, 464 profile,
467 CONTENT_SETTINGS_TYPE_PLUGINS) { 465 CONTENT_SETTINGS_TYPE_PLUGINS) {
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
547 WebContents* web_contents, 545 WebContents* web_contents,
548 Profile* profile); 546 Profile* profile);
549 ~ContentSettingPopupBubbleModel() override {} 547 ~ContentSettingPopupBubbleModel() override {}
550 548
551 private: 549 private:
552 void OnListItemClicked(int index) override; 550 void OnListItemClicked(int index) override;
553 551
554 int32_t item_id_from_item_index(int index) const { 552 int32_t item_id_from_item_index(int index) const {
555 return bubble_content().list_items[index].item_id; 553 return bubble_content().list_items[index].item_id;
556 } 554 }
555
556 DISALLOW_COPY_AND_ASSIGN(ContentSettingPopupBubbleModel);
557 }; 557 };
558 558
559 ContentSettingPopupBubbleModel::ContentSettingPopupBubbleModel( 559 ContentSettingPopupBubbleModel::ContentSettingPopupBubbleModel(
560 Delegate* delegate, 560 Delegate* delegate,
561 WebContents* web_contents, 561 WebContents* web_contents,
562 Profile* profile) 562 Profile* profile)
563 : ContentSettingSingleRadioGroup(delegate, 563 : ContentSettingSingleRadioGroup(delegate,
564 web_contents, 564 web_contents,
565 profile, 565 profile,
566 CONTENT_SETTINGS_TYPE_POPUPS) { 566 CONTENT_SETTINGS_TYPE_POPUPS) {
567 if (web_contents) { 567 if (!web_contents)
568 // Build blocked popup list. 568 return;
569 std::map<int32_t, GURL> blocked_popups = 569
570 PopupBlockerTabHelper::FromWebContents(web_contents) 570 // Build blocked popup list.
571 ->GetBlockedPopupRequests(); 571 auto* helper = PopupBlockerTabHelper::FromWebContents(web_contents);
572 for (const std::pair<int32_t, GURL>& blocked_popup : blocked_popups) { 572 std::map<int32_t, GURL> blocked_popups = helper->GetBlockedPopupRequests();
573 std::string title(blocked_popup.second.spec()); 573 for (const std::pair<int32_t, GURL>& blocked_popup : blocked_popups) {
574 // The pop-up may not have a valid URL. 574 std::string title(blocked_popup.second.spec());
575 if (title.empty()) 575 // The pop-up may not have a valid URL.
576 title = l10n_util::GetStringUTF8(IDS_TAB_LOADING_TITLE); 576 if (title.empty())
577 ListItem popup_item(ui::ResourceBundle::GetSharedInstance().GetImageNamed( 577 title = l10n_util::GetStringUTF8(IDS_TAB_LOADING_TITLE);
578 IDR_DEFAULT_FAVICON), 578 ListItem popup_item(ui::ResourceBundle::GetSharedInstance().GetImageNamed(
579 title, true, blocked_popup.first); 579 IDR_DEFAULT_FAVICON),
580 add_list_item(popup_item); 580 title, true, blocked_popup.first);
581 } 581 add_list_item(popup_item);
582 } 582 }
583 } 583 }
584 584
585 void ContentSettingPopupBubbleModel::OnListItemClicked(int index) { 585 void ContentSettingPopupBubbleModel::OnListItemClicked(int index) {
586 if (web_contents()) { 586 if (web_contents()) {
587 PopupBlockerTabHelper::FromWebContents(web_contents()) 587 auto* helper = PopupBlockerTabHelper::FromWebContents(web_contents());
588 ->ShowBlockedPopup(item_id_from_item_index(index)); 588 helper->ShowBlockedPopup(item_id_from_item_index(index));
589 } 589 }
590 } 590 }
591 591
592 // ContentSettingMediaStreamBubbleModel ---------------------------------------- 592 // ContentSettingMediaStreamBubbleModel ----------------------------------------
593 593
594 ContentSettingMediaStreamBubbleModel::ContentSettingMediaStreamBubbleModel( 594 ContentSettingMediaStreamBubbleModel::ContentSettingMediaStreamBubbleModel(
595 Delegate* delegate, 595 Delegate* delegate,
596 WebContents* web_contents, 596 WebContents* web_contents,
597 Profile* profile) 597 Profile* profile)
598 : ContentSettingBubbleModel(delegate, web_contents, profile), 598 : ContentSettingBubbleModel(delegate, web_contents, profile),
(...skipping 21 matching lines...) Expand all
620 SetManageText(); 620 SetManageText();
621 SetCustomLink(); 621 SetCustomLink();
622 } 622 }
623 623
624 ContentSettingMediaStreamBubbleModel::~ContentSettingMediaStreamBubbleModel() { 624 ContentSettingMediaStreamBubbleModel::~ContentSettingMediaStreamBubbleModel() {
625 // On some platforms (e.g. MacOS X) it is possible to close a tab while the 625 // On some platforms (e.g. MacOS X) it is possible to close a tab while the
626 // media stream bubble is open. This resets the web contents to NULL. 626 // media stream bubble is open. This resets the web contents to NULL.
627 if (!web_contents()) 627 if (!web_contents())
628 return; 628 return;
629 629
630 for (const std::pair<content::MediaStreamType, MediaMenu>& media_menu : 630 for (const auto& media_menu : bubble_content().media_menus) {
631 bubble_content().media_menus) { 631 const MediaMenu& menu = media_menu.second;
632 if (media_menu.second.selected_device.id != 632 if (menu.selected_device.id != menu.default_device.id)
633 media_menu.second.default_device.id) { 633 UpdateDefaultDeviceForType(media_menu.first, menu.selected_device.id);
634 UpdateDefaultDeviceForType(media_menu.first,
635 media_menu.second.selected_device.id);
636 }
637 } 634 }
638 635
639 // Update the media settings if the radio button selection was changed. 636 // Update the media settings if the radio button selection was changed.
640 if (selected_item_ != bubble_content().radio_group.default_item) { 637 if (selected_item_ != bubble_content().radio_group.default_item)
641 UpdateSettings(radio_item_setting_[selected_item_]); 638 UpdateSettings(radio_item_setting_[selected_item_]);
642 }
643 } 639 }
644 640
645 ContentSettingMediaStreamBubbleModel* 641 ContentSettingMediaStreamBubbleModel*
646 ContentSettingMediaStreamBubbleModel::AsMediaStreamBubbleModel() { 642 ContentSettingMediaStreamBubbleModel::AsMediaStreamBubbleModel() {
647 return this; 643 return this;
648 } 644 }
649 645
650 void ContentSettingMediaStreamBubbleModel::OnManageLinkClicked() { 646 void ContentSettingMediaStreamBubbleModel::OnManageLinkClicked() {
651 if (!delegate()) 647 if (!delegate())
652 return; 648 return;
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
748 radio_group.default_item = selected_item_; 744 radio_group.default_item = selected_item_;
749 radio_group.radio_items.push_back(radio_allow_label); 745 radio_group.radio_items.push_back(radio_allow_label);
750 radio_group.radio_items.push_back(radio_block_label); 746 radio_group.radio_items.push_back(radio_block_label);
751 747
752 set_radio_group(radio_group); 748 set_radio_group(radio_group);
753 set_radio_group_enabled(true); 749 set_radio_group_enabled(true);
754 } 750 }
755 751
756 void ContentSettingMediaStreamBubbleModel::UpdateSettings( 752 void ContentSettingMediaStreamBubbleModel::UpdateSettings(
757 ContentSetting setting) { 753 ContentSetting setting) {
758 if (profile()) { 754 if (!profile())
759 TabSpecificContentSettings* tab_content_settings = 755 return;
760 TabSpecificContentSettings::FromWebContents(web_contents()); 756
761 // The same urls must be used as in other places (e.g. the infobar) in 757 TabSpecificContentSettings* tab_content_settings =
762 // order to override the existing rule. Otherwise a new rule is created. 758 TabSpecificContentSettings::FromWebContents(web_contents());
763 // TODO(markusheintz): Extract to a helper so that there is only a single 759 // The same urls must be used as in other places (e.g. the infobar) in
764 // place to touch. 760 // order to override the existing rule. Otherwise a new rule is created.
765 HostContentSettingsMap* map = 761 // TODO(markusheintz): Extract to a helper so that there is only a single
766 HostContentSettingsMapFactory::GetForProfile(profile()); 762 // place to touch.
767 if (MicrophoneAccessed()) { 763 HostContentSettingsMap* map =
768 PermissionUtil::ScopedRevocationReporter scoped_revocation_reporter( 764 HostContentSettingsMapFactory::GetForProfile(profile());
769 profile(), tab_content_settings->media_stream_access_origin(), GURL(), 765 if (MicrophoneAccessed()) {
770 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, 766 PermissionUtil::ScopedRevocationReporter scoped_revocation_reporter(
771 PermissionSourceUI::PAGE_ACTION); 767 profile(), tab_content_settings->media_stream_access_origin(), GURL(),
772 map->SetContentSettingDefaultScope( 768 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, PermissionSourceUI::PAGE_ACTION);
773 tab_content_settings->media_stream_access_origin(), GURL(), 769 map->SetContentSettingDefaultScope(
774 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, std::string(), setting); 770 tab_content_settings->media_stream_access_origin(), GURL(),
775 } 771 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, std::string(), setting);
776 if (CameraAccessed()) { 772 }
777 PermissionUtil::ScopedRevocationReporter scoped_revocation_reporter( 773 if (CameraAccessed()) {
778 profile(), tab_content_settings->media_stream_access_origin(), GURL(), 774 PermissionUtil::ScopedRevocationReporter scoped_revocation_reporter(
779 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, 775 profile(), tab_content_settings->media_stream_access_origin(), GURL(),
780 PermissionSourceUI::PAGE_ACTION); 776 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA,
781 map->SetContentSettingDefaultScope( 777 PermissionSourceUI::PAGE_ACTION);
782 tab_content_settings->media_stream_access_origin(), GURL(), 778 map->SetContentSettingDefaultScope(
783 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, std::string(), setting); 779 tab_content_settings->media_stream_access_origin(), GURL(),
784 } 780 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, std::string(), setting);
785 } 781 }
786 } 782 }
787 783
788 void ContentSettingMediaStreamBubbleModel::UpdateDefaultDeviceForType( 784 void ContentSettingMediaStreamBubbleModel::UpdateDefaultDeviceForType(
789 content::MediaStreamType type, 785 content::MediaStreamType type,
790 const std::string& device) { 786 const std::string& device) {
791 PrefService* prefs = profile()->GetPrefs(); 787 PrefService* prefs = profile()->GetPrefs();
792 if (type == content::MEDIA_DEVICE_AUDIO_CAPTURE) { 788 if (type == content::MEDIA_DEVICE_AUDIO_CAPTURE) {
793 prefs->SetString(prefs::kDefaultAudioCaptureDevice, device); 789 prefs->SetString(prefs::kDefaultAudioCaptureDevice, device);
794 } else { 790 } else {
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
914 ContentSettingDomainListBubbleModel(Delegate* delegate, 910 ContentSettingDomainListBubbleModel(Delegate* delegate,
915 WebContents* web_contents, 911 WebContents* web_contents,
916 Profile* profile, 912 Profile* profile,
917 ContentSettingsType content_type); 913 ContentSettingsType content_type);
918 ~ContentSettingDomainListBubbleModel() override {} 914 ~ContentSettingDomainListBubbleModel() override {}
919 915
920 private: 916 private:
921 void MaybeAddDomainList(const std::set<std::string>& hosts, int title_id); 917 void MaybeAddDomainList(const std::set<std::string>& hosts, int title_id);
922 void SetDomainsAndCustomLink(); 918 void SetDomainsAndCustomLink();
923 void OnCustomLinkClicked() override; 919 void OnCustomLinkClicked() override;
920
921 DISALLOW_COPY_AND_ASSIGN(ContentSettingDomainListBubbleModel);
924 }; 922 };
925 923
926 ContentSettingDomainListBubbleModel::ContentSettingDomainListBubbleModel( 924 ContentSettingDomainListBubbleModel::ContentSettingDomainListBubbleModel(
927 Delegate* delegate, 925 Delegate* delegate,
928 WebContents* web_contents, 926 WebContents* web_contents,
929 Profile* profile, 927 Profile* profile,
930 ContentSettingsType content_type) 928 ContentSettingsType content_type)
931 : ContentSettingSimpleBubbleModel( 929 : ContentSettingSimpleBubbleModel(
932 delegate, web_contents, profile, content_type) { 930 delegate, web_contents, profile, content_type) {
933 DCHECK_EQ(CONTENT_SETTINGS_TYPE_GEOLOCATION, content_type) << 931 DCHECK_EQ(CONTENT_SETTINGS_TYPE_GEOLOCATION, content_type) <<
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
1000 : public ContentSettingSimpleBubbleModel { 998 : public ContentSettingSimpleBubbleModel {
1001 public: 999 public:
1002 ContentSettingMixedScriptBubbleModel(Delegate* delegate, 1000 ContentSettingMixedScriptBubbleModel(Delegate* delegate,
1003 WebContents* web_contents, 1001 WebContents* web_contents,
1004 Profile* profile); 1002 Profile* profile);
1005 1003
1006 ~ContentSettingMixedScriptBubbleModel() override {} 1004 ~ContentSettingMixedScriptBubbleModel() override {}
1007 1005
1008 private: 1006 private:
1009 void OnCustomLinkClicked() override; 1007 void OnCustomLinkClicked() override;
1008
1009 DISALLOW_COPY_AND_ASSIGN(ContentSettingMixedScriptBubbleModel);
1010 }; 1010 };
1011 1011
1012 ContentSettingMixedScriptBubbleModel::ContentSettingMixedScriptBubbleModel( 1012 ContentSettingMixedScriptBubbleModel::ContentSettingMixedScriptBubbleModel(
1013 Delegate* delegate, 1013 Delegate* delegate,
1014 WebContents* web_contents, 1014 WebContents* web_contents,
1015 Profile* profile) 1015 Profile* profile)
1016 : ContentSettingSimpleBubbleModel( 1016 : ContentSettingSimpleBubbleModel(
1017 delegate, 1017 delegate,
1018 web_contents, 1018 web_contents,
1019 profile, 1019 profile,
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
1114 set_radio_group_enabled(true); 1114 set_radio_group_enabled(true);
1115 set_radio_group(radio_group); 1115 set_radio_group(radio_group);
1116 } 1116 }
1117 1117
1118 ContentSettingRPHBubbleModel::~ContentSettingRPHBubbleModel() { 1118 ContentSettingRPHBubbleModel::~ContentSettingRPHBubbleModel() {
1119 if (!web_contents() || !interacted_) 1119 if (!web_contents() || !interacted_)
1120 return; 1120 return;
1121 1121
1122 // The user has one chance to deal with the RPH content setting UI, 1122 // The user has one chance to deal with the RPH content setting UI,
1123 // then we remove it. 1123 // then we remove it.
1124 TabSpecificContentSettings::FromWebContents(web_contents())-> 1124 auto* settings = TabSpecificContentSettings::FromWebContents(web_contents());
1125 ClearPendingProtocolHandler(); 1125 settings->ClearPendingProtocolHandler();
1126 content::NotificationService::current()->Notify( 1126 content::NotificationService::current()->Notify(
1127 chrome::NOTIFICATION_WEB_CONTENT_SETTINGS_CHANGED, 1127 chrome::NOTIFICATION_WEB_CONTENT_SETTINGS_CHANGED,
1128 content::Source<WebContents>(web_contents()), 1128 content::Source<WebContents>(web_contents()),
1129 content::NotificationService::NoDetails()); 1129 content::NotificationService::NoDetails());
1130 } 1130 }
1131 1131
1132 void ContentSettingRPHBubbleModel::OnRadioClicked(int radio_index) { 1132 void ContentSettingRPHBubbleModel::OnRadioClicked(int radio_index) {
1133 if (selected_item_ == radio_index) 1133 if (selected_item_ == radio_index)
1134 return; 1134 return;
1135 1135
(...skipping 25 matching lines...) Expand all
1161 registry_->OnAcceptRegisterProtocolHandler(pending_handler_); 1161 registry_->OnAcceptRegisterProtocolHandler(pending_handler_);
1162 TabSpecificContentSettings::FromWebContents(web_contents())-> 1162 TabSpecificContentSettings::FromWebContents(web_contents())->
1163 set_pending_protocol_handler_setting(CONTENT_SETTING_ALLOW); 1163 set_pending_protocol_handler_setting(CONTENT_SETTING_ALLOW);
1164 } 1164 }
1165 1165
1166 void ContentSettingRPHBubbleModel::UnregisterProtocolHandler() { 1166 void ContentSettingRPHBubbleModel::UnregisterProtocolHandler() {
1167 if (!web_contents()) 1167 if (!web_contents())
1168 return; 1168 return;
1169 1169
1170 registry_->OnDenyRegisterProtocolHandler(pending_handler_); 1170 registry_->OnDenyRegisterProtocolHandler(pending_handler_);
1171 TabSpecificContentSettings::FromWebContents(web_contents())-> 1171 auto* settings = TabSpecificContentSettings::FromWebContents(web_contents());
1172 set_pending_protocol_handler_setting(CONTENT_SETTING_BLOCK); 1172 settings->set_pending_protocol_handler_setting(CONTENT_SETTING_BLOCK);
1173 ClearOrSetPreviousHandler(); 1173 ClearOrSetPreviousHandler();
1174 } 1174 }
1175 1175
1176 void ContentSettingRPHBubbleModel::IgnoreProtocolHandler() { 1176 void ContentSettingRPHBubbleModel::IgnoreProtocolHandler() {
1177 if (!web_contents()) 1177 if (!web_contents())
1178 return; 1178 return;
1179 1179
1180 registry_->OnIgnoreRegisterProtocolHandler(pending_handler_); 1180 registry_->OnIgnoreRegisterProtocolHandler(pending_handler_);
1181 TabSpecificContentSettings::FromWebContents(web_contents())-> 1181 auto* settings = TabSpecificContentSettings::FromWebContents(web_contents());
1182 set_pending_protocol_handler_setting(CONTENT_SETTING_DEFAULT); 1182 settings->set_pending_protocol_handler_setting(CONTENT_SETTING_DEFAULT);
1183 ClearOrSetPreviousHandler(); 1183 ClearOrSetPreviousHandler();
1184 } 1184 }
1185 1185
1186 void ContentSettingRPHBubbleModel::ClearOrSetPreviousHandler() { 1186 void ContentSettingRPHBubbleModel::ClearOrSetPreviousHandler() {
1187 if (previous_handler_.IsEmpty()) { 1187 if (previous_handler_.IsEmpty()) {
1188 registry_->ClearDefault(pending_handler_.protocol()); 1188 registry_->ClearDefault(pending_handler_.protocol());
1189 } else { 1189 } else {
1190 registry_->OnAcceptRegisterProtocolHandler(previous_handler_); 1190 registry_->OnAcceptRegisterProtocolHandler(previous_handler_);
1191 } 1191 }
1192 } 1192 }
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
1241 public: 1241 public:
1242 ContentSettingMidiSysExBubbleModel(Delegate* delegate, 1242 ContentSettingMidiSysExBubbleModel(Delegate* delegate,
1243 WebContents* web_contents, 1243 WebContents* web_contents,
1244 Profile* profile); 1244 Profile* profile);
1245 ~ContentSettingMidiSysExBubbleModel() override {} 1245 ~ContentSettingMidiSysExBubbleModel() override {}
1246 1246
1247 private: 1247 private:
1248 void MaybeAddDomainList(const std::set<std::string>& hosts, int title_id); 1248 void MaybeAddDomainList(const std::set<std::string>& hosts, int title_id);
1249 void SetDomainsAndCustomLink(); 1249 void SetDomainsAndCustomLink();
1250 void OnCustomLinkClicked() override; 1250 void OnCustomLinkClicked() override;
1251
1252 DISALLOW_COPY_AND_ASSIGN(ContentSettingMidiSysExBubbleModel);
1251 }; 1253 };
1252 1254
1253 ContentSettingMidiSysExBubbleModel::ContentSettingMidiSysExBubbleModel( 1255 ContentSettingMidiSysExBubbleModel::ContentSettingMidiSysExBubbleModel(
1254 Delegate* delegate, 1256 Delegate* delegate,
1255 WebContents* web_contents, 1257 WebContents* web_contents,
1256 Profile* profile) 1258 Profile* profile)
1257 : ContentSettingSimpleBubbleModel(delegate, 1259 : ContentSettingSimpleBubbleModel(delegate,
1258 web_contents, 1260 web_contents,
1259 profile, 1261 profile,
1260 CONTENT_SETTINGS_TYPE_MIDI_SYSEX) { 1262 CONTENT_SETTINGS_TYPE_MIDI_SYSEX) {
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
1410 1412
1411 ContentSettingBubbleModel::BubbleContent::~BubbleContent() {} 1413 ContentSettingBubbleModel::BubbleContent::~BubbleContent() {}
1412 1414
1413 void ContentSettingBubbleModel::Observe( 1415 void ContentSettingBubbleModel::Observe(
1414 int type, 1416 int type,
1415 const content::NotificationSource& source, 1417 const content::NotificationSource& source,
1416 const content::NotificationDetails& details) { 1418 const content::NotificationDetails& details) {
1417 if (type == content::NOTIFICATION_WEB_CONTENTS_DESTROYED) { 1419 if (type == content::NOTIFICATION_WEB_CONTENTS_DESTROYED) {
1418 DCHECK_EQ(web_contents_, 1420 DCHECK_EQ(web_contents_,
1419 content::Source<WebContents>(source).ptr()); 1421 content::Source<WebContents>(source).ptr());
1420 web_contents_ = NULL; 1422 web_contents_ = nullptr;
1421 } else { 1423 } else {
1422 DCHECK_EQ(chrome::NOTIFICATION_PROFILE_DESTROYED, type); 1424 DCHECK_EQ(chrome::NOTIFICATION_PROFILE_DESTROYED, type);
1423 DCHECK_EQ(profile_, content::Source<Profile>(source).ptr()); 1425 DCHECK_EQ(profile_, content::Source<Profile>(source).ptr());
1424 profile_ = NULL; 1426 profile_ = nullptr;
1425 } 1427 }
1426 } 1428 }
1427 1429
1428 ContentSettingSimpleBubbleModel* 1430 ContentSettingSimpleBubbleModel*
1429 ContentSettingBubbleModel::AsSimpleBubbleModel() { 1431 ContentSettingBubbleModel::AsSimpleBubbleModel() {
1430 // In general, bubble models might not inherit from the simple bubble model. 1432 // In general, bubble models might not inherit from the simple bubble model.
1431 return nullptr; 1433 return nullptr;
1432 } 1434 }
1433 1435
1434 ContentSettingMediaStreamBubbleModel* 1436 ContentSettingMediaStreamBubbleModel*
1435 ContentSettingBubbleModel::AsMediaStreamBubbleModel() { 1437 ContentSettingBubbleModel::AsMediaStreamBubbleModel() {
1436 // In general, bubble models might not inherit from the media bubble model. 1438 // In general, bubble models might not inherit from the media bubble model.
1437 return nullptr; 1439 return nullptr;
1438 } 1440 }
1439 1441
1440 ContentSettingSubresourceFilterBubbleModel* 1442 ContentSettingSubresourceFilterBubbleModel*
1441 ContentSettingBubbleModel::AsSubresourceFilterBubbleModel() { 1443 ContentSettingBubbleModel::AsSubresourceFilterBubbleModel() {
1442 return nullptr; 1444 return nullptr;
1443 } 1445 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/ui/content_settings/content_setting_image_model.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698