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

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: Comment response 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
fgorski 2016/05/17 04:12:25 nit: remove extra empty line.
chili 2016/05/17 17:53:30 Done.
58 ScopedJavaLocalRef<jobject> ToJavaOfflinePageItem(
59 JNIEnv* env,
60 const OfflinePageItem& offline_page) {
61 return Java_OfflinePageBridge_createOfflinePageItem(
62 env, ConvertUTF8ToJavaString(env, offline_page.url.spec()).obj(),
63 offline_page.offline_id,
64 ConvertUTF8ToJavaString(env, offline_page.client_id.name_space).obj(),
65 ConvertUTF8ToJavaString(env, offline_page.client_id.id).obj(),
66 ConvertUTF8ToJavaString(env, offline_page.GetOfflineURL().spec()).obj(),
67 offline_page.file_size, offline_page.creation_time.ToJavaTime(),
68 offline_page.access_count, offline_page.last_access_time.ToJavaTime());
69 }
70
57 void CheckPagesExistOfflineCallback( 71 void CheckPagesExistOfflineCallback(
58 const ScopedJavaGlobalRef<jobject>& j_callback_obj, 72 const ScopedJavaGlobalRef<jobject>& j_callback_obj,
59 const OfflinePageModel::CheckPagesExistOfflineResult& offline_pages) { 73 const OfflinePageModel::CheckPagesExistOfflineResult& offline_pages) {
60 JNIEnv* env = base::android::AttachCurrentThread(); 74 JNIEnv* env = base::android::AttachCurrentThread();
61 75
62 std::vector<std::string> offline_pages_vector; 76 std::vector<std::string> offline_pages_vector;
63 for (const GURL& page : offline_pages) 77 for (const GURL& page : offline_pages)
64 offline_pages_vector.push_back(page.spec()); 78 offline_pages_vector.push_back(page.spec());
65 79
66 ScopedJavaLocalRef<jobjectArray> j_result_array = 80 ScopedJavaLocalRef<jobjectArray> j_result_array =
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 } 114 }
101 115
102 void DeletePageCallback(const ScopedJavaGlobalRef<jobject>& j_callback_obj, 116 void DeletePageCallback(const ScopedJavaGlobalRef<jobject>& j_callback_obj,
103 OfflinePageModel::DeletePageResult result) { 117 OfflinePageModel::DeletePageResult result) {
104 JNIEnv* env = base::android::AttachCurrentThread(); 118 JNIEnv* env = base::android::AttachCurrentThread();
105 119
106 Java_DeletePageCallback_onDeletePageDone( 120 Java_DeletePageCallback_onDeletePageDone(
107 env, j_callback_obj.obj(), static_cast<int>(result)); 121 env, j_callback_obj.obj(), static_cast<int>(result));
108 } 122 }
109 123
124 void SingleOfflinePageItemCallback(
125 const ScopedJavaGlobalRef<jobject>& j_callback_obj,
126 const OfflinePageModel::SingleOfflinePageItemResult& result) {
127 JNIEnv* env = base::android::AttachCurrentThread();
128 ScopedJavaLocalRef<jobject> j_result;
129
130 if (result) {
fgorski 2016/05/17 04:12:25 nit: you don't need braces if you have one line if
chili 2016/05/17 17:53:30 Habit from Java >_>
131 j_result = ToJavaOfflinePageItem(env, *result);
fgorski 2016/05/17 04:12:25 nit: indentation should be 2 spaces... like below,
chili 2016/05/17 17:53:30 Done.
132 }
133 Java_SingleOfflinePageItemCallback_onResult(
134 env, j_callback_obj.obj(), j_result.obj());
135 }
110 136
111 } // namespace 137 } // namespace
112 138
113 static jboolean IsOfflinePagesEnabled(JNIEnv* env, 139 static jboolean IsOfflinePagesEnabled(JNIEnv* env,
114 const JavaParamRef<jclass>& clazz) { 140 const JavaParamRef<jclass>& clazz) {
115 return offline_pages::IsOfflinePagesEnabled(); 141 return offline_pages::IsOfflinePagesEnabled();
116 } 142 }
117 143
118 static jboolean IsOfflineBookmarksEnabled(JNIEnv* env, 144 static jboolean IsOfflineBookmarksEnabled(JNIEnv* env,
119 const JavaParamRef<jclass>& clazz) { 145 const JavaParamRef<jclass>& clazz) {
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 } 282 }
257 283
258 ScopedJavaLocalRef<jobject> OfflinePageBridge::GetPageByOfflineId( 284 ScopedJavaLocalRef<jobject> OfflinePageBridge::GetPageByOfflineId(
259 JNIEnv* env, 285 JNIEnv* env,
260 const JavaParamRef<jobject>& obj, 286 const JavaParamRef<jobject>& obj,
261 jlong offline_id) { 287 jlong offline_id) {
262 const OfflinePageItem* offline_page = 288 const OfflinePageItem* offline_page =
263 offline_page_model_->MaybeGetPageByOfflineId(offline_id); 289 offline_page_model_->MaybeGetPageByOfflineId(offline_id);
264 if (!offline_page) 290 if (!offline_page)
265 return ScopedJavaLocalRef<jobject>(); 291 return ScopedJavaLocalRef<jobject>();
266 return CreateOfflinePageItem(env, *offline_page); 292 return ToJavaOfflinePageItem(env, *offline_page);
267 } 293 }
268 294
269 ScopedJavaLocalRef<jobject> OfflinePageBridge::GetBestPageForOnlineURL( 295 ScopedJavaLocalRef<jobject> OfflinePageBridge::GetBestPageForOnlineURL(
270 JNIEnv* env, 296 JNIEnv* env,
271 const JavaParamRef<jobject>& obj, 297 const JavaParamRef<jobject>& obj,
272 const JavaParamRef<jstring>& online_url) { 298 const JavaParamRef<jstring>& online_url) {
273 const OfflinePageItem* offline_page = 299 const OfflinePageItem* offline_page =
274 offline_page_model_->MaybeGetBestPageForOnlineURL( 300 offline_page_model_->MaybeGetBestPageForOnlineURL(
275 GURL(ConvertJavaStringToUTF8(env, online_url))); 301 GURL(ConvertJavaStringToUTF8(env, online_url)));
276 if (!offline_page) 302 if (!offline_page)
277 return ScopedJavaLocalRef<jobject>(); 303 return ScopedJavaLocalRef<jobject>();
278 return CreateOfflinePageItem(env, *offline_page); 304 return ToJavaOfflinePageItem(env, *offline_page);
279 } 305 }
280 306
281 ScopedJavaLocalRef<jobject> OfflinePageBridge::GetPageByOfflineUrl( 307 void OfflinePageBridge::GetPageByOfflineUrl(
282 JNIEnv* env, 308 JNIEnv* env,
283 const JavaParamRef<jobject>& obj, 309 const JavaParamRef<jobject>& obj,
284 const JavaParamRef<jstring>& j_offline_url) { 310 const JavaParamRef<jstring>& j_offline_url,
285 const OfflinePageItem* offline_page = 311 const JavaParamRef<jobject>& j_callback_obj) {
286 offline_page_model_->MaybeGetPageByOfflineURL( 312 DCHECK(j_callback_obj);
287 GURL(ConvertJavaStringToUTF8(env, j_offline_url))); 313
288 if (!offline_page) 314 ScopedJavaGlobalRef<jobject> j_callback_ref;
289 return ScopedJavaLocalRef<jobject>(); 315 j_callback_ref.Reset(env, j_callback_obj);
290 return CreateOfflinePageItem(env, *offline_page); 316
317 offline_page_model_->GetPageByOfflineURL(
318 GURL(ConvertJavaStringToUTF8(env, j_offline_url)),
fgorski 2016/05/17 04:12:25 nit: run git cl format... too many spaces here.
chili 2016/05/17 17:53:29 More touch-ups to vim config...
319 base::Bind(&SingleOfflinePageItemCallback, j_callback_ref));
291 } 320 }
292 321
293 void OfflinePageBridge::SavePage( 322 void OfflinePageBridge::SavePage(
294 JNIEnv* env, 323 JNIEnv* env,
295 const JavaParamRef<jobject>& obj, 324 const JavaParamRef<jobject>& obj,
296 const JavaParamRef<jobject>& j_callback_obj, 325 const JavaParamRef<jobject>& j_callback_obj,
297 const JavaParamRef<jobject>& j_web_contents, 326 const JavaParamRef<jobject>& j_web_contents,
298 const JavaParamRef<jstring>& j_namespace, 327 const JavaParamRef<jstring>& j_namespace,
299 const JavaParamRef<jstring>& j_client_id) { 328 const JavaParamRef<jstring>& j_client_id) {
300 DCHECK(j_callback_obj); 329 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); 400 total_space_bytes, free_space_bytes, reporting_after_delete);
372 } 401 }
373 402
374 void OfflinePageBridge::NotifyIfDoneLoading() const { 403 void OfflinePageBridge::NotifyIfDoneLoading() const {
375 if (!offline_page_model_->is_loaded()) 404 if (!offline_page_model_->is_loaded())
376 return; 405 return;
377 JNIEnv* env = base::android::AttachCurrentThread(); 406 JNIEnv* env = base::android::AttachCurrentThread();
378 Java_OfflinePageBridge_offlinePageModelLoaded(env, java_ref_.obj()); 407 Java_OfflinePageBridge_offlinePageModelLoaded(env, java_ref_.obj());
379 } 408 }
380 409
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 410
394 ScopedJavaLocalRef<jobject> OfflinePageBridge::CreateClientId( 411 ScopedJavaLocalRef<jobject> OfflinePageBridge::CreateClientId(
395 JNIEnv* env, 412 JNIEnv* env,
396 const ClientId& client_id) const { 413 const ClientId& client_id) const {
397 return Java_OfflinePageBridge_createClientId( 414 return Java_OfflinePageBridge_createClientId(
398 env, 415 env,
399 ConvertUTF8ToJavaString(env, client_id.name_space).obj(), 416 ConvertUTF8ToJavaString(env, client_id.name_space).obj(),
400 ConvertUTF8ToJavaString(env, client_id.id).obj()); 417 ConvertUTF8ToJavaString(env, client_id.id).obj());
401 } 418 }
402 419
403 bool RegisterOfflinePageBridge(JNIEnv* env) { 420 bool RegisterOfflinePageBridge(JNIEnv* env) {
404 return RegisterNativesImpl(env); 421 return RegisterNativesImpl(env);
405 } 422 }
406 423
407 } // namespace android 424 } // namespace android
408 } // namespace offline_pages 425 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698