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

Unified Diff: components/error_page/renderer/net_error_helper_core.cc

Issue 1410343007: Add "SHOW ALL SAVED PAGES" button to offline error page (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Patch Created 5 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: components/error_page/renderer/net_error_helper_core.cc
diff --git a/components/error_page/renderer/net_error_helper_core.cc b/components/error_page/renderer/net_error_helper_core.cc
index e193073e1dec42a1b5d94b7358610539722663da..f93f66dc9338c2e551f2212b80894c714e850534 100644
--- a/components/error_page/renderer/net_error_helper_core.cc
+++ b/components/error_page/renderer/net_error_helper_core.cc
@@ -377,6 +377,7 @@ struct NetErrorHelperCore::ErrorPageInfo {
reload_button_in_page(false),
show_saved_copy_button_in_page(false),
show_cached_copy_button_in_page(false),
+ show_saved_pages_button_in_page(false),
is_finished_loading(false),
auto_reload_triggered(false) {
}
@@ -411,6 +412,7 @@ struct NetErrorHelperCore::ErrorPageInfo {
bool reload_button_in_page;
bool show_saved_copy_button_in_page;
bool show_cached_copy_button_in_page;
+ bool show_saved_pages_button_in_page;
// True if a page has completed loading, at which point it can receive
// updates.
@@ -465,7 +467,8 @@ NetErrorHelperCore::NetErrorHelperCore(Delegate* delegate,
online_(true),
visible_(is_visible),
auto_reload_count_(0),
- navigation_from_button_(NO_BUTTON) {
+ navigation_from_button_(NO_BUTTON),
+ has_offline_pages_(false) {
}
NetErrorHelperCore::~NetErrorHelperCore() {
@@ -590,7 +593,11 @@ void NetErrorHelperCore::OnFinishLoad(FrameType frame_type) {
if (committed_error_page_info_->show_saved_copy_button_in_page) {
RecordEvent(NETWORK_ERROR_PAGE_SHOW_SAVED_COPY_BUTTON_SHOWN);
}
- if (committed_error_page_info_->reload_button_in_page &&
+ if (committed_error_page_info_->show_saved_pages_button_in_page) {
+ RecordEvent(NETWORK_ERROR_PAGE_SHOW_SAVED_PAGES_BUTTON_SHOWN);
+ }
+ if ((committed_error_page_info_->reload_button_in_page ||
+ committed_error_page_info_->show_saved_pages_button_in_page) &&
committed_error_page_info_->show_saved_copy_button_in_page) {
RecordEvent(NETWORK_ERROR_PAGE_BOTH_BUTTONS_SHOWN);
mmenke 2015/11/05 15:55:50 This changes the meaning of the old histograms sig
jianli 2015/11/06 00:04:40 I am not changing the meaning of the old histogram
mmenke 2015/11/06 17:43:02 You are absolutely changing the meaning of NETWORK
jianli 2015/11/09 19:19:09 Thanks for explanation. I reverted to the previous
}
@@ -643,13 +650,15 @@ void NetErrorHelperCore::GetErrorHTML(
bool reload_button_in_page;
bool show_saved_copy_button_in_page;
bool show_cached_copy_button_in_page;
+ bool show_saved_pages_button_in_page;
delegate_->GenerateLocalizedErrorPage(
error, is_failed_post,
false /* No diagnostics dialogs allowed for subframes. */,
+ false /* No "show saved pages" provided in subframes */,
scoped_ptr<ErrorPageParams>(), &reload_button_in_page,
&show_saved_copy_button_in_page, &show_cached_copy_button_in_page,
- error_html);
+ &show_saved_pages_button_in_page, error_html);
}
}
@@ -685,6 +694,10 @@ void NetErrorHelperCore::OnSetNavigationCorrectionInfo(
navigation_correction_params_.search_url = search_url;
}
+void NetErrorHelperCore::OnSetHasOfflinePages(bool has_offline_pages) {
+ has_offline_pages_ = has_offline_pages;
+}
+
void NetErrorHelperCore::GetErrorHtmlForMainFrame(
ErrorPageInfo* pending_error_page_info,
std::string* error_html) {
@@ -712,10 +725,12 @@ void NetErrorHelperCore::GetErrorHtmlForMainFrame(
delegate_->GenerateLocalizedErrorPage(
error, pending_error_page_info->was_failed_post,
can_show_network_diagnostics_dialog_,
+ has_offline_pages_,
scoped_ptr<ErrorPageParams>(),
&pending_error_page_info->reload_button_in_page,
&pending_error_page_info->show_saved_copy_button_in_page,
&pending_error_page_info->show_cached_copy_button_in_page,
+ &pending_error_page_info->show_saved_pages_button_in_page,
error_html);
}
@@ -739,7 +754,8 @@ void NetErrorHelperCore::UpdateErrorPage() {
delegate_->UpdateErrorPage(
GetUpdatedError(committed_error_page_info_->error),
committed_error_page_info_->was_failed_post,
- can_show_network_diagnostics_dialog_);
+ can_show_network_diagnostics_dialog_,
+ has_offline_pages_);
}
void NetErrorHelperCore::OnNavigationCorrectionsFetched(
@@ -776,10 +792,12 @@ void NetErrorHelperCore::OnNavigationCorrectionsFetched(
pending_error_page_info_->error,
pending_error_page_info_->was_failed_post,
can_show_network_diagnostics_dialog_,
+ has_offline_pages_,
params.Pass(),
&pending_error_page_info_->reload_button_in_page,
&pending_error_page_info_->show_saved_copy_button_in_page,
&pending_error_page_info_->show_cached_copy_button_in_page,
+ &pending_error_page_info_->show_saved_pages_button_in_page,
&error_html);
} else {
// Since |navigation_correction_params| in |pending_error_page_info_| is
@@ -926,6 +944,9 @@ void NetErrorHelperCore::ExecuteButtonPress(Button button) {
if (committed_error_page_info_->reload_button_in_page) {
RecordEvent(NETWORK_ERROR_PAGE_BOTH_BUTTONS_SHOWN_SAVED_COPY_CLICKED);
}
+ if (committed_error_page_info_->show_saved_pages_button_in_page) {
+ RecordEvent(NETWORK_ERROR_PAGE_BOTH_BUTTONS_SHOWN_SAVED_PAGES_CLICKED);
mmenke 2015/11/05 15:55:50 This seems wrong.
jianli 2015/11/06 00:04:40 Fixed.
+ }
delegate_->LoadPageFromCache(
committed_error_page_info_->error.unreachableURL);
return;
@@ -944,6 +965,14 @@ void NetErrorHelperCore::ExecuteButtonPress(Button button) {
delegate_->DiagnoseError(
committed_error_page_info_->error.unreachableURL);
return;
+ case SHOW_SAVED_PAGES_BUTTON:
+ RecordEvent(NETWORK_ERROR_PAGE_SHOW_SAVED_PAGES_BUTTON_CLICKED);
+ navigation_from_button_ = SHOW_SAVED_PAGES_BUTTON;
+ if (committed_error_page_info_->show_saved_copy_button_in_page) {
+ RecordEvent(NETWORK_ERROR_PAGE_BOTH_BUTTONS_SHOWN_SAVED_PAGES_CLICKED);
+ }
+ delegate_->ShowOfflinePages();
+ return;
case NO_BUTTON:
NOTREACHED();
return;

Powered by Google App Engine
This is Rietveld 408576698