| Index: chrome/browser/android/tab_android.cc
|
| diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_android.cc
|
| index 2d0e15b561ec78ae2a5e4b15d6782c5c23994661..d8f66ed30a5a2e7d2ffc957e0e22b32501d0d879 100644
|
| --- a/chrome/browser/android/tab_android.cc
|
| +++ b/chrome/browser/android/tab_android.cc
|
| @@ -301,6 +301,32 @@ void TabAndroid::ShowOfflinePages() {
|
| Java_Tab_showOfflinePages(env, weak_java_tab_.get(env).obj());
|
| }
|
|
|
| +void TabAndroid::LoadOfflineCopy(const GURL& url) {
|
| + if (!offline_pages::IsOfflinePagesEnabled())
|
| + return;
|
| +
|
| + // Offline copy is only saved for a bookmarked page.
|
| + int64_t bookmark_id = GetBookmarkIdHelper(true);
|
| + if (bookmark_id == -1)
|
| + return;
|
| +
|
| + offline_pages::OfflinePageModel* offline_page_model =
|
| + offline_pages::OfflinePageModelFactory::GetForBrowserContext(
|
| + GetProfile());
|
| + if (!offline_page_model)
|
| + return;
|
| + const offline_pages::OfflinePageItem* offline_page =
|
| + offline_page_model->GetPageByBookmarkId(bookmark_id);
|
| + if (!offline_page)
|
| + return;
|
| + GURL offline_url = offline_page->GetOfflineURL();
|
| + if (!offline_url.is_valid())
|
| + return;
|
| +
|
| + content::NavigationController::LoadURLParams load_params(offline_url);
|
| + web_contents()->GetController().LoadURLWithParams(load_params);
|
| +}
|
| +
|
| void TabAndroid::SwapTabContents(content::WebContents* old_contents,
|
| content::WebContents* new_contents,
|
| bool did_start_load,
|
| @@ -769,6 +795,10 @@ void TabAndroid::LoadOriginalImage(JNIEnv* env, jobject obj) {
|
| jlong TabAndroid::GetBookmarkId(JNIEnv* env,
|
| jobject obj,
|
| jboolean only_editable) {
|
| + return GetBookmarkIdHelper(only_editable);
|
| +}
|
| +
|
| +int64_t TabAndroid::GetBookmarkIdHelper(bool only_editable) const {
|
| GURL url = dom_distiller::url_utils::GetOriginalUrlFromDistillerUrl(
|
| web_contents()->GetURL());
|
| Profile* profile = GetProfile();
|
| @@ -798,8 +828,12 @@ jlong TabAndroid::GetBookmarkId(JNIEnv* env,
|
| }
|
|
|
| jboolean TabAndroid::HasOfflineCopy(JNIEnv* env, jobject obj) {
|
| + return HasOfflineCopyForCurrentPage();
|
| +}
|
| +
|
| +bool TabAndroid::HasOfflineCopyForCurrentPage() const {
|
| // Offline copy is only saved for a bookmarked page.
|
| - jlong bookmark_id = GetBookmarkId(env, obj, true);
|
| + int64_t bookmark_id = GetBookmarkIdHelper(true);
|
| if (bookmark_id == -1)
|
| return false;
|
|
|
|
|