Index: chrome/browser/android/logo_bridge.h |
diff --git a/chrome/browser/android/logo_bridge.h b/chrome/browser/android/logo_bridge.h |
index 37d30ee225ca32e80a6ba8b8781500bd41644879..be5b4aa09eefec6002153f3b8613a93372a1b46c 100644 |
--- a/chrome/browser/android/logo_bridge.h |
+++ b/chrome/browser/android/logo_bridge.h |
@@ -7,23 +7,51 @@ |
#include <jni.h> |
+#include "base/android/scoped_java_ref.h" |
#include "base/macros.h" |
#include "base/memory/weak_ptr.h" |
+#include "net/url_request/url_fetcher_delegate.h" |
class LogoService; |
+namespace net { |
+class URLFetcher; |
+class URLRequestContextGetter; |
+} |
+ |
// The C++ counterpart to LogoBridge.java. Enables Java code to access the |
// default search provider's logo. |
-class LogoBridge { |
+class LogoBridge : public net::URLFetcherDelegate { |
public: |
explicit LogoBridge(jobject j_profile); |
void Destroy(JNIEnv* env, jobject obj); |
void GetCurrentLogo(JNIEnv* env, jobject obj, jobject j_logo_observer); |
+ void GetAnimatedLogo(JNIEnv* env, |
+ jobject obj, |
+ jobject j_callback, |
+ jstring j_url); |
+ |
+ // net::URLFetcherDelegate: |
+ void OnURLFetchComplete(const net::URLFetcher* source) override; |
+ |
private: |
- ~LogoBridge(); |
+ ~LogoBridge() override; |
+ |
+ // Clears and resets the URLFetcher for animated logo. |
+ void ClearFetcher(); |
LogoService* logo_service_; |
+ |
+ // The URLFetcher currently fetching the animated logo. NULL when not |
+ // fetching. |
+ scoped_ptr<net::URLFetcher> fetcher_; |
+ |
+ // The URLRequestContextGetter used to download the animated logo. |
+ scoped_refptr<net::URLRequestContextGetter> request_context_getter_; |
+ |
+ base::android::ScopedJavaGlobalRef<jobject> j_callback_; |
+ |
base::WeakPtrFactory<LogoBridge> weak_ptr_factory_; |
DISALLOW_COPY_AND_ASSIGN(LogoBridge); |