Chromium Code Reviews| Index: chrome/browser/android/logo_bridge.cc |
| diff --git a/chrome/browser/android/logo_bridge.cc b/chrome/browser/android/logo_bridge.cc |
| index 8b24611abf5673c2f5d5822656c2494971bc0b04..fd70d1608d98b9edcbf1294b4be7876081af44da 100644 |
| --- a/chrome/browser/android/logo_bridge.cc |
| +++ b/chrome/browser/android/logo_bridge.cc |
| @@ -220,16 +220,23 @@ void LogoBridge::Destroy(JNIEnv* env, const JavaParamRef<jobject>& obj) { |
| delete this; |
| } |
| -void LogoBridge::GetCurrentLogo(JNIEnv* env, |
| - const JavaParamRef<jobject>& obj, |
| - const JavaParamRef<jobject>& j_logo_observer) { |
| +void LogoBridge::GetCurrentLogo( |
| + JNIEnv* env, |
| + const JavaParamRef<jobject>& obj, |
| + const JavaParamRef<jobject>& j_logo_observer, |
| + const JavaParamRef<jobject>& j_refresh_skipped_callback) { |
| if (doodle_service_) { |
| j_logo_observer_.Reset(j_logo_observer); |
| // Immediately hand out any current cached config. |
| DoodleConfigReceived(doodle_service_->config(), /*from_cache=*/true); |
|
Marc Treib
2017/04/26 10:17:16
Ah, here's the problem I'm talking about above, an
fhorschig
2017/04/27 10:31:44
OnLogoAvailable is now exactly called when
a) we h
|
| // Also request a refresh, in case something changed. |
| - doodle_service_->Refresh(); |
| + if (!doodle_service_->Refresh()) { |
| + // If the request was skipped, tell the observer not to wait for |
| + // notification. This ensures that metrics recording accounts for that. |
| + Java_LogoRefreshCallback_onRefreshSkipped(env, |
| + j_refresh_skipped_callback); |
| + } |
| } else { |
| // |observer| is deleted in LogoObserverAndroid::OnObserverRemoved(). |
| LogoObserverAndroid* observer = new LogoObserverAndroid( |