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

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

Issue 1442433003: Add "Show saved copy" button in dino page when there's offline copy (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update button color for "Show all saved pages" per UI review 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 db3f4dcd7d2e194e251d8e271e2ed181a2f2c710..e12030771847706372a870cfb337314abb121f9a 100644
--- a/components/error_page/renderer/net_error_helper_core.cc
+++ b/components/error_page/renderer/net_error_helper_core.cc
@@ -380,7 +380,8 @@ 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),
+ show_offline_pages_button_in_page(false),
+ show_offline_copy_button_in_page(false),
is_finished_loading(false),
auto_reload_triggered(false) {}
@@ -415,7 +416,8 @@ 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;
+ bool show_offline_pages_button_in_page;
+ bool show_offline_copy_button_in_page;
// True if a page has completed loading, at which point it can receive
// updates.
@@ -470,8 +472,10 @@ NetErrorHelperCore::NetErrorHelperCore(Delegate* delegate,
online_(true),
visible_(is_visible),
auto_reload_count_(0),
- navigation_from_button_(NO_BUTTON),
- has_offline_pages_(false) {
+#if defined(OS_ANDROID)
+ offline_page_status_(OfflinePageStatus::NONE),
+#endif // defined(OS_ANDROID)
+ navigation_from_button_(NO_BUTTON) {
}
NetErrorHelperCore::~NetErrorHelperCore() {
@@ -596,8 +600,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_->show_saved_pages_button_in_page) {
- RecordEvent(NETWORK_ERROR_PAGE_SHOW_SAVED_PAGES_BUTTON_SHOWN);
+ if (committed_error_page_info_->show_offline_pages_button_in_page) {
+ RecordEvent(NETWORK_ERROR_PAGE_SHOW_OFFLINE_PAGES_BUTTON_SHOWN);
+ }
+ if (committed_error_page_info_->show_offline_copy_button_in_page) {
+ RecordEvent(NETWORK_ERROR_PAGE_SHOW_OFFLINE_COPY_BUTTON_SHOWN);
}
if (committed_error_page_info_->reload_button_in_page &&
committed_error_page_info_->show_saved_copy_button_in_page) {
@@ -653,15 +660,17 @@ 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;
+ bool show_offline_pages_button_in_page;
+ bool show_offline_copy_button_in_page;
delegate_->GenerateLocalizedErrorPage(
error, is_failed_post,
false /* No diagnostics dialogs allowed for subframes. */,
- false /* No "show saved pages" provided in subframes */,
+ OfflinePageStatus::NONE /* No offline button provided in subframes */,
scoped_ptr<ErrorPageParams>(), &reload_button_in_page,
&show_saved_copy_button_in_page, &show_cached_copy_button_in_page,
- &show_saved_pages_button_in_page, error_html);
+ &show_offline_pages_button_in_page,
+ &show_offline_copy_button_in_page, error_html);
}
}
@@ -697,8 +706,11 @@ 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::OnSetOfflinePageInfo(
+ OfflinePageStatus offline_page_status) {
+#if defined(OS_ANDROID)
+ offline_page_status_ = offline_page_status;
+#endif // defined(OS_ANDROID)
}
void NetErrorHelperCore::GetErrorHtmlForMainFrame(
@@ -728,12 +740,13 @@ void NetErrorHelperCore::GetErrorHtmlForMainFrame(
delegate_->GenerateLocalizedErrorPage(
error, pending_error_page_info->was_failed_post,
can_show_network_diagnostics_dialog_,
- has_offline_pages_,
+ GetOfflinePageStatus(),
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,
+ &pending_error_page_info->show_offline_pages_button_in_page,
+ &pending_error_page_info->show_offline_copy_button_in_page,
error_html);
}
@@ -758,7 +771,7 @@ void NetErrorHelperCore::UpdateErrorPage() {
GetUpdatedError(committed_error_page_info_->error),
committed_error_page_info_->was_failed_post,
can_show_network_diagnostics_dialog_,
- has_offline_pages_);
+ GetOfflinePageStatus());
}
void NetErrorHelperCore::OnNavigationCorrectionsFetched(
@@ -796,12 +809,13 @@ void NetErrorHelperCore::OnNavigationCorrectionsFetched(
pending_error_page_info_->error,
pending_error_page_info_->was_failed_post,
can_show_network_diagnostics_dialog_,
- has_offline_pages_,
+ GetOfflinePageStatus(),
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,
+ &pending_error_page_info_->show_offline_pages_button_in_page,
+ &pending_error_page_info_->show_offline_copy_button_in_page,
&error_html);
} else {
// Since |navigation_correction_params| in |pending_error_page_info_| is
@@ -966,10 +980,15 @@ 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);
+ case SHOW_OFFLINE_PAGES_BUTTON:
+ RecordEvent(NETWORK_ERROR_PAGE_SHOW_OFFLINE_PAGES_BUTTON_CLICKED);
delegate_->ShowOfflinePages();
return;
+ case SHOW_OFFLINE_COPY_BUTTON:
+ RecordEvent(NETWORK_ERROR_PAGE_SHOW_OFFLINE_COPY_BUTTON_CLICKED);
+ delegate_->LoadOfflineCopy(
+ committed_error_page_info_->error.unreachableURL);
+ return;
case NO_BUTTON:
NOTREACHED();
return;
@@ -1012,4 +1031,12 @@ void NetErrorHelperCore::TrackClick(int tracking_id) {
request_body);
}
+OfflinePageStatus NetErrorHelperCore::GetOfflinePageStatus() const {
+#if defined(OS_ANDROID)
+ return offline_page_status_;
+#else
+ return OfflinePageStatus::NONE;
+#endif // defined(OS_ANDROID)
+}
+
} // namespace error_page

Powered by Google App Engine
This is Rietveld 408576698