OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "extensions/browser/extension_prefs.h" | 5 #include "extensions/browser/extension_prefs.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <iterator> | 10 #include <iterator> |
(...skipping 655 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
666 new_value.scriptable_hosts()); | 666 new_value.scriptable_hosts()); |
667 } | 667 } |
668 } | 668 } |
669 | 669 |
670 int ExtensionPrefs::IncrementAcknowledgePromptCount( | 670 int ExtensionPrefs::IncrementAcknowledgePromptCount( |
671 const std::string& extension_id) { | 671 const std::string& extension_id) { |
672 int count = 0; | 672 int count = 0; |
673 ReadPrefAsInteger(extension_id, kPrefAcknowledgePromptCount, &count); | 673 ReadPrefAsInteger(extension_id, kPrefAcknowledgePromptCount, &count); |
674 ++count; | 674 ++count; |
675 UpdateExtensionPref(extension_id, kPrefAcknowledgePromptCount, | 675 UpdateExtensionPref(extension_id, kPrefAcknowledgePromptCount, |
676 new base::FundamentalValue(count)); | 676 new base::Value(count)); |
677 return count; | 677 return count; |
678 } | 678 } |
679 | 679 |
680 bool ExtensionPrefs::IsExternalExtensionAcknowledged( | 680 bool ExtensionPrefs::IsExternalExtensionAcknowledged( |
681 const std::string& extension_id) const { | 681 const std::string& extension_id) const { |
682 return ReadPrefAsBooleanAndReturn(extension_id, kPrefExternalAcknowledged); | 682 return ReadPrefAsBooleanAndReturn(extension_id, kPrefExternalAcknowledged); |
683 } | 683 } |
684 | 684 |
685 void ExtensionPrefs::AcknowledgeExternalExtension( | 685 void ExtensionPrefs::AcknowledgeExternalExtension( |
686 const std::string& extension_id) { | 686 const std::string& extension_id) { |
687 DCHECK(crx_file::id_util::IdIsValid(extension_id)); | 687 DCHECK(crx_file::id_util::IdIsValid(extension_id)); |
688 UpdateExtensionPref(extension_id, kPrefExternalAcknowledged, | 688 UpdateExtensionPref(extension_id, kPrefExternalAcknowledged, |
689 new base::FundamentalValue(true)); | 689 new base::Value(true)); |
690 UpdateExtensionPref(extension_id, kPrefAcknowledgePromptCount, NULL); | 690 UpdateExtensionPref(extension_id, kPrefAcknowledgePromptCount, NULL); |
691 } | 691 } |
692 | 692 |
693 bool ExtensionPrefs::IsBlacklistedExtensionAcknowledged( | 693 bool ExtensionPrefs::IsBlacklistedExtensionAcknowledged( |
694 const std::string& extension_id) const { | 694 const std::string& extension_id) const { |
695 return ReadPrefAsBooleanAndReturn(extension_id, kPrefBlacklistAcknowledged); | 695 return ReadPrefAsBooleanAndReturn(extension_id, kPrefBlacklistAcknowledged); |
696 } | 696 } |
697 | 697 |
698 void ExtensionPrefs::AcknowledgeBlacklistedExtension( | 698 void ExtensionPrefs::AcknowledgeBlacklistedExtension( |
699 const std::string& extension_id) { | 699 const std::string& extension_id) { |
700 DCHECK(crx_file::id_util::IdIsValid(extension_id)); | 700 DCHECK(crx_file::id_util::IdIsValid(extension_id)); |
701 UpdateExtensionPref(extension_id, kPrefBlacklistAcknowledged, | 701 UpdateExtensionPref(extension_id, kPrefBlacklistAcknowledged, |
702 new base::FundamentalValue(true)); | 702 new base::Value(true)); |
703 UpdateExtensionPref(extension_id, kPrefAcknowledgePromptCount, NULL); | 703 UpdateExtensionPref(extension_id, kPrefAcknowledgePromptCount, NULL); |
704 } | 704 } |
705 | 705 |
706 bool ExtensionPrefs::IsExternalInstallFirstRun( | 706 bool ExtensionPrefs::IsExternalInstallFirstRun( |
707 const std::string& extension_id) const { | 707 const std::string& extension_id) const { |
708 return ReadPrefAsBooleanAndReturn(extension_id, kPrefExternalInstallFirstRun); | 708 return ReadPrefAsBooleanAndReturn(extension_id, kPrefExternalInstallFirstRun); |
709 } | 709 } |
710 | 710 |
711 void ExtensionPrefs::SetExternalInstallFirstRun( | 711 void ExtensionPrefs::SetExternalInstallFirstRun( |
712 const std::string& extension_id) { | 712 const std::string& extension_id) { |
713 DCHECK(crx_file::id_util::IdIsValid(extension_id)); | 713 DCHECK(crx_file::id_util::IdIsValid(extension_id)); |
714 UpdateExtensionPref(extension_id, kPrefExternalInstallFirstRun, | 714 UpdateExtensionPref(extension_id, kPrefExternalInstallFirstRun, |
715 new base::FundamentalValue(true)); | 715 new base::Value(true)); |
716 } | 716 } |
717 | 717 |
718 bool ExtensionPrefs::SetAlertSystemFirstRun() { | 718 bool ExtensionPrefs::SetAlertSystemFirstRun() { |
719 if (prefs_->GetBoolean(pref_names::kAlertsInitialized)) { | 719 if (prefs_->GetBoolean(pref_names::kAlertsInitialized)) { |
720 return true; | 720 return true; |
721 } | 721 } |
722 prefs_->SetBoolean(pref_names::kAlertsInitialized, true); | 722 prefs_->SetBoolean(pref_names::kAlertsInitialized, true); |
723 return false; | 723 return false; |
724 } | 724 } |
725 | 725 |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
792 new_value = Extension::DISABLE_NONE; | 792 new_value = Extension::DISABLE_NONE; |
793 break; | 793 break; |
794 } | 794 } |
795 | 795 |
796 if (old_value == new_value) // no change, return. | 796 if (old_value == new_value) // no change, return. |
797 return; | 797 return; |
798 | 798 |
799 if (new_value == Extension::DISABLE_NONE) { | 799 if (new_value == Extension::DISABLE_NONE) { |
800 UpdateExtensionPref(extension_id, kPrefDisableReasons, NULL); | 800 UpdateExtensionPref(extension_id, kPrefDisableReasons, NULL); |
801 } else { | 801 } else { |
802 UpdateExtensionPref(extension_id, | 802 UpdateExtensionPref(extension_id, kPrefDisableReasons, |
803 kPrefDisableReasons, | 803 new base::Value(new_value)); |
804 new base::FundamentalValue(new_value)); | |
805 } | 804 } |
806 | 805 |
807 for (auto& observer : observer_list_) | 806 for (auto& observer : observer_list_) |
808 observer.OnExtensionDisableReasonsChanged(extension_id, new_value); | 807 observer.OnExtensionDisableReasonsChanged(extension_id, new_value); |
809 } | 808 } |
810 | 809 |
811 std::set<std::string> ExtensionPrefs::GetBlacklistedExtensions() const { | 810 std::set<std::string> ExtensionPrefs::GetBlacklistedExtensions() const { |
812 std::set<std::string> ids; | 811 std::set<std::string> ids; |
813 | 812 |
814 const base::DictionaryValue* extensions = | 813 const base::DictionaryValue* extensions = |
(...skipping 20 matching lines...) Expand all Loading... |
835 bool is_blacklisted) { | 834 bool is_blacklisted) { |
836 bool currently_blacklisted = IsExtensionBlacklisted(extension_id); | 835 bool currently_blacklisted = IsExtensionBlacklisted(extension_id); |
837 if (is_blacklisted == currently_blacklisted) | 836 if (is_blacklisted == currently_blacklisted) |
838 return; | 837 return; |
839 | 838 |
840 // Always make sure the "acknowledged" bit is cleared since the blacklist bit | 839 // Always make sure the "acknowledged" bit is cleared since the blacklist bit |
841 // is changing. | 840 // is changing. |
842 UpdateExtensionPref(extension_id, kPrefBlacklistAcknowledged, NULL); | 841 UpdateExtensionPref(extension_id, kPrefBlacklistAcknowledged, NULL); |
843 | 842 |
844 if (is_blacklisted) { | 843 if (is_blacklisted) { |
845 UpdateExtensionPref(extension_id, | 844 UpdateExtensionPref(extension_id, kPrefBlacklist, new base::Value(true)); |
846 kPrefBlacklist, | |
847 new base::FundamentalValue(true)); | |
848 } else { | 845 } else { |
849 UpdateExtensionPref(extension_id, kPrefBlacklist, NULL); | 846 UpdateExtensionPref(extension_id, kPrefBlacklist, NULL); |
850 const base::DictionaryValue* dict = GetExtensionPref(extension_id); | 847 const base::DictionaryValue* dict = GetExtensionPref(extension_id); |
851 if (dict && dict->empty()) | 848 if (dict && dict->empty()) |
852 DeleteExtensionPrefs(extension_id); | 849 DeleteExtensionPrefs(extension_id); |
853 } | 850 } |
854 } | 851 } |
855 | 852 |
856 bool ExtensionPrefs::IsExtensionBlacklisted(const std::string& id) const { | 853 bool ExtensionPrefs::IsExtensionBlacklisted(const std::string& id) const { |
857 const base::DictionaryValue* ext_prefs = GetExtensionPref(id); | 854 const base::DictionaryValue* ext_prefs = GetExtensionPref(id); |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
942 bool ExtensionPrefs::GetActiveBit(const std::string& extension_id) const { | 939 bool ExtensionPrefs::GetActiveBit(const std::string& extension_id) const { |
943 const base::DictionaryValue* dictionary = GetExtensionPref(extension_id); | 940 const base::DictionaryValue* dictionary = GetExtensionPref(extension_id); |
944 bool result = false; | 941 bool result = false; |
945 if (dictionary && dictionary->GetBoolean(kActiveBit, &result)) | 942 if (dictionary && dictionary->GetBoolean(kActiveBit, &result)) |
946 return result; | 943 return result; |
947 return false; | 944 return false; |
948 } | 945 } |
949 | 946 |
950 void ExtensionPrefs::SetActiveBit(const std::string& extension_id, | 947 void ExtensionPrefs::SetActiveBit(const std::string& extension_id, |
951 bool active) { | 948 bool active) { |
952 UpdateExtensionPref(extension_id, kActiveBit, | 949 UpdateExtensionPref(extension_id, kActiveBit, new base::Value(active)); |
953 new base::FundamentalValue(active)); | |
954 } | 950 } |
955 | 951 |
956 std::unique_ptr<const PermissionSet> ExtensionPrefs::GetGrantedPermissions( | 952 std::unique_ptr<const PermissionSet> ExtensionPrefs::GetGrantedPermissions( |
957 const std::string& extension_id) const { | 953 const std::string& extension_id) const { |
958 CHECK(crx_file::id_util::IdIsValid(extension_id)); | 954 CHECK(crx_file::id_util::IdIsValid(extension_id)); |
959 return ReadPrefAsPermissionSet(extension_id, kPrefGrantedPermissions); | 955 return ReadPrefAsPermissionSet(extension_id, kPrefGrantedPermissions); |
960 } | 956 } |
961 | 957 |
962 void ExtensionPrefs::AddGrantedPermissions(const std::string& extension_id, | 958 void ExtensionPrefs::AddGrantedPermissions(const std::string& extension_id, |
963 const PermissionSet& permissions) { | 959 const PermissionSet& permissions) { |
(...skipping 29 matching lines...) Expand all Loading... |
993 } | 989 } |
994 | 990 |
995 void ExtensionPrefs::SetActivePermissions(const std::string& extension_id, | 991 void ExtensionPrefs::SetActivePermissions(const std::string& extension_id, |
996 const PermissionSet& permissions) { | 992 const PermissionSet& permissions) { |
997 SetExtensionPrefPermissionSet( | 993 SetExtensionPrefPermissionSet( |
998 extension_id, kPrefActivePermissions, permissions); | 994 extension_id, kPrefActivePermissions, permissions); |
999 } | 995 } |
1000 | 996 |
1001 void ExtensionPrefs::SetExtensionRunning(const std::string& extension_id, | 997 void ExtensionPrefs::SetExtensionRunning(const std::string& extension_id, |
1002 bool is_running) { | 998 bool is_running) { |
1003 base::Value* value = new base::FundamentalValue(is_running); | 999 base::Value* value = new base::Value(is_running); |
1004 UpdateExtensionPref(extension_id, kPrefRunning, value); | 1000 UpdateExtensionPref(extension_id, kPrefRunning, value); |
1005 } | 1001 } |
1006 | 1002 |
1007 bool ExtensionPrefs::IsExtensionRunning(const std::string& extension_id) const { | 1003 bool ExtensionPrefs::IsExtensionRunning(const std::string& extension_id) const { |
1008 const base::DictionaryValue* extension = GetExtensionPref(extension_id); | 1004 const base::DictionaryValue* extension = GetExtensionPref(extension_id); |
1009 if (!extension) | 1005 if (!extension) |
1010 return false; | 1006 return false; |
1011 bool running = false; | 1007 bool running = false; |
1012 extension->GetBoolean(kPrefRunning, &running); | 1008 extension->GetBoolean(kPrefRunning, &running); |
1013 return running; | 1009 return running; |
1014 } | 1010 } |
1015 | 1011 |
1016 void ExtensionPrefs::SetIsActive(const std::string& extension_id, | 1012 void ExtensionPrefs::SetIsActive(const std::string& extension_id, |
1017 bool is_active) { | 1013 bool is_active) { |
1018 base::Value* value = new base::FundamentalValue(is_active); | 1014 base::Value* value = new base::Value(is_active); |
1019 UpdateExtensionPref(extension_id, kIsActive, value); | 1015 UpdateExtensionPref(extension_id, kIsActive, value); |
1020 } | 1016 } |
1021 | 1017 |
1022 bool ExtensionPrefs::IsActive(const std::string& extension_id) const { | 1018 bool ExtensionPrefs::IsActive(const std::string& extension_id) const { |
1023 const base::DictionaryValue* extension = GetExtensionPref(extension_id); | 1019 const base::DictionaryValue* extension = GetExtensionPref(extension_id); |
1024 if (!extension) | 1020 if (!extension) |
1025 return false; | 1021 return false; |
1026 bool is_active = false; | 1022 bool is_active = false; |
1027 extension->GetBoolean(kIsActive, &is_active); | 1023 extension->GetBoolean(kIsActive, &is_active); |
1028 return is_active; | 1024 return is_active; |
1029 } | 1025 } |
1030 | 1026 |
1031 bool ExtensionPrefs::IsIncognitoEnabled(const std::string& extension_id) const { | 1027 bool ExtensionPrefs::IsIncognitoEnabled(const std::string& extension_id) const { |
1032 return ReadPrefAsBooleanAndReturn(extension_id, kPrefIncognitoEnabled); | 1028 return ReadPrefAsBooleanAndReturn(extension_id, kPrefIncognitoEnabled); |
1033 } | 1029 } |
1034 | 1030 |
1035 void ExtensionPrefs::SetIsIncognitoEnabled(const std::string& extension_id, | 1031 void ExtensionPrefs::SetIsIncognitoEnabled(const std::string& extension_id, |
1036 bool enabled) { | 1032 bool enabled) { |
1037 UpdateExtensionPref(extension_id, kPrefIncognitoEnabled, | 1033 UpdateExtensionPref(extension_id, kPrefIncognitoEnabled, |
1038 new base::FundamentalValue(enabled)); | 1034 new base::Value(enabled)); |
1039 extension_pref_value_map_->SetExtensionIncognitoState(extension_id, enabled); | 1035 extension_pref_value_map_->SetExtensionIncognitoState(extension_id, enabled); |
1040 } | 1036 } |
1041 | 1037 |
1042 bool ExtensionPrefs::AllowFileAccess(const std::string& extension_id) const { | 1038 bool ExtensionPrefs::AllowFileAccess(const std::string& extension_id) const { |
1043 return ReadPrefAsBooleanAndReturn(extension_id, kPrefAllowFileAccess); | 1039 return ReadPrefAsBooleanAndReturn(extension_id, kPrefAllowFileAccess); |
1044 } | 1040 } |
1045 | 1041 |
1046 void ExtensionPrefs::SetAllowFileAccess(const std::string& extension_id, | 1042 void ExtensionPrefs::SetAllowFileAccess(const std::string& extension_id, |
1047 bool allow) { | 1043 bool allow) { |
1048 UpdateExtensionPref(extension_id, kPrefAllowFileAccess, | 1044 UpdateExtensionPref(extension_id, kPrefAllowFileAccess, |
1049 new base::FundamentalValue(allow)); | 1045 new base::Value(allow)); |
1050 } | 1046 } |
1051 | 1047 |
1052 bool ExtensionPrefs::HasAllowFileAccessSetting( | 1048 bool ExtensionPrefs::HasAllowFileAccessSetting( |
1053 const std::string& extension_id) const { | 1049 const std::string& extension_id) const { |
1054 const base::DictionaryValue* ext = GetExtensionPref(extension_id); | 1050 const base::DictionaryValue* ext = GetExtensionPref(extension_id); |
1055 return ext && ext->HasKey(kPrefAllowFileAccess); | 1051 return ext && ext->HasKey(kPrefAllowFileAccess); |
1056 } | 1052 } |
1057 | 1053 |
1058 bool ExtensionPrefs::DoesExtensionHaveState( | 1054 bool ExtensionPrefs::DoesExtensionHaveState( |
1059 const std::string& id, Extension::State check_state) const { | 1055 const std::string& id, Extension::State check_state) const { |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1113 void ExtensionPrefs::OnExtensionUninstalled(const std::string& extension_id, | 1109 void ExtensionPrefs::OnExtensionUninstalled(const std::string& extension_id, |
1114 const Manifest::Location& location, | 1110 const Manifest::Location& location, |
1115 bool external_uninstall) { | 1111 bool external_uninstall) { |
1116 app_sorting()->ClearOrdinals(extension_id); | 1112 app_sorting()->ClearOrdinals(extension_id); |
1117 | 1113 |
1118 // For external extensions, we save a preference reminding ourself not to try | 1114 // For external extensions, we save a preference reminding ourself not to try |
1119 // and install the extension anymore (except when |external_uninstall| is | 1115 // and install the extension anymore (except when |external_uninstall| is |
1120 // true, which signifies that the registry key was deleted or the pref file | 1116 // true, which signifies that the registry key was deleted or the pref file |
1121 // no longer lists the extension). | 1117 // no longer lists the extension). |
1122 if (!external_uninstall && Manifest::IsExternalLocation(location)) { | 1118 if (!external_uninstall && Manifest::IsExternalLocation(location)) { |
1123 UpdateExtensionPref(extension_id, kPrefState, | 1119 UpdateExtensionPref( |
1124 new base::FundamentalValue( | 1120 extension_id, kPrefState, |
1125 Extension::EXTERNAL_EXTENSION_UNINSTALLED)); | 1121 new base::Value(Extension::EXTERNAL_EXTENSION_UNINSTALLED)); |
1126 extension_pref_value_map_->SetExtensionState(extension_id, false); | 1122 extension_pref_value_map_->SetExtensionState(extension_id, false); |
1127 for (auto& observer : observer_list_) | 1123 for (auto& observer : observer_list_) |
1128 observer.OnExtensionStateChanged(extension_id, false); | 1124 observer.OnExtensionStateChanged(extension_id, false); |
1129 } else { | 1125 } else { |
1130 DeleteExtensionPrefs(extension_id); | 1126 DeleteExtensionPrefs(extension_id); |
1131 } | 1127 } |
1132 } | 1128 } |
1133 | 1129 |
1134 void ExtensionPrefs::SetExtensionEnabled(const std::string& extension_id) { | 1130 void ExtensionPrefs::SetExtensionEnabled(const std::string& extension_id) { |
1135 UpdateExtensionPref(extension_id, kPrefState, | 1131 UpdateExtensionPref(extension_id, kPrefState, |
1136 new base::FundamentalValue(Extension::ENABLED)); | 1132 new base::Value(Extension::ENABLED)); |
1137 extension_pref_value_map_->SetExtensionState(extension_id, true); | 1133 extension_pref_value_map_->SetExtensionState(extension_id, true); |
1138 UpdateExtensionPref(extension_id, kPrefDisableReasons, nullptr); | 1134 UpdateExtensionPref(extension_id, kPrefDisableReasons, nullptr); |
1139 for (auto& observer : observer_list_) | 1135 for (auto& observer : observer_list_) |
1140 observer.OnExtensionStateChanged(extension_id, true); | 1136 observer.OnExtensionStateChanged(extension_id, true); |
1141 } | 1137 } |
1142 | 1138 |
1143 void ExtensionPrefs::SetExtensionDisabled(const std::string& extension_id, | 1139 void ExtensionPrefs::SetExtensionDisabled(const std::string& extension_id, |
1144 int disable_reasons) { | 1140 int disable_reasons) { |
1145 if (!IsExternalExtensionUninstalled(extension_id)) { | 1141 if (!IsExternalExtensionUninstalled(extension_id)) { |
1146 UpdateExtensionPref(extension_id, kPrefState, | 1142 UpdateExtensionPref(extension_id, kPrefState, |
1147 new base::FundamentalValue(Extension::DISABLED)); | 1143 new base::Value(Extension::DISABLED)); |
1148 extension_pref_value_map_->SetExtensionState(extension_id, false); | 1144 extension_pref_value_map_->SetExtensionState(extension_id, false); |
1149 } | 1145 } |
1150 UpdateExtensionPref(extension_id, kPrefDisableReasons, | 1146 UpdateExtensionPref(extension_id, kPrefDisableReasons, |
1151 new base::FundamentalValue(disable_reasons)); | 1147 new base::Value(disable_reasons)); |
1152 for (auto& observer : observer_list_) | 1148 for (auto& observer : observer_list_) |
1153 observer.OnExtensionStateChanged(extension_id, false); | 1149 observer.OnExtensionStateChanged(extension_id, false); |
1154 } | 1150 } |
1155 | 1151 |
1156 void ExtensionPrefs::SetExtensionBlacklistState(const std::string& extension_id, | 1152 void ExtensionPrefs::SetExtensionBlacklistState(const std::string& extension_id, |
1157 BlacklistState state) { | 1153 BlacklistState state) { |
1158 SetExtensionBlacklisted(extension_id, state == BLACKLISTED_MALWARE); | 1154 SetExtensionBlacklisted(extension_id, state == BLACKLISTED_MALWARE); |
1159 UpdateExtensionPref(extension_id, kPrefBlacklistState, | 1155 UpdateExtensionPref(extension_id, kPrefBlacklistState, |
1160 new base::FundamentalValue(state)); | 1156 new base::Value(state)); |
1161 } | 1157 } |
1162 | 1158 |
1163 BlacklistState ExtensionPrefs::GetExtensionBlacklistState( | 1159 BlacklistState ExtensionPrefs::GetExtensionBlacklistState( |
1164 const std::string& extension_id) const { | 1160 const std::string& extension_id) const { |
1165 if (IsExtensionBlacklisted(extension_id)) | 1161 if (IsExtensionBlacklisted(extension_id)) |
1166 return BLACKLISTED_MALWARE; | 1162 return BLACKLISTED_MALWARE; |
1167 const base::DictionaryValue* ext_prefs = GetExtensionPref(extension_id); | 1163 const base::DictionaryValue* ext_prefs = GetExtensionPref(extension_id); |
1168 int int_value = 0; | 1164 int int_value = 0; |
1169 if (ext_prefs && ext_prefs->GetInteger(kPrefBlacklistState, &int_value)) | 1165 if (ext_prefs && ext_prefs->GetInteger(kPrefBlacklistState, &int_value)) |
1170 return static_cast<BlacklistState>(int_value); | 1166 return static_cast<BlacklistState>(int_value); |
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1435 | 1431 |
1436 return extensions_info; | 1432 return extensions_info; |
1437 } | 1433 } |
1438 | 1434 |
1439 bool ExtensionPrefs::WasAppDraggedByUser( | 1435 bool ExtensionPrefs::WasAppDraggedByUser( |
1440 const std::string& extension_id) const { | 1436 const std::string& extension_id) const { |
1441 return ReadPrefAsBooleanAndReturn(extension_id, kPrefUserDraggedApp); | 1437 return ReadPrefAsBooleanAndReturn(extension_id, kPrefUserDraggedApp); |
1442 } | 1438 } |
1443 | 1439 |
1444 void ExtensionPrefs::SetAppDraggedByUser(const std::string& extension_id) { | 1440 void ExtensionPrefs::SetAppDraggedByUser(const std::string& extension_id) { |
1445 UpdateExtensionPref(extension_id, kPrefUserDraggedApp, | 1441 UpdateExtensionPref(extension_id, kPrefUserDraggedApp, new base::Value(true)); |
1446 new base::FundamentalValue(true)); | |
1447 } | 1442 } |
1448 | 1443 |
1449 bool ExtensionPrefs::IsFromWebStore( | 1444 bool ExtensionPrefs::IsFromWebStore( |
1450 const std::string& extension_id) const { | 1445 const std::string& extension_id) const { |
1451 const base::DictionaryValue* dictionary = GetExtensionPref(extension_id); | 1446 const base::DictionaryValue* dictionary = GetExtensionPref(extension_id); |
1452 bool result = false; | 1447 bool result = false; |
1453 if (dictionary && dictionary->GetBoolean(kPrefFromWebStore, &result)) | 1448 if (dictionary && dictionary->GetBoolean(kPrefFromWebStore, &result)) |
1454 return result; | 1449 return result; |
1455 return false; | 1450 return false; |
1456 } | 1451 } |
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1719 prefs_->SetInteger(kCorruptedDisableCount, count + 1); | 1714 prefs_->SetInteger(kCorruptedDisableCount, count + 1); |
1720 } | 1715 } |
1721 | 1716 |
1722 bool ExtensionPrefs::NeedsSync(const std::string& extension_id) const { | 1717 bool ExtensionPrefs::NeedsSync(const std::string& extension_id) const { |
1723 return ReadPrefAsBooleanAndReturn(extension_id, kPrefNeedsSync); | 1718 return ReadPrefAsBooleanAndReturn(extension_id, kPrefNeedsSync); |
1724 } | 1719 } |
1725 | 1720 |
1726 void ExtensionPrefs::SetNeedsSync(const std::string& extension_id, | 1721 void ExtensionPrefs::SetNeedsSync(const std::string& extension_id, |
1727 bool needs_sync) { | 1722 bool needs_sync) { |
1728 UpdateExtensionPref(extension_id, kPrefNeedsSync, | 1723 UpdateExtensionPref(extension_id, kPrefNeedsSync, |
1729 needs_sync ? new base::FundamentalValue(true) : nullptr); | 1724 needs_sync ? new base::Value(true) : nullptr); |
1730 } | 1725 } |
1731 | 1726 |
1732 ExtensionPrefs::ExtensionPrefs( | 1727 ExtensionPrefs::ExtensionPrefs( |
1733 content::BrowserContext* browser_context, | 1728 content::BrowserContext* browser_context, |
1734 PrefService* prefs, | 1729 PrefService* prefs, |
1735 const base::FilePath& root_dir, | 1730 const base::FilePath& root_dir, |
1736 ExtensionPrefValueMap* extension_pref_value_map, | 1731 ExtensionPrefValueMap* extension_pref_value_map, |
1737 std::unique_ptr<TimeProvider> time_provider, | 1732 std::unique_ptr<TimeProvider> time_provider, |
1738 bool extensions_disabled, | 1733 bool extensions_disabled, |
1739 const std::vector<ExtensionPrefsObserver*>& early_observers) | 1734 const std::vector<ExtensionPrefsObserver*>& early_observers) |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1836 } | 1831 } |
1837 } | 1832 } |
1838 | 1833 |
1839 void ExtensionPrefs::PopulateExtensionInfoPrefs( | 1834 void ExtensionPrefs::PopulateExtensionInfoPrefs( |
1840 const Extension* extension, | 1835 const Extension* extension, |
1841 const base::Time install_time, | 1836 const base::Time install_time, |
1842 Extension::State initial_state, | 1837 Extension::State initial_state, |
1843 int install_flags, | 1838 int install_flags, |
1844 const std::string& install_parameter, | 1839 const std::string& install_parameter, |
1845 base::DictionaryValue* extension_dict) const { | 1840 base::DictionaryValue* extension_dict) const { |
1846 extension_dict->Set(kPrefState, new base::FundamentalValue(initial_state)); | 1841 extension_dict->Set(kPrefState, new base::Value(initial_state)); |
1847 extension_dict->Set(kPrefLocation, | 1842 extension_dict->Set(kPrefLocation, new base::Value(extension->location())); |
1848 new base::FundamentalValue(extension->location())); | |
1849 extension_dict->Set(kPrefCreationFlags, | 1843 extension_dict->Set(kPrefCreationFlags, |
1850 new base::FundamentalValue(extension->creation_flags())); | 1844 new base::Value(extension->creation_flags())); |
1851 extension_dict->Set(kPrefFromWebStore, | 1845 extension_dict->Set(kPrefFromWebStore, |
1852 new base::FundamentalValue(extension->from_webstore())); | 1846 new base::Value(extension->from_webstore())); |
1853 extension_dict->Set(kPrefFromBookmark, | 1847 extension_dict->Set(kPrefFromBookmark, |
1854 new base::FundamentalValue(extension->from_bookmark())); | 1848 new base::Value(extension->from_bookmark())); |
1855 extension_dict->Set( | 1849 extension_dict->Set(kPrefWasInstalledByDefault, |
1856 kPrefWasInstalledByDefault, | 1850 new base::Value(extension->was_installed_by_default())); |
1857 new base::FundamentalValue(extension->was_installed_by_default())); | 1851 extension_dict->Set(kPrefWasInstalledByOem, |
1858 extension_dict->Set( | 1852 new base::Value(extension->was_installed_by_oem())); |
1859 kPrefWasInstalledByOem, | |
1860 new base::FundamentalValue(extension->was_installed_by_oem())); | |
1861 extension_dict->Set(kPrefInstallTime, | 1853 extension_dict->Set(kPrefInstallTime, |
1862 new base::StringValue( | 1854 new base::StringValue( |
1863 base::Int64ToString(install_time.ToInternalValue()))); | 1855 base::Int64ToString(install_time.ToInternalValue()))); |
1864 if (install_flags & kInstallFlagIsBlacklistedForMalware) | 1856 if (install_flags & kInstallFlagIsBlacklistedForMalware) |
1865 extension_dict->Set(kPrefBlacklist, new base::FundamentalValue(true)); | 1857 extension_dict->Set(kPrefBlacklist, new base::Value(true)); |
1866 | 1858 |
1867 base::FilePath::StringType path = MakePathRelative(install_directory_, | 1859 base::FilePath::StringType path = MakePathRelative(install_directory_, |
1868 extension->path()); | 1860 extension->path()); |
1869 extension_dict->Set(kPrefPath, new base::StringValue(path)); | 1861 extension_dict->Set(kPrefPath, new base::StringValue(path)); |
1870 if (!install_parameter.empty()) { | 1862 if (!install_parameter.empty()) { |
1871 extension_dict->Set(kPrefInstallParam, | 1863 extension_dict->Set(kPrefInstallParam, |
1872 new base::StringValue(install_parameter)); | 1864 new base::StringValue(install_parameter)); |
1873 } | 1865 } |
1874 // We store prefs about LOAD extensions, but don't cache their manifest | 1866 // We store prefs about LOAD extensions, but don't cache their manifest |
1875 // since it may change on disk. | 1867 // since it may change on disk. |
1876 if (!Manifest::IsUnpackedLocation(extension->location())) { | 1868 if (!Manifest::IsUnpackedLocation(extension->location())) { |
1877 extension_dict->Set(kPrefManifest, | 1869 extension_dict->Set(kPrefManifest, |
1878 extension->manifest()->value()->DeepCopy()); | 1870 extension->manifest()->value()->DeepCopy()); |
1879 } | 1871 } |
1880 | 1872 |
1881 // Only writes kPrefDoNotSync when it is not the default. | 1873 // Only writes kPrefDoNotSync when it is not the default. |
1882 if (install_flags & kInstallFlagDoNotSync) | 1874 if (install_flags & kInstallFlagDoNotSync) |
1883 extension_dict->Set(kPrefDoNotSync, new base::FundamentalValue(true)); | 1875 extension_dict->Set(kPrefDoNotSync, new base::Value(true)); |
1884 else | 1876 else |
1885 extension_dict->Remove(kPrefDoNotSync, NULL); | 1877 extension_dict->Remove(kPrefDoNotSync, NULL); |
1886 } | 1878 } |
1887 | 1879 |
1888 void ExtensionPrefs::InitExtensionControlledPrefs( | 1880 void ExtensionPrefs::InitExtensionControlledPrefs( |
1889 ExtensionPrefValueMap* value_map) { | 1881 ExtensionPrefValueMap* value_map) { |
1890 TRACE_EVENT0("browser,startup", | 1882 TRACE_EVENT0("browser,startup", |
1891 "ExtensionPrefs::InitExtensionControlledPrefs") | 1883 "ExtensionPrefs::InitExtensionControlledPrefs") |
1892 SCOPED_UMA_HISTOGRAM_TIMER("Extensions.InitExtensionControlledPrefsTime"); | 1884 SCOPED_UMA_HISTOGRAM_TIMER("Extensions.InitExtensionControlledPrefsTime"); |
1893 | 1885 |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1975 bool is_incognito_enabled = IsIncognitoEnabled(extension_id); | 1967 bool is_incognito_enabled = IsIncognitoEnabled(extension_id); |
1976 | 1968 |
1977 extension_pref_value_map_->RegisterExtension( | 1969 extension_pref_value_map_->RegisterExtension( |
1978 extension_id, install_time, is_enabled, is_incognito_enabled); | 1970 extension_id, install_time, is_enabled, is_incognito_enabled); |
1979 | 1971 |
1980 for (auto& observer : observer_list_) | 1972 for (auto& observer : observer_list_) |
1981 observer.OnExtensionRegistered(extension_id, install_time, is_enabled); | 1973 observer.OnExtensionRegistered(extension_id, install_time, is_enabled); |
1982 } | 1974 } |
1983 | 1975 |
1984 } // namespace extensions | 1976 } // namespace extensions |
OLD | NEW |