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 |