chromium: update to 89.0.4389.82.

- Built for x86_64, x86_64-musl, i686.
- Tested on x86_64.

- Use pipewire 0.3 (default in 90).
- Remove Google API client id and secret.
- Video acceleration is now a feature that must be enabled in
  chrome://flags.

changes by q66: updated ppc64le patches

Closes: https://github.com/void-linux/void-packages/pull/29205
Closes: https://github.com/void-linux/void-packages/pull/29384
This commit is contained in:
Peter Bui 2021-03-10 14:14:40 -05:00 committed by q66
parent 294e1c0b8c
commit 6e251d9397
20 changed files with 540 additions and 581 deletions

View file

@ -75,24 +75,24 @@
#if HAVE_UNISTD_H
#include <unistd.h>
diff --git a/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc b/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
--- chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
+++ chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
@@ -39,7 +39,9 @@
#endif // defined(OS_ANDROID) && defined(__arm__)
#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
--- chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc.orig 2021-03-10 07:23:00.145810088 -0500
+++ chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc 2021-03-10 10:57:19.405962671 -0500
@@ -55,7 +55,9 @@
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
+#if defined(__GLIBC__)
#include <gnu/libc-version.h>
+#endif
#include "base/linux_util.h"
#include "base/strings/string_split.h"
@@ -295,7 +297,7 @@ void RecordLinuxDistro() {
#endif // defined(OS_LINUX) && !defined(OS_CHROMEOS)
@@ -316,7 +318,7 @@
void RecordLinuxGlibcVersion() {
-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
+#if defined(__GLIBC__) && !defined(OS_CHROMEOS)
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
-#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
+#if defined(__GLIBC__) || BUILDFLAG(IS_CHROMEOS_LACROS)
base::Version version(gnu_get_libc_version());
UMALinuxGlibcVersion glibc_version_result = UMA_LINUX_GLIBC_NOT_PARSEABLE;

View file

@ -1,25 +0,0 @@
From 0c0af4cabb7490db473cd2c28f069956974a4d98 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Fri, 2 Oct 2020 12:11:58 +0000
Subject: [PATCH] IWYU: uint8_t is defined in stdint.h
---
third_party/openscreen/src/util/crypto/random_bytes.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/third_party/openscreen/src/util/crypto/random_bytes.h b/third_party/openscreen/src/util/crypto/random_bytes.h
index 3cb2fa8..025b52c 100644
--- third_party/openscreen/src/util/crypto/random_bytes.h
+++ third_party/openscreen/src/util/crypto/random_bytes.h
@@ -7,6 +7,8 @@
#include <array>
+#include <stdint.h>
+
namespace openscreen {
std::array<uint8_t, 16> GenerateRandomBytes16();
--
2.26.2

View file

@ -1,27 +0,0 @@
From 6e402d97c2dec5726f37e95f97b7f7e12b1d3b1d Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jdapena@igalia.com>
Date: Wed, 11 Nov 2020 11:02:13 +0100
Subject: [PATCH] IWYU: include headers for std::vector and std::unique_ptr in AXTreeFormatter
Fix these build errors with libstdc++:
../../ui/accessibility/platform/inspect/tree_formatter.h:35:12: error: std::vector has not been declared
../../ui/accessibility/platform/inspect/tree_formatter.h:61:16: error: unique_ptr in namespace std does not name a template type
Bug: 957519
Change-Id: I402ac0644255b3cd4932ff2fe72d999b125a7895
---
diff --git a/ui/accessibility/platform/inspect/tree_formatter.h b/ui/accessibility/platform/inspect/tree_formatter.h
index 4a70a4d..bb23768 100644
--- ui/accessibility/platform/inspect/tree_formatter.h
+++ ui/accessibility/platform/inspect/tree_formatter.h
@@ -5,6 +5,9 @@
#ifndef UI_ACCESSIBILITY_PLATFORM_INSPECT_TREE_FORMATTER_H_
#define UI_ACCESSIBILITY_PLATFORM_INSPECT_TREE_FORMATTER_H_
+#include <memory>
+#include <vector>
+
#include "ui/accessibility/platform/inspect/inspect.h"
#include "ui/gfx/native_widget_types.h"

View file

@ -1,21 +0,0 @@
From 127ec3b1bf26ab37f2ae8333f284008868756274 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Sat, 21 Nov 2020 15:59:23 +0000
Subject: [PATCH] IWYU: size_t is defined stddef.h
Change-Id: I4400ac7c6004b49ec6e72c44f2754e2166642f88
---
diff --git a/components/bookmarks/browser/bookmark_model_observer.h b/components/bookmarks/browser/bookmark_model_observer.h
index 69c40e7..0e5eb96 100644
--- components/bookmarks/browser/bookmark_model_observer.h
+++ components/bookmarks/browser/bookmark_model_observer.h
@@ -7,6 +7,8 @@
#include <set>
+#include <stddef.h>
+
class GURL;
namespace bookmarks {

View file

@ -1,36 +0,0 @@
From 56c654a91600e3bf254aa9f66c1151b0850b6ee4 Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jdapena@igalia.com>
Date: Wed, 11 Nov 2020 10:24:47 +0100
Subject: [PATCH] GCC: do not pass unique_ptr to DCHECK_NE, but the actual pointer, in CompositorFrameReporter
DCHECK_NE comparison requires CheckOpValueStr to be defined for the
type, or providing an output stream operator. A unique_ptr does not
provide any.
Compilation in GCC is failing in CompositorFrameReporter because of
this:
../../cc/metrics/compositor_frame_reporter.cc: In member function void cc::CompositorFrameReporter::ReportEventLatencyHistograms() const:
../../base/check_op.h:224:59: error: no matching function for call to CheckOpValueStr(const std::unique_ptr<cc::EventMetrics>&)
Fixed comparing the result of get() method for unique_ptr instead of
the unique_ptr.
Bug: 819294
Change-Id: I11103d1867c7196c1de92e72f9f12dcfd31c29f1
(updated to use DCHECK as suggested in comments)
---
diff --git a/cc/metrics/compositor_frame_reporter.cc b/cc/metrics/compositor_frame_reporter.cc
index 725beb0..fafd0f3 100644
--- cc/metrics/compositor_frame_reporter.cc
+++ cc/metrics/compositor_frame_reporter.cc
@@ -686,7 +686,7 @@
void CompositorFrameReporter::ReportEventLatencyHistograms() const {
for (const auto& event_metrics : events_metrics_) {
- DCHECK_NE(event_metrics, nullptr);
+ DCHECK(event_metrics);
const std::string histogram_base_name =
GetEventLatencyHistogramBaseName(*event_metrics);
const int event_type_index = static_cast<int>(event_metrics->type());

View file

@ -1,20 +0,0 @@
From 372366b4180533f27d3250a50810828370d697b0 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Sat, 21 Nov 2020 16:12:18 +0000
Subject: [PATCH] IWYU: include limits for std::numeric_limits
Change-Id: Ia5226e1432a622f4f4abc8f1b18bcab8638a73c6
---
diff --git a/src/trace_processor/containers/string_pool.h b/src/trace_processor/containers/string_pool.h
index 11ae91c..58c6db2 100644
--- third_party/perfetto/src/trace_processor/containers/string_pool.h
+++ third_party/perfetto/src/trace_processor/containers/string_pool.h
@@ -22,6 +22,7 @@
#include <unordered_map>
#include <vector>
+#include <limits>
#include "perfetto/ext/base/optional.h"
#include "perfetto/ext/base/paged_memory.h"

View file

@ -1,21 +0,0 @@
From bcb20babee602b55fe4bd026e13a41d10b89632f Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Sat, 21 Nov 2020 15:55:02 +0000
Subject: [PATCH] IWYU: include limits for std::numeric_limits
Change-Id: I1b6b07ebb397a29c84d3ed51ae41523e3ecab497
---
diff --git a/components/federated_learning/floc_constants.cc b/components/federated_learning/floc_constants.cc
index df66e5d..2eb50f1 100644
--- components/federated_learning/floc_constants.cc
+++ components/federated_learning/floc_constants.cc
@@ -4,6 +4,8 @@
#include "components/federated_learning/floc_constants.h"
+#include <limits>
+
namespace federated_learning {
// This is only for experimentation and won't be served to websites.

View file

@ -1,27 +0,0 @@
From 75ff882bb5f2fcd14431e65fa638ae72bdb47086 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Sun, 15 Nov 2020 14:31:23 +0000
Subject: [PATCH] fix ideographicSpaceCharacter constant for system icu
https://chromium-review.googlesource.com/c/chromium/src/+/1687411
renamed ideographicSpaceCharacter to kIdeographicSpaceCharacter.
---
third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc b/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc
index fb8ab05..5d4ea13 100644
--- third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc
+++ third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc
@@ -432,7 +432,7 @@ String TextCodecICU::Decode(const char* bytes,
// ICU decodes it as U+E5E5.
if (!strcmp(encoding_.GetName(), "GBK")) {
if (EqualIgnoringASCIICase(encoding_.GetName(), "gb18030"))
- resultString.Replace(0xE5E5, ideographicSpaceCharacter);
+ resultString.Replace(0xE5E5, kIdeographicSpaceCharacter);
// Make GBK compliant to the encoding spec and align with GB18030
resultString.Replace(0x01F9, 0xE7C8);
// FIXME: Once https://www.w3.org/Bugs/Public/show_bug.cgi?id=28740#c3
--
2.26.2

View file

@ -1,25 +0,0 @@
From bc383a5dd7fa8f2b535f28815fd6932fbc0d2a45 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Wed, 28 Oct 2020 16:00:35 +0000
Subject: [PATCH] IWYU: include stddef.h for size_t
---
third_party/dawn/src/common/ityp_array.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/third_party/dawn/src/common/ityp_array.h b/third_party/dawn/src/common/ityp_array.h
index 48e080f..c784198 100644
--- third_party/dawn/src/common/ityp_array.h
+++ third_party/dawn/src/common/ityp_array.h
@@ -21,6 +21,8 @@
#include <array>
#include <type_traits>
+#include <stddef.h>
+
namespace ityp {
// ityp::array is a helper class that wraps std::array with the restriction that
--
2.26.2

View file

@ -1,39 +0,0 @@
From 4f4604877f3b666ac7a373ae443e3c3795424569 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Fri, 6 Nov 2020 11:18:42 +0000
Subject: [PATCH] GCC: fix attribute on function definition
GCC does not accept attributes at the end for function definitions.
Solution is to move it before function name. Otherwise GCC fails like
this:
../../base/compiler_specific.h:97:28: error: attributes are not allowed
on a function-definition
97 | #define WARN_UNUSED_RESULT __attribute__((warn_unused_result))
| ^~~~~~~~~~~~~
../../media/gpu/vaapi/vaapi_wrapper.h:322:36: note: in
expansion of macro 'WARN_UNUSED_RESULT'
322 | const T* data) WARN_UNUSED_RESULT {
| ^~~~~~~~~~~~~~~~~~
---
media/gpu/vaapi/vaapi_wrapper.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/media/gpu/vaapi/vaapi_wrapper.h b/media/gpu/vaapi/vaapi_wrapper.h
index fd1fd82..deeda1f 100644
--- media/gpu/vaapi/vaapi_wrapper.h
+++ media/gpu/vaapi/vaapi_wrapper.h
@@ -318,8 +318,8 @@ class MEDIA_GPU_EXPORT VaapiWrapper
// Convenient templatized version of SubmitBuffer() where |size| is deduced to
// be the size of the type of |*data|.
template <typename T>
- bool SubmitBuffer(VABufferType va_buffer_type,
- const T* data) WARN_UNUSED_RESULT {
+ bool WARN_UNUSED_RESULT SubmitBuffer(VABufferType va_buffer_type,
+ const T* data) {
return SubmitBuffer(va_buffer_type, sizeof(T), data);
}
// Batch-version of SubmitBuffer(), where the lock for accessing libva is
--
2.26.2

View file

@ -0,0 +1,25 @@
From c06ddc4935bf1394812c011ce5d93898ccc8a53a Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Tue, 09 Feb 2021 19:22:57 +0000
Subject: [PATCH] IWYU: add ctime for std::time
Bug: None
Change-Id: I8bdae43209984242b9f5e538d74ece4409b65e3c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2679610
Reviewed-by: Katie Dektar <katie@chromium.org>
Commit-Queue: Katie Dektar <katie@chromium.org>
Cr-Commit-Position: refs/heads/master@{#852287}
---
diff --git a/ui/accessibility/ax_tree_serializer.h b/ui/accessibility/ax_tree_serializer.h
index ddbbdcd..1790e3b 100644
--- ui/accessibility/ax_tree_serializer.h
+++ ui/accessibility/ax_tree_serializer.h
@@ -8,6 +8,7 @@
#include <stddef.h>
#include <stdint.h>
+#include <ctime>
#include <ostream>
#include <unordered_map>
#include <unordered_set>

View file

@ -0,0 +1,43 @@
From b5b80df7dafba8cafa4c6c0ba2153dfda467dfc9 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Wed, 27 Jan 2021 20:31:51 +0000
Subject: [PATCH] add dependency on opus in webcodecs
webcodecs uses opus, but dependency is missing. With unbundled
opus library build fails, because include path is incomplete.
Bug: 1169758
Change-Id: I01369364327461196a81002479636cf45017669a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2644623
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#847754}
---
third_party/blink/renderer/modules/webcodecs/BUILD.gn | 1 +
third_party/blink/renderer/modules/webcodecs/DEPS | 1 +
2 files changed, 2 insertions(+)
diff --git a/third_party/blink/renderer/modules/webcodecs/BUILD.gn b/third_party/blink/renderer/modules/webcodecs/BUILD.gn
index fdf4ca0fafc72..01a7bf809ffca 100644
--- third_party/blink/renderer/modules/webcodecs/BUILD.gn
+++ third_party/blink/renderer/modules/webcodecs/BUILD.gn
@@ -65,6 +65,7 @@ blink_modules_sources("webcodecs") {
"//media/mojo/clients",
"//media/mojo/mojom",
"//third_party/libyuv:libyuv",
+ "//third_party/opus",
]
if (media_use_openh264) {
deps += [ "//third_party/openh264:encoder" ]
diff --git a/third_party/blink/renderer/modules/webcodecs/DEPS b/third_party/blink/renderer/modules/webcodecs/DEPS
index b8dd596da8caf..ea1919d12205a 100644
--- third_party/blink/renderer/modules/webcodecs/DEPS
+++ third_party/blink/renderer/modules/webcodecs/DEPS
@@ -19,6 +19,7 @@ include_rules = [
"+third_party/libyuv",
"+third_party/openh264",
+ "+third_party/opus",
"+ui/gfx/color_space.h",
"+ui/gfx/geometry/rect.h",

View file

@ -0,0 +1,28 @@
From 5a56bfe8d281250a1deee0d116a9fcde65b9c29a Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Fri, 15 Jan 2021 18:37:05 +0000
Subject: [PATCH] IWYU: add various missing includes
std::weak_ptr and std::shared_ptr require map
*int*_t types require cstdint
---
third_party/dawn/src/dawn_wire/client/Device.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/third_party/dawn/src/dawn_wire/client/Device.h b/third_party/dawn/src/dawn_wire/client/Device.h
index 3f16700..1082549 100644
--- third_party/dawn/src/dawn_wire/client/Device.h
+++ third_party/dawn/src/dawn_wire/client/Device.h
@@ -22,7 +22,9 @@
#include "dawn_wire/client/ApiObjects_autogen.h"
#include "dawn_wire/client/ObjectBase.h"
+#include <cstdint>
#include <map>
+#include <memory>
namespace dawn_wire { namespace client {
--
2.26.2

View file

@ -0,0 +1,29 @@
From 7cd4eab0bfca6192f14d6143410e1ae774eb1c29 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Thu, 31 Dec 2020 11:57:22 +0000
Subject: [PATCH] GCC: do not pass unique_ptr to DCHECK_NE, but the actual
pointer
DCHECK_NE comparison requires CheckOpValueStr to be defined for the
type, or providing an output stream operator. A unique_ptr does not
provide any. USE DCHECK instead.
---
net/third_party/quiche/src/quic/core/quic_path_validator.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/third_party/quiche/src/quic/core/quic_path_validator.cc b/net/third_party/quiche/src/quic/core/quic_path_validator.cc
index 0722216..fb2aeaf 100644
--- net/third_party/quiche/src/quic/core/quic_path_validator.cc
+++ net/third_party/quiche/src/quic/core/quic_path_validator.cc
@@ -68,7 +68,7 @@ void QuicPathValidator::OnPathResponse(const QuicPathFrameBuffer& probing_data,
void QuicPathValidator::StartPathValidation(
std::unique_ptr<QuicPathValidationContext> context,
std::unique_ptr<ResultDelegate> result_delegate) {
- DCHECK_NE(nullptr, context);
+ DCHECK(context);
QUIC_DLOG(INFO) << "Start validating path " << *context
<< " via writer: " << context->WriterToUse();
if (path_context_ != nullptr) {
--
2.26.2

View file

@ -0,0 +1,38 @@
diff --git a/third_party/skia/include/effects/SkImageFilters.h b/third_party/skia/include/effects/SkImageFilters.h
index 04cce0a..d06b007 100644
--- third_party/skia/include/effects/SkImageFilters.h
+++ third_party/skia/include/effects/SkImageFilters.h
@@ -23,6 +23,9 @@ class SkColorFilter;
class SkPaint;
class SkRegion;
+constexpr SkRect kNoCropRect = {SK_ScalarNegativeInfinity, SK_ScalarNegativeInfinity,
+ SK_ScalarInfinity, SK_ScalarInfinity};
+
// A set of factory functions providing useful SkImageFilter effects. For image filters that take an
// input filter, providing nullptr means it will automatically use the dynamic source image. This
// source depends on how the filter is applied, but is either the contents of a saved layer when
@@ -33,8 +36,6 @@ public:
// to those types as a crop rect for the image filter factories. It's not intended to be used
// directly.
struct CropRect {
- static constexpr SkRect kNoCropRect = {SK_ScalarNegativeInfinity, SK_ScalarNegativeInfinity,
- SK_ScalarInfinity, SK_ScalarInfinity};
CropRect() : fCropRect(kNoCropRect) {}
// Intentionally not explicit so callers don't have to use this type but can use SkIRect or
// SkRect as desired.
diff --git a/third_party/skia/src/effects/imagefilters/SkImageFilters.cpp b/third_party/skia/src/effects/imagefilters/SkImageFilters.cpp
index 5290b00..fb97fc1 100644
--- third_party/skia/src/effects/imagefilters/SkImageFilters.cpp
+++ third_party/skia/src/effects/imagefilters/SkImageFilters.cpp
@@ -47,10 +47,6 @@ static SkImageFilter::CropRect to_legacy_crop_rect(const SkImageFilters::CropRec
: SkImageFilter::CropRect(SkRect::MakeEmpty(), 0x0);
}
-// Allow kNoCropRect to be referenced (for certain builds, e.g. macOS libFuzzer chromium target,
-// see crbug.com/1139725)
-constexpr SkRect SkImageFilters::CropRect::kNoCropRect;
-
void SkImageFilters::RegisterFlattenables() {
SkAlphaThresholdFilter::RegisterFlattenables();
SkArithmeticImageFilter::RegisterFlattenables();

View file

@ -0,0 +1,135 @@
From 5e3a738b1204941aab9f15c0eb3d06e20fefd96e Mon Sep 17 00:00:00 2001
From: Scott Violet <sky@chromium.org>
Date: Mon, 8 Mar 2021 21:07:39 +0000
Subject: [PATCH] x11/ozone: fix two edge cases
WindowTreeHost::OnHostMovedInPixels() may trigger a nested message
loop (tab dragging), which when the stack unravels means this may
be deleted. This adds an early out if this happens.
X11WholeScreenMoveLoop has a similar issue, in so far as notifying
the delegate may delete this.
BUG=1185482
TEST=WindowTreeHostPlatform.DeleteHostFromOnHostMovedInPixels
Change-Id: Ieca1c90b3e4358da50b332abe2941fdbb50c5c25
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2743555
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#860852}
---
ui/aura/window_tree_host_platform.cc | 10 ++++-
ui/aura/window_tree_host_platform_unittest.cc | 40 ++++++++++++++++++-
ui/base/x/x11_whole_screen_move_loop.cc | 4 ++
3 files changed, 51 insertions(+), 3 deletions(-)
diff --git a/ui/aura/window_tree_host_platform.cc b/ui/aura/window_tree_host_platform.cc
index ce8395fe07..7589542026 100644
--- ui/aura/window_tree_host_platform.cc
+++ ui/aura/window_tree_host_platform.cc
@@ -214,13 +214,21 @@ void WindowTreeHostPlatform::OnBoundsChanged(const gfx::Rect& new_bounds) {
float current_scale = compositor()->device_scale_factor();
float new_scale = ui::GetScaleFactorForNativeView(window());
gfx::Rect old_bounds = bounds_in_pixels_;
+ auto weak_ref = GetWeakPtr();
bounds_in_pixels_ = new_bounds;
- if (bounds_in_pixels_.origin() != old_bounds.origin())
+ if (bounds_in_pixels_.origin() != old_bounds.origin()) {
OnHostMovedInPixels(bounds_in_pixels_.origin());
+ // Changing the bounds may destroy this.
+ if (!weak_ref)
+ return;
+ }
if (bounds_in_pixels_.size() != old_bounds.size() ||
current_scale != new_scale) {
pending_size_ = gfx::Size();
OnHostResizedInPixels(bounds_in_pixels_.size());
+ // Changing the size may destroy this.
+ if (!weak_ref)
+ return;
}
DCHECK_GT(on_bounds_changed_recursion_depth_, 0);
if (--on_bounds_changed_recursion_depth_ == 0) {
diff --git a/ui/aura/window_tree_host_platform_unittest.cc b/ui/aura/window_tree_host_platform_unittest.cc
index eda14e2f0c..4de039c88a 100644
--- ui/aura/window_tree_host_platform_unittest.cc
+++ ui/aura/window_tree_host_platform_unittest.cc
@@ -34,7 +34,7 @@ class TestWindowTreeHost : public WindowTreeHostPlatform {
// OnHostWill/DidProcessBoundsChange. Additionally, this triggers a bounds
// change from within OnHostResized(). Such a scenario happens in production
// code.
-class TestWindowTreeHostObserver : public aura::WindowTreeHostObserver {
+class TestWindowTreeHostObserver : public WindowTreeHostObserver {
public:
TestWindowTreeHostObserver(WindowTreeHostPlatform* host,
ui::PlatformWindow* platform_window)
@@ -51,7 +51,7 @@ class TestWindowTreeHostObserver : public aura::WindowTreeHostObserver {
return on_host_will_process_bounds_change_count_;
}
- // aura::WindowTreeHostObserver:
+ // WindowTreeHostObserver:
void OnHostResized(WindowTreeHost* host) override {
if (!should_change_bounds_in_on_resized_)
return;
@@ -92,5 +92,41 @@ TEST_F(WindowTreeHostPlatformTest, HostWillProcessBoundsChangeRecursion) {
EXPECT_EQ(1, observer.on_host_will_process_bounds_change_count());
}
+// Deletes WindowTreeHostPlatform from OnHostMovedInPixels().
+class DeleteHostWindowTreeHostObserver : public WindowTreeHostObserver {
+ public:
+ explicit DeleteHostWindowTreeHostObserver(
+ std::unique_ptr<TestWindowTreeHost> host)
+ : host_(std::move(host)) {
+ host_->AddObserver(this);
+ }
+ ~DeleteHostWindowTreeHostObserver() override = default;
+
+ TestWindowTreeHost* host() { return host_.get(); }
+
+ // WindowTreeHostObserver:
+ void OnHostMovedInPixels(WindowTreeHost* host,
+ const gfx::Point& new_origin_in_pixels) override {
+ host_->RemoveObserver(this);
+ host_.reset();
+ }
+
+ private:
+ std::unique_ptr<TestWindowTreeHost> host_;
+
+ DISALLOW_COPY_AND_ASSIGN(DeleteHostWindowTreeHostObserver);
+};
+
+// Verifies WindowTreeHostPlatform can be safely deleted when calling
+// OnHostMovedInPixels().
+// Regression test for https://crbug.com/1185482
+TEST_F(WindowTreeHostPlatformTest, DeleteHostFromOnHostMovedInPixels) {
+ std::unique_ptr<TestWindowTreeHost> host =
+ std::make_unique<TestWindowTreeHost>();
+ DeleteHostWindowTreeHostObserver observer(std::move(host));
+ observer.host()->SetBoundsInPixels(gfx::Rect(1, 2, 3, 4));
+ EXPECT_EQ(nullptr, observer.host());
+}
+
} // namespace
} // namespace aura
diff --git a/ui/base/x/x11_whole_screen_move_loop.cc b/ui/base/x/x11_whole_screen_move_loop.cc
index 5ed215db66..db678799db 100644
--- ui/base/x/x11_whole_screen_move_loop.cc
+++ ui/base/x/x11_whole_screen_move_loop.cc
@@ -78,9 +78,13 @@ X11WholeScreenMoveLoop::~X11WholeScreenMoveLoop() {
void X11WholeScreenMoveLoop::DispatchMouseMovement() {
if (!last_motion_in_screen_)
return;
+ auto weak_ref = weak_factory_.GetWeakPtr();
delegate_->OnMouseMovement(last_motion_in_screen_->root_location(),
last_motion_in_screen_->flags(),
last_motion_in_screen_->time_stamp());
+ // The delegate may delete this during dispatch.
+ if (!weak_ref)
+ return;
last_motion_in_screen_.reset();
}

View file

@ -1,26 +0,0 @@
--- build/config/compiler/BUILD.gn.orig 2021-01-20 09:01:44.362114311 -0500
+++ build/config/compiler/BUILD.gn 2021-01-20 09:03:41.880232248 -0500
@@ -1534,9 +1534,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",
]
cflags_c += [
@@ -1548,13 +1545,6 @@
# TODO(https://crbug.com/1143700): Clean up and re-enable.
cflags_objc = [ "-Wno-gnu-folding-constant" ]
}
-
- if (enable_wmax_tokens) {
- cflags += [ "-Wmax-tokens" ]
- } else {
- # TODO(https://crbug.com/1049569): Remove after Clang 87b235db.
- cflags += [ "-Wno-max-tokens" ]
- }
}
}
}

View file

@ -1,53 +1,3 @@
--- sandbox/linux/system_headers/arm64_linux_syscalls.h
+++ sandbox/linux/system_headers/arm64_linux_syscalls.h
@@ -1063,4 +1063,8 @@
#define __NR_memfd_create 279
#endif
+#if !defined(__NR_membarrier)
+#define __NR_membarrier 283
+#endif
+
#endif // SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
--- sandbox/linux/system_headers/arm_linux_syscalls.h
+++ sandbox/linux/system_headers/arm_linux_syscalls.h
@@ -1385,6 +1385,10 @@
#define __NR_memfd_create (__NR_SYSCALL_BASE+385)
#endif
+#if !defined(__NR_membarrier)
+#define __NR_membarrier (__NR_SYSCALL_BASE+389)
+#endif
+
// ARM private syscalls.
#if !defined(__ARM_NR_BASE)
#define __ARM_NR_BASE (__NR_SYSCALL_BASE + 0xF0000)
--- sandbox/linux/system_headers/x86_32_linux_syscalls.h
+++ sandbox/linux/system_headers/x86_32_linux_syscalls.h
@@ -1422,5 +1422,9 @@
#define __NR_memfd_create 356
#endif
+#if !defined(__NR_membarrier)
+#define __NR_membarrier 375
+#endif
+
#endif // SANDBOX_LINUX_SYSTEM_HEADERS_X86_32_LINUX_SYSCALLS_H_
--- sandbox/linux/system_headers/x86_64_linux_syscalls.h
+++ sandbox/linux/system_headers/x86_64_linux_syscalls.h
@@ -1290,5 +1290,9 @@
#define __NR_memfd_create 319
#endif
+#if !defined(__NR_membarrier)
+#define __NR_membarrier 324
+#endif
+
#endif // SANDBOX_LINUX_SYSTEM_HEADERS_X86_64_LINUX_SYSCALLS_H_
--- sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+++ sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
@@ -370,6 +370,7 @@

File diff suppressed because it is too large Load diff

View file

@ -1,7 +1,7 @@
# Template file for 'chromium'
pkgname=chromium
# See http://www.chromium.org/developers/calendar for the latest version
version=88.0.4324.182
version=89.0.4389.82
revision=1
archs="i686* x86_64* aarch64* armv7l* ppc64le*"
short_desc="Google's attempt at creating a safer, faster, and more stable browser"
@ -9,7 +9,7 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
license="BSD-3-Clause"
homepage="https://www.chromium.org/"
distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/${pkgname}-${version}.tar.xz"
checksum=30411fc3ec2d33df4c5cad41f21affa3823c80f7dbd394f6d68f9a1e81015b81
checksum=df4914407b68afdc6449cb8e3f1b08d110eb8689ac41f86490e337fa4d1be379
nocross=yes
lib32disabled=yes
@ -36,7 +36,7 @@ makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel
minizip-devel jsoncpp-devel zlib-devel libcap-devel libXdamage-devel
re2-devel fontconfig-devel freetype-devel opus-devel
ffmpeg-devel libva-devel python-setuptools xcb-proto
$(vopt_if pipewire libpipewire0.2-devel) $(vopt_if sndio sndio-devel)"
$(vopt_if pipewire pipewire-devel) $(vopt_if sndio sndio-devel)"
depends="libexif hwids desktop-file-utils hicolor-icon-theme xdg-utils"
case "$XBPS_TARGET_MACHINE" in
@ -91,7 +91,7 @@ do_configure() {
# compile gn early, so it can be used to generate gni stuff
AR="ar" CC=$CC_FOR_BUILD CXX=$CXX_FOR_BUILD LD=$CXX_FOR_BUILD \
python2 tools/gn/bootstrap/bootstrap.py --skip-generate-buildfiles
tools/gn/bootstrap/bootstrap.py --skip-generate-buildfiles
# we need to generate ppc64 stuff for libvpx as it's not shipped
# this has to be done before unbundling, but after gn is built
@ -152,16 +152,14 @@ do_configure() {
done
# switch to system provided dependencies
python2 build/linux/unbundle/replace_gn_files.py --system-libraries ${system}
build/linux/unbundle/replace_gn_files.py --system-libraries ${system}
python2 third_party/libaddressinput/chromium/tools/update-strings.py
third_party/libaddressinput/chromium/tools/update-strings.py
# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
# Note: These are for Void Linux use ONLY.
conf+=(
'google_api_key="AIzaSyA9gWazKaHaNIPPg2hrMj6_ZSG8AFmq738"'
'google_default_client_id="126659149423-hoo6ickbk3p1u2qjsdsp0ddciurfvb4t.apps.googleusercontent.com"'
'google_default_client_secret="_ozIx2D-DKm_se_2NPwV4l5b"'
)
conf+=(
@ -199,6 +197,7 @@ do_configure() {
conf+=(
"rtc_use_pipewire=$(vopt_if pipewire true false)"
'rtc_pipewire_version="0.3"'
)
# Use explicit library dependencies instead of dlopen.