| 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;
|
| }
|
| }
|
|
|
|
|