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 "components/content_settings/core/browser/host_content_settings_map.h" | 5 #include "components/content_settings/core/browser/host_content_settings_map.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
203 // wouldn't be needed except that we used to allow settings to be stored for | 203 // wouldn't be needed except that we used to allow settings to be stored for |
204 // the guest profile and so we need to ensure those get cleared. | 204 // the guest profile and so we need to ensure those get cleared. |
205 if (is_guest_profile) | 205 if (is_guest_profile) |
206 pref_provider_->ClearPrefs(); | 206 pref_provider_->ClearPrefs(); |
207 | 207 |
208 auto default_provider = base::MakeUnique<content_settings::DefaultProvider>( | 208 auto default_provider = base::MakeUnique<content_settings::DefaultProvider>( |
209 prefs_, is_incognito_); | 209 prefs_, is_incognito_); |
210 default_provider->AddObserver(this); | 210 default_provider->AddObserver(this); |
211 content_settings_providers_[DEFAULT_PROVIDER] = std::move(default_provider); | 211 content_settings_providers_[DEFAULT_PROVIDER] = std::move(default_provider); |
212 | 212 |
213 MigrateKeygenSettings(); | |
214 MigrateDomainScopedSettings(false); | 213 MigrateDomainScopedSettings(false); |
215 RecordExceptionMetrics(); | 214 RecordExceptionMetrics(); |
216 } | 215 } |
217 | 216 |
218 // static | 217 // static |
219 void HostContentSettingsMap::RegisterProfilePrefs( | 218 void HostContentSettingsMap::RegisterProfilePrefs( |
220 user_prefs::PrefRegistrySyncable* registry) { | 219 user_prefs::PrefRegistrySyncable* registry) { |
221 // Ensure the content settings are all registered. | 220 // Ensure the content settings are all registered. |
222 content_settings::ContentSettingsRegistry::GetInstance(); | 221 content_settings::ContentSettingsRegistry::GetInstance(); |
223 | 222 |
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
494 | 493 |
495 ContentSettingsPattern primary_pattern = patterns.first; | 494 ContentSettingsPattern primary_pattern = patterns.first; |
496 ContentSettingsPattern secondary_pattern = patterns.second; | 495 ContentSettingsPattern secondary_pattern = patterns.second; |
497 if (!primary_pattern.IsValid() || !secondary_pattern.IsValid()) | 496 if (!primary_pattern.IsValid() || !secondary_pattern.IsValid()) |
498 return; | 497 return; |
499 | 498 |
500 SetContentSettingCustomScope(primary_pattern, secondary_pattern, content_type, | 499 SetContentSettingCustomScope(primary_pattern, secondary_pattern, content_type, |
501 resource_identifier, setting); | 500 resource_identifier, setting); |
502 } | 501 } |
503 | 502 |
504 void HostContentSettingsMap::MigrateKeygenSettings() { | |
505 const content_settings::ContentSettingsInfo* info = | |
506 content_settings::ContentSettingsRegistry::GetInstance()->Get( | |
507 CONTENT_SETTINGS_TYPE_KEYGEN); | |
508 if (info) { | |
509 ContentSettingsForOneType settings; | |
510 GetSettingsForOneType(CONTENT_SETTINGS_TYPE_KEYGEN, std::string(), | |
511 &settings); | |
512 | |
513 for (const ContentSettingPatternSource& setting_entry : settings) { | |
514 // Migrate user preference settings only. | |
515 if (setting_entry.source != "preference") | |
516 continue; | |
517 // Migrate old-format settings only. | |
518 if (setting_entry.secondary_pattern != | |
519 ContentSettingsPattern::Wildcard()) { | |
520 GURL url(setting_entry.primary_pattern.ToString()); | |
521 // Pull out the value of the old-format setting. Only do this if the | |
522 // patterns are as we expect them to be, otherwise the setting will just | |
523 // be removed for safety. | |
524 ContentSetting content_setting = CONTENT_SETTING_DEFAULT; | |
525 if (setting_entry.primary_pattern == setting_entry.secondary_pattern && | |
526 url.is_valid()) { | |
527 content_setting = GetContentSetting( | |
528 url, url, CONTENT_SETTINGS_TYPE_KEYGEN, std::string()); | |
529 } | |
530 // Remove the old pattern. | |
531 SetContentSettingCustomScope(setting_entry.primary_pattern, | |
532 setting_entry.secondary_pattern, | |
533 CONTENT_SETTINGS_TYPE_KEYGEN, | |
534 std::string(), CONTENT_SETTING_DEFAULT); | |
535 // Set the new pattern. | |
536 SetContentSettingDefaultScope(url, GURL(), CONTENT_SETTINGS_TYPE_KEYGEN, | |
537 std::string(), content_setting); | |
538 } | |
539 } | |
540 } | |
541 } | |
542 | |
543 void HostContentSettingsMap::MigrateDomainScopedSettings(bool after_sync) { | 503 void HostContentSettingsMap::MigrateDomainScopedSettings(bool after_sync) { |
544 DomainToOriginMigrationStatus status = | 504 DomainToOriginMigrationStatus status = |
545 static_cast<DomainToOriginMigrationStatus>( | 505 static_cast<DomainToOriginMigrationStatus>( |
546 prefs_->GetInteger(prefs::kDomainToOriginMigrationStatus)); | 506 prefs_->GetInteger(prefs::kDomainToOriginMigrationStatus)); |
547 if (status == MIGRATED_AFTER_SYNC) | 507 if (status == MIGRATED_AFTER_SYNC) |
548 return; | 508 return; |
549 if (status == MIGRATED_BEFORE_SYNC && !after_sync) | 509 if (status == MIGRATED_BEFORE_SYNC && !after_sync) |
550 return; | 510 return; |
551 DCHECK(status != NOT_MIGRATED || !after_sync); | 511 DCHECK(status != NOT_MIGRATED || !after_sync); |
552 | 512 |
(...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1023 if (primary_pattern) | 983 if (primary_pattern) |
1024 *primary_pattern = rule.primary_pattern; | 984 *primary_pattern = rule.primary_pattern; |
1025 if (secondary_pattern) | 985 if (secondary_pattern) |
1026 *secondary_pattern = rule.secondary_pattern; | 986 *secondary_pattern = rule.secondary_pattern; |
1027 return base::WrapUnique(rule.value.get()->DeepCopy()); | 987 return base::WrapUnique(rule.value.get()->DeepCopy()); |
1028 } | 988 } |
1029 } | 989 } |
1030 } | 990 } |
1031 return std::unique_ptr<base::Value>(); | 991 return std::unique_ptr<base::Value>(); |
1032 } | 992 } |
OLD | NEW |