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 d032d6a83bce6a69d29c6e73ef36ec23ac4a1ef1..2b5caa282e3ade45426cd2d9dad33dd9b8351789 100644 |
--- a/chrome/browser/chrome_content_browser_client.cc |
+++ b/chrome/browser/chrome_content_browser_client.cc |
@@ -99,6 +99,7 @@ |
#include "chrome/browser/ui/webui/chrome_web_ui_controller_factory.h" |
#include "chrome/browser/ui/webui/log_web_ui_url.h" |
#include "chrome/browser/usb/usb_tab_helper.h" |
+#include "chrome/browser/webauth/authenticator_web_contents_manager.h" |
#include "chrome/common/channel_info.h" |
#include "chrome/common/chrome_constants.h" |
#include "chrome/common/chrome_features.h" |
@@ -890,6 +891,20 @@ AppLoadedInTabSource ClassifyAppLoadedInTabSource( |
} |
#endif // BUILDFLAG(ENABLE_EXTENSIONS) |
+void CreateAuthenticatorForWebContents( |
+ content::RenderFrameHost* render_frame_host, |
+ const service_manager::BindSourceInfo& source_info, |
+ webauth::mojom::AuthenticatorRequest request) { |
+ content::WebContents* web_contents = |
+ content::WebContents::FromRenderFrameHost(render_frame_host); |
+ if (!web_contents) { |
+ NOTREACHED(); |
+ return; |
+ } |
+ AuthenticatorWebContentsManager::GetOrCreateForWebContents(web_contents) |
+ ->CreateAuthenticator(render_frame_host, std::move(request)); |
+} |
+ |
void CreateUsbDeviceManager(RenderFrameHost* render_frame_host, |
const service_manager::BindSourceInfo& source_info, |
device::mojom::UsbDeviceManagerRequest request) { |
@@ -1690,7 +1705,6 @@ void MaybeAppendBlinkSettingsSwitchForFieldTrial( |
#if defined(OS_ANDROID) |
void ForwardInstalledAppProviderRequest( |
base::WeakPtr<service_manager::InterfaceProvider> interface_provider, |
- const service_manager::BindSourceInfo& source_info, |
jochen (gone - plz use gerrit)
2017/05/30 12:03:02
why this change?
kpaulhamus
2017/05/31 20:56:05
Ah, unintentional. Rebase gone bad, perhaps.
|
blink::mojom::InstalledAppProviderRequest request) { |
if (!interface_provider || |
ChromeOriginTrialPolicy().IsFeatureDisabled("InstalledApp")) { |
@@ -3196,6 +3210,11 @@ void ChromeContentBrowserClient::ExposeInterfacesToFrame( |
} |
#endif |
+ if (base::FeatureList::IsEnabled(features::kWebAuth)) { |
+ registry->AddInterface( |
+ base::Bind(&CreateAuthenticatorForWebContents, render_frame_host)); |
+ } |
+ |
#if defined(OS_LINUX) || defined(OS_WIN) |
if (!ChromeOriginTrialPolicy().IsFeatureDisabled("WebShare")) { |
registry->AddInterface(base::Bind(&ShareServiceImpl::Create)); |