OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/renderer/render_view.h" | 5 #include "chrome/renderer/render_view.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 1293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1304 const WebURLRequest& original_request = ds->originalRequest(); | 1304 const WebURLRequest& original_request = ds->originalRequest(); |
1305 const WebURLResponse& response = ds->response(); | 1305 const WebURLResponse& response = ds->response(); |
1306 | 1306 |
1307 NavigationState* navigation_state = NavigationState::FromDataSource(ds); | 1307 NavigationState* navigation_state = NavigationState::FromDataSource(ds); |
1308 DCHECK(navigation_state); | 1308 DCHECK(navigation_state); |
1309 | 1309 |
1310 ViewHostMsg_FrameNavigate_Params params; | 1310 ViewHostMsg_FrameNavigate_Params params; |
1311 params.http_status_code = response.httpStatusCode(); | 1311 params.http_status_code = response.httpStatusCode(); |
1312 params.is_post = false; | 1312 params.is_post = false; |
1313 params.page_id = page_id_; | 1313 params.page_id = page_id_; |
| 1314 params.frame_id = frame->identifier(); |
1314 params.is_content_filtered = response.isContentFiltered(); | 1315 params.is_content_filtered = response.isContentFiltered(); |
1315 params.was_within_same_page = navigation_state->was_within_same_page(); | 1316 params.was_within_same_page = navigation_state->was_within_same_page(); |
1316 if (!navigation_state->security_info().empty()) { | 1317 if (!navigation_state->security_info().empty()) { |
1317 // SSL state specified in the request takes precedence over the one in the | 1318 // SSL state specified in the request takes precedence over the one in the |
1318 // response. | 1319 // response. |
1319 // So far this is only intended for error pages that are not expected to be | 1320 // So far this is only intended for error pages that are not expected to be |
1320 // over ssl, so we should not get any clash. | 1321 // over ssl, so we should not get any clash. |
1321 DCHECK(response.securityInfo().isEmpty()); | 1322 DCHECK(response.securityInfo().isEmpty()); |
1322 params.security_info = navigation_state->security_info(); | 1323 params.security_info = navigation_state->security_info(); |
1323 } else { | 1324 } else { |
(...skipping 1553 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2877 | 2878 |
2878 // Make sure redirect tracking state is clear for the new load. | 2879 // Make sure redirect tracking state is clear for the new load. |
2879 completed_client_redirect_src_ = GURL(); | 2880 completed_client_redirect_src_ = GURL(); |
2880 } else if (frame->parent()->isLoading()) { | 2881 } else if (frame->parent()->isLoading()) { |
2881 // Take note of AUTO_SUBFRAME loads here, so that we can know how to | 2882 // Take note of AUTO_SUBFRAME loads here, so that we can know how to |
2882 // load an error page. See didFailProvisionalLoad. | 2883 // load an error page. See didFailProvisionalLoad. |
2883 navigation_state->set_transition_type(PageTransition::AUTO_SUBFRAME); | 2884 navigation_state->set_transition_type(PageTransition::AUTO_SUBFRAME); |
2884 } | 2885 } |
2885 | 2886 |
2886 Send(new ViewHostMsg_DidStartProvisionalLoadForFrame( | 2887 Send(new ViewHostMsg_DidStartProvisionalLoadForFrame( |
2887 routing_id_, is_top_most, ds->request().url())); | 2888 routing_id_, frame->identifier(), is_top_most, ds->request().url())); |
2888 } | 2889 } |
2889 | 2890 |
2890 void RenderView::didReceiveServerRedirectForProvisionalLoad(WebFrame* frame) { | 2891 void RenderView::didReceiveServerRedirectForProvisionalLoad(WebFrame* frame) { |
2891 if (frame->parent()) | 2892 if (frame->parent()) |
2892 return; | 2893 return; |
2893 // Received a redirect on the main frame. | 2894 // Received a redirect on the main frame. |
2894 WebDataSource* data_source = frame->provisionalDataSource(); | 2895 WebDataSource* data_source = frame->provisionalDataSource(); |
2895 if (!data_source) { | 2896 if (!data_source) { |
2896 // Should only be invoked when we have a data source. | 2897 // Should only be invoked when we have a data source. |
2897 NOTREACHED(); | 2898 NOTREACHED(); |
(...skipping 17 matching lines...) Expand all Loading... |
2915 // | 2916 // |
2916 WebDataSource* ds = frame->provisionalDataSource(); | 2917 WebDataSource* ds = frame->provisionalDataSource(); |
2917 DCHECK(ds); | 2918 DCHECK(ds); |
2918 | 2919 |
2919 const WebURLRequest& failed_request = ds->request(); | 2920 const WebURLRequest& failed_request = ds->request(); |
2920 | 2921 |
2921 bool show_repost_interstitial = | 2922 bool show_repost_interstitial = |
2922 (error.reason == net::ERR_CACHE_MISS && | 2923 (error.reason == net::ERR_CACHE_MISS && |
2923 EqualsASCII(failed_request.httpMethod(), "POST")); | 2924 EqualsASCII(failed_request.httpMethod(), "POST")); |
2924 Send(new ViewHostMsg_DidFailProvisionalLoadWithError( | 2925 Send(new ViewHostMsg_DidFailProvisionalLoadWithError( |
2925 routing_id_, !frame->parent(), error.reason, error.unreachableURL, | 2926 routing_id_, frame->identifier(), !frame->parent(), error.reason, |
2926 show_repost_interstitial)); | 2927 error.unreachableURL, show_repost_interstitial)); |
2927 | 2928 |
2928 // Don't display an error page if this is simply a cancelled load. Aside | 2929 // Don't display an error page if this is simply a cancelled load. Aside |
2929 // from being dumb, WebCore doesn't expect it and it will cause a crash. | 2930 // from being dumb, WebCore doesn't expect it and it will cause a crash. |
2930 if (error.reason == net::ERR_ABORTED) | 2931 if (error.reason == net::ERR_ABORTED) |
2931 return; | 2932 return; |
2932 | 2933 |
2933 // Make sure we never show errors in view source mode. | 2934 // Make sure we never show errors in view source mode. |
2934 frame->enableViewSourceMode(false); | 2935 frame->enableViewSourceMode(false); |
2935 | 2936 |
2936 NavigationState* navigation_state = NavigationState::FromDataSource(ds); | 2937 NavigationState* navigation_state = NavigationState::FromDataSource(ds); |
(...skipping 2981 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5918 } | 5919 } |
5919 | 5920 |
5920 void RenderView::OnAsyncFileOpened(base::PlatformFileError error_code, | 5921 void RenderView::OnAsyncFileOpened(base::PlatformFileError error_code, |
5921 IPC::PlatformFileForTransit file_for_transit, | 5922 IPC::PlatformFileForTransit file_for_transit, |
5922 int message_id) { | 5923 int message_id) { |
5923 pepper_delegate_.OnAsyncFileOpened( | 5924 pepper_delegate_.OnAsyncFileOpened( |
5924 error_code, | 5925 error_code, |
5925 IPC::PlatformFileForTransitToPlatformFile(file_for_transit), | 5926 IPC::PlatformFileForTransitToPlatformFile(file_for_transit), |
5926 message_id); | 5927 message_id); |
5927 } | 5928 } |
OLD | NEW |