| 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..4a337106990f5d977c70017b18143d053a1906c2 100644
|
| --- a/chrome/browser/android/webapk/webapk_icon_hasher.h
|
| +++ b/chrome/browser/android/webapk/webapk_icon_hasher.h
|
| @@ -10,44 +10,54 @@
|
|
|
| #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. Owned by the caller of this class.
|
| + 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_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(WebApkIconHasher);
|
| };
|
|
|
|
|