summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/net/net_error_helper.cc
diff options
context:
space:
mode:
authormmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-27 04:00:16 +0000
committermmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-27 04:00:16 +0000
commite467c5786b2260acff6819ae54cab6b1be65dcad (patch)
treed62635035b4e895149868ef66deca1973e2ec870 /chrome/renderer/net/net_error_helper.cc
parent3d49ce4871cca63a6cda09dae0bb82489cd6b081 (diff)
downloadchromium_src-e467c5786b2260acff6819ae54cab6b1be65dcad.zip
chromium_src-e467c5786b2260acff6819ae54cab6b1be65dcad.tar.gz
chromium_src-e467c5786b2260acff6819ae54cab6b1be65dcad.tar.bz2
This is a reland of 194514, which was reverted in 195014 due to
dereferencing a NULL pointer when the alternate error page fetcher failed to load and passed it a NULL WebURLRequest. A separate CL (https://codereview.chromium.org/14273011/) made the alt error page fetcher send the real request, and another CL (https://codereview.chromium.org/14412002/) added a regression test for the case that was crashing. > New network error page: Fix resubmit warning when > navigating forward / back to a page generated by a > POST that can not be retrieved from the CACHE. > > This was broken (knowingly) in revision 191712 > (https://codereview.chromium.org/12277011/). > > BUG=174194,226909 > > Original Review URL: https://codereview.chromium.org/13811022 > > Revert Review URL: https://codereview.chromium.org/14369002 TBR=thakis@chromium.org BUG=174194,226909 Review URL: https://chromiumcodereview.appspot.com/14297027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@196934 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/net/net_error_helper.cc')
-rw-r--r--chrome/renderer/net/net_error_helper.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/chrome/renderer/net/net_error_helper.cc b/chrome/renderer/net/net_error_helper.cc
index 3e7b9ee..e53a906 100644
--- a/chrome/renderer/net/net_error_helper.cc
+++ b/chrome/renderer/net/net_error_helper.cc
@@ -101,7 +101,8 @@ NetErrorHelper::NetErrorHelper(RenderView* render_view)
&NetErrorHelper::TrackerCallback,
base::Unretained(this)))),
dns_error_page_state_(NetErrorTracker::DNS_ERROR_PAGE_NONE),
- updated_error_page_(false) {
+ updated_error_page_(false),
+ is_failed_post_(false) {
}
NetErrorHelper::~NetErrorHelper() {
@@ -113,6 +114,9 @@ void NetErrorHelper::DidStartProvisionalLoad(WebKit::WebFrame* frame) {
void NetErrorHelper::DidFailProvisionalLoad(WebKit::WebFrame* frame,
const WebKit::WebURLError& error) {
+ WebKit::WebDataSource* data_source = frame->provisionalDataSource();
+ const WebKit::WebURLRequest& failed_request = data_source->request();
+ is_failed_post_ = EqualsASCII(failed_request.httpMethod(), "POST");
tracker_.OnFailProvisionalLoad(GetFrameType(frame), GetErrorType(error));
}
@@ -180,8 +184,9 @@ void NetErrorHelper::UpdateErrorPage(DnsProbeResult dns_probe_result) {
DictionaryValue error_strings;
LocalizedError::GetStrings(NetErrorToWebURLError(net_error),
- &error_strings,
- RenderThread::Get()->GetLocale());
+ is_failed_post_,
+ RenderThread::Get()->GetLocale(),
+ &error_strings);
// TODO(ttuttle): Update error page with error_strings.
}