Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(158)

Unified Diff: chrome/browser/android/offline_pages/offline_page_bridge.cc

Issue 1694863003: Refactor the offline page storage to include client namespace and id. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address changes Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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,

Powered by Google App Engine
This is Rietveld 408576698