Chromium Code Reviews| Index: chrome/browser/android/webapk/webapk_icon_hasher.h |
| diff --git a/chrome/browser/android/webapk/webapk_icon_hasher.h b/chrome/browser/android/webapk/webapk_icon_hasher.h |
| index 8fb7e2ed0db288840b85f1554dde5a41bd2dfa6a..8693cab5a7615cbfc24b03abbef6c3cd3234005a 100644 |
| --- a/chrome/browser/android/webapk/webapk_icon_hasher.h |
| +++ b/chrome/browser/android/webapk/webapk_icon_hasher.h |
| @@ -10,44 +10,57 @@ |
| #include "base/callback.h" |
| #include "base/macros.h" |
| -#include "base/time/time.h" |
| +#include "base/timer/timer.h" |
| #include "net/url_request/url_fetcher_delegate.h" |
| +#include "url/gurl.h" |
| namespace net { |
| class URLFetcher; |
| class URLRequestContextGetter; |
| } |
| -class GURL; |
| - |
| // Downloads an icon and takes a Murmur2 hash of the downloaded image. |
| class WebApkIconHasher : public net::URLFetcherDelegate { |
| public: |
| using Murmur2HashCallback = |
| base::Callback<void(const std::string& /* icon_murmur2_hash */)>; |
| - WebApkIconHasher(); |
| - ~WebApkIconHasher() override; |
| - |
| - // Downloads |icon_url|. Calls |callback| with the Murmur2 hash of the |
| - // downloaded image. The hash is taken over the raw image bytes (no image |
| - // encoding/decoding beforehand). |callback| is called with an empty string if |
| - // the image cannot not be downloaded (e.g. 404 HTTP error code). |
| - void DownloadAndComputeMurmur2Hash( |
| + WebApkIconHasher( |
| net::URLRequestContextGetter* request_context_getter, |
| const GURL& icon_url, |
| const Murmur2HashCallback& callback); |
| + ~WebApkIconHasher() override; |
| + |
| + // Downloads |icon_url_|. Calls |callback_| with the Murmur2 hash of the |
| + // downloaded image. The hash is taken over the raw image bytes (no image |
| + // encoding/decoding beforehand). |callback_| is called with an empty string |
| + // if the image cannot not be downloaded in time (e.g. 404 HTTP error code). |
| + void DownloadAndComputeMurmur2Hash(); |
| private: |
| // net::URLFetcherDelegate: |
| void OnURLFetchComplete(const net::URLFetcher* source) override; |
| - // Fetches the image. |
| - std::unique_ptr<net::URLFetcher> url_fetcher_; |
| + // Called if downloading the icon takes too long. |
| + void OnDownloadTimedOut(); |
| + |
| + // For retrieving URLRequestContext. |
|
dominickn
2017/03/27 23:27:34
Nit: add "Owned by the caller of this class".
F
2017/03/29 20:00:49
Done.
|
| + net::URLRequestContextGetter* url_request_context_getter_; |
| + |
| + // The icon URL. |
| + GURL icon_url_; |
| // Called with the image hash. |
| Murmur2HashCallback callback_; |
| + std::unique_ptr<net::URLFetcher> url_fetcher_; |
| + |
| + // Fails WebApkIconHasher if the download takes too long. |
| + base::OneShotTimer download_timeout_timer_; |
| + |
| + // Used to get |weak_ptr_|. |
| + base::WeakPtrFactory<WebApkIconHasher> weak_ptr_factory_; |
|
dominickn
2017/03/27 23:27:34
Remove the unneeded WeakPtrFactory
F
2017/03/29 20:00:49
Done.
|
| + |
| DISALLOW_COPY_AND_ASSIGN(WebApkIconHasher); |
| }; |