OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "content/renderer/render_view.h" | 5 #include "content/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 1241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1252 frame->identifier())); | 1252 frame->identifier())); |
1253 } | 1253 } |
1254 | 1254 |
1255 // WebViewDelegate ------------------------------------------------------------ | 1255 // WebViewDelegate ------------------------------------------------------------ |
1256 | 1256 |
1257 void RenderView::LoadNavigationErrorPage(WebFrame* frame, | 1257 void RenderView::LoadNavigationErrorPage(WebFrame* frame, |
1258 const WebURLRequest& failed_request, | 1258 const WebURLRequest& failed_request, |
1259 const WebURLError& error, | 1259 const WebURLError& error, |
1260 const std::string& html, | 1260 const std::string& html, |
1261 bool replace) { | 1261 bool replace) { |
1262 std::string alt_html = !html.empty() ? html : | 1262 std::string alt_html; |
1263 content::GetContentClient()->renderer()->GetNavigationErrorHtml( | 1263 const std::string* error_html; |
1264 failed_request, error); | 1264 |
1265 frame->loadHTMLString(alt_html, | 1265 if (!html.empty()) { |
| 1266 error_html = &html; |
| 1267 } else { |
| 1268 content::GetContentClient()->renderer()->GetNavigationErrorStrings( |
| 1269 failed_request, error, &alt_html, NULL); |
| 1270 error_html = &alt_html; |
| 1271 } |
| 1272 |
| 1273 frame->loadHTMLString(*error_html, |
1266 GURL(chrome::kUnreachableWebDataURL), | 1274 GURL(chrome::kUnreachableWebDataURL), |
1267 error.unreachableURL, | 1275 error.unreachableURL, |
1268 replace); | 1276 replace); |
1269 } | 1277 } |
1270 | 1278 |
1271 bool RenderView::RunJavaScriptMessage(int type, | 1279 bool RenderView::RunJavaScriptMessage(int type, |
1272 const string16& message, | 1280 const string16& message, |
1273 const string16& default_value, | 1281 const string16& default_value, |
1274 const GURL& frame_url, | 1282 const GURL& frame_url, |
1275 string16* result) { | 1283 string16* result) { |
(...skipping 1069 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2345 DCHECK(ds); | 2353 DCHECK(ds); |
2346 | 2354 |
2347 const WebURLRequest& failed_request = ds->request(); | 2355 const WebURLRequest& failed_request = ds->request(); |
2348 | 2356 |
2349 FOR_EACH_OBSERVER( | 2357 FOR_EACH_OBSERVER( |
2350 RenderViewObserver, observers_, DidFailProvisionalLoad(frame, error)); | 2358 RenderViewObserver, observers_, DidFailProvisionalLoad(frame, error)); |
2351 | 2359 |
2352 bool show_repost_interstitial = | 2360 bool show_repost_interstitial = |
2353 (error.reason == net::ERR_CACHE_MISS && | 2361 (error.reason == net::ERR_CACHE_MISS && |
2354 EqualsASCII(failed_request.httpMethod(), "POST")); | 2362 EqualsASCII(failed_request.httpMethod(), "POST")); |
| 2363 |
| 2364 ViewHostMsg_DidFailProvisionalLoadWithError_Params params; |
| 2365 params.frame_id = frame->identifier(); |
| 2366 params.is_main_frame = !frame->parent(); |
| 2367 params.error_code = error.reason; |
| 2368 content::GetContentClient()->renderer()->GetNavigationErrorStrings( |
| 2369 failed_request, |
| 2370 error, |
| 2371 NULL, |
| 2372 ¶ms.error_description); |
| 2373 params.url = error.unreachableURL; |
| 2374 params.showing_repost_interstitial = show_repost_interstitial; |
2355 Send(new ViewHostMsg_DidFailProvisionalLoadWithError( | 2375 Send(new ViewHostMsg_DidFailProvisionalLoadWithError( |
2356 routing_id_, frame->identifier(), !frame->parent(), error.reason, | 2376 routing_id_, params)); |
2357 error.unreachableURL, show_repost_interstitial)); | |
2358 | 2377 |
2359 // Don't display an error page if this is simply a cancelled load. Aside | 2378 // Don't display an error page if this is simply a cancelled load. Aside |
2360 // from being dumb, WebCore doesn't expect it and it will cause a crash. | 2379 // from being dumb, WebCore doesn't expect it and it will cause a crash. |
2361 if (error.reason == net::ERR_ABORTED) | 2380 if (error.reason == net::ERR_ABORTED) |
2362 return; | 2381 return; |
2363 | 2382 |
2364 // Make sure we never show errors in view source mode. | 2383 // Make sure we never show errors in view source mode. |
2365 frame->enableViewSourceMode(false); | 2384 frame->enableViewSourceMode(false); |
2366 | 2385 |
2367 NavigationState* navigation_state = NavigationState::FromDataSource(ds); | 2386 NavigationState* navigation_state = NavigationState::FromDataSource(ds); |
(...skipping 2084 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4452 pepper_delegate_.OnLockMouseACK(succeeded); | 4471 pepper_delegate_.OnLockMouseACK(succeeded); |
4453 } | 4472 } |
4454 | 4473 |
4455 void RenderView::OnMouseLockLost() { | 4474 void RenderView::OnMouseLockLost() { |
4456 pepper_delegate_.OnMouseLockLost(); | 4475 pepper_delegate_.OnMouseLockLost(); |
4457 } | 4476 } |
4458 | 4477 |
4459 bool RenderView::WebWidgetHandlesCompositorScheduling() const { | 4478 bool RenderView::WebWidgetHandlesCompositorScheduling() const { |
4460 return webview()->settings()->useThreadedCompositor(); | 4479 return webview()->settings()->useThreadedCompositor(); |
4461 } | 4480 } |
OLD | NEW |