| Index: extensions/browser/lazy_background_task_queue.cc
|
| diff --git a/extensions/browser/lazy_background_task_queue.cc b/extensions/browser/lazy_background_task_queue.cc
|
| index 9edad4f65acc7548da8d0437adcc4486595ac8c3..4b8ee09e915c3c57f1f94e672405945b68e91f15 100644
|
| --- a/extensions/browser/lazy_background_task_queue.cc
|
| +++ b/extensions/browser/lazy_background_task_queue.cc
|
| @@ -27,13 +27,13 @@ namespace extensions {
|
|
|
| LazyBackgroundTaskQueue::LazyBackgroundTaskQueue(
|
| content::BrowserContext* browser_context)
|
| - : browser_context_(browser_context) {
|
| + : browser_context_(browser_context), extension_registry_observer_(this) {
|
| registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_HOST_DID_STOP_LOADING,
|
| content::NotificationService::AllBrowserContextsAndSources());
|
| registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_HOST_DESTROYED,
|
| content::NotificationService::AllBrowserContextsAndSources());
|
| - registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED,
|
| - content::Source<content::BrowserContext>(browser_context));
|
| +
|
| + extension_registry_observer_.Add(ExtensionRegistry::Get(browser_context));
|
| }
|
|
|
| LazyBackgroundTaskQueue::~LazyBackgroundTaskQueue() {
|
| @@ -162,28 +162,26 @@ void LazyBackgroundTaskQueue::Observe(
|
| }
|
| break;
|
| }
|
| - case chrome::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED: {
|
| - // Notify consumers that the page failed to load.
|
| - content::BrowserContext* browser_context =
|
| - content::Source<content::BrowserContext>(source).ptr();
|
| - UnloadedExtensionInfo* unloaded =
|
| - content::Details<UnloadedExtensionInfo>(details).ptr();
|
| - ProcessPendingTasks(NULL, browser_context, unloaded->extension);
|
| - // If this extension is also running in an off-the-record context,
|
| - // notify that task queue as well.
|
| - ExtensionsBrowserClient* browser_client = ExtensionsBrowserClient::Get();
|
| - if (browser_client->HasOffTheRecordContext(browser_context)) {
|
| - ProcessPendingTasks(
|
| - NULL,
|
| - browser_client->GetOffTheRecordContext(browser_context),
|
| - unloaded->extension);
|
| - }
|
| - break;
|
| - }
|
| default:
|
| NOTREACHED();
|
| break;
|
| }
|
| }
|
|
|
| +void LazyBackgroundTaskQueue::OnExtensionUnloaded(
|
| + content::BrowserContext* browser_context,
|
| + const Extension* extension,
|
| + UnloadedExtensionInfo::Reason reason) {
|
| + // Notify consumers that the page failed to load.
|
| + ProcessPendingTasks(NULL, browser_context, extension);
|
| + // If this extension is also running in an off-the-record context, notify that
|
| + // task queue as well.
|
| + ExtensionsBrowserClient* browser_client = ExtensionsBrowserClient::Get();
|
| + if (browser_client->HasOffTheRecordContext(browser_context)) {
|
| + ProcessPendingTasks(NULL,
|
| + browser_client->GetOffTheRecordContext(browser_context),
|
| + extension);
|
| + }
|
| +}
|
| +
|
| } // namespace extensions
|
|
|