diff options
-rw-r--r-- | chrome/browser/ui/webui/options/content_settings_handler.cc | 8 | ||||
-rw-r--r-- | components/content_settings/core/common/content_settings_pattern_unittest.cc | 3 |
2 files changed, 9 insertions, 2 deletions
diff --git a/chrome/browser/ui/webui/options/content_settings_handler.cc b/chrome/browser/ui/webui/options/content_settings_handler.cc index 9f1df4e..864c2a2 100644 --- a/chrome/browser/ui/webui/options/content_settings_handler.cc +++ b/chrome/browser/ui/webui/options/content_settings_handler.cc @@ -1177,8 +1177,12 @@ void ContentSettingsHandler::GetExceptionsFromHostContentSettingsMap( std::vector<std::vector<base::Value*> > all_provider_exceptions; all_provider_exceptions.resize(HostContentSettingsMap::NUM_PROVIDER_TYPES); - for (AllPatternsSettings::iterator i = all_patterns_settings.begin(); - i != all_patterns_settings.end(); + // The all_patterns_settings is sorted from the lowest precedence pattern to + // the highest (see operator< in ContentSettingsPattern), so traverse it in + // reverse to show the patterns with the highest precedence (the more specific + // ones) on the top. + for (AllPatternsSettings::reverse_iterator i = all_patterns_settings.rbegin(); + i != all_patterns_settings.rend(); ++i) { const ContentSettingsPattern& primary_pattern = i->first.first; const OnePatternSettings& one_settings = i->second; diff --git a/components/content_settings/core/common/content_settings_pattern_unittest.cc b/components/content_settings/core/common/content_settings_pattern_unittest.cc index 3688d84..3fb0448 100644 --- a/components/content_settings/core/common/content_settings_pattern_unittest.cc +++ b/components/content_settings/core/common/content_settings_pattern_unittest.cc @@ -555,6 +555,7 @@ TEST(ContentSettingsPatternTest, Compare) { EXPECT_EQ(ContentSettingsPattern::SUCCESSOR, Pattern("[*.]google.com").Compare( Pattern("mail.google.com"))); + EXPECT_TRUE(Pattern("mail.google.com") > Pattern("[*.]google.com")); EXPECT_EQ(ContentSettingsPattern::PREDECESSOR, Pattern("[*.]mail.google.com").Compare( @@ -562,6 +563,7 @@ TEST(ContentSettingsPatternTest, Compare) { EXPECT_EQ(ContentSettingsPattern::SUCCESSOR, Pattern("[*.]google.com").Compare( Pattern("[*.]mail.google.com"))); + EXPECT_TRUE(Pattern("[*.]mail.google.com") > Pattern("[*.]google.com")); EXPECT_EQ(ContentSettingsPattern::PREDECESSOR, Pattern("mail.google.com:80").Compare( @@ -569,6 +571,7 @@ TEST(ContentSettingsPatternTest, Compare) { EXPECT_EQ(ContentSettingsPattern::SUCCESSOR, Pattern("mail.google.com:*").Compare( Pattern("mail.google.com:80"))); + EXPECT_TRUE(Pattern("mail.google.com:80") > Pattern("mail.google.com:*")); EXPECT_EQ(ContentSettingsPattern::PREDECESSOR, Pattern("https://mail.google.com:*").Compare( |