OLD | NEW |
---|---|
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/extensions/extension_service.h" | 5 #include "chrome/browser/extensions/extension_service.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <iterator> | 8 #include <iterator> |
9 #include <set> | 9 #include <set> |
10 | 10 |
(...skipping 959 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
970 extensions_.Remove(extension->id()); | 970 extensions_.Remove(extension->id()); |
971 NotifyExtensionUnloaded(extension, extension_misc::UNLOAD_REASON_DISABLE); | 971 NotifyExtensionUnloaded(extension, extension_misc::UNLOAD_REASON_DISABLE); |
972 } else { | 972 } else { |
973 terminated_extensions_.Remove(extension->id()); | 973 terminated_extensions_.Remove(extension->id()); |
974 } | 974 } |
975 | 975 |
976 SyncExtensionChangeIfNeeded(*extension); | 976 SyncExtensionChangeIfNeeded(*extension); |
977 } | 977 } |
978 | 978 |
979 void ExtensionService::DisableUserExtensions( | 979 void ExtensionService::DisableUserExtensions( |
980 const std::set<extensions::Manifest::Type> type_filter, | |
980 const std::vector<std::string>& except_ids) { | 981 const std::vector<std::string>& except_ids) { |
981 extensions::ManagementPolicy* management_policy = | 982 extensions::ManagementPolicy* management_policy = |
982 system_->management_policy(); | 983 system_->management_policy(); |
983 extensions::ExtensionList to_disable; | 984 extensions::ExtensionList to_disable; |
984 | 985 |
985 for (ExtensionSet::const_iterator extension = extensions_.begin(); | 986 for (ExtensionSet::const_iterator extension = extensions_.begin(); |
986 extension != extensions_.end(); ++extension) { | 987 extension != extensions_.end(); ++extension) { |
987 if (management_policy->UserMayModifySettings(extension->get(), NULL)) | 988 if (management_policy->UserMayModifySettings(extension->get(), NULL)) |
988 to_disable.push_back(*extension); | 989 to_disable.push_back(*extension); |
989 } | 990 } |
990 for (ExtensionSet::const_iterator extension = terminated_extensions_.begin(); | 991 for (ExtensionSet::const_iterator extension = terminated_extensions_.begin(); |
991 extension != terminated_extensions_.end(); ++extension) { | 992 extension != terminated_extensions_.end(); ++extension) { |
992 if (management_policy->UserMayModifySettings(extension->get(), NULL)) | 993 if (management_policy->UserMayModifySettings(extension->get(), NULL)) |
993 to_disable.push_back(*extension); | 994 to_disable.push_back(*extension); |
994 } | 995 } |
995 | 996 |
996 for (extensions::ExtensionList::const_iterator extension = to_disable.begin(); | 997 for (extensions::ExtensionList::const_iterator extension = to_disable.begin(); |
997 extension != to_disable.end(); ++extension) { | 998 extension != to_disable.end(); ++extension) { |
999 if (!(*extension)->manifest() || | |
vasilii
2013/08/02 09:32:04
I don't think it's possible.
battre
2013/08/02 10:36:21
Me neither, but I don't want to merge a crasher in
| |
1000 type_filter.end() == type_filter.find((*extension)->manifest()->type())) | |
vasilii
2013/08/02 09:32:04
(*extension)->GetType()?
battre
2013/08/02 10:36:21
Done.
| |
1001 continue; | |
998 const std::string& id = (*extension)->id(); | 1002 const std::string& id = (*extension)->id(); |
999 if (except_ids.end() == std::find(except_ids.begin(), except_ids.end(), id)) | 1003 if (except_ids.end() == std::find(except_ids.begin(), except_ids.end(), id)) |
1000 DisableExtension(id, extensions::Extension::DISABLE_USER_ACTION); | 1004 DisableExtension(id, extensions::Extension::DISABLE_USER_ACTION); |
1001 } | 1005 } |
1002 } | 1006 } |
1003 | 1007 |
1004 void ExtensionService::GrantPermissionsAndEnableExtension( | 1008 void ExtensionService::GrantPermissionsAndEnableExtension( |
1005 const Extension* extension) { | 1009 const Extension* extension) { |
1006 GrantPermissions(extension); | 1010 GrantPermissions(extension); |
1007 RecordPermissionMessagesHistogram( | 1011 RecordPermissionMessagesHistogram( |
(...skipping 2103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3111 } | 3115 } |
3112 | 3116 |
3113 void ExtensionService::AddUpdateObserver(extensions::UpdateObserver* observer) { | 3117 void ExtensionService::AddUpdateObserver(extensions::UpdateObserver* observer) { |
3114 update_observers_.AddObserver(observer); | 3118 update_observers_.AddObserver(observer); |
3115 } | 3119 } |
3116 | 3120 |
3117 void ExtensionService::RemoveUpdateObserver( | 3121 void ExtensionService::RemoveUpdateObserver( |
3118 extensions::UpdateObserver* observer) { | 3122 extensions::UpdateObserver* observer) { |
3119 update_observers_.RemoveObserver(observer); | 3123 update_observers_.RemoveObserver(observer); |
3120 } | 3124 } |
OLD | NEW |