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

Side by Side Diff: chrome/browser/android/offline_pages/offline_page_bridge.cc

Issue 2256373002: Adds request queue removal capability to OfflinePageBridge. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@query-queue
Patch Set: Rename some callbacks. Created 4 years, 4 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 <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 165
166 void OnGetAllRequestsDone(const ScopedJavaGlobalRef<jobject>& j_callback_obj, 166 void OnGetAllRequestsDone(const ScopedJavaGlobalRef<jobject>& j_callback_obj,
167 const std::vector<SavePageRequest>& all_requests) { 167 const std::vector<SavePageRequest>& all_requests) {
168 JNIEnv* env = base::android::AttachCurrentThread(); 168 JNIEnv* env = base::android::AttachCurrentThread();
169 169
170 ScopedJavaLocalRef<jobjectArray> j_result_obj = 170 ScopedJavaLocalRef<jobjectArray> j_result_obj =
171 CreateJavaSavePageRequests(env, all_requests); 171 CreateJavaSavePageRequests(env, all_requests);
172 base::android::RunCallbackAndroid(j_callback_obj, j_result_obj); 172 base::android::RunCallbackAndroid(j_callback_obj, j_result_obj);
173 } 173 }
174 174
175 void OnRemoveRequestsDone(
176 const ScopedJavaGlobalRef<jobject>& j_callback_obj,
177 const std::vector<SavePageRequest>& removed_requests) {
178 JNIEnv* env = base::android::AttachCurrentThread();
179
180 ScopedJavaLocalRef<jobjectArray> j_result_obj =
181 CreateJavaSavePageRequests(env, removed_requests);
182 base::android::RunCallbackAndroid(j_callback_obj, j_result_obj);
183 }
184
175 } // namespace 185 } // namespace
176 186
177 static jboolean IsOfflinePagesEnabled(JNIEnv* env, 187 static jboolean IsOfflinePagesEnabled(JNIEnv* env,
178 const JavaParamRef<jclass>& clazz) { 188 const JavaParamRef<jclass>& clazz) {
179 return offline_pages::IsOfflinePagesEnabled(); 189 return offline_pages::IsOfflinePagesEnabled();
180 } 190 }
181 191
182 static jboolean IsOfflineBookmarksEnabled(JNIEnv* env, 192 static jboolean IsOfflineBookmarksEnabled(JNIEnv* env,
183 const JavaParamRef<jclass>& clazz) { 193 const JavaParamRef<jclass>& clazz) {
184 return offline_pages::IsOfflineBookmarksEnabled(); 194 return offline_pages::IsOfflineBookmarksEnabled();
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
468 // Callback with null to signal that results are unavailable. 478 // Callback with null to signal that results are unavailable.
469 const JavaParamRef<jobject> empty_result(nullptr); 479 const JavaParamRef<jobject> empty_result(nullptr);
470 base::android::RunCallbackAndroid(j_callback_obj, empty_result); 480 base::android::RunCallbackAndroid(j_callback_obj, empty_result);
471 return; 481 return;
472 } 482 }
473 483
474 coordinator->GetAllRequests( 484 coordinator->GetAllRequests(
475 base::Bind(&OnGetAllRequestsDone, j_callback_ref)); 485 base::Bind(&OnGetAllRequestsDone, j_callback_ref));
476 } 486 }
477 487
488 void OfflinePageBridge::RemoveRequestsFromQueue(
489 JNIEnv* env,
490 const JavaParamRef<jobject>& obj,
491 const JavaParamRef<jlongArray>& j_request_ids_array,
492 const JavaParamRef<jobject>& j_callback_obj) {
493 std::vector<int64_t> request_ids;
494 base::android::JavaLongArrayToInt64Vector(env, j_request_ids_array,
495 &request_ids);
496 ScopedJavaGlobalRef<jobject> j_callback_ref(j_callback_obj);
497
498 RequestCoordinator* coordinator =
499 offline_pages::RequestCoordinatorFactory::GetInstance()
500 ->GetForBrowserContext(browser_context_);
501
502 if (!coordinator) {
503 // Callback with null to signal that results are unavailable.
504 const JavaParamRef<jobject> empty_result(nullptr);
505 base::android::RunCallbackAndroid(j_callback_obj, empty_result);
506 return;
507 }
508
509 coordinator->RemoveRequests(
510 request_ids, base::Bind(&OnRemoveRequestsDone, j_callback_ref));
511 }
512
478 void OfflinePageBridge::NotifyIfDoneLoading() const { 513 void OfflinePageBridge::NotifyIfDoneLoading() const {
479 if (!offline_page_model_->is_loaded()) 514 if (!offline_page_model_->is_loaded())
480 return; 515 return;
481 JNIEnv* env = base::android::AttachCurrentThread(); 516 JNIEnv* env = base::android::AttachCurrentThread();
482 Java_OfflinePageBridge_offlinePageModelLoaded(env, java_ref_); 517 Java_OfflinePageBridge_offlinePageModelLoaded(env, java_ref_);
483 } 518 }
484 519
485 520
486 ScopedJavaLocalRef<jobject> OfflinePageBridge::CreateClientId( 521 ScopedJavaLocalRef<jobject> OfflinePageBridge::CreateClientId(
487 JNIEnv* env, 522 JNIEnv* env,
488 const ClientId& client_id) const { 523 const ClientId& client_id) const {
489 return Java_OfflinePageBridge_createClientId( 524 return Java_OfflinePageBridge_createClientId(
490 env, ConvertUTF8ToJavaString(env, client_id.name_space), 525 env, ConvertUTF8ToJavaString(env, client_id.name_space),
491 ConvertUTF8ToJavaString(env, client_id.id)); 526 ConvertUTF8ToJavaString(env, client_id.id));
492 } 527 }
493 528
494 bool RegisterOfflinePageBridge(JNIEnv* env) { 529 bool RegisterOfflinePageBridge(JNIEnv* env) {
495 return RegisterNativesImpl(env); 530 return RegisterNativesImpl(env);
496 } 531 }
497 532
498 } // namespace android 533 } // namespace android
499 } // namespace offline_pages 534 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698