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

Side by Side Diff: chrome/browser/android/webapk/webapk_icon_hasher.cc

Issue 2822883002: Fix test slowness introduced by https://codereview.chromium.org/2771793003 (Closed)
Patch Set: Created 3 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/android/webapk/webapk_icon_hasher.h" 5 #include "chrome/browser/android/webapk/webapk_icon_hasher.h"
6 6
7 #include "base/strings/string_number_conversions.h" 7 #include "base/strings/string_number_conversions.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "base/threading/thread_task_runner_handle.h" 9 #include "base/threading/thread_task_runner_handle.h"
10 #include "net/base/data_url.h" 10 #include "net/base/data_url.h"
(...skipping 21 matching lines...) Expand all
32 return base::Uint64ToString(hash); 32 return base::Uint64ToString(hash);
33 } 33 }
34 34
35 } // anonymous namespace 35 } // anonymous namespace
36 36
37 // static 37 // static
38 void WebApkIconHasher::DownloadAndComputeMurmur2Hash( 38 void WebApkIconHasher::DownloadAndComputeMurmur2Hash(
39 net::URLRequestContextGetter* request_context_getter, 39 net::URLRequestContextGetter* request_context_getter,
40 const GURL& icon_url, 40 const GURL& icon_url,
41 const Murmur2HashCallback& callback) { 41 const Murmur2HashCallback& callback) {
42 DownloadAndComputeMurmur2HashWithTimeout(request_context_getter, icon_url,
43 kDownloadTimeoutInMilliseconds,
44 callback);
45 }
46
47 // static
48 void WebApkIconHasher::DownloadAndComputeMurmur2HashWithTimeout(
dominickn 2017/04/19 00:04:07 Nit: I would call this DownloadAndComputeMurmur2Ha
pkotwicz 2017/04/19 20:34:52 I don't thinkat that DownloadAndComputeMurmur2Hash
49 net::URLRequestContextGetter* request_context_getter,
50 const GURL& icon_url,
51 int timeout_ms,
52 const Murmur2HashCallback& callback) {
42 if (!icon_url.is_valid()) { 53 if (!icon_url.is_valid()) {
43 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, 54 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
44 base::Bind(callback, "")); 55 base::Bind(callback, ""));
45 return; 56 return;
46 } 57 }
47 58
48 if (icon_url.SchemeIs(url::kDataScheme)) { 59 if (icon_url.SchemeIs(url::kDataScheme)) {
49 std::string mime_type, char_set, data; 60 std::string mime_type, char_set, data;
50 std::string hash; 61 std::string hash;
51 if (net::DataURL::Parse(icon_url, &mime_type, &char_set, &data) && 62 if (net::DataURL::Parse(icon_url, &mime_type, &char_set, &data) &&
52 !data.empty()) { 63 !data.empty()) {
53 hash = ComputeMurmur2Hash(data); 64 hash = ComputeMurmur2Hash(data);
54 } 65 }
55 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, 66 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
56 base::Bind(callback, hash)); 67 base::Bind(callback, hash));
57 return; 68 return;
58 } 69 }
59 70
60 // The icon hasher will delete itself when it is done. 71 // The icon hasher will delete itself when it is done.
61 new WebApkIconHasher(request_context_getter, icon_url, callback); 72 new WebApkIconHasher(request_context_getter, icon_url, timeout_ms, callback);
62 } 73 }
63 74
64 WebApkIconHasher::WebApkIconHasher( 75 WebApkIconHasher::WebApkIconHasher(
65 net::URLRequestContextGetter* url_request_context_getter, 76 net::URLRequestContextGetter* url_request_context_getter,
66 const GURL& icon_url, 77 const GURL& icon_url,
78 int timeout_ms,
67 const Murmur2HashCallback& callback) 79 const Murmur2HashCallback& callback)
68 : callback_(callback) { 80 : callback_(callback) {
69 download_timeout_timer_.Start( 81 download_timeout_timer_.Start(
70 FROM_HERE, 82 FROM_HERE, base::TimeDelta::FromMilliseconds(timeout_ms),
71 base::TimeDelta::FromMilliseconds(kDownloadTimeoutInMilliseconds),
72 base::Bind(&WebApkIconHasher::OnDownloadTimedOut, 83 base::Bind(&WebApkIconHasher::OnDownloadTimedOut,
73 base::Unretained(this))); 84 base::Unretained(this)));
74 85
75 url_fetcher_ = net::URLFetcher::Create(icon_url, net::URLFetcher::GET, this); 86 url_fetcher_ = net::URLFetcher::Create(icon_url, net::URLFetcher::GET, this);
76 url_fetcher_->SetRequestContext(url_request_context_getter); 87 url_fetcher_->SetRequestContext(url_request_context_getter);
77 url_fetcher_->Start(); 88 url_fetcher_->Start();
78 } 89 }
79 90
80 WebApkIconHasher::~WebApkIconHasher() {} 91 WebApkIconHasher::~WebApkIconHasher() {}
81 92
(...skipping 18 matching lines...) Expand all
100 void WebApkIconHasher::OnDownloadTimedOut() { 111 void WebApkIconHasher::OnDownloadTimedOut() {
101 url_fetcher_.reset(); 112 url_fetcher_.reset();
102 113
103 RunCallback(""); 114 RunCallback("");
104 } 115 }
105 116
106 void WebApkIconHasher::RunCallback(const std::string& icon_murmur2_hash) { 117 void WebApkIconHasher::RunCallback(const std::string& icon_murmur2_hash) {
107 callback_.Run(icon_murmur2_hash); 118 callback_.Run(icon_murmur2_hash);
108 delete this; 119 delete this;
109 } 120 }
OLDNEW
« no previous file with comments | « chrome/browser/android/webapk/webapk_icon_hasher.h ('k') | chrome/browser/android/webapk/webapk_icon_hasher_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698