diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-03-08 10:28:10 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-03-20 13:40:30 +0000 |
commit | e733310db58160074f574c429d48f8308c0afe17 (patch) | |
tree | f8aef4b7e62a69928dbcf880620eece20f98c6df /chromium/components/error_page | |
parent | 2f583e4aec1ae3a86fa047829c96b310dc12ecdf (diff) | |
download | qtwebengine-chromium-e733310db58160074f574c429d48f8308c0afe17.tar.gz |
BASELINE: Update Chromium to 56.0.2924.122
Change-Id: I4e04de8f47e47e501c46ed934c76a431c6337ced
Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'chromium/components/error_page')
6 files changed, 67 insertions, 83 deletions
diff --git a/chromium/components/error_page/common/localized_error.cc b/chromium/components/error_page/common/localized_error.cc index 9d09b9277bf..825a9d80461 100644 --- a/chromium/components/error_page/common/localized_error.cc +++ b/chromium/components/error_page/common/localized_error.cc @@ -808,7 +808,7 @@ void LocalizedError::GetStrings( bool is_post, bool stale_copy_in_cache, bool can_show_network_diagnostics_dialog, - bool has_offline_pages, + bool is_incognito, const std::string& locale, std::unique_ptr<error_page::ErrorPageParams> params, base::DictionaryValue* error_strings) { @@ -945,7 +945,13 @@ void LocalizedError::GetStrings( // Add the reload suggestion, if needed for pages that didn't come // from a post. +#if defined(OS_ANDROID) + bool reload_visible = false; +#endif // defined(OS_ANDROID) if (params->suggest_reload && !is_post) { +#if defined(OS_ANDROID) + reload_visible = true; +#endif // defined(OS_ANDROID) base::DictionaryValue* reload_button = new base::DictionaryValue; reload_button->SetString( "msg", l10n_util::GetStringUTF16(IDS_ERRORPAGES_BUTTON_RELOAD)); @@ -996,6 +1002,22 @@ void LocalizedError::GetStrings( show_saved_copy_button->SetString("primary", "true"); error_strings->Set("showSavedCopyButton", show_saved_copy_button); } + +#if defined(OS_ANDROID) + if (!reload_visible && !show_saved_copy_visible && !is_incognito && + failed_url.is_valid() && failed_url.SchemeIsHTTPOrHTTPS() && + offline_pages::IsOfflinePagesAsyncDownloadEnabled()) { + std::unique_ptr<base::DictionaryValue> download_button = + base::MakeUnique<base::DictionaryValue>(); + download_button->SetString( + "msg", + l10n_util::GetStringUTF16(IDS_ERRORPAGES_BUTTON_DOWNLOAD)); + download_button->SetString( + "disabledMsg", + l10n_util::GetStringUTF16(IDS_ERRORPAGES_BUTTON_DOWNLOADING)); + error_strings->Set("downloadButton", std::move(download_button)); + } +#endif // defined(OS_ANDROID) } base::string16 LocalizedError::GetErrorDetails(const std::string& error_domain, diff --git a/chromium/components/error_page/common/localized_error.h b/chromium/components/error_page/common/localized_error.h index e4c26d35488..009771748ef 100644 --- a/chromium/components/error_page/common/localized_error.h +++ b/chromium/components/error_page/common/localized_error.h @@ -30,7 +30,7 @@ class LocalizedError { bool is_post, bool stale_copy_in_cache, bool can_show_network_diagnostics_dialog, - bool has_offline_pages, + bool is_incognito, const std::string& locale, std::unique_ptr<error_page::ErrorPageParams> params, base::DictionaryValue* strings); diff --git a/chromium/components/error_page/common/net_error_info.h b/chromium/components/error_page/common/net_error_info.h index 3abde57980c..a9d84262199 100644 --- a/chromium/components/error_page/common/net_error_info.h +++ b/chromium/components/error_page/common/net_error_info.h @@ -42,14 +42,18 @@ enum NetworkErrorPageEvent { NETWORK_ERROR_DIAGNOSE_BUTTON_CLICKED = 17, // Diagnose button clicked. // For the button to show all offline pages. - NETWORK_ERROR_PAGE_SHOW_OFFLINE_PAGES_BUTTON_SHOWN = 18, - NETWORK_ERROR_PAGE_SHOW_OFFLINE_PAGES_BUTTON_CLICKED = 19, + // Obsolete. No longer showing this. + // NETWORK_ERROR_PAGE_SHOW_OFFLINE_PAGES_BUTTON_SHOWN = 18, + // NETWORK_ERROR_PAGE_SHOW_OFFLINE_PAGES_BUTTON_CLICKED = 19, // For the button to show offline copy. // Obsolete. No longer showing this. // NETWORK_ERROR_PAGE_SHOW_OFFLINE_COPY_BUTTON_SHOWN = 20, // NETWORK_ERROR_PAGE_SHOW_OFFLINE_COPY_BUTTON_CLICKED = 21, + NETWORK_ERROR_PAGE_DOWNLOAD_BUTTON_SHOWN = 22, + NETWORK_ERROR_PAGE_DOWNLOAD_BUTTON_CLICKED = 23, + NETWORK_ERROR_PAGE_EVENT_MAX, }; diff --git a/chromium/components/error_page/renderer/net_error_helper_core.cc b/chromium/components/error_page/renderer/net_error_helper_core.cc index 04bc65b98fa..3b90182b743 100644 --- a/chromium/components/error_page/renderer/net_error_helper_core.cc +++ b/chromium/components/error_page/renderer/net_error_helper_core.cc @@ -427,7 +427,7 @@ struct NetErrorHelperCore::ErrorPageInfo { reload_button_in_page(false), show_saved_copy_button_in_page(false), show_cached_copy_button_in_page(false), - show_offline_pages_button_in_page(false), + download_button_in_page(false), is_finished_loading(false), auto_reload_triggered(false) {} @@ -462,7 +462,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_offline_pages_button_in_page; + bool download_button_in_page; // True if a page has completed loading, at which point it can receive // updates. @@ -520,9 +520,6 @@ NetErrorHelperCore::NetErrorHelperCore(Delegate* delegate, online_(true), visible_(is_visible), auto_reload_count_(0), -#if defined(OS_ANDROID) - has_offline_pages_(false), -#endif // defined(OS_ANDROID) navigation_from_button_(NO_BUTTON) { } @@ -623,11 +620,11 @@ void NetErrorHelperCore::OnCommitLoad(FrameType frame_type, const GURL& url) { const GURL& error_url = error.unreachableURL; if (url == error_url) ReportAutoReloadSuccess(error, auto_reload_count_); - else if (url != GURL(content::kUnreachableWebDataURL)) + else if (url != content::kUnreachableWebDataURL) ReportAutoReloadFailure(error, auto_reload_count_); } - committed_error_page_info_.reset(pending_error_page_info_.release()); + committed_error_page_info_ = std::move(pending_error_page_info_); } void NetErrorHelperCore::OnFinishLoad(FrameType frame_type) { @@ -648,8 +645,8 @@ 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_offline_pages_button_in_page) { - RecordEvent(NETWORK_ERROR_PAGE_SHOW_OFFLINE_PAGES_BUTTON_SHOWN); + if (committed_error_page_info_->download_button_in_page) { + RecordEvent(NETWORK_ERROR_PAGE_DOWNLOAD_BUTTON_SHOWN); } if (committed_error_page_info_->reload_button_in_page && committed_error_page_info_->show_saved_copy_button_in_page) { @@ -705,14 +702,13 @@ 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_offline_pages_button_in_page; + bool download_button_in_page; delegate_->GenerateLocalizedErrorPage( error, is_failed_post, - false /* No diagnostics dialogs allowed for subframes. */, - false /* No offline button provided in subframes */, nullptr, + false /* No diagnostics dialogs allowed for subframes. */, nullptr, &reload_button_in_page, &show_saved_copy_button_in_page, - &show_cached_copy_button_in_page, &show_offline_pages_button_in_page, + &show_cached_copy_button_in_page, &download_button_in_page, error_html); } } @@ -749,12 +745,6 @@ void NetErrorHelperCore::OnSetNavigationCorrectionInfo( navigation_correction_params_.search_url = search_url; } -void NetErrorHelperCore::OnSetHasOfflinePages(bool has_offline_pages) { -#if defined(OS_ANDROID) - has_offline_pages_ = has_offline_pages; -#endif // defined(OS_ANDROID) -} - void NetErrorHelperCore::GetErrorHtmlForMainFrame( ErrorPageInfo* pending_error_page_info, std::string* error_html) { @@ -781,11 +771,11 @@ void NetErrorHelperCore::GetErrorHtmlForMainFrame( delegate_->GenerateLocalizedErrorPage( error, pending_error_page_info->was_failed_post, - can_show_network_diagnostics_dialog_, HasOfflinePages(), nullptr, + can_show_network_diagnostics_dialog_, nullptr, &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_offline_pages_button_in_page, error_html); + &pending_error_page_info->download_button_in_page, error_html); } void NetErrorHelperCore::UpdateErrorPage() { @@ -808,8 +798,7 @@ void NetErrorHelperCore::UpdateErrorPage() { delegate_->UpdateErrorPage( GetUpdatedError(committed_error_page_info_->error), committed_error_page_info_->was_failed_post, - can_show_network_diagnostics_dialog_, - HasOfflinePages()); + can_show_network_diagnostics_dialog_); } void NetErrorHelperCore::OnNavigationCorrectionsFetched( @@ -844,11 +833,11 @@ void NetErrorHelperCore::OnNavigationCorrectionsFetched( delegate_->GenerateLocalizedErrorPage( pending_error_page_info_->error, pending_error_page_info_->was_failed_post, - can_show_network_diagnostics_dialog_, HasOfflinePages(), + can_show_network_diagnostics_dialog_, std::move(params), &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_offline_pages_button_in_page, + &pending_error_page_info_->download_button_in_page, &error_html); } else { // Since |navigation_correction_params| in |pending_error_page_info_| is @@ -1013,9 +1002,9 @@ void NetErrorHelperCore::ExecuteButtonPress(Button button) { delegate_->DiagnoseError( committed_error_page_info_->error.unreachableURL); return; - case SHOW_OFFLINE_PAGES_BUTTON: - RecordEvent(NETWORK_ERROR_PAGE_SHOW_OFFLINE_PAGES_BUTTON_CLICKED); - delegate_->ShowOfflinePages(); + case DOWNLOAD_BUTTON: + RecordEvent(NETWORK_ERROR_PAGE_DOWNLOAD_BUTTON_CLICKED); + delegate_->DownloadPageLater(); return; case NO_BUTTON: NOTREACHED(); @@ -1061,12 +1050,4 @@ void NetErrorHelperCore::TrackClick(int tracking_id) { request_body); } -bool NetErrorHelperCore::HasOfflinePages() const { -#if defined(OS_ANDROID) - return has_offline_pages_; -#else - return false; -#endif // defined(OS_ANDROID) -} - } // namespace error_page diff --git a/chromium/components/error_page/renderer/net_error_helper_core.h b/chromium/components/error_page/renderer/net_error_helper_core.h index 49f52e91553..1551553e9ff 100644 --- a/chromium/components/error_page/renderer/net_error_helper_core.h +++ b/chromium/components/error_page/renderer/net_error_helper_core.h @@ -51,7 +51,7 @@ class NetErrorHelperCore { EASTER_EGG, SHOW_CACHED_COPY_BUTTON, // "Google cached copy" button label experiment. DIAGNOSE_ERROR, - SHOW_OFFLINE_PAGES_BUTTON, // "Offline pages" experiment. + DOWNLOAD_BUTTON, // "Download page later" experiment. }; // The Delegate handles all interaction with the RenderView, WebFrame, and @@ -63,12 +63,11 @@ class NetErrorHelperCore { const blink::WebURLError& error, bool is_failed_post, bool can_show_network_diagnostics_dialog, - bool has_offline_pages, std::unique_ptr<ErrorPageParams> params, bool* reload_button_shown, bool* show_saved_copy_button_shown, bool* show_cached_copy_button_shown, - bool* show_offline_pages_button_shown, + bool* download_button_shown, std::string* html) const = 0; // Loads the given HTML in the frame for use as an error page. @@ -84,8 +83,7 @@ class NetErrorHelperCore { // been generated by a call to GenerateLocalizedErrorPage. virtual void UpdateErrorPage(const blink::WebURLError& error, bool is_failed_post, - bool can_show_network_diagnostics_dialog, - bool has_offline_pages) = 0; + bool can_show_network_diagnostics_dialog) = 0; // Fetches an error page and calls into OnErrorPageFetched when done. Any // previous fetch must either be canceled or finished before calling. Can't @@ -113,8 +111,8 @@ class NetErrorHelperCore { // Run the platform diagnostics too for the specified URL. virtual void DiagnoseError(const GURL& page_url) = 0; - // Shows all the offline pages that were saved in storage. - virtual void ShowOfflinePages() = 0; + // Schedule to download the page at a later time. + virtual void DownloadPageLater() = 0; protected: virtual ~Delegate() {} @@ -179,10 +177,6 @@ class NetErrorHelperCore { const std::string& api_key, const GURL& search_url); - // Notifies |this| that information about whether offline pages exist has been - // received. - void OnSetHasOfflinePages(bool has_offline_pages); - // Notifies |this| that the network's online status changed. // Handler for NetworkStateChanged notification from the browser process. If // the network state changes to online, this method is responsible for @@ -201,7 +195,7 @@ class NetErrorHelperCore { bool ShouldSuppressErrorPage(FrameType frame_type, const GURL& url); void set_timer_for_testing(std::unique_ptr<base::Timer> timer) { - auto_reload_timer_.reset(timer.release()); + auto_reload_timer_ = std::move(timer); } // Execute the effect of pressing the specified button. @@ -237,8 +231,6 @@ class NetErrorHelperCore { void AutoReloadTimerFired(); void PauseAutoReloadTimer(); - bool HasOfflinePages() const; - static bool IsReloadableError(const ErrorPageInfo& info); Delegate* delegate_; @@ -291,12 +283,6 @@ class NetErrorHelperCore { int auto_reload_count_; -#if defined(OS_ANDROID) - // Whether offline pages exist. This is used to decide if offline related - // button will be shown in certain error page. - bool has_offline_pages_; -#endif // defined(OS_ANDROID) - // This value is set only when a navigation has been initiated from // the error page. It is used to detect when such navigations result // in errors. diff --git a/chromium/components/error_page/renderer/net_error_helper_core_unittest.cc b/chromium/components/error_page/renderer/net_error_helper_core_unittest.cc index 666d02d9934..79d84d68691 100644 --- a/chromium/components/error_page/renderer/net_error_helper_core_unittest.cc +++ b/chromium/components/error_page/renderer/net_error_helper_core_unittest.cc @@ -164,7 +164,7 @@ class NetErrorHelperCoreTest : public testing::Test, reload_bypassing_cache_count_(0), show_saved_copy_count_(0), diagnose_error_count_(0), - show_offline_pages_count_(0), + download_count_(0), enable_page_helper_functions_count_(0), default_url_(GURL(kFailedUrl)), error_url_(GURL(content::kUnreachableWebDataURL)), @@ -221,7 +221,7 @@ class NetErrorHelperCoreTest : public testing::Test, return diagnose_error_url_; } - int show_offline_pages_count() const { return show_offline_pages_count_; } + int download_count() const { return download_count_; } const GURL& default_url() const { return default_url_; @@ -245,10 +245,6 @@ class NetErrorHelperCoreTest : public testing::Test, return last_can_show_network_diagnostics_dialog_; } - bool last_has_offline_pages() const { - return last_has_offline_pages_; - } - const ErrorPageParams* last_error_page_params() const { return last_error_page_params_.get(); } @@ -354,21 +350,19 @@ class NetErrorHelperCoreTest : public testing::Test, void GenerateLocalizedErrorPage(const WebURLError& error, bool is_failed_post, bool can_show_network_diagnostics_dialog, - bool has_offline_pages, std::unique_ptr<ErrorPageParams> params, bool* reload_button_shown, bool* show_saved_copy_button_shown, bool* show_cached_copy_button_shown, - bool* show_offline_pages_button_shown, + bool* download_button_shown, std::string* html) const override { last_can_show_network_diagnostics_dialog_ = can_show_network_diagnostics_dialog; - last_has_offline_pages_ = has_offline_pages; - last_error_page_params_.reset(params.release()); + last_error_page_params_ = std::move(params); *reload_button_shown = false; *show_saved_copy_button_shown = false; *show_cached_copy_button_shown = false; - *show_offline_pages_button_shown = false; + *download_button_shown = false; *html = ErrorToString(error, is_failed_post); } @@ -383,12 +377,10 @@ class NetErrorHelperCoreTest : public testing::Test, void UpdateErrorPage(const WebURLError& error, bool is_failed_post, - bool can_show_network_diagnostics_dialog, - bool has_offline_pages) override { + bool can_show_network_diagnostics_dialog) override { update_count_++; last_can_show_network_diagnostics_dialog_ = can_show_network_diagnostics_dialog; - last_has_offline_pages_ = has_offline_pages; last_error_page_params_.reset(nullptr); last_error_html_ = ErrorToString(error, is_failed_post); } @@ -439,7 +431,9 @@ class NetErrorHelperCoreTest : public testing::Test, diagnose_error_url_ = page_url; } - void ShowOfflinePages() override { show_offline_pages_count_++; } + void DownloadPageLater() override { + download_count_++; + } void SendTrackingRequest(const GURL& tracking_url, const std::string& tracking_request_body) override { @@ -484,7 +478,6 @@ class NetErrorHelperCoreTest : public testing::Test, // Values passed in to the last call of GenerateLocalizedErrorPage or // UpdateErrorPage. Mutable because GenerateLocalizedErrorPage is const. mutable bool last_can_show_network_diagnostics_dialog_; - mutable bool last_has_offline_pages_; mutable std::unique_ptr<ErrorPageParams> last_error_page_params_; int reload_count_; @@ -493,7 +486,7 @@ class NetErrorHelperCoreTest : public testing::Test, GURL show_saved_copy_url_; int diagnose_error_count_; GURL diagnose_error_url_; - int show_offline_pages_count_; + int download_count_; int enable_page_helper_functions_count_; @@ -2576,13 +2569,11 @@ TEST_F(NetErrorHelperCoreTest, CanShowNetworkDiagnostics) { } #if defined(OS_ANDROID) -TEST_F(NetErrorHelperCoreTest, ShowOfflinePages) { - core()->OnSetHasOfflinePages(true); +TEST_F(NetErrorHelperCoreTest, Download) { DoErrorLoad(net::ERR_INTERNET_DISCONNECTED); - EXPECT_TRUE(last_has_offline_pages()); - EXPECT_EQ(0, show_offline_pages_count()); - core()->ExecuteButtonPress(NetErrorHelperCore::SHOW_OFFLINE_PAGES_BUTTON); - EXPECT_EQ(1, show_offline_pages_count()); + EXPECT_EQ(0, download_count()); + core()->ExecuteButtonPress(NetErrorHelperCore::DOWNLOAD_BUTTON); + EXPECT_EQ(1, download_count()); } #endif // defined(OS_ANDROID) |