Index: chrome/browser/chrome_content_browser_client.cc |
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc |
index 4e67512d7f4ef0d0ab296883b9d331405cad64fd..e5da3a7e35063827e318265ee7eb353c5c2e19d4 100644 |
--- a/chrome/browser/chrome_content_browser_client.cc |
+++ b/chrome/browser/chrome_content_browser_client.cc |
@@ -1665,6 +1665,16 @@ void MaybeAppendBlinkSettingsSwitchForFieldTrial( |
} |
#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( |
base::WeakPtr<service_manager::InterfaceProvider> interface_provider, |
blink::mojom::ShareServiceRequest request) { |
@@ -3192,8 +3202,8 @@ void ChromeContentBrowserClient::RegisterRenderFrameMojoInterfaces( |
render_frame_host->GetJavaInterfaces() |
->CreateInterfaceFactory<payments::mojom::PaymentRequest>()); |
registry->AddInterface( |
- render_frame_host->GetJavaInterfaces() |
- ->CreateInterfaceFactory<blink::mojom::InstalledAppProvider>()); |
+ base::Bind(&ForwardInstalledAppProviderRequest, |
+ render_frame_host->GetJavaInterfaces()->GetWeakPtr())); |
content::WebContents* web_contents = |
content::WebContents::FromRenderFrameHost(render_frame_host); |
if (web_contents) { |