Index: content/renderer/render_view_impl.cc |
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc |
index b498938ad257d928dec60703ff296a4d797e925e..35761dde79814a6c021650908519f950048f90b4 100644 |
--- a/content/renderer/render_view_impl.cc |
+++ b/content/renderer/render_view_impl.cc |
@@ -2325,18 +2325,24 @@ WebNavigationPolicy RenderViewImpl::decidePolicyForNavigation( |
// If the browser is interested, then give it a chance to look at top level |
// navigations. |
- if (is_content_initiated) { |
- bool browser_handles_top_level_requests = |
- renderer_preferences_.browser_handles_top_level_requests && |
- IsNonLocalTopLevelNavigation(url, frame, type); |
- if (browser_handles_top_level_requests || |
+ if (renderer_preferences_.browser_handles_top_level_requests) { |
+ if (IsNonLocalTopLevelNavigation(url, frame, type) || |
renderer_preferences_.browser_handles_all_requests) { |
// Reset these counters as the RenderView could be reused for the next |
// navigation. |
page_id_ = -1; |
last_page_id_sent_to_browser_ = -1; |
- OpenURL(frame, url, referrer, default_policy); |
- return WebKit::WebNavigationPolicyIgnore; // Suppress the load here. |
+ bool ignore_navigation = false; |
+ Send(new ViewHostMsg_ShouldIgnoreNavigation( |
+ routing_id_, |
+ url, |
+ referrer, |
+ NavigationPolicyToDisposition(default_policy), |
+ frame->identifier(), |
+ is_content_initiated, |
+ &ignore_navigation)); |
+ if (ignore_navigation) |
+ return WebKit::WebNavigationPolicyIgnore; |
} |
} |