Index: android_webview/browser/aw_content_browser_client.cc |
diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webview/browser/aw_content_browser_client.cc |
index 61d5f79dd68f56ae93e5c2ded776d24ffca3e4f3..2c243784c8138d3d5b4b3c2d932453be0613c9f2 100644 |
--- a/android_webview/browser/aw_content_browser_client.cc |
+++ b/android_webview/browser/aw_content_browser_client.cc |
@@ -29,7 +29,6 @@ |
#include "components/navigation_interception/intercept_navigation_delegate.h" |
#include "content/public/browser/access_token_store.h" |
#include "content/public/browser/browser_message_filter.h" |
-#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/child_process_security_policy.h" |
#include "content/public/browser/client_certificate_delegate.h" |
#include "content/public/browser/navigation_handle.h" |
@@ -48,7 +47,6 @@ |
#include "ui/base/resource/resource_bundle_android.h" |
#include "ui/resources/grit/ui_resources.h" |
-using content::BrowserThread; |
using content::ResourceType; |
namespace android_webview { |
@@ -62,16 +60,8 @@ public: |
explicit AwContentsMessageFilter(int process_id); |
// BrowserMessageFilter methods. |
- void OverrideThreadForMessage(const IPC::Message& message, |
- BrowserThread::ID* thread) override; |
bool OnMessageReceived(const IPC::Message& message) override; |
- void OnShouldOverrideUrlLoading(int routing_id, |
- const base::string16& url, |
- bool has_user_gesture, |
- bool is_redirect, |
- bool is_main_frame, |
- bool* ignore_navigation); |
void OnSubFrameCreated(int parent_render_frame_id, int child_render_frame_id); |
private: |
@@ -90,45 +80,15 @@ AwContentsMessageFilter::AwContentsMessageFilter(int process_id) |
AwContentsMessageFilter::~AwContentsMessageFilter() { |
} |
-void AwContentsMessageFilter::OverrideThreadForMessage( |
- const IPC::Message& message, |
- BrowserThread::ID* thread) { |
- if (message.type() == AwViewHostMsg_ShouldOverrideUrlLoading::ID) { |
- *thread = BrowserThread::UI; |
- } |
-} |
- |
bool AwContentsMessageFilter::OnMessageReceived(const IPC::Message& message) { |
bool handled = true; |
IPC_BEGIN_MESSAGE_MAP(AwContentsMessageFilter, message) |
- IPC_MESSAGE_HANDLER(AwViewHostMsg_ShouldOverrideUrlLoading, |
- OnShouldOverrideUrlLoading) |
IPC_MESSAGE_HANDLER(AwViewHostMsg_SubFrameCreated, OnSubFrameCreated) |
IPC_MESSAGE_UNHANDLED(handled = false) |
IPC_END_MESSAGE_MAP() |
return handled; |
} |
-void AwContentsMessageFilter::OnShouldOverrideUrlLoading( |
- int render_frame_id, |
- const base::string16& url, |
- bool has_user_gesture, |
- bool is_redirect, |
- bool is_main_frame, |
- bool* ignore_navigation) { |
- DCHECK_CURRENTLY_ON(BrowserThread::UI); |
- *ignore_navigation = false; |
- AwContentsClientBridgeBase* client = |
- AwContentsClientBridgeBase::FromID(process_id_, render_frame_id); |
- if (client) { |
- *ignore_navigation = client->ShouldOverrideUrlLoading( |
- url, has_user_gesture, is_redirect, is_main_frame); |
- } else { |
- LOG(WARNING) << "Failed to find the associated render view host for url: " |
- << url; |
- } |
-} |
- |
void AwContentsMessageFilter::OnSubFrameCreated(int parent_render_frame_id, |
int child_render_frame_id) { |
AwContentsIoThreadClient::SubFrameCreated( |
@@ -543,10 +503,10 @@ ScopedVector<content::NavigationThrottle> |
AwContentBrowserClient::CreateThrottlesForNavigation( |
content::NavigationHandle* navigation_handle) { |
ScopedVector<content::NavigationThrottle> throttles; |
- // We allow intercepting only navigations within main frames. This |
- // is used to post onPageStarted. We handle shouldOverrideUrlLoading |
- // via a sync IPC. |
- if (navigation_handle->IsInMainFrame()) { |
+ if (navigation_handle->IsInMainFrame() || |
+ (!navigation_handle->GetURL().SchemeIs(url::kHttpScheme) && |
+ !navigation_handle->GetURL().SchemeIs(url::kHttpsScheme) && |
+ !navigation_handle->GetURL().SchemeIs(url::kAboutScheme))) { |
throttles.push_back( |
navigation_interception::InterceptNavigationDelegate::CreateThrottleFor( |
navigation_handle) |