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..99aa0de774a6957804caecddf1b4f8a48b552833 100644 |
| --- a/chrome/browser/android/webapk/webapk_icon_hasher.h |
| +++ b/chrome/browser/android/webapk/webapk_icon_hasher.h |
| @@ -10,8 +10,9 @@ |
| #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; |
| @@ -26,28 +27,46 @@ class WebApkIconHasher : public net::URLFetcherDelegate { |
| 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 |
|
dominickn
2017/03/24 02:41:01
|icon_url_|, |callback_|
F
2017/03/27 20:37:09
Done.
|
| + // downloaded image. The hash is taken over the raw image bytes (no image |
| + // encoding/decoding beforehand). callback_ is called with an empty string if |
|
dominickn
2017/03/24 02:41:00
|callback_|
F
2017/03/27 20:37:08
Done.
|
| + // 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. |
| + net::URLRequestContextGetter* url_request_context_getter_; |
| + |
| + // The icon URL. |
| + GURL icon_url_; |
| // Called with the image hash. |
| Murmur2HashCallback callback_; |
| + // Fetches the image. |
|
dominickn
2017/03/24 02:41:01
This comment isn't needed
F
2017/03/27 20:37:09
Done.
|
| + std::unique_ptr<net::URLFetcher> url_fetcher_; |
| + |
| + // Whether the download has completed or timed out. |
| + bool is_download_complete_; |
| + |
| + // 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/24 02:41:01
Instead of a weak_ptr_factory_ and is_download_co
F
2017/03/27 20:37:09
Done.
|
| + |
| DISALLOW_COPY_AND_ASSIGN(WebApkIconHasher); |
| }; |