| Index: chrome/browser/android/offline_pages/offline_page_bridge.cc
|
| diff --git a/chrome/browser/android/offline_pages/offline_page_bridge.cc b/chrome/browser/android/offline_pages/offline_page_bridge.cc
|
| index 09c860fc39e26735904022d6860a8c642396ba8f..681b1a555edec289b02fb9908a726e4c04c29607 100644
|
| --- a/chrome/browser/android/offline_pages/offline_page_bridge.cc
|
| +++ b/chrome/browser/android/offline_pages/offline_page_bridge.cc
|
| @@ -16,6 +16,7 @@
|
| #include "components/offline_pages/offline_page_feature.h"
|
| #include "components/offline_pages/offline_page_item.h"
|
| #include "components/offline_pages/offline_page_model.h"
|
| +#include "components/offline_pages/proto/offline_pages.pb.h"
|
| #include "content/public/browser/browser_context.h"
|
| #include "content/public/browser/web_contents.h"
|
| #include "jni/OfflinePageBridge_jni.h"
|
| @@ -33,12 +34,13 @@ namespace {
|
|
|
| void SavePageCallback(const ScopedJavaGlobalRef<jobject>& j_callback_obj,
|
| const GURL& url,
|
| - OfflinePageModel::SavePageResult result) {
|
| + OfflinePageModel::SavePageResult result,
|
| + int64_t offline_id) {
|
| JNIEnv* env = base::android::AttachCurrentThread();
|
|
|
| Java_SavePageCallback_onSavePageDone(
|
| env, j_callback_obj.obj(), static_cast<int>(result),
|
| - ConvertUTF8ToJavaString(env, url.spec()).obj());
|
| + ConvertUTF8ToJavaString(env, url.spec()).obj(), offline_id);
|
| }
|
|
|
| void DeletePageCallback(const ScopedJavaGlobalRef<jobject>& j_callback_obj,
|
| @@ -56,12 +58,10 @@ void ToJavaOfflinePageList(JNIEnv* env,
|
| Java_OfflinePageBridge_createOfflinePageAndAddToList(
|
| env, j_result_obj,
|
| ConvertUTF8ToJavaString(env, offline_page.url.spec()).obj(),
|
| - offline_page.bookmark_id,
|
| + offline_page.offline_id,
|
| ConvertUTF8ToJavaString(env, offline_page.GetOfflineURL().spec()).obj(),
|
| - offline_page.file_size,
|
| - offline_page.creation_time.ToJavaTime(),
|
| - offline_page.access_count,
|
| - offline_page.last_access_time.ToJavaTime());
|
| + offline_page.file_size, offline_page.creation_time.ToJavaTime(),
|
| + offline_page.access_count, offline_page.last_access_time.ToJavaTime());
|
| }
|
| }
|
|
|
| @@ -108,12 +108,12 @@ void OfflinePageBridge::OfflinePageModelChanged(OfflinePageModel* model) {
|
| Java_OfflinePageBridge_offlinePageModelChanged(env, obj.obj());
|
| }
|
|
|
| -void OfflinePageBridge::OfflinePageDeleted(int64_t bookmark_id) {
|
| +void OfflinePageBridge::OfflinePageDeleted(int64_t offline_id) {
|
| JNIEnv* env = base::android::AttachCurrentThread();
|
| ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env);
|
| if (obj.is_null())
|
| return;
|
| - Java_OfflinePageBridge_offlinePageDeleted(env, obj.obj(), bookmark_id);
|
| + Java_OfflinePageBridge_offlinePageDeleted(env, obj.obj(), offline_id);
|
| }
|
|
|
| void OfflinePageBridge::GetAllPages(JNIEnv* env,
|
| @@ -137,12 +137,28 @@ void OfflinePageBridge::GetPagesToCleanUp(
|
| ToJavaOfflinePageList(env, j_result_obj, offline_pages);
|
| }
|
|
|
| -ScopedJavaLocalRef<jobject> OfflinePageBridge::GetPageByBookmarkId(
|
| +ScopedJavaLocalRef<jlongArray> OfflinePageBridge::GetOfflineIdsForClientId(
|
| JNIEnv* env,
|
| const JavaParamRef<jobject>& obj,
|
| - jlong bookmark_id) {
|
| + const JavaParamRef<jstring>& j_client_id_namespace,
|
| + const JavaParamRef<jstring>& j_client_id) {
|
| + DCHECK(offline_page_model_->is_loaded());
|
| + offline_pages::ClientId client_id;
|
| + client_id.name_space = ConvertJavaStringToUTF8(env, j_client_id_namespace);
|
| + client_id.id = ConvertJavaStringToUTF8(env, j_client_id);
|
| +
|
| + std::vector<int64_t> results =
|
| + offline_page_model_->GetOfflineIdsForClientId(client_id);
|
| +
|
| + return base::android::ToJavaLongArray(env, results);
|
| +}
|
| +
|
| +ScopedJavaLocalRef<jobject> OfflinePageBridge::GetPageByOfflineId(
|
| + JNIEnv* env,
|
| + const JavaParamRef<jobject>& obj,
|
| + jlong offline_id) {
|
| const OfflinePageItem* offline_page =
|
| - offline_page_model_->GetPageByBookmarkId(bookmark_id);
|
| + offline_page_model_->GetPageByOfflineId(offline_id);
|
| if (!offline_page)
|
| return ScopedJavaLocalRef<jobject>();
|
| return CreateOfflinePageItem(env, *offline_page);
|
| @@ -171,11 +187,13 @@ ScopedJavaLocalRef<jobject> OfflinePageBridge::GetPageByOfflineUrl(
|
| return CreateOfflinePageItem(env, *offline_page);
|
| }
|
|
|
| -void OfflinePageBridge::SavePage(JNIEnv* env,
|
| - const JavaParamRef<jobject>& obj,
|
| - const JavaParamRef<jobject>& j_callback_obj,
|
| - const JavaParamRef<jobject>& j_web_contents,
|
| - jlong bookmark_id) {
|
| +void OfflinePageBridge::SavePage(
|
| + JNIEnv* env,
|
| + const JavaParamRef<jobject>& obj,
|
| + const JavaParamRef<jobject>& j_callback_obj,
|
| + const JavaParamRef<jobject>& j_web_contents,
|
| + const JavaParamRef<jstring>& j_client_id_namespace,
|
| + const JavaParamRef<jstring>& j_client_id) {
|
| DCHECK(j_callback_obj);
|
| DCHECK(j_web_contents);
|
|
|
| @@ -189,47 +207,50 @@ void OfflinePageBridge::SavePage(JNIEnv* env,
|
| scoped_ptr<OfflinePageArchiver> archiver(
|
| new OfflinePageMHTMLArchiver(web_contents));
|
|
|
| + offline_pages::ClientId client_id;
|
| + client_id.name_space = ConvertJavaStringToUTF8(env, j_client_id_namespace);
|
| + client_id.id = ConvertJavaStringToUTF8(env, j_client_id);
|
| +
|
| offline_page_model_->SavePage(
|
| - url, bookmark_id, std::move(archiver),
|
| + url, client_id, std::move(archiver),
|
| base::Bind(&SavePageCallback, j_callback_ref, url));
|
| }
|
|
|
| void OfflinePageBridge::MarkPageAccessed(JNIEnv* env,
|
| const JavaParamRef<jobject>& obj,
|
| - jlong bookmark_id) {
|
| - offline_page_model_->MarkPageAccessed(bookmark_id);
|
| + jlong offline_id) {
|
| + offline_page_model_->MarkPageAccessed(offline_id);
|
| }
|
|
|
| void OfflinePageBridge::DeletePage(JNIEnv* env,
|
| const JavaParamRef<jobject>& obj,
|
| const JavaParamRef<jobject>& j_callback_obj,
|
| - jlong bookmark_id) {
|
| + jlong offline_id) {
|
| DCHECK(j_callback_obj);
|
|
|
| ScopedJavaGlobalRef<jobject> j_callback_ref;
|
| j_callback_ref.Reset(env, j_callback_obj);
|
|
|
| - offline_page_model_->DeletePageByBookmarkId(bookmark_id, base::Bind(
|
| - &DeletePageCallback, j_callback_ref));
|
| + offline_page_model_->DeletePageByOfflineId(
|
| + offline_id, base::Bind(&DeletePageCallback, j_callback_ref));
|
| }
|
|
|
| void OfflinePageBridge::DeletePages(
|
| JNIEnv* env,
|
| const JavaParamRef<jobject>& obj,
|
| const JavaParamRef<jobject>& j_callback_obj,
|
| - const JavaParamRef<jlongArray>& bookmark_ids_array) {
|
| + const JavaParamRef<jlongArray>& offline_ids_array) {
|
| DCHECK(j_callback_obj);
|
|
|
| ScopedJavaGlobalRef<jobject> j_callback_ref;
|
| j_callback_ref.Reset(env, j_callback_obj);
|
|
|
| - std::vector<int64_t> bookmark_ids;
|
| - base::android::JavaLongArrayToInt64Vector(env, bookmark_ids_array,
|
| - &bookmark_ids);
|
| + std::vector<int64_t> offline_ids;
|
| + base::android::JavaLongArrayToInt64Vector(env, offline_ids_array,
|
| + &offline_ids);
|
|
|
| - offline_page_model_->DeletePagesByBookmarkId(
|
| - bookmark_ids,
|
| - base::Bind(&DeletePageCallback, j_callback_ref));
|
| + offline_page_model_->DeletePagesByOfflineId(
|
| + offline_ids, base::Bind(&DeletePageCallback, j_callback_ref));
|
| }
|
|
|
| void OfflinePageBridge::CheckMetadataConsistency(
|
| @@ -265,12 +286,10 @@ ScopedJavaLocalRef<jobject> OfflinePageBridge::CreateOfflinePageItem(
|
| const OfflinePageItem& offline_page) const {
|
| return Java_OfflinePageBridge_createOfflinePageItem(
|
| env, ConvertUTF8ToJavaString(env, offline_page.url.spec()).obj(),
|
| - offline_page.bookmark_id,
|
| + offline_page.offline_id,
|
| ConvertUTF8ToJavaString(env, offline_page.GetOfflineURL().spec()).obj(),
|
| - offline_page.file_size,
|
| - offline_page.creation_time.ToJavaTime(),
|
| - offline_page.access_count,
|
| - offline_page.last_access_time.ToJavaTime());
|
| + offline_page.file_size, offline_page.creation_time.ToJavaTime(),
|
| + offline_page.access_count, offline_page.last_access_time.ToJavaTime());
|
| }
|
|
|
| static jlong Init(JNIEnv* env,
|
|
|