Index: chrome/renderer/net/net_error_helper.cc |
diff --git a/chrome/renderer/net/net_error_helper.cc b/chrome/renderer/net/net_error_helper.cc |
index 1d9529ad033a817fac667a8fde02be29a26fe5ac..5ef563f7354e61d1f00b82d0dd07212da09f399d 100644 |
--- a/chrome/renderer/net/net_error_helper.cc |
+++ b/chrome/renderer/net/net_error_helper.cc |
@@ -16,7 +16,7 @@ |
#include "chrome/common/localized_error.h" |
#include "chrome/common/net/net_error_info.h" |
#include "chrome/common/render_messages.h" |
-#include "chrome/renderer/net/error_cache_load.h" |
+#include "chrome/renderer/net/net_error_page_controller.h" |
#include "content/public/common/content_client.h" |
#include "content/public/common/url_constants.h" |
#include "content/public/renderer/content_renderer_client.h" |
@@ -95,6 +95,18 @@ NetErrorHelper::~NetErrorHelper() { |
RenderThread::Get()->RemoveObserver(this); |
} |
+void NetErrorHelper::ReloadButtonPressed() { |
+ core_.ExecuteButtonPress(NetErrorHelperCore::RELOAD_BUTTON); |
+} |
+ |
+void NetErrorHelper::LoadStaleButtonPressed() { |
+ core_.ExecuteButtonPress(NetErrorHelperCore::LOAD_STALE_BUTTON); |
+} |
+ |
+void NetErrorHelper::MoreButtonPressed() { |
+ core_.ExecuteButtonPress(NetErrorHelperCore::MORE_BUTTON); |
+} |
+ |
void NetErrorHelper::DidStartProvisionalLoad() { |
blink::WebFrame* frame = render_frame()->GetWebFrame(); |
core_.OnStartLoad(GetFrameType(frame), GetLoadingPageType(frame)); |
@@ -148,6 +160,8 @@ void NetErrorHelper::GenerateLocalizedErrorPage( |
const blink::WebURLError& error, |
bool is_failed_post, |
scoped_ptr<LocalizedError::ErrorPageParams> params, |
+ bool* reload_button_shown, |
+ bool* load_stale_button_shown, |
std::string* error_html) const { |
error_html->clear(); |
@@ -160,11 +174,14 @@ void NetErrorHelper::GenerateLocalizedErrorPage( |
base::DictionaryValue error_strings; |
LocalizedError::GetStrings(error.reason, error.domain.utf8(), |
error.unreachableURL, is_failed_post, |
- error.staleCopyInCache, |
+ error.staleCopyInCache && !is_failed_post, |
RenderThread::Get()->GetLocale(), |
render_frame()->GetRenderView()-> |
GetAcceptLanguages(), |
params.Pass(), &error_strings); |
+ *reload_button_shown = error_strings.Get("reloadButton", NULL); |
+ *load_stale_button_shown = error_strings.Get("staleLoadButton", NULL); |
+ |
// "t" is the id of the template's root node. |
*error_html = webui::GetTemplatesHtml(template_html, &error_strings, "t"); |
} |
@@ -179,8 +196,8 @@ void NetErrorHelper::LoadErrorPageInMainFrame(const std::string& html, |
frame->loadHTMLString(html, GURL(kUnreachableWebDataURL), failed_url, true); |
} |
-void NetErrorHelper::EnableStaleLoadBindings(const GURL& page_url) { |
- ErrorCacheLoad::Install(render_frame(), page_url); |
+void NetErrorHelper::EnablePageHelperFunctions() { |
+ NetErrorPageController::Install(render_frame()); |
} |
void NetErrorHelper::UpdateErrorPage(const blink::WebURLError& error, |
@@ -190,7 +207,7 @@ void NetErrorHelper::UpdateErrorPage(const blink::WebURLError& error, |
error.domain.utf8(), |
error.unreachableURL, |
is_failed_post, |
- error.staleCopyInCache, |
+ error.staleCopyInCache && !is_failed_post, |
RenderThread::Get()->GetLocale(), |
render_frame()->GetRenderView()-> |
GetAcceptLanguages(), |
@@ -243,6 +260,16 @@ void NetErrorHelper::ReloadPage() { |
render_frame()->GetWebFrame()->reload(false); |
} |
+void NetErrorHelper::LoadPageFromCache(const GURL& page_url) { |
+ blink::WebFrame* web_frame = render_frame()->GetWebFrame(); |
+ DCHECK(!EqualsASCII(web_frame->dataSource()->request().httpMethod(), "POST")); |
+ |
+ blink::WebURLRequest request(page_url); |
+ request.setCachePolicy(blink::WebURLRequest::ReturnCacheDataDontLoad); |
+ |
+ web_frame->loadRequest(request); |
+} |
+ |
void NetErrorHelper::OnNetErrorInfo(int status_num) { |
DCHECK(status_num >= 0 && status_num < chrome_common_net::DNS_PROBE_MAX); |