Commit 3d9a196e authored by mgiuca's avatar mgiuca Committed by Commit bot

Add a browser-side kill switch to getInstalledRelatedApps.

If the Origin Trial is disabled from a server config, the Mojo service
will no longer be created. This prevents a compromised renderer from
using the service, even after the API is shut down in the event of a
security problem being discovered.

BUG=703476

Review-Url: https://codereview.chromium.org/2799393003
Cr-Commit-Position: refs/heads/master@{#462768}
parent 8335a4df
...@@ -1672,6 +1672,16 @@ void MaybeAppendBlinkSettingsSwitchForFieldTrial( ...@@ -1672,6 +1672,16 @@ void MaybeAppendBlinkSettingsSwitchForFieldTrial(
} }
#if defined(OS_ANDROID) #if defined(OS_ANDROID)
void ForwardInstalledAppProviderRequest(
base::WeakPtr<service_manager::InterfaceProvider> interface_provider,
blink::mojom::InstalledAppProviderRequest request) {
if (!interface_provider ||
ChromeOriginTrialPolicy().IsFeatureDisabled("InstalledApp")) {
return;
}
interface_provider->GetInterface(std::move(request));
}
void ForwardShareServiceRequest( void ForwardShareServiceRequest(
base::WeakPtr<service_manager::InterfaceProvider> interface_provider, base::WeakPtr<service_manager::InterfaceProvider> interface_provider,
blink::mojom::ShareServiceRequest request) { blink::mojom::ShareServiceRequest request) {
...@@ -3189,8 +3199,8 @@ void ChromeContentBrowserClient::RegisterRenderFrameMojoInterfaces( ...@@ -3189,8 +3199,8 @@ void ChromeContentBrowserClient::RegisterRenderFrameMojoInterfaces(
render_frame_host->GetJavaInterfaces() render_frame_host->GetJavaInterfaces()
->CreateInterfaceFactory<payments::mojom::PaymentRequest>()); ->CreateInterfaceFactory<payments::mojom::PaymentRequest>());
registry->AddInterface( registry->AddInterface(
render_frame_host->GetJavaInterfaces() base::Bind(&ForwardInstalledAppProviderRequest,
->CreateInterfaceFactory<blink::mojom::InstalledAppProvider>()); render_frame_host->GetJavaInterfaces()->GetWeakPtr()));
content::WebContents* web_contents = content::WebContents* web_contents =
content::WebContents::FromRenderFrameHost(render_frame_host); content::WebContents::FromRenderFrameHost(render_frame_host);
if (web_contents) { if (web_contents) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment