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

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

Issue 9316102: Update extension events, routing, and delivery to use user gesture. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: lint fix Created 8 years, 10 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
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 c92521e62aab6f855fac5a107601a458432449c6..29d94afe48ace6dea73e3e0ce3583294f2063640 100644
--- a/chrome/browser/extensions/extension_event_router.cc
+++ b/chrome/browser/extensions/extension_event_router.cc
@@ -67,17 +67,20 @@ struct ExtensionEventRouter::ExtensionEvent {
GURL event_url;
Profile* restrict_to_profile;
std::string cross_incognito_args;
+ UserGestureState user_gesture;
ExtensionEvent(const std::string& event_name,
const std::string& event_args,
const GURL& event_url,
Profile* restrict_to_profile,
- const std::string& cross_incognito_args)
+ const std::string& cross_incognito_args,
+ UserGestureState user_gesture)
: event_name(event_name),
event_args(event_args),
event_url(event_url),
restrict_to_profile(restrict_to_profile),
- cross_incognito_args(cross_incognito_args) {}
+ cross_incognito_args(cross_incognito_args),
+ user_gesture(user_gesture) {}
};
// static
@@ -85,12 +88,14 @@ void ExtensionEventRouter::DispatchEvent(IPC::Message::Sender* ipc_sender,
const std::string& extension_id,
const std::string& event_name,
const std::string& event_args,
- const GURL& event_url) {
+ const GURL& event_url,
+ UserGestureState user_gesture) {
ListValue args;
args.Set(0, Value::CreateStringValue(event_name));
args.Set(1, Value::CreateStringValue(event_args));
ipc_sender->Send(new ExtensionMsg_MessageInvoke(MSG_ROUTING_CONTROL,
- extension_id, kDispatchEvent, args, event_url));
+ extension_id, kDispatchEvent, args, event_url,
+ user_gesture == USER_GESTURE_ENABLED));
}
ExtensionEventRouter::ExtensionEventRouter(Profile* profile)
@@ -225,7 +230,7 @@ void ExtensionEventRouter::DispatchEventToRenderers(
const GURL& event_url) {
linked_ptr<ExtensionEvent> event(
new ExtensionEvent(event_name, event_args, event_url,
- restrict_to_profile, ""));
+ restrict_to_profile, "", USER_GESTURE_UNKNOWN));
DispatchEventImpl("", event, false);
}
@@ -238,7 +243,21 @@ void ExtensionEventRouter::DispatchEventToExtension(
DCHECK(!extension_id.empty());
linked_ptr<ExtensionEvent> event(
new ExtensionEvent(event_name, event_args, event_url,
- restrict_to_profile, ""));
+ restrict_to_profile, "", USER_GESTURE_UNKNOWN));
+ DispatchEventImpl(extension_id, event, false);
+}
+
+void ExtensionEventRouter::DispatchEventToExtension(
+ const std::string& extension_id,
+ const std::string& event_name,
+ const std::string& event_args,
+ Profile* restrict_to_profile,
+ const GURL& event_url,
+ UserGestureState user_gesture) {
+ DCHECK(!extension_id.empty());
+ linked_ptr<ExtensionEvent> event(
+ new ExtensionEvent(event_name, event_args, event_url,
+ restrict_to_profile, "", user_gesture));
DispatchEventImpl(extension_id, event, false);
}
@@ -250,7 +269,8 @@ void ExtensionEventRouter::DispatchEventsToRenderersAcrossIncognito(
const GURL& event_url) {
linked_ptr<ExtensionEvent> event(
new ExtensionEvent(event_name, event_args, event_url,
- restrict_to_profile, cross_incognito_args));
+ restrict_to_profile, cross_incognito_args,
+ USER_GESTURE_UNKNOWN));
DispatchEventImpl("", event, false);
}
@@ -328,14 +348,15 @@ void ExtensionEventRouter::DispatchEventImpl(
if (!event->cross_incognito_args.empty()) {
DispatchEvent(listener->process, listener->extension_id,
event->event_name, event->cross_incognito_args,
- event->event_url);
+ event->event_url, event->user_gesture);
IncrementInFlightEvents(extension);
}
continue;
}
DispatchEvent(listener->process, listener->extension_id,
- event->event_name, event->event_args, event->event_url);
+ event->event_name, event->event_args,
+ event->event_url, event->user_gesture);
IncrementInFlightEvents(extension);
}
}
« no previous file with comments | « chrome/browser/extensions/extension_event_router.h ('k') | chrome/browser/extensions/extension_menu_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698