| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/evaluation/offline_page_evaluatio
n_bridge.h" | 5 #include "chrome/browser/android/offline_pages/evaluation/offline_page_evaluatio
n_bridge.h" |
| 6 | 6 |
| 7 #include "base/android/callback_android.h" | 7 #include "base/android/callback_android.h" |
| 8 #include "base/android/jni_android.h" | 8 #include "base/android/jni_android.h" |
| 9 #include "base/android/jni_array.h" | 9 #include "base/android/jni_array.h" |
| 10 #include "base/android/jni_string.h" | 10 #include "base/android/jni_string.h" |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 46 namespace offline_pages { | 46 namespace offline_pages { |
| 47 namespace android { | 47 namespace android { |
| 48 | 48 |
| 49 namespace { | 49 namespace { |
| 50 const bool kPreferUntriedRequest = false; | 50 const bool kPreferUntriedRequest = false; |
| 51 const bool kPreferEarlierRequest = true; | 51 const bool kPreferEarlierRequest = true; |
| 52 const bool kPreferRetryCountOverRecency = false; | 52 const bool kPreferRetryCountOverRecency = false; |
| 53 const int kMaxStartedTries = 4; | 53 const int kMaxStartedTries = 4; |
| 54 const int kMaxCompletedTries = 1; | 54 const int kMaxCompletedTries = 1; |
| 55 const int kImmediateRequestExpirationTimeInSeconds = 3600; | 55 const int kImmediateRequestExpirationTimeInSeconds = 3600; |
| 56 const char kNativeTag[] = "OPNative"; |
| 56 | 57 |
| 57 void ToJavaOfflinePageList(JNIEnv* env, | 58 void ToJavaOfflinePageList(JNIEnv* env, |
| 58 jobject j_result_obj, | 59 jobject j_result_obj, |
| 59 const std::vector<OfflinePageItem>& offline_pages) { | 60 const std::vector<OfflinePageItem>& offline_pages) { |
| 60 for (const OfflinePageItem& offline_page : offline_pages) { | 61 for (const OfflinePageItem& offline_page : offline_pages) { |
| 61 Java_OfflinePageEvaluationBridge_createOfflinePageAndAddToList( | 62 Java_OfflinePageEvaluationBridge_createOfflinePageAndAddToList( |
| 62 env, j_result_obj, | 63 env, j_result_obj, |
| 63 ConvertUTF8ToJavaString(env, offline_page.url.spec()), | 64 ConvertUTF8ToJavaString(env, offline_page.url.spec()), |
| 64 offline_page.offline_id, | 65 offline_page.offline_id, |
| 65 ConvertUTF8ToJavaString(env, offline_page.client_id.name_space), | 66 ConvertUTF8ToJavaString(env, offline_page.client_id.name_space), |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 218 RequestCoordinator* request_coordinator) | 219 RequestCoordinator* request_coordinator) |
| 219 : browser_context_(browser_context), | 220 : browser_context_(browser_context), |
| 220 offline_page_model_(offline_page_model), | 221 offline_page_model_(offline_page_model), |
| 221 request_coordinator_(request_coordinator) { | 222 request_coordinator_(request_coordinator) { |
| 222 java_ref_.Reset(Java_OfflinePageEvaluationBridge_create( | 223 java_ref_.Reset(Java_OfflinePageEvaluationBridge_create( |
| 223 env, reinterpret_cast<jlong>(this))); | 224 env, reinterpret_cast<jlong>(this))); |
| 224 | 225 |
| 225 NotifyIfDoneLoading(); | 226 NotifyIfDoneLoading(); |
| 226 offline_page_model_->AddObserver(this); | 227 offline_page_model_->AddObserver(this); |
| 227 request_coordinator_->AddObserver(this); | 228 request_coordinator_->AddObserver(this); |
| 229 offline_page_model->GetLogger()->SetClient(this); |
| 230 request_coordinator->GetLogger()->SetClient(this); |
| 228 } | 231 } |
| 229 | 232 |
| 230 OfflinePageEvaluationBridge::~OfflinePageEvaluationBridge() { | 233 OfflinePageEvaluationBridge::~OfflinePageEvaluationBridge() { |
| 231 JNIEnv* env = base::android::AttachCurrentThread(); | 234 JNIEnv* env = base::android::AttachCurrentThread(); |
| 232 Java_OfflinePageEvaluationBridge_offlinePageEvaluationBridgeDestroyed( | 235 Java_OfflinePageEvaluationBridge_offlinePageEvaluationBridgeDestroyed( |
| 233 env, java_ref_); | 236 env, java_ref_); |
| 234 } | 237 } |
| 235 | 238 |
| 236 // Implement OfflinePageModel::Observer | 239 // Implement OfflinePageModel::Observer |
| 237 void OfflinePageEvaluationBridge::OfflinePageModelLoaded( | 240 void OfflinePageEvaluationBridge::OfflinePageModelLoaded( |
| (...skipping 24 matching lines...) Expand all Loading... |
| 262 env, java_ref_, ToJavaSavePageRequest(env, request), | 265 env, java_ref_, ToJavaSavePageRequest(env, request), |
| 263 static_cast<int>(status)); | 266 static_cast<int>(status)); |
| 264 } | 267 } |
| 265 | 268 |
| 266 void OfflinePageEvaluationBridge::OnChanged(const SavePageRequest& request) { | 269 void OfflinePageEvaluationBridge::OnChanged(const SavePageRequest& request) { |
| 267 JNIEnv* env = base::android::AttachCurrentThread(); | 270 JNIEnv* env = base::android::AttachCurrentThread(); |
| 268 Java_OfflinePageEvaluationBridge_savePageRequestChanged( | 271 Java_OfflinePageEvaluationBridge_savePageRequestChanged( |
| 269 env, java_ref_, ToJavaSavePageRequest(env, request)); | 272 env, java_ref_, ToJavaSavePageRequest(env, request)); |
| 270 } | 273 } |
| 271 | 274 |
| 275 void OfflinePageEvaluationBridge::CustomLog(const std::string& message) { |
| 276 JNIEnv* env = base::android::AttachCurrentThread(); |
| 277 Java_OfflinePageEvaluationBridge_log(env, java_ref_, |
| 278 ConvertUTF8ToJavaString(env, kNativeTag), |
| 279 ConvertUTF8ToJavaString(env, message)); |
| 280 } |
| 281 |
| 272 void OfflinePageEvaluationBridge::GetAllPages( | 282 void OfflinePageEvaluationBridge::GetAllPages( |
| 273 JNIEnv* env, | 283 JNIEnv* env, |
| 274 const JavaParamRef<jobject>& obj, | 284 const JavaParamRef<jobject>& obj, |
| 275 const JavaParamRef<jobject>& j_result_obj, | 285 const JavaParamRef<jobject>& j_result_obj, |
| 276 const JavaParamRef<jobject>& j_callback_obj) { | 286 const JavaParamRef<jobject>& j_callback_obj) { |
| 277 DCHECK(j_result_obj); | 287 DCHECK(j_result_obj); |
| 278 DCHECK(j_callback_obj); | 288 DCHECK(j_callback_obj); |
| 279 | 289 |
| 280 ScopedJavaGlobalRef<jobject> j_result_ref(j_result_obj); | 290 ScopedJavaGlobalRef<jobject> j_result_ref(j_result_obj); |
| 281 ScopedJavaGlobalRef<jobject> j_callback_ref(j_callback_obj); | 291 ScopedJavaGlobalRef<jobject> j_callback_ref(j_callback_obj); |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 339 | 349 |
| 340 void OfflinePageEvaluationBridge::NotifyIfDoneLoading() const { | 350 void OfflinePageEvaluationBridge::NotifyIfDoneLoading() const { |
| 341 if (!offline_page_model_->is_loaded()) | 351 if (!offline_page_model_->is_loaded()) |
| 342 return; | 352 return; |
| 343 JNIEnv* env = base::android::AttachCurrentThread(); | 353 JNIEnv* env = base::android::AttachCurrentThread(); |
| 344 Java_OfflinePageEvaluationBridge_offlinePageModelLoaded(env, java_ref_); | 354 Java_OfflinePageEvaluationBridge_offlinePageModelLoaded(env, java_ref_); |
| 345 } | 355 } |
| 346 | 356 |
| 347 } // namespace android | 357 } // namespace android |
| 348 } // namespace offline_pages | 358 } // namespace offline_pages |
| OLD | NEW |