 Chromium Code Reviews
 Chromium Code Reviews Issue 9978015:
  Make browser_handles_top_level_requests synchronous.  (Closed) 
  Base URL: svn://svn.chromium.org/chrome/trunk/src
    
  
    Issue 9978015:
  Make browser_handles_top_level_requests synchronous.  (Closed) 
  Base URL: svn://svn.chromium.org/chrome/trunk/src| Index: content/renderer/render_view_impl.cc | 
| diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc | 
| index 8103dc5789f5a0a289609077a5e79c0c31aa752c..b421bc20cea9bf2ec7701a13146b2e26d9632fc7 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)); | 
| 
ananta
2012/04/10 19:45:45
Would not do the right thing for ChromeFrame as me
 | 
| + if (ignore_navigation) | 
| + return WebKit::WebNavigationPolicyIgnore; | 
| } | 
| } |