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

Side by Side 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: Resolving code review comments and running git cl format 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/android/offline_pages/offline_page_bridge.h" 5 #include "chrome/browser/android/offline_pages/offline_page_bridge.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/android/jni_array.h" 10 #include "base/android/jni_array.h"
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 ConvertUTF8ToJavaString(env, offline_page.url.spec()).obj(), 47 ConvertUTF8ToJavaString(env, offline_page.url.spec()).obj(),
48 offline_page.offline_id, 48 offline_page.offline_id,
49 ConvertUTF8ToJavaString(env, offline_page.client_id.name_space).obj(), 49 ConvertUTF8ToJavaString(env, offline_page.client_id.name_space).obj(),
50 ConvertUTF8ToJavaString(env, offline_page.client_id.id).obj(), 50 ConvertUTF8ToJavaString(env, offline_page.client_id.id).obj(),
51 ConvertUTF8ToJavaString(env, offline_page.GetOfflineURL().spec()).obj(), 51 ConvertUTF8ToJavaString(env, offline_page.GetOfflineURL().spec()).obj(),
52 offline_page.file_size, offline_page.creation_time.ToJavaTime(), 52 offline_page.file_size, offline_page.creation_time.ToJavaTime(),
53 offline_page.access_count, offline_page.last_access_time.ToJavaTime()); 53 offline_page.access_count, offline_page.last_access_time.ToJavaTime());
54 } 54 }
55 } 55 }
56 56
57 ScopedJavaLocalRef<jobject> ToJavaOfflinePageItem(
58 JNIEnv* env,
59 const OfflinePageItem& offline_page) {
60 return Java_OfflinePageBridge_createOfflinePageItem(
61 env, ConvertUTF8ToJavaString(env, offline_page.url.spec()).obj(),
62 offline_page.offline_id,
63 ConvertUTF8ToJavaString(env, offline_page.client_id.name_space).obj(),
64 ConvertUTF8ToJavaString(env, offline_page.client_id.id).obj(),
65 ConvertUTF8ToJavaString(env, offline_page.GetOfflineURL().spec()).obj(),
66 offline_page.file_size, offline_page.creation_time.ToJavaTime(),
67 offline_page.access_count, offline_page.last_access_time.ToJavaTime());
68 }
69
57 void CheckPagesExistOfflineCallback( 70 void CheckPagesExistOfflineCallback(
58 const ScopedJavaGlobalRef<jobject>& j_callback_obj, 71 const ScopedJavaGlobalRef<jobject>& j_callback_obj,
59 const OfflinePageModel::CheckPagesExistOfflineResult& offline_pages) { 72 const OfflinePageModel::CheckPagesExistOfflineResult& offline_pages) {
60 JNIEnv* env = base::android::AttachCurrentThread(); 73 JNIEnv* env = base::android::AttachCurrentThread();
61 74
62 std::vector<std::string> offline_pages_vector; 75 std::vector<std::string> offline_pages_vector;
63 for (const GURL& page : offline_pages) 76 for (const GURL& page : offline_pages)
64 offline_pages_vector.push_back(page.spec()); 77 offline_pages_vector.push_back(page.spec());
65 78
66 ScopedJavaLocalRef<jobjectArray> j_result_array = 79 ScopedJavaLocalRef<jobjectArray> j_result_array =
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 } 113 }
101 114
102 void DeletePageCallback(const ScopedJavaGlobalRef<jobject>& j_callback_obj, 115 void DeletePageCallback(const ScopedJavaGlobalRef<jobject>& j_callback_obj,
103 OfflinePageModel::DeletePageResult result) { 116 OfflinePageModel::DeletePageResult result) {
104 JNIEnv* env = base::android::AttachCurrentThread(); 117 JNIEnv* env = base::android::AttachCurrentThread();
105 118
106 Java_DeletePageCallback_onDeletePageDone( 119 Java_DeletePageCallback_onDeletePageDone(
107 env, j_callback_obj.obj(), static_cast<int>(result)); 120 env, j_callback_obj.obj(), static_cast<int>(result));
108 } 121 }
109 122
123 void SingleOfflinePageItemCallback(
124 const ScopedJavaGlobalRef<jobject>& j_callback_obj,
125 const OfflinePageModel::SingleOfflinePageItemResult& result) {
126 JNIEnv* env = base::android::AttachCurrentThread();
127 ScopedJavaLocalRef<jobject> j_result;
128
129 if (result)
130 j_result = ToJavaOfflinePageItem(env, *result);
131 Java_SingleOfflinePageItemCallback_onResult(env, j_callback_obj.obj(),
132 j_result.obj());
133 }
110 134
111 } // namespace 135 } // namespace
112 136
113 static jboolean IsOfflinePagesEnabled(JNIEnv* env, 137 static jboolean IsOfflinePagesEnabled(JNIEnv* env,
114 const JavaParamRef<jclass>& clazz) { 138 const JavaParamRef<jclass>& clazz) {
115 return offline_pages::IsOfflinePagesEnabled(); 139 return offline_pages::IsOfflinePagesEnabled();
116 } 140 }
117 141
118 static jboolean IsOfflineBookmarksEnabled(JNIEnv* env, 142 static jboolean IsOfflineBookmarksEnabled(JNIEnv* env,
119 const JavaParamRef<jclass>& clazz) { 143 const JavaParamRef<jclass>& clazz) {
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 } 280 }
257 281
258 ScopedJavaLocalRef<jobject> OfflinePageBridge::GetPageByOfflineId( 282 ScopedJavaLocalRef<jobject> OfflinePageBridge::GetPageByOfflineId(
259 JNIEnv* env, 283 JNIEnv* env,
260 const JavaParamRef<jobject>& obj, 284 const JavaParamRef<jobject>& obj,
261 jlong offline_id) { 285 jlong offline_id) {
262 const OfflinePageItem* offline_page = 286 const OfflinePageItem* offline_page =
263 offline_page_model_->MaybeGetPageByOfflineId(offline_id); 287 offline_page_model_->MaybeGetPageByOfflineId(offline_id);
264 if (!offline_page) 288 if (!offline_page)
265 return ScopedJavaLocalRef<jobject>(); 289 return ScopedJavaLocalRef<jobject>();
266 return CreateOfflinePageItem(env, *offline_page); 290 return ToJavaOfflinePageItem(env, *offline_page);
267 } 291 }
268 292
269 ScopedJavaLocalRef<jobject> OfflinePageBridge::GetBestPageForOnlineURL( 293 ScopedJavaLocalRef<jobject> OfflinePageBridge::GetBestPageForOnlineURL(
270 JNIEnv* env, 294 JNIEnv* env,
271 const JavaParamRef<jobject>& obj, 295 const JavaParamRef<jobject>& obj,
272 const JavaParamRef<jstring>& online_url) { 296 const JavaParamRef<jstring>& online_url) {
273 const OfflinePageItem* offline_page = 297 const OfflinePageItem* offline_page =
274 offline_page_model_->MaybeGetBestPageForOnlineURL( 298 offline_page_model_->MaybeGetBestPageForOnlineURL(
275 GURL(ConvertJavaStringToUTF8(env, online_url))); 299 GURL(ConvertJavaStringToUTF8(env, online_url)));
276 if (!offline_page) 300 if (!offline_page)
277 return ScopedJavaLocalRef<jobject>(); 301 return ScopedJavaLocalRef<jobject>();
278 return CreateOfflinePageItem(env, *offline_page); 302 return ToJavaOfflinePageItem(env, *offline_page);
279 } 303 }
280 304
281 ScopedJavaLocalRef<jobject> OfflinePageBridge::GetPageByOfflineUrl( 305 void OfflinePageBridge::GetPageByOfflineUrl(
282 JNIEnv* env, 306 JNIEnv* env,
283 const JavaParamRef<jobject>& obj, 307 const JavaParamRef<jobject>& obj,
284 const JavaParamRef<jstring>& j_offline_url) { 308 const JavaParamRef<jstring>& j_offline_url,
285 const OfflinePageItem* offline_page = 309 const JavaParamRef<jobject>& j_callback_obj) {
286 offline_page_model_->MaybeGetPageByOfflineURL( 310 DCHECK(j_callback_obj);
287 GURL(ConvertJavaStringToUTF8(env, j_offline_url))); 311
288 if (!offline_page) 312 ScopedJavaGlobalRef<jobject> j_callback_ref;
289 return ScopedJavaLocalRef<jobject>(); 313 j_callback_ref.Reset(env, j_callback_obj);
290 return CreateOfflinePageItem(env, *offline_page); 314
315 offline_page_model_->GetPageByOfflineURL(
316 GURL(ConvertJavaStringToUTF8(env, j_offline_url)),
317 base::Bind(&SingleOfflinePageItemCallback, j_callback_ref));
291 } 318 }
292 319
293 void OfflinePageBridge::SavePage( 320 void OfflinePageBridge::SavePage(
294 JNIEnv* env, 321 JNIEnv* env,
295 const JavaParamRef<jobject>& obj, 322 const JavaParamRef<jobject>& obj,
296 const JavaParamRef<jobject>& j_callback_obj, 323 const JavaParamRef<jobject>& j_callback_obj,
297 const JavaParamRef<jobject>& j_web_contents, 324 const JavaParamRef<jobject>& j_web_contents,
298 const JavaParamRef<jstring>& j_namespace, 325 const JavaParamRef<jstring>& j_namespace,
299 const JavaParamRef<jstring>& j_client_id) { 326 const JavaParamRef<jstring>& j_client_id) {
300 DCHECK(j_callback_obj); 327 DCHECK(j_callback_obj);
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
371 total_space_bytes, free_space_bytes, reporting_after_delete); 398 total_space_bytes, free_space_bytes, reporting_after_delete);
372 } 399 }
373 400
374 void OfflinePageBridge::NotifyIfDoneLoading() const { 401 void OfflinePageBridge::NotifyIfDoneLoading() const {
375 if (!offline_page_model_->is_loaded()) 402 if (!offline_page_model_->is_loaded())
376 return; 403 return;
377 JNIEnv* env = base::android::AttachCurrentThread(); 404 JNIEnv* env = base::android::AttachCurrentThread();
378 Java_OfflinePageBridge_offlinePageModelLoaded(env, java_ref_.obj()); 405 Java_OfflinePageBridge_offlinePageModelLoaded(env, java_ref_.obj());
379 } 406 }
380 407
381 ScopedJavaLocalRef<jobject> OfflinePageBridge::CreateOfflinePageItem(
382 JNIEnv* env,
383 const OfflinePageItem& offline_page) const {
384 return Java_OfflinePageBridge_createOfflinePageItem(
385 env, ConvertUTF8ToJavaString(env, offline_page.url.spec()).obj(),
386 offline_page.offline_id,
387 ConvertUTF8ToJavaString(env, offline_page.client_id.name_space).obj(),
388 ConvertUTF8ToJavaString(env, offline_page.client_id.id).obj(),
389 ConvertUTF8ToJavaString(env, offline_page.GetOfflineURL().spec()).obj(),
390 offline_page.file_size, offline_page.creation_time.ToJavaTime(),
391 offline_page.access_count, offline_page.last_access_time.ToJavaTime());
392 }
393 408
394 ScopedJavaLocalRef<jobject> OfflinePageBridge::CreateClientId( 409 ScopedJavaLocalRef<jobject> OfflinePageBridge::CreateClientId(
395 JNIEnv* env, 410 JNIEnv* env,
396 const ClientId& client_id) const { 411 const ClientId& client_id) const {
397 return Java_OfflinePageBridge_createClientId( 412 return Java_OfflinePageBridge_createClientId(
398 env, 413 env,
399 ConvertUTF8ToJavaString(env, client_id.name_space).obj(), 414 ConvertUTF8ToJavaString(env, client_id.name_space).obj(),
400 ConvertUTF8ToJavaString(env, client_id.id).obj()); 415 ConvertUTF8ToJavaString(env, client_id.id).obj());
401 } 416 }
402 417
403 bool RegisterOfflinePageBridge(JNIEnv* env) { 418 bool RegisterOfflinePageBridge(JNIEnv* env) {
404 return RegisterNativesImpl(env); 419 return RegisterNativesImpl(env);
405 } 420 }
406 421
407 } // namespace android 422 } // namespace android
408 } // namespace offline_pages 423 } // namespace offline_pages
OLDNEW
« no previous file with comments | « chrome/browser/android/offline_pages/offline_page_bridge.h ('k') | components/offline_pages/offline_page_model.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698