diff options
Diffstat (limited to 'extensions')
4 files changed, 9 insertions, 0 deletions
diff --git a/extensions/browser/extension_function_dispatcher.cc b/extensions/browser/extension_function_dispatcher.cc index d6420e3..5e0cffe 100644 --- a/extensions/browser/extension_function_dispatcher.cc +++ b/extensions/browser/extension_function_dispatcher.cc @@ -375,6 +375,8 @@ void ExtensionFunctionDispatcher::DispatchWithCallbackInternal( if (violation_error.empty()) { scoped_ptr<base::ListValue> args(params.arguments.DeepCopy()); + // See crbug.com/39178. + ExtensionsBrowserClient::Get()->PermitExternalProtocolHandler(); NotifyApiFunctionCalled( extension->id(), params.name, args.Pass(), browser_context_); function->Run(); diff --git a/extensions/browser/extensions_browser_client.h b/extensions/browser/extensions_browser_client.h index 132e77a..2e3d26d 100644 --- a/extensions/browser/extensions_browser_client.h +++ b/extensions/browser/extensions_browser_client.h @@ -106,6 +106,10 @@ class ExtensionsBrowserClient { // version for later comparison. virtual bool DidVersionUpdate(content::BrowserContext* context) = 0; + // Permits an external protocol handler to be launched. See + // ExternalProtocolHandler::PermitLaunchUrl() in Chrome. + virtual void PermitExternalProtocolHandler() = 0; + // Creates a new AppSorting instance. virtual scoped_ptr<AppSorting> CreateAppSorting() = 0; diff --git a/extensions/browser/test_extensions_browser_client.cc b/extensions/browser/test_extensions_browser_client.cc index 8a3fe23..739450b 100644 --- a/extensions/browser/test_extensions_browser_client.cc +++ b/extensions/browser/test_extensions_browser_client.cc @@ -107,6 +107,8 @@ bool TestExtensionsBrowserClient::DidVersionUpdate(BrowserContext* context) { return false; } +void TestExtensionsBrowserClient::PermitExternalProtocolHandler() {} + scoped_ptr<AppSorting> TestExtensionsBrowserClient::CreateAppSorting() { return scoped_ptr<AppSorting>(); } diff --git a/extensions/browser/test_extensions_browser_client.h b/extensions/browser/test_extensions_browser_client.h index ac82589..19f33d7 100644 --- a/extensions/browser/test_extensions_browser_client.h +++ b/extensions/browser/test_extensions_browser_client.h @@ -51,6 +51,7 @@ class TestExtensionsBrowserClient : public ExtensionsBrowserClient { virtual scoped_ptr<ExtensionHostDelegate> CreateExtensionHostDelegate() OVERRIDE; virtual bool DidVersionUpdate(content::BrowserContext* context) OVERRIDE; + virtual void PermitExternalProtocolHandler() OVERRIDE; virtual scoped_ptr<AppSorting> CreateAppSorting() OVERRIDE; virtual bool IsRunningInForcedAppMode() OVERRIDE; virtual ApiActivityMonitor* GetApiActivityMonitor( |