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

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

Issue 2564163002: [Offline Pages] Remove load state from public OfflinePageModel API. (Closed)
Patch Set: Fix broken tests. Created 4 years 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 <memory> 7 #include <memory>
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 255
256 OfflinePageBridge::OfflinePageBridge(JNIEnv* env, 256 OfflinePageBridge::OfflinePageBridge(JNIEnv* env,
257 content::BrowserContext* browser_context, 257 content::BrowserContext* browser_context,
258 OfflinePageModel* offline_page_model) 258 OfflinePageModel* offline_page_model)
259 : browser_context_(browser_context), 259 : browser_context_(browser_context),
260 offline_page_model_(offline_page_model) { 260 offline_page_model_(offline_page_model) {
261 ScopedJavaLocalRef<jobject> j_offline_page_bridge = 261 ScopedJavaLocalRef<jobject> j_offline_page_bridge =
262 Java_OfflinePageBridge_create(env, reinterpret_cast<jlong>(this)); 262 Java_OfflinePageBridge_create(env, reinterpret_cast<jlong>(this));
263 java_ref_.Reset(j_offline_page_bridge); 263 java_ref_.Reset(j_offline_page_bridge);
264 264
265 NotifyIfDoneLoading();
266 offline_page_model_->AddObserver(this); 265 offline_page_model_->AddObserver(this);
267 } 266 }
268 267
269 OfflinePageBridge::~OfflinePageBridge() { 268 OfflinePageBridge::~OfflinePageBridge() {
270 JNIEnv* env = base::android::AttachCurrentThread(); 269 JNIEnv* env = base::android::AttachCurrentThread();
271 270
272 // Native shutdown causes the destruction of |this|. 271 // Native shutdown causes the destruction of |this|.
273 Java_OfflinePageBridge_offlinePageBridgeDestroyed(env, java_ref_); 272 Java_OfflinePageBridge_offlinePageBridgeDestroyed(env, java_ref_);
274 } 273 }
275 274
276 void OfflinePageBridge::OfflinePageModelLoaded(OfflinePageModel* model) {
277 DCHECK_EQ(offline_page_model_, model);
278 NotifyIfDoneLoading();
279 }
280
281 void OfflinePageBridge::OfflinePageAdded(OfflinePageModel* model, 275 void OfflinePageBridge::OfflinePageAdded(OfflinePageModel* model,
282 const OfflinePageItem& added_page) { 276 const OfflinePageItem& added_page) {
283 DCHECK_EQ(offline_page_model_, model); 277 DCHECK_EQ(offline_page_model_, model);
284 JNIEnv* env = base::android::AttachCurrentThread(); 278 JNIEnv* env = base::android::AttachCurrentThread();
285 279
286 Java_OfflinePageBridge_offlinePageAdded( 280 Java_OfflinePageBridge_offlinePageAdded(
287 env, java_ref_, ToJavaOfflinePageItem(env, added_page)); 281 env, java_ref_, ToJavaOfflinePageItem(env, added_page));
288 } 282 }
289 283
290 void OfflinePageBridge::OfflinePageDeleted(int64_t offline_id, 284 void OfflinePageBridge::OfflinePageDeleted(int64_t offline_id,
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
549 // Callback with null to signal that results are unavailable. 543 // Callback with null to signal that results are unavailable.
550 const JavaParamRef<jobject> empty_result(nullptr); 544 const JavaParamRef<jobject> empty_result(nullptr);
551 base::android::RunCallbackAndroid(j_callback_obj, empty_result); 545 base::android::RunCallbackAndroid(j_callback_obj, empty_result);
552 return; 546 return;
553 } 547 }
554 548
555 coordinator->RemoveRequests( 549 coordinator->RemoveRequests(
556 request_ids, base::Bind(&OnRemoveRequestsDone, j_callback_ref)); 550 request_ids, base::Bind(&OnRemoveRequestsDone, j_callback_ref));
557 } 551 }
558 552
559 void OfflinePageBridge::NotifyIfDoneLoading() const {
560 if (!offline_page_model_->is_loaded())
561 return;
562 JNIEnv* env = base::android::AttachCurrentThread();
563 Java_OfflinePageBridge_offlinePageModelLoaded(env, java_ref_);
564 }
565
566
567 ScopedJavaLocalRef<jobject> OfflinePageBridge::CreateClientId( 553 ScopedJavaLocalRef<jobject> OfflinePageBridge::CreateClientId(
568 JNIEnv* env, 554 JNIEnv* env,
569 const ClientId& client_id) const { 555 const ClientId& client_id) const {
570 return Java_OfflinePageBridge_createClientId( 556 return Java_OfflinePageBridge_createClientId(
571 env, ConvertUTF8ToJavaString(env, client_id.name_space), 557 env, ConvertUTF8ToJavaString(env, client_id.name_space),
572 ConvertUTF8ToJavaString(env, client_id.id)); 558 ConvertUTF8ToJavaString(env, client_id.id));
573 } 559 }
574 560
575 bool RegisterOfflinePageBridge(JNIEnv* env) { 561 bool RegisterOfflinePageBridge(JNIEnv* env) {
576 return RegisterNativesImpl(env); 562 return RegisterNativesImpl(env);
577 } 563 }
578 564
579 } // namespace android 565 } // namespace android
580 } // namespace offline_pages 566 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698