diff options
author | mmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-27 04:00:16 +0000 |
---|---|---|
committer | mmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-27 04:00:16 +0000 |
commit | e467c5786b2260acff6819ae54cab6b1be65dcad (patch) | |
tree | d62635035b4e895149868ef66deca1973e2ec870 /chrome/renderer/net/net_error_helper.cc | |
parent | 3d49ce4871cca63a6cda09dae0bb82489cd6b081 (diff) | |
download | chromium_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.cc | 11 |
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. } |