[WebView] Merge AwContentsClientBridgeBase into AwContentsClientBridge
AwContentsClientBridgeBase was a browser/ layer interface for AwContentsClientBridge, since we can make jni calls from browser/ already, we don't need this interface anymore. This CL removes AwContentsClientBridgeBase, and put code into AwContentsClientBridge. BUG=716604 Review-Url: https://codereview.chromium.org/2888623004 Cr-Commit-Position: refs/heads/master@{#472307}
This commit is contained in:
android_webview
@ -446,8 +446,6 @@ source_set("common") {
|
||||
"browser/aw_contents_background_thread_client.h",
|
||||
"browser/aw_contents_client_bridge.cc",
|
||||
"browser/aw_contents_client_bridge.h",
|
||||
"browser/aw_contents_client_bridge_base.cc",
|
||||
"browser/aw_contents_client_bridge_base.h",
|
||||
"browser/aw_contents_io_thread_client.h",
|
||||
"browser/aw_contents_io_thread_client_impl.cc",
|
||||
"browser/aw_contents_io_thread_client_impl.h",
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
#include "android_webview/browser/aw_browser_context.h"
|
||||
#include "android_webview/browser/aw_browser_main_parts.h"
|
||||
#include "android_webview/browser/aw_contents_client_bridge_base.h"
|
||||
#include "android_webview/browser/aw_contents_client_bridge.h"
|
||||
#include "android_webview/browser/aw_contents_io_thread_client.h"
|
||||
#include "android_webview/browser/aw_cookie_access_policy.h"
|
||||
#include "android_webview/browser/aw_devtools_manager_delegate.h"
|
||||
@ -145,8 +145,8 @@ void AwContentsMessageFilter::OnShouldOverrideUrlLoading(
|
||||
bool* ignore_navigation) {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
*ignore_navigation = false;
|
||||
AwContentsClientBridgeBase* client =
|
||||
AwContentsClientBridgeBase::FromID(process_id_, render_frame_id);
|
||||
AwContentsClientBridge* client =
|
||||
AwContentsClientBridge::FromID(process_id_, render_frame_id);
|
||||
if (client) {
|
||||
*ignore_navigation = client->ShouldOverrideUrlLoading(
|
||||
url, has_user_gesture, is_redirect, is_main_frame);
|
||||
@ -385,8 +385,8 @@ void AwContentBrowserClient::AllowCertificateError(
|
||||
bool expired_previous_decision,
|
||||
const base::Callback<void(content::CertificateRequestResultType)>&
|
||||
callback) {
|
||||
AwContentsClientBridgeBase* client =
|
||||
AwContentsClientBridgeBase::FromWebContents(web_contents);
|
||||
AwContentsClientBridge* client =
|
||||
AwContentsClientBridge::FromWebContents(web_contents);
|
||||
bool cancel_request = true;
|
||||
if (client)
|
||||
client->AllowCertificateError(cert_error,
|
||||
@ -403,8 +403,8 @@ void AwContentBrowserClient::SelectClientCertificate(
|
||||
net::SSLCertRequestInfo* cert_request_info,
|
||||
net::CertificateList client_certs,
|
||||
std::unique_ptr<content::ClientCertificateDelegate> delegate) {
|
||||
AwContentsClientBridgeBase* client =
|
||||
AwContentsClientBridgeBase::FromWebContents(web_contents);
|
||||
AwContentsClientBridge* client =
|
||||
AwContentsClientBridge::FromWebContents(web_contents);
|
||||
if (client)
|
||||
client->SelectClientCertificate(cert_request_info, std::move(delegate));
|
||||
}
|
||||
|
@ -261,8 +261,8 @@ void AwContents::SetJavaPeers(
|
||||
|
||||
contents_client_bridge_.reset(
|
||||
new AwContentsClientBridge(env, contents_client_bridge));
|
||||
AwContentsClientBridgeBase::Associate(web_contents_.get(),
|
||||
contents_client_bridge_.get());
|
||||
AwContentsClientBridge::Associate(web_contents_.get(),
|
||||
contents_client_bridge_.get());
|
||||
|
||||
AwContentsIoThreadClientImpl::Associate(web_contents_.get(),
|
||||
io_thread_client);
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include "base/message_loop/message_loop.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
#include "content/public/browser/client_certificate_delegate.h"
|
||||
#include "content/public/browser/render_frame_host.h"
|
||||
#include "content/public/browser/render_process_host.h"
|
||||
#include "content/public/browser/render_view_host.h"
|
||||
#include "content/public/browser/web_contents.h"
|
||||
@ -43,6 +44,7 @@ using base::android::JavaRef;
|
||||
using base::android::ScopedJavaLocalRef;
|
||||
using base::android::ToJavaArrayOfStrings;
|
||||
using content::BrowserThread;
|
||||
using content::WebContents;
|
||||
using std::vector;
|
||||
|
||||
namespace android_webview {
|
||||
@ -58,8 +60,64 @@ void RecordClientCertificateKey(net::X509Certificate* client_cert,
|
||||
client_cert, std::move(private_key));
|
||||
}
|
||||
|
||||
const void* const kAwContentsClientBridge = &kAwContentsClientBridge;
|
||||
|
||||
// This class is invented so that the UserData registry that we inject the
|
||||
// AwContentsClientBridge object does not own and destroy it.
|
||||
class UserData : public base::SupportsUserData::Data {
|
||||
public:
|
||||
static AwContentsClientBridge* GetContents(
|
||||
content::WebContents* web_contents) {
|
||||
if (!web_contents)
|
||||
return NULL;
|
||||
UserData* data = static_cast<UserData*>(
|
||||
web_contents->GetUserData(kAwContentsClientBridge));
|
||||
return data ? data->contents_ : NULL;
|
||||
}
|
||||
|
||||
explicit UserData(AwContentsClientBridge* ptr) : contents_(ptr) {}
|
||||
|
||||
private:
|
||||
AwContentsClientBridge* contents_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(UserData);
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
// static
|
||||
void AwContentsClientBridge::Associate(WebContents* web_contents,
|
||||
AwContentsClientBridge* handler) {
|
||||
web_contents->SetUserData(kAwContentsClientBridge,
|
||||
base::MakeUnique<UserData>(handler));
|
||||
}
|
||||
|
||||
// static
|
||||
AwContentsClientBridge* AwContentsClientBridge::FromWebContents(
|
||||
WebContents* web_contents) {
|
||||
return UserData::GetContents(web_contents);
|
||||
}
|
||||
|
||||
// static
|
||||
AwContentsClientBridge* AwContentsClientBridge::FromWebContentsGetter(
|
||||
const content::ResourceRequestInfo::WebContentsGetter&
|
||||
web_contents_getter) {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
WebContents* web_contents = web_contents_getter.Run();
|
||||
return UserData::GetContents(web_contents);
|
||||
}
|
||||
|
||||
// static
|
||||
AwContentsClientBridge* AwContentsClientBridge::FromID(int render_process_id,
|
||||
int render_frame_id) {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
content::RenderFrameHost* rfh =
|
||||
content::RenderFrameHost::FromID(render_process_id, render_frame_id);
|
||||
content::WebContents* web_contents =
|
||||
content::WebContents::FromRenderFrameHost(rfh);
|
||||
return UserData::GetContents(web_contents);
|
||||
}
|
||||
|
||||
AwContentsClientBridge::AwContentsClientBridge(JNIEnv* env,
|
||||
const JavaRef<jobject>& obj)
|
||||
: java_ref_(env, obj) {
|
||||
|
@ -6,15 +6,28 @@
|
||||
#define ANDROID_WEBVIEW_BROWSER_AW_CONTENTS_CLIENT_BRIDGE_H_
|
||||
|
||||
#include <jni.h>
|
||||
#include <memory>
|
||||
|
||||
#include "android_webview/browser/aw_contents_client_bridge_base.h"
|
||||
#include "android_webview/browser/net/aw_web_resource_request.h"
|
||||
#include "base/android/jni_weak_ref.h"
|
||||
#include "base/android/scoped_java_ref.h"
|
||||
#include "base/callback.h"
|
||||
#include "base/id_map.h"
|
||||
#include "base/supports_user_data.h"
|
||||
#include "content/public/browser/certificate_request_result_type.h"
|
||||
#include "content/public/browser/javascript_dialog_manager.h"
|
||||
#include "content/public/browser/resource_request_info.h"
|
||||
#include "net/http/http_response_headers.h"
|
||||
|
||||
class GURL;
|
||||
|
||||
namespace content {
|
||||
class ClientCertificateDelegate;
|
||||
class WebContents;
|
||||
}
|
||||
|
||||
namespace net {
|
||||
class SSLCertRequestInfo;
|
||||
class X509Certificate;
|
||||
}
|
||||
|
||||
@ -27,56 +40,67 @@ namespace android_webview {
|
||||
// indirect refs from the Application (via callbacks) and so can outlive
|
||||
// webview, this class notifies it before being destroyed and to nullify
|
||||
// any references.
|
||||
class AwContentsClientBridge : public AwContentsClientBridgeBase {
|
||||
class AwContentsClientBridge {
|
||||
public:
|
||||
// Adds the handler to the UserData registry.
|
||||
static void Associate(content::WebContents* web_contents,
|
||||
AwContentsClientBridge* handler);
|
||||
static AwContentsClientBridge* FromWebContents(
|
||||
content::WebContents* web_contents);
|
||||
static AwContentsClientBridge* FromWebContentsGetter(
|
||||
const content::ResourceRequestInfo::WebContentsGetter&
|
||||
web_contents_getter);
|
||||
static AwContentsClientBridge* FromID(int render_process_id,
|
||||
int render_frame_id);
|
||||
AwContentsClientBridge(JNIEnv* env,
|
||||
const base::android::JavaRef<jobject>& obj);
|
||||
~AwContentsClientBridge() override;
|
||||
~AwContentsClientBridge();
|
||||
|
||||
// AwContentsClientBridgeBase implementation
|
||||
// AwContentsClientBridge implementation
|
||||
void AllowCertificateError(
|
||||
int cert_error,
|
||||
net::X509Certificate* cert,
|
||||
const GURL& request_url,
|
||||
const base::Callback<void(content::CertificateRequestResultType)>&
|
||||
callback,
|
||||
bool* cancel_request) override;
|
||||
bool* cancel_request);
|
||||
void SelectClientCertificate(
|
||||
net::SSLCertRequestInfo* cert_request_info,
|
||||
std::unique_ptr<content::ClientCertificateDelegate> delegate) override;
|
||||
|
||||
std::unique_ptr<content::ClientCertificateDelegate> delegate);
|
||||
void RunJavaScriptDialog(
|
||||
content::JavaScriptDialogType dialog_type,
|
||||
const GURL& origin_url,
|
||||
const base::string16& message_text,
|
||||
const base::string16& default_prompt_text,
|
||||
const content::JavaScriptDialogManager::DialogClosedCallback& callback)
|
||||
override;
|
||||
const content::JavaScriptDialogManager::DialogClosedCallback& callback);
|
||||
void RunBeforeUnloadDialog(
|
||||
const GURL& origin_url,
|
||||
const content::JavaScriptDialogManager::DialogClosedCallback& callback)
|
||||
override;
|
||||
const content::JavaScriptDialogManager::DialogClosedCallback& callback);
|
||||
bool ShouldOverrideUrlLoading(const base::string16& url,
|
||||
bool has_user_gesture,
|
||||
bool is_redirect,
|
||||
bool is_main_frame) override;
|
||||
|
||||
bool is_main_frame);
|
||||
void NewDownload(const GURL& url,
|
||||
const std::string& user_agent,
|
||||
const std::string& content_disposition,
|
||||
const std::string& mime_type,
|
||||
int64_t content_length) override;
|
||||
int64_t content_length);
|
||||
|
||||
// Called when a new login request is detected. See the documentation for
|
||||
// WebViewClient.onReceivedLoginRequest for arguments. Note that |account|
|
||||
// may be empty.
|
||||
void NewLoginRequest(const std::string& realm,
|
||||
const std::string& account,
|
||||
const std::string& args) override;
|
||||
const std::string& args);
|
||||
|
||||
void OnReceivedError(const AwWebResourceRequest& request,
|
||||
int error_code) override;
|
||||
// Called when a resource loading error has occured (e.g. an I/O error,
|
||||
// host name lookup failure etc.)
|
||||
void OnReceivedError(const AwWebResourceRequest& request, int error_code);
|
||||
|
||||
void OnReceivedHttpError(const AwWebResourceRequest& request,
|
||||
const scoped_refptr<const net::HttpResponseHeaders>&
|
||||
response_headers) override;
|
||||
// Called when a response from the server is received with status code >= 400.
|
||||
void OnReceivedHttpError(
|
||||
const AwWebResourceRequest& request,
|
||||
const scoped_refptr<const net::HttpResponseHeaders>& response_headers);
|
||||
|
||||
// Methods called from Java.
|
||||
void ProceedSslError(JNIEnv* env,
|
||||
|
@ -1,81 +0,0 @@
|
||||
// Copyright (c) 2013 The Chromium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "android_webview/browser/aw_contents_client_bridge_base.h"
|
||||
|
||||
#include "base/memory/ptr_util.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
#include "content/public/browser/render_frame_host.h"
|
||||
#include "content/public/browser/web_contents.h"
|
||||
|
||||
using content::BrowserThread;
|
||||
using content::WebContents;
|
||||
|
||||
namespace android_webview {
|
||||
|
||||
namespace {
|
||||
|
||||
const void* const kAwContentsClientBridgeBase = &kAwContentsClientBridgeBase;
|
||||
|
||||
// This class is invented so that the UserData registry that we inject the
|
||||
// AwContentsClientBridgeBase object does not own and destroy it.
|
||||
class UserData : public base::SupportsUserData::Data {
|
||||
public:
|
||||
static AwContentsClientBridgeBase* GetContents(
|
||||
content::WebContents* web_contents) {
|
||||
if (!web_contents)
|
||||
return NULL;
|
||||
UserData* data = static_cast<UserData*>(
|
||||
web_contents->GetUserData(kAwContentsClientBridgeBase));
|
||||
return data ? data->contents_ : NULL;
|
||||
}
|
||||
|
||||
explicit UserData(AwContentsClientBridgeBase* ptr) : contents_(ptr) {}
|
||||
private:
|
||||
AwContentsClientBridgeBase* contents_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(UserData);
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
// static
|
||||
void AwContentsClientBridgeBase::Associate(
|
||||
WebContents* web_contents,
|
||||
AwContentsClientBridgeBase* handler) {
|
||||
web_contents->SetUserData(kAwContentsClientBridgeBase,
|
||||
base::MakeUnique<UserData>(handler));
|
||||
}
|
||||
|
||||
// static
|
||||
AwContentsClientBridgeBase* AwContentsClientBridgeBase::FromWebContents(
|
||||
WebContents* web_contents) {
|
||||
return UserData::GetContents(web_contents);
|
||||
}
|
||||
|
||||
// static
|
||||
AwContentsClientBridgeBase* AwContentsClientBridgeBase::FromWebContentsGetter(
|
||||
const content::ResourceRequestInfo::WebContentsGetter&
|
||||
web_contents_getter) {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
WebContents* web_contents = web_contents_getter.Run();
|
||||
return UserData::GetContents(web_contents);
|
||||
}
|
||||
|
||||
// static
|
||||
AwContentsClientBridgeBase* AwContentsClientBridgeBase::FromID(
|
||||
int render_process_id,
|
||||
int render_frame_id) {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
content::RenderFrameHost* rfh =
|
||||
content::RenderFrameHost::FromID(render_process_id, render_frame_id);
|
||||
content::WebContents* web_contents =
|
||||
content::WebContents::FromRenderFrameHost(rfh);
|
||||
return UserData::GetContents(web_contents);
|
||||
}
|
||||
|
||||
AwContentsClientBridgeBase::~AwContentsClientBridgeBase() {
|
||||
}
|
||||
|
||||
} // namespace android_webview
|
@ -1,107 +0,0 @@
|
||||
// Copyright (c) 2013 The Chromium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef ANDROID_WEBVIEW_BROWSER_AW_CONTENTS_CLIENT_BRIDGE_BASE_H_
|
||||
#define ANDROID_WEBVIEW_BROWSER_AW_CONTENTS_CLIENT_BRIDGE_BASE_H_
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include "android_webview/browser/net/aw_web_resource_request.h"
|
||||
#include "base/supports_user_data.h"
|
||||
#include "content/public/browser/certificate_request_result_type.h"
|
||||
#include "content/public/browser/javascript_dialog_manager.h"
|
||||
#include "content/public/browser/resource_request_info.h"
|
||||
#include "net/http/http_response_headers.h"
|
||||
|
||||
class GURL;
|
||||
|
||||
namespace content {
|
||||
class ClientCertificateDelegate;
|
||||
class WebContents;
|
||||
}
|
||||
|
||||
namespace net {
|
||||
class SSLCertRequestInfo;
|
||||
class X509Certificate;
|
||||
}
|
||||
|
||||
namespace android_webview {
|
||||
|
||||
// browser/ layer interface for AwContensClientBridge, as DEPS prevents this
|
||||
// layer from depending on native/ where the implementation lives. The
|
||||
// implementor of the base class plumbs the request to the Java side and
|
||||
// eventually to the webviewclient. This layering hides the details of
|
||||
// native/ from browser/ layer.
|
||||
class AwContentsClientBridgeBase {
|
||||
public:
|
||||
// Adds the handler to the UserData registry.
|
||||
static void Associate(content::WebContents* web_contents,
|
||||
AwContentsClientBridgeBase* handler);
|
||||
static AwContentsClientBridgeBase* FromWebContents(
|
||||
content::WebContents* web_contents);
|
||||
static AwContentsClientBridgeBase* FromWebContentsGetter(
|
||||
const content::ResourceRequestInfo::WebContentsGetter&
|
||||
web_contents_getter);
|
||||
static AwContentsClientBridgeBase* FromID(int render_process_id,
|
||||
int render_frame_id);
|
||||
|
||||
virtual ~AwContentsClientBridgeBase();
|
||||
|
||||
virtual void AllowCertificateError(
|
||||
int cert_error,
|
||||
net::X509Certificate* cert,
|
||||
const GURL& request_url,
|
||||
const base::Callback<void(content::CertificateRequestResultType)>&
|
||||
callback,
|
||||
bool* cancel_request) = 0;
|
||||
virtual void SelectClientCertificate(
|
||||
net::SSLCertRequestInfo* cert_request_info,
|
||||
std::unique_ptr<content::ClientCertificateDelegate> delegate) = 0;
|
||||
|
||||
virtual void RunJavaScriptDialog(
|
||||
content::JavaScriptDialogType dialog_type,
|
||||
const GURL& origin_url,
|
||||
const base::string16& message_text,
|
||||
const base::string16& default_prompt_text,
|
||||
const content::JavaScriptDialogManager::DialogClosedCallback&
|
||||
callback) = 0;
|
||||
|
||||
virtual void RunBeforeUnloadDialog(
|
||||
const GURL& origin_url,
|
||||
const content::JavaScriptDialogManager::DialogClosedCallback& callback)
|
||||
= 0;
|
||||
|
||||
virtual bool ShouldOverrideUrlLoading(const base::string16& url,
|
||||
bool has_user_gesture,
|
||||
bool is_redirect,
|
||||
bool is_main_frame) = 0;
|
||||
|
||||
virtual void NewDownload(const GURL& url,
|
||||
const std::string& user_agent,
|
||||
const std::string& content_disposition,
|
||||
const std::string& mime_type,
|
||||
int64_t content_length) = 0;
|
||||
|
||||
// Called when a new login request is detected. See the documentation for
|
||||
// WebViewClient.onReceivedLoginRequest for arguments. Note that |account|
|
||||
// may be empty.
|
||||
virtual void NewLoginRequest(const std::string& realm,
|
||||
const std::string& account,
|
||||
const std::string& args) = 0;
|
||||
|
||||
// Called when a resource loading error has occured (e.g. an I/O error,
|
||||
// host name lookup failure etc.)
|
||||
virtual void OnReceivedError(const AwWebResourceRequest& request,
|
||||
int error_code) = 0;
|
||||
|
||||
// Called when a response from the server is received with status code >= 400.
|
||||
virtual void OnReceivedHttpError(
|
||||
const AwWebResourceRequest& request,
|
||||
const scoped_refptr<const net::HttpResponseHeaders>&
|
||||
response_headers) = 0;
|
||||
};
|
||||
|
||||
} // namespace android_webview
|
||||
|
||||
#endif // ANDROID_WEBVIEW_BROWSER_AW_CONTENTS_CLIENT_BRIDGE_BASE_H_
|
@ -4,7 +4,7 @@
|
||||
|
||||
#include "android_webview/browser/aw_javascript_dialog_manager.h"
|
||||
|
||||
#include "android_webview/browser/aw_contents_client_bridge_base.h"
|
||||
#include "android_webview/browser/aw_contents_client_bridge.h"
|
||||
#include "content/public/browser/javascript_dialog_manager.h"
|
||||
#include "content/public/browser/web_contents.h"
|
||||
|
||||
@ -22,8 +22,8 @@ void AwJavaScriptDialogManager::RunJavaScriptDialog(
|
||||
const base::string16& default_prompt_text,
|
||||
const DialogClosedCallback& callback,
|
||||
bool* did_suppress_message) {
|
||||
AwContentsClientBridgeBase* bridge =
|
||||
AwContentsClientBridgeBase::FromWebContents(web_contents);
|
||||
AwContentsClientBridge* bridge =
|
||||
AwContentsClientBridge::FromWebContents(web_contents);
|
||||
if (!bridge) {
|
||||
callback.Run(false, base::string16());
|
||||
return;
|
||||
@ -37,8 +37,8 @@ void AwJavaScriptDialogManager::RunBeforeUnloadDialog(
|
||||
content::WebContents* web_contents,
|
||||
bool is_reload,
|
||||
const DialogClosedCallback& callback) {
|
||||
AwContentsClientBridgeBase* bridge =
|
||||
AwContentsClientBridgeBase::FromWebContents(web_contents);
|
||||
AwContentsClientBridge* bridge =
|
||||
AwContentsClientBridge::FromWebContents(web_contents);
|
||||
if (!bridge) {
|
||||
callback.Run(false, base::string16());
|
||||
return;
|
||||
|
@ -5,7 +5,7 @@
|
||||
#include "android_webview/browser/net/aw_network_delegate.h"
|
||||
|
||||
#include "android_webview/browser/aw_browser_context.h"
|
||||
#include "android_webview/browser/aw_contents_client_bridge_base.h"
|
||||
#include "android_webview/browser/aw_contents_client_bridge.h"
|
||||
#include "android_webview/browser/aw_contents_io_thread_client.h"
|
||||
#include "android_webview/browser/aw_cookie_access_policy.h"
|
||||
#include "android_webview/browser/net/aw_web_resource_request.h"
|
||||
@ -30,8 +30,8 @@ void OnReceivedHttpErrorOnUiThread(
|
||||
const content::ResourceRequestInfo::WebContentsGetter& web_contents_getter,
|
||||
const AwWebResourceRequest& request,
|
||||
scoped_refptr<const net::HttpResponseHeaders> original_response_headers) {
|
||||
AwContentsClientBridgeBase* client =
|
||||
AwContentsClientBridgeBase::FromWebContentsGetter(web_contents_getter);
|
||||
AwContentsClientBridge* client =
|
||||
AwContentsClientBridge::FromWebContentsGetter(web_contents_getter);
|
||||
if (!client) {
|
||||
DLOG(WARNING) << "client is null, onReceivedHttpError dropped for "
|
||||
<< request.url;
|
||||
|
@ -8,7 +8,7 @@
|
||||
#include <string>
|
||||
|
||||
#include "android_webview/browser/aw_browser_context.h"
|
||||
#include "android_webview/browser/aw_contents_client_bridge_base.h"
|
||||
#include "android_webview/browser/aw_contents_client_bridge.h"
|
||||
#include "android_webview/browser/aw_contents_io_thread_client.h"
|
||||
#include "android_webview/browser/aw_login_delegate.h"
|
||||
#include "android_webview/browser/aw_resource_context.h"
|
||||
@ -34,7 +34,7 @@
|
||||
#include "url/url_constants.h"
|
||||
|
||||
using android_webview::AwContentsIoThreadClient;
|
||||
using android_webview::AwContentsClientBridgeBase;
|
||||
using android_webview::AwContentsClientBridge;
|
||||
using android_webview::AwWebResourceRequest;
|
||||
using content::BrowserThread;
|
||||
using content::ResourceType;
|
||||
@ -69,8 +69,8 @@ void DownloadStartingOnUIThread(
|
||||
const std::string& content_disposition,
|
||||
const std::string& mime_type,
|
||||
int64_t content_length) {
|
||||
AwContentsClientBridgeBase* client =
|
||||
AwContentsClientBridgeBase::FromWebContentsGetter(web_contents_getter);
|
||||
AwContentsClientBridge* client =
|
||||
AwContentsClientBridge::FromWebContentsGetter(web_contents_getter);
|
||||
if (!client)
|
||||
return;
|
||||
client->NewDownload(url, user_agent, content_disposition, mime_type,
|
||||
@ -82,8 +82,8 @@ void NewLoginRequestOnUIThread(
|
||||
const std::string& realm,
|
||||
const std::string& account,
|
||||
const std::string& args) {
|
||||
AwContentsClientBridgeBase* client =
|
||||
AwContentsClientBridgeBase::FromWebContentsGetter(web_contents_getter);
|
||||
AwContentsClientBridge* client =
|
||||
AwContentsClientBridge::FromWebContentsGetter(web_contents_getter);
|
||||
if (!client)
|
||||
return;
|
||||
client->NewLoginRequest(realm, account, args);
|
||||
@ -93,8 +93,8 @@ void OnReceivedErrorOnUiThread(
|
||||
const content::ResourceRequestInfo::WebContentsGetter& web_contents_getter,
|
||||
const AwWebResourceRequest& request,
|
||||
int error_code) {
|
||||
AwContentsClientBridgeBase* client =
|
||||
AwContentsClientBridgeBase::FromWebContentsGetter(web_contents_getter);
|
||||
AwContentsClientBridge* client =
|
||||
AwContentsClientBridge::FromWebContentsGetter(web_contents_getter);
|
||||
if (!client) {
|
||||
DLOG(WARNING) << "client is null, onReceivedError dropped for "
|
||||
<< request.url;
|
||||
|
Reference in New Issue
Block a user