Chromium Code Reviews| 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..269b7f0a5675e09f3c66446231955a804bcbacb9 100644 |
| --- a/chrome/browser/android/tab_android.cc |
| +++ b/chrome/browser/android/tab_android.cc |
| @@ -287,20 +287,6 @@ void TabAndroid::MakeLoadURLParams( |
| } |
| } |
| -bool TabAndroid::HasOfflinePages() const { |
| - if (!offline_pages::IsOfflinePagesEnabled()) |
| - return false; |
| - offline_pages::OfflinePageModel* offline_page_model = |
| - offline_pages::OfflinePageModelFactory::GetForBrowserContext( |
| - GetProfile()); |
| - return !offline_page_model->GetAllPages().empty(); |
| -} |
| - |
| -void TabAndroid::ShowOfflinePages() { |
| - JNIEnv* env = base::android::AttachCurrentThread(); |
| - Java_Tab_showOfflinePages(env, weak_java_tab_.get(env).obj()); |
| -} |
| - |
| void TabAndroid::SwapTabContents(content::WebContents* old_contents, |
| content::WebContents* new_contents, |
| bool did_start_load, |
| @@ -769,6 +755,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(); |
| @@ -797,9 +787,18 @@ jlong TabAndroid::GetBookmarkId(JNIEnv* env, |
| return -1; |
| } |
| -jboolean TabAndroid::HasOfflineCopy(JNIEnv* env, jobject obj) { |
| +bool TabAndroid::HasOfflinePages() const { |
| + if (!offline_pages::IsOfflinePagesEnabled()) |
| + return false; |
| + offline_pages::OfflinePageModel* offline_page_model = |
| + offline_pages::OfflinePageModelFactory::GetForBrowserContext( |
| + GetProfile()); |
| + return !offline_page_model->GetAllPages().empty(); |
| +} |
| + |
| +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; |
| @@ -813,6 +812,41 @@ jboolean TabAndroid::HasOfflineCopy(JNIEnv* env, jobject obj) { |
| return offline_page && !offline_page->file_path.empty(); |
| } |
| +void TabAndroid::ShowOfflinePages() { |
| + JNIEnv* env = base::android::AttachCurrentThread(); |
| + Java_Tab_showOfflinePages(env, weak_java_tab_.get(env).obj()); |
| +} |
| + |
| +void TabAndroid::LoadOfflineCopy(const GURL& url) { |
|
nasko
2015/11/13 23:55:13
This parameter doesn't seem to be used anywhere. W
jianli
2015/11/14 00:26:04
Added the validation at line 836.
|
| + 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; |
|
nasko
2015/11/13 23:55:13
Empty line after the return statement and before t
jianli
2015/11/14 00:26:05
Done.
|
| + 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); |
| +} |
| + |
| +jboolean TabAndroid::HasOfflineCopy(JNIEnv* env, jobject obj) { |
| + return HasOfflineCopyForCurrentPage(); |
| +} |
| + |
| jboolean TabAndroid::IsOfflinePage(JNIEnv* env, jobject obj) { |
| GURL url = dom_distiller::url_utils::GetOriginalUrlFromDistillerUrl( |
| web_contents()->GetURL()); |