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

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: Rebase. 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
« no previous file with comments | « chrome/browser/android/offline_pages/offline_page_bridge.h ('k') | components/offline_pages/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 da2cc32e4f8d5ee10bd0b59c5503be7c225679d8..95f53fdb8b8c9a9ee8943352cfc7ab80448c48e9 100644
--- a/chrome/browser/android/offline_pages/offline_page_bridge.cc
+++ b/chrome/browser/android/offline_pages/offline_page_bridge.cc
@@ -23,6 +23,7 @@
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_android.h"
#include "components/offline_pages/background/request_coordinator.h"
+#include "components/offline_pages/background/request_queue.h"
#include "components/offline_pages/background/save_page_request.h"
#include "components/offline_pages/offline_page_feature.h"
#include "components/offline_pages/offline_page_item.h"
@@ -171,6 +172,30 @@ 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 RequestQueue::UpdateMultipleRequestResults& removed_request_results) {
+ JNIEnv* env = base::android::AttachCurrentThread();
+
+ std::vector<int> update_request_results;
+ std::vector<int64_t> update_request_ids;
+
+ for (std::pair<int64_t, RequestQueue::UpdateRequestResult> remove_result :
+ removed_request_results) {
+ update_request_ids.emplace_back(std::get<0>(remove_result));
+ update_request_results.emplace_back(
+ static_cast<int>(std::get<1>(remove_result)));
+ }
+
+ ScopedJavaLocalRef<jlongArray> j_result_ids =
+ base::android::ToJavaLongArray(env, update_request_ids);
+ ScopedJavaLocalRef<jintArray> j_result_codes =
+ base::android::ToJavaIntArray(env, update_request_results);
+
+ Java_RequestsRemovedCallback_onResult(env, j_callback_obj, j_result_ids,
+ j_result_codes);
+}
+
} // namespace
static jboolean IsOfflinePagesEnabled(JNIEnv* env,
@@ -474,6 +499,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;
« no previous file with comments | « chrome/browser/android/offline_pages/offline_page_bridge.h ('k') | components/offline_pages/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698