Index: chrome/browser/extensions/api/extension_action/extension_action_api.cc |
diff --git a/chrome/browser/extensions/api/extension_action/extension_action_api.cc b/chrome/browser/extensions/api/extension_action/extension_action_api.cc |
index a7e077566d901ed4502cefc6262dbb1cb1d47f27..13906db27c0f66bc2ee2097be903a316d1377ed8 100644 |
--- a/chrome/browser/extensions/api/extension_action/extension_action_api.cc |
+++ b/chrome/browser/extensions/api/extension_action/extension_action_api.cc |
@@ -22,6 +22,7 @@ |
#include "chrome/browser/extensions/location_bar_controller.h" |
#include "chrome/browser/extensions/state_store.h" |
#include "chrome/browser/extensions/tab_helper.h" |
+#include "chrome/browser/external_protocol/external_protocol_handler.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/common/extensions/api/extension_action/action_info.h" |
#include "chrome/common/render_messages.h" |
@@ -354,7 +355,9 @@ void ExtensionActionAPI::ExtensionActionExecuted( |
// The System Indicator handles its own clicks. |
break; |
} |
- |
+ // Browser and page actions should enable launching external protocol |
+ // handlers in the absence of any other user gesture. |
+ ExternalProtocolHandler::PermitLaunchUrl(); |
Jeffrey Yasskin
2014/01/28 00:54:19
The other place I'd expect people to be relying on
meacer
2014/01/30 00:20:44
Just to clarify: If postMessage wasn't called from
|
if (event_name) { |
scoped_ptr<base::ListValue> args(new base::ListValue()); |
base::DictionaryValue* tab_value = |