Index: chrome/browser/extensions/api/messaging/message_service.cc |
diff --git a/chrome/browser/extensions/api/messaging/message_service.cc b/chrome/browser/extensions/api/messaging/message_service.cc |
index 8afd54fd35012e9694ec2c7e16d6d95edf5a8a45..9935618621316ad4b5064bdd54708a8a3660424e 100644 |
--- a/chrome/browser/extensions/api/messaging/message_service.cc |
+++ b/chrome/browser/extensions/api/messaging/message_service.cc |
@@ -20,6 +20,7 @@ |
#include "chrome/browser/extensions/extension_service.h" |
#include "chrome/browser/extensions/extension_tab_util.h" |
#include "chrome/browser/extensions/extension_util.h" |
+#include "chrome/browser/external_protocol/external_protocol_handler.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/tab_contents/tab_util.h" |
#include "chrome/common/extensions/extension_messages.h" |
@@ -652,6 +653,8 @@ void MessageService::DispatchMessage(int source_port_id, |
MessagePort* port = IS_OPENER_PORT_ID(dest_port_id) ? |
channel->opener.get() : channel->receiver.get(); |
+ if (message.user_gesture) |
+ ExternalProtocolHandler::PermitLaunchUrl(); |
port->DispatchOnMessage(message, dest_port_id); |
} |