| 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);
|
| }
|
| }
|
|
|