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

Unified 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 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 dc73d50579f2a56d79bec9af66b308c6b9e4da07..47bdb50767b29a3be0ce525305ba7644f3e7ef49 100644
--- a/chrome/browser/android/offline_pages/offline_page_bridge.cc
+++ b/chrome/browser/android/offline_pages/offline_page_bridge.cc
@@ -172,6 +172,16 @@ void OnGetAllRequestsDone(const ScopedJavaGlobalRef<jobject>& j_callback_obj,
base::android::RunCallbackAndroid(j_callback_obj, j_result_obj);
}
+void OnRemoveRequestsDone(
+ const ScopedJavaGlobalRef<jobject>& j_callback_obj,
+ const std::vector<SavePageRequest>& removed_requests) {
+ JNIEnv* env = base::android::AttachCurrentThread();
+
+ ScopedJavaLocalRef<jobjectArray> j_result_obj =
+ CreateJavaSavePageRequests(env, removed_requests);
+ base::android::RunCallbackAndroid(j_callback_obj, j_result_obj);
+}
+
} // namespace
static jboolean IsOfflinePagesEnabled(JNIEnv* env,
@@ -475,6 +485,31 @@ void OfflinePageBridge::GetRequestsInQueue(
base::Bind(&OnGetAllRequestsDone, j_callback_ref));
}
+void OfflinePageBridge::RemoveRequestsFromQueue(
+ JNIEnv* env,
+ const JavaParamRef<jobject>& obj,
+ const JavaParamRef<jlongArray>& j_request_ids_array,
+ const JavaParamRef<jobject>& j_callback_obj) {
+ std::vector<int64_t> request_ids;
+ base::android::JavaLongArrayToInt64Vector(env, j_request_ids_array,
+ &request_ids);
+ ScopedJavaGlobalRef<jobject> j_callback_ref(j_callback_obj);
+
+ RequestCoordinator* coordinator =
+ offline_pages::RequestCoordinatorFactory::GetInstance()
+ ->GetForBrowserContext(browser_context_);
+
+ if (!coordinator) {
+ // Callback with null to signal that results are unavailable.
+ const JavaParamRef<jobject> empty_result(nullptr);
+ base::android::RunCallbackAndroid(j_callback_obj, empty_result);
+ return;
+ }
+
+ coordinator->RemoveRequests(
+ request_ids, base::Bind(&OnRemoveRequestsDone, j_callback_ref));
+}
+
void OfflinePageBridge::NotifyIfDoneLoading() const {
if (!offline_page_model_->is_loaded())
return;

Powered by Google App Engine
This is Rietveld 408576698