| Index: chrome/browser/net/net_error_tab_helper.cc
|
| diff --git a/chrome/browser/net/net_error_tab_helper.cc b/chrome/browser/net/net_error_tab_helper.cc
|
| index a0e73cf6cb1e2c50084dc6ce1a1817860884b2fe..0b45fd1b3e0a8774b4c13ea500fbc5ac18a82d0f 100644
|
| --- a/chrome/browser/net/net_error_tab_helper.cc
|
| +++ b/chrome/browser/net/net_error_tab_helper.cc
|
| @@ -13,6 +13,7 @@
|
| #include "chrome/browser/net/net_error_diagnostics_dialog.h"
|
| #include "chrome/browser/platform_util.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| +#include "chrome/common/localized_error.h"
|
| #include "chrome/common/pref_names.h"
|
| #include "chrome/common/render_messages.h"
|
| #include "components/error_page/common/net_error_info.h"
|
| @@ -124,7 +125,7 @@ void NetErrorTabHelper::DidStartProvisionalLoadForFrame(
|
| is_error_page_ = is_error_page;
|
|
|
| #if defined(OS_ANDROID)
|
| - SetHasOfflinePages(render_frame_host);
|
| + SetOfflinePageInfo(render_frame_host);
|
| #endif
|
| }
|
|
|
| @@ -177,6 +178,7 @@ bool NetErrorTabHelper::OnMessageReceived(
|
| RunNetworkDiagnostics)
|
| #if defined(OS_ANDROID)
|
| IPC_MESSAGE_HANDLER(ChromeViewHostMsg_ShowOfflinePages, ShowOfflinePages)
|
| + IPC_MESSAGE_HANDLER(ChromeViewHostMsg_LoadOfflineCopy, LoadOfflineCopy)
|
| #endif
|
| IPC_MESSAGE_UNHANDLED(handled = false)
|
| IPC_END_MESSAGE_MAP()
|
| @@ -286,15 +288,19 @@ void NetErrorTabHelper::RunNetworkDiagnosticsHelper(
|
| }
|
|
|
| #if defined(OS_ANDROID)
|
| -void NetErrorTabHelper::SetHasOfflinePages(
|
| +void NetErrorTabHelper::SetOfflinePageInfo(
|
| content::RenderFrameHost* render_frame_host) {
|
| DCHECK(web_contents());
|
| + OfflinePageStatus status = OfflinePageStatus::NONE;
|
| TabAndroid* tab = TabAndroid::FromWebContents(web_contents());
|
| - bool has_offline_pages = tab && tab->HasOfflinePages();
|
| + if (tab && tab->HasOfflinePages()) {
|
| + status = tab->HasOfflineCopyForCurrentPage() ?
|
| + OfflinePageStatus::HAS_PAGE_COPY : OfflinePageStatus::HAS_OTHER_COPIES;
|
| + }
|
| render_frame_host->Send(
|
| - new ChromeViewMsg_SetHasOfflinePages(
|
| + new ChromeViewMsg_SetOfflinePageInfo(
|
| render_frame_host->GetRoutingID(),
|
| - has_offline_pages));
|
| + static_cast<int>(status)));
|
| }
|
|
|
| void NetErrorTabHelper::ShowOfflinePages() {
|
| @@ -303,6 +309,13 @@ void NetErrorTabHelper::ShowOfflinePages() {
|
| if (tab)
|
| tab->ShowOfflinePages();
|
| }
|
| +
|
| +void NetErrorTabHelper::LoadOfflineCopy(const GURL& url) {
|
| + DCHECK(web_contents());
|
| + TabAndroid* tab = TabAndroid::FromWebContents(web_contents());
|
| + if (tab)
|
| + tab->LoadOfflineCopy(url);
|
| +}
|
| #endif
|
|
|
| } // namespace chrome_browser_net
|
|
|