| 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 24031549447207be98aad91f003042bfbb6a2c3a..2e077372dbee6f93ff0367d1d1bc3dc729c30ca8 100644
|
| --- a/extensions/browser/lazy_background_task_queue.cc
|
| +++ b/extensions/browser/lazy_background_task_queue.cc
|
| @@ -16,6 +16,7 @@
|
| #include "extensions/browser/extension_registry.h"
|
| #include "extensions/browser/extensions_browser_client.h"
|
| #include "extensions/browser/lazy_background_task_queue_factory.h"
|
| +#include "extensions/browser/lazy_context_id.h"
|
| #include "extensions/browser/notification_types.h"
|
| #include "extensions/browser/process_manager.h"
|
| #include "extensions/browser/process_map.h"
|
| @@ -25,6 +26,23 @@
|
|
|
| namespace extensions {
|
|
|
| +namespace {
|
| +
|
| +// Adapts a LazyBackgroundTaskQueue pending task callback to
|
| +// LazyContextTaskQueue's callback.
|
| +void PendingTaskAdapter(const LazyContextTaskQueue::PendingTask& original_task,
|
| + ExtensionHost* host) {
|
| + if (!host) {
|
| + original_task.Run(nullptr);
|
| + } else {
|
| + original_task.Run(base::MakeUnique<LazyContextTaskQueue::ContextInfo>(
|
| + host->extension()->id(), host->render_process_host(),
|
| + kNonWorkerThreadId, host->GetURL()));
|
| + }
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| LazyBackgroundTaskQueue::LazyBackgroundTaskQueue(
|
| content::BrowserContext* browser_context)
|
| : browser_context_(browser_context), extension_registry_observer_(this) {
|
| @@ -66,6 +84,13 @@ bool LazyBackgroundTaskQueue::ShouldEnqueueTask(
|
| return false;
|
| }
|
|
|
| +void LazyBackgroundTaskQueue::AddPendingTaskToDispatchEvent(
|
| + LazyContextId* context_id,
|
| + const LazyContextTaskQueue::PendingTask& task) {
|
| + AddPendingTask(context_id->browser_context(), context_id->extension_id(),
|
| + base::Bind(&PendingTaskAdapter, task));
|
| +}
|
| +
|
| void LazyBackgroundTaskQueue::AddPendingTask(
|
| content::BrowserContext* browser_context,
|
| const std::string& extension_id,
|
|
|