Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(993)

Unified Diff: android_webview/renderer/aw_content_renderer_client.cc

Issue 1155713005: Use a resource throttle to implement shouldOverrideUrlLoading. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix trybot failure (use static inner class in instrumentation test) Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: android_webview/renderer/aw_content_renderer_client.cc
diff --git a/android_webview/renderer/aw_content_renderer_client.cc b/android_webview/renderer/aw_content_renderer_client.cc
index ea4b0bd3b628757f69886d3a78e4e2945b9b603f..3b4c1b8933273fb89d5f92975adb5e2ea2103abf 100644
--- a/android_webview/renderer/aw_content_renderer_client.cc
+++ b/android_webview/renderer/aw_content_renderer_client.cc
@@ -65,60 +65,6 @@ void AwContentRendererClient::RenderThreadStarted() {
thread->AddObserver(visited_link_slave_.get());
}
-bool AwContentRendererClient::HandleNavigation(
- content::RenderFrame* render_frame,
- content::DocumentState* document_state,
- int opener_id,
- blink::WebFrame* frame,
- const blink::WebURLRequest& request,
- blink::WebNavigationType type,
- blink::WebNavigationPolicy default_policy,
- bool is_redirect) {
-
- // Only GETs can be overridden.
- if (!request.httpMethod().equals("GET"))
- return false;
-
- // Any navigation from loadUrl, and goBack/Forward are considered application-
- // initiated and hence will not yield a shouldOverrideUrlLoading() callback.
- // Webview classic does not consider reload application-initiated so we
- // continue the same behavior.
- // TODO(sgurun) is_content_initiated is normally false for cross-origin
- // navigations but since android_webview does not swap out renderers, this
- // works fine. This will stop working if android_webview starts swapping out
- // renderers on navigation.
- bool application_initiated =
- !document_state->navigation_state()->IsContentInitiated() ||
- type == blink::WebNavigationTypeBackForward;
-
- // Don't offer application-initiated navigations unless it's a redirect.
- if (application_initiated && !is_redirect)
- return false;
-
- const GURL& gurl = request.url();
- // For HTTP schemes, only top-level navigations can be overridden. Similarly,
- // WebView Classic lets app override only top level about:blank navigations.
- // So we filter out non-top about:blank navigations here.
- if (frame->parent() &&
- (gurl.SchemeIs(url::kHttpScheme) || gurl.SchemeIs(url::kHttpsScheme) ||
- gurl.SchemeIs(url::kAboutScheme)))
- return false;
-
- // use NavigationInterception throttle to handle the call as that can
- // be deferred until after the java side has been constructed.
- if (opener_id != MSG_ROUTING_NONE) {
- return false;
- }
-
- bool ignore_navigation = false;
- base::string16 url = request.url().string();
-
- int render_frame_id = render_frame->GetRoutingID();
- RenderThread::Get()->Send(new AwViewHostMsg_ShouldOverrideUrlLoading(
- render_frame_id, url, &ignore_navigation));
- return ignore_navigation;
-}
-
void AwContentRendererClient::RenderFrameCreated(
content::RenderFrame* render_frame) {
new AwContentSettingsClient(render_frame);

Powered by Google App Engine
This is Rietveld 408576698