diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2019-11-11 14:57:06 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2019-11-11 14:58:01 +0000 |
commit | 4906c1cf1625dcb125a2d0937a7893c3adcf0fd0 (patch) | |
tree | 41318429a675a7789868ffae36270b72ae7ce70b /community/chromium | |
parent | 22de9094d1563a5a3e7a50bae8ee9280e3791cfb (diff) | |
download | aports-4906c1cf1625dcb125a2d0937a7893c3adcf0fd0.tar.bz2 aports-4906c1cf1625dcb125a2d0937a7893c3adcf0fd0.tar.xz |
community/chromium: upgrade to 78.0.3904.97
Diffstat (limited to 'community/chromium')
9 files changed, 196 insertions, 212 deletions
diff --git a/community/chromium/APKBUILD b/community/chromium/APKBUILD index 8c1bca7e45..6b846ef607 100644 --- a/community/chromium/APKBUILD +++ b/community/chromium/APKBUILD @@ -1,8 +1,8 @@ # Contributor: Carlo Landmeter <clandmeter@gmail.com> # Maintainer: Carlo Landmeter <clandmeter@gmail.com> pkgname=chromium -pkgver=77.0.3865.120 -pkgrel=1 +pkgver=78.0.3904.97 +pkgrel=0 pkgdesc="chromium web browser" url="http://www.chromium.org/" arch="x86_64 aarch64 armv7" @@ -99,6 +99,9 @@ source="https://commondatastorage.googleapis.com/chromium-browser-official/$pkgn resolver.patch swiftshader.patch secure_getenv.patch + llvm-remove-unsupported-compiler-warnings.patch + upstream-dns_util-make-DohUpgradeEntry-non-const.patch + upstream-fix-shutdown-crash-in-ProfileManager.patch chromium-use-alpine-target.patch media-base.patch @@ -110,9 +113,6 @@ source="https://commondatastorage.googleapis.com/chromium-browser-official/$pkgn gcc-arm.patch musl-arm-limits.patch aarch64-fixes.patch - one_euro_filter-build-fix.patch - chromium-77.0.3865.75-harfbuzz-subset.patch - chromium-77.0.3865.90-linked-hash-set.patch " builddir="$srcdir"/$pkgname-$pkgver @@ -338,7 +338,7 @@ chromedriver() { mv "$pkgdir"/usr/bin/chromedriver "$subpkgdir"/usr/bin } -sha512sums="4c72c9e9cd9a5d7f89e33c52d117018418ce0f5d23a57341b26ce47c8f90fa55f52a0c976b6959026dc273d5b37aa57306253a9b533172cd133a815edc7bccb4 chromium-77.0.3865.120.tar.xz +sha512sums="e29312fe5c15eb6888a2e4d7e197c710d53feeecdf4e534c59f3db26973fee13f48880b46a7c3b132bb9989eb617db9c6138b809c3cb762332a9db25ad6d33dc chromium-78.0.3904.97.tar.xz a3bb959c65944ae2fb765725cedcffd743a58bc0c2cd1f1999d15fe79801d00f3474b08b4ed7b48859ed921eb57093d0ad09d90f201d729ed9b8a419a591ed29 pstables-2.8.h b9a810416dd7a8ffc3a5ced85ad9acebda1665bd08a57eec7b189698cc5f74d2c3fd69044e20fcb83297a43214b2772a1312b2c6122ea0eb716abacf39524d60 chromium-launcher.sh f6d962b9e4c22dd42183df3db5d3202dab33eccecafb1bf63ca678147289581262db1e5e64cbe8f9c212beefb0a6717bb8d311e497f56b55fe95b8bab2db493f chromium.conf @@ -351,10 +351,13 @@ ef31809702ef020e02445ac36857c621cf852dea14c2fdf291ea0700b6fc6d94e3704726a051e95d 95ead57f7338649351948d100e32e5ec1eeadb02bffa136ff15c6c515eceb8013c444be092d777c1b62b945bfb83b97778ba4d3a0ccc2d7c2c9a0a8cd8ee0f01 musl-libc++.patch 5bb41c9a17545e2504cbfd760a1c138897ae9241a03ae0fe54632ddff679c273ec61e80946a4cd70ff79f237d1a442ca9e6ff4d2f5b0f6458db9239de2d1d3d7 musl-sandbox.patch 83b4cc042d501bd94ce953d1bc94361adf9d6f0d1fa71c04c5d3688c0befb81fdb6ccf31e6cab6a22d0057db309b473bc6af75535675c61d167035e36dd1d6c6 no-execinfo.patch -db7f676d3476820c29f234b1f8f17a74e82b72d67fc727c715307734fd238e3cb0f99d8b5320d45f820b62c01163283c4829caa37afd6a9ca7592a54d3c65819 no-mallinfo.patch -81c590942e73a62027290684c56030796e4bb953dd5007db787733ba84a505326a65001267b820ac3f44212c7e903c102809961f8e4ad42c57e21c44ad41cfe6 resolver.patch +396be05301adad9f9c9bb7a807ecb206deef901e4420206f41f74a660a8c0f300a1f210b1d379bed5519cf68bff8ce7c1a9e155651c478e11469c3d253e12155 no-mallinfo.patch +3e424b9bf8e819e7759a76fe6f849f93e6b83de5c8b47cce21984611a69906a50cb4a498b0e69ef71d3f81f556914e6e5a6803ebfd81b42eb62177c654b10215 resolver.patch 84732900f50799ee8d4c9a572a8703c1cd67c6a3b8f8dcf97f308319dcef6ac3d41ea5ddfb2ef4d695bdebdae691e30d5631a8d04e59b931935ba188b0308a61 swiftshader.patch 7f9b816ff9088f84929dc9853ab8cf0c705ef95fedb9e9c3e85bc50c8befb76e39ecf5e754fa3fc8b34b42397875ec41c0729f880a642262b675ebf79901810a secure_getenv.patch +8b7e10bca16951fde06da4155d507f2c047e4720b63570af1bbf2d2fd8d02d1d088df2e747fd9700088e6cdf0b23fd84fa86af1c68606506611205f5fbb432ba llvm-remove-unsupported-compiler-warnings.patch +bd2e937016a2ec3ded9b87ea0bab4683658a7ccad1e445478c9f4343d4a766c6c3b1188337ff556cac7b5f75b640103feba587fc9dbe8d57a402c62ca4d48f84 upstream-dns_util-make-DohUpgradeEntry-non-const.patch +2ecd3b441ff71ed6373fcd0cef60c105f3b99a4057defb99f3e8bc2fe45ada349ffe6a51e306b5c5d8fdd55dfc570bb0c045024c09c0f4a3375f5a346ff11ac5 upstream-fix-shutdown-crash-in-ProfileManager.patch 50e2c78bc2e7f343ed97d348bbe34350439ede6a15bf8ea1017eb13c391d4718b00a51db9c2eb40d8398d9733bf1925db42011f3bcbdd7d83329b1c7d534032b chromium-use-alpine-target.patch 589a7acf149d44db081da2dd24a7769f2b9572a8cc64d2aad78577a64768d3b6fb2bfa02292b5260acd2c4a28c3ae9b82847ff901ce8a21baeca0b46dcda0ca9 media-base.patch 05c1af43038f76014f5f8b605085310414242f2bfad0e3258ddb29a08e7f4307de31b2d551b0a291986cc7d5a01cf3a003ac864216877195bb4310fd33193f0f musl-crashpad.patch @@ -363,7 +366,4 @@ db7f676d3476820c29f234b1f8f17a74e82b72d67fc727c715307734fd238e3cb0f99d8b5320d45f bb0f3dc1ade429a398d487ae190a278948533398c4a1085aeb35ff57fefb90a1e598008ba839423ca0acd30ba4c992950f395dba3b9994d3c7187fe68b9a93d7 gcc-fno-delete-null-pointer-checks.patch 91296fcbdfc4b35899e2af949024c7041d85cc64644cf5fe73c8e46a0523b09d1fb8849f315bd212c1ac25caf57553e933cb4eeb8d1856960441d24b2dd20e27 gcc-arm.patch 3bcffb36f28a01d8bb91f1c1ee1e327caebb1e139d4e8772ad15460ee69cb5ea3307a235dc83184a9e09b687882d9617f3a3ce1a7b07cbd6e11b0a5d6a6ace81 musl-arm-limits.patch -f0a0fa663fd7a88346d69675a96dfd864364f6ba41d19a5adfbfb0f13fd784b194a60cd2c63edfcc21d6b049628eade690ff803f787dbdd29d84cd8312be4d4a aarch64-fixes.patch -739eaab1d9e4ab73e9ae79c8315122751ada5a45a716853667b69f0c6d268a580afeef969fff4f64dfdf6574309d0148d338c5850d3e6de2400771685b74c104 one_euro_filter-build-fix.patch -009261f10d12fad86eb0c1d6b543d2b0c2a9ccca28cb85ea3b4b08c4ecc968df0dc62e18c56ae0d36fce99271ba80e34ba39d2022023c265edf2b71e41d445c8 chromium-77.0.3865.75-harfbuzz-subset.patch -8dd33aa2ffaff63477e164c744bd40840304939fba97201bc1c221e64e58fd00032095dd83a70c19e9dca3190115b3954ab155b870eacf935b71eb8e4e4a8d35 chromium-77.0.3865.90-linked-hash-set.patch" +f0a0fa663fd7a88346d69675a96dfd864364f6ba41d19a5adfbfb0f13fd784b194a60cd2c63edfcc21d6b049628eade690ff803f787dbdd29d84cd8312be4d4a aarch64-fixes.patch" diff --git a/community/chromium/chromium-77.0.3865.75-harfbuzz-subset.patch b/community/chromium/chromium-77.0.3865.75-harfbuzz-subset.patch deleted file mode 100644 index fff75e76d2..0000000000 --- a/community/chromium/chromium-77.0.3865.75-harfbuzz-subset.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 27e25336b8316ff3ec4e464058682ed85801fd06 Mon Sep 17 00:00:00 2001 -From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> -Date: Mon, 29 Jul 2019 10:54:28 +0000 -Subject: [PATCH] Also link against libharfbuzz-subset when use_system_harfbuzz is true - -When building HarfBuzz as part of Chromium, there is a single source set -with all the files we need in the build. - -Upstream HarfBuzz, on the other hand, produces a few different libraries: -harfbuzz, harfbuzz-icu and harfbuzz-subset. When |use_system_harfbuzz| is -true, we were only looking for (and using) harfbuzz.pc with pkg-config even -though we also use symbols from libharfbuzz-subset.so. This resulted in -errors when linking: - - ld: obj/skia/skia/SkPDFSubsetFont.o: in function `SkPDFSubsetFont(sk_sp<SkData>, SkPDFGlyphUse const&, SkPDF::Metadata::Subsetter, char const*, int)': - SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x48a): undefined reference to `hb_subset_input_create_or_fail' - ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x4af): undefined reference to `hb_subset_input_glyph_set' - ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5d7): undefined reference to `hb_subset_input_set_retain_gids' - ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5e4): undefined reference to `hb_subset_input_set_drop_hints' - ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5f3): undefined reference to `hb_subset' - ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x66f): undefined reference to `hb_subset_input_destroy' - -as reported in -https://groups.google.com/a/chromium.org/d/msg/chromium-packagers/UyJsVJ5QqWo/jSv5z7-rEQAJ - -Change-Id: I997af075c7b7263cd7cc71a63db5b0f93bd1ab59 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1715288 -Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> -Commit-Queue: Dominik Röttsches <drott@chromium.org> -Reviewed-by: Dominik Röttsches <drott@chromium.org> -Cr-Commit-Position: refs/heads/master@{#681760} ---- - -diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn -index 37d8e33..72013eb1d 100644 ---- ./third_party/harfbuzz-ng/BUILD.gn -+++ ./third_party/harfbuzz-ng/BUILD.gn -@@ -16,7 +16,10 @@ - "//third_party:freetype_harfbuzz", - "//third_party/freetype:freetype_source", - ] -- packages = [ "harfbuzz" ] -+ packages = [ -+ "harfbuzz", -+ "harfbuzz-subset", -+ ] - } - } else { - config("harfbuzz_config") { diff --git a/community/chromium/chromium-77.0.3865.90-linked-hash-set.patch b/community/chromium/chromium-77.0.3865.90-linked-hash-set.patch deleted file mode 100644 index adb626f6fd..0000000000 --- a/community/chromium/chromium-77.0.3865.90-linked-hash-set.patch +++ /dev/null @@ -1,130 +0,0 @@ -From 74138b9febd37eac0fc26b8efb110014a83a52c6 Mon Sep 17 00:00:00 2001 -From: Jeremy Roman <jbroman@chromium.org> -Date: Wed, 07 Aug 2019 13:26:48 +0000 -Subject: [PATCH] WTF: Make LinkedHashSet understand values for which memset initialization would be bad. - -Includes a unit test which fails before, and uses this to fix FontCacheKeyTraits. - -Bug: 980025 -Change-Id: If41f97444c7fd37b9b95d6dadaf3da5689079e9e -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739948 -Reviewed-by: Kentaro Hara <haraken@chromium.org> -Reviewed-by: Yutaka Hirano <yhirano@chromium.org> -Commit-Queue: Jeremy Roman <jbroman@chromium.org> -Cr-Commit-Position: refs/heads/master@{#684731} ---- - -diff --git a/third_party/blink/renderer/platform/fonts/font_cache_key.h b/third_party/blink/renderer/platform/fonts/font_cache_key.h -index 0efc8fb..90063cb 100644 ---- ./third_party/blink/renderer/platform/fonts/font_cache_key.h -+++ ./third_party/blink/renderer/platform/fonts/font_cache_key.h -@@ -133,6 +133,10 @@ - - struct FontCacheKeyTraits : WTF::SimpleClassHashTraits<FontCacheKey> { - STATIC_ONLY(FontCacheKeyTraits); -+ -+ // std::string's empty state need not be zero in all implementations, -+ // and it is held within FontFaceCreationParams. -+ static const bool kEmptyValueIsZero = false; - }; - - } // namespace blink -diff --git a/third_party/blink/renderer/platform/wtf/linked_hash_set.h b/third_party/blink/renderer/platform/wtf/linked_hash_set.h -index b35b6e9..77e524c 100644 ---- ./third_party/blink/renderer/platform/wtf/linked_hash_set.h -+++ ./third_party/blink/renderer/platform/wtf/linked_hash_set.h -@@ -146,6 +146,11 @@ - LinkedHashSetNodeBase* next) - : LinkedHashSetNodeBase(prev, next), value_(value) {} - -+ LinkedHashSetNode(ValueArg&& value, -+ LinkedHashSetNodeBase* prev, -+ LinkedHashSetNodeBase* next) -+ : LinkedHashSetNodeBase(prev, next), value_(std::move(value)) {} -+ - LinkedHashSetNode(LinkedHashSetNode&& other) - : LinkedHashSetNodeBase(std::move(other)), - value_(std::move(other.value_)) {} -@@ -445,10 +450,13 @@ - - // The slot is empty when the next_ field is zero so it's safe to zero - // the backing. -- static const bool kEmptyValueIsZero = true; -+ static const bool kEmptyValueIsZero = ValueTraits::kEmptyValueIsZero; - - static const bool kHasIsEmptyValueFunction = true; - static bool IsEmptyValue(const Node& node) { return !node.next_; } -+ static Node EmptyValue() { -+ return Node(ValueTraits::EmptyValue(), nullptr, nullptr); -+ } - - static const int kDeletedValue = -1; - -diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc -index 4c3f899..cd1be00 100644 ---- ./third_party/blink/renderer/platform/wtf/list_hash_set_test.cc -+++ ./third_party/blink/renderer/platform/wtf/list_hash_set_test.cc -@@ -487,6 +487,7 @@ - }; - - struct Complicated { -+ Complicated() : Complicated(0) {} - Complicated(int value) : simple_(value) { objects_constructed_++; } - - Complicated(const Complicated& other) : simple_(other.simple_) { -@@ -495,9 +496,6 @@ - - Simple simple_; - static int objects_constructed_; -- -- private: -- Complicated() = delete; - }; - - int Complicated::objects_constructed_ = 0; -@@ -731,4 +729,45 @@ - - } // anonymous namespace - -+// A unit type which objects to its state being initialized wrong. -+struct InvalidZeroValue { -+ InvalidZeroValue() = default; -+ InvalidZeroValue(WTF::HashTableDeletedValueType) : deleted_(true) {} -+ ~InvalidZeroValue() { CHECK(ok_); } -+ bool IsHashTableDeletedValue() const { return deleted_; } -+ -+ bool ok_ = true; -+ bool deleted_ = false; -+}; -+ -+template <> -+struct HashTraits<InvalidZeroValue> : SimpleClassHashTraits<InvalidZeroValue> { -+ static const bool kEmptyValueIsZero = false; -+}; -+ -+template <> -+struct DefaultHash<InvalidZeroValue> { -+ struct Hash { -+ static unsigned GetHash(const InvalidZeroValue&) { return 0; } -+ static bool Equal(const InvalidZeroValue&, const InvalidZeroValue&) { -+ return true; -+ } -+ }; -+}; -+ -+template <typename Set> -+class ListOrLinkedHashSetInvalidZeroTest : public testing::Test {}; -+ -+using InvalidZeroValueSetTypes = -+ testing::Types<ListHashSet<InvalidZeroValue>, -+ ListHashSet<InvalidZeroValue, 1>, -+ LinkedHashSet<InvalidZeroValue>>; -+TYPED_TEST_SUITE(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValueSetTypes); -+ -+TYPED_TEST(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValue) { -+ using Set = TypeParam; -+ Set set; -+ set.insert(InvalidZeroValue()); -+} -+ - } // namespace WTF diff --git a/community/chromium/llvm-remove-unsupported-compiler-warnings.patch b/community/chromium/llvm-remove-unsupported-compiler-warnings.patch new file mode 100644 index 0000000000..4de8aea9f5 --- /dev/null +++ b/community/chromium/llvm-remove-unsupported-compiler-warnings.patch @@ -0,0 +1,40 @@ +--- build/config/compiler/BUILD.gn 2019-10-24 11:01:40.459910040 -0400 ++++ build/config/compiler/BUILD.gn 2019-10-24 11:04:19.690063743 -0400 +@@ -1492,37 +1492,6 @@ + # Currently goma can not handle case sensitiveness for windows well. + cflags += [ "-Wno-nonportable-include-path" ] + } +- +- if (current_toolchain == host_toolchain || !use_xcode_clang) { +- # Flags NaCl (Clang 3.7) and Xcode 9.2 (Clang clang-900.0.39.2) do not +- # recognize. +- cflags += [ +- # Ignore warnings about MSVC optimization pragmas. +- # TODO(thakis): Only for no_chromium_code? http://crbug.com/912662 +- "-Wno-ignored-pragma-optimize", +- +- # TODO(https://crbug.com/989932): Evaluate and possibly enable. +- "-Wno-implicit-int-float-conversion", +- +- # TODO(https://crbug.com/995200): Clean up and enable. +- "-Wno-xor-used-as-pow", +- +- # TODO(https://crbug.com/999871): Decide if we want to clean up the +- # codebase or just disable this. Doesn't seem super useful, but +- # also fires in only 4 files. +- "-Wno-c99-designator", +- +- # This is a side effect of -Wc99-designator; easier to clean up. +- "-Wno-reorder-init-list", +- +- # TODO(https://crbug.com/999886): Clean up, enable. +- "-Wno-final-dtor-non-final-class", +- ] +- cflags_c += [ +- # TODO(https://crbug.com/995993): Clean up and enable. +- "-Wno-implicit-fallthrough", +- ] +- } + } + } + } diff --git a/community/chromium/no-mallinfo.patch b/community/chromium/no-mallinfo.patch index 2c2112d056..0045bd4bd0 100644 --- a/community/chromium/no-mallinfo.patch +++ b/community/chromium/no-mallinfo.patch @@ -13,20 +13,23 @@ diff --git a/base/process/process_metrics_posix.cc b/base/process/process_metric index 0eb5c1f..8af7799 100644 --- base/process/process_metrics_posix.cc +++ base/process/process_metrics_posix.cc -@@ -94,14 +94,14 @@ size_t ProcessMetrics::GetMallocUsage() { +@@ -110,17 +110,16 @@ malloc_statistics_t stats = {0}; malloc_zone_statistics(nullptr, &stats); return stats.size_in_use; -#elif defined(OS_LINUX) || defined(OS_ANDROID) +#elif defined(__GLIBC__) || defined(OS_ANDROID) struct mallinfo minfo = mallinfo(); - #if defined(USE_TCMALLOC) + #if BUILDFLAG(USE_TCMALLOC) return minfo.uordblks; #else return minfo.hblkhd + minfo.arena; #endif -#elif defined(OS_FUCHSIA) -+#else ++#endif // TODO(fuchsia): Not currently exposed. https://crbug.com/735087. return 0; - #endif +-#endif + } + + } // namespace base diff --git a/community/chromium/one_euro_filter-build-fix.patch b/community/chromium/one_euro_filter-build-fix.patch deleted file mode 100644 index 827358ed57..0000000000 --- a/community/chromium/one_euro_filter-build-fix.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/third_party/one_euro_filter/src/one_euro_filter.h b/third_party/one_euro_filter/src/one_euro_filter.h -index 7f8d15b..a8cd0ab 100644 ---- ./third_party/one_euro_filter/src/one_euro_filter.h -+++ ./third_party/one_euro_filter/src/one_euro_filter.h -@@ -1,6 +1,8 @@ - #ifndef ONE_EURO_ONE_EURO_FILTER_H_ - #define ONE_EURO_ONE_EURO_FILTER_H_ - -+#include <memory> -+ - #include "low_pass_filter.h" - - namespace one_euro_filter { diff --git a/community/chromium/resolver.patch b/community/chromium/resolver.patch index da9028f6c7..bcf32995cf 100644 --- a/community/chromium/resolver.patch +++ b/community/chromium/resolver.patch @@ -16,13 +16,13 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc index 3c75dde..c748d94 100644 --- ./net/dns/host_resolver_manager.cc +++ ./net/dns/host_resolver_manager.cc -@@ -2266,8 +2266,7 @@ HostResolverManager::HostResolverManager(const Options& options, - NetworkChangeNotifier::AddIPAddressObserver(this); +@@ -2386,8 +2386,7 @@ HostResolverManager::HostResolverManager(const Options& options, NetworkChangeNotifier::AddConnectionTypeObserver(this); - NetworkChangeNotifier::AddDNSObserver(this); + if (system_dns_config_notifier_) + system_dns_config_notifier_->AddObserver(this); -#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD) && \ - !defined(OS_ANDROID) -+#if defined(__GLIBC__) ++#if defined(OS_POSIX) && defined(__GLIBC__) EnsureDnsReloaderInit(); #endif @@ -40,3 +40,5 @@ index 90d9958..71d9b4a 100644 DnsReloaderMaybeReload(); #endif int err = getaddrinfo(host.c_str(), nullptr, &hints, &ai); +--- ./net/dns/host_resolver_manager.cc.orig ++++ ./net/dns/host_resolver_manager.cc diff --git a/community/chromium/upstream-dns_util-make-DohUpgradeEntry-non-const.patch b/community/chromium/upstream-dns_util-make-DohUpgradeEntry-non-const.patch new file mode 100644 index 0000000000..4fa4bedc1f --- /dev/null +++ b/community/chromium/upstream-dns_util-make-DohUpgradeEntry-non-const.patch @@ -0,0 +1,86 @@ +From f4c3c329588b78af63aad8b401da767242b86709 Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> +Date: Mon, 16 Sep 2019 17:05:42 +0000 +Subject: [PATCH] dns_util: Make DohUpgradeEntry non-const when used with + std::vector<> + +This fixes the build with libstdc++ (with most other standard libraries +other than libc++, in fact) after commit f93a48e3 ("Allow upgrade to DoH +during automatic mode"): + +../../../../../../usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_vector.h:351:7: error: static_assert failed due to requirement 'is_same<typename remove_cv<const DohUpgradeEntry>::type, const DohUpgradeEntry>::value' "std::vector must have a non-const, non-volatile value_type" + static_assert(is_same<typename remove_cv<_Tp>::type, _Tp>::value, + ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +../../base/no_destructor.h:77:28: note: in instantiation of template class 'std::vector<const net::(anonymous namespace)::DohUpgradeEntry, std::allocator<const net::(anonymous namespace)::DohUpgradeEntry> >' requested here + alignas(T) char storage_[sizeof(T)]; + ^ +../../net/dns/dns_util.cc:147:7: note: in instantiation of template class 'base::NoDestructor<std::vector<const net::(anonymous namespace)::DohUpgradeEntry, std::allocator<const net::(anonymous namespace)::DohUpgradeEntry> > >' requested here + upgradable_servers({ + ^ +../../net/dns/dns_util.cc:230:36: error: invalid range expression of type 'const std::vector<const net::(anonymous namespace)::DohUpgradeEntry, std::allocator<const net::(anonymous namespace)::DohUpgradeEntry> >'; no viable 'begin' function available + for (const auto& upgrade_entry : upgradable_servers) { + ^ ~~~~~~~~~~~~~~~~~~ + +The C++ standard forbids containers of const elements. Callers of +GetDohUpgradeList() use it in a safe way anyway, and most of +DohUpgradeEntry's members are const. + +Bug: 957519 +Change-Id: I826a51823edb1184c0fae27105101e2894efe568 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1805636 +Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> +Commit-Queue: Eric Orth <ericorth@chromium.org> +Reviewed-by: Eric Orth <ericorth@chromium.org> +Cr-Commit-Position: refs/heads/master@{#696834} +--- + net/dns/dns_util.cc | 13 +++++-------- + 1 file changed, 5 insertions(+), 8 deletions(-) + +diff --git a/net/dns/dns_util.cc b/net/dns/dns_util.cc +index d83ff7c150..14997c48b2 100644 +--- net/dns/dns_util.cc ++++ net/dns/dns_util.cc +@@ -139,11 +139,11 @@ struct DohUpgradeEntry { + const DnsConfig::DnsOverHttpsServerConfig dns_over_https_config; + }; + +-const std::vector<const DohUpgradeEntry>& GetDohUpgradeList() { ++const std::vector<DohUpgradeEntry>& GetDohUpgradeList() { + // The provider names in these entries should be kept in sync with the + // DohProviderId histogram suffix list in + // tools/metrics/histograms/histograms.xml. +- static const base::NoDestructor<std::vector<const DohUpgradeEntry>> ++ static const base::NoDestructor<std::vector<DohUpgradeEntry>> + upgradable_servers({ + DohUpgradeEntry( + "CleanBrowsingAdult", +@@ -222,8 +222,7 @@ const std::vector<const DohUpgradeEntry>& GetDohUpgradeList() { + std::vector<const DohUpgradeEntry*> GetDohUpgradeEntriesFromNameservers( + const std::vector<IPEndPoint>& dns_servers, + const std::vector<std::string>& excluded_providers) { +- const std::vector<const DohUpgradeEntry>& upgradable_servers = +- GetDohUpgradeList(); ++ const std::vector<DohUpgradeEntry>& upgradable_servers = GetDohUpgradeList(); + std::vector<const DohUpgradeEntry*> entries; + + for (const auto& server : dns_servers) { +@@ -417,8 +416,7 @@ std::vector<DnsConfig::DnsOverHttpsServerConfig> + GetDohUpgradeServersFromDotHostname( + const std::string& dot_server, + const std::vector<std::string>& excluded_providers) { +- const std::vector<const DohUpgradeEntry>& upgradable_servers = +- GetDohUpgradeList(); ++ const std::vector<DohUpgradeEntry>& upgradable_servers = GetDohUpgradeList(); + std::vector<DnsConfig::DnsOverHttpsServerConfig> doh_servers; + + if (dot_server.empty()) +@@ -451,8 +449,7 @@ GetDohUpgradeServersFromNameservers( + + std::string GetDohProviderIdForHistogramFromDohConfig( + const DnsConfig::DnsOverHttpsServerConfig& doh_server) { +- const std::vector<const DohUpgradeEntry>& upgradable_servers = +- GetDohUpgradeList(); ++ const std::vector<DohUpgradeEntry>& upgradable_servers = GetDohUpgradeList(); + for (const auto& upgrade_entry : upgradable_servers) { + if (doh_server.server_template == + upgrade_entry.dns_over_https_config.server_template) { diff --git a/community/chromium/upstream-fix-shutdown-crash-in-ProfileManager.patch b/community/chromium/upstream-fix-shutdown-crash-in-ProfileManager.patch new file mode 100644 index 0000000000..553ca34a7d --- /dev/null +++ b/community/chromium/upstream-fix-shutdown-crash-in-ProfileManager.patch @@ -0,0 +1,45 @@ +From e73aed9a5ef15102f29ac31b70290faf5c90f9fe Mon Sep 17 00:00:00 2001 +From: Evan Stade <estade@chromium.org> +Date: Wed, 16 Oct 2019 16:01:32 +0000 +Subject: [PATCH] Fix shutdown crash in ProfileManager. + +OnProfileMarkedForPermanentDeletion should move from +ProfileManagerObserver to ProfileObserver, which would also +fix this bug. However, changing the order of members is the +quickest and most cherry-pick-able way to avoid the crash. + +Bug: 1005244 +Change-Id: If2db68c846dd418cd02864b57b9b543687fa1e03 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1863518 +Auto-Submit: Evan Stade <estade@chromium.org> +Reviewed-by: David Roger <droger@chromium.org> +Commit-Queue: Evan Stade <estade@chromium.org> +Cr-Commit-Position: refs/heads/master@{#706467} +--- + chrome/browser/profiles/profile_manager.h | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles/profile_manager.h +index b60df76d59..7d02af7f8f 100644 +--- chrome/browser/profiles/profile_manager.h ++++ chrome/browser/profiles/profile_manager.h +@@ -410,6 +410,10 @@ class ProfileManager : public content::NotificationObserver, + const base::FilePath& profile_dir); + #endif // !defined(OS_ANDROID) + ++ // Destroy after |profile_info_cache_| since Profile destruction may trigger ++ // some observers to unregister themselves. ++ base::ObserverList<ProfileManagerObserver> observers_; ++ + // Object to cache various information about profiles. Contains information + // about every profile which has been created for this instance of Chrome, + // if it has not been explicitly deleted. It must be destroyed after +@@ -451,8 +455,6 @@ class ProfileManager : public content::NotificationObserver, + // Controls whether to initialize some services. Only disabled for testing. + bool do_final_services_init_ = true; + +- base::ObserverList<ProfileManagerObserver> observers_; +- + // TODO(chrome/browser/profiles/OWNERS): Usage of this in profile_manager.cc + // should likely be turned into DCHECK_CURRENTLY_ON(BrowserThread::UI) for + // consistency with surrounding code in the same file but that wasn't trivial |