Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(189)

Side by Side Diff: content/renderer/render_view_impl.cc

Issue 24503004: Show IDN in error screens (DNS failure etc.) (Closed) Base URL: https://src.chromium.org/chrome/trunk/src/
Patch Set: Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « content/renderer/render_view_impl.h ('k') | content/test/net/url_request_failed_job.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_impl.h" 5 #include "content/renderer/render_view_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 2179 matching lines...) Expand 10 before | Expand all | Expand 10 after
2190 const WebURLError& error, 2190 const WebURLError& error,
2191 const std::string& html, 2191 const std::string& html,
2192 bool replace) { 2192 bool replace) {
2193 std::string alt_html; 2193 std::string alt_html;
2194 const std::string* error_html; 2194 const std::string* error_html;
2195 2195
2196 if (!html.empty()) { 2196 if (!html.empty()) {
2197 error_html = &html; 2197 error_html = &html;
2198 } else { 2198 } else {
2199 GetContentClient()->renderer()->GetNavigationErrorStrings( 2199 GetContentClient()->renderer()->GetNavigationErrorStrings(
2200 frame, failed_request, error, &alt_html, NULL); 2200 frame, failed_request, error, renderer_preferences_.accept_languages,
2201 &alt_html, NULL);
2201 error_html = &alt_html; 2202 error_html = &alt_html;
2202 } 2203 }
2203 2204
2204 frame->loadHTMLString(*error_html, 2205 frame->loadHTMLString(*error_html,
2205 GURL(kUnreachableWebDataURL), 2206 GURL(kUnreachableWebDataURL),
2206 error.unreachableURL, 2207 error.unreachableURL,
2207 replace); 2208 replace);
2208 } 2209 }
2209 2210
2210 bool RenderViewImpl::RunJavaScriptMessage(JavaScriptMessageType type, 2211 bool RenderViewImpl::RunJavaScriptMessage(JavaScriptMessageType type,
(...skipping 933 matching lines...) Expand 10 before | Expand all | Expand 10 after
3144 3145
3145 SSLStatus ssl_status; 3146 SSLStatus ssl_status;
3146 DeserializeSecurityInfo(security_info, 3147 DeserializeSecurityInfo(security_info,
3147 &ssl_status.cert_id, 3148 &ssl_status.cert_id,
3148 &ssl_status.cert_status, 3149 &ssl_status.cert_status,
3149 &ssl_status.security_bits, 3150 &ssl_status.security_bits,
3150 &ssl_status.connection_status); 3151 &ssl_status.connection_status);
3151 return ssl_status; 3152 return ssl_status;
3152 } 3153 }
3153 3154
3155 const std::string& RenderViewImpl::GetAcceptLanguages() const {
3156 return renderer_preferences_.accept_languages;
3157 }
3158
3154 WebNavigationPolicy RenderViewImpl::decidePolicyForNavigation( 3159 WebNavigationPolicy RenderViewImpl::decidePolicyForNavigation(
3155 WebFrame* frame, WebDataSource::ExtraData* extraData, 3160 WebFrame* frame, WebDataSource::ExtraData* extraData,
3156 const WebURLRequest& request, WebNavigationType type, 3161 const WebURLRequest& request, WebNavigationType type,
3157 WebNavigationPolicy default_policy, bool is_redirect) { 3162 WebNavigationPolicy default_policy, bool is_redirect) {
3158 if (request.url() != GURL(kSwappedOutURL) && 3163 if (request.url() != GURL(kSwappedOutURL) &&
3159 GetContentClient()->renderer()->HandleNavigation(frame, request, type, 3164 GetContentClient()->renderer()->HandleNavigation(frame, request, type,
3160 default_policy, 3165 default_policy,
3161 is_redirect)) { 3166 is_redirect)) {
3162 return WebKit::WebNavigationPolicyIgnore; 3167 return WebKit::WebNavigationPolicyIgnore;
3163 } 3168 }
(...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after
3634 EqualsASCII(failed_request.httpMethod(), "POST")); 3639 EqualsASCII(failed_request.httpMethod(), "POST"));
3635 3640
3636 ViewHostMsg_DidFailProvisionalLoadWithError_Params params; 3641 ViewHostMsg_DidFailProvisionalLoadWithError_Params params;
3637 params.frame_id = frame->identifier(); 3642 params.frame_id = frame->identifier();
3638 params.is_main_frame = !frame->parent(); 3643 params.is_main_frame = !frame->parent();
3639 params.error_code = error.reason; 3644 params.error_code = error.reason;
3640 GetContentClient()->renderer()->GetNavigationErrorStrings( 3645 GetContentClient()->renderer()->GetNavigationErrorStrings(
3641 frame, 3646 frame,
3642 failed_request, 3647 failed_request,
3643 error, 3648 error,
3649 renderer_preferences_.accept_languages,
3644 NULL, 3650 NULL,
3645 &params.error_description); 3651 &params.error_description);
3646 params.url = error.unreachableURL; 3652 params.url = error.unreachableURL;
3647 params.showing_repost_interstitial = show_repost_interstitial; 3653 params.showing_repost_interstitial = show_repost_interstitial;
3648 Send(new ViewHostMsg_DidFailProvisionalLoadWithError( 3654 Send(new ViewHostMsg_DidFailProvisionalLoadWithError(
3649 routing_id_, params)); 3655 routing_id_, params));
3650 3656
3651 // Don't display an error page if this is simply a cancelled load. Aside 3657 // Don't display an error page if this is simply a cancelled load. Aside
3652 // from being dumb, WebCore doesn't expect it and it will cause a crash. 3658 // from being dumb, WebCore doesn't expect it and it will cause a crash.
3653 if (error.reason == net::ERR_ABORTED) 3659 if (error.reason == net::ERR_ABORTED)
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
3888 3894
3889 3895
3890 FOR_EACH_OBSERVER(RenderViewObserver, observers_, DidFailLoad(frame, error)); 3896 FOR_EACH_OBSERVER(RenderViewObserver, observers_, DidFailLoad(frame, error));
3891 3897
3892 const WebURLRequest& failed_request = ds->request(); 3898 const WebURLRequest& failed_request = ds->request();
3893 string16 error_description; 3899 string16 error_description;
3894 GetContentClient()->renderer()->GetNavigationErrorStrings( 3900 GetContentClient()->renderer()->GetNavigationErrorStrings(
3895 frame, 3901 frame,
3896 failed_request, 3902 failed_request,
3897 error, 3903 error,
3904 renderer_preferences_.accept_languages,
3898 NULL, 3905 NULL,
3899 &error_description); 3906 &error_description);
3900 Send(new ViewHostMsg_DidFailLoadWithError(routing_id_, 3907 Send(new ViewHostMsg_DidFailLoadWithError(routing_id_,
3901 frame->identifier(), 3908 frame->identifier(),
3902 failed_request.url(), 3909 failed_request.url(),
3903 !frame->parent(), 3910 !frame->parent(),
3904 error.reason, 3911 error.reason,
3905 error_description)); 3912 error_description));
3906 } 3913 }
3907 3914
(...skipping 676 matching lines...) Expand 10 before | Expand all | Expand 10 after
4584 if (!alternate_error_page_url_.is_valid()) 4591 if (!alternate_error_page_url_.is_valid())
4585 return GURL(); 4592 return GURL();
4586 4593
4587 // Strip query params from the failed URL. 4594 // Strip query params from the failed URL.
4588 GURL::Replacements remove_params; 4595 GURL::Replacements remove_params;
4589 remove_params.ClearUsername(); 4596 remove_params.ClearUsername();
4590 remove_params.ClearPassword(); 4597 remove_params.ClearPassword();
4591 remove_params.ClearQuery(); 4598 remove_params.ClearQuery();
4592 remove_params.ClearRef(); 4599 remove_params.ClearRef();
4593 const GURL url_to_send = failed_url.ReplaceComponents(remove_params); 4600 const GURL url_to_send = failed_url.ReplaceComponents(remove_params);
4601 // TODO(yuusuke): change to net::FormatUrl when link doctor
4602 // becomes unicode-capable.
4594 std::string spec_to_send = url_to_send.spec(); 4603 std::string spec_to_send = url_to_send.spec();
4595 // Notify link doctor of the url truncation by sending of "?" at the end. 4604 // Notify link doctor of the url truncation by sending of "?" at the end.
4596 if (failed_url.has_query()) 4605 if (failed_url.has_query())
4597 spec_to_send.append("?"); 4606 spec_to_send.append("?");
4598 4607
4599 // Construct the query params to send to link doctor. 4608 // Construct the query params to send to link doctor.
4600 std::string params(alternate_error_page_url_.query()); 4609 std::string params(alternate_error_page_url_.query());
4601 params.append("&url="); 4610 params.append("&url=");
4602 params.append(net::EscapeQueryParamValue(spec_to_send, true)); 4611 params.append(net::EscapeQueryParamValue(spec_to_send, true));
4603 params.append("&sourceid=chrome"); 4612 params.append("&sourceid=chrome");
(...skipping 1919 matching lines...) Expand 10 before | Expand all | Expand 10 after
6523 for (size_t i = 0; i < icon_urls.size(); i++) { 6532 for (size_t i = 0; i < icon_urls.size(); i++) {
6524 WebURL url = icon_urls[i].iconURL(); 6533 WebURL url = icon_urls[i].iconURL();
6525 if (!url.isEmpty()) 6534 if (!url.isEmpty())
6526 urls.push_back(FaviconURL(url, 6535 urls.push_back(FaviconURL(url,
6527 ToFaviconType(icon_urls[i].iconType()))); 6536 ToFaviconType(icon_urls[i].iconType())));
6528 } 6537 }
6529 SendUpdateFaviconURL(urls); 6538 SendUpdateFaviconURL(urls);
6530 } 6539 }
6531 6540
6532 } // namespace content 6541 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_view_impl.h ('k') | content/test/net/url_request_failed_job.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698