Verify the SHA256 hash of component update payloads.
BUG=581937
Review URL: https://codereview.chromium.org/1643263002
Cr-Commit-Position: refs/heads/master@{#373151}
diff --git a/components/update_client/update_client_unittest.cc b/components/update_client/update_client_unittest.cc
index 371ade6..8a245ad 100644
--- a/components/update_client/update_client_unittest.cc
+++ b/components/update_client/update_client_unittest.cc
@@ -237,13 +237,13 @@
static scoped_ptr<CrxDownloader> Create(
bool is_background_download,
net::URLRequestContextGetter* context_getter,
- const scoped_refptr<base::SequencedTaskRunner>&
- url_fetcher_task_runner) {
+ const scoped_refptr<base::SequencedTaskRunner>& task_runner) {
return scoped_ptr<CrxDownloader>(new FakeCrxDownloader());
}
private:
- FakeCrxDownloader() : CrxDownloader(scoped_ptr<CrxDownloader>()) {}
+ FakeCrxDownloader()
+ : CrxDownloader(base::ThreadTaskRunnerHandle::Get(), nullptr) {}
~FakeCrxDownloader() override {}
void DoStartDownload(const GURL& url) override { EXPECT_TRUE(false); }
@@ -343,7 +343,9 @@
</urls>
<manifest version='1.0' prodversionmin='11.0.1.0'>
<packages>
- <package name='jebgalgnebhfojomionfpkfelancnnkf.crx'/>
+ <package name='jebgalgnebhfojomionfpkfelancnnkf.crx'
+ hash_sha256='6fc4b93fd11134de1300c2c0bb88c12b644a4ec0fd
+ 7c9b12cb7cc067667bde87'/>
</packages>
</manifest>
</updatecheck>
@@ -352,6 +354,8 @@
*/
UpdateResponse::Result::Manifest::Package package;
package.name = "jebgalgnebhfojomionfpkfelancnnkf.crx";
+ package.hash_sha256 =
+ "6fc4b93fd11134de1300c2c0bb88c12b644a4ec0fd7c9b12cb7cc067667bde87";
UpdateResponse::Result result;
result.extension_id = "jebgalgnebhfojomionfpkfelancnnkf";
@@ -374,13 +378,13 @@
static scoped_ptr<CrxDownloader> Create(
bool is_background_download,
net::URLRequestContextGetter* context_getter,
- const scoped_refptr<base::SequencedTaskRunner>&
- url_fetcher_task_runner) {
+ const scoped_refptr<base::SequencedTaskRunner>& task_runner) {
return scoped_ptr<CrxDownloader>(new FakeCrxDownloader());
}
private:
- FakeCrxDownloader() : CrxDownloader(scoped_ptr<CrxDownloader>()) {}
+ FakeCrxDownloader()
+ : CrxDownloader(base::ThreadTaskRunnerHandle::Get(), nullptr) {}
~FakeCrxDownloader() override {}
void DoStartDownload(const GURL& url) override {
@@ -524,7 +528,9 @@
</urls>
<manifest version='1.0' prodversionmin='11.0.1.0'>
<packages>
- <package name='jebgalgnebhfojomionfpkfelancnnkf.crx'/>
+ <package name='jebgalgnebhfojomionfpkfelancnnkf.crx'
+ hash_sha256='6fc4b93fd11134de1300c2c0bb88c12b644a4ec0fd
+ 7c9b12cb7cc067667bde87'/>
</packages>
</manifest>
</updatecheck>
@@ -536,7 +542,9 @@
</urls>
<manifest version='1.0' prodversionmin='11.0.1.0'>
<packages>
- <package name='ihfokbkgjpifnbbojhneepfflplebdkc_1.crx'/>
+ <package name='ihfokbkgjpifnbbojhneepfflplebdkc_1.crx'
+ hash_sha256='813c59747e139a608b3b5fc49633affc6db574373f
+ 309f156ea6d27229c0b3f9'/>
</packages>
</manifest>
</updatecheck>
@@ -545,6 +553,8 @@
*/
UpdateResponse::Result::Manifest::Package package1;
package1.name = "jebgalgnebhfojomionfpkfelancnnkf.crx";
+ package1.hash_sha256 =
+ "6fc4b93fd11134de1300c2c0bb88c12b644a4ec0fd7c9b12cb7cc067667bde87";
UpdateResponse::Result result1;
result1.extension_id = "jebgalgnebhfojomionfpkfelancnnkf";
@@ -555,6 +565,8 @@
UpdateResponse::Result::Manifest::Package package2;
package2.name = "ihfokbkgjpifnbbojhneepfflplebdkc_1.crx";
+ package2.hash_sha256 =
+ "813c59747e139a608b3b5fc49633affc6db574373f309f156ea6d27229c0b3f9";
UpdateResponse::Result result2;
result2.extension_id = "ihfokbkgjpifnbbojhneepfflplebdkc";
@@ -578,13 +590,13 @@
static scoped_ptr<CrxDownloader> Create(
bool is_background_download,
net::URLRequestContextGetter* context_getter,
- const scoped_refptr<base::SequencedTaskRunner>&
- url_fetcher_task_runner) {
+ const scoped_refptr<base::SequencedTaskRunner>& task_runner) {
return scoped_ptr<CrxDownloader>(new FakeCrxDownloader());
}
private:
- FakeCrxDownloader() : CrxDownloader(scoped_ptr<CrxDownloader>()) {}
+ FakeCrxDownloader()
+ : CrxDownloader(base::ThreadTaskRunnerHandle::Get(), nullptr) {}
~FakeCrxDownloader() override {}
void DoStartDownload(const GURL& url) override {
@@ -763,7 +775,9 @@
</urls>
<manifest version='1.0' prodversionmin='11.0.1.0'>
<packages>
- <package name='jebgalgnebhfojomionfpkfelancnnkf.crx'/>
+ <package name='jebgalgnebhfojomionfpkfelancnnkf.crx'
+ hash_sha256='6fc4b93fd11134de1300c2c0bb88c12b644a4ec0fd
+ 7c9b12cb7cc067667bde87'/>
</packages>
</manifest>
</updatecheck>
@@ -775,7 +789,9 @@
</urls>
<manifest version='1.0' prodversionmin='11.0.1.0'>
<packages>
- <package name='ihfokbkgjpifnbbojhneepfflplebdkc_1.crx'/>
+ <package name='ihfokbkgjpifnbbojhneepfflplebdkc_1.crx'
+ hash_sha256='813c59747e139a608b3b5fc49633affc6db574373f
+ 309f156ea6d27229c0b3f9'/>
</packages>
</manifest>
</updatecheck>
@@ -784,6 +800,8 @@
*/
UpdateResponse::Result::Manifest::Package package1;
package1.name = "jebgalgnebhfojomionfpkfelancnnkf.crx";
+ package1.hash_sha256 =
+ "6fc4b93fd11134de1300c2c0bb88c12b644a4ec0fd7c9b12cb7cc067667bde87";
UpdateResponse::Result result1;
result1.extension_id = "jebgalgnebhfojomionfpkfelancnnkf";
@@ -794,6 +812,8 @@
UpdateResponse::Result::Manifest::Package package2;
package2.name = "ihfokbkgjpifnbbojhneepfflplebdkc_1.crx";
+ package2.hash_sha256 =
+ "813c59747e139a608b3b5fc49633affc6db574373f309f156ea6d27229c0b3f9";
UpdateResponse::Result result2;
result2.extension_id = "ihfokbkgjpifnbbojhneepfflplebdkc";
@@ -817,13 +837,13 @@
static scoped_ptr<CrxDownloader> Create(
bool is_background_download,
net::URLRequestContextGetter* context_getter,
- const scoped_refptr<base::SequencedTaskRunner>&
- url_fetcher_task_runner) {
+ const scoped_refptr<base::SequencedTaskRunner>& task_runner) {
return scoped_ptr<CrxDownloader>(new FakeCrxDownloader());
}
private:
- FakeCrxDownloader() : CrxDownloader(scoped_ptr<CrxDownloader>()) {}
+ FakeCrxDownloader()
+ : CrxDownloader(base::ThreadTaskRunnerHandle::Get(), nullptr) {}
~FakeCrxDownloader() override {}
void DoStartDownload(const GURL& url) override {
@@ -1010,7 +1030,9 @@
</urls>
<manifest version='1.0' prodversionmin='11.0.1.0'>
<packages>
- <package name='ihfokbkgjpifnbbojhneepfflplebdkc_1.crx'/>
+ <package name='ihfokbkgjpifnbbojhneepfflplebdkc_1.crx'
+ hash_sha256='813c59747e139a608b3b5fc49633affc6db57437
+ 3f309f156ea6d27229c0b3f9'/>
</packages>
</manifest>
</updatecheck>
@@ -1019,6 +1041,8 @@
*/
UpdateResponse::Result::Manifest::Package package;
package.name = "ihfokbkgjpifnbbojhneepfflplebdkc_1.crx";
+ package.hash_sha256 =
+ "813c59747e139a608b3b5fc49633affc6db574373f309f156ea6d27229c0b3f9";
package.fingerprint = "1";
UpdateResponse::Result result;
result.extension_id = "ihfokbkgjpifnbbojhneepfflplebdkc";
@@ -1042,7 +1066,12 @@
<packages>
<package name='ihfokbkgjpifnbbojhneepfflplebdkc_2.crx'
namediff='ihfokbkgjpifnbbojhneepfflplebdkc_1to2.crx'
- fp='22'/>
+ hash_sha256='1af337fbd19c72db0f870753bcd7711c3ae9dcaa
+ 0ecde26c262bad942b112990'
+ fp='22'
+ hashdiff_sha256='73c6e2d4f783fc4ca5481e89e0b8bfce7aec
+ 8ead3686290c94792658ec06f2f2'
+ />
</packages>
</manifest>
</updatecheck>
@@ -1052,6 +1081,10 @@
UpdateResponse::Result::Manifest::Package package;
package.name = "ihfokbkgjpifnbbojhneepfflplebdkc_2.crx";
package.namediff = "ihfokbkgjpifnbbojhneepfflplebdkc_1to2.crx";
+ package.hash_sha256 =
+ "1af337fbd19c72db0f870753bcd7711c3ae9dcaa0ecde26c262bad942b112990";
+ package.hashdiff_sha256 =
+ "73c6e2d4f783fc4ca5481e89e0b8bfce7aec8ead3686290c94792658ec06f2f2";
package.fingerprint = "22";
UpdateResponse::Result result;
result.extension_id = "ihfokbkgjpifnbbojhneepfflplebdkc";
@@ -1076,13 +1109,13 @@
static scoped_ptr<CrxDownloader> Create(
bool is_background_download,
net::URLRequestContextGetter* context_getter,
- const scoped_refptr<base::SequencedTaskRunner>&
- url_fetcher_task_runner) {
+ const scoped_refptr<base::SequencedTaskRunner>& task_runner) {
return scoped_ptr<CrxDownloader>(new FakeCrxDownloader());
}
private:
- FakeCrxDownloader() : CrxDownloader(scoped_ptr<CrxDownloader>()) {}
+ FakeCrxDownloader()
+ : CrxDownloader(base::ThreadTaskRunnerHandle::Get(), nullptr) {}
~FakeCrxDownloader() override {}
void DoStartDownload(const GURL& url) override {
@@ -1283,7 +1316,9 @@
</urls>
<manifest version='1.0' prodversionmin='11.0.1.0'>
<packages>
- <package name='jebgalgnebhfojomionfpkfelancnnkf.crx'/>
+ <package name='jebgalgnebhfojomionfpkfelancnnkf.crx'
+ hash_sha256='6fc4b93fd11134de1300c2c0bb88c12b644a4ec0fd
+ 7c9b12cb7cc067667bde87'/>
</packages>
</manifest>
</updatecheck>
@@ -1292,7 +1327,8 @@
*/
UpdateResponse::Result::Manifest::Package package;
package.name = "jebgalgnebhfojomionfpkfelancnnkf.crx";
-
+ package.hash_sha256 =
+ "6fc4b93fd11134de1300c2c0bb88c12b644a4ec0fd7c9b12cb7cc067667bde87";
UpdateResponse::Result result;
result.extension_id = "jebgalgnebhfojomionfpkfelancnnkf";
result.crx_urls.push_back(GURL("http://localhost/download/"));
@@ -1314,13 +1350,13 @@
static scoped_ptr<CrxDownloader> Create(
bool is_background_download,
net::URLRequestContextGetter* context_getter,
- const scoped_refptr<base::SequencedTaskRunner>&
- url_fetcher_task_runner) {
+ const scoped_refptr<base::SequencedTaskRunner>& task_runner) {
return scoped_ptr<CrxDownloader>(new FakeCrxDownloader());
}
private:
- FakeCrxDownloader() : CrxDownloader(scoped_ptr<CrxDownloader>()) {}
+ FakeCrxDownloader()
+ : CrxDownloader(base::ThreadTaskRunnerHandle::Get(), nullptr) {}
~FakeCrxDownloader() override {}
void DoStartDownload(const GURL& url) override {
@@ -1468,7 +1504,9 @@
</urls>
<manifest version='1.0' prodversionmin='11.0.1.0'>
<packages>
- <package name='ihfokbkgjpifnbbojhneepfflplebdkc_1.crx'/>
+ <package name='ihfokbkgjpifnbbojhneepfflplebdkc_1.crx'
+ hash_sha256='813c59747e139a608b3b5fc49633affc6db57437
+ 3f309f156ea6d27229c0b3f9'/>
</packages>
</manifest>
</updatecheck>
@@ -1477,6 +1515,8 @@
*/
UpdateResponse::Result::Manifest::Package package;
package.name = "ihfokbkgjpifnbbojhneepfflplebdkc_1.crx";
+ package.hash_sha256 =
+ "813c59747e139a608b3b5fc49633affc6db574373f309f156ea6d27229c0b3f9";
package.fingerprint = "1";
UpdateResponse::Result result;
result.extension_id = "ihfokbkgjpifnbbojhneepfflplebdkc";
@@ -1500,7 +1540,12 @@
<packages>
<package name='ihfokbkgjpifnbbojhneepfflplebdkc_2.crx'
namediff='ihfokbkgjpifnbbojhneepfflplebdkc_1to2.crx'
- fp='22'/>
+ hash_sha256='1af337fbd19c72db0f870753bcd7711c3ae9dcaa
+ 0ecde26c262bad942b112990'
+ fp='22'
+ hashdiff_sha256='73c6e2d4f783fc4ca5481e89e0b8bfce7aec
+ 8ead3686290c94792658ec06f2f2'
+ />
</packages>
</manifest>
</updatecheck>
@@ -1510,6 +1555,10 @@
UpdateResponse::Result::Manifest::Package package;
package.name = "ihfokbkgjpifnbbojhneepfflplebdkc_2.crx";
package.namediff = "ihfokbkgjpifnbbojhneepfflplebdkc_1to2.crx";
+ package.hash_sha256 =
+ "1af337fbd19c72db0f870753bcd7711c3ae9dcaa0ecde26c262bad942b112990";
+ package.hashdiff_sha256 =
+ "73c6e2d4f783fc4ca5481e89e0b8bfce7aec8ead3686290c94792658ec06f2f2";
package.fingerprint = "22";
UpdateResponse::Result result;
result.extension_id = "ihfokbkgjpifnbbojhneepfflplebdkc";
@@ -1534,13 +1583,13 @@
static scoped_ptr<CrxDownloader> Create(
bool is_background_download,
net::URLRequestContextGetter* context_getter,
- const scoped_refptr<base::SequencedTaskRunner>&
- url_fetcher_task_runner) {
+ const scoped_refptr<base::SequencedTaskRunner>& task_runner) {
return scoped_ptr<CrxDownloader>(new FakeCrxDownloader());
}
private:
- FakeCrxDownloader() : CrxDownloader(scoped_ptr<CrxDownloader>()) {}
+ FakeCrxDownloader()
+ : CrxDownloader(base::ThreadTaskRunnerHandle::Get(), nullptr) {}
~FakeCrxDownloader() override {}
void DoStartDownload(const GURL& url) override {
@@ -1739,13 +1788,13 @@
static scoped_ptr<CrxDownloader> Create(
bool is_background_download,
net::URLRequestContextGetter* context_getter,
- const scoped_refptr<base::SequencedTaskRunner>&
- url_fetcher_task_runner) {
+ const scoped_refptr<base::SequencedTaskRunner>& task_runner) {
return scoped_ptr<CrxDownloader>(new FakeCrxDownloader());
}
private:
- FakeCrxDownloader() : CrxDownloader(scoped_ptr<CrxDownloader>()) {}
+ FakeCrxDownloader()
+ : CrxDownloader(base::ThreadTaskRunnerHandle::Get(), nullptr) {}
~FakeCrxDownloader() override {}
void DoStartDownload(const GURL& url) override { EXPECT_TRUE(false); }
@@ -1838,7 +1887,9 @@
</urls>
<manifest version='1.0' prodversionmin='11.0.1.0'>
<packages>
- <package name='jebgalgnebhfojomionfpkfelancnnkf.crx'/>
+ <package name='jebgalgnebhfojomionfpkfelancnnkf.crx'
+ hash_sha256='6fc4b93fd11134de1300c2c0bb88c12b644a4ec0fd
+ 7c9b12cb7cc067667bde87'/>
</packages>
</manifest>
</updatecheck>
@@ -1847,7 +1898,8 @@
*/
UpdateResponse::Result::Manifest::Package package;
package.name = "jebgalgnebhfojomionfpkfelancnnkf.crx";
-
+ package.hash_sha256 =
+ "6fc4b93fd11134de1300c2c0bb88c12b644a4ec0fd7c9b12cb7cc067667bde87";
UpdateResponse::Result result;
result.extension_id = "jebgalgnebhfojomionfpkfelancnnkf";
result.crx_urls.push_back(GURL("http://localhost/download/"));
@@ -1869,13 +1921,13 @@
static scoped_ptr<CrxDownloader> Create(
bool is_background_download,
net::URLRequestContextGetter* context_getter,
- const scoped_refptr<base::SequencedTaskRunner>&
- url_fetcher_task_runner) {
+ const scoped_refptr<base::SequencedTaskRunner>& task_runner) {
return scoped_ptr<CrxDownloader>(new FakeCrxDownloader());
}
private:
- FakeCrxDownloader() : CrxDownloader(scoped_ptr<CrxDownloader>()) {}
+ FakeCrxDownloader()
+ : CrxDownloader(base::ThreadTaskRunnerHandle::Get(), nullptr) {}
~FakeCrxDownloader() override {}
void DoStartDownload(const GURL& url) override {
@@ -2021,13 +2073,13 @@
static scoped_ptr<CrxDownloader> Create(
bool is_background_download,
net::URLRequestContextGetter* context_getter,
- const scoped_refptr<base::SequencedTaskRunner>&
- url_fetcher_task_runner) {
+ const scoped_refptr<base::SequencedTaskRunner>& task_runner) {
return scoped_ptr<CrxDownloader>(new FakeCrxDownloader());
}
private:
- FakeCrxDownloader() : CrxDownloader(scoped_ptr<CrxDownloader>()) {}
+ FakeCrxDownloader()
+ : CrxDownloader(base::ThreadTaskRunnerHandle::Get(), nullptr) {}
~FakeCrxDownloader() override {}
void DoStartDownload(const GURL& url) override { EXPECT_TRUE(false); }
@@ -2111,13 +2163,13 @@
static scoped_ptr<CrxDownloader> Create(
bool is_background_download,
net::URLRequestContextGetter* context_getter,
- const scoped_refptr<base::SequencedTaskRunner>&
- url_fetcher_task_runner) {
+ const scoped_refptr<base::SequencedTaskRunner>& task_runner) {
return scoped_ptr<CrxDownloader>(new FakeCrxDownloader());
}
private:
- FakeCrxDownloader() : CrxDownloader(scoped_ptr<CrxDownloader>()) {}
+ FakeCrxDownloader()
+ : CrxDownloader(base::ThreadTaskRunnerHandle::Get(), nullptr) {}
~FakeCrxDownloader() override {}
void DoStartDownload(const GURL& url) override { EXPECT_TRUE(false); }
@@ -2156,13 +2208,13 @@
static scoped_ptr<CrxDownloader> Create(
bool is_background_download,
net::URLRequestContextGetter* context_getter,
- const scoped_refptr<base::SequencedTaskRunner>&
- url_fetcher_task_runner) {
+ const scoped_refptr<base::SequencedTaskRunner>& task_runner) {
return nullptr;
}
private:
- FakeCrxDownloader() : CrxDownloader(scoped_ptr<CrxDownloader>()) {}
+ FakeCrxDownloader()
+ : CrxDownloader(base::ThreadTaskRunnerHandle::Get(), nullptr) {}
~FakeCrxDownloader() override {}
void DoStartDownload(const GURL& url) override {}