mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-18 22:54:00 +00:00
extra/chromium to 83.0.4103.61-1
This commit is contained in:
parent
590326342a
commit
1c4bc87a0c
12 changed files with 535 additions and 199 deletions
|
@ -15,8 +15,8 @@ buildarch=12
|
|||
highmem=1
|
||||
|
||||
pkgname=chromium
|
||||
pkgver=81.0.4044.138
|
||||
pkgrel=2.1
|
||||
pkgver=83.0.4103.61
|
||||
pkgrel=1
|
||||
_launcher_ver=6
|
||||
pkgdesc="A web browser built for speed, simplicity, and security"
|
||||
arch=('x86_64')
|
||||
|
@ -26,7 +26,8 @@ depends=('gtk3' 'nss' 'alsa-lib' 'xdg-utils' 'libxss' 'libcups' 'libgcrypt'
|
|||
'ttf-liberation' 'systemd' 'dbus' 'libpulse' 'pciutils' 'json-glib'
|
||||
'desktop-file-utils' 'hicolor-icon-theme')
|
||||
makedepends=('python' 'python2' 'gperf' 'yasm' 'mesa' 'ninja' 'nodejs' 'git'
|
||||
'libpipewire02' 'clang' 'lld' 'gn' 'java-runtime-headless')
|
||||
'libpipewire02' 'clang' 'lld' 'gn' 'java-runtime-headless'
|
||||
'python2-setuptools')
|
||||
optdepends=('libpipewire02: WebRTC desktop sharing under Wayland'
|
||||
'kdialog: needed for file dialogs in KDE'
|
||||
'org.freedesktop.secrets: password storage backend on GNOME / Xfce'
|
||||
|
@ -34,21 +35,29 @@ optdepends=('libpipewire02: WebRTC desktop sharing under Wayland'
|
|||
install=chromium.install
|
||||
source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.xz
|
||||
chromium-launcher-$_launcher_ver.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz
|
||||
rename-Relayout-in-DesktopWindowTreeHostPlatform.patch
|
||||
rebuild-Linux-frame-button-cache-when-activation.patch
|
||||
clean-up-a-call-to-set_utf8.patch
|
||||
icu67.patch
|
||||
chromium-widevine.patch
|
||||
iwyu-std-numeric_limits-is-defined-in-limits.patch
|
||||
add-missing-algorithm-header-in-crx_install_error.cc.patch
|
||||
libstdc-fix-incomplete-type-in-AXTree-for-NodeSetSiz.patch
|
||||
include-memory-header-to-get-the-definition-of-std-u.patch
|
||||
make-some-of-blink-custom-iterators-STL-compatible.patch
|
||||
avoid-double-destruction-of-ServiceWorkerObjectHost.patch
|
||||
v8-remove-soon-to-be-removed-getAllFieldPositions.patch
|
||||
chromium-83-gcc-10.patch
|
||||
chromium-skia-harmony.patch
|
||||
0001-crashpad-include-limits.patch
|
||||
chromium-81.0.4044.122-Fix-sandbox-Aw-snap-for-syscalls-403-and-407.patch)
|
||||
sha256sums=('f478f28b8111cb70231df4c36e754d812ad7a94b7c844e9d0515345a71fd77a6'
|
||||
sha256sums=('4961f20c4ee6a94490e823f1b1c4128147068f1ce9cfc509e81815f2101405bc'
|
||||
'04917e3cd4307d8e31bfb0027a5dce6d086edb10ff8a716024fbb8bb0c7dccf1'
|
||||
'ae3bf107834bd8eda9a3ec7899fe35fde62e6111062e5def7d24bf49b53db3db'
|
||||
'46f7fc9768730c460b27681ccf3dc2685c7e1fd22d70d3a82d9e57e3389bb014'
|
||||
'58c41713eb6fb33b6eef120f4324fa1fb8123b1fbc4ecbe5662f1f9779b9b6af'
|
||||
'5315977307e69d20b3e856d3f8724835b08e02085a4444a5c5cefea83fd7d006'
|
||||
'709e2fddba3c1f2ed4deb3a239fc0479bfa50c46e054e7f32db4fb1365fed070'
|
||||
'675fb3d6276cce569a641436465f58d5709d1d4a5f62b7052989479fd4aaea24'
|
||||
'0e2a78e4aa7272ab0ff4a4c467750e01bad692a026ad9828aaf06d2a9418b9d8'
|
||||
'50687079426094f2056d1f4806dc30fc8d6bad16190520e57ba087ec5db1d778'
|
||||
'071326135bc25226aa165639dff80a03670a17548f2d2ff5cc4f40982b39c52a'
|
||||
'3d7f20e1d2ee7d73ed25e708c0d59a0cb215fcce10a379e3d48a856533c4b0b7'
|
||||
'd793842e9584bf75e3779918297ba0ffa6dd05394ef5b2bf5fb73aa9c86a7e2f'
|
||||
'e042024423027ad3ef729a7e4709bdf9714aea49d64cfbbf46a645a05703abc2'
|
||||
'3e5ba8c0a70a4bc673deec0c61eb2b58f05a4c784cbdb7c8118be1eb6580db6d'
|
||||
'771292942c0901092a402cc60ee883877a99fb804cb54d568c8c6c94565a48e1'
|
||||
'df99f49ad58b70c9a3e1827d7e80b62e4363419334ed83373cf55b79c17b6f10'
|
||||
'4837f797a910795bf3161805a3302d5f3701573ca90da8af32b2f4aa62510d20')
|
||||
|
@ -111,19 +120,32 @@ prepare() {
|
|||
third_party/blink/renderer/core/xml/parser/xml_document_parser.cc \
|
||||
third_party/libxml/chromium/*.cc
|
||||
|
||||
# https://crbug.com/1049258
|
||||
patch -Np1 -i ../rename-Relayout-in-DesktopWindowTreeHostPlatform.patch
|
||||
patch -Np1 -i ../rebuild-Linux-frame-button-cache-when-activation.patch
|
||||
|
||||
# https://chromium-review.googlesource.com/c/chromium/src/+/2145261
|
||||
patch -Np1 -i ../clean-up-a-call-to-set_utf8.patch
|
||||
|
||||
# https://crbug.com/v8/10393
|
||||
patch -Np3 -d v8 <../icu67.patch
|
||||
# https://chromium-review.googlesource.com/c/chromium/src/+/2153111
|
||||
patch -Np1 -F3 -i ../iwyu-std-numeric_limits-is-defined-in-limits.patch
|
||||
|
||||
# Load bundled Widevine CDM if available (see chromium-widevine in the AUR)
|
||||
# M79 is supposed to download it as a component but it doesn't seem to work
|
||||
patch -Np1 -i ../chromium-widevine.patch
|
||||
# https://chromium-review.googlesource.com/c/chromium/src/+/2152333
|
||||
patch -Np1 -i ../add-missing-algorithm-header-in-crx_install_error.cc.patch
|
||||
|
||||
# https://chromium-review.googlesource.com/c/chromium/src/+/2132403
|
||||
patch -Np1 -i ../libstdc-fix-incomplete-type-in-AXTree-for-NodeSetSiz.patch
|
||||
|
||||
# https://chromium-review.googlesource.com/c/chromium/src/+/2164645
|
||||
patch -Np1 -i ../include-memory-header-to-get-the-definition-of-std-u.patch
|
||||
|
||||
# https://chromium-review.googlesource.com/c/chromium/src/+/2174199
|
||||
patch -Np1 -i ../make-some-of-blink-custom-iterators-STL-compatible.patch
|
||||
|
||||
# https://chromium-review.googlesource.com/c/chromium/src/+/2094496
|
||||
patch -Np1 -i ../avoid-double-destruction-of-ServiceWorkerObjectHost.patch
|
||||
|
||||
# https://crbug.com/v8/10393
|
||||
patch -Np1 -d v8 <../v8-remove-soon-to-be-removed-getAllFieldPositions.patch
|
||||
|
||||
# Fixes from Gentoo
|
||||
patch -Np1 -i ../chromium-83-gcc-10.patch
|
||||
|
||||
# https://crbug.com/skia/6663#c10
|
||||
patch -Np0 -i ../chromium-skia-harmony.patch
|
||||
|
@ -142,6 +164,7 @@ prepare() {
|
|||
find "third_party/$_lib" -type f \
|
||||
\! -path "third_party/$_lib/chromium/*" \
|
||||
\! -path "third_party/$_lib/google/*" \
|
||||
\! -path "third_party/harfbuzz-ng/utils/hb_scoped.h" \
|
||||
\! -path 'third_party/yasm/run_yasm.py' \
|
||||
\! -regex '.*\.\(gn\|gni\|isolate\)' \
|
||||
-delete
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
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
|
||||
--- a/extensions/browser/install/crx_install_error.cc
|
||||
+++ b/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"
|
||||
|
|
@ -0,0 +1,138 @@
|
|||
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
|
||||
--- a/content/browser/service_worker/service_worker_container_host.cc
|
||||
+++ b/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
|
||||
--- a/content/browser/service_worker/service_worker_object_host_unittest.cc
|
||||
+++ b/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
|
64
extra/chromium/chromium-83-gcc-10.patch
Normal file
64
extra/chromium/chromium-83-gcc-10.patch
Normal file
|
@ -0,0 +1,64 @@
|
|||
From e473f41284ccc8fa4bc4622d087194b18a1ec23a Mon Sep 17 00:00:00 2001
|
||||
From: Stephan Hartmann <stha09@googlemail.com>
|
||||
Date: Tue, 7 Apr 2020 16:37:10 +0000
|
||||
Subject: [PATCH] GCC: fix includes for gcc-10
|
||||
|
||||
---
|
||||
chrome/browser/search/background/ntp_backgrounds.h | 1 +
|
||||
third_party/webrtc/call/rtx_receive_stream.h | 1 +
|
||||
.../webrtc/modules/audio_processing/aec3/clockdrift_detector.h | 1 +
|
||||
ui/gfx/linux/drm_util_linux.h | 2 ++
|
||||
5 files changed, 6 insertions(+)
|
||||
|
||||
diff --git a/chrome/browser/search/background/ntp_backgrounds.h b/chrome/browser/search/background/ntp_backgrounds.h
|
||||
index 7afc0a2..ea5818e 100644
|
||||
--- a/chrome/browser/search/background/ntp_backgrounds.h
|
||||
+++ b/chrome/browser/search/background/ntp_backgrounds.h
|
||||
@@ -6,6 +6,7 @@
|
||||
#define CHROME_BROWSER_SEARCH_BACKGROUND_NTP_BACKGROUNDS_H_
|
||||
|
||||
#include <array>
|
||||
+#include <cstddef>
|
||||
|
||||
class GURL;
|
||||
|
||||
diff --git a/third_party/webrtc/call/rtx_receive_stream.h b/third_party/webrtc/call/rtx_receive_stream.h
|
||||
index 8ffa440..113a816 100644
|
||||
--- a/third_party/webrtc/call/rtx_receive_stream.h
|
||||
+++ b/third_party/webrtc/call/rtx_receive_stream.h
|
||||
@@ -12,6 +12,7 @@
|
||||
#define CALL_RTX_RECEIVE_STREAM_H_
|
||||
|
||||
#include <map>
|
||||
+#include <cstdint>
|
||||
|
||||
#include "call/rtp_packet_sink_interface.h"
|
||||
|
||||
diff --git a/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h b/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
|
||||
index 22528c9..69e624e 100644
|
||||
--- a/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
|
||||
+++ b/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
|
||||
@@ -12,6 +12,7 @@
|
||||
#define MODULES_AUDIO_PROCESSING_AEC3_CLOCKDRIFT_DETECTOR_H_
|
||||
|
||||
#include <array>
|
||||
+#include <cstddef>
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
diff --git a/ui/gfx/linux/drm_util_linux.h b/ui/gfx/linux/drm_util_linux.h
|
||||
index 86ff2eb..990f12c 100644
|
||||
--- a/ui/gfx/linux/drm_util_linux.h
|
||||
+++ b/ui/gfx/linux/drm_util_linux.h
|
||||
@@ -7,6 +7,8 @@
|
||||
|
||||
#include "ui/gfx/buffer_types.h"
|
||||
|
||||
+#include <cstdint>
|
||||
+
|
||||
namespace ui {
|
||||
|
||||
int GetFourCCFormatFromBufferFormat(gfx::BufferFormat format);
|
||||
--
|
||||
2.24.1
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
diff --git a/third_party/widevine/cdm/BUILD.gn b/third_party/widevine/cdm/BUILD.gn
|
||||
index ed0e2f5208b..5b431a030d5 100644
|
||||
--- a/third_party/widevine/cdm/BUILD.gn
|
||||
+++ b/third_party/widevine/cdm/BUILD.gn
|
||||
@@ -14,7 +14,7 @@ buildflag_header("buildflags") {
|
||||
|
||||
flags = [
|
||||
"ENABLE_WIDEVINE=$enable_widevine",
|
||||
- "BUNDLE_WIDEVINE_CDM=$bundle_widevine_cdm",
|
||||
+ "BUNDLE_WIDEVINE_CDM=true",
|
||||
"ENABLE_WIDEVINE_CDM_COMPONENT=$enable_widevine_cdm_component",
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
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
|
||||
--- a/third_party/blink/renderer/core/html/trust_token_attribute_parsing.h
|
||||
+++ b/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"
|
|
@ -0,0 +1,29 @@
|
|||
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
|
||||
--- 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
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.h"
|
||||
|
||||
#include <math.h>
|
||||
+#include <limits>
|
||||
|
||||
#include "base/logging.h"
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
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
|
||||
--- a/ui/accessibility/ax_tree.cc
|
||||
+++ b/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
|
||||
--- a/ui/accessibility/ax_tree.h
|
||||
+++ b/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.
|
|
@ -0,0 +1,95 @@
|
|||
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
|
||||
--- 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
|
||||
@@ -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
|
||||
--- a/third_party/blink/renderer/platform/wtf/hash_iterators.h
|
||||
+++ b/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
|
||||
--- a/third_party/blink/renderer/platform/wtf/hash_table.h
|
||||
+++ b/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)
|
|
@ -1,62 +0,0 @@
|
|||
From d10f885b9327399be9348b780967ebd6b7f2c4bc Mon Sep 17 00:00:00 2001
|
||||
From: Tom Anderson <thomasanderson@chromium.org>
|
||||
Date: Fri, 7 Feb 2020 22:44:54 +0000
|
||||
Subject: [PATCH] Rebuild Linux frame button cache when activation state
|
||||
changes
|
||||
|
||||
This fixes an issue where the frame buttons would always render in an
|
||||
inactive state on Linux (see repro steps in bug 1049258).
|
||||
|
||||
Bug: 1049258
|
||||
R=sky
|
||||
CC=pkasting
|
||||
|
||||
Change-Id: Ic5af33199003e1d1cdf6cedf506e32388ea11fa9
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2044538
|
||||
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
|
||||
Commit-Queue: Scott Violet <sky@chromium.org>
|
||||
Reviewed-by: Scott Violet <sky@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/master@{#739585}
|
||||
---
|
||||
.../ui/views/frame/desktop_linux_browser_frame_view.cc | 6 +++---
|
||||
.../desktop_aura/desktop_window_tree_host_platform.cc | 3 +++
|
||||
2 files changed, 6 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc b/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc
|
||||
index 954e776057f..4f579955675 100644
|
||||
--- a/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc
|
||||
+++ b/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc
|
||||
@@ -22,13 +22,13 @@ DesktopLinuxBrowserFrameView::DesktopLinuxBrowserFrameView(
|
||||
: OpaqueBrowserFrameView(frame, browser_view, layout),
|
||||
nav_button_provider_(std::move(nav_button_provider)) {}
|
||||
|
||||
-DesktopLinuxBrowserFrameView::~DesktopLinuxBrowserFrameView() {}
|
||||
+DesktopLinuxBrowserFrameView::~DesktopLinuxBrowserFrameView() = default;
|
||||
|
||||
void DesktopLinuxBrowserFrameView::Layout() {
|
||||
// Calling MaybeUpdateCachedFrameButtonImages() from Layout() is sufficient to
|
||||
// catch all cases that could update the appearance, since
|
||||
- // DesktopWindowTreeHostPlatform::OnWindowStateChanged() does a layout any
|
||||
- // time any properties change.
|
||||
+ // DesktopWindowTreeHostPlatform::On{Window,Activation}StateChanged() does a
|
||||
+ // layout any time the maximized and activation state changes, respectively.
|
||||
MaybeUpdateCachedFrameButtonImages();
|
||||
OpaqueBrowserFrameView::Layout();
|
||||
}
|
||||
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
|
||||
index 9c695d8e5b1..9662f19aa90 100644
|
||||
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
|
||||
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
|
||||
@@ -677,9 +677,12 @@ void DesktopWindowTreeHostPlatform::OnCloseRequest() {
|
||||
}
|
||||
|
||||
void DesktopWindowTreeHostPlatform::OnActivationChanged(bool active) {
|
||||
+ if (is_active_ == active)
|
||||
+ return;
|
||||
is_active_ = active;
|
||||
aura::WindowTreeHostPlatform::OnActivationChanged(active);
|
||||
desktop_native_widget_aura_->HandleActivationChanged(active);
|
||||
+ ScheduleRelayout();
|
||||
}
|
||||
|
||||
base::Optional<gfx::Size>
|
|
@ -1,64 +0,0 @@
|
|||
From 5a2cd2409c7d65c019ad9f4595a4e85315857ac4 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Anderson <thomasanderson@chromium.org>
|
||||
Date: Mon, 3 Feb 2020 23:18:46 +0000
|
||||
Subject: [PATCH] Rename Relayout() in DesktopWindowTreeHostPlatform to
|
||||
ScheduleRelayout()
|
||||
|
||||
R=sky
|
||||
|
||||
Bug: None
|
||||
Change-Id: I680cafd25935e59a280e3b2baac754d3d5f13a35
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2036553
|
||||
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
|
||||
Reviewed-by: Scott Violet <sky@chromium.org>
|
||||
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/master@{#737974}
|
||||
---
|
||||
.../desktop_aura/desktop_window_tree_host_platform.cc | 6 +++---
|
||||
.../widget/desktop_aura/desktop_window_tree_host_platform.h | 2 +-
|
||||
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
|
||||
index 6c00d49eb3f..9c695d8e5b1 100644
|
||||
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
|
||||
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
|
||||
@@ -556,7 +556,7 @@ void DesktopWindowTreeHostPlatform::SetFullscreen(bool fullscreen) {
|
||||
DCHECK_EQ(fullscreen, IsFullscreen());
|
||||
|
||||
if (IsFullscreen() == fullscreen)
|
||||
- Relayout();
|
||||
+ ScheduleRelayout();
|
||||
// Else: the widget will be relaid out either when the window bounds change
|
||||
// or when |platform_window|'s fullscreen state changes.
|
||||
}
|
||||
@@ -669,7 +669,7 @@ void DesktopWindowTreeHostPlatform::OnWindowStateChanged(
|
||||
// Now that we have different window properties, we may need to relayout the
|
||||
// window. (The windows code doesn't need this because their window change is
|
||||
// synchronous.)
|
||||
- Relayout();
|
||||
+ ScheduleRelayout();
|
||||
}
|
||||
|
||||
void DesktopWindowTreeHostPlatform::OnCloseRequest() {
|
||||
@@ -712,7 +712,7 @@ gfx::Rect DesktopWindowTreeHostPlatform::ToPixelRect(
|
||||
return gfx::ToEnclosingRect(rect_in_pixels);
|
||||
}
|
||||
|
||||
-void DesktopWindowTreeHostPlatform::Relayout() {
|
||||
+void DesktopWindowTreeHostPlatform::ScheduleRelayout() {
|
||||
Widget* widget = native_widget_delegate_->AsWidget();
|
||||
NonClientView* non_client_view = widget->non_client_view();
|
||||
// non_client_view may be NULL, especially during creation.
|
||||
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.h b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.h
|
||||
index 89beb8d2245..75a401e02a7 100644
|
||||
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.h
|
||||
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.h
|
||||
@@ -129,7 +129,7 @@ class VIEWS_EXPORT DesktopWindowTreeHostPlatform
|
||||
gfx::Rect ToPixelRect(const gfx::Rect& rect_in_dip) const;
|
||||
|
||||
private:
|
||||
- void Relayout();
|
||||
+ void ScheduleRelayout();
|
||||
|
||||
Widget* GetWidget();
|
||||
const Widget* GetWidget() const;
|
|
@ -1,32 +1,25 @@
|
|||
From 2b107e7670ffb43719a66ee4a55ab408a5dcf2a5 Mon Sep 17 00:00:00 2001
|
||||
From: Ujjwal Sharma <ryzokuken@disroot.org>
|
||||
Date: Wed, 22 Apr 2020 12:20:17 +0530
|
||||
Subject: [PATCH] deps: V8: backport 3f8dc4b2e5ba
|
||||
From 3f8dc4b2e5baf77b463334c769af85b79d8c1463 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Tang <ftang@chromium.org>
|
||||
Date: Fri, 3 Apr 2020 23:13:54 -0700
|
||||
Subject: [PATCH] [intl] Remove soon-to-be removed getAllFieldPositions
|
||||
|
||||
Original commit message:
|
||||
Needed to land ICU67.1 soon.
|
||||
|
||||
[intl] Remove soon-to-be removed getAllFieldPositions
|
||||
|
||||
Needed to land ICU67.1 soon.
|
||||
|
||||
Bug: v8:10393
|
||||
Change-Id: I3c7737ca600d6ccfdc46ffaddfb318ce60bc7618
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2136489
|
||||
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
|
||||
Commit-Queue: Frank Tang <ftang@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/master@{#67027}
|
||||
|
||||
Refs: https://github.com/v8/v8/commit/3f8dc4b2e5baf77b463334c769af85b79d8c1463
|
||||
Bug: v8:10393
|
||||
Change-Id: I3c7737ca600d6ccfdc46ffaddfb318ce60bc7618
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2136489
|
||||
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
|
||||
Commit-Queue: Frank Tang <ftang@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/master@{#67027}
|
||||
---
|
||||
common.gypi | 2 +-
|
||||
deps/v8/src/objects/js-number-format.cc | 72 +++++++++++++------------
|
||||
2 files changed, 38 insertions(+), 36 deletions(-)
|
||||
src/objects/js-number-format.cc | 77 +++++++++++++++++----------------
|
||||
1 file changed, 39 insertions(+), 38 deletions(-)
|
||||
|
||||
diff --git a/deps/v8/src/objects/js-number-format.cc b/deps/v8/src/objects/js-number-format.cc
|
||||
index 92d3e2fb82e..ced408aa173 100644
|
||||
--- a/deps/v8/src/objects/js-number-format.cc
|
||||
+++ b/deps/v8/src/objects/js-number-format.cc
|
||||
@@ -1197,42 +1197,31 @@ MaybeHandle<JSNumberFormat> JSNumberFormat::New(Isolate* isolate,
|
||||
diff --git a/src/objects/js-number-format.cc b/src/objects/js-number-format.cc
|
||||
index ad831c5c36..bcd44031d5 100644
|
||||
--- a/src/objects/js-number-format.cc
|
||||
+++ b/src/objects/js-number-format.cc
|
||||
@@ -1241,44 +1241,33 @@ MaybeHandle<JSNumberFormat> JSNumberFormat::New(Isolate* isolate,
|
||||
}
|
||||
|
||||
namespace {
|
||||
|
@ -50,7 +43,9 @@ index 92d3e2fb82e..ced408aa173 100644
|
|||
+ *formatted = number_format.formatDecimal(
|
||||
{big_int_string->ToCString().get(), big_int_string->length()}, status);
|
||||
} else {
|
||||
double number = numeric_obj->Number();
|
||||
double number = numeric_obj->IsNaN()
|
||||
? std::numeric_limits<double>::quiet_NaN()
|
||||
: numeric_obj->Number();
|
||||
- formatted = number_format.formatDouble(number, status);
|
||||
+ *formatted = number_format.formatDouble(number, status);
|
||||
}
|
||||
|
@ -63,21 +58,21 @@ index 92d3e2fb82e..ced408aa173 100644
|
|||
- }
|
||||
- if (fp_iter) {
|
||||
- formatted.getAllFieldPositions(*fp_iter, status);
|
||||
+ THROW_NEW_ERROR_RETURN_VALUE(
|
||||
+ isolate, NewTypeError(MessageTemplate::kIcuError), Nothing<bool>());
|
||||
}
|
||||
- }
|
||||
- icu::UnicodeString result = formatted.toString(status);
|
||||
- if (U_FAILURE(status)) {
|
||||
- THROW_NEW_ERROR_RETURN_VALUE(isolate,
|
||||
- NewTypeError(MessageTemplate::kIcuError),
|
||||
- Nothing<icu::UnicodeString>());
|
||||
- }
|
||||
+ THROW_NEW_ERROR_RETURN_VALUE(
|
||||
+ isolate, NewTypeError(MessageTemplate::kIcuError), Nothing<bool>());
|
||||
}
|
||||
- return Just(result);
|
||||
+ return Just(true);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
@@ -1243,10 +1232,16 @@ MaybeHandle<String> JSNumberFormat::FormatNumeric(
|
||||
@@ -1289,10 +1278,16 @@ MaybeHandle<String> JSNumberFormat::FormatNumeric(
|
||||
Handle<Object> numeric_obj) {
|
||||
DCHECK(numeric_obj->IsNumeric());
|
||||
|
||||
|
@ -97,7 +92,7 @@ index 92d3e2fb82e..ced408aa173 100644
|
|||
}
|
||||
|
||||
namespace {
|
||||
@@ -1359,12 +1354,18 @@ std::vector<NumberFormatSpan> FlattenRegionsToParts(
|
||||
@@ -1405,12 +1400,18 @@ std::vector<NumberFormatSpan> FlattenRegionsToParts(
|
||||
}
|
||||
|
||||
namespace {
|
||||
|
@ -119,7 +114,7 @@ index 92d3e2fb82e..ced408aa173 100644
|
|||
int index = start_index;
|
||||
if (length == 0) return Just(index);
|
||||
|
||||
@@ -1373,13 +1374,14 @@ Maybe<int> ConstructParts(Isolate* isolate, const icu::UnicodeString& formatted,
|
||||
@@ -1419,13 +1420,14 @@ Maybe<int> ConstructParts(Isolate* isolate, const icu::UnicodeString& formatted,
|
||||
// other region covers some part of the formatted string. It's possible
|
||||
// there's another field with exactly the same begin and end as this backdrop,
|
||||
// in which case the backdrop's field_id of -1 will give it lower priority.
|
||||
|
@ -139,7 +134,7 @@ index 92d3e2fb82e..ced408aa173 100644
|
|||
}
|
||||
}
|
||||
|
||||
@@ -1401,7 +1403,7 @@ Maybe<int> ConstructParts(Isolate* isolate, const icu::UnicodeString& formatted,
|
||||
@@ -1447,7 +1449,7 @@ Maybe<int> ConstructParts(Isolate* isolate, const icu::UnicodeString& formatted,
|
||||
Handle<String> substring;
|
||||
ASSIGN_RETURN_ON_EXCEPTION_VALUE(
|
||||
isolate, substring,
|
||||
|
@ -148,7 +143,7 @@ index 92d3e2fb82e..ced408aa173 100644
|
|||
Nothing<int>());
|
||||
Intl::AddElement(isolate, result, index, field_type_string, substring);
|
||||
++index;
|
||||
@@ -1421,14 +1423,14 @@ MaybeHandle<JSArray> JSNumberFormat::FormatToParts(
|
||||
@@ -1467,20 +1469,19 @@ MaybeHandle<JSArray> JSNumberFormat::FormatToParts(
|
||||
number_format->icu_number_formatter().raw();
|
||||
CHECK_NOT_NULL(fmt);
|
||||
|
||||
|
@ -159,11 +154,19 @@ index 92d3e2fb82e..ced408aa173 100644
|
|||
+ Maybe<bool> maybe_format =
|
||||
+ IcuFormatNumber(isolate, *fmt, numeric_obj, &formatted);
|
||||
MAYBE_RETURN(maybe_format, Handle<JSArray>());
|
||||
-
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
+
|
||||
bool style_is_unit =
|
||||
Style::UNIT == StyleFromSkeleton(fmt->toSkeleton(status));
|
||||
CHECK(U_SUCCESS(status));
|
||||
|
||||
Handle<JSArray> result = factory->NewJSArray(0);
|
||||
Maybe<int> maybe_format_to_parts = ConstructParts(
|
||||
- isolate, maybe_format.FromJust(), &fp_iter, result, 0, numeric_obj,
|
||||
+ isolate, &formatted, result, 0, numeric_obj,
|
||||
number_format->style() == JSNumberFormat::Style::UNIT);
|
||||
- Maybe<int> maybe_format_to_parts =
|
||||
- ConstructParts(isolate, maybe_format.FromJust(), &fp_iter, result, 0,
|
||||
- numeric_obj, style_is_unit);
|
||||
+ Maybe<int> maybe_format_to_parts = ConstructParts(
|
||||
+ isolate, &formatted, result, 0, numeric_obj, style_is_unit);
|
||||
MAYBE_RETURN(maybe_format_to_parts, Handle<JSArray>());
|
||||
|
||||
return result;
|
Loading…
Reference in a new issue