1
0
Fork 0
mirror of https://gitlab.alpinelinux.org/alpine/aports.git synced 2025-07-24 19:55:26 +03:00

community/chromium: upgrade to 84.0.4147.105

This commit is contained in:
Natanael Copa 2020-08-07 17:09:20 +00:00
parent 6158b4c59f
commit afa00c4262
20 changed files with 442 additions and 595 deletions

View file

@ -1,11 +1,12 @@
# Contributor: Carlo Landmeter <clandmeter@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=chromium
pkgver=83.0.4103.116
pkgver=84.0.4147.105
pkgrel=0
pkgdesc="Chromium web browser"
url="https://www.chromium.org/Home"
arch="x86 x86_64 aarch64"
arch="x86_64 aarch64" # x86: ./v8_context_snapshot_generator segfaults
# armv7: /usr/bin/ld: final link failed: memory exhausted when linking chrome
license="BSD-3-Clause"
depends="xdg-utils"
makedepends="
@ -45,6 +46,7 @@ makedepends="
libpng-dev
libusb-dev
libva-dev
libvpx-dev
libwebp-dev
libxcomposite-dev
libxcursor-dev
@ -68,8 +70,8 @@ makedepends="
snappy-dev
speex-dev
sqlite-dev
xcb-proto
xdg-utils
yasm
zlib-dev
py2-setuptools
"
@ -107,15 +109,16 @@ source="https://commondatastorage.googleapis.com/chromium-browser-official/chrom
aarch64-fixes.patch
elf-arm.patch
add-missing-algorithm-header.patch
add-missing-limits-headers.patch
add-missing-memory-headers.patch
avoid-double-destruction-of-ServiceWorkerObjectHost.patch
libstdc-fix-incomplete-type-in-AXTree-for-NodeSetSiz.patch
make-some-of-blink-custom-iterators-STL-comaptible.patch
remove-unsupported-compiler-warnining.patch
x86-fixes.patch
chromium-84-crashpad-include-cstring.patch
chromium-84-mediaalloc.patch
chromium-84-gcc-DCHECK_EQ-unique_ptr.patch
chromium-84-std-vector-const.patch
upstream-avoid-calling-DeleteForCurrentDocument-from-destructor.patch
upstream-force-mp3-files-to-have-a-start-time-of-zero.patch
upstream-AXObject-stl-iterator.patch
upstream-ListContainerHelper-include-cstring.patch
"
# secfixes:
@ -159,13 +162,13 @@ prepare() {
libevent
libjpeg
libpng
libvpx
libwebp
libxml
libxslt
opus
re2
snappy
yasm
"
for _lib in $use_system libjpeg_turbo; do
msg "Removing buildscripts for system provided $_lib"
@ -176,7 +179,6 @@ prepare() {
\! -path './third_party/libxml/*' \
\! -path './third_party/pdfium/third_party/freetype/include/pstables.h' \
\! -path './third_party/harfbuzz-ng/utils/hb_scoped.h' \
\! -path './third_party/yasm/run_yasm.py' \
\! -regex '.*\.\(gn\|gni\|isolate\|py\)' \
-delete
done
@ -185,6 +187,7 @@ prepare() {
python2 build/linux/unbundle/replace_gn_files.py --system-libraries \
$use_system
third_party/libaddressinput/chromium/tools/update-strings.py
}
_gn_flags() {
@ -204,7 +207,6 @@ build() {
use_sysroot=false \
treat_warnings_as_errors=false \
fatal_linker_warnings=false \
binutils_path=\"/usr/bin\" \
use_custom_libcxx=false \
use_gold=false \
use_allocator=\"none\" \
@ -258,6 +260,10 @@ build() {
AR="ar" CC="clang" CXX="clang++" LD="clang++" NM=/usr/bin/nm \
out/Release/gn gen out/$_buildtype --args="$_c $_ca"
# Make xcbgen available to ui/gfx/x/gen_xproto.py running under Python 2
ln -s /usr/lib/python3.*/site-packages/xcbgen .
export PYTHONPATH="$PWD"
msg "Ninja turtles GO!"
# build mksnapshot
@ -335,23 +341,23 @@ chromedriver() {
mv "$pkgdir"/usr/bin/chromedriver "$subpkgdir"/usr/bin
}
sha512sums="dbd92fb04183ec1402401388f70b18b95040083c9ea8bf2ea6b1692fddc375b090968b13afb010ebf412b480b34747eb2c82709adbeb386cccf60b972f23254f chromium-83.0.4103.116.tar.xz
sha512sums="23cdd8b49c3276b16f1b4753fadf9f428720f0a95a3f567d189ba0e8a231d7bc1f62e96da6188645243eedac15ecc554b97e83c1a63aa647e7946cc1ba015a8c chromium-84.0.4147.105.tar.xz
a3bb959c65944ae2fb765725cedcffd743a58bc0c2cd1f1999d15fe79801d00f3474b08b4ed7b48859ed921eb57093d0ad09d90f201d729ed9b8a419a591ed29 pstables-2.8.h
b9a810416dd7a8ffc3a5ced85ad9acebda1665bd08a57eec7b189698cc5f74d2c3fd69044e20fcb83297a43214b2772a1312b2c6122ea0eb716abacf39524d60 chromium-launcher.sh
f6d962b9e4c22dd42183df3db5d3202dab33eccecafb1bf63ca678147289581262db1e5e64cbe8f9c212beefb0a6717bb8d311e497f56b55fe95b8bab2db493f chromium.conf
e182c998a43d22d1c76a86c561619afd1fca8c2be668265ad5e2f81a3806f7a154272cc027a2f8b370fb69446892c69e5967a4be76082325c14245ee7915234c chromium.desktop
2d8237a940ea691bd10b08315429677a587f7ef9692a0cca53bfd066eae82998a6c71f402a8669e9de39f94d7f3280745d1628ea6eac5d76ca7116844d4e0dac google-api.keys
b726ef2ecfe7d471e60d67de1e05847d214df6093b41bb2055652a9028327af19a8b10e7175467240f4dfec9e3ae97a6c4666bfd2cd6cb436c54656a085653ae default-pthread-stacksize.patch
1d815644101b9d8892964ed5c683773b35a195d0635ad628936ad0e9f879abfc39a1f4d8ef11b9783ed0eec404c5103f9935250d3108433682a9f51c74cd40ba musl-fixes.patch
893211a39e5b5b2e1dabcac9b232d34c6048304b706029ebb25023718a1c73d9afd889e811002351befa9db5f3b4814b25c5911a3230a9729696e2b15f2bf35b musl-fixes-breakpad.patch
5dc855cf321adbf8e7768e7a4b0684760952c607bffb0e3b6d7b8e632155ed85cb67a6734b736759f0f06c2c017de0a1be18a6e52f0796570ca39520dddffece musl-fixes.patch
e8675aff9fccd8b58cc839ef1d9e0e022d66aa94f72baa72e7acf92ceb2691f6a7907cc60ec3a87f894efdd639a3dec7fe702c97d446fcdea99452caec57e002 musl-fixes-breakpad.patch
d78479bdea1c847d6e1506421a3eb716031cd24aa979f0e653c0406b507a5a89924d15e6c603e291f1b17751fb0788571f42699214fd1462334c0daabd584ffe musl-hacks.patch
919f13a2cd65673f267321cf95c5410e65bc5264d6704d0791b25d39111282bedb425bd9824dde3b67422cfb874c86a9383ded686e39cfd4aac239edaf41cfc8 musl-libc++.patch
8d57d524978852ded41394793d611083d82241ecbc64808bbf5759d7bf0db0fe92af84935cf9e556d555f8d9963c847611413fa68634202f817b671be414c224 musl-sandbox.patch
eda730d7ee307f2406e96c3313e9f3a17c2577af9bcc8cbfd4099d2b590d81a1c8adf7bf9ba58dd0ec4ebd77001701a73e0aa718cac583a01a8876ddece82d58 musl-sandbox.patch
129ec746fd951ee6d0bf0b4389b7c988523870507de1f92f5706f4eb49039d4a49ed30e92b0634e3ae521fc3e129adc1c6edc7435922fc91658d8c087520c707 no-execinfo.patch
06d6b4c466fa48f2d22c338e20458d8fa50bbbf744468f41bc3c1892e739002b1fbc5c133a37252cec4ff4f804847add6b9c0cc1f84fb276939471c09e467fb6 no-mallinfo.patch
b1edab2a782a0fd554d0fcee893374282ceca797e9595f1b4dd1c4dbeb65a5d6c368f2000f8d44baea3a53880621fa33c456b663d72960e94f2e05f9ec4f7965 resolver.patch
f4265df7532625070c51ac43466e3e0f21e696f90c3b6040ef62a21defa7666203ff8219d9c9a5bebc011024aff300fbcbd941cebd0df59c4bc068d8f290221e swiftshader.patch
e2b5b6f848c0fcb9ea7c932be0afef65a89328c4425843b670d9d80440946ba1cf4eeb08eebbbe700d8514e5075664660da9f8368e5f0deec582a95d4cd2b07a create-extra-view-redefinition.patch
5b88c065819a44684ceea87239320f8120cfde0dc2f6dd739a007488dea6608c11584c56f3876a062641c9ca6fa82f43877c547ad470766aec31f5151bb2bdc1 create-extra-view-redefinition.patch
cf9970ef403ff7a68bf08c0ba5e681eec459fcb1afb6859e5a80f4874f1b9a656377b4540eeb5208ddec570efa206f147e32718c687fa29ca3acc4fde6e8cbe8 chromium-use-alpine-target.patch
599f5ef338b5797e04436bdc88921c31365d2dea2613d40053be6e774f654e2889efb0c0bd55c2c5044a6805510fbc337da555971169a75d584fac93e18256ac media-base.patch
2e5a83826239849d096aead033eb519338b84e6fbbf58abfcd7cfe40d0b3070b66bcc825ec84406484d73d1a333f1b9d23a8ab44987ab5c8b187076c84cd668b musl-crashpad.patch
@ -361,11 +367,12 @@ cf9970ef403ff7a68bf08c0ba5e681eec459fcb1afb6859e5a80f4874f1b9a656377b4540eeb5208
ad4ddc25df7aa1de2038b7adb86d27679ecdb7e3e16c0eec994e947a08c41504b6fb41166f7868ff5f58ce8191c78800cbb91d259c864840fa5af1d7ba5d43a1 gcc-arm.patch
7f81d97cce25d5530a2cb84105247e3707e344a285b0ac73c2f9275eae4bcc5aea6ff27307ec6607f95c13e9e724fab0e15e6fb8a33b3a9bfe0b3dbfdfb33ae6 aarch64-fixes.patch
9b1441fe42421ef9ead86a5143bf997d989bd53a8969cdfdf4e0c45f847efc8c1d127e15fb05e2ef5dbefbb228cbdc2849404d74997ca56265599e12e5efd6e4 elf-arm.patch
362e08911220e62945748cbd9f078df087f26737258f7fea023c0d256a0a353a44de2fc9942684d7632b903f4c1a2f89dc90fb43e12717a5495e67d8972fa03b add-missing-algorithm-header.patch
b64e03d9bf1f6488f183b103abfd175bc7c3805be81c037281b4cad8ae698d462b15bef7ffb938098ad183e01553ce34de4050d20fc49cacb68eb40581f4ebb4 add-missing-limits-headers.patch
15c52f53ae96e43235cac4e530f76f8ec4a30e984f5b8b22d48f779952040f738c3b115aec6f4a30a7d8dd8a9a74400797d3145812a335db146756c5edf05872 add-missing-memory-headers.patch
2a480de85c257a9ef151301dbb0aa76b0a4ef9ca9b5c597e97064567e4f40a54eb3404376b84ad995dbdaf48bf4687c7b8375425552ec5ab78551673f9aec33f avoid-double-destruction-of-ServiceWorkerObjectHost.patch
469e8ccbe840ed0602236ddb49ee4c92dd40179ce42bb58f820392bc5b77a93e29a2169dccd6e81d4f703dfeb557e10314ad081aab83ec0c1f009dabb13e997e libstdc-fix-incomplete-type-in-AXTree-for-NodeSetSiz.patch
4133aad3a714a249dcdf9958d27823f1ddcebd4883443e0f81a50320525e9b4e8f7db0d75f7d55f05d120b5dda3314769e6a9b48f974bfa7ea4eaa13331d0048 make-some-of-blink-custom-iterators-STL-comaptible.patch
7bb86c213149ce15ccf46bff93f6efe23415febe312d98a662180c71161a0fb9737ba47707d4433a70e5329919416759c35c050a3d00240fd004111d981383d0 remove-unsupported-compiler-warnining.patch
d58b8414ab1c68483fd5b59f3a599219467c7dfd5b2500a8e3b8b38abb73c2154f92d6a843be82041a7284cce0fc80ea13c795d149b88e29e0e7847feb63d1f2 x86-fixes.patch"
e02d4cd916ee5ff0b03fcbd22cbcad35d67338599ed099026fc13053a7e15fbd24335b9cb3961541f8da09bddb114b527230e1cbd274f6cdde012a25421076c7 remove-unsupported-compiler-warnining.patch
9e87e14a342a7dfac8642e9dac37b747336b415876062752ae75f126f3455ec093e6e434749c6816a6a885832240551aba0c141065909d3d3d3c65695ec04f57 chromium-84-crashpad-include-cstring.patch
363929fa33452f824f8351ab43b70bfcfd77d9cfd8d3fe6e56dc8813b0ae0e3fadbe43c956a2652e3f49a3434c3b58b24758a1922c7db86054b1ca7fce296ab0 chromium-84-mediaalloc.patch
e974ffcfefa69d290ccd05729c992623075b15d6718218a3634ce30ecada478f961b97123949d384ceb45075178ade1a8165374c1a5cf9b1f0d46845b4ebc5c6 chromium-84-gcc-DCHECK_EQ-unique_ptr.patch
d7c45cb25b429351dd6c3c7b2f64f1a3b3d0e2901d9eb24a5d8e6517bd16559117c4eab5565c8f2221aca7836d81ac9106af8de8ddcc11b200ddfc0bcba31c77 chromium-84-std-vector-const.patch
c81a870a10445a0b50cab0bb2b5b416e5d77f4ba2a38c7076ff8697fa496565be7186e2781f03d2a9f5837cbe7e8a84132d961cea0c1f9010218547a9c93e338 upstream-avoid-calling-DeleteForCurrentDocument-from-destructor.patch
51e3fc8cc18035bb5ec3e4da69febfad1877a594be925f1b05eb9838dad7155418b9a943e882c77e36c26caec3b08321edc130fa3c09b6e527b578e57a131b19 upstream-force-mp3-files-to-have-a-start-time-of-zero.patch
f5b39f5238e7987610088b69e834f8f0445397b54b9d6355f883311a72b97e3c7cffe663f96614025521f50ddb688951a21d6994c6533c290ac0771c0bad645f upstream-AXObject-stl-iterator.patch
25b472576edad6fc2fc358865d673db9431eb4b3a6a60b7ff827fd41ded477d2baf7e27e8c1a5c17451c2d8577dcea7b236c36f76a673e9d72171d8a9b17a624 upstream-ListContainerHelper-include-cstring.patch"

View file

@ -1,30 +0,0 @@
Upstream: Yes
From 2b9d6daa0ab5ce45ec5555466d5a5a583a020ea8 Mon Sep 17 00:00:00 2001
From: Daniel Playfair Cal <daniel.playfair.cal@gmail.com>
Date: Sat, 18 Apr 2020 00:27:38 +0000
Subject: [PATCH] Add missing algorithm header in crx_install_error.cc
This is needed for the use of std::find.
Change-Id: I2dc43b3887c467986c5346be5a9e27a987e1e5b3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2152333
Reviewed-by: Ken Rockot <rockot@google.com>
Commit-Queue: Ken Rockot <rockot@google.com>
Cr-Commit-Position: refs/heads/master@{#760272}
---
extensions/browser/install/crx_install_error.cc | 2 ++
1 file changed, 2 insertions(+)
diff --git a/extensions/browser/install/crx_install_error.cc b/extensions/browser/install/crx_install_error.cc
index a9765bb0a5a..bd0d3e35a16 100644
--- extensions/browser/install/crx_install_error.cc
+++ extensions/browser/install/crx_install_error.cc
@@ -4,6 +4,8 @@
#include "extensions/browser/install/crx_install_error.h"
+#include <algorithm>
+
#include "base/logging.h"
#include "extensions/browser/install/sandboxed_unpacker_failure_reason.h"

View file

@ -1,33 +0,0 @@
Upstream: Yes
From 74f76a6be385ef056b0be2362c32c728141cca16 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Fri, 17 Apr 2020 16:04:12 +0000
Subject: [PATCH] IWYU: std::numeric_limits is defined in limits
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Change-Id: Ifbc379adc5bb7242c21e7da0bcfc28f49e4dd06f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2153111
Reviewed-by: François Doray <fdoray@chromium.org>
Commit-Queue: François Doray <fdoray@chromium.org>
Cr-Commit-Position: refs/heads/master@{#760075}
---
.../graph/policies/background_tab_loading_policy_helpers.cc | 1 +
1 file changed, 1 insertion(+)
diff --git a/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.cc b/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.cc
index 4881c010bb9..593501d16a7 100644
--- chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.cc.orig 2020-05-20 09:08:05.395896528 -0400
+++ chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.cc 2020-05-20 09:12:27.367172702 -0400
@@ -3,6 +3,10 @@
// found in the LICENSE file.
#include "chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.h"
+
+#include <cmath>
+#include <limits>
+
#include "base/logging.h"
namespace performance_manager {

View file

@ -1,33 +0,0 @@
Upstream: Yes
From 40d994e4aa2e4d5077c1810e4623549618a19c05 Mon Sep 17 00:00:00 2001
From: Piotr Tworek <ptworek@vewd.com>
Date: Mon, 27 Apr 2020 16:31:46 +0000
Subject: [PATCH] Include "memory" header to get the definition of
std::unique_ptr.
Right now the code im the affected fails to build when using libstdc++
instead of bundled libcxx. Apparently libcxx pulls the necessary header
indirectly.
Change-Id: Ie5e86f228434ab16d622ae7a912d9ce607258931
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2164645
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#762881}
---
.../blink/renderer/core/html/trust_token_attribute_parsing.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/third_party/blink/renderer/core/html/trust_token_attribute_parsing.h b/third_party/blink/renderer/core/html/trust_token_attribute_parsing.h
index f5a7ab03892..ef19cfaf680 100644
--- third_party/blink/renderer/core/html/trust_token_attribute_parsing.h
+++ third_party/blink/renderer/core/html/trust_token_attribute_parsing.h
@@ -5,6 +5,8 @@
#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_HTML_TRUST_TOKEN_ATTRIBUTE_PARSING_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_TRUST_TOKEN_ATTRIBUTE_PARSING_H_
+#include <memory>
+
#include "base/optional.h"
#include "services/network/public/mojom/trust_tokens.mojom-blink-forward.h"
#include "third_party/blink/renderer/core/core_export.h"

View file

@ -1,139 +0,0 @@
Upstream: Yes
From bd59ce32629ef684624821419c43967b73d2989e Mon Sep 17 00:00:00 2001
From: Hiroki Nakagawa <nhiroki@chromium.org>
Date: Fri, 8 May 2020 08:25:31 +0000
Subject: [PATCH] ServiceWorker: Avoid double destruction of
ServiceWorkerObjectHost on connection error
This CL avoids the case where ServiceWorkerObjectHost is destroyed twice
on ServiceWorkerObjectHost::OnConnectionError() when Chromium is built
with the GCC build toolchain.
> How does the issue happen?
ServiceWorkerObjectHost has a cyclic reference like this:
ServiceWorkerObjectHost
--([1] scoped_refptr)--> ServiceWorkerVersion
--([2] std::unique_ptr)--> ServiceWorkerProviderHost
--([3] std::unique_ptr)--> ServiceWorkerContainerHost
--([4] std::unique_ptr)--> ServiceWorkerObjectHost
Note that ServiceWorkerContainerHost manages ServiceWorkerObjectHost in
map<int64_t version_id, std::unique_ptr<ServiceWorkerObjectHost>>.
When ServiceWorkerObjectHost::OnConnectionError() is called, the
function removes the reference [4] from the map, and destroys
ServiceWorkerObjectHost. If the object host has the last reference [1]
to ServiceWorkerVersion, the destruction also cuts off the references
[2] and [3], and destroys ServiceWorkerProviderHost and
ServiceWorkerContainerHost.
This seems to work well on the Chromium's default toolchain, but not
work on the GCC toolchain. According to the report, destruction of
ServiceWorkerContainerHost happens while the map owned by the container
host is erasing the ServiceWorkerObjectHost, and this results in crash
due to double destruction of the object host.
I don't know the reason why this happens only on the GCC toolchain, but
I suspect the order of object destruction on std::map::erase() could be
different depending on the toolchains.
> How does this CL fix this?
The ideal fix is to redesign the ownership model of
ServiceWorkerVersion, but it's not feasible in the short term.
Instead, this CL avoids destruction of ServiceWorkerObjectHost on
std::map::erase(). The new code takes the ownership of the object host
from the map first, and then erases the entry from the map. This
separates timings to erase the map entry and to destroy the object host,
so the crash should no longer happen.
Bug: 1056598
Change-Id: Id30654cb575bc557c42044d6f0c6f1f9bfaed613
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2094496
Reviewed-by: Makoto Shimazu <shimazu@chromium.org>
Commit-Queue: Hiroki Nakagawa <nhiroki@chromium.org>
Cr-Commit-Position: refs/heads/master@{#766770}
---
.../service_worker_container_host.cc | 10 +++++
.../service_worker_object_host_unittest.cc | 38 +++++++++++++++++++
2 files changed, 48 insertions(+)
diff --git a/content/browser/service_worker/service_worker_container_host.cc b/content/browser/service_worker/service_worker_container_host.cc
index ec7fb1449af..98c62093b0e 100644
--- content/browser/service_worker/service_worker_container_host.cc
+++ content/browser/service_worker/service_worker_container_host.cc
@@ -669,6 +669,16 @@ void ServiceWorkerContainerHost::RemoveServiceWorkerObjectHost(
int64_t version_id) {
DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId());
DCHECK(base::Contains(service_worker_object_hosts_, version_id));
+
+ // ServiceWorkerObjectHost to be deleted may have the last reference to
+ // ServiceWorkerVersion that indirectly owns this ServiceWorkerContainerHost.
+ // If we erase the object host directly from the map, |this| could be deleted
+ // during the map operation and may crash. To avoid the case, we take the
+ // ownership of the object host from the map first, and then erase the entry
+ // from the map. See https://crbug.com/1056598 for details.
+ std::unique_ptr<ServiceWorkerObjectHost> to_be_deleted =
+ std::move(service_worker_object_hosts_[version_id]);
+ DCHECK(to_be_deleted);
service_worker_object_hosts_.erase(version_id);
}
diff --git a/content/browser/service_worker/service_worker_object_host_unittest.cc b/content/browser/service_worker/service_worker_object_host_unittest.cc
index 408d7c1f9d1..6eab59040ab 100644
--- content/browser/service_worker/service_worker_object_host_unittest.cc
+++ content/browser/service_worker/service_worker_object_host_unittest.cc
@@ -200,6 +200,19 @@ class ServiceWorkerObjectHostTest : public testing::Test {
return registration_info;
}
+ void CallOnConnectionError(ServiceWorkerContainerHost* container_host,
+ int64_t version_id) {
+ // ServiceWorkerObjectHost has the last reference to the version.
+ ServiceWorkerObjectHost* object_host =
+ GetServiceWorkerObjectHost(container_host, version_id);
+ EXPECT_TRUE(object_host->version_->HasOneRef());
+
+ // Make sure that OnConnectionError induces destruction of the version and
+ // the object host.
+ object_host->receivers_.Clear();
+ object_host->OnConnectionError();
+ }
+
BrowserTaskEnvironment task_environment_;
std::unique_ptr<EmbeddedWorkerTestHelper> helper_;
scoped_refptr<ServiceWorkerRegistration> registration_;
@@ -409,5 +422,30 @@ TEST_F(ServiceWorkerObjectHostTest, DispatchExtendableMessageEvent_FromClient) {
events[0]->source_info_for_client->client_type);
}
+// This is a regression test for https://crbug.com/1056598.
+TEST_F(ServiceWorkerObjectHostTest, OnConnectionError) {
+ const GURL scope("https://www.example.com/");
+ const GURL script_url("https://www.example.com/service_worker.js");
+ Initialize(std::make_unique<EmbeddedWorkerTestHelper>(base::FilePath()));
+ SetUpRegistration(scope, script_url);
+
+ // Create the provider host.
+ ASSERT_EQ(blink::ServiceWorkerStatusCode::kOk,
+ StartServiceWorker(version_.get()));
+
+ // Set up the case where the last reference to the version is owned by the
+ // service worker object host.
+ ServiceWorkerContainerHost* container_host =
+ version_->provider_host()->container_host();
+ ServiceWorkerVersion* version_rawptr = version_.get();
+ version_ = nullptr;
+ ASSERT_TRUE(version_rawptr->HasOneRef());
+
+ // Simulate the connection error that induces the object host destruction.
+ // This shouldn't crash.
+ CallOnConnectionError(container_host, version_rawptr->version_id());
+ base::RunLoop().RunUntilIdle();
+}
+
} // namespace service_worker_object_host_unittest
} // namespace content

View file

@ -0,0 +1,90 @@
From effd506ce070d58e731bd6086681b9cded8573ed Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Sun, 10 May 2020 07:24:38 +0000
Subject: [PATCH] IWYU: add a bunch of missing cstring includes
---
.../crashpad/snapshot/minidump/minidump_context_converter.cc | 2 ++
third_party/crashpad/crashpad/util/linux/ptrace_client.cc | 1 +
.../crashpad/crashpad/util/net/http_multipart_builder.cc | 1 +
third_party/crashpad/crashpad/util/net/http_transport_socket.cc | 2 ++
third_party/crashpad/crashpad/util/process/process_memory.cc | 1 +
third_party/crashpad/crashpad/util/stream/log_output_stream.cc | 1 +
6 files changed, 8 insertions(+)
diff --git a/third_party/crashpad/crashpad/snapshot/minidump/minidump_context_converter.cc b/third_party/crashpad/crashpad/snapshot/minidump/minidump_context_converter.cc
index 0c840deac..1d163b42f 100644
--- third_party/crashpad/crashpad/snapshot/minidump/minidump_context_converter.cc
+++ third_party/crashpad/crashpad/snapshot/minidump/minidump_context_converter.cc
@@ -14,6 +14,8 @@
#include "snapshot/minidump/minidump_context_converter.h"
+#include <cstring>
+
#include "base/stl_util.h"
#include "minidump/minidump_context.h"
diff --git a/third_party/crashpad/crashpad/util/linux/ptrace_client.cc b/third_party/crashpad/crashpad/util/linux/ptrace_client.cc
index f097ad985..e91ce2eca 100644
--- third_party/crashpad/crashpad/util/linux/ptrace_client.cc
+++ third_party/crashpad/crashpad/util/linux/ptrace_client.cc
@@ -17,6 +17,7 @@
#include <errno.h>
#include <stdio.h>
+#include <cstring>
#include <string>
#include "base/logging.h"
diff --git a/third_party/crashpad/crashpad/util/net/http_multipart_builder.cc b/third_party/crashpad/crashpad/util/net/http_multipart_builder.cc
index 267960b27..8ed7edc2f 100644
--- third_party/crashpad/crashpad/util/net/http_multipart_builder.cc
+++ third_party/crashpad/crashpad/util/net/http_multipart_builder.cc
@@ -16,6 +16,7 @@
#include <sys/types.h>
+#include <cstring>
#include <utility>
#include <vector>
diff --git a/third_party/crashpad/crashpad/util/net/http_transport_socket.cc b/third_party/crashpad/crashpad/util/net/http_transport_socket.cc
index 4dd01b6e7..60cd60c17 100644
--- third_party/crashpad/crashpad/util/net/http_transport_socket.cc
+++ third_party/crashpad/crashpad/util/net/http_transport_socket.cc
@@ -19,6 +19,8 @@
#include <poll.h>
#include <sys/socket.h>
+#include <cstring>
+
#include "base/logging.h"
#include "base/macros.h"
#include "base/numerics/safe_conversions.h"
diff --git a/third_party/crashpad/crashpad/util/process/process_memory.cc b/third_party/crashpad/crashpad/util/process/process_memory.cc
index ab87b940f..e02bcea81 100644
--- third_party/crashpad/crashpad/util/process/process_memory.cc
+++ third_party/crashpad/crashpad/util/process/process_memory.cc
@@ -15,6 +15,7 @@
#include "util/process/process_memory.h"
#include <algorithm>
+#include <cstring>
#include "base/logging.h"
#include "util/numeric/safe_assignment.h"
diff --git a/third_party/crashpad/crashpad/util/stream/log_output_stream.cc b/third_party/crashpad/crashpad/util/stream/log_output_stream.cc
index 03c0a5a02..45d823aa4 100644
--- third_party/crashpad/crashpad/util/stream/log_output_stream.cc
+++ third_party/crashpad/crashpad/util/stream/log_output_stream.cc
@@ -15,6 +15,7 @@
#include "util/stream/log_output_stream.h"
#include <algorithm>
+#include <cstring>
#include "base/logging.h"
--
2.26.2

View file

@ -0,0 +1,29 @@
From 9b749dc5c7fdb0f4b1bd0df5901beb6af1b81ff1 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Sat, 9 May 2020 16:46:07 +0000
Subject: [PATCH] GCC: fix DCHECK_EQ in NGInlineNode::SegmentScriptRuns
data->segments is a std::unique_ptr, but underlying CheckOpValueStr
has no overloaded function for std::unique_ptr.
However, overloaded function with const void* exists and can be
used with std::unique_ptr::get().
---
.../blink/renderer/core/layout/ng/inline/ng_inline_node.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
index 55ca9e3..ee691df 100644
--- third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
+++ third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
@@ -891,7 +891,7 @@ void NGInlineNode::SegmentText(NGInlineNodeData* data) {
// Segment NGInlineItem by script, Emoji, and orientation using RunSegmenter.
void NGInlineNode::SegmentScriptRuns(NGInlineNodeData* data) {
- DCHECK_EQ(data->segments, nullptr);
+ DCHECK_EQ(data->segments.get(), nullptr);
String& text_content = data->text_content;
if (text_content.IsEmpty()) {
--
2.26.2

View file

@ -0,0 +1,41 @@
https://bugs.chromium.org/p/chromium/issues/detail?id=1095962
--- media/base/media.cc
+++ media/base/media.cc
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include <limits>
+
#include "media/base/media.h"
#include "base/allocator/buildflags.h"
@@ -41,7 +43,7 @@
#if BUILDFLAG(USE_ALLOCATOR_SHIM)
// Remove allocation limit from ffmpeg, so calls go down to shim layer.
- av_max_alloc(0);
+ av_max_alloc(std::numeric_limits<size_t>::max());
#endif // BUILDFLAG(USE_ALLOCATOR_SHIM)
#endif // BUILDFLAG(ENABLE_FFMPEG)
--- third_party/ffmpeg/chromium/dllmain.cc
+++ third_party/ffmpeg/chromium/dllmain.cc
@@ -3,6 +3,7 @@
// found in the LICENSE file.
#include <intrin.h>
+#include <limits>
#include <new.h>
#include <stdlib.h>
#include <windows.h>
@@ -28,7 +29,7 @@
if (reason == DLL_PROCESS_ATTACH) {
DisableThreadLibraryCalls(instance);
// Remove allocation limit from ffmpeg, so calls go down to shim layer.
- av_max_alloc(0);
+ av_max_alloc(std::numeric_limits<size_t>::max());
// Enable OOM crashes in the shim for all malloc calls that fail.
_set_new_mode(1);
_set_new_handler(&OnNoMemory);

View file

@ -0,0 +1,49 @@
From df982a547c5e88777a6134e5d18a1482d933f1cf Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Wed, 27 May 2020 10:38:26 +0000
Subject: [PATCH] libstdc++: std::vector must have non-const value_type
Bug: 957519
Change-Id: I535b3bcf318f98cecbf4be1520ffe4126abcacd8
---
diff --git a/extensions/common/features/feature_flags.cc b/extensions/common/features/feature_flags.cc
index 5b63764..7efa308 100644
--- extensions/common/features/feature_flags.cc
+++ extensions/common/features/feature_flags.cc
@@ -19,7 +19,7 @@
constexpr base::Feature kFeatureFlags[] = {
{"DeclarativeNetRequest", base::FEATURE_ENABLED_BY_DEFAULT}};
-const std::vector<const base::Feature>* g_feature_flags_test_override = nullptr;
+const std::vector<base::Feature>* g_feature_flags_test_override = nullptr;
template <typename T>
const base::Feature* GetFeature(T begin,
@@ -52,8 +52,8 @@
}
ScopedFeatureFlagsOverride CreateScopedFeatureFlagsOverrideForTesting(
- const std::vector<const base::Feature>* features) {
- return base::AutoReset<const std::vector<const base::Feature>*>(
+ const std::vector<base::Feature>* features) {
+ return base::AutoReset<const std::vector<base::Feature>*>(
&g_feature_flags_test_override, features);
}
diff --git a/extensions/common/features/feature_flags.h b/extensions/common/features/feature_flags.h
index d1a5dd3..b57740b 100644
--- extensions/common/features/feature_flags.h
+++ extensions/common/features/feature_flags.h
@@ -25,9 +25,9 @@
// in scope. Clients must ensure that |features| remains alive (non-dangling)
// while the returned value is in scope.
using ScopedFeatureFlagsOverride =
- base::AutoReset<const std::vector<const base::Feature>*>;
+ base::AutoReset<const std::vector<base::Feature>*>;
ScopedFeatureFlagsOverride CreateScopedFeatureFlagsOverrideForTesting(
- const std::vector<const base::Feature>* features);
+ const std::vector<base::Feature>* features);
} // namespace extensions

View file

@ -9,12 +9,12 @@
auto learn_more = views::CreateVectorImageButtonWithNativeTheme(
listener, vector_icons::kHelpOutlineIcon);
learn_more->SetTooltipText(l10n_util::GetStringUTF16(IDS_LEARN_MORE));
@@ -86,7 +86,7 @@
DialogDelegate::SetButtons(ui::DIALOG_BUTTON_OK);
DialogDelegate::SetButtonLabel(ui::DIALOG_BUTTON_OK,
l10n_util::GetStringUTF16(IDS_DONE));
- DialogDelegate::SetExtraView(::CreateExtraView(this));
+ DialogDelegate::SetExtraView(::CreateExtraViewInternal(this));
@@ -85,7 +85,7 @@
browser_(browser) {
SetButtons(ui::DIALOG_BUTTON_OK);
SetButtonLabel(ui::DIALOG_BUTTON_OK, l10n_util::GetStringUTF16(IDS_DONE));
- SetExtraView(::CreateExtraView(this));
+ SetExtraView(::CreateExtraViewInternal(this));
set_margins(gfx::Insets());
chrome::RecordDialogCreation(chrome::DialogIdentifier::INVERT);
}

View file

@ -1,63 +0,0 @@
Upstream: Yes
From aeef68888d4c00b69facead2b934095a8cd17329 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Mon, 20 Apr 2020 18:21:43 +0000
Subject: [PATCH] libstdc++: fix incomplete-type in AXTree for
NodeSetSizePosInSetInfo
has only forward declaration of NodeSetSizePosInSetInfo. Therefore,
move declaration from ax_tree.cc.
std: :unordered_map<T, U> requires U to be fully declared. ax_tree.h
Bug: 957519
Change-Id: Ic1f4bf3ebfea229ece84251e46d4461b31873868
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2132403
Reviewed-by: David Tseng <dtseng@chromium.org>
Commit-Queue: David Tseng <dtseng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#760588}
---
ui/accessibility/ax_tree.cc | 10 ++--------
ui/accessibility/ax_tree.h | 9 ++++++++-
2 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/ui/accessibility/ax_tree.cc b/ui/accessibility/ax_tree.cc
index 7b8d9b1b161..e9154028d66 100644
--- ui/accessibility/ax_tree.cc
+++ ui/accessibility/ax_tree.cc
@@ -567,14 +567,8 @@ struct AXTreeUpdateState {
const AXTree& tree;
};
-struct AXTree::NodeSetSizePosInSetInfo {
- NodeSetSizePosInSetInfo() = default;
- ~NodeSetSizePosInSetInfo() = default;
-
- int32_t pos_in_set = 0;
- int32_t set_size = 0;
- base::Optional<int> lowest_hierarchical_level;
-};
+AXTree::NodeSetSizePosInSetInfo::NodeSetSizePosInSetInfo() = default;
+AXTree::NodeSetSizePosInSetInfo::~NodeSetSizePosInSetInfo() = default;
struct AXTree::OrderedSetContent {
explicit OrderedSetContent(const AXNode* ordered_set = nullptr)
diff --git a/ui/accessibility/ax_tree.h b/ui/accessibility/ax_tree.h
index a51ca8de4c8..8c1c57517ac 100644
--- ui/accessibility/ax_tree.h
+++ ui/accessibility/ax_tree.h
@@ -328,7 +328,14 @@ class AX_EXPORT AXTree : public AXNode::OwnerTree {
bool enable_extra_mac_nodes_ = false;
// Contains pos_in_set and set_size data for an AXNode.
- struct NodeSetSizePosInSetInfo;
+ struct NodeSetSizePosInSetInfo {
+ NodeSetSizePosInSetInfo();
+ ~NodeSetSizePosInSetInfo();
+
+ int32_t pos_in_set = 0;
+ int32_t set_size = 0;
+ base::Optional<int> lowest_hierarchical_level;
+ };
// Represents the content of an ordered set which includes the ordered set
// items and the ordered set container if it exists.

View file

@ -1,96 +0,0 @@
Upstream: Yes
From d3cabbc7321d349a9bffda482df5afc0d4df1ac2 Mon Sep 17 00:00:00 2001
From: Piotr Tworek <ptworek@vewd.com>
Date: Thu, 30 Apr 2020 21:33:47 +0000
Subject: [PATCH] Make some of blink custom iterators STL compatible.
Blink has recently started using functions like std::any_of with some of
the custom iterators it provides. On Linux this works in the default
setup using libcxx, but fails with even the most recent versions of
libstdc++. In all cases the error message (text in bug report) complains
about lack of matching std::__iterator_category definition.
From what I understand the error message is basically saying those
iterators are not STL compatible due to missing traits as described
in https://en.cppreference.com/w/cpp/iterator/iterator_traits. Such
traits are provided by custom iterators defined in //base, or //cc.
This patch adds the necessary traits to iterators that are currently
affected by this problem.
Bug: 1076869
Change-Id: I9950a7100c32499ba96647317fa70b87dc22eaf9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2174199
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Piotr Tworek <ptworek@vewd.com>
Cr-Commit-Position: refs/heads/master@{#764426}
---
.../core/layout/ng/ng_physical_container_fragment.h | 6 ++++++
.../blink/renderer/platform/wtf/hash_iterators.h | 12 ++++++++++++
third_party/blink/renderer/platform/wtf/hash_table.h | 6 ++++++
3 files changed, 24 insertions(+)
diff --git a/third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.h b/third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.h
index 1256e77c146..8b93107f2fc 100644
--- third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.h
+++ third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.h
@@ -38,6 +38,12 @@ class CORE_EXPORT NGPhysicalContainerFragment : public NGPhysicalFragment {
STACK_ALLOCATED();
public:
+ using iterator_category = std::bidirectional_iterator_tag;
+ using value_type = NGLink;
+ using difference_type = ptrdiff_t;
+ using pointer = value_type*;
+ using reference = value_type&;
+
ConstIterator(const NGLink* current) : current_(current) {}
const NGLink& operator*() const { return *PostLayoutOrCurrent(); }
diff --git a/third_party/blink/renderer/platform/wtf/hash_iterators.h b/third_party/blink/renderer/platform/wtf/hash_iterators.h
index f8e66e6be85..6003d02c509 100644
--- third_party/blink/renderer/platform/wtf/hash_iterators.h
+++ third_party/blink/renderer/platform/wtf/hash_iterators.h
@@ -53,6 +53,12 @@ struct HashTableConstIteratorAdapter<HashTableType,
typedef HashTableConstValuesIterator<HashTableType, KeyType, MappedType>
ValuesIterator;
+ using iterator_category = std::bidirectional_iterator_tag;
+ using value_type = HashTableType;
+ using difference_type = ptrdiff_t;
+ using pointer = value_type*;
+ using reference = value_type&;
+
HashTableConstIteratorAdapter() = default;
HashTableConstIteratorAdapter(
const typename HashTableType::const_iterator& impl)
@@ -94,6 +100,12 @@ struct HashTableIteratorAdapter<HashTableType,
typedef HashTableValuesIterator<HashTableType, KeyType, MappedType>
ValuesIterator;
+ using iterator_category = std::bidirectional_iterator_tag;
+ using value_type = HashTableType;
+ using difference_type = ptrdiff_t;
+ using pointer = value_type*;
+ using reference = value_type&;
+
HashTableIteratorAdapter() = default;
HashTableIteratorAdapter(const typename HashTableType::iterator& impl)
: impl_(impl) {}
diff --git a/third_party/blink/renderer/platform/wtf/hash_table.h b/third_party/blink/renderer/platform/wtf/hash_table.h
index f596fb5d41e..5a4468d6bd1 100644
--- third_party/blink/renderer/platform/wtf/hash_table.h
+++ third_party/blink/renderer/platform/wtf/hash_table.h
@@ -2204,6 +2204,12 @@ struct HashTableConstIteratorAdapter {
STACK_ALLOCATED();
public:
+ using iterator_category = std::bidirectional_iterator_tag;
+ using value_type = HashTableType;
+ using difference_type = ptrdiff_t;
+ using pointer = value_type*;
+ using reference = value_type&;
+
HashTableConstIteratorAdapter() = default;
HashTableConstIteratorAdapter(
const typename HashTableType::const_iterator& impl)

View file

@ -1,34 +1,3 @@
--- ./third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
+++ ./third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
@@ -49,7 +49,7 @@
}
void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fp) {
+ const struct _fpstate* fp) {
const greg_t* regs = uc->uc_mcontext.gregs;
out->context_flags = MD_CONTEXT_X86_FULL |
@@ -97,7 +97,7 @@
}
void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fpregs) {
+ const struct _fpstate* fpregs) {
const greg_t* regs = uc->uc_mcontext.gregs;
out->context_flags = MD_CONTEXT_AMD64_FULL;
--- ./third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
+++ ./third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
@@ -50,7 +50,7 @@
// info: the collection of register structures.
#if defined(__i386__) || defined(__x86_64)
static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fp);
+ const struct _fpstate* fp);
#elif defined(__aarch64__)
static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
const struct fpsimd_context* fpregs);
--- ./third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
+++ ./third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
@@ -490,7 +490,9 @@

View file

@ -35,52 +35,6 @@
#pragma pop_macro("lstat64")
#pragma pop_macro("pread64")
#pragma pop_macro("pwrite64")
--- ./third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h.orig
+++ ./third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
@@ -37,6 +37,10 @@
#include "common/memory.h"
#include "google_breakpad/common/minidump_format.h"
+#if !defined(__GLIBC__)
+ #define _libc_fpstate _fpstate
+#endif
+
namespace google_breakpad {
// Wraps platform-dependent implementations of accessors to ucontext_t structs.
--- ./third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h.orig
+++ ./third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h
@@ -48,7 +48,7 @@
#if defined(__aarch64__)
typedef struct fpsimd_context fpstate_t;
#elif !defined(__ARM_EABI__) && !defined(__mips__)
-typedef struct _libc_fpstate fpstate_t;
+typedef struct _fpstate fpstate_t;
#endif
// These entries store a list of memory regions that the client wants included
--- ./third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h.orig
+++ ./third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h
@@ -36,6 +36,7 @@
#include <elf.h>
#include <link.h>
#include <stddef.h>
+#include <limits.h>
#include "common/memory_range.h"
@@ -51,9 +52,9 @@
typedef ElfW(Phdr) Phdr;
typedef ElfW(Word) Word;
typedef ElfW(Addr) Addr;
-#if __WORDSIZE == 32
+#if ULONG_MAX == 0xffffffff
static const int kClass = ELFCLASS32;
-#elif __WORDSIZE == 64
+#elif ULONG_MAX == 0xffffffffffffffff
static const int kClass = ELFCLASS64;
#else
#error "Unsupported __WORDSIZE for ElfCoreDump."
--- ./sandbox/linux/suid/process_util.h.orig
+++ ./sandbox/linux/suid/process_util.h
@@ -11,6 +11,14 @@
@ -141,16 +95,6 @@ diff --git a/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc b
base::Version version(gnu_get_libc_version());
UMALinuxGlibcVersion glibc_version_result = UMA_LINUX_GLIBC_NOT_PARSEABLE;
--- services/device/serial/serial_io_handler_posix.cc.orig 2019-07-03 10:57:32.568171835 -0400
+++ services/device/serial/serial_io_handler_posix.cc 2019-07-03 10:57:16.867983031 -0400
@@ -6,6 +6,7 @@
#include <sys/ioctl.h>
#include <termios.h>
+#include <asm-generic/ioctls.h>
#include <algorithm>
#include <utility>
diff --git a/third_party/ots/include/opentype-sanitiser.h b/third_party/ots/include/opentype-sanitiser.h
--- third_party/ots/include/opentype-sanitiser.h
+++ third_party/ots/include/opentype-sanitiser.h
@ -235,3 +179,15 @@ diff --git a/third_party/ots/include/opentype-sanitiser.h b/third_party/ots/incl
/*
* GNU-specific, but avoids the realpath(..., NULL)
diff --git a/mojo/public/cpp/platform/named_platform_channel_posix.cc ./mojo/public/cpp/platform/named_platform_channel_posix.cc
index 9082ac4..cbedae6 100644
--- a/mojo/public/cpp/platform/named_platform_channel_posix.cc
+++ ./mojo/public/cpp/platform/named_platform_channel_posix.cc
@@ -5,6 +5,7 @@
#include "mojo/public/cpp/platform/named_platform_channel.h"
#include <errno.h>
+#include <string.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <unistd.h>

View file

@ -1,13 +1,13 @@
GCC doesn't know this option
--- build/config/compiler/BUILD.gn.orig 2020-05-20 09:34:53.358598296 -0400
+++ build/config/compiler/BUILD.gn 2020-05-20 09:35:40.589648947 -0400
@@ -1508,9 +1508,6 @@
--- build/config/compiler/BUILD.gn.orig
+++ build/config/compiler/BUILD.gn
@@ -1495,9 +1495,6 @@
# TODO(https://crbug.com/1028110): Evaluate and possible enable.
"-Wno-deprecated-copy",
-
- # TODO(https://crbug.com/1050281): Clean up, enable.
- "-Wno-non-c-typedef-for-linkage",
-
# TODO(https://crbug.com/1059231): Clean up, enable.
"-Wno-pointer-to-int-cast",
]
cflags_c += [

View file

@ -0,0 +1,36 @@
From f3dfe39f9fd3091cf1a7146b936d9de77a459435 Mon Sep 17 00:00:00 2001
From: Piotr Tworek <ptworek@vewd.com>
Date: Mon, 18 May 2020 15:24:35 +0000
Subject: [PATCH] Make blink::AXObject::AncestorsIterator STL compatible.
Commit 31e5188ffc9a04295997d22bfdb68fc367bef047, "Used some methods from
AXRoleProperties in AXObject" started using std::any_of with this custom
iterator type. Unfortunately this iterator does not provide traits
mandated by the standard. This works fine for libcxx, but fails when
compiling the code against libstdc++.
Bug: 819294
Change-Id: I78fe25475593d73ce255f1de955aa41e936dff86
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2207112
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Piotr Tworek <ptworek@vewd.com>
Cr-Commit-Position: refs/heads/master@{#769713}
---
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object.h b/third_party/blink/renderer/modules/accessibility/ax_object.h
index 841715b..fbb87bf 100644
--- third_party/blink/renderer/modules/accessibility/ax_object.h
+++ third_party/blink/renderer/modules/accessibility/ax_object.h
@@ -274,6 +274,12 @@
class MODULES_EXPORT AncestorsIterator final
: public GarbageCollected<AncestorsIterator> {
public:
+ using iterator_category = std::forward_iterator_tag;
+ using value_type = AXObject;
+ using difference_type = ptrdiff_t;
+ using pointer = value_type*;
+ using reference = value_type&;
+
~AncestorsIterator() = default;
AncestorsIterator(const AncestorsIterator& other)

View file

@ -0,0 +1,30 @@
From 408bded3befc625e16ef18f2ff5467e040b203e7 Mon Sep 17 00:00:00 2001
From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Wed, 27 May 2020 16:34:56 +0000
Subject: [PATCH] ListContainerHelper: Include <cstring> for memcpy()
IWYU. This fixes the libstdc++ build after commit 41989bd89 ("Remove/replace
unnecessary logging.h includes in .cc files (cc)").
Bug: 957519
Change-Id: I1e782e8310ca548947b2d541af6a2159d928d1f3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2218090
Reviewed-by: vmpstr <vmpstr@chromium.org>
Commit-Queue: vmpstr <vmpstr@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#772267}
---
diff --git a/cc/base/list_container_helper.cc b/cc/base/list_container_helper.cc
index afd386e..7b594b4 100644
--- cc/base/list_container_helper.cc
+++ cc/base/list_container_helper.cc
@@ -7,6 +7,7 @@
#include <stddef.h>
#include <algorithm>
+#include <cstring>
#include <vector>
#include "base/check_op.h"

View file

@ -0,0 +1,71 @@
From 128869693a2519578896b41765df029d7adc4ae0 Mon Sep 17 00:00:00 2001
From: Yuzu Saijo <yuzus@chromium.org>
Date: Tue, 2 Jun 2020 04:51:11 +0000
Subject: [PATCH] [content] Avoid calling DeleteForCurrentDocument from
destructor
This CL removes the call to DeleteForCurrentDocument from the destructor
of ManifestManagerHost.
This intends to fix a crash which happens from time to time using
RenderDocumentHostUserData.
Change-Id: I1336fb62328dcb0cf9991499f399bf3665d29b75
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2224737
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Reviewed-by: Sreeja Kamishetty <sreejakshetty@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Yuzu Saijo <yuzus@chromium.org>
Cr-Commit-Position: refs/heads/master@{#774006}
---
content/browser/manifest/manifest_manager_host.cc | 7 +++++--
content/browser/manifest/manifest_manager_host.h | 2 ++
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/content/browser/manifest/manifest_manager_host.cc b/content/browser/manifest/manifest_manager_host.cc
index 3a2efba889a..1bd88d91edc 100644
--- content/browser/manifest/manifest_manager_host.cc
+++ content/browser/manifest/manifest_manager_host.cc
@@ -22,7 +22,7 @@ ManifestManagerHost::ManifestManagerHost(RenderFrameHost* render_frame_host)
}
ManifestManagerHost::~ManifestManagerHost() {
- OnConnectionError();
+ DispatchPendingCallbacks();
}
void ManifestManagerHost::BindObserver(
@@ -55,7 +55,7 @@ blink::mojom::ManifestManager& ManifestManagerHost::GetManifestManager() {
return *manifest_manager_;
}
-void ManifestManagerHost::OnConnectionError() {
+void ManifestManagerHost::DispatchPendingCallbacks() {
std::vector<GetManifestCallback> callbacks;
for (CallbackMap::iterator it(&callbacks_); !it.IsAtEnd(); it.Advance()) {
callbacks.push_back(std::move(*it.GetCurrentValue()));
@@ -63,7 +63,10 @@ void ManifestManagerHost::OnConnectionError() {
callbacks_.Clear();
for (auto& callback : callbacks)
std::move(callback).Run(GURL(), blink::Manifest());
+}
+void ManifestManagerHost::OnConnectionError() {
+ DispatchPendingCallbacks();
if (GetForCurrentDocument(manifest_manager_frame_)) {
DeleteForCurrentDocument(manifest_manager_frame_);
}
diff --git a/content/browser/manifest/manifest_manager_host.h b/content/browser/manifest/manifest_manager_host.h
index 96951ae30bc..f706c20bdb8 100644
--- content/browser/manifest/manifest_manager_host.h
+++ content/browser/manifest/manifest_manager_host.h
@@ -55,6 +55,8 @@ class ManifestManagerHost
using CallbackMap = base::IDMap<std::unique_ptr<GetManifestCallback>>;
blink::mojom::ManifestManager& GetManifestManager();
+
+ void DispatchPendingCallbacks();
void OnConnectionError();
void OnRequestManifestResponse(int request_id,

View file

@ -0,0 +1,38 @@
From 192fc3899f76e9487d77895f31df8d2d13bf9619 Mon Sep 17 00:00:00 2001
From: Dale Curtis <dalecurtis@chromium.org>
Date: Fri, 26 Jun 2020 01:10:55 +0000
Subject: [PATCH] Force mp3 files to have a start time of zero.
This will allow us to remove our custom patch which breaks upstream
ffmpeg functionality for unknown reasons.
R=sandersd
Fixed: 1062037
Change-Id: I253011843dee4dd6a8c958b14990ad836a9f1dca
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2268221
Auto-Submit: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Dan Sanders <sandersd@chromium.org>
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#782792}
---
media/filters/ffmpeg_demuxer.cc | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
index 01266e1a072..a7ed542b5fc 100644
--- media/filters/ffmpeg_demuxer.cc
+++ media/filters/ffmpeg_demuxer.cc
@@ -1522,6 +1522,12 @@ void FFmpegDemuxer::OnFindStreamInfoDone(int result) {
if (glue_->container() == container_names::CONTAINER_AVI)
format_context->flags |= AVFMT_FLAG_GENPTS;
+ // FFmpeg will incorrectly adjust the start time of MP3 files into the future
+ // based on discard samples. We were unable to fix this upstream without
+ // breaking ffmpeg functionality. https://crbug.com/1062037
+ if (glue_->container() == container_names::CONTAINER_MP3)
+ start_time_ = base::TimeDelta();
+
// For testing purposes, don't overwrite the timeline offset if set already.
if (timeline_offset_.is_null()) {
timeline_offset_ =

View file

@ -1,75 +0,0 @@
Use Position Independent Code for i586 also
Otherwise, you will run into the following problem when linking
(only lld warned about the issue, ld and ld.gold produced binaries
that crashed in the dynamic linker during startup):
ld: error: can't create dynamic relocation R_386_32 against local
symbol in read only segment; recompile object files with -fPIC
or pass '-Wl,-z,notext' to allow text relocations in the output
--- ./build/linux/unbundle/yasm.gn
+++ ./build/linux/unbundle/yasm.gn
@@ -4,6 +4,7 @@
if (current_cpu == "x86") {
_yasm_flags = [
+ "-DPIC",
"-felf32",
"-m",
"x86",
--- ./third_party/openh264/BUILD.gn
+++ ./third_party/openh264/BUILD.gn
@@ -66,6 +66,7 @@
defines = yasm_defines
if (current_cpu == "x86") {
defines += [ "X86_32" ]
+ defines += [ "X86_32_PICASM" ]
} else { # x64
if (is_mac) {
defines += [
@@ -87,6 +88,7 @@
defines = yasm_defines
if (current_cpu == "x86") {
defines += [ "X86_32" ]
+ defines += [ "X86_32_PICASM" ]
} else { # x64
if (is_mac) {
defines += [
@@ -108,6 +110,7 @@
defines = yasm_defines
if (current_cpu == "x86") {
defines += [ "X86_32" ]
+ defines += [ "X86_32_PICASM" ]
} else { # x64
if (is_mac) {
defines += [
@@ -136,6 +139,9 @@
deps = []
if (use_assembler) {
defines = [ "X86_ASM" ]
+ if (current_cpu == "x86") {
+ defines += [ "X86_32_ASM" ]
+ }
deps += [ ":openh264_common_yasm" ]
}
if (is_android) {
@@ -162,6 +168,9 @@
deps = [ ":common" ]
if (use_assembler) {
defines = [ "X86_ASM" ]
+ if (current_cpu == "x86") {
+ defines += [ "X86_32_ASM" ]
+ }
deps += [ ":openh264_processing_yasm" ]
}
}
@@ -188,6 +197,9 @@
]
if (use_assembler) {
defines = [ "X86_ASM" ]
+ if (current_cpu == "x86") {
+ defines += [ "X86_32_ASM" ]
+ }
deps += [ ":openh264_encoder_yasm" ]
}
}