Chromium Code Reviews| 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 29 matching lines...) Expand all Loading... | |
| 40 using base::android::ConvertJavaStringToUTF8; | 40 using base::android::ConvertJavaStringToUTF8; |
| 41 using base::android::ConvertUTF8ToJavaString; | 41 using base::android::ConvertUTF8ToJavaString; |
| 42 using base::android::JavaParamRef; | 42 using base::android::JavaParamRef; |
| 43 using base::android::ScopedJavaGlobalRef; | 43 using base::android::ScopedJavaGlobalRef; |
| 44 using base::android::ScopedJavaLocalRef; | 44 using base::android::ScopedJavaLocalRef; |
| 45 | 45 |
| 46 namespace offline_pages { | 46 namespace offline_pages { |
| 47 namespace android { | 47 namespace android { |
| 48 | 48 |
| 49 namespace { | 49 namespace { |
| 50 const char kNativeTag[] = "OPNative"; | |
| 50 | 51 |
| 51 void ToJavaOfflinePageList(JNIEnv* env, | 52 void ToJavaOfflinePageList(JNIEnv* env, |
| 52 jobject j_result_obj, | 53 jobject j_result_obj, |
| 53 const std::vector<OfflinePageItem>& offline_pages) { | 54 const std::vector<OfflinePageItem>& offline_pages) { |
| 54 for (const OfflinePageItem& offline_page : offline_pages) { | 55 for (const OfflinePageItem& offline_page : offline_pages) { |
| 55 Java_OfflinePageEvaluationBridge_createOfflinePageAndAddToList( | 56 Java_OfflinePageEvaluationBridge_createOfflinePageAndAddToList( |
| 56 env, j_result_obj, | 57 env, j_result_obj, |
| 57 ConvertUTF8ToJavaString(env, offline_page.url.spec()), | 58 ConvertUTF8ToJavaString(env, offline_page.url.spec()), |
| 58 offline_page.offline_id, | 59 offline_page.offline_id, |
| 59 ConvertUTF8ToJavaString(env, offline_page.client_id.name_space), | 60 ConvertUTF8ToJavaString(env, offline_page.client_id.name_space), |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 207 RequestCoordinator* request_coordinator) | 208 RequestCoordinator* request_coordinator) |
| 208 : browser_context_(browser_context), | 209 : browser_context_(browser_context), |
| 209 offline_page_model_(offline_page_model), | 210 offline_page_model_(offline_page_model), |
| 210 request_coordinator_(request_coordinator) { | 211 request_coordinator_(request_coordinator) { |
| 211 java_ref_.Reset(Java_OfflinePageEvaluationBridge_create( | 212 java_ref_.Reset(Java_OfflinePageEvaluationBridge_create( |
| 212 env, reinterpret_cast<jlong>(this))); | 213 env, reinterpret_cast<jlong>(this))); |
| 213 | 214 |
| 214 NotifyIfDoneLoading(); | 215 NotifyIfDoneLoading(); |
| 215 offline_page_model_->AddObserver(this); | 216 offline_page_model_->AddObserver(this); |
| 216 request_coordinator_->AddObserver(this); | 217 request_coordinator_->AddObserver(this); |
| 218 offline_page_model->GetLogger()->SetClient(this); | |
|
fgorski
2016/11/30 17:30:47
be consistent with filed vs. parameter usage. (see
romax
2016/12/01 01:47:52
Done.
Not sure what you meant but my guess is that
| |
| 219 request_coordinator->GetLogger()->SetClient(this); | |
|
fgorski
2016/11/30 17:30:47
chili@:
I think what we are missing is the ability
romax
2016/12/01 01:47:52
I think a broader vision should be when OfflinePag
fgorski
2016/12/01 21:42:52
It's still doesn't solve the problem of having to
| |
| 217 } | 220 } |
| 218 | 221 |
| 219 OfflinePageEvaluationBridge::~OfflinePageEvaluationBridge() { | 222 OfflinePageEvaluationBridge::~OfflinePageEvaluationBridge() { |
| 220 JNIEnv* env = base::android::AttachCurrentThread(); | 223 JNIEnv* env = base::android::AttachCurrentThread(); |
| 221 Java_OfflinePageEvaluationBridge_offlinePageEvaluationBridgeDestroyed( | 224 Java_OfflinePageEvaluationBridge_offlinePageEvaluationBridgeDestroyed( |
| 222 env, java_ref_); | 225 env, java_ref_); |
| 223 } | 226 } |
| 224 | 227 |
| 225 // Implement OfflinePageModel::Observer | 228 // Implement OfflinePageModel::Observer |
| 226 void OfflinePageEvaluationBridge::OfflinePageModelLoaded( | 229 void OfflinePageEvaluationBridge::OfflinePageModelLoaded( |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 251 env, java_ref_, ToJavaSavePageRequest(env, request), | 254 env, java_ref_, ToJavaSavePageRequest(env, request), |
| 252 static_cast<int>(status)); | 255 static_cast<int>(status)); |
| 253 } | 256 } |
| 254 | 257 |
| 255 void OfflinePageEvaluationBridge::OnChanged(const SavePageRequest& request) { | 258 void OfflinePageEvaluationBridge::OnChanged(const SavePageRequest& request) { |
| 256 JNIEnv* env = base::android::AttachCurrentThread(); | 259 JNIEnv* env = base::android::AttachCurrentThread(); |
| 257 Java_OfflinePageEvaluationBridge_savePageRequestChanged( | 260 Java_OfflinePageEvaluationBridge_savePageRequestChanged( |
| 258 env, java_ref_, ToJavaSavePageRequest(env, request)); | 261 env, java_ref_, ToJavaSavePageRequest(env, request)); |
| 259 } | 262 } |
| 260 | 263 |
| 264 void OfflinePageEvaluationBridge::CustomLog(const std::string& message) { | |
| 265 JNIEnv* env = base::android::AttachCurrentThread(); | |
| 266 Java_OfflinePageEvaluationBridge_log(env, java_ref_, | |
| 267 ConvertUTF8ToJavaString(env, kNativeTag), | |
| 268 ConvertUTF8ToJavaString(env, message)); | |
| 269 } | |
| 270 | |
| 261 void OfflinePageEvaluationBridge::GetAllPages( | 271 void OfflinePageEvaluationBridge::GetAllPages( |
| 262 JNIEnv* env, | 272 JNIEnv* env, |
| 263 const JavaParamRef<jobject>& obj, | 273 const JavaParamRef<jobject>& obj, |
| 264 const JavaParamRef<jobject>& j_result_obj, | 274 const JavaParamRef<jobject>& j_result_obj, |
| 265 const JavaParamRef<jobject>& j_callback_obj) { | 275 const JavaParamRef<jobject>& j_callback_obj) { |
| 266 DCHECK(j_result_obj); | 276 DCHECK(j_result_obj); |
| 267 DCHECK(j_callback_obj); | 277 DCHECK(j_callback_obj); |
| 268 | 278 |
| 269 ScopedJavaGlobalRef<jobject> j_result_ref(j_result_obj); | 279 ScopedJavaGlobalRef<jobject> j_result_ref(j_result_obj); |
| 270 ScopedJavaGlobalRef<jobject> j_callback_ref(j_callback_obj); | 280 ScopedJavaGlobalRef<jobject> j_callback_ref(j_callback_obj); |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 328 | 338 |
| 329 void OfflinePageEvaluationBridge::NotifyIfDoneLoading() const { | 339 void OfflinePageEvaluationBridge::NotifyIfDoneLoading() const { |
| 330 if (!offline_page_model_->is_loaded()) | 340 if (!offline_page_model_->is_loaded()) |
| 331 return; | 341 return; |
| 332 JNIEnv* env = base::android::AttachCurrentThread(); | 342 JNIEnv* env = base::android::AttachCurrentThread(); |
| 333 Java_OfflinePageEvaluationBridge_offlinePageModelLoaded(env, java_ref_); | 343 Java_OfflinePageEvaluationBridge_offlinePageModelLoaded(env, java_ref_); |
| 334 } | 344 } |
| 335 | 345 |
| 336 } // namespace android | 346 } // namespace android |
| 337 } // namespace offline_pages | 347 } // namespace offline_pages |
| OLD | NEW |