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

Side by Side Diff: chrome/browser/content_settings/tab_specific_content_settings.cc

Issue 2785923003: [subresource_filter] Clean up special cases in TabSpecificContentSettings (Closed)
Patch Set: remove dependent CL Created 3 years, 8 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
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/content_settings/tab_specific_content_settings.h" 5 #include "chrome/browser/content_settings/tab_specific_content_settings.h"
6 6
7 #include <list> 7 #include <list>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/lazy_instance.h" 10 #include "base/lazy_instance.h"
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 CONTENT_SETTINGS_TYPE_GEOLOCATION), 98 CONTENT_SETTINGS_TYPE_GEOLOCATION),
99 midi_usages_state_( 99 midi_usages_state_(
100 HostContentSettingsMapFactory::GetForProfile( 100 HostContentSettingsMapFactory::GetForProfile(
101 Profile::FromBrowserContext(tab->GetBrowserContext())), 101 Profile::FromBrowserContext(tab->GetBrowserContext())),
102 CONTENT_SETTINGS_TYPE_MIDI_SYSEX), 102 CONTENT_SETTINGS_TYPE_MIDI_SYSEX),
103 pending_protocol_handler_(ProtocolHandler::EmptyProtocolHandler()), 103 pending_protocol_handler_(ProtocolHandler::EmptyProtocolHandler()),
104 previous_protocol_handler_(ProtocolHandler::EmptyProtocolHandler()), 104 previous_protocol_handler_(ProtocolHandler::EmptyProtocolHandler()),
105 pending_protocol_handler_setting_(CONTENT_SETTING_DEFAULT), 105 pending_protocol_handler_setting_(CONTENT_SETTING_DEFAULT),
106 load_plugins_link_enabled_(true), 106 load_plugins_link_enabled_(true),
107 microphone_camera_state_(MICROPHONE_CAMERA_NOT_ACCESSED), 107 microphone_camera_state_(MICROPHONE_CAMERA_NOT_ACCESSED),
108 subresource_filter_enabled_(false),
109 subresource_filter_blockage_indicated_(false),
110 observer_(this) { 108 observer_(this) {
111 ClearContentSettingsExceptForNavigationRelatedSettings(); 109 ClearContentSettingsExceptForNavigationRelatedSettings();
112 ClearNavigationRelatedContentSettings(); 110 ClearNavigationRelatedContentSettings();
113 111
114 observer_.Add(HostContentSettingsMapFactory::GetForProfile( 112 observer_.Add(HostContentSettingsMapFactory::GetForProfile(
115 Profile::FromBrowserContext(tab->GetBrowserContext()))); 113 Profile::FromBrowserContext(tab->GetBrowserContext())));
116 } 114 }
117 115
118 TabSpecificContentSettings::~TabSpecificContentSettings() { 116 TabSpecificContentSettings::~TabSpecificContentSettings() {
119 for (SiteDataObserver& observer : observer_list_) 117 for (SiteDataObserver& observer : observer_list_)
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 241
244 if (content_type == CONTENT_SETTINGS_TYPE_IMAGES || 242 if (content_type == CONTENT_SETTINGS_TYPE_IMAGES ||
245 content_type == CONTENT_SETTINGS_TYPE_JAVASCRIPT || 243 content_type == CONTENT_SETTINGS_TYPE_JAVASCRIPT ||
246 content_type == CONTENT_SETTINGS_TYPE_PLUGINS || 244 content_type == CONTENT_SETTINGS_TYPE_PLUGINS ||
247 content_type == CONTENT_SETTINGS_TYPE_COOKIES || 245 content_type == CONTENT_SETTINGS_TYPE_COOKIES ||
248 content_type == CONTENT_SETTINGS_TYPE_POPUPS || 246 content_type == CONTENT_SETTINGS_TYPE_POPUPS ||
249 content_type == CONTENT_SETTINGS_TYPE_MIXEDSCRIPT || 247 content_type == CONTENT_SETTINGS_TYPE_MIXEDSCRIPT ||
250 content_type == CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC || 248 content_type == CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC ||
251 content_type == CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA || 249 content_type == CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA ||
252 content_type == CONTENT_SETTINGS_TYPE_PPAPI_BROKER || 250 content_type == CONTENT_SETTINGS_TYPE_PPAPI_BROKER ||
253 content_type == CONTENT_SETTINGS_TYPE_MIDI_SYSEX) { 251 content_type == CONTENT_SETTINGS_TYPE_MIDI_SYSEX ||
252 content_type == CONTENT_SETTINGS_TYPE_SUBRESOURCE_FILTER) {
254 const auto& it = content_settings_status_.find(content_type); 253 const auto& it = content_settings_status_.find(content_type);
255 if (it != content_settings_status_.end()) 254 if (it != content_settings_status_.end())
256 return it->second.blocked; 255 return it->second.blocked;
257 } 256 }
258 257
259 return false; 258 return false;
260 } 259 }
261 260
262 bool TabSpecificContentSettings::IsSubresourceBlocked() const {
263 return subresource_filter_enabled_;
264 }
265
266 bool TabSpecificContentSettings::IsBlockageIndicated( 261 bool TabSpecificContentSettings::IsBlockageIndicated(
267 ContentSettingsType content_type) const { 262 ContentSettingsType content_type) const {
268 const auto& it = content_settings_status_.find(content_type); 263 const auto& it = content_settings_status_.find(content_type);
269 if (it != content_settings_status_.end()) 264 if (it != content_settings_status_.end())
270 return it->second.blockage_indicated_to_user; 265 return it->second.blockage_indicated_to_user;
271 return false; 266 return false;
272 } 267 }
273 268
274 bool TabSpecificContentSettings::IsSubresourceBlockageIndicated() const {
275 return subresource_filter_blockage_indicated_;
276 }
277
278 void TabSpecificContentSettings::SetBlockageHasBeenIndicated( 269 void TabSpecificContentSettings::SetBlockageHasBeenIndicated(
279 ContentSettingsType content_type) { 270 ContentSettingsType content_type) {
280 content_settings_status_[content_type].blockage_indicated_to_user = true; 271 content_settings_status_[content_type].blockage_indicated_to_user = true;
281 } 272 }
282 273
283 void TabSpecificContentSettings::SetSubresourceBlockageIndicated() {
284 subresource_filter_blockage_indicated_ = true;
285 }
286
287 bool TabSpecificContentSettings::IsContentAllowed( 274 bool TabSpecificContentSettings::IsContentAllowed(
288 ContentSettingsType content_type) const { 275 ContentSettingsType content_type) const {
289 DCHECK_NE(CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, content_type) 276 DCHECK_NE(CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, content_type)
290 << "Automatic downloads handled by DownloadRequestLimiter"; 277 << "Automatic downloads handled by DownloadRequestLimiter";
291 278
292 // This method currently only returns meaningful values for the content type 279 // This method currently only returns meaningful values for the content type
293 // cookies, media, PPAPI broker, downloads, and MIDI sysex. 280 // cookies, media, PPAPI broker, downloads, and MIDI sysex.
294 if (content_type != CONTENT_SETTINGS_TYPE_COOKIES && 281 if (content_type != CONTENT_SETTINGS_TYPE_COOKIES &&
295 content_type != CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC && 282 content_type != CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC &&
296 content_type != CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA && 283 content_type != CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA &&
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after
703 ContentSettingsStatus& status = 690 ContentSettingsStatus& status =
704 content_settings_status_[CONTENT_SETTINGS_TYPE_POPUPS]; 691 content_settings_status_[CONTENT_SETTINGS_TYPE_POPUPS];
705 status.blocked = blocked; 692 status.blocked = blocked;
706 status.blockage_indicated_to_user = false; 693 status.blockage_indicated_to_user = false;
707 content::NotificationService::current()->Notify( 694 content::NotificationService::current()->Notify(
708 chrome::NOTIFICATION_WEB_CONTENT_SETTINGS_CHANGED, 695 chrome::NOTIFICATION_WEB_CONTENT_SETTINGS_CHANGED,
709 content::Source<WebContents>(web_contents()), 696 content::Source<WebContents>(web_contents()),
710 content::NotificationService::NoDetails()); 697 content::NotificationService::NoDetails());
711 } 698 }
712 699
713 void TabSpecificContentSettings::SetSubresourceBlocked(bool enabled) {
714 subresource_filter_enabled_ = enabled;
715 }
716
717 void TabSpecificContentSettings::SetPepperBrokerAllowed(bool allowed) { 700 void TabSpecificContentSettings::SetPepperBrokerAllowed(bool allowed) {
718 if (allowed) { 701 if (allowed) {
719 OnContentAllowed(CONTENT_SETTINGS_TYPE_PPAPI_BROKER); 702 OnContentAllowed(CONTENT_SETTINGS_TYPE_PPAPI_BROKER);
720 } else { 703 } else {
721 OnContentBlocked(CONTENT_SETTINGS_TYPE_PPAPI_BROKER); 704 OnContentBlocked(CONTENT_SETTINGS_TYPE_PPAPI_BROKER);
722 } 705 }
723 } 706 }
724 707
725 void TabSpecificContentSettings::OnContentSettingChanged( 708 void TabSpecificContentSettings::OnContentSettingChanged(
726 const ContentSettingsPattern& primary_pattern, 709 const ContentSettingsPattern& primary_pattern,
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
902 static_cast<MicrophoneCameraStateFlags>( 885 static_cast<MicrophoneCameraStateFlags>(
903 TabSpecificContentSettings::MICROPHONE_ACCESSED | 886 TabSpecificContentSettings::MICROPHONE_ACCESSED |
904 TabSpecificContentSettings::MICROPHONE_BLOCKED | 887 TabSpecificContentSettings::MICROPHONE_BLOCKED |
905 TabSpecificContentSettings::CAMERA_ACCESSED | 888 TabSpecificContentSettings::CAMERA_ACCESSED |
906 TabSpecificContentSettings::CAMERA_BLOCKED); 889 TabSpecificContentSettings::CAMERA_BLOCKED);
907 OnMediaStreamPermissionSet( 890 OnMediaStreamPermissionSet(
908 web_contents()->GetLastCommittedURL(), 891 web_contents()->GetLastCommittedURL(),
909 media_blocked, 892 media_blocked,
910 std::string(), std::string(), std::string(), std::string()); 893 std::string(), std::string(), std::string(), std::string());
911 } 894 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698