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

Unified Diff: chrome/browser/extensions/event_router.cc

Issue 12189018: <webview>: Implement WebRequest API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Profile* => void* Created 7 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 | « chrome/browser/extensions/event_router.h ('k') | chrome/browser/webview/webview_guest.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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,
« no previous file with comments | « chrome/browser/extensions/event_router.h ('k') | chrome/browser/webview/webview_guest.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698