| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/logo_bridge.h" | 5 #include "chrome/browser/android/logo_bridge.h" |
| 6 | 6 |
| 7 #include <jni.h> | 7 #include <jni.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include "base/android/jni_android.h" | 10 #include "base/android/jni_android.h" |
| (...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 222 | 222 |
| 223 void LogoBridge::GetCurrentLogo(JNIEnv* env, | 223 void LogoBridge::GetCurrentLogo(JNIEnv* env, |
| 224 const JavaParamRef<jobject>& obj, | 224 const JavaParamRef<jobject>& obj, |
| 225 const JavaParamRef<jobject>& j_logo_observer) { | 225 const JavaParamRef<jobject>& j_logo_observer) { |
| 226 if (doodle_service_) { | 226 if (doodle_service_) { |
| 227 j_logo_observer_.Reset(j_logo_observer); | 227 j_logo_observer_.Reset(j_logo_observer); |
| 228 | 228 |
| 229 // Immediately hand out any current cached config. | 229 // Immediately hand out any current cached config. |
| 230 DoodleConfigReceived(doodle_service_->config(), /*from_cache=*/true); | 230 DoodleConfigReceived(doodle_service_->config(), /*from_cache=*/true); |
| 231 // Also request a refresh, in case something changed. | 231 // Also request a refresh, in case something changed. |
| 232 doodle_service_->Refresh(); | 232 if (!doodle_service_->Refresh()) { |
| 233 // If the request was skipped, tell the observer not to wait for |
| 234 // notification. This ensures that metrics recording accounts for that. |
| 235 Java_LogoObserver_onLogoRefreshSkipped(env, j_logo_observer_); |
| 236 } |
| 233 } else { | 237 } else { |
| 234 // |observer| is deleted in LogoObserverAndroid::OnObserverRemoved(). | 238 // |observer| is deleted in LogoObserverAndroid::OnObserverRemoved(). |
| 235 LogoObserverAndroid* observer = new LogoObserverAndroid( | 239 LogoObserverAndroid* observer = new LogoObserverAndroid( |
| 236 weak_ptr_factory_.GetWeakPtr(), env, j_logo_observer); | 240 weak_ptr_factory_.GetWeakPtr(), env, j_logo_observer); |
| 237 logo_service_->GetLogo(observer); | 241 logo_service_->GetLogo(observer); |
| 238 } | 242 } |
| 239 } | 243 } |
| 240 | 244 |
| 241 void LogoBridge::GetAnimatedLogo(JNIEnv* env, | 245 void LogoBridge::GetAnimatedLogo(JNIEnv* env, |
| 242 const JavaParamRef<jobject>& obj, | 246 const JavaParamRef<jobject>& obj, |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 308 ScopedJavaLocalRef<jobject> j_logo = MakeJavaLogo( | 312 ScopedJavaLocalRef<jobject> j_logo = MakeJavaLogo( |
| 309 env, image.ToSkBitmap(), on_click_url, alt_text, animated_image_url); | 313 env, image.ToSkBitmap(), on_click_url, alt_text, animated_image_url); |
| 310 Java_LogoObserver_onLogoAvailable(env, j_logo_observer_, j_logo, | 314 Java_LogoObserver_onLogoAvailable(env, j_logo_observer_, j_logo, |
| 311 config_from_cache); | 315 config_from_cache); |
| 312 } | 316 } |
| 313 | 317 |
| 314 // static | 318 // static |
| 315 bool RegisterLogoBridge(JNIEnv* env) { | 319 bool RegisterLogoBridge(JNIEnv* env) { |
| 316 return RegisterNativesImpl(env); | 320 return RegisterNativesImpl(env); |
| 317 } | 321 } |
| OLD | NEW |