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 = |
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 |