| 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/content_settings/content_settings_pref_provider.h" | 5 #include "chrome/browser/content_settings/content_settings_pref_provider.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 554 // dictionary also contains a key that equals the primary |pattern| then | 554 // dictionary also contains a key that equals the primary |pattern| then |
| 555 // skip the current |key|. | 555 // skip the current |key|. |
| 556 if (sep_pos != std::string::npos && | 556 if (sep_pos != std::string::npos && |
| 557 patterns_dictionary->HasKey(pattern.ToString())) { | 557 patterns_dictionary->HasKey(pattern.ToString())) { |
| 558 continue; | 558 continue; |
| 559 } | 559 } |
| 560 | 560 |
| 561 // Copy the legacy content settings for the current |key| from the | 561 // Copy the legacy content settings for the current |key| from the |
| 562 // obsolete pref prefs::kContentSettingsPatterns to the pref | 562 // obsolete pref prefs::kContentSettingsPatterns to the pref |
| 563 // prefs::kContentSettingsPatternPairs. | 563 // prefs::kContentSettingsPatternPairs. |
| 564 DictionaryValue* dictionary = NULL; | 564 const DictionaryValue* dictionary = NULL; |
| 565 bool found = patterns_dictionary->GetDictionaryWithoutPathExpansion( | 565 bool found = patterns_dictionary->GetDictionaryWithoutPathExpansion( |
| 566 key, &dictionary); | 566 key, &dictionary); |
| 567 DCHECK(found); | 567 DCHECK(found); |
| 568 std::string new_key = CreatePatternString( | 568 std::string new_key = CreatePatternString( |
| 569 pattern, ContentSettingsPattern::Wildcard()); | 569 pattern, ContentSettingsPattern::Wildcard()); |
| 570 // Existing values are overwritten. | 570 // Existing values are overwritten. |
| 571 pattern_pairs_dictionary->SetWithoutPathExpansion( | 571 pattern_pairs_dictionary->SetWithoutPathExpansion( |
| 572 new_key, dictionary->DeepCopy()); | 572 new_key, dictionary->DeepCopy()); |
| 573 } | 573 } |
| 574 } | 574 } |
| (...skipping 17 matching lines...) Expand all Loading... |
| 592 | 592 |
| 593 std::vector<std::pair<std::string, std::string> > corrupted_keys; | 593 std::vector<std::pair<std::string, std::string> > corrupted_keys; |
| 594 for (DictionaryValue::key_iterator i = | 594 for (DictionaryValue::key_iterator i = |
| 595 geolocation_settings->begin_keys(); | 595 geolocation_settings->begin_keys(); |
| 596 i != geolocation_settings->end_keys(); | 596 i != geolocation_settings->end_keys(); |
| 597 ++i) { | 597 ++i) { |
| 598 const std::string& primary_key(*i); | 598 const std::string& primary_key(*i); |
| 599 GURL primary_url(primary_key); | 599 GURL primary_url(primary_key); |
| 600 DCHECK(primary_url.is_valid()); | 600 DCHECK(primary_url.is_valid()); |
| 601 | 601 |
| 602 DictionaryValue* requesting_origin_settings = NULL; | 602 const DictionaryValue* requesting_origin_settings = NULL; |
| 603 // The method GetDictionaryWithoutPathExpansion() returns false if the | 603 // The method GetDictionaryWithoutPathExpansion() returns false if the |
| 604 // value for the given key is not a |DictionaryValue|. If the value for the | 604 // value for the given key is not a |DictionaryValue|. If the value for the |
| 605 // |primary_key| is not a |DictionaryValue| then the location settings for | 605 // |primary_key| is not a |DictionaryValue| then the location settings for |
| 606 // this key are corrupted. Therefore they are ignored. | 606 // this key are corrupted. Therefore they are ignored. |
| 607 if (!geolocation_settings->GetDictionaryWithoutPathExpansion( | 607 if (!geolocation_settings->GetDictionaryWithoutPathExpansion( |
| 608 primary_key, &requesting_origin_settings)) | 608 primary_key, &requesting_origin_settings)) |
| 609 continue; | 609 continue; |
| 610 | 610 |
| 611 for (DictionaryValue::key_iterator j = | 611 for (DictionaryValue::key_iterator j = |
| 612 requesting_origin_settings->begin_keys(); | 612 requesting_origin_settings->begin_keys(); |
| 613 j != requesting_origin_settings->end_keys(); | 613 j != requesting_origin_settings->end_keys(); |
| 614 ++j) { | 614 ++j) { |
| 615 const std::string& secondary_key(*j); | 615 const std::string& secondary_key(*j); |
| 616 GURL secondary_url(secondary_key); | 616 GURL secondary_url(secondary_key); |
| 617 // Save corrupted keys to remove them later. | 617 // Save corrupted keys to remove them later. |
| 618 if (!secondary_url.is_valid()) { | 618 if (!secondary_url.is_valid()) { |
| 619 corrupted_keys.push_back(std::make_pair(primary_key, secondary_key)); | 619 corrupted_keys.push_back(std::make_pair(primary_key, secondary_key)); |
| 620 continue; | 620 continue; |
| 621 } | 621 } |
| 622 | 622 |
| 623 base::Value* value = NULL; | 623 const base::Value* value = NULL; |
| 624 bool found = requesting_origin_settings->GetWithoutPathExpansion( | 624 bool found = requesting_origin_settings->GetWithoutPathExpansion( |
| 625 secondary_key, &value); | 625 secondary_key, &value); |
| 626 DCHECK(found); | 626 DCHECK(found); |
| 627 | 627 |
| 628 ContentSettingsPattern primary_pattern = | 628 ContentSettingsPattern primary_pattern = |
| 629 ContentSettingsPattern::FromURLNoWildcard(primary_url); | 629 ContentSettingsPattern::FromURLNoWildcard(primary_url); |
| 630 ContentSettingsPattern secondary_pattern = | 630 ContentSettingsPattern secondary_pattern = |
| 631 ContentSettingsPattern::FromURLNoWildcard(secondary_url); | 631 ContentSettingsPattern::FromURLNoWildcard(secondary_url); |
| 632 DCHECK(primary_pattern.IsValid() && secondary_pattern.IsValid()); | 632 DCHECK(primary_pattern.IsValid() && secondary_pattern.IsValid()); |
| 633 | 633 |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 700 | 700 |
| 701 void PrefProvider::AssertLockNotHeld() const { | 701 void PrefProvider::AssertLockNotHeld() const { |
| 702 #if !defined(NDEBUG) | 702 #if !defined(NDEBUG) |
| 703 // |Lock::Acquire()| will assert if the lock is held by this thread. | 703 // |Lock::Acquire()| will assert if the lock is held by this thread. |
| 704 lock_.Acquire(); | 704 lock_.Acquire(); |
| 705 lock_.Release(); | 705 lock_.Release(); |
| 706 #endif | 706 #endif |
| 707 } | 707 } |
| 708 | 708 |
| 709 } // namespace content_settings | 709 } // namespace content_settings |
| OLD | NEW |