Chromium Code Reviews| 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..f3104c32c80d2dcef0efce75eb3f2e1c9a578ca0 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. |
| @@ -471,7 +473,7 @@ NetErrorHelperCore::NetErrorHelperCore(Delegate* delegate, |
| visible_(is_visible), |
| auto_reload_count_(0), |
| navigation_from_button_(NO_BUTTON), |
| - has_offline_pages_(false) { |
| + offline_page_status_(OfflinePageStatus::NONE) { |
| } |
| NetErrorHelperCore::~NetErrorHelperCore() { |
| @@ -596,8 +598,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 +658,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 +704,9 @@ 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) { |
|
mmenke
2015/11/17 21:02:15
This seems racy - we could get information for the
jianli
2015/11/19 02:23:46
Yes, this has problem, but with navigating backwar
|
| + offline_page_status_ = offline_page_status; |
| } |
| void NetErrorHelperCore::GetErrorHtmlForMainFrame( |
| @@ -728,12 +736,13 @@ void NetErrorHelperCore::GetErrorHtmlForMainFrame( |
| delegate_->GenerateLocalizedErrorPage( |
| error, pending_error_page_info->was_failed_post, |
| can_show_network_diagnostics_dialog_, |
| - has_offline_pages_, |
| + offline_page_status_, |
| 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 +767,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_); |
| + offline_page_status_); |
| } |
| void NetErrorHelperCore::OnNavigationCorrectionsFetched( |
| @@ -796,12 +805,13 @@ void NetErrorHelperCore::OnNavigationCorrectionsFetched( |
| pending_error_page_info_->error, |
| pending_error_page_info_->was_failed_post, |
| can_show_network_diagnostics_dialog_, |
| - has_offline_pages_, |
| + offline_page_status_, |
| 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 +976,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; |