Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(204)

Unified Diff: chrome/browser/android/webapk/webapk_icon_hasher.h

Issue 2771793003: Move timeout timer into WebApkIconHasher (Closed)
Patch Set: Remove weakptr and use unretained Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/browser/android/webapk/webapk_icon_hasher.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
};
« no previous file with comments | « no previous file | chrome/browser/android/webapk/webapk_icon_hasher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698