| 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;
|
|
|