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

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: Fix after rebase 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 ccb1a4672921327a866d1ee0c9edb6b1f303f160..db3f4dcd7d2e194e251d8e271e2ed181a2f2c710 100644
--- a/components/error_page/renderer/net_error_helper_core.cc
+++ b/components/error_page/renderer/net_error_helper_core.cc
@@ -380,6 +380,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) {}
@@ -414,6 +415,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.
@@ -468,7 +470,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() {
@@ -593,6 +596,9 @@ 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_->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_copy_button_in_page) {
RecordEvent(NETWORK_ERROR_PAGE_BOTH_BUTTONS_SHOWN);
@@ -647,13 +653,15 @@ void NetErrorHelperCore::GetErrorHTML(FrameType frame_type,
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);
}
}
@@ -689,6 +697,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) {
@@ -716,10 +728,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);
}
@@ -743,7 +757,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(
@@ -781,10 +796,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
@@ -949,6 +966,10 @@ 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);
+ delegate_->ShowOfflinePages();
+ return;
case NO_BUTTON:
NOTREACHED();
return;

Powered by Google App Engine
This is Rietveld 408576698