Index: chrome/browser/android/logo_bridge.h |
diff --git a/chrome/browser/android/logo_bridge.h b/chrome/browser/android/logo_bridge.h |
index 368a8c337694fd2bf27e758e3dcfb631d2b062ca..71d8784502fb758b006ff26f9d0326f7bdbdb52e 100644 |
--- a/chrome/browser/android/logo_bridge.h |
+++ b/chrome/browser/android/logo_bridge.h |
@@ -7,15 +7,32 @@ |
#include <jni.h> |
+#include <memory> |
+ |
#include "base/android/scoped_java_ref.h" |
#include "base/macros.h" |
#include "base/memory/weak_ptr.h" |
+#include "base/optional.h" |
+#include "base/scoped_observer.h" |
+#include "components/doodle/doodle_service.h" |
class LogoService; |
+namespace doodle { |
+class DoodleService; |
+} // namespace doodle |
+ |
+namespace gfx { |
+class Image; |
+} // namespace gfx |
+ |
+namespace image_fetcher { |
+class ImageFetcher; |
+} // namespace image_fetcher |
+ |
// The C++ counterpart to LogoBridge.java. Enables Java code to access the |
// default search provider's logo. |
-class LogoBridge { |
+class LogoBridge : public doodle::DoodleService::Observer { |
public: |
explicit LogoBridge(jobject j_profile); |
void Destroy(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj); |
@@ -39,10 +56,33 @@ class LogoBridge { |
private: |
class AnimatedLogoFetcher; |
- ~LogoBridge(); |
+ virtual ~LogoBridge(); |
+ // doodle::DoodleService::Observer implementation. |
+ void OnDoodleConfigUpdated( |
+ const base::Optional<doodle::DoodleConfig>& maybe_doodle_config) override; |
+ |
+ void DoodleConfigReceived( |
+ const base::Optional<doodle::DoodleConfig>& maybe_doodle_config, |
+ bool from_cache); |
+ |
+ void DoodleImageFetched(bool config_from_cache, |
+ const GURL& on_click_url, |
+ const std::string& alt_text, |
+ const GURL& animated_image_url, |
+ const std::string& image_fetch_id, |
+ const gfx::Image& image); |
+ |
+ // Only valid if UseNewDoodleApi is disabled. |
LogoService* logo_service_; |
+ // Only valid if UseNewDoodleApi is enabled. |
+ doodle::DoodleService* doodle_service_; |
+ std::unique_ptr<image_fetcher::ImageFetcher> image_fetcher_; |
+ base::android::ScopedJavaGlobalRef<jobject> j_logo_observer_; |
+ ScopedObserver<doodle::DoodleService, doodle::DoodleService::Observer> |
+ doodle_observer_; |
+ |
std::unique_ptr<AnimatedLogoFetcher> animated_logo_fetcher_; |
base::WeakPtrFactory<LogoBridge> weak_ptr_factory_; |