| Index: chrome/browser/extensions/event_router.cc
|
| diff --git a/chrome/browser/extensions/event_router.cc b/chrome/browser/extensions/event_router.cc
|
| index 586c60048f09044d145ec2a79102d10c32dbacfa..9224a516c864831253c66139385cd3e3c0dcad96 100644
|
| --- a/chrome/browser/extensions/event_router.cc
|
| +++ b/chrome/browser/extensions/event_router.cc
|
| @@ -172,6 +172,13 @@ void EventRouter::DispatchEvent(IPC::Sender* ipc_sender,
|
| const EventFilteringInfo& info) {
|
| DispatchExtensionMessage(ipc_sender, profile_id, extension_id, event_name,
|
| event_args.get(), event_url, user_gesture, info);
|
| +
|
| + BrowserThread::PostTask(
|
| + BrowserThread::UI,
|
| + FROM_HERE,
|
| + base::Bind(&EventRouter::IncrementInFlightEventsOnUI,
|
| + profile_id,
|
| + extension_id));
|
| }
|
|
|
| EventRouter::EventRouter(Profile* profile, ExtensionPrefs* extension_prefs)
|
| @@ -661,6 +668,25 @@ bool EventRouter::MaybeLoadLazyBackgroundPageToDispatchEvent(
|
| return false;
|
| }
|
|
|
| +// static
|
| +void EventRouter::IncrementInFlightEventsOnUI(
|
| + void* profile_id,
|
| + const std::string& extension_id) {
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| + Profile* profile = reinterpret_cast<Profile*>(profile_id);
|
| + extensions::EventRouter* event_router =
|
| + extensions::ExtensionSystem::Get(profile)->event_router();
|
| + if (!event_router)
|
| + return;
|
| + ExtensionService* extension_service =
|
| + extensions::ExtensionSystem::Get(profile)->extension_service();
|
| + const Extension* extension =
|
| + extension_service->extensions()->GetByID(extension_id);
|
| + if (!extension)
|
| + return;
|
| + event_router->IncrementInFlightEvents(profile, extension);
|
| +}
|
| +
|
| void EventRouter::IncrementInFlightEvents(Profile* profile,
|
| const Extension* extension) {
|
| // Only increment in-flight events if the lazy background page is active,
|
|
|