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