Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(41)

Side by Side Diff: chrome/browser/extensions/extension_service.cc

Issue 22799016: Kill NOTIFICATION_EXTENSION_REMOVED (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 1204 matching lines...) Expand 10 before | Expand all | Expand 10 after
1215 GetFileSystemContext(); 1215 GetFileSystemContext();
1216 if (filesystem_context && filesystem_context->external_backend()) { 1216 if (filesystem_context && filesystem_context->external_backend()) {
1217 filesystem_context->external_backend()-> 1217 filesystem_context->external_backend()->
1218 RevokeAccessForExtension(extension->id()); 1218 RevokeAccessForExtension(extension->id());
1219 } 1219 }
1220 #endif 1220 #endif
1221 1221
1222 UpdateActiveExtensionsInCrashReporter(); 1222 UpdateActiveExtensionsInCrashReporter();
1223 } 1223 }
1224 1224
1225 void ExtensionService::NotifyExtensionRemoved(const Extension* extension) {
1226 for (size_t i = 0; i < extension_removed_callbacks_.size(); ++i) {
1227 if (!extension_removed_callbacks_[i].is_null())
1228 extension_removed_callbacks_[i].Run(extension);
1229 }
1230 }
1231
1225 Profile* ExtensionService::profile() { 1232 Profile* ExtensionService::profile() {
1226 return profile_; 1233 return profile_;
1227 } 1234 }
1228 1235
1229 extensions::ExtensionPrefs* ExtensionService::extension_prefs() { 1236 extensions::ExtensionPrefs* ExtensionService::extension_prefs() {
1230 return extension_prefs_; 1237 return extension_prefs_;
1231 } 1238 }
1232 1239
1233 extensions::SettingsFrontend* ExtensionService::settings_frontend() { 1240 extensions::SettingsFrontend* ExtensionService::settings_frontend() {
1234 return settings_frontend_.get(); 1241 return settings_frontend_.get();
(...skipping 714 matching lines...) Expand 10 before | Expand all | Expand 10 after
1949 // Make sure the profile cleans up its RequestContexts when an already 1956 // Make sure the profile cleans up its RequestContexts when an already
1950 // disabled extension is unloaded (since they are also tracking the disabled 1957 // disabled extension is unloaded (since they are also tracking the disabled
1951 // extensions). 1958 // extensions).
1952 system_->UnregisterExtensionWithRequestContexts(extension_id, reason); 1959 system_->UnregisterExtensionWithRequestContexts(extension_id, reason);
1953 } else { 1960 } else {
1954 // Remove the extension from our list. 1961 // Remove the extension from our list.
1955 extensions_.Remove(extension->id()); 1962 extensions_.Remove(extension->id());
1956 NotifyExtensionUnloaded(extension.get(), reason); 1963 NotifyExtensionUnloaded(extension.get(), reason);
1957 } 1964 }
1958 1965
1959 content::NotificationService::current()->Notify( 1966 NotifyExtensionRemoved(extension.get());
1960 chrome::NOTIFICATION_EXTENSION_REMOVED,
1961 content::Source<Profile>(profile_),
1962 content::Details<const Extension>(extension.get()));
1963 } 1967 }
1964 1968
1965 void ExtensionService::UnloadAllExtensions() { 1969 void ExtensionService::UnloadAllExtensions() {
1966 profile_->GetExtensionSpecialStoragePolicy()->RevokeRightsForAllExtensions(); 1970 profile_->GetExtensionSpecialStoragePolicy()->RevokeRightsForAllExtensions();
1967 1971
1968 extensions_.Clear(); 1972 extensions_.Clear();
1969 disabled_extensions_.Clear(); 1973 disabled_extensions_.Clear();
1970 terminated_extensions_.Clear(); 1974 terminated_extensions_.Clear();
1971 extension_runtime_data_.clear(); 1975 extension_runtime_data_.clear();
1972 1976
(...skipping 671 matching lines...) Expand 10 before | Expand all | Expand 10 after
2644 if (!terminated_extensions_.Contains(extension->id())) 2648 if (!terminated_extensions_.Contains(extension->id()))
2645 terminated_extensions_.Insert(make_scoped_refptr(extension)); 2649 terminated_extensions_.Insert(make_scoped_refptr(extension));
2646 2650
2647 UnloadExtension(extension->id(), extension_misc::UNLOAD_REASON_TERMINATE); 2651 UnloadExtension(extension->id(), extension_misc::UNLOAD_REASON_TERMINATE);
2648 } 2652 }
2649 2653
2650 void ExtensionService::UntrackTerminatedExtension(const std::string& id) { 2654 void ExtensionService::UntrackTerminatedExtension(const std::string& id) {
2651 std::string lowercase_id = StringToLowerASCII(id); 2655 std::string lowercase_id = StringToLowerASCII(id);
2652 const Extension* extension = terminated_extensions_.GetByID(lowercase_id); 2656 const Extension* extension = terminated_extensions_.GetByID(lowercase_id);
2653 terminated_extensions_.Remove(lowercase_id); 2657 terminated_extensions_.Remove(lowercase_id);
2654 if (extension) { 2658 if (extension)
2655 content::NotificationService::current()->Notify( 2659 NotifyExtensionRemoved(extension);
2656 chrome::NOTIFICATION_EXTENSION_REMOVED,
2657 content::Source<Profile>(profile_),
2658 content::Details<const Extension>(extension));
2659 }
2660 } 2660 }
2661 2661
2662 const Extension* ExtensionService::GetTerminatedExtension( 2662 const Extension* ExtensionService::GetTerminatedExtension(
2663 const std::string& id) const { 2663 const std::string& id) const {
2664 return GetExtensionById(id, INCLUDE_TERMINATED); 2664 return GetExtensionById(id, INCLUDE_TERMINATED);
2665 } 2665 }
2666 2666
2667 const Extension* ExtensionService::GetInstalledExtension( 2667 const Extension* ExtensionService::GetInstalledExtension(
2668 const std::string& id) const { 2668 const std::string& id) const {
2669 int include_mask = INCLUDE_ENABLED | 2669 int include_mask = INCLUDE_ENABLED |
(...skipping 498 matching lines...) Expand 10 before | Expand all | Expand 10 after
3168 } 3168 }
3169 3169
3170 void ExtensionService::AddUpdateObserver(extensions::UpdateObserver* observer) { 3170 void ExtensionService::AddUpdateObserver(extensions::UpdateObserver* observer) {
3171 update_observers_.AddObserver(observer); 3171 update_observers_.AddObserver(observer);
3172 } 3172 }
3173 3173
3174 void ExtensionService::RemoveUpdateObserver( 3174 void ExtensionService::RemoveUpdateObserver(
3175 extensions::UpdateObserver* observer) { 3175 extensions::UpdateObserver* observer) {
3176 update_observers_.RemoveObserver(observer); 3176 update_observers_.RemoveObserver(observer);
3177 } 3177 }
3178
3179 void ExtensionService::RegisterExtensionRemovedCallback(
3180 const base::Callback<void(const extensions::Extension*)>& callback) {
3181 extension_removed_callbacks_.push_back(callback);
3182 }
3183
3184 void ExtensionService::RemoveExtensionRemovedCallback(
3185 const base::Callback<void(const extensions::Extension*)>& callback) {
3186 for (size_t i = 0; i < extension_removed_callbacks_.size(); ++i) {
3187 if (extension_removed_callbacks_[i].Equals(callback)) {
3188 extension_removed_callbacks_.erase(
3189 extension_removed_callbacks_.begin() + i);
3190 return;
3191 }
3192 }
3193 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698