Chromium Code Reviews| 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/webui/options/content_settings_handler.h" | 5 #include "chrome/browser/ui/webui/options/content_settings_handler.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 23 #include "build/build_config.h" | 23 #include "build/build_config.h" |
| 24 #include "chrome/browser/browser_process.h" | 24 #include "chrome/browser/browser_process.h" |
| 25 #include "chrome/browser/chrome_notification_types.h" | 25 #include "chrome/browser/chrome_notification_types.h" |
| 26 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" | 26 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" |
| 27 #include "chrome/browser/content_settings/web_site_settings_uma_util.h" | 27 #include "chrome/browser/content_settings/web_site_settings_uma_util.h" |
| 28 #include "chrome/browser/custom_handlers/protocol_handler_registry.h" | 28 #include "chrome/browser/custom_handlers/protocol_handler_registry.h" |
| 29 #include "chrome/browser/custom_handlers/protocol_handler_registry_factory.h" | 29 #include "chrome/browser/custom_handlers/protocol_handler_registry_factory.h" |
| 30 #include "chrome/browser/extensions/extension_special_storage_policy.h" | 30 #include "chrome/browser/extensions/extension_special_storage_policy.h" |
| 31 #include "chrome/browser/notifications/desktop_notification_profile_util.h" | 31 #include "chrome/browser/notifications/desktop_notification_profile_util.h" |
| 32 #include "chrome/browser/permissions/chooser_context_base.h" | 32 #include "chrome/browser/permissions/chooser_context_base.h" |
| 33 #include "chrome/browser/permissions/permission_uma_util.h" | |
| 34 #include "chrome/browser/permissions/permission_util.h" | |
| 33 #include "chrome/browser/profiles/profile.h" | 35 #include "chrome/browser/profiles/profile.h" |
| 34 #include "chrome/browser/ui/browser_list.h" | 36 #include "chrome/browser/ui/browser_list.h" |
| 35 #include "chrome/browser/ui/exclusive_access/exclusive_access_manager.h" | 37 #include "chrome/browser/ui/exclusive_access/exclusive_access_manager.h" |
| 36 #include "chrome/browser/ui/webui/site_settings_helper.h" | 38 #include "chrome/browser/ui/webui/site_settings_helper.h" |
| 37 #include "chrome/browser/usb/usb_chooser_context.h" | 39 #include "chrome/browser/usb/usb_chooser_context.h" |
| 38 #include "chrome/browser/usb/usb_chooser_context_factory.h" | 40 #include "chrome/browser/usb/usb_chooser_context_factory.h" |
| 39 #include "chrome/common/chrome_switches.h" | 41 #include "chrome/common/chrome_switches.h" |
| 40 #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" | 42 #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" |
| 41 #include "chrome/common/features.h" | 43 #include "chrome/common/features.h" |
| 42 #include "chrome/common/pref_names.h" | 44 #include "chrome/common/pref_names.h" |
| (...skipping 1247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1290 ContentSettingsType type) { | 1292 ContentSettingsType type) { |
| 1291 std::string mode; | 1293 std::string mode; |
| 1292 bool rv = args->GetString(1, &mode); | 1294 bool rv = args->GetString(1, &mode); |
| 1293 DCHECK(rv); | 1295 DCHECK(rv); |
| 1294 | 1296 |
| 1295 std::string pattern; | 1297 std::string pattern; |
| 1296 rv = args->GetString(2, &pattern); | 1298 rv = args->GetString(2, &pattern); |
| 1297 DCHECK(rv); | 1299 DCHECK(rv); |
| 1298 | 1300 |
| 1299 // The fourth argument to this handler is optional. | 1301 // The fourth argument to this handler is optional. |
| 1300 std::string secondary_pattern; | 1302 std::string secondary_pattern_string; |
| 1301 if (args->GetSize() >= 4U) { | 1303 if (args->GetSize() >= 4U) { |
| 1302 rv = args->GetString(3, &secondary_pattern); | 1304 rv = args->GetString(3, &secondary_pattern_string); |
| 1303 DCHECK(rv); | 1305 DCHECK(rv); |
| 1304 } | 1306 } |
| 1305 | 1307 |
| 1306 HostContentSettingsMap* settings_map = | 1308 HostContentSettingsMap* settings_map = |
| 1307 mode == "normal" ? GetContentSettingsMap() : | 1309 mode == "normal" ? GetContentSettingsMap() : |
| 1308 GetOTRContentSettingsMap(); | 1310 GetOTRContentSettingsMap(); |
| 1309 if (settings_map) { | 1311 if (settings_map) { |
| 1312 Profile* profile = Profile::FromWebUI(web_ui()); | |
| 1313 if (mode != "normal") | |
| 1314 profile = profile->GetOffTheRecordProfile(); | |
|
raymes
2016/07/26 07:50:03
I think we should probably simplify this - possibl
stefanocs
2016/07/26 12:00:05
Done.
| |
| 1315 ContentSettingsPattern primary_pattern = | |
| 1316 ContentSettingsPattern::FromString(pattern); | |
| 1317 ContentSettingsPattern secondary_pattern = | |
| 1318 secondary_pattern_string.empty() | |
| 1319 ? ContentSettingsPattern::Wildcard() | |
| 1320 : ContentSettingsPattern::FromString(secondary_pattern_string); | |
| 1321 PermissionUtil::ScopedRevocationReporter scoped_revocation_reporter( | |
| 1322 profile, primary_pattern, secondary_pattern, type, | |
| 1323 PermissionSourceUI::SITE_SETTINGS); | |
| 1324 | |
| 1310 settings_map->SetContentSettingCustomScope( | 1325 settings_map->SetContentSettingCustomScope( |
| 1311 ContentSettingsPattern::FromString(pattern), | 1326 primary_pattern, secondary_pattern, type, std::string(), |
| 1312 secondary_pattern.empty() | 1327 CONTENT_SETTING_DEFAULT); |
| 1313 ? ContentSettingsPattern::Wildcard() | |
| 1314 : ContentSettingsPattern::FromString(secondary_pattern), | |
| 1315 type, std::string(), CONTENT_SETTING_DEFAULT); | |
| 1316 } | 1328 } |
| 1317 } | 1329 } |
| 1318 | 1330 |
| 1319 void ContentSettingsHandler::RemoveZoomLevelException( | 1331 void ContentSettingsHandler::RemoveZoomLevelException( |
| 1320 const base::ListValue* args) { | 1332 const base::ListValue* args) { |
| 1321 std::string mode; | 1333 std::string mode; |
| 1322 bool rv = args->GetString(1, &mode); | 1334 bool rv = args->GetString(1, &mode); |
| 1323 DCHECK(rv); | 1335 DCHECK(rv); |
| 1324 | 1336 |
| 1325 std::string pattern; | 1337 std::string pattern; |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1475 // The settings map could be null if the mode was OTR but the OTR profile | 1487 // The settings map could be null if the mode was OTR but the OTR profile |
| 1476 // got destroyed before we received this message. | 1488 // got destroyed before we received this message. |
| 1477 if (!settings_map) | 1489 if (!settings_map) |
| 1478 return; | 1490 return; |
| 1479 | 1491 |
| 1480 ContentSetting setting_type; | 1492 ContentSetting setting_type; |
| 1481 bool result = | 1493 bool result = |
| 1482 content_settings::ContentSettingFromString(setting, &setting_type); | 1494 content_settings::ContentSettingFromString(setting, &setting_type); |
| 1483 DCHECK(result); | 1495 DCHECK(result); |
| 1484 | 1496 |
| 1497 Profile* profile = Profile::FromWebUI(web_ui()); | |
| 1498 if (mode != "normal") | |
| 1499 profile = profile->GetOffTheRecordProfile(); | |
| 1500 | |
| 1501 PermissionUtil::ScopedRevocationReporter scoped_revocation_reporter( | |
| 1502 profile, ContentSettingsPattern::FromString(pattern), | |
| 1503 ContentSettingsPattern::Wildcard(), type, | |
| 1504 PermissionSourceUI::SITE_SETTINGS); | |
| 1505 | |
| 1485 settings_map->SetContentSettingCustomScope( | 1506 settings_map->SetContentSettingCustomScope( |
| 1486 ContentSettingsPattern::FromString(pattern), | 1507 ContentSettingsPattern::FromString(pattern), |
| 1487 ContentSettingsPattern::Wildcard(), type, std::string(), setting_type); | 1508 ContentSettingsPattern::Wildcard(), type, std::string(), setting_type); |
| 1488 WebSiteSettingsUmaUtil::LogPermissionChange(type, setting_type); | 1509 WebSiteSettingsUmaUtil::LogPermissionChange(type, setting_type); |
| 1489 } | 1510 } |
| 1490 } | 1511 } |
| 1491 | 1512 |
| 1492 void ContentSettingsHandler::CheckExceptionPatternValidity( | 1513 void ContentSettingsHandler::CheckExceptionPatternValidity( |
| 1493 const base::ListValue* args) { | 1514 const base::ListValue* args) { |
| 1494 std::string type_string; | 1515 std::string type_string; |
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1645 | 1666 |
| 1646 // Exceptions apply only when the feature is enabled. | 1667 // Exceptions apply only when the feature is enabled. |
| 1647 PrefService* prefs = user_prefs::UserPrefs::Get(GetBrowserContext(web_ui())); | 1668 PrefService* prefs = user_prefs::UserPrefs::Get(GetBrowserContext(web_ui())); |
| 1648 bool enable_exceptions = prefs->GetBoolean(prefs::kEnableDRM); | 1669 bool enable_exceptions = prefs->GetBoolean(prefs::kEnableDRM); |
| 1649 web_ui()->CallJavascriptFunctionUnsafe( | 1670 web_ui()->CallJavascriptFunctionUnsafe( |
| 1650 "ContentSettings.enableProtectedContentExceptions", | 1671 "ContentSettings.enableProtectedContentExceptions", |
| 1651 base::FundamentalValue(enable_exceptions)); | 1672 base::FundamentalValue(enable_exceptions)); |
| 1652 } | 1673 } |
| 1653 | 1674 |
| 1654 } // namespace options | 1675 } // namespace options |
| OLD | NEW |