Chromium Code Reviews| 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 1b28beea89a28be4bb92a268057eaddc0d4b33ce..c050c51f8058031a1e713face7f778bd9c690405 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, |
|
fgorski
2016/02/26 19:29:22
OH, I see you already did it here. Acknowledged ;)
bburns
2016/02/27 00:48:19
Acknowledged.
|
| + 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); |
| @@ -159,11 +175,13 @@ ScopedJavaLocalRef<jobject> OfflinePageBridge::GetPageByOnlineURL( |
| 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); |
| @@ -177,47 +195,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( |
| @@ -253,12 +274,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, |