| Index: android_webview/browser/renderer_host/aw_resource_dispatcher_host_delegate.cc
|
| diff --git a/android_webview/browser/renderer_host/aw_resource_dispatcher_host_delegate.cc b/android_webview/browser/renderer_host/aw_resource_dispatcher_host_delegate.cc
|
| index ca2acb0e25bfdae754f87ead5104afd6dabba417..0945728d77403f1d5257c21ed2d9ebf5c237f5cf 100644
|
| --- a/android_webview/browser/renderer_host/aw_resource_dispatcher_host_delegate.cc
|
| +++ b/android_webview/browser/renderer_host/aw_resource_dispatcher_host_delegate.cc
|
| @@ -66,15 +66,26 @@ void DownloadStartingOnUIThread(
|
| const std::string& content_disposition,
|
| const std::string& mime_type,
|
| int64_t content_length) {
|
| - WebContents* web_contents = web_contents_getter.Run();
|
| AwContentsClientBridgeBase* client =
|
| - AwContentsClientBridgeBase::FromWebContents(web_contents);
|
| + AwContentsClientBridgeBase::FromWebContentsGetter(web_contents_getter);
|
| if (!client)
|
| return;
|
| client->NewDownload(url, user_agent, content_disposition, mime_type,
|
| content_length);
|
| }
|
|
|
| +void NewLoginRequestOnUIThread(
|
| + const content::ResourceRequestInfo::WebContentsGetter& web_contents_getter,
|
| + const std::string& realm,
|
| + const std::string& account,
|
| + const std::string& args) {
|
| + AwContentsClientBridgeBase* client =
|
| + AwContentsClientBridgeBase::FromWebContentsGetter(web_contents_getter);
|
| + if (!client)
|
| + return;
|
| + client->NewLoginRequest(realm, account, args);
|
| +}
|
| +
|
| } // namespace
|
|
|
| namespace android_webview {
|
| @@ -359,13 +370,11 @@ void AwResourceDispatcherHostDelegate::OnResponseStarted(
|
| // Check for x-auto-login header.
|
| HeaderData header_data;
|
| if (ParserHeaderInResponse(request, ALLOW_ANY_REALM, &header_data)) {
|
| - std::unique_ptr<AwContentsIoThreadClient> io_client =
|
| - AwContentsIoThreadClient::FromID(request_info->GetChildID(),
|
| - request_info->GetRenderFrameID());
|
| - if (io_client) {
|
| - io_client->NewLoginRequest(header_data.realm, header_data.account,
|
| - header_data.args);
|
| - }
|
| + BrowserThread::PostTask(
|
| + BrowserThread::UI, FROM_HERE,
|
| + base::Bind(&NewLoginRequestOnUIThread,
|
| + request_info->GetWebContentsGetterForRequest(),
|
| + header_data.realm, header_data.account, header_data.args));
|
| }
|
| }
|
| }
|
|
|