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 "base/auto_reset.h" | 5 #include "base/auto_reset.h" |
| 6 #include "base/command_line.h" | 6 #include "base/command_line.h" |
| 7 #include "base/json/json_reader.h" | 7 #include "base/json/json_reader.h" |
| 8 #include "base/json/json_writer.h" | 8 #include "base/json/json_writer.h" |
| 9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
| 10 #include "base/prefs/pref_service.h" | 10 #include "base/prefs/pref_service.h" |
| (...skipping 660 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 671 EXPECT_EQ(CONTENT_SETTING_ASK, | 671 EXPECT_EQ(CONTENT_SETTING_ASK, |
| 672 host_content_settings_map->GetContentSetting( | 672 host_content_settings_map->GetContentSetting( |
| 673 host, host, CONTENT_SETTINGS_TYPE_MOUSELOCK, std::string())); | 673 host, host, CONTENT_SETTINGS_TYPE_MOUSELOCK, std::string())); |
| 674 EXPECT_EQ(CONTENT_SETTING_BLOCK, | 674 EXPECT_EQ(CONTENT_SETTING_BLOCK, |
| 675 host_content_settings_map->GetContentSetting( | 675 host_content_settings_map->GetContentSetting( |
| 676 host, host, CONTENT_SETTINGS_TYPE_KEYGEN, std::string())); | 676 host, host, CONTENT_SETTINGS_TYPE_KEYGEN, std::string())); |
| 677 } | 677 } |
| 678 | 678 |
| 679 TEST_F(HostContentSettingsMapTest, OffTheRecord) { | 679 TEST_F(HostContentSettingsMapTest, OffTheRecord) { |
| 680 TestingProfile profile; | 680 TestingProfile profile; |
| 681 Profile* otr_profile = profile.GetOffTheRecordProfile(); | |
| 681 HostContentSettingsMap* host_content_settings_map = | 682 HostContentSettingsMap* host_content_settings_map = |
| 682 HostContentSettingsMapFactory::GetForProfile(&profile); | 683 HostContentSettingsMapFactory::GetForProfile(&profile); |
| 683 scoped_refptr<HostContentSettingsMap> otr_map( | 684 HostContentSettingsMap* otr_map1 = |
|
msramek
2015/11/27 16:30:04
otr_map1 and otr_map2 are the same, this is an imp
johnme
2015/11/30 14:56:58
They're not quite the same. otr_map2 uses profile.
msramek
2015/12/01 13:41:43
If we want to test the equivalence between the two
johnme
2015/12/02 15:13:16
Acknowledged.
| |
| 684 new HostContentSettingsMap(profile.GetPrefs(), | 685 HostContentSettingsMapFactory::GetForProfile(otr_profile); |
| 685 true)); | 686 scoped_refptr<HostContentSettingsMap> otr_map2( |
| 687 new HostContentSettingsMap(profile.GetPrefs(), true /* incognito */)); | |
| 686 | 688 |
| 687 GURL host("http://example.com/"); | 689 GURL host("http://example.com/"); |
| 688 ContentSettingsPattern pattern = | 690 ContentSettingsPattern pattern = |
| 689 ContentSettingsPattern::FromString("[*.]example.com"); | 691 ContentSettingsPattern::FromString("[*.]example.com"); |
| 690 | 692 |
| 691 EXPECT_EQ(CONTENT_SETTING_ALLOW, | 693 EXPECT_EQ(CONTENT_SETTING_ALLOW, |
| 692 host_content_settings_map->GetContentSetting( | 694 host_content_settings_map->GetContentSetting( |
| 693 host, host, CONTENT_SETTINGS_TYPE_IMAGES, std::string())); | 695 host, host, CONTENT_SETTINGS_TYPE_IMAGES, std::string())); |
| 694 EXPECT_EQ(CONTENT_SETTING_ALLOW, | 696 EXPECT_EQ(CONTENT_SETTING_ALLOW, |
| 695 otr_map->GetContentSetting( | 697 otr_map1->GetContentSetting( |
| 698 host, host, CONTENT_SETTINGS_TYPE_IMAGES, std::string())); | |
| 699 EXPECT_EQ(CONTENT_SETTING_ALLOW, | |
| 700 otr_map2->GetContentSetting( | |
| 696 host, host, CONTENT_SETTINGS_TYPE_IMAGES, std::string())); | 701 host, host, CONTENT_SETTINGS_TYPE_IMAGES, std::string())); |
| 697 | 702 |
| 698 // Changing content settings on the main map should also affect the | 703 // Changing content settings on the main map should also affect the |
| 699 // incognito map. | 704 // incognito map. |
| 700 host_content_settings_map->SetContentSetting( | 705 host_content_settings_map->SetContentSetting( |
| 701 pattern, | 706 pattern, |
| 702 ContentSettingsPattern::Wildcard(), | 707 ContentSettingsPattern::Wildcard(), |
| 703 CONTENT_SETTINGS_TYPE_IMAGES, | 708 CONTENT_SETTINGS_TYPE_IMAGES, |
| 704 std::string(), | 709 std::string(), |
| 705 CONTENT_SETTING_BLOCK); | 710 CONTENT_SETTING_BLOCK); |
| 706 EXPECT_EQ(CONTENT_SETTING_BLOCK, | 711 EXPECT_EQ(CONTENT_SETTING_BLOCK, |
| 707 host_content_settings_map->GetContentSetting( | 712 host_content_settings_map->GetContentSetting( |
| 708 host, host, CONTENT_SETTINGS_TYPE_IMAGES, std::string())); | 713 host, host, CONTENT_SETTINGS_TYPE_IMAGES, std::string())); |
| 709 EXPECT_EQ(CONTENT_SETTING_BLOCK, | 714 EXPECT_EQ(CONTENT_SETTING_BLOCK, |
| 710 otr_map->GetContentSetting( | 715 otr_map1->GetContentSetting( |
| 716 host, host, CONTENT_SETTINGS_TYPE_IMAGES, std::string())); | |
| 717 EXPECT_EQ(CONTENT_SETTING_BLOCK, | |
| 718 otr_map2->GetContentSetting( | |
| 711 host, host, CONTENT_SETTINGS_TYPE_IMAGES, std::string())); | 719 host, host, CONTENT_SETTINGS_TYPE_IMAGES, std::string())); |
| 712 | 720 |
| 713 // Changing content settings on the incognito map should NOT affect the | 721 // Changing content settings on the incognito maps should NOT affect the |
| 714 // main map. | 722 // main map. |
| 715 otr_map->SetContentSetting(pattern, | 723 otr_map1->SetContentSetting(pattern, |
| 716 ContentSettingsPattern::Wildcard(), | 724 ContentSettingsPattern::Wildcard(), |
| 717 CONTENT_SETTINGS_TYPE_IMAGES, | 725 CONTENT_SETTINGS_TYPE_IMAGES, |
| 718 std::string(), | 726 std::string(), |
| 727 CONTENT_SETTING_ALLOW); | |
| 728 otr_map2->SetContentSetting(pattern, | |
| 729 ContentSettingsPattern::Wildcard(), | |
| 730 CONTENT_SETTINGS_TYPE_IMAGES, | |
| 731 std::string(), | |
| 719 CONTENT_SETTING_ALLOW); | 732 CONTENT_SETTING_ALLOW); |
| 720 EXPECT_EQ(CONTENT_SETTING_BLOCK, | 733 EXPECT_EQ(CONTENT_SETTING_BLOCK, |
| 721 host_content_settings_map->GetContentSetting( | 734 host_content_settings_map->GetContentSetting( |
| 722 host, host, CONTENT_SETTINGS_TYPE_IMAGES, std::string())); | 735 host, host, CONTENT_SETTINGS_TYPE_IMAGES, std::string())); |
| 723 EXPECT_EQ(CONTENT_SETTING_ALLOW, | 736 EXPECT_EQ(CONTENT_SETTING_ALLOW, |
| 724 otr_map->GetContentSetting( | 737 otr_map1->GetContentSetting( |
| 738 host, host, CONTENT_SETTINGS_TYPE_IMAGES, std::string())); | |
| 739 EXPECT_EQ(CONTENT_SETTING_ALLOW, | |
| 740 otr_map2->GetContentSetting( | |
| 725 host, host, CONTENT_SETTINGS_TYPE_IMAGES, std::string())); | 741 host, host, CONTENT_SETTINGS_TYPE_IMAGES, std::string())); |
| 726 | 742 |
| 727 otr_map->ShutdownOnUIThread(); | 743 otr_map2->ShutdownOnUIThread(); |
| 744 } | |
| 745 | |
| 746 TEST_F(HostContentSettingsMapTest, OffTheRecordPartialInheritPref) { | |
| 747 // Permissions marked INHERIT_IN_INCOGNITO_EXCEPT_ALLOW in | |
| 748 // ContentSettingsRegistry (e.g. push & notifications) only inherit blocks | |
| 749 // from the regular to incognito pref provider. | |
| 750 TestingProfile profile; | |
| 751 Profile* otr_profile = profile.GetOffTheRecordProfile(); | |
| 752 HostContentSettingsMap* host_content_settings_map = | |
| 753 HostContentSettingsMapFactory::GetForProfile(&profile); | |
| 754 HostContentSettingsMap* otr_map = | |
| 755 HostContentSettingsMapFactory::GetForProfile(otr_profile); | |
| 756 | |
| 757 GURL host("http://example.com/"); | |
| 758 ContentSettingsPattern pattern = | |
| 759 ContentSettingsPattern::FromString("[*.]example.com"); | |
| 760 | |
| 761 EXPECT_EQ(CONTENT_SETTING_ASK, host_content_settings_map->GetContentSetting( | |
| 762 host, host, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string())); | |
| 763 EXPECT_EQ(CONTENT_SETTING_ASK, otr_map->GetContentSetting( | |
| 764 host, host, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string())); | |
| 765 | |
| 766 // BLOCK should be inherited from the main map to the incognito map. | |
| 767 host_content_settings_map->SetContentSetting( | |
| 768 pattern, | |
| 769 ContentSettingsPattern::Wildcard(), | |
| 770 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, | |
| 771 std::string(), | |
| 772 CONTENT_SETTING_BLOCK); | |
| 773 EXPECT_EQ(CONTENT_SETTING_BLOCK, host_content_settings_map->GetContentSetting( | |
| 774 host, host, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string())); | |
| 775 EXPECT_EQ(CONTENT_SETTING_BLOCK, otr_map->GetContentSetting( | |
| 776 host, host, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string())); | |
| 777 | |
| 778 // ALLOW should not be inherited from the main map to the incognito map (but | |
| 779 // it still overwrites the BLOCK, hence incognito reverts to ASK). | |
| 780 host_content_settings_map->SetContentSetting( | |
| 781 pattern, | |
| 782 ContentSettingsPattern::Wildcard(), | |
| 783 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, | |
| 784 std::string(), | |
| 785 CONTENT_SETTING_ALLOW); | |
| 786 EXPECT_EQ(CONTENT_SETTING_ALLOW, host_content_settings_map->GetContentSetting( | |
| 787 host, host, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string())); | |
| 788 EXPECT_EQ(CONTENT_SETTING_ASK, otr_map->GetContentSetting( | |
| 789 host, host, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string())); | |
| 790 } | |
| 791 | |
| 792 TEST_F(HostContentSettingsMapTest, OffTheRecordPartialInheritDefault) { | |
| 793 // Permissions marked INHERIT_IN_INCOGNITO_EXCEPT_ALLOW in | |
| 794 // ContentSettingsRegistry (e.g. push & notifications) only inherit blocks | |
| 795 // from the regular to incognito default provider. | |
| 796 TestingProfile profile; | |
| 797 Profile* otr_profile = profile.GetOffTheRecordProfile(); | |
| 798 HostContentSettingsMap* host_content_settings_map = | |
| 799 HostContentSettingsMapFactory::GetForProfile(&profile); | |
| 800 HostContentSettingsMap* otr_map = | |
| 801 HostContentSettingsMapFactory::GetForProfile(otr_profile); | |
| 802 | |
| 803 GURL host("http://example.com/"); | |
| 804 | |
| 805 EXPECT_EQ(CONTENT_SETTING_ASK, | |
| 806 host_content_settings_map->GetDefaultContentSetting( | |
| 807 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, NULL)); | |
| 808 EXPECT_EQ(CONTENT_SETTING_ASK, | |
| 809 host_content_settings_map->GetContentSetting( | |
| 810 host, host, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, | |
| 811 std::string())); | |
| 812 EXPECT_EQ(CONTENT_SETTING_ASK, | |
| 813 otr_map->GetDefaultContentSetting( | |
| 814 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, NULL)); | |
| 815 EXPECT_EQ(CONTENT_SETTING_ASK, | |
| 816 otr_map->GetContentSetting( | |
| 817 host, host, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, | |
| 818 std::string())); | |
| 819 | |
| 820 // BLOCK should be inherited from the main map to the incognito map. | |
| 821 host_content_settings_map->SetDefaultContentSetting( | |
| 822 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, | |
| 823 CONTENT_SETTING_BLOCK); | |
| 824 EXPECT_EQ(CONTENT_SETTING_BLOCK, | |
| 825 host_content_settings_map->GetDefaultContentSetting( | |
| 826 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, NULL)); | |
| 827 EXPECT_EQ(CONTENT_SETTING_BLOCK, | |
| 828 host_content_settings_map->GetContentSetting( | |
| 829 host, host, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, | |
| 830 std::string())); | |
| 831 EXPECT_EQ(CONTENT_SETTING_BLOCK, | |
| 832 otr_map->GetDefaultContentSetting( | |
| 833 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, NULL)); | |
| 834 EXPECT_EQ(CONTENT_SETTING_BLOCK, | |
| 835 otr_map->GetContentSetting( | |
| 836 host, host, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, | |
| 837 std::string())); | |
| 838 | |
| 839 // ALLOW should not be inherited from the main map to the incognito map (but | |
| 840 // it still overwrites the BLOCK, hence incognito reverts to ASK). | |
| 841 host_content_settings_map->SetDefaultContentSetting( | |
| 842 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, | |
| 843 CONTENT_SETTING_ALLOW); | |
| 844 EXPECT_EQ(CONTENT_SETTING_ALLOW, | |
| 845 host_content_settings_map->GetDefaultContentSetting( | |
| 846 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, NULL)); | |
| 847 EXPECT_EQ(CONTENT_SETTING_ALLOW, | |
| 848 host_content_settings_map->GetContentSetting( | |
| 849 host, host, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, | |
| 850 std::string())); | |
| 851 EXPECT_EQ(CONTENT_SETTING_ASK, | |
| 852 otr_map->GetDefaultContentSetting( | |
| 853 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, NULL)); | |
| 854 EXPECT_EQ(CONTENT_SETTING_ASK, | |
| 855 otr_map->GetContentSetting( | |
| 856 host, host, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, | |
| 857 std::string())); | |
| 728 } | 858 } |
| 729 | 859 |
| 730 // For a single Unicode encoded pattern, check if it gets converted to punycode | 860 // For a single Unicode encoded pattern, check if it gets converted to punycode |
| 731 // and old pattern gets deleted. | 861 // and old pattern gets deleted. |
| 732 TEST_F(HostContentSettingsMapTest, CanonicalizeExceptionsUnicodeOnly) { | 862 TEST_F(HostContentSettingsMapTest, CanonicalizeExceptionsUnicodeOnly) { |
| 733 TestingProfile profile; | 863 TestingProfile profile; |
| 734 PrefService* prefs = profile.GetPrefs(); | 864 PrefService* prefs = profile.GetPrefs(); |
| 735 | 865 |
| 736 // Set utf-8 data. | 866 // Set utf-8 data. |
| 737 { | 867 { |
| (...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1033 EXPECT_EQ(CONTENT_SETTING_ALLOW, | 1163 EXPECT_EQ(CONTENT_SETTING_ALLOW, |
| 1034 host_content_settings_map->GetContentSetting( | 1164 host_content_settings_map->GetContentSetting( |
| 1035 host, host, CONTENT_SETTINGS_TYPE_IMAGES, std::string())); | 1165 host, host, CONTENT_SETTINGS_TYPE_IMAGES, std::string())); |
| 1036 host_content_settings_map->SetContentSetting( | 1166 host_content_settings_map->SetContentSetting( |
| 1037 pattern, | 1167 pattern, |
| 1038 ContentSettingsPattern::Wildcard(), | 1168 ContentSettingsPattern::Wildcard(), |
| 1039 CONTENT_SETTINGS_TYPE_IMAGES, | 1169 CONTENT_SETTINGS_TYPE_IMAGES, |
| 1040 std::string(), | 1170 std::string(), |
| 1041 CONTENT_SETTING_DEFAULT); | 1171 CONTENT_SETTING_DEFAULT); |
| 1042 } | 1172 } |
| OLD | NEW |