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 0876aa018e2dc0a9138b4c0bbab59b2df5ad4ede..9f6a37f581d159ecb7bf957e72b0f66ec059c759 100644 |
--- a/chrome/browser/extensions/extension_event_router.cc |
+++ b/chrome/browser/extensions/extension_event_router.cc |
@@ -68,19 +68,22 @@ struct ExtensionEventRouter::ExtensionEvent { |
GURL event_url; |
Profile* restrict_to_profile; |
std::string cross_incognito_args; |
+ bool user_caused; |
ExtensionEvent(const std::string& extension_id, |
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, |
+ bool user_caused) |
: extension_id(extension_id), |
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_caused(user_caused) {} |
}; |
// static |
@@ -88,12 +91,13 @@ 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, |
+ bool user_caused) { |
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_caused)); |
} |
ExtensionEventRouter::ExtensionEventRouter(Profile* profile) |
@@ -180,10 +184,11 @@ void ExtensionEventRouter::DispatchEventToRenderers( |
const std::string& event_name, |
const std::string& event_args, |
Profile* restrict_to_profile, |
- const GURL& event_url) { |
+ const GURL& event_url, |
+ bool user_caused) { |
linked_ptr<ExtensionEvent> event( |
new ExtensionEvent("", event_name, event_args, event_url, |
- restrict_to_profile, "")); |
+ restrict_to_profile, "", user_caused)); |
DispatchEventImpl(event, false); |
} |
@@ -192,11 +197,12 @@ void ExtensionEventRouter::DispatchEventToExtension( |
const std::string& event_name, |
const std::string& event_args, |
Profile* restrict_to_profile, |
- const GURL& event_url) { |
+ const GURL& event_url, |
+ bool user_caused) { |
DCHECK(!extension_id.empty()); |
linked_ptr<ExtensionEvent> event( |
new ExtensionEvent(extension_id, event_name, event_args, event_url, |
- restrict_to_profile, "")); |
+ restrict_to_profile, "", user_caused)); |
DispatchEventImpl(event, false); |
} |
@@ -205,10 +211,12 @@ void ExtensionEventRouter::DispatchEventsToRenderersAcrossIncognito( |
const std::string& event_args, |
Profile* restrict_to_profile, |
const std::string& cross_incognito_args, |
- const GURL& event_url) { |
+ const GURL& event_url, |
+ bool user_caused) { |
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_caused)); |
DispatchEventImpl(event, false); |
} |
@@ -295,14 +303,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_caused); |
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_caused); |
IncrementInFlightEvents(extension); |
} |
} |