Index: extensions/browser/event_router.cc |
diff --git a/extensions/browser/event_router.cc b/extensions/browser/event_router.cc |
index 365cd2f15153234e62d2c675a7e0b04387f8d8d8..afd92d031706df336851d02d55ee5307ab16b53d 100644 |
--- a/extensions/browser/event_router.cc |
+++ b/extensions/browser/event_router.cc |
@@ -155,14 +155,21 @@ void EventRouter::DispatchEvent(IPC::Sender* ipc_sender, |
const EventFilteringInfo& info) { |
int event_id = g_extension_event_id.GetNext(); |
+ if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) { |
+ // This is called from WebRequest API. |
+ // TODO(lazyboy): Skip this entirely: http://crbug.com/488747. |
+ BrowserThread::PostTask( |
+ BrowserThread::UI, FROM_HERE, |
+ base::Bind(&EventRouter::IncrementInFlightEventsOnUI, |
+ browser_context_id, extension_id, event_id, event_name)); |
+ } else { |
+ IncrementInFlightEventsOnUI(browser_context_id, extension_id, event_id, |
+ event_name); |
+ } |
+ |
DispatchExtensionMessage(ipc_sender, browser_context_id, extension_id, |
event_id, event_name, event_args.get(), user_gesture, |
info); |
- |
- BrowserThread::PostTask( |
- BrowserThread::UI, FROM_HERE, |
- base::Bind(&EventRouter::IncrementInFlightEventsOnUI, browser_context_id, |
- extension_id, event_id, event_name)); |
} |
EventRouter::EventRouter(BrowserContext* browser_context, |