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

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

Issue 1969233002: [OfflinePages] Make website settings popup rely on asynchronous API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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 ee2bd0bfd7756f312df209ec5a7c7f2112d0362b..1724aa871d614e7821600bc2e0e7f3c25401cc2b 100644
--- a/chrome/browser/android/offline_pages/offline_page_bridge.cc
+++ b/chrome/browser/android/offline_pages/offline_page_bridge.cc
@@ -54,6 +54,20 @@ void ToJavaOfflinePageList(JNIEnv* env,
}
}
+
+ScopedJavaLocalRef<jobject> ToJavaOfflinePageItem(
dewittj 2016/05/16 21:07:46 nit: I think I prefer this as CreateJavaOfflinePag
chili 2016/05/16 23:06:41 I renamed this to 'ToJavaOfflinePageItem' to be co
dewittj 2016/05/17 17:36:02 I guess it is a little different to me, since ToJa
+ JNIEnv* env,
+ const OfflinePageItem& offline_page) {
+ return Java_OfflinePageBridge_createOfflinePageItem(
+ env, ConvertUTF8ToJavaString(env, offline_page.url.spec()).obj(),
+ offline_page.offline_id,
+ ConvertUTF8ToJavaString(env, offline_page.client_id.name_space).obj(),
+ ConvertUTF8ToJavaString(env, offline_page.client_id.id).obj(),
+ 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());
+}
+
void CheckPagesExistOfflineCallback(
const ScopedJavaGlobalRef<jobject>& j_callback_obj,
const OfflinePageModel::CheckPagesExistOfflineResult& offline_pages) {
@@ -107,6 +121,20 @@ void DeletePageCallback(const ScopedJavaGlobalRef<jobject>& j_callback_obj,
env, j_callback_obj.obj(), static_cast<int>(result));
}
+void SingleOfflinePageItemCallback(
+ const ScopedJavaGlobalRef<jobject>& j_callback_obj,
+ const OfflinePageModel::SingleOfflinePageItemResult& result) {
+ JNIEnv* env = base::android::AttachCurrentThread();
+ ScopedJavaGlobalRef<jobject> emptyResult;
dewittj 2016/05/16 21:07:46 should this be ScopedJavaLocalRef?
chili 2016/05/16 23:06:41 Done.
+
+ if (result) {
+ Java_SingleOfflinePageItemCallback_onResult(
dewittj 2016/05/16 21:07:46 This code would be simpler if you just rename empt
chili 2016/05/16 23:06:41 I did start with that in a previous iteration. Pe
+ env, j_callback_obj.obj(), ToJavaOfflinePageItem(env, *result).obj());
+ } else {
+ Java_SingleOfflinePageItemCallback_onResult(
+ env, j_callback_obj.obj(), emptyResult.obj());
+ }
+}
} // namespace
@@ -263,7 +291,7 @@ ScopedJavaLocalRef<jobject> OfflinePageBridge::GetPageByOfflineId(
offline_page_model_->MaybeGetPageByOfflineId(offline_id);
if (!offline_page)
return ScopedJavaLocalRef<jobject>();
- return CreateOfflinePageItem(env, *offline_page);
+ return ToJavaOfflinePageItem(env, *offline_page);
}
ScopedJavaLocalRef<jobject> OfflinePageBridge::GetBestPageForOnlineURL(
@@ -275,19 +303,22 @@ ScopedJavaLocalRef<jobject> OfflinePageBridge::GetBestPageForOnlineURL(
GURL(ConvertJavaStringToUTF8(env, online_url)));
if (!offline_page)
return ScopedJavaLocalRef<jobject>();
- return CreateOfflinePageItem(env, *offline_page);
+ return ToJavaOfflinePageItem(env, *offline_page);
}
-ScopedJavaLocalRef<jobject> OfflinePageBridge::GetPageByOfflineUrl(
+void OfflinePageBridge::GetPageByOfflineUrl(
JNIEnv* env,
const JavaParamRef<jobject>& obj,
- const JavaParamRef<jstring>& j_offline_url) {
- const OfflinePageItem* offline_page =
- offline_page_model_->MaybeGetPageByOfflineURL(
- GURL(ConvertJavaStringToUTF8(env, j_offline_url)));
- if (!offline_page)
- return ScopedJavaLocalRef<jobject>();
- return CreateOfflinePageItem(env, *offline_page);
+ const JavaParamRef<jstring>& j_offline_url,
+ const JavaParamRef<jobject>& j_callback_obj) {
+ DCHECK(j_callback_obj);
+
+ ScopedJavaGlobalRef<jobject> j_callback_ref;
+ j_callback_ref.Reset(env, j_callback_obj);
+
+ offline_page_model_->GetPageByOfflineURL(
+ GURL(ConvertJavaStringToUTF8(env, j_offline_url)),
+ base::Bind(&SingleOfflinePageItemCallback, j_callback_ref));
}
void OfflinePageBridge::SavePage(
@@ -378,18 +409,6 @@ void OfflinePageBridge::NotifyIfDoneLoading() const {
Java_OfflinePageBridge_offlinePageModelLoaded(env, java_ref_.obj());
}
-ScopedJavaLocalRef<jobject> OfflinePageBridge::CreateOfflinePageItem(
- JNIEnv* env,
- const OfflinePageItem& offline_page) const {
- return Java_OfflinePageBridge_createOfflinePageItem(
- env, ConvertUTF8ToJavaString(env, offline_page.url.spec()).obj(),
- offline_page.offline_id,
- ConvertUTF8ToJavaString(env, offline_page.client_id.name_space).obj(),
- ConvertUTF8ToJavaString(env, offline_page.client_id.id).obj(),
- 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());
-}
ScopedJavaLocalRef<jobject> OfflinePageBridge::CreateClientId(
JNIEnv* env,

Powered by Google App Engine
This is Rietveld 408576698