| 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..004aceb964d2a3c23c429c2b0c350a53c7b365dc 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,6 +593,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);
|
| @@ -643,13 +649,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 +693,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 +724,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 +753,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 +791,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
|
| @@ -944,6 +961,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;
|
|
|