| 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 11eab939f75d3753696d3db3b8c24fd83098cc35..e7a3b85fdb2a5794d7a1117d71955a4a6f804a5d 100644
|
| --- a/components/error_page/renderer/net_error_helper_core.cc
|
| +++ b/components/error_page/renderer/net_error_helper_core.cc
|
| @@ -391,6 +391,8 @@ struct NetErrorHelperCore::ErrorPageInfo {
|
| needs_load_navigation_corrections(false),
|
| reload_button_in_page(false),
|
| show_saved_copy_button_in_page(false),
|
| + show_cached_page_button_in_page(false),
|
| + show_cached_copy_button_in_page(false),
|
| is_finished_loading(false),
|
| auto_reload_triggered(false) {
|
| }
|
| @@ -424,6 +426,8 @@ struct NetErrorHelperCore::ErrorPageInfo {
|
| // Track if specific buttons are included in an error page, for statistics.
|
| bool reload_button_in_page;
|
| bool show_saved_copy_button_in_page;
|
| + bool show_cached_page_button_in_page;
|
| + bool show_cached_copy_button_in_page;
|
|
|
| // True if a page has completed loading, at which point it can receive
|
| // updates.
|
| @@ -610,6 +614,13 @@ void NetErrorHelperCore::OnFinishLoad(FrameType frame_type) {
|
| chrome_common_net::RecordEvent(
|
| chrome_common_net::NETWORK_ERROR_PAGE_BOTH_BUTTONS_SHOWN);
|
| }
|
| + if (committed_error_page_info_->show_cached_copy_button_in_page) {
|
| + chrome_common_net::RecordEvent(
|
| + chrome_common_net::NETWORK_ERROR_PAGE_CACHED_COPY_BUTTON_SHOWN);
|
| + } else if (committed_error_page_info_->show_cached_page_button_in_page) {
|
| + chrome_common_net::RecordEvent(
|
| + chrome_common_net::NETWORK_ERROR_PAGE_CACHED_PAGE_BUTTON_SHOWN);
|
| + }
|
|
|
| delegate_->EnablePageHelperFunctions();
|
|
|
| @@ -655,10 +666,13 @@ void NetErrorHelperCore::GetErrorHTML(
|
| // These values do not matter, as error pages in iframes hide the buttons.
|
| bool reload_button_in_page;
|
| bool show_saved_copy_button_in_page;
|
| + bool show_cached_copy_button_in_page;
|
| + bool show_cached_page_button_in_page;
|
|
|
| delegate_->GenerateLocalizedErrorPage(
|
| error, is_failed_post, scoped_ptr<ErrorPageParams>(),
|
| &reload_button_in_page, &show_saved_copy_button_in_page,
|
| + &show_cached_copy_button_in_page, &show_cached_page_button_in_page,
|
| error_html);
|
| }
|
| }
|
| @@ -720,6 +734,8 @@ void NetErrorHelperCore::GetErrorHtmlForMainFrame(
|
| 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_cached_page_button_in_page,
|
| error_html);
|
| }
|
|
|
| @@ -781,6 +797,8 @@ void NetErrorHelperCore::OnNavigationCorrectionsFetched(
|
| 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_cached_page_button_in_page,
|
| &error_html);
|
| } else {
|
| // Since |navigation_correction_params| in |pending_error_page_info_| is
|
| @@ -964,6 +982,14 @@ void NetErrorHelperCore::ExecuteButtonPress(bool is_error_page, Button button) {
|
| chrome_common_net::RecordEvent(
|
| chrome_common_net::NETWORK_ERROR_EASTER_EGG_ACTIVATED);
|
| return;
|
| + case SHOW_CACHED_COPY_BUTTON:
|
| + chrome_common_net::RecordEvent(
|
| + chrome_common_net::NETWORK_ERROR_PAGE_CACHED_COPY_BUTTON_CLICKED);
|
| + return;
|
| + case SHOW_CACHED_PAGE_BUTTON:
|
| + chrome_common_net::RecordEvent(
|
| + chrome_common_net::NETWORK_ERROR_PAGE_CACHED_PAGE_BUTTON_CLICKED);
|
| + return;
|
| case BUTTON_MAX:
|
| case NO_BUTTON:
|
| NOTREACHED();
|
|
|