Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Unified Diff: extensions/browser/event_router.cc

Issue 1138643010: Fix a race where backgroud page might ack an event before we're ready (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address comments Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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,
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698