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

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

Issue 1397233002: [Offline pages] Detecting missing offline copy (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebasing Created 5 years, 2 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 "base/android/jni_array.h" 7 #include "base/android/jni_array.h"
8 #include "base/android/jni_string.h" 8 #include "base/android/jni_string.h"
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 96
97 void OfflinePageBridge::OfflinePageModelChanged(OfflinePageModel* model) { 97 void OfflinePageBridge::OfflinePageModelChanged(OfflinePageModel* model) {
98 DCHECK_EQ(offline_page_model_, model); 98 DCHECK_EQ(offline_page_model_, model);
99 JNIEnv* env = base::android::AttachCurrentThread(); 99 JNIEnv* env = base::android::AttachCurrentThread();
100 ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env); 100 ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env);
101 if (obj.is_null()) 101 if (obj.is_null())
102 return; 102 return;
103 Java_OfflinePageBridge_offlinePageModelChanged(env, obj.obj()); 103 Java_OfflinePageBridge_offlinePageModelChanged(env, obj.obj());
104 } 104 }
105 105
106 void OfflinePageBridge::OfflinePageDeleted(int64 bookmark_id) {
107 if (!offline_page_model_->is_loaded())
jianli 2015/10/20 21:56:48 Is this likely?
fgorski 2015/10/21 20:01:33 Good catch.
108 return;
109 JNIEnv* env = base::android::AttachCurrentThread();
110 ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env);
111 if (obj.is_null())
112 return;
113 Java_OfflinePageBridge_offlinePageDeleted(env, obj.obj(), bookmark_id);
114 }
115
106 void OfflinePageBridge::GetAllPages(JNIEnv* env, 116 void OfflinePageBridge::GetAllPages(JNIEnv* env,
107 jobject obj, 117 jobject obj,
108 jobject j_result_obj) { 118 jobject j_result_obj) {
109 DCHECK(offline_page_model_->is_loaded()); 119 DCHECK(offline_page_model_->is_loaded());
110 DCHECK(j_result_obj); 120 DCHECK(j_result_obj);
111 const std::vector<OfflinePageItem>& offline_pages = 121 const std::vector<OfflinePageItem>& offline_pages =
112 offline_page_model_->GetAllPages(); 122 offline_page_model_->GetAllPages();
113 ToJavaOfflinePageList(env, j_result_obj, offline_pages); 123 ToJavaOfflinePageList(env, j_result_obj, offline_pages);
114 } 124 }
115 125
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 204
195 std::vector<int64> bookmark_ids; 205 std::vector<int64> bookmark_ids;
196 base::android::JavaLongArrayToInt64Vector(env, bookmark_ids_array, 206 base::android::JavaLongArrayToInt64Vector(env, bookmark_ids_array,
197 &bookmark_ids); 207 &bookmark_ids);
198 208
199 offline_page_model_->DeletePagesByBookmarkId( 209 offline_page_model_->DeletePagesByBookmarkId(
200 bookmark_ids, 210 bookmark_ids,
201 base::Bind(&DeletePageCallback, j_callback_ref)); 211 base::Bind(&DeletePageCallback, j_callback_ref));
202 } 212 }
203 213
214 void OfflinePageBridge::CheckMetadataConsistency(JNIEnv* env, jobject obj) {
215 offline_page_model_->CheckForExternalFileDeletion();
216 }
217
204 void OfflinePageBridge::NotifyIfDoneLoading() const { 218 void OfflinePageBridge::NotifyIfDoneLoading() const {
205 if (!offline_page_model_->is_loaded()) 219 if (!offline_page_model_->is_loaded())
206 return; 220 return;
207 JNIEnv* env = base::android::AttachCurrentThread(); 221 JNIEnv* env = base::android::AttachCurrentThread();
208 ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env); 222 ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env);
209 if (obj.is_null()) 223 if (obj.is_null())
210 return; 224 return;
211 Java_OfflinePageBridge_offlinePageModelLoaded(env, obj.obj()); 225 Java_OfflinePageBridge_offlinePageModelLoaded(env, obj.obj());
212 } 226 }
213 227
(...skipping 26 matching lines...) Expand all
240 return reinterpret_cast<jlong>(new OfflinePageBridge( 254 return reinterpret_cast<jlong>(new OfflinePageBridge(
241 env, obj, ProfileAndroid::FromProfileAndroid(j_profile))); 255 env, obj, ProfileAndroid::FromProfileAndroid(j_profile)));
242 } 256 }
243 257
244 bool RegisterOfflinePageBridge(JNIEnv* env) { 258 bool RegisterOfflinePageBridge(JNIEnv* env) {
245 return RegisterNativesImpl(env); 259 return RegisterNativesImpl(env);
246 } 260 }
247 261
248 } // namespace android 262 } // namespace android
249 } // namespace offline_pages 263 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698