summaryrefslogtreecommitdiff
path: root/chromium/components/error_page
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2017-03-08 10:28:10 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2017-03-20 13:40:30 +0000
commite733310db58160074f574c429d48f8308c0afe17 (patch)
treef8aef4b7e62a69928dbcf880620eece20f98c6df /chromium/components/error_page
parent2f583e4aec1ae3a86fa047829c96b310dc12ecdf (diff)
downloadqtwebengine-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')
-rw-r--r--chromium/components/error_page/common/localized_error.cc24
-rw-r--r--chromium/components/error_page/common/localized_error.h2
-rw-r--r--chromium/components/error_page/common/net_error_info.h8
-rw-r--r--chromium/components/error_page/renderer/net_error_helper_core.cc53
-rw-r--r--chromium/components/error_page/renderer/net_error_helper_core.h26
-rw-r--r--chromium/components/error_page/renderer/net_error_helper_core_unittest.cc37
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)