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

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: Nit Created 7 years, 3 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 713 matching lines...) Expand 10 before | Expand all | Expand 10 after
1948 // Make sure the profile cleans up its RequestContexts when an already 1955 // Make sure the profile cleans up its RequestContexts when an already
1949 // disabled extension is unloaded (since they are also tracking the disabled 1956 // disabled extension is unloaded (since they are also tracking the disabled
1950 // extensions). 1957 // extensions).
1951 system_->UnregisterExtensionWithRequestContexts(extension_id, reason); 1958 system_->UnregisterExtensionWithRequestContexts(extension_id, reason);
1952 } else { 1959 } else {
1953 // Remove the extension from our list. 1960 // Remove the extension from our list.
1954 extensions_.Remove(extension->id()); 1961 extensions_.Remove(extension->id());
1955 NotifyExtensionUnloaded(extension.get(), reason); 1962 NotifyExtensionUnloaded(extension.get(), reason);
1956 } 1963 }
1957 1964
1958 content::NotificationService::current()->Notify( 1965 NotifyExtensionRemoved(extension.get());
1959 chrome::NOTIFICATION_EXTENSION_REMOVED,
1960 content::Source<Profile>(profile_),
1961 content::Details<const Extension>(extension.get()));
1962 } 1966 }
1963 1967
1964 void ExtensionService::UnloadAllExtensions() { 1968 void ExtensionService::UnloadAllExtensions() {
1965 profile_->GetExtensionSpecialStoragePolicy()->RevokeRightsForAllExtensions(); 1969 profile_->GetExtensionSpecialStoragePolicy()->RevokeRightsForAllExtensions();
1966 1970
1967 extensions_.Clear(); 1971 extensions_.Clear();
1968 disabled_extensions_.Clear(); 1972 disabled_extensions_.Clear();
1969 terminated_extensions_.Clear(); 1973 terminated_extensions_.Clear();
1970 extension_runtime_data_.clear(); 1974 extension_runtime_data_.clear();
1971 1975
(...skipping 671 matching lines...) Expand 10 before | Expand all | Expand 10 after
2643 if (!terminated_extensions_.Contains(extension->id())) 2647 if (!terminated_extensions_.Contains(extension->id()))
2644 terminated_extensions_.Insert(make_scoped_refptr(extension)); 2648 terminated_extensions_.Insert(make_scoped_refptr(extension));
2645 2649
2646 UnloadExtension(extension->id(), extension_misc::UNLOAD_REASON_TERMINATE); 2650 UnloadExtension(extension->id(), extension_misc::UNLOAD_REASON_TERMINATE);
2647 } 2651 }
2648 2652
2649 void ExtensionService::UntrackTerminatedExtension(const std::string& id) { 2653 void ExtensionService::UntrackTerminatedExtension(const std::string& id) {
2650 std::string lowercase_id = StringToLowerASCII(id); 2654 std::string lowercase_id = StringToLowerASCII(id);
2651 const Extension* extension = terminated_extensions_.GetByID(lowercase_id); 2655 const Extension* extension = terminated_extensions_.GetByID(lowercase_id);
2652 terminated_extensions_.Remove(lowercase_id); 2656 terminated_extensions_.Remove(lowercase_id);
2653 if (extension) { 2657 if (extension)
2654 content::NotificationService::current()->Notify( 2658 NotifyExtensionRemoved(extension);
2655 chrome::NOTIFICATION_EXTENSION_REMOVED,
2656 content::Source<Profile>(profile_),
2657 content::Details<const Extension>(extension));
2658 }
2659 } 2659 }
2660 2660
2661 const Extension* ExtensionService::GetTerminatedExtension( 2661 const Extension* ExtensionService::GetTerminatedExtension(
2662 const std::string& id) const { 2662 const std::string& id) const {
2663 return GetExtensionById(id, INCLUDE_TERMINATED); 2663 return GetExtensionById(id, INCLUDE_TERMINATED);
2664 } 2664 }
2665 2665
2666 const Extension* ExtensionService::GetInstalledExtension( 2666 const Extension* ExtensionService::GetInstalledExtension(
2667 const std::string& id) const { 2667 const std::string& id) const {
2668 int include_mask = INCLUDE_ENABLED | 2668 int include_mask = INCLUDE_ENABLED |
(...skipping 494 matching lines...) Expand 10 before | Expand all | Expand 10 after
3163 } 3163 }
3164 3164
3165 void ExtensionService::AddUpdateObserver(extensions::UpdateObserver* observer) { 3165 void ExtensionService::AddUpdateObserver(extensions::UpdateObserver* observer) {
3166 update_observers_.AddObserver(observer); 3166 update_observers_.AddObserver(observer);
3167 } 3167 }
3168 3168
3169 void ExtensionService::RemoveUpdateObserver( 3169 void ExtensionService::RemoveUpdateObserver(
3170 extensions::UpdateObserver* observer) { 3170 extensions::UpdateObserver* observer) {
3171 update_observers_.RemoveObserver(observer); 3171 update_observers_.RemoveObserver(observer);
3172 } 3172 }
3173
3174 void ExtensionService::RegisterExtensionRemovedCallback(
3175 const base::Callback<void(const extensions::Extension*)>& callback) {
3176 extension_removed_callbacks_.push_back(callback);
3177 }
3178
3179 void ExtensionService::RemoveExtensionRemovedCallback(
3180 const base::Callback<void(const extensions::Extension*)>& callback) {
3181 for (size_t i = 0; i < extension_removed_callbacks_.size(); ++i) {
3182 if (extension_removed_callbacks_[i].Equals(callback)) {
3183 extension_removed_callbacks_.erase(
3184 extension_removed_callbacks_.begin() + i);
3185 return;
3186 }
3187 }
3188 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_service.h ('k') | chrome/browser/extensions/external_install_ui.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698