Chromium Code Reviews| 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; |
| } |
| } |