| Index: chrome/browser/extensions/extension_event_router.cc
|
| diff --git a/chrome/browser/extensions/extension_event_router.cc b/chrome/browser/extensions/extension_event_router.cc
|
| index 8f18685004c993cca678980b2642b27ae578003a..8611dafe944d3054ae07f961e528f895804dc449 100644
|
| --- a/chrome/browser/extensions/extension_event_router.cc
|
| +++ b/chrome/browser/extensions/extension_event_router.cc
|
| @@ -288,15 +288,36 @@ void ExtensionEventRouter::DispatchEventImpl(
|
| DispatchEvent(listener->process, listener->extension_id,
|
| event->event_name, event->cross_incognito_args,
|
| event->event_url);
|
| + IncrementInFlightEvents(listener->extension_id);
|
| }
|
| continue;
|
| }
|
|
|
| DispatchEvent(listener->process, listener->extension_id,
|
| event->event_name, event->event_args, event->event_url);
|
| + IncrementInFlightEvents(listener->extension_id);
|
| }
|
| }
|
|
|
| +void ExtensionEventRouter::IncrementInFlightEvents(
|
| + const std::string& extension_id) {
|
| + if (CommandLine::ForCurrentProcess()->HasSwitch(
|
| + switches::kEnableLazyBackgroundPages))
|
| + in_flight_events_[extension_id]++;
|
| +}
|
| +
|
| +void ExtensionEventRouter::OnExtensionEventAck(
|
| + const std::string& extension_id) {
|
| + CHECK(CommandLine::ForCurrentProcess()->HasSwitch(
|
| + switches::kEnableLazyBackgroundPages));
|
| + CHECK(in_flight_events_[extension_id] > 0);
|
| + in_flight_events_[extension_id]--;
|
| +}
|
| +
|
| +bool ExtensionEventRouter::HasInFlightEvents(const std::string& extension_id) {
|
| + return in_flight_events_[extension_id] > 0;
|
| +}
|
| +
|
| void ExtensionEventRouter::AppendEvent(
|
| const linked_ptr<ExtensionEvent>& event) {
|
| PendingEventsList* events_list = NULL;
|
|
|