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 1960 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1971 } | 1971 } |
1972 bool from_ephemeral = | 1972 bool from_ephemeral = |
1973 was_ephemeral && !extension_prefs_->IsEphemeralApp(extension->id()); | 1973 was_ephemeral && !extension_prefs_->IsEphemeralApp(extension->id()); |
1974 extensions::InstalledExtensionInfo details( | 1974 extensions::InstalledExtensionInfo details( |
1975 extension, is_update, from_ephemeral, old_name); | 1975 extension, is_update, from_ephemeral, old_name); |
1976 content::NotificationService::current()->Notify( | 1976 content::NotificationService::current()->Notify( |
1977 chrome::NOTIFICATION_EXTENSION_INSTALLED_DEPRECATED, | 1977 chrome::NOTIFICATION_EXTENSION_INSTALLED_DEPRECATED, |
1978 content::Source<Profile>(profile_), | 1978 content::Source<Profile>(profile_), |
1979 content::Details<const extensions::InstalledExtensionInfo>(&details)); | 1979 content::Details<const extensions::InstalledExtensionInfo>(&details)); |
1980 | 1980 |
1981 ExtensionRegistry::Get(profile_)->TriggerOnWillBeInstalled( | 1981 registry_->TriggerOnWillBeInstalled( |
1982 extension, is_update, from_ephemeral, old_name); | 1982 extension, is_update, from_ephemeral, old_name); |
1983 | 1983 |
1984 bool unacknowledged_external = IsUnacknowledgedExternalExtension(extension); | 1984 bool unacknowledged_external = IsUnacknowledgedExternalExtension(extension); |
1985 | 1985 |
1986 // Unpacked extensions default to allowing file access, but if that has been | 1986 // Unpacked extensions default to allowing file access, but if that has been |
1987 // overridden, don't reset the value. | 1987 // overridden, don't reset the value. |
1988 if (Manifest::ShouldAlwaysAllowFileAccess(extension->location()) && | 1988 if (Manifest::ShouldAlwaysAllowFileAccess(extension->location()) && |
1989 !extension_prefs_->HasAllowFileAccessSetting(extension->id())) { | 1989 !extension_prefs_->HasAllowFileAccessSetting(extension->id())) { |
1990 extension_prefs_->SetAllowFileAccess(extension->id(), true); | 1990 extension_prefs_->SetAllowFileAccess(extension->id(), true); |
1991 } | 1991 } |
1992 | 1992 |
1993 AddExtension(extension); | 1993 AddExtension(extension); |
1994 | 1994 |
| 1995 // Notify observers that need to know when an installation is complete. |
| 1996 registry_->TriggerOnInstalled(extension); |
| 1997 |
1995 // If this is a new external extension that was disabled, alert the user | 1998 // If this is a new external extension that was disabled, alert the user |
1996 // so he can reenable it. We do this last so that it has already been | 1999 // so he can reenable it. We do this last so that it has already been |
1997 // added to our list of extensions. | 2000 // added to our list of extensions. |
1998 if (unacknowledged_external && !is_update) { | 2001 if (unacknowledged_external && !is_update) { |
1999 UpdateExternalExtensionAlert(); | 2002 UpdateExternalExtensionAlert(); |
2000 UMA_HISTOGRAM_ENUMERATION("Extensions.ExternalExtensionEvent", | 2003 UMA_HISTOGRAM_ENUMERATION("Extensions.ExternalExtensionEvent", |
2001 EXTERNAL_EXTENSION_INSTALLED, | 2004 EXTERNAL_EXTENSION_INSTALLED, |
2002 EXTERNAL_EXTENSION_BUCKET_BOUNDARY); | 2005 EXTERNAL_EXTENSION_BUCKET_BOUNDARY); |
2003 if (extensions::ManifestURL::UpdatesFromGallery(extension)) { | 2006 if (extensions::ManifestURL::UpdatesFromGallery(extension)) { |
2004 UMA_HISTOGRAM_ENUMERATION("Extensions.ExternalExtensionEventWebstore", | 2007 UMA_HISTOGRAM_ENUMERATION("Extensions.ExternalExtensionEventWebstore", |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2071 | 2074 |
2072 if (registry_->enabled_extensions().Contains(extension->id())) { | 2075 if (registry_->enabled_extensions().Contains(extension->id())) { |
2073 content::NotificationService::current()->Notify( | 2076 content::NotificationService::current()->Notify( |
2074 chrome::NOTIFICATION_EXTENSION_LOADED_DEPRECATED, | 2077 chrome::NOTIFICATION_EXTENSION_LOADED_DEPRECATED, |
2075 content::Source<Profile>(profile_), | 2078 content::Source<Profile>(profile_), |
2076 content::Details<const Extension>(extension)); | 2079 content::Details<const Extension>(extension)); |
2077 | 2080 |
2078 registry_->TriggerOnLoaded(extension); | 2081 registry_->TriggerOnLoaded(extension); |
2079 } | 2082 } |
2080 | 2083 |
| 2084 registry_->TriggerOnInstalled(extension); |
| 2085 |
2081 if (!is_from_sync && extension_sync_service_) | 2086 if (!is_from_sync && extension_sync_service_) |
2082 extension_sync_service_->SyncExtensionChangeIfNeeded(*extension); | 2087 extension_sync_service_->SyncExtensionChangeIfNeeded(*extension); |
2083 } | 2088 } |
2084 | 2089 |
2085 const Extension* ExtensionService::GetPendingExtensionUpdate( | 2090 const Extension* ExtensionService::GetPendingExtensionUpdate( |
2086 const std::string& id) const { | 2091 const std::string& id) const { |
2087 return delayed_installs_.GetByID(id); | 2092 return delayed_installs_.GetByID(id); |
2088 } | 2093 } |
2089 | 2094 |
2090 void ExtensionService::TrackTerminatedExtension(const Extension* extension) { | 2095 void ExtensionService::TrackTerminatedExtension(const Extension* extension) { |
(...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2549 } | 2554 } |
2550 | 2555 |
2551 void ExtensionService::OnProfileDestructionStarted() { | 2556 void ExtensionService::OnProfileDestructionStarted() { |
2552 ExtensionIdSet ids_to_unload = registry_->enabled_extensions().GetIDs(); | 2557 ExtensionIdSet ids_to_unload = registry_->enabled_extensions().GetIDs(); |
2553 for (ExtensionIdSet::iterator it = ids_to_unload.begin(); | 2558 for (ExtensionIdSet::iterator it = ids_to_unload.begin(); |
2554 it != ids_to_unload.end(); | 2559 it != ids_to_unload.end(); |
2555 ++it) { | 2560 ++it) { |
2556 UnloadExtension(*it, UnloadedExtensionInfo::REASON_PROFILE_SHUTDOWN); | 2561 UnloadExtension(*it, UnloadedExtensionInfo::REASON_PROFILE_SHUTDOWN); |
2557 } | 2562 } |
2558 } | 2563 } |
OLD | NEW |