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

Unified Diff: chrome/browser/android/offline_pages/offline_page_bridge.cc

Issue 1307753002: [Offline pages] Adding capability to free up space used by Offline pages (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Attempt 2 at the arm64 build issue Created 5 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 27c315f7fc6789bc6f56f77b086a77f8017fec12..d00b881a0246dd67d5fa6c88078bbdefece6baee 100644
--- a/chrome/browser/android/offline_pages/offline_page_bridge.cc
+++ b/chrome/browser/android/offline_pages/offline_page_bridge.cc
@@ -4,7 +4,9 @@
#include "chrome/browser/android/offline_pages/offline_page_bridge.h"
+#include "base/android/jni_array.h"
#include "base/android/jni_string.h"
+#include "base/basictypes.h"
#include "base/files/file_path.h"
#include "base/strings/string_util.h"
#include "chrome/browser/android/offline_pages/offline_page_mhtml_archiver.h"
@@ -54,6 +56,19 @@ void DeletePageCallback(ScopedJavaGlobalRef<jobject>* j_callback_obj,
env, j_callback_ptr->obj(), static_cast<int>(result));
}
+void ToJavaOfflinePageList(JNIEnv* env,
+ jobject j_result_obj,
+ const std::vector<OfflinePageItem>& offline_pages) {
+ for (const OfflinePageItem& offline_page : offline_pages) {
+ Java_OfflinePageBridge_createOfflinePageAndAddToList(
+ env, j_result_obj,
+ ConvertUTF8ToJavaString(env, offline_page.url.spec()).obj(),
+ offline_page.bookmark_id,
+ ConvertUTF8ToJavaString(env, offline_page.GetOfflineURL().spec()).obj(),
+ offline_page.file_size);
+ }
+}
+
} // namespace
static jboolean IsOfflinePagesEnabled(JNIEnv* env, jclass clazz) {
@@ -88,15 +103,17 @@ void OfflinePageBridge::GetAllPages(JNIEnv* env,
DCHECK(j_result_obj);
const std::vector<OfflinePageItem>& offline_pages =
offline_page_model_->GetAllPages();
+ ToJavaOfflinePageList(env, j_result_obj, offline_pages);
+}
- for (const OfflinePageItem& offline_page : offline_pages) {
- Java_OfflinePageBridge_createOfflinePageAndAddToList(
- env, j_result_obj,
- ConvertUTF8ToJavaString(env, offline_page.url.spec()).obj(),
- offline_page.bookmark_id,
- ConvertUTF8ToJavaString(env, offline_page.GetOfflineURL().spec()).obj(),
- offline_page.file_size);
- }
+void OfflinePageBridge::GetPagesToCleanUp(JNIEnv* env,
+ jobject obj,
+ jobject j_result_obj) {
+ DCHECK(offline_page_model_->is_loaded());
+ DCHECK(j_result_obj);
+ const std::vector<OfflinePageItem>& offline_pages =
+ offline_page_model_->GetPagesToCleanUp();
+ ToJavaOfflinePageList(env, j_result_obj, offline_pages);
}
ScopedJavaLocalRef<jobject> OfflinePageBridge::GetPageByBookmarkId(
@@ -153,6 +170,25 @@ void OfflinePageBridge::DeletePage(JNIEnv* env,
&DeletePageCallback, j_callback_obj_ptr.release()));
}
+void OfflinePageBridge::DeletePages(JNIEnv* env,
+ jobject obj,
+ jobject j_callback_obj,
+ jlongArray bookmark_ids_array) {
+ DCHECK(j_callback_obj);
+
+ scoped_ptr<ScopedJavaGlobalRef<jobject>> j_callback_obj_ptr(
newt (away) 2015/08/24 22:37:08 Don't wrap ScopedJavaGlobalRef in a scoped_ptr. Ju
fgorski 2015/08/25 18:25:25 Done.
newt (away) 2015/08/27 03:13:27 Thanks for this cleanup.
+ new ScopedJavaGlobalRef<jobject>());
+ j_callback_obj_ptr->Reset(env, j_callback_obj);
+
+ std::vector<int64> bookmark_ids;
+ base::android::JavaLongArrayToLongVector(env, bookmark_ids_array,
+ &bookmark_ids);
+
+ offline_page_model_->DeletePagesByBookmarkId(
+ bookmark_ids,
+ base::Bind(&DeletePageCallback, j_callback_obj_ptr.release()));
+}
+
void OfflinePageBridge::NotifyIfDoneLoading() const {
if (!offline_page_model_->is_loaded())
return;

Powered by Google App Engine
This is Rietveld 408576698