OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <set> | 8 #include <set> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
182 const char* kNaClPluginMimeType = "application/x-nacl"; | 182 const char* kNaClPluginMimeType = "application/x-nacl"; |
183 | 183 |
184 static bool IsSyncableExtension(const Extension& extension) { | 184 static bool IsSyncableExtension(const Extension& extension) { |
185 return extension.GetSyncType() == Extension::SYNC_TYPE_EXTENSION; | 185 return extension.GetSyncType() == Extension::SYNC_TYPE_EXTENSION; |
186 } | 186 } |
187 | 187 |
188 static bool IsSyncableApp(const Extension& extension) { | 188 static bool IsSyncableApp(const Extension& extension) { |
189 return extension.GetSyncType() == Extension::SYNC_TYPE_APP; | 189 return extension.GetSyncType() == Extension::SYNC_TYPE_APP; |
190 } | 190 } |
191 | 191 |
192 static void DoNothing(extensions::ExtensionHost* host) { | |
193 } | |
194 | |
192 } // namespace | 195 } // namespace |
193 | 196 |
194 ExtensionService::ExtensionRuntimeData::ExtensionRuntimeData() | 197 ExtensionService::ExtensionRuntimeData::ExtensionRuntimeData() |
195 : background_page_ready(false), | 198 : background_page_ready(false), |
196 being_upgraded(false), | 199 being_upgraded(false), |
197 has_used_webrequest(false) { | 200 has_used_webrequest(false) { |
198 } | 201 } |
199 | 202 |
200 ExtensionService::ExtensionRuntimeData::~ExtensionRuntimeData() { | 203 ExtensionService::ExtensionRuntimeData::~ExtensionRuntimeData() { |
201 } | 204 } |
(...skipping 726 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
928 AcknowledgeExternalExtension(extension->id()); | 931 AcknowledgeExternalExtension(extension->id()); |
929 } | 932 } |
930 | 933 |
931 if (disable_reasons & Extension::DISABLE_SIDELOAD_WIPEOUT) | 934 if (disable_reasons & Extension::DISABLE_SIDELOAD_WIPEOUT) |
932 UMA_HISTOGRAM_BOOLEAN("DisabledExtension.ExtensionWipedStatus", false); | 935 UMA_HISTOGRAM_BOOLEAN("DisabledExtension.ExtensionWipedStatus", false); |
933 | 936 |
934 // Move it over to the enabled list. | 937 // Move it over to the enabled list. |
935 extensions_.Insert(make_scoped_refptr(extension)); | 938 extensions_.Insert(make_scoped_refptr(extension)); |
936 disabled_extensions_.Remove(extension->id()); | 939 disabled_extensions_.Remove(extension->id()); |
937 | 940 |
941 // If the extension has a lazy background page, make sure it gets loaded to | |
Matt Perry
2012/11/29 20:24:46
ExtensionService is not the best place for this co
Marijn Kruisselbrink
2012/11/29 21:07:19
Ah yes, of course. Done.
| |
942 // discover which events the extension wants to listen to. | |
943 if (extension->has_lazy_background_page()) { | |
944 extensions::LazyBackgroundTaskQueue* queue = | |
945 system_->lazy_background_task_queue(); | |
946 queue->AddPendingTask(profile_, extension->id(), base::Bind(&DoNothing)); | |
947 } | |
948 | |
938 NotifyExtensionLoaded(extension); | 949 NotifyExtensionLoaded(extension); |
939 | 950 |
940 // Notify listeners that the extension was enabled. | 951 // Notify listeners that the extension was enabled. |
941 content::NotificationService::current()->Notify( | 952 content::NotificationService::current()->Notify( |
942 chrome::NOTIFICATION_EXTENSION_ENABLED, | 953 chrome::NOTIFICATION_EXTENSION_ENABLED, |
943 content::Source<Profile>(profile_), | 954 content::Source<Profile>(profile_), |
944 content::Details<const Extension>(extension)); | 955 content::Details<const Extension>(extension)); |
945 | 956 |
946 SyncExtensionChangeIfNeeded(*extension); | 957 SyncExtensionChangeIfNeeded(*extension); |
947 } | 958 } |
(...skipping 2035 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2983 extension_id, kOnUpdateAvailableEvent); | 2994 extension_id, kOnUpdateAvailableEvent); |
2984 } else { | 2995 } else { |
2985 // Delay installation if the extension is not idle. | 2996 // Delay installation if the extension is not idle. |
2986 return !IsExtensionIdle(extension_id); | 2997 return !IsExtensionIdle(extension_id); |
2987 } | 2998 } |
2988 } | 2999 } |
2989 | 3000 |
2990 void ExtensionService::OnBlacklistUpdated() { | 3001 void ExtensionService::OnBlacklistUpdated() { |
2991 CheckManagementPolicy(); | 3002 CheckManagementPolicy(); |
2992 } | 3003 } |
OLD | NEW |