chromium-browser 89.0.4389.90
This commit is contained in:
@@ -30,11 +30,12 @@ def setup():
|
|||||||
shelltools.system("sed -i -e 's/\<xmlMalloc\>/malloc/' -e 's/\<xmlFree\>/free/' \
|
shelltools.system("sed -i -e 's/\<xmlMalloc\>/malloc/' -e 's/\<xmlFree\>/free/' \
|
||||||
third_party/blink/renderer/core/xml/*.cc \
|
third_party/blink/renderer/core/xml/*.cc \
|
||||||
third_party/blink/renderer/core/xml/parser/xml_document_parser.cc \
|
third_party/blink/renderer/core/xml/parser/xml_document_parser.cc \
|
||||||
third_party/libxml/chromium/libxml_utils.cc")
|
third_party/libxml/chromium/libxml_utils.cc")
|
||||||
|
|
||||||
opt = 'custom_toolchain="//build/toolchain/linux/unbundle:default" \
|
opt = 'custom_toolchain="//build/toolchain/linux/unbundle:default" \
|
||||||
host_toolchain="//build/toolchain/linux/unbundle:default" \
|
host_toolchain="//build/toolchain/linux/unbundle:default" \
|
||||||
use_sysroot=false \
|
use_sysroot=false \
|
||||||
|
chrome_pgo_phase=0 \
|
||||||
enable_nacl=true \
|
enable_nacl=true \
|
||||||
enable_nacl_nonsfi=true \
|
enable_nacl_nonsfi=true \
|
||||||
rtc_use_pipewire=true \
|
rtc_use_pipewire=true \
|
||||||
|
|||||||
@@ -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
|
||||||
|
--- a/third_party/blink/renderer/modules/webcodecs/BUILD.gn
|
||||||
|
+++ b/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
|
||||||
|
--- a/third_party/blink/renderer/modules/webcodecs/DEPS
|
||||||
|
+++ b/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",
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h
|
||||||
|
index e3130c7..2ad16ea 100644
|
||||||
|
--- a/components/cast_channel/enum_table.h
|
||||||
|
+++ b/components/cast_channel/enum_table.h
|
||||||
|
@@ -212,7 +212,7 @@ class
|
||||||
|
|
||||||
|
template <typename E>
|
||||||
|
friend class EnumTable;
|
||||||
|
- DISALLOW_COPY_AND_ASSIGN(GenericEnumTableEntry);
|
||||||
|
+ DISALLOW_ASSIGN(GenericEnumTableEntry);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Yes, these constructors really needs to be inlined. Even though they look
|
||||||
|
@@ -250,8 +250,7 @@ class EnumTable {
|
||||||
|
// Constructor for regular entries.
|
||||||
|
constexpr Entry(E value, base::StringPiece str)
|
||||||
|
: GenericEnumTableEntry(static_cast<int32_t>(value), str) {}
|
||||||
|
-
|
||||||
|
- DISALLOW_COPY_AND_ASSIGN(Entry);
|
||||||
|
+ DISALLOW_ASSIGN(Entry);
|
||||||
|
};
|
||||||
|
|
||||||
|
static_assert(sizeof(E) <= sizeof(int32_t),
|
||||||
|
@@ -306,15 +305,14 @@ class EnumTable {
|
||||||
|
if (is_sorted_) {
|
||||||
|
const std::size_t index = static_cast<std::size_t>(value);
|
||||||
|
if (ANALYZER_ASSUME_TRUE(index < data_.size())) {
|
||||||
|
- const auto& entry = data_.begin()[index];
|
||||||
|
+ const auto& entry = data_[index];
|
||||||
|
if (ANALYZER_ASSUME_TRUE(entry.has_str()))
|
||||||
|
return entry.str();
|
||||||
|
}
|
||||||
|
return base::nullopt;
|
||||||
|
}
|
||||||
|
return GenericEnumTableEntry::FindByValue(
|
||||||
|
- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
|
||||||
|
- data_.size(), static_cast<int32_t>(value));
|
||||||
|
+ &data_[0], data_.size(), static_cast<int32_t>(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
// This overload of GetString is designed for cases where the argument is a
|
||||||
|
@@ -342,8 +340,7 @@ class EnumTable {
|
||||||
|
// enum value directly.
|
||||||
|
base::Optional<E> GetEnum(base::StringPiece str) const {
|
||||||
|
auto* entry = GenericEnumTableEntry::FindByString(
|
||||||
|
- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
|
||||||
|
- data_.size(), str);
|
||||||
|
+ &data_[0], data_.size(), str);
|
||||||
|
return entry ? static_cast<E>(entry->value) : base::Optional<E>();
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -358,7 +355,7 @@ class EnumTable {
|
||||||
|
// Align the data on a cache line boundary.
|
||||||
|
alignas(64)
|
||||||
|
#endif
|
||||||
|
- std::initializer_list<Entry> data_;
|
||||||
|
+ const std::vector<Entry> data_;
|
||||||
|
bool is_sorted_;
|
||||||
|
|
||||||
|
constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted)
|
||||||
|
@@ -370,8 +367,8 @@ class EnumTable {
|
||||||
|
|
||||||
|
for (std::size_t i = 0; i < data.size(); i++) {
|
||||||
|
for (std::size_t j = i + 1; j < data.size(); j++) {
|
||||||
|
- const Entry& ei = data.begin()[i];
|
||||||
|
- const Entry& ej = data.begin()[j];
|
||||||
|
+ const Entry& ei = data[i];
|
||||||
|
+ const Entry& ej = data[j];
|
||||||
|
DCHECK(ei.value != ej.value)
|
||||||
|
<< "Found duplicate enum values at indices " << i << " and " << j;
|
||||||
|
DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str()))
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
--- third_party/skia/src/ports/SkFontHost_FreeType.cpp.orig 2019-07-19 11:08:34.770972665 +0000
|
|
||||||
+++ third_party/skia/src/ports/SkFontHost_FreeType.cpp 2019-07-19 11:08:44.274442065 +0000
|
|
||||||
@@ -128,9 +128,9 @@ public:
|
|
||||||
: fGetVarDesignCoordinates(nullptr)
|
|
||||||
, fGetVarAxisFlags(nullptr)
|
|
||||||
, fLibrary(nullptr)
|
|
||||||
- , fIsLCDSupported(false)
|
|
||||||
+ , fIsLCDSupported(true)
|
|
||||||
, fLightHintingIsYOnly(false)
|
|
||||||
- , fLCDExtra(0)
|
|
||||||
+ , fLCDExtra(2)
|
|
||||||
{
|
|
||||||
if (FT_New_Library(&gFTMemory, &fLibrary)) {
|
|
||||||
return;
|
|
||||||
@@ -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",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
-35
@@ -1,35 +0,0 @@
|
|||||||
From 8273f4d3130e06fd8b6bef87b07c936304b971d9 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
|
|
||||||
Date: Tue, 10 Dec 2019 20:59:57 +0000
|
|
||||||
Subject: [PATCH] [cros search service]: Include <cmath> for std::pow()
|
|
||||||
|
|
||||||
IWYU. Follow up to commit 2b2ea3c09b ("[cros search service] Move shared
|
|
||||||
string matching functions to //chrome"), which broke the libstdc++ build:
|
|
||||||
|
|
||||||
../../chrome/common/string_matching/fuzzy_tokenized_string_match.cc:199:14: error: no member named 'pow' in namespace 'std'
|
|
||||||
std::pow(partial_match_penalty_rate, long_start - current - 1);
|
|
||||||
~~~~~^
|
|
||||||
|
|
||||||
Bug: 957519
|
|
||||||
Change-Id: I66f61cb4f93cfa0bfa3d1b00ba391ddd8f31a7fb
|
|
||||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1960310
|
|
||||||
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
|
|
||||||
Reviewed-by: Jia Meng <jiameng@chromium.org>
|
|
||||||
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
|
|
||||||
Cr-Commit-Position: refs/heads/master@{#723499}
|
|
||||||
---
|
|
||||||
chrome/common/string_matching/fuzzy_tokenized_string_match.cc | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/chrome/common/string_matching/fuzzy_tokenized_string_match.cc b/chrome/common/string_matching/fuzzy_tokenized_string_match.cc
|
|
||||||
index 8351fa701e4..884ef638c61 100644
|
|
||||||
--- a/chrome/common/string_matching/fuzzy_tokenized_string_match.cc
|
|
||||||
+++ b/chrome/common/string_matching/fuzzy_tokenized_string_match.cc
|
|
||||||
@@ -5,6 +5,7 @@
|
|
||||||
#include "chrome/common/string_matching/fuzzy_tokenized_string_match.h"
|
|
||||||
|
|
||||||
#include <algorithm>
|
|
||||||
+#include <cmath>
|
|
||||||
#include <iterator>
|
|
||||||
|
|
||||||
#include "base/i18n/case_conversion.h"
|
|
||||||
@@ -1,127 +0,0 @@
|
|||||||
From d3afade220ddb307e16a6dd4f2b0ec88b2af91e7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Date: Tue, 28 Jan 2020 18:16:54 +0000
|
|
||||||
Subject: [PATCH] Fix building with unbundled libxml
|
|
||||||
|
|
||||||
Add new targets to libxml.gn that were added in
|
|
||||||
https://chromium-review.googlesource.com/c/chromium/src/+/1894877
|
|
||||||
Adjust includes to use system libxml headers too
|
|
||||||
|
|
||||||
Bug: 1043042
|
|
||||||
Change-Id: I948c063e212e49b9e7f42fed2b8bf7f4af042ca7
|
|
||||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2007110
|
|
||||||
Reviewed-by: Robert Sesek <rsesek@chromium.org>
|
|
||||||
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
|
|
||||||
Reviewed-by: Nico Weber <thakis@chromium.org>
|
|
||||||
Commit-Queue: Robert Sesek <rsesek@chromium.org>
|
|
||||||
Cr-Commit-Position: refs/heads/master@{#735957}
|
|
||||||
---
|
|
||||||
build/linux/unbundle/libxml.gn | 41 ++++++++++++++++++++--
|
|
||||||
third_party/libxml/chromium/libxml_utils.h | 4 +--
|
|
||||||
third_party/libxml/chromium/xml_reader.cc | 3 +-
|
|
||||||
third_party/libxml/chromium/xml_writer.cc | 3 +-
|
|
||||||
4 files changed, 45 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/build/linux/unbundle/libxml.gn b/build/linux/unbundle/libxml.gn
|
|
||||||
index c481bd3547b..3587881eea8 100644
|
|
||||||
--- a/build/linux/unbundle/libxml.gn
|
|
||||||
+++ b/build/linux/unbundle/libxml.gn
|
|
||||||
@@ -8,11 +8,48 @@ pkg_config("system_libxml") {
|
|
||||||
packages = [ "libxml-2.0" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
-static_library("libxml") {
|
|
||||||
+source_set("libxml") {
|
|
||||||
+ public_configs = [ ":system_libxml" ]
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static_library("libxml_utils") {
|
|
||||||
+ # Do not expand this visibility list without first consulting with the
|
|
||||||
+ # Security Team.
|
|
||||||
+ visibility = [
|
|
||||||
+ ":xml_reader",
|
|
||||||
+ ":xml_writer",
|
|
||||||
+ "//base/test:test_support",
|
|
||||||
+ "//services/data_decoder:xml_parser_fuzzer",
|
|
||||||
+ ]
|
|
||||||
sources = [
|
|
||||||
"chromium/libxml_utils.cc",
|
|
||||||
"chromium/libxml_utils.h",
|
|
||||||
]
|
|
||||||
-
|
|
||||||
public_configs = [ ":system_libxml" ]
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+static_library("xml_reader") {
|
|
||||||
+ # Do not expand this visibility list without first consulting with the
|
|
||||||
+ # Security Team.
|
|
||||||
+ visibility = [
|
|
||||||
+ "//base/test:test_support",
|
|
||||||
+ "//components/policy/core/common:unit_tests",
|
|
||||||
+ "//services/data_decoder:*",
|
|
||||||
+ "//tools/traffic_annotation/auditor:auditor_sources",
|
|
||||||
+ ]
|
|
||||||
+ sources = [
|
|
||||||
+ "chromium/xml_reader.cc",
|
|
||||||
+ "chromium/xml_reader.h",
|
|
||||||
+ ]
|
|
||||||
+ deps = [ ":libxml_utils" ]
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static_library("xml_writer") {
|
|
||||||
+ # The XmlWriter is considered safe to use from any target.
|
|
||||||
+ visibility = [ "*" ]
|
|
||||||
+ sources = [
|
|
||||||
+ "chromium/xml_writer.cc",
|
|
||||||
+ "chromium/xml_writer.h",
|
|
||||||
+ ]
|
|
||||||
+ deps = [ ":libxml_utils" ]
|
|
||||||
+}
|
|
||||||
diff --git a/third_party/libxml/chromium/libxml_utils.h b/third_party/libxml/chromium/libxml_utils.h
|
|
||||||
index ff969fab540..8b2383f9c8b 100644
|
|
||||||
--- a/third_party/libxml/chromium/libxml_utils.h
|
|
||||||
+++ b/third_party/libxml/chromium/libxml_utils.h
|
|
||||||
@@ -5,9 +5,9 @@
|
|
||||||
#ifndef THIRD_PARTY_LIBXML_CHROMIUM_LIBXML_UTILS_H_
|
|
||||||
#define THIRD_PARTY_LIBXML_CHROMIUM_LIBXML_UTILS_H_
|
|
||||||
|
|
||||||
-#include <string>
|
|
||||||
+#include <libxml/xmlreader.h>
|
|
||||||
|
|
||||||
-#include "third_party/libxml/src/include/libxml/xmlreader.h"
|
|
||||||
+#include <string>
|
|
||||||
|
|
||||||
// libxml uses a global error function pointer for reporting errors.
|
|
||||||
// A ScopedXmlErrorFunc object lets you change the global error pointer
|
|
||||||
diff --git a/third_party/libxml/chromium/xml_reader.cc b/third_party/libxml/chromium/xml_reader.cc
|
|
||||||
index 92464f4cbcc..899ccefb7c8 100644
|
|
||||||
--- a/third_party/libxml/chromium/xml_reader.cc
|
|
||||||
+++ b/third_party/libxml/chromium/xml_reader.cc
|
|
||||||
@@ -4,10 +4,11 @@
|
|
||||||
|
|
||||||
#include "third_party/libxml/chromium/xml_reader.h"
|
|
||||||
|
|
||||||
+#include <libxml/xmlreader.h>
|
|
||||||
+
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
#include "third_party/libxml/chromium/libxml_utils.h"
|
|
||||||
-#include "third_party/libxml/src/include/libxml/xmlreader.h"
|
|
||||||
|
|
||||||
using internal::XmlStringToStdString;
|
|
||||||
|
|
||||||
diff --git a/third_party/libxml/chromium/xml_writer.cc b/third_party/libxml/chromium/xml_writer.cc
|
|
||||||
index 51fce8ebeb1..7c58031fe2d 100644
|
|
||||||
--- a/third_party/libxml/chromium/xml_writer.cc
|
|
||||||
+++ b/third_party/libxml/chromium/xml_writer.cc
|
|
||||||
@@ -4,8 +4,9 @@
|
|
||||||
|
|
||||||
#include "third_party/libxml/chromium/xml_writer.h"
|
|
||||||
|
|
||||||
+#include <libxml/xmlwriter.h>
|
|
||||||
+
|
|
||||||
#include "third_party/libxml/chromium/libxml_utils.h"
|
|
||||||
-#include "third_party/libxml/src/include/libxml/xmlwriter.h"
|
|
||||||
|
|
||||||
XmlWriter::XmlWriter() : writer_(nullptr), buffer_(nullptr) {}
|
|
||||||
|
|
||||||
-50
@@ -1,50 +0,0 @@
|
|||||||
From dcad5af090528018599277dc5d7e160fb6b2d68e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Date: Wed, 15 Jan 2020 20:26:40 +0000
|
|
||||||
Subject: [PATCH] Fix shim header generation when unbundling ICU
|
|
||||||
|
|
||||||
listformatter.h was moved from icuuc to icui18n
|
|
||||||
|
|
||||||
Bug: 989153
|
|
||||||
Change-Id: I9fcb56f6d5af7787f34ea99b737e2ed8fe741c84
|
|
||||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2000142
|
|
||||||
Reviewed-by: Lei Zhang <thestig@chromium.org>
|
|
||||||
Commit-Queue: Lei Zhang <thestig@chromium.org>
|
|
||||||
Cr-Commit-Position: refs/heads/master@{#732114}
|
|
||||||
---
|
|
||||||
AUTHORS | 1 +
|
|
||||||
build/linux/unbundle/icu.gn | 2 +-
|
|
||||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/AUTHORS b/AUTHORS
|
|
||||||
index 7523e483aae..1618fddc633 100644
|
|
||||||
--- a/AUTHORS
|
|
||||||
+++ b/AUTHORS
|
|
||||||
@@ -891,6 +891,7 @@ Soren Dreijer <dreijerbit@gmail.com>
|
|
||||||
Sreerenj Balachandran <sreerenj.balachandran@intel.com>
|
|
||||||
Srirama Chandra Sekhar Mogali <srirama.m@samsung.com>
|
|
||||||
Staphany Park <stapark008@gmail.com>
|
|
||||||
+Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Stephen Searles <stephen.searles@gmail.com>
|
|
||||||
Steve Sanders <steve@zanderz.com>
|
|
||||||
Steven Pennington <spenn@engr.uvic.ca>
|
|
||||||
diff --git a/build/linux/unbundle/icu.gn b/build/linux/unbundle/icu.gn
|
|
||||||
index 923bd7f5ac3..e77bc43db87 100644
|
|
||||||
--- a/build/linux/unbundle/icu.gn
|
|
||||||
+++ b/build/linux/unbundle/icu.gn
|
|
||||||
@@ -92,6 +92,7 @@ shim_headers("icui18n_shim") {
|
|
||||||
"unicode/fpositer.h",
|
|
||||||
"unicode/gender.h",
|
|
||||||
"unicode/gregocal.h",
|
|
||||||
+ "unicode/listformatter.h",
|
|
||||||
"unicode/measfmt.h",
|
|
||||||
"unicode/measunit.h",
|
|
||||||
"unicode/measure.h",
|
|
||||||
@@ -174,7 +175,6 @@ shim_headers("icuuc_shim") {
|
|
||||||
"unicode/icudataver.h",
|
|
||||||
"unicode/icuplug.h",
|
|
||||||
"unicode/idna.h",
|
|
||||||
- "unicode/listformatter.h",
|
|
||||||
"unicode/localpointer.h",
|
|
||||||
"unicode/locdspnm.h",
|
|
||||||
"unicode/locid.h",
|
|
||||||
@@ -1,237 +0,0 @@
|
|||||||
From cdf3e81ff49b200213d67d65558f2919222b60ab Mon Sep 17 00:00:00 2001
|
|
||||||
From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
|
|
||||||
Date: Mon, 16 Dec 2019 11:39:11 +0000
|
|
||||||
Subject: [PATCH] BookmarkModelMerger: Move RemoteTreeNode declaration to
|
|
||||||
header.
|
|
||||||
|
|
||||||
This fixes the build with libstdc++ after commit 8f5dad93e58 ("Fix CHECK
|
|
||||||
failure due to untracked local nodes"):
|
|
||||||
|
|
||||||
/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/stl_pair.h:215:11: error: field has incomplete type 'sync_bookmarks::BookmarkModelMerger::RemoteTreeNode'
|
|
||||||
_T2 second; /// @c second is a copy of the second object
|
|
||||||
^
|
|
||||||
/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/ext/aligned_buffer.h:91:28: note: in instantiation of template class 'std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>' requested here
|
|
||||||
: std::aligned_storage<sizeof(_Tp), __alignof__(_Tp)>
|
|
||||||
^
|
|
||||||
/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable_policy.h:233:43: note: in instantiation of template class '__gnu_cxx::__aligned_buffer<std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> >' requested here
|
|
||||||
__gnu_cxx::__aligned_buffer<_Value> _M_storage;
|
|
||||||
^
|
|
||||||
/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable_policy.h:264:39: note: in instantiation of template class 'std::__detail::_Hash_node_value_base<std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> >' requested here
|
|
||||||
struct _Hash_node<_Value, true> : _Hash_node_value_base<_Value>
|
|
||||||
^
|
|
||||||
/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable_policy.h:2028:25: note: in instantiation of template class 'std::__detail::_Hash_node<std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>, true>' requested here
|
|
||||||
rebind_traits<typename __node_type::value_type>;
|
|
||||||
^
|
|
||||||
/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable.h:184:15: note: in instantiation of template class 'std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>, true> > >
|
|
||||||
' requested here
|
|
||||||
private __detail::_Hashtable_alloc<
|
|
||||||
^
|
|
||||||
/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/unordered_map.h:105:18: note: in instantiation of template class 'std::_Hashtable<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>, std::allocator<std::pair<con
|
|
||||||
st std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char> >, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__deta
|
|
||||||
il::_Hashtable_traits<true, false, true> >' requested here
|
|
||||||
_Hashtable _M_h;
|
|
||||||
^
|
|
||||||
../../components/sync_bookmarks/bookmark_model_merger.h:146:22: note: in instantiation of template class 'std::unordered_map<std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode, std::hash<std::string>, std::equal_to<std::__cxx11::basic_string<char> >, std::allocator<std::pair<con
|
|
||||||
st std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> > >' requested here
|
|
||||||
const RemoteForest remote_forest_;
|
|
||||||
^
|
|
||||||
../../components/sync_bookmarks/bookmark_model_merger.h:53:9: note: forward declaration of 'sync_bookmarks::BookmarkModelMerger::RemoteTreeNode'
|
|
||||||
class RemoteTreeNode;
|
|
||||||
^
|
|
||||||
|
|
||||||
Essentially, the problem is that libstdc++'s std::unordered_map<T, U>
|
|
||||||
implementation requires both T and U to be fully declared. I raised the
|
|
||||||
problem in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92770, and GCC's
|
|
||||||
position is that we are relying on undefined behavior according to the C++
|
|
||||||
standard (https://eel.is/c++draft/requirements#res.on.functions-2.5).
|
|
||||||
|
|
||||||
Bug: 957519
|
|
||||||
Change-Id: Ife7e435e516932a795bfbe05b2c910c3272878f0
|
|
||||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1960156
|
|
||||||
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
|
|
||||||
Reviewed-by: Mikel Astiz <mastiz@chromium.org>
|
|
||||||
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
|
|
||||||
Cr-Commit-Position: refs/heads/master@{#725070}
|
|
||||||
---
|
|
||||||
.../sync_bookmarks/bookmark_model_merger.cc | 89 +++++++------------
|
|
||||||
.../sync_bookmarks/bookmark_model_merger.h | 48 +++++++++-
|
|
||||||
2 files changed, 80 insertions(+), 57 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/components/sync_bookmarks/bookmark_model_merger.cc b/components/sync_bookmarks/bookmark_model_merger.cc
|
|
||||||
index eae153eff95..579848ee664 100644
|
|
||||||
--- a/components/sync_bookmarks/bookmark_model_merger.cc
|
|
||||||
+++ b/components/sync_bookmarks/bookmark_model_merger.cc
|
|
||||||
@@ -5,7 +5,6 @@
|
|
||||||
#include "components/sync_bookmarks/bookmark_model_merger.h"
|
|
||||||
|
|
||||||
#include <algorithm>
|
|
||||||
-#include <memory>
|
|
||||||
#include <set>
|
|
||||||
#include <string>
|
|
||||||
#include <utility>
|
|
||||||
@@ -205,66 +204,44 @@ UpdatesPerParentId GroupValidUpdatesByParentId(
|
|
||||||
|
|
||||||
} // namespace
|
|
||||||
|
|
||||||
-class BookmarkModelMerger::RemoteTreeNode final {
|
|
||||||
- public:
|
|
||||||
- // Constructs a tree given |update| as root and recursively all descendants by
|
|
||||||
- // traversing |*updates_per_parent_id|. |update| and |updates_per_parent_id|
|
|
||||||
- // must not be null. All updates |*updates_per_parent_id| must represent valid
|
|
||||||
- // updates. Updates corresponding from descendant nodes are moved away from
|
|
||||||
- // |*updates_per_parent_id|.
|
|
||||||
- static RemoteTreeNode BuildTree(
|
|
||||||
- std::unique_ptr<syncer::UpdateResponseData> update,
|
|
||||||
- UpdatesPerParentId* updates_per_parent_id);
|
|
||||||
-
|
|
||||||
- ~RemoteTreeNode() = default;
|
|
||||||
-
|
|
||||||
- // Allow moves, useful during construction.
|
|
||||||
- RemoteTreeNode(RemoteTreeNode&&) = default;
|
|
||||||
- RemoteTreeNode& operator=(RemoteTreeNode&&) = default;
|
|
||||||
-
|
|
||||||
- const syncer::EntityData& entity() const { return *update_->entity; }
|
|
||||||
- int64_t response_version() const { return update_->response_version; }
|
|
||||||
-
|
|
||||||
- // Direct children nodes, sorted by ascending unique position. These are
|
|
||||||
- // guaranteed to be valid updates (e.g. IsValidBookmarkSpecifics()).
|
|
||||||
- const std::vector<RemoteTreeNode>& children() const { return children_; }
|
|
||||||
-
|
|
||||||
- // Recursively emplaces all GUIDs (this node and descendants) into
|
|
||||||
- // |*guid_to_remote_node_map|, which must not be null.
|
|
||||||
- void EmplaceSelfAndDescendantsByGUID(
|
|
||||||
- std::unordered_map<std::string, const RemoteTreeNode*>*
|
|
||||||
- guid_to_remote_node_map) const {
|
|
||||||
- DCHECK(guid_to_remote_node_map);
|
|
||||||
-
|
|
||||||
- const std::string& guid = entity().specifics.bookmark().guid();
|
|
||||||
- if (!guid.empty()) {
|
|
||||||
- DCHECK(base::IsValidGUID(guid));
|
|
||||||
-
|
|
||||||
- // Duplicate GUIDs have been sorted out before.
|
|
||||||
- bool success = guid_to_remote_node_map->emplace(guid, this).second;
|
|
||||||
- DCHECK(success);
|
|
||||||
- }
|
|
||||||
+BookmarkModelMerger::RemoteTreeNode::RemoteTreeNode() = default;
|
|
||||||
|
|
||||||
- for (const RemoteTreeNode& child : children_) {
|
|
||||||
- child.EmplaceSelfAndDescendantsByGUID(guid_to_remote_node_map);
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
+BookmarkModelMerger::RemoteTreeNode::~RemoteTreeNode() = default;
|
|
||||||
+
|
|
||||||
+BookmarkModelMerger::RemoteTreeNode::RemoteTreeNode(
|
|
||||||
+ BookmarkModelMerger::RemoteTreeNode&&) = default;
|
|
||||||
+BookmarkModelMerger::RemoteTreeNode& BookmarkModelMerger::RemoteTreeNode::
|
|
||||||
+operator=(BookmarkModelMerger::RemoteTreeNode&&) = default;
|
|
||||||
+
|
|
||||||
+void BookmarkModelMerger::RemoteTreeNode::EmplaceSelfAndDescendantsByGUID(
|
|
||||||
+ std::unordered_map<std::string, const RemoteTreeNode*>*
|
|
||||||
+ guid_to_remote_node_map) const {
|
|
||||||
+ DCHECK(guid_to_remote_node_map);
|
|
||||||
+
|
|
||||||
+ const std::string& guid = entity().specifics.bookmark().guid();
|
|
||||||
+ if (!guid.empty()) {
|
|
||||||
+ DCHECK(base::IsValidGUID(guid));
|
|
||||||
|
|
||||||
- private:
|
|
||||||
- static bool UniquePositionLessThan(const RemoteTreeNode& lhs,
|
|
||||||
- const RemoteTreeNode& rhs) {
|
|
||||||
- const syncer::UniquePosition a_pos =
|
|
||||||
- syncer::UniquePosition::FromProto(lhs.entity().unique_position);
|
|
||||||
- const syncer::UniquePosition b_pos =
|
|
||||||
- syncer::UniquePosition::FromProto(rhs.entity().unique_position);
|
|
||||||
- return a_pos.LessThan(b_pos);
|
|
||||||
+ // Duplicate GUIDs have been sorted out before.
|
|
||||||
+ bool success = guid_to_remote_node_map->emplace(guid, this).second;
|
|
||||||
+ DCHECK(success);
|
|
||||||
}
|
|
||||||
|
|
||||||
- RemoteTreeNode() = default;
|
|
||||||
+ for (const RemoteTreeNode& child : children_) {
|
|
||||||
+ child.EmplaceSelfAndDescendantsByGUID(guid_to_remote_node_map);
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
|
|
||||||
- std::unique_ptr<syncer::UpdateResponseData> update_;
|
|
||||||
- std::vector<RemoteTreeNode> children_;
|
|
||||||
-};
|
|
||||||
+// static
|
|
||||||
+bool BookmarkModelMerger::RemoteTreeNode::UniquePositionLessThan(
|
|
||||||
+ const RemoteTreeNode& lhs,
|
|
||||||
+ const RemoteTreeNode& rhs) {
|
|
||||||
+ const syncer::UniquePosition a_pos =
|
|
||||||
+ syncer::UniquePosition::FromProto(lhs.entity().unique_position);
|
|
||||||
+ const syncer::UniquePosition b_pos =
|
|
||||||
+ syncer::UniquePosition::FromProto(rhs.entity().unique_position);
|
|
||||||
+ return a_pos.LessThan(b_pos);
|
|
||||||
+}
|
|
||||||
|
|
||||||
// static
|
|
||||||
BookmarkModelMerger::RemoteTreeNode
|
|
||||||
diff --git a/components/sync_bookmarks/bookmark_model_merger.h b/components/sync_bookmarks/bookmark_model_merger.h
|
|
||||||
index 9b592000dc5..bf0783ecf8e 100644
|
|
||||||
--- a/components/sync_bookmarks/bookmark_model_merger.h
|
|
||||||
+++ b/components/sync_bookmarks/bookmark_model_merger.h
|
|
||||||
@@ -5,6 +5,7 @@
|
|
||||||
#ifndef COMPONENTS_SYNC_BOOKMARKS_BOOKMARK_MODEL_MERGER_H_
|
|
||||||
#define COMPONENTS_SYNC_BOOKMARKS_BOOKMARK_MODEL_MERGER_H_
|
|
||||||
|
|
||||||
+#include <memory>
|
|
||||||
#include <string>
|
|
||||||
#include <unordered_map>
|
|
||||||
#include <vector>
|
|
||||||
@@ -50,7 +51,52 @@ class BookmarkModelMerger {
|
|
||||||
|
|
||||||
private:
|
|
||||||
// Internal representation of a remote tree, composed of nodes.
|
|
||||||
- class RemoteTreeNode;
|
|
||||||
+ class RemoteTreeNode final {
|
|
||||||
+ private:
|
|
||||||
+ using UpdatesPerParentId =
|
|
||||||
+ std::unordered_map<base::StringPiece,
|
|
||||||
+ syncer::UpdateResponseDataList,
|
|
||||||
+ base::StringPieceHash>;
|
|
||||||
+
|
|
||||||
+ public:
|
|
||||||
+ // Constructs a tree given |update| as root and recursively all descendants
|
|
||||||
+ // by traversing |*updates_per_parent_id|. |update| and
|
|
||||||
+ // |updates_per_parent_id| must not be null. All updates
|
|
||||||
+ // |*updates_per_parent_id| must represent valid updates. Updates
|
|
||||||
+ // corresponding from descendant nodes are moved away from
|
|
||||||
+ // |*updates_per_parent_id|.
|
|
||||||
+ static RemoteTreeNode BuildTree(
|
|
||||||
+ std::unique_ptr<syncer::UpdateResponseData> update,
|
|
||||||
+ UpdatesPerParentId* updates_per_parent_id);
|
|
||||||
+
|
|
||||||
+ ~RemoteTreeNode();
|
|
||||||
+
|
|
||||||
+ // Allow moves, useful during construction.
|
|
||||||
+ RemoteTreeNode(RemoteTreeNode&&);
|
|
||||||
+ RemoteTreeNode& operator=(RemoteTreeNode&&);
|
|
||||||
+
|
|
||||||
+ const syncer::EntityData& entity() const { return *update_->entity; }
|
|
||||||
+ int64_t response_version() const { return update_->response_version; }
|
|
||||||
+
|
|
||||||
+ // Direct children nodes, sorted by ascending unique position. These are
|
|
||||||
+ // guaranteed to be valid updates (e.g. IsValidBookmarkSpecifics()).
|
|
||||||
+ const std::vector<RemoteTreeNode>& children() const { return children_; }
|
|
||||||
+
|
|
||||||
+ // Recursively emplaces all GUIDs (this node and descendants) into
|
|
||||||
+ // |*guid_to_remote_node_map|, which must not be null.
|
|
||||||
+ void EmplaceSelfAndDescendantsByGUID(
|
|
||||||
+ std::unordered_map<std::string, const RemoteTreeNode*>*
|
|
||||||
+ guid_to_remote_node_map) const;
|
|
||||||
+
|
|
||||||
+ private:
|
|
||||||
+ static bool UniquePositionLessThan(const RemoteTreeNode& lhs,
|
|
||||||
+ const RemoteTreeNode& rhs);
|
|
||||||
+
|
|
||||||
+ RemoteTreeNode();
|
|
||||||
+
|
|
||||||
+ std::unique_ptr<syncer::UpdateResponseData> update_;
|
|
||||||
+ std::vector<RemoteTreeNode> children_;
|
|
||||||
+ };
|
|
||||||
|
|
||||||
// A forest composed of multiple trees where the root of each tree represents
|
|
||||||
// a permanent node, keyed by server-defined unique tag of the root.
|
|
||||||
@@ -1,81 +0,0 @@
|
|||||||
From 5d66d5907ac3e76d1e382b8a8e8afe653bd00f4c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Date: Sun, 31 May 2020 13:59:15 +0000
|
|
||||||
Subject: [PATCH] Fix GCC build with PROTOBUF_USE_DLLS enabled
|
|
||||||
|
|
||||||
GCC does not allow mixing __attribute__(()) syntax and alignas()
|
|
||||||
syntax. Re-use approach from chromium base/compiler_specific.h
|
|
||||||
---
|
|
||||||
.../protobuf/src/google/protobuf/arena.h | 2 +-
|
|
||||||
.../protobuf/src/google/protobuf/port_def.inc | 29 +++++++++++++++++++
|
|
||||||
.../src/google/protobuf/port_undef.inc | 1 +
|
|
||||||
3 files changed, 31 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/third_party/protobuf/src/google/protobuf/arena.h b/third_party/protobuf/src/google/protobuf/arena.h
|
|
||||||
index dedc221..a8515ce 100644
|
|
||||||
--- a/third_party/protobuf/src/google/protobuf/arena.h
|
|
||||||
+++ b/third_party/protobuf/src/google/protobuf/arena.h
|
|
||||||
@@ -245,7 +245,7 @@ struct ArenaOptions {
|
|
||||||
// well as protobuf container types like RepeatedPtrField and Map. The protocol
|
|
||||||
// is internal to protobuf and is not guaranteed to be stable. Non-proto types
|
|
||||||
// should not rely on this protocol.
|
|
||||||
-class PROTOBUF_EXPORT alignas(8) Arena final {
|
|
||||||
+class PROTOBUF_EXPORT PROTOBUF_ALIGNAS(8) Arena final {
|
|
||||||
public:
|
|
||||||
// Arena constructor taking custom options. See ArenaOptions below for
|
|
||||||
// descriptions of the options available.
|
|
||||||
diff --git a/third_party/protobuf/src/google/protobuf/port_def.inc b/third_party/protobuf/src/google/protobuf/port_def.inc
|
|
||||||
index f1bd85d..6d02b53 100644
|
|
||||||
--- a/third_party/protobuf/src/google/protobuf/port_def.inc
|
|
||||||
+++ b/third_party/protobuf/src/google/protobuf/port_def.inc
|
|
||||||
@@ -528,6 +528,35 @@ PROTOBUF_EXPORT_TEMPLATE_TEST(DEFAULT, __declspec(dllimport));
|
|
||||||
#undef IN
|
|
||||||
#endif // _MSC_VER
|
|
||||||
|
|
||||||
+// Specify memory alignment for structs, classes, etc.
|
|
||||||
+// Use like:
|
|
||||||
+// class PROTOBUF_ALIGNAS(16) MyClass { ... }
|
|
||||||
+// PROTOBUF_ALIGNAS(16) int array[4];
|
|
||||||
+//
|
|
||||||
+// In most places you can use the C++11 keyword "alignas", which is preferred.
|
|
||||||
+//
|
|
||||||
+// But compilers have trouble mixing __attribute__((...)) syntax with
|
|
||||||
+// alignas(...) syntax.
|
|
||||||
+//
|
|
||||||
+// Doesn't work in clang or gcc:
|
|
||||||
+// struct alignas(16) __attribute__((packed)) S { char c; };
|
|
||||||
+// Works in clang but not gcc:
|
|
||||||
+// struct __attribute__((packed)) alignas(16) S2 { char c; };
|
|
||||||
+// Works in clang and gcc:
|
|
||||||
+// struct alignas(16) S3 { char c; } __attribute__((packed));
|
|
||||||
+//
|
|
||||||
+// There are also some attributes that must be specified *before* a class
|
|
||||||
+// definition: visibility (used for exporting functions/classes) is one of
|
|
||||||
+// these attributes. This means that it is not possible to use alignas() with a
|
|
||||||
+// class that is marked as exported.
|
|
||||||
+#if defined(_MSC_VER)
|
|
||||||
+#define PROTOBUF_ALIGNAS(byte_alignment) __declspec(align(byte_alignment))
|
|
||||||
+#elif defined(__GNUC__)
|
|
||||||
+#define PROTOBUF_ALIGNAS(byte_alignment) __attribute__((aligned(byte_alignment)))
|
|
||||||
+#else
|
|
||||||
+#define PROTOBUF_ALIGNAS(byte_alignment) alignas(byte_alignment)
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
#if defined(__clang__)
|
|
||||||
#pragma clang diagnostic push
|
|
||||||
// TODO(gerbens) ideally we cleanup the code. But a cursory try shows many
|
|
||||||
diff --git a/third_party/protobuf/src/google/protobuf/port_undef.inc b/third_party/protobuf/src/google/protobuf/port_undef.inc
|
|
||||||
index b7e67fe..ba1fffc 100644
|
|
||||||
--- a/third_party/protobuf/src/google/protobuf/port_undef.inc
|
|
||||||
+++ b/third_party/protobuf/src/google/protobuf/port_undef.inc
|
|
||||||
@@ -80,6 +80,7 @@
|
|
||||||
#undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_foj3FJo5StF0OvIzl7oMxA__declspec
|
|
||||||
#undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_dllexport
|
|
||||||
#undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_dllimport
|
|
||||||
+#undef PROTOBUF_ALIGNAS
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
2.26.2
|
|
||||||
|
|
||||||
-33
@@ -1,33 +0,0 @@
|
|||||||
From 08ac7188f414218ac9d764e29e7aa64a6bfc2f96 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Date: Sun, 31 May 2020 10:02:03 +0000
|
|
||||||
Subject: [PATCH] disable clang-format for generated code in blink
|
|
||||||
|
|
||||||
For GCC builds clang-format might be not available. Additionally,
|
|
||||||
current scripts look for clang-format within chromium sources and
|
|
||||||
don't consider system clang-format.
|
|
||||||
---
|
|
||||||
.../bindings/scripts/bind_gen/codegen_utils.py | 10 +---------
|
|
||||||
1 file changed, 1 insertion(+), 9 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py b/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
|
|
||||||
index 7021f1a..33bf5bf 100644
|
|
||||||
--- a/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
|
|
||||||
+++ b/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
|
|
||||||
@@ -150,12 +150,4 @@ def write_code_node_to_file(code_node, filepath):
|
|
||||||
|
|
||||||
rendered_text = render_code_node(code_node)
|
|
||||||
|
|
||||||
- format_result = style_format.auto_format(rendered_text, filename=filepath)
|
|
||||||
- if not format_result.did_succeed:
|
|
||||||
- raise RuntimeError("Style-formatting failed: filename = {filename}\n"
|
|
||||||
- "---- stderr ----\n"
|
|
||||||
- "{stderr}:".format(
|
|
||||||
- filename=format_result.filename,
|
|
||||||
- stderr=format_result.error_message))
|
|
||||||
-
|
|
||||||
- web_idl.file_io.write_to_file_if_changed(filepath, format_result.contents)
|
|
||||||
+ web_idl.file_io.write_to_file_if_changed(filepath, rendered_text)
|
|
||||||
--
|
|
||||||
2.26.2
|
|
||||||
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
From c4f6e8cd34a245c3640b86a91c9694d69594d80b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Date: Wed, 16 Sep 2020 15:05:02 +0000
|
|
||||||
Subject: [PATCH] IWYU: ui::CursorFactory is now required independent from
|
|
||||||
Ozone
|
|
||||||
|
|
||||||
---
|
|
||||||
.../ui/views/chrome_browser_main_extra_parts_views_linux.cc | 5 +----
|
|
||||||
1 file changed, 1 insertion(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
|
|
||||||
index 5a97d61..ccedd2a 100644
|
|
||||||
--- a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
|
|
||||||
+++ b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
|
|
||||||
@@ -7,6 +7,7 @@
|
|
||||||
#include "chrome/browser/themes/theme_service_aura_linux.h"
|
|
||||||
#include "chrome/browser/ui/browser_list.h"
|
|
||||||
#include "chrome/browser/ui/views/theme_profile_key.h"
|
|
||||||
+#include "ui/base/cursor/cursor_factory.h"
|
|
||||||
#include "ui/display/screen.h"
|
|
||||||
#include "ui/views/linux_ui/linux_ui.h"
|
|
||||||
|
|
||||||
@@ -15,10 +16,6 @@
|
|
||||||
#include "ui/gtk/gtk_ui_delegate.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-#if defined(USE_OZONE)
|
|
||||||
-#include "ui/base/cursor/cursor_factory.h"
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
#if defined(USE_X11)
|
|
||||||
#include "ui/gfx/x/connection.h" // nogncheck
|
|
||||||
#if BUILDFLAG(USE_GTK)
|
|
||||||
--
|
|
||||||
2.26.2
|
|
||||||
|
|
||||||
-22
@@ -1,22 +0,0 @@
|
|||||||
Bug: https://bugs.gentoo.org/750038
|
|
||||||
Upstream bug: https://crbug.com/1135070
|
|
||||||
|
|
||||||
--- a/content/browser/service_worker/service_worker_container_host.cc
|
|
||||||
+++ b/content/browser/service_worker/service_worker_container_host.cc
|
|
||||||
@@ -626,6 +626,16 @@
|
|
||||||
int64_t registration_id) {
|
|
||||||
DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId());
|
|
||||||
DCHECK(base::Contains(registration_object_hosts_, registration_id));
|
|
||||||
+
|
|
||||||
+ // ServiceWorkerRegistrationObjectHost to be deleted may have the last reference to
|
|
||||||
+ // ServiceWorkerRegistration 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/1135070 for details.
|
|
||||||
+ std::unique_ptr<ServiceWorkerRegistrationObjectHost> to_be_deleted =
|
|
||||||
+ std::move(registration_object_hosts_[registration_id]);
|
|
||||||
+ DCHECK(to_be_deleted);
|
|
||||||
registration_object_hosts_.erase(registration_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -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
|
|
||||||
--- a/third_party/openscreen/src/util/crypto/random_bytes.h
|
|
||||||
+++ b/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
|
|
||||||
|
|
||||||
+16
-35
@@ -1,14 +1,14 @@
|
|||||||
From f4d0b0eb899005b4b8b6388e1d8bb82cc0018fc8 Mon Sep 17 00:00:00 2001
|
From f4d0b0eb899005b4b8b6388e1d8bb82cc0018fc8 Mon Sep 17 00:00:00 2001
|
||||||
From: Mike Gilbert <floppym@gentoo.org>
|
From: Mike Gilbert <floppym@gentoo.org>
|
||||||
Date: Thu, 1 Oct 2020 18:14:51 +0000
|
Date: Sun, 15 Nov 2020 08:37:23 +0000
|
||||||
Subject: [PATCH] Disable various compiler configs
|
Subject: [PATCH] Disable various compiler configs
|
||||||
|
|
||||||
---
|
---
|
||||||
build/config/compiler/BUILD.gn | 71 ++++++++--------------------------
|
build/config/compiler/BUILD.gn | 52 +++++++++++-----------------------
|
||||||
1 file changed, 17 insertions(+), 54 deletions(-)
|
1 file changed, 17 insertions(+), 35 deletions(-)
|
||||||
|
|
||||||
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
|
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
|
||||||
index 4f6461b..b5d2c77 100644
|
index 9d66490..a2bc09e 100644
|
||||||
--- a/build/config/compiler/BUILD.gn
|
--- a/build/config/compiler/BUILD.gn
|
||||||
+++ b/build/config/compiler/BUILD.gn
|
+++ b/build/config/compiler/BUILD.gn
|
||||||
@@ -254,8 +254,6 @@ config("compiler") {
|
@@ -254,8 +254,6 @@ config("compiler") {
|
||||||
@@ -20,7 +20,7 @@ index 4f6461b..b5d2c77 100644
|
|||||||
":compiler_codegen",
|
":compiler_codegen",
|
||||||
":compiler_deterministic",
|
":compiler_deterministic",
|
||||||
]
|
]
|
||||||
@@ -480,36 +478,6 @@ config("compiler") {
|
@@ -478,17 +476,6 @@ config("compiler") {
|
||||||
ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
|
ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -33,31 +33,12 @@ index 4f6461b..b5d2c77 100644
|
|||||||
- "-mllvm",
|
- "-mllvm",
|
||||||
- "-instcombine-lower-dbg-declare=0",
|
- "-instcombine-lower-dbg-declare=0",
|
||||||
- ]
|
- ]
|
||||||
-
|
|
||||||
- # Pinned clang has enable-dse-memoryssa enabled by default but it's broken,
|
|
||||||
- # so we have to force it off.
|
|
||||||
- # Trunk clang has it disabled by default but it might work, so we force it
|
|
||||||
- # on so the ToT bots can check if it works now.
|
|
||||||
- if (!llvm_force_head_revision) {
|
|
||||||
- cflags += [
|
|
||||||
- # TODO(https://crbug.com/1127713): Investigate, remove.
|
|
||||||
- "-mllvm",
|
|
||||||
- "-enable-dse-memoryssa=false",
|
|
||||||
- ]
|
|
||||||
- }
|
|
||||||
- if (llvm_force_head_revision) {
|
|
||||||
- cflags += [
|
|
||||||
- # TODO(https://crbug.com/1127713): Investigate, remove.
|
|
||||||
- "-mllvm",
|
|
||||||
- "-enable-dse-memoryssa=true",
|
|
||||||
- ]
|
|
||||||
- }
|
|
||||||
- }
|
- }
|
||||||
-
|
-
|
||||||
# C11/C++11 compiler flags setup.
|
# C11/C++11 compiler flags setup.
|
||||||
# ---------------------------
|
# ---------------------------
|
||||||
if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) ||
|
if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) ||
|
||||||
@@ -1571,7 +1539,7 @@ config("chromium_code") {
|
@@ -1574,7 +1561,7 @@ config("chromium_code") {
|
||||||
defines = [ "_HAS_NODISCARD" ]
|
defines = [ "_HAS_NODISCARD" ]
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -66,7 +47,7 @@ index 4f6461b..b5d2c77 100644
|
|||||||
if (treat_warnings_as_errors) {
|
if (treat_warnings_as_errors) {
|
||||||
cflags += [ "-Werror" ]
|
cflags += [ "-Werror" ]
|
||||||
|
|
||||||
@@ -1580,10 +1548,6 @@ config("chromium_code") {
|
@@ -1583,10 +1570,6 @@ config("chromium_code") {
|
||||||
# well.
|
# well.
|
||||||
ldflags = [ "-Werror" ]
|
ldflags = [ "-Werror" ]
|
||||||
}
|
}
|
||||||
@@ -77,7 +58,7 @@ index 4f6461b..b5d2c77 100644
|
|||||||
|
|
||||||
# In Chromium code, we define __STDC_foo_MACROS in order to get the
|
# In Chromium code, we define __STDC_foo_MACROS in order to get the
|
||||||
# C99 macros on Mac and Linux.
|
# C99 macros on Mac and Linux.
|
||||||
@@ -1592,15 +1556,6 @@ config("chromium_code") {
|
@@ -1595,15 +1578,6 @@ config("chromium_code") {
|
||||||
"__STDC_FORMAT_MACROS",
|
"__STDC_FORMAT_MACROS",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -93,7 +74,7 @@ index 4f6461b..b5d2c77 100644
|
|||||||
if (is_mac) {
|
if (is_mac) {
|
||||||
cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
|
cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
|
||||||
cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
|
cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
|
||||||
@@ -1998,7 +1953,8 @@ config("default_stack_frames") {
|
@@ -2006,7 +1980,8 @@ config("default_stack_frames") {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Default "optimization on" config.
|
# Default "optimization on" config.
|
||||||
@@ -103,7 +84,7 @@ index 4f6461b..b5d2c77 100644
|
|||||||
if (is_win) {
|
if (is_win) {
|
||||||
if (chrome_pgo_phase != 2) {
|
if (chrome_pgo_phase != 2) {
|
||||||
# Favor size over speed, /O1 must be before the common flags.
|
# Favor size over speed, /O1 must be before the common flags.
|
||||||
@@ -2033,7 +1989,8 @@ config("optimize") {
|
@@ -2041,7 +2016,8 @@ config("optimize") {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Turn off optimizations.
|
# Turn off optimizations.
|
||||||
@@ -113,7 +94,7 @@ index 4f6461b..b5d2c77 100644
|
|||||||
if (is_win) {
|
if (is_win) {
|
||||||
cflags = [
|
cflags = [
|
||||||
"/Od", # Disable optimization.
|
"/Od", # Disable optimization.
|
||||||
@@ -2073,7 +2030,8 @@ config("no_optimize") {
|
@@ -2081,7 +2057,8 @@ config("no_optimize") {
|
||||||
# Turns up the optimization level. On Windows, this implies whole program
|
# Turns up the optimization level. On Windows, this implies whole program
|
||||||
# optimization and link-time code generation which is very expensive and should
|
# optimization and link-time code generation which is very expensive and should
|
||||||
# be used sparingly.
|
# be used sparingly.
|
||||||
@@ -123,7 +104,7 @@ index 4f6461b..b5d2c77 100644
|
|||||||
if (is_nacl && is_nacl_irt) {
|
if (is_nacl && is_nacl_irt) {
|
||||||
# The NaCl IRT is a special case and always wants its own config.
|
# The NaCl IRT is a special case and always wants its own config.
|
||||||
# Various components do:
|
# Various components do:
|
||||||
@@ -2105,7 +2063,8 @@ config("optimize_max") {
|
@@ -2113,7 +2090,8 @@ config("optimize_max") {
|
||||||
#
|
#
|
||||||
# TODO(crbug.com/621335) - rework how all of these configs are related
|
# TODO(crbug.com/621335) - rework how all of these configs are related
|
||||||
# so that we don't need this disclaimer.
|
# so that we don't need this disclaimer.
|
||||||
@@ -133,7 +114,7 @@ index 4f6461b..b5d2c77 100644
|
|||||||
if (is_nacl && is_nacl_irt) {
|
if (is_nacl && is_nacl_irt) {
|
||||||
# The NaCl IRT is a special case and always wants its own config.
|
# The NaCl IRT is a special case and always wants its own config.
|
||||||
# Various components do:
|
# Various components do:
|
||||||
@@ -2130,7 +2089,8 @@ config("optimize_speed") {
|
@@ -2138,7 +2116,8 @@ config("optimize_speed") {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -143,7 +124,7 @@ index 4f6461b..b5d2c77 100644
|
|||||||
cflags = [ "-O1" ] + common_optimize_on_cflags
|
cflags = [ "-O1" ] + common_optimize_on_cflags
|
||||||
ldflags = common_optimize_on_ldflags
|
ldflags = common_optimize_on_ldflags
|
||||||
visibility = [ ":default_optimization" ]
|
visibility = [ ":default_optimization" ]
|
||||||
@@ -2247,7 +2207,8 @@ config("win_pdbaltpath") {
|
@@ -2267,7 +2246,8 @@ config("win_pdbaltpath") {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Full symbols.
|
# Full symbols.
|
||||||
@@ -153,7 +134,7 @@ index 4f6461b..b5d2c77 100644
|
|||||||
if (is_win) {
|
if (is_win) {
|
||||||
if (is_clang) {
|
if (is_clang) {
|
||||||
cflags = [ "/Z7" ] # Debug information in the .obj files.
|
cflags = [ "/Z7" ] # Debug information in the .obj files.
|
||||||
@@ -2355,7 +2316,8 @@ config("symbols") {
|
@@ -2365,7 +2345,8 @@ config("symbols") {
|
||||||
# Minimal symbols.
|
# Minimal symbols.
|
||||||
# This config guarantees to hold symbol for stack trace which are shown to user
|
# This config guarantees to hold symbol for stack trace which are shown to user
|
||||||
# when crash happens in unittests running on buildbot.
|
# when crash happens in unittests running on buildbot.
|
||||||
@@ -163,7 +144,7 @@ index 4f6461b..b5d2c77 100644
|
|||||||
if (is_win) {
|
if (is_win) {
|
||||||
# Functions, files, and line tables only.
|
# Functions, files, and line tables only.
|
||||||
cflags = []
|
cflags = []
|
||||||
@@ -2408,7 +2370,8 @@ config("minimal_symbols") {
|
@@ -2418,7 +2399,8 @@ config("minimal_symbols") {
|
||||||
# This configuration contains function names only. That is, the compiler is
|
# This configuration contains function names only. That is, the compiler is
|
||||||
# told to not generate debug information and the linker then just puts function
|
# told to not generate debug information and the linker then just puts function
|
||||||
# names in the final debug information.
|
# names in the final debug information.
|
||||||
@@ -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
|
|
||||||
--- a/media/gpu/vaapi/vaapi_wrapper.h
|
|
||||||
+++ b/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
|
|
||||||
|
|
||||||
@@ -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
|
||||||
|
--- a/ui/accessibility/ax_tree_serializer.h
|
||||||
|
+++ b/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>
|
||||||
@@ -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
|
||||||
|
--- a/third_party/dawn/src/dawn_wire/client/Device.h
|
||||||
|
+++ b/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
|
||||||
|
|
||||||
@@ -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
|
||||||
|
--- a/net/third_party/quiche/src/quic/core/quic_path_validator.cc
|
||||||
|
+++ b/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
|
||||||
|
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
From 1ee06c3678a85d158eb82d4af438d1e43a4c814e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stephan Hartmann <stha09@googlemail.com>
|
||||||
|
Date: Sun, 6 Dec 2020 16:14:17 +0000
|
||||||
|
Subject: [PATCH] GCC: change make_visitor visibility to public
|
||||||
|
|
||||||
|
GCC complains that make_visitor is used in private context from
|
||||||
|
inner Iterator class.
|
||||||
|
---
|
||||||
|
net/third_party/quiche/src/quic/core/quic_interval_set.h | 1 -
|
||||||
|
1 file changed, 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/net/third_party/quiche/src/quic/core/quic_interval_set.h b/net/third_party/quiche/src/quic/core/quic_interval_set.h
|
||||||
|
index af64e29..7ee8978 100644
|
||||||
|
--- a/net/third_party/quiche/src/quic/core/quic_interval_set.h
|
||||||
|
+++ b/net/third_party/quiche/src/quic/core/quic_interval_set.h
|
||||||
|
@@ -1874,7 +1874,6 @@ class QUIC_NO_EXPORT QuicIntervalSet {
|
||||||
|
return absl::visit([&](auto& s) { return s.Contains(min, max); }, qiset_);
|
||||||
|
}
|
||||||
|
|
||||||
|
- private:
|
||||||
|
template <class A, class B, class C>
|
||||||
|
struct overloader : A, B, C {
|
||||||
|
overloader(A a, B b, C c) : A(a), B(b), C(c) {}
|
||||||
|
--
|
||||||
|
2.26.2
|
||||||
|
|
||||||
@@ -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
|
||||||
|
--- a/third_party/skia/include/effects/SkImageFilters.h
|
||||||
|
+++ b/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
|
||||||
|
--- a/third_party/skia/src/effects/imagefilters/SkImageFilters.cpp
|
||||||
|
+++ b/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();
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
--- a/base/strings/char_traits.h
|
|
||||||
+++ b/base/strings/char_traits.h
|
|
||||||
@@ -67,9 +67,9 @@
|
|
||||||
return __builtin_memcmp(s1, s2, n);
|
|
||||||
#else
|
|
||||||
for (; n; --n, ++s1, ++s2) {
|
|
||||||
- if (*s1 < *s2)
|
|
||||||
+ if ((unsigned char)*s1 < (unsigned char)*s2)
|
|
||||||
return -1;
|
|
||||||
- if (*s1 > *s2)
|
|
||||||
+ if ((unsigned char)*s1 > (unsigned char)*s2)
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
-62
@@ -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>
|
|
||||||
-33
@@ -1,33 +0,0 @@
|
|||||||
From 8500a125e9fba8bb84d185542155747ee7157ff8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Dominik=20R=C3=B6ttsches?= <drott@chromium.org>
|
|
||||||
Date: Tue, 28 Jan 2020 13:48:07 +0000
|
|
||||||
Subject: [PATCH] Remove verbose logging in local unique font matching on Linux
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
Fixed: 1005508
|
|
||||||
Change-Id: I97f5340c6d1881798ba51effc4a9e5c07de12e52
|
|
||||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2023552
|
|
||||||
Commit-Queue: Dominik Röttsches <drott@chromium.org>
|
|
||||||
Commit-Queue: Kentaro Hara <haraken@chromium.org>
|
|
||||||
Auto-Submit: Dominik Röttsches <drott@chromium.org>
|
|
||||||
Reviewed-by: Kentaro Hara <haraken@chromium.org>
|
|
||||||
Cr-Commit-Position: refs/heads/master@{#735854}
|
|
||||||
---
|
|
||||||
content/child/child_process_sandbox_support_impl_linux.cc | 2 --
|
|
||||||
1 file changed, 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/content/child/child_process_sandbox_support_impl_linux.cc b/content/child/child_process_sandbox_support_impl_linux.cc
|
|
||||||
index 693ead7f7a5..c97c8fa197b 100644
|
|
||||||
--- a/content/child/child_process_sandbox_support_impl_linux.cc
|
|
||||||
+++ b/content/child/child_process_sandbox_support_impl_linux.cc
|
|
||||||
@@ -76,8 +76,6 @@ bool WebSandboxSupportLinux::MatchFontByPostscriptNameOrFullFontName(
|
|
||||||
std::string family_name;
|
|
||||||
if (!font_loader_->MatchFontByPostscriptNameOrFullFontName(font_unique_name,
|
|
||||||
&font_identity)) {
|
|
||||||
- LOG(ERROR) << "FontService unique font name matching request did not "
|
|
||||||
- "receive a response.";
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
-64
@@ -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,100 +0,0 @@
|
|||||||
From f25787b72c20e97cdeb74e037dc1ff56a88b45c6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ben Wagner <bungeman@google.com>
|
|
||||||
Date: Tue, 1 Dec 2020 20:22:00 -0500
|
|
||||||
Subject: [PATCH] Subpixel anti-aliasing in FreeType 2.8.1+
|
|
||||||
|
|
||||||
FreeType 2.8.1 and later always provide some form of subpixel
|
|
||||||
anti-aliasing.
|
|
||||||
|
|
||||||
Bug: skia:10950,skia:6663
|
|
||||||
Change-Id: I666cc942e73b73073cdabf900c25faa10d9aaf0f
|
|
||||||
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/339861
|
|
||||||
Reviewed-by: Herb Derby <herb@google.com>
|
|
||||||
Commit-Queue: Ben Wagner <bungeman@google.com>
|
|
||||||
---
|
|
||||||
src/ports/SkFontHost_FreeType.cpp | 33 ++++++++++++++++++++-----------
|
|
||||||
1 file changed, 22 insertions(+), 11 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/ports/SkFontHost_FreeType.cpp b/src/ports/SkFontHost_FreeType.cpp
|
|
||||||
index 990eff4f5e..c0aeb792da 100644
|
|
||||||
--- a/third_party/skia/src/ports/SkFontHost_FreeType.cpp
|
|
||||||
+++ b/third_party/skia/src/ports/SkFontHost_FreeType.cpp
|
|
||||||
@@ -32,6 +32,7 @@
|
|
||||||
#include "src/utils/SkMatrix22.h"
|
|
||||||
|
|
||||||
#include <memory>
|
|
||||||
+#include <tuple>
|
|
||||||
|
|
||||||
#include <ft2build.h>
|
|
||||||
#include FT_ADVANCES_H
|
|
||||||
@@ -147,13 +148,16 @@ public:
|
|
||||||
// *reinterpret_cast<void**>(&procPtr) = dlsym(self, "proc");
|
|
||||||
// because clang has not implemented DR573. See http://clang.llvm.org/cxx_dr_status.html .
|
|
||||||
|
|
||||||
- FT_Int major, minor, patch;
|
|
||||||
- FT_Library_Version(fLibrary, &major, &minor, &patch);
|
|
||||||
+ using Version = std::tuple<FT_Int, FT_Int, FT_Int>;
|
|
||||||
+ Version version;
|
|
||||||
+ FT_Library_Version(fLibrary, &std::get<0>(version),
|
|
||||||
+ &std::get<1>(version),
|
|
||||||
+ &std::get<2>(version));
|
|
||||||
|
|
||||||
#if SK_FREETYPE_MINIMUM_RUNTIME_VERSION >= 0x02070100
|
|
||||||
fGetVarDesignCoordinates = FT_Get_Var_Design_Coordinates;
|
|
||||||
#elif SK_FREETYPE_MINIMUM_RUNTIME_VERSION & SK_FREETYPE_DLOPEN
|
|
||||||
- if (major > 2 || ((major == 2 && minor > 7) || (major == 2 && minor == 7 && patch >= 0))) {
|
|
||||||
+ if (Version(2,7,0) <= version) {
|
|
||||||
//The FreeType library is already loaded, so symbols are available in process.
|
|
||||||
void* self = dlopen(nullptr, RTLD_LAZY);
|
|
||||||
if (self) {
|
|
||||||
@@ -166,7 +170,7 @@ public:
|
|
||||||
#if SK_FREETYPE_MINIMUM_RUNTIME_VERSION >= 0x02070200
|
|
||||||
FT_Set_Default_Properties(fLibrary);
|
|
||||||
#elif SK_FREETYPE_MINIMUM_RUNTIME_VERSION & SK_FREETYPE_DLOPEN
|
|
||||||
- if (major > 2 || ((major == 2 && minor > 7) || (major == 2 && minor == 7 && patch >= 1))) {
|
|
||||||
+ if (Version(2,7,1) <= version) {
|
|
||||||
//The FreeType library is already loaded, so symbols are available in process.
|
|
||||||
void* self = dlopen(nullptr, RTLD_LAZY);
|
|
||||||
if (self) {
|
|
||||||
@@ -185,7 +189,7 @@ public:
|
|
||||||
#if SK_FREETYPE_MINIMUM_RUNTIME_VERSION >= 0x02080000
|
|
||||||
fLightHintingIsYOnly = true;
|
|
||||||
#else
|
|
||||||
- if (major > 2 || ((major == 2 && minor > 8) || (major == 2 && minor == 8 && patch >= 0))) {
|
|
||||||
+ if (Version(2,8,0) <= version) {
|
|
||||||
fLightHintingIsYOnly = true;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
@@ -194,7 +198,7 @@ public:
|
|
||||||
#if SK_FREETYPE_MINIMUM_RUNTIME_VERSION >= 0x02080100
|
|
||||||
fGetVarAxisFlags = FT_Get_Var_Axis_Flags;
|
|
||||||
#elif SK_FREETYPE_MINIMUM_RUNTIME_VERSION & SK_FREETYPE_DLOPEN
|
|
||||||
- if (major > 2 || ((major == 2 && minor > 7) || (major == 2 && minor == 7 && patch >= 0))) {
|
|
||||||
+ if (Version(2,7,0) <= version) {
|
|
||||||
//The FreeType library is already loaded, so symbols are available in process.
|
|
||||||
void* self = dlopen(nullptr, RTLD_LAZY);
|
|
||||||
if (self) {
|
|
||||||
@@ -204,11 +208,18 @@ public:
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
- // Setup LCD filtering. This reduces color fringes for LCD smoothed glyphs.
|
|
||||||
- // The default has changed over time, so this doesn't mean the same thing to all users.
|
|
||||||
- if (FT_Library_SetLcdFilter(fLibrary, FT_LCD_FILTER_DEFAULT) == 0) {
|
|
||||||
- fIsLCDSupported = true;
|
|
||||||
- fLCDExtra = 2; //Using a filter adds one full pixel to each side.
|
|
||||||
+ fIsLCDSupported =
|
|
||||||
+ // Subpixel anti-aliasing may be unfiltered until the LCD filter is set.
|
|
||||||
+ // Newer versions may still need this, so this test with side effects must come first.
|
|
||||||
+ // The default has changed over time, so this doesn't mean the same thing to all users.
|
|
||||||
+ (FT_Library_SetLcdFilter(fLibrary, FT_LCD_FILTER_DEFAULT) == 0) ||
|
|
||||||
+
|
|
||||||
+ // In 2.8.1 and later FreeType always provides some form of subpixel anti-aliasing.
|
|
||||||
+ ((SK_FREETYPE_MINIMUM_RUNTIME_VERSION) >= 0x02080100) ||
|
|
||||||
+ (Version(2,8,1) <= version);
|
|
||||||
+
|
|
||||||
+ if (fIsLCDSupported) {
|
|
||||||
+ fLCDExtra = 2; // Using a filter may require up to one full pixel to each side.
|
|
||||||
}
|
|
||||||
}
|
|
||||||
~FreeTypeLibrary() {
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
From eb997db5527c01fd12c321a6abc52b7cff882e50 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mohamed Amir Yosef <mamir@chromium.org>
|
|
||||||
Date: Thu, 9 Jan 2020 21:22:19 +0000
|
|
||||||
Subject: [PATCH] [Sync] Enable USSPasswords by default
|
|
||||||
|
|
||||||
Change-Id: I021cd952d7a2917a8fb7203cabdac612251193df
|
|
||||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1963804
|
|
||||||
Auto-Submit: Mohamed Amir Yosef <mamir@chromium.org>
|
|
||||||
Reviewed-by: Mikel Astiz <mastiz@chromium.org>
|
|
||||||
Commit-Queue: Mohamed Amir Yosef <mamir@chromium.org>
|
|
||||||
Cr-Commit-Position: refs/heads/master@{#729902}
|
|
||||||
---
|
|
||||||
components/sync/driver/sync_driver_switches.cc | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/components/sync/driver/sync_driver_switches.cc b/components/sync/driver/sync_driver_switches.cc
|
|
||||||
index ddff8b91419..999384aa68a 100644
|
|
||||||
--- a/components/sync/driver/sync_driver_switches.cc
|
|
||||||
+++ b/components/sync/driver/sync_driver_switches.cc
|
|
||||||
@@ -55,7 +55,7 @@ const base::Feature kStopSyncInPausedState{"StopSyncInPausedState",
|
|
||||||
|
|
||||||
// Enable USS implementation of Passwords datatype.
|
|
||||||
const base::Feature kSyncUSSPasswords{"SyncUSSPasswords",
|
|
||||||
- base::FEATURE_DISABLED_BY_DEFAULT};
|
|
||||||
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
|
||||||
|
|
||||||
// Enable USS implementation of Nigori datatype.
|
|
||||||
const base::Feature kSyncUSSNigori{"SyncUSSNigori",
|
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
diff -upr chromium-89.0.4389.58.orig/google_apis/google_api_keys.cc chromium-89.0.4389.58/google_apis/google_api_keys.cc
|
||||||
|
--- chromium-89.0.4389.58.orig/google_apis/google_api_keys.cc 2021-02-24 22:37:18.494007649 +0000
|
||||||
|
+++ chromium-89.0.4389.58/google_apis/google_api_keys.cc 2021-02-24 22:35:00.865777600 +0000
|
||||||
|
@@ -154,11 +154,11 @@ class APIKeyCache {
|
||||||
|
|
||||||
|
std::string default_client_id = CalculateKeyValue(
|
||||||
|
GOOGLE_DEFAULT_CLIENT_ID,
|
||||||
|
- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), nullptr,
|
||||||
|
+ STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), ::switches::kOAuth2ClientID,
|
||||||
|
std::string(), environment.get(), command_line, gaia_config);
|
||||||
|
std::string default_client_secret = CalculateKeyValue(
|
||||||
|
GOOGLE_DEFAULT_CLIENT_SECRET,
|
||||||
|
- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), nullptr,
|
||||||
|
+ STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), ::switches::kOAuth2ClientSecret,
|
||||||
|
std::string(), environment.get(), command_line, gaia_config);
|
||||||
|
|
||||||
|
// We currently only allow overriding the baked-in values for the
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
From 5b2ff215473e0526b5b24aeff4ad90d369b21c75 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Julien Isorce <julien.isorce@chromium.org>
|
|
||||||
Date: Wed, 05 Feb 2020 17:59:59 +0000
|
|
||||||
Subject: [PATCH] Fix vaapi with GLX
|
|
||||||
|
|
||||||
The signature of ui's gl::GLImageGLX has changed a little bit
|
|
||||||
since "mplement GpuMemoryBuffers for EGL and GLX":
|
|
||||||
https://chromium-review.googlesource.com/c/chromium/src/+/1984712
|
|
||||||
|
|
||||||
Bug: 1031269
|
|
||||||
Test: build with use_vaapi=true and run with --use-gl=desktop, see
|
|
||||||
Change-Id: I80b07294b9abdfa8233aaf79f7d9ec4c58117090
|
|
||||||
https: //chromium.googlesource.com/chromium/src.git/+/refs/heads/master/docs/gpu/vaapi.md#vaapi-on-linux
|
|
||||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2036494
|
|
||||||
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
|
|
||||||
Reviewed-by: Miguel Casas <mcasas@chromium.org>
|
|
||||||
Commit-Queue: Julien Isorce <julien.isorce@chromium.org>
|
|
||||||
Cr-Commit-Position: refs/heads/master@{#738595}
|
|
||||||
---
|
|
||||||
|
|
||||||
diff --git a/media/gpu/vaapi/vaapi_picture_tfp.cc b/media/gpu/vaapi/vaapi_picture_tfp.cc
|
|
||||||
index 227c31b..b42620d 100644
|
|
||||||
--- a/media/gpu/vaapi/vaapi_picture_tfp.cc
|
|
||||||
+++ b/media/gpu/vaapi/vaapi_picture_tfp.cc
|
|
||||||
@@ -57,7 +57,7 @@
|
|
||||||
if (make_context_current_cb_ && !make_context_current_cb_.Run())
|
|
||||||
return false;
|
|
||||||
|
|
||||||
- glx_image_ = new gl::GLImageGLX(size_, GL_RGB);
|
|
||||||
+ glx_image_ = new gl::GLImageGLX(size_, gfx::BufferFormat::BGRX_8888);
|
|
||||||
if (!glx_image_->Initialize(x_pixmap_)) {
|
|
||||||
// x_pixmap_ will be freed in the destructor.
|
|
||||||
DLOG(ERROR) << "Failed creating a GLX Pixmap for TFP";
|
|
||||||
--- a/media/mojo/services/gpu_mojo_media_client.cc 2020-04-02 21:11:34.000000000 -0700
|
|
||||||
+++ b/media/mojo/services/gpu_mojo_media_client.cc 2020-04-09 00:44:58.871366432 -0700
|
|
||||||
@@ -158,6 +158,7 @@
|
|
||||||
*d3d11_supported_configs_;
|
|
||||||
|
|
||||||
#elif BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
|
|
||||||
+#if defined(OS_CHROMEOS)
|
|
||||||
if (base::FeatureList::IsEnabled(kChromeosVideoDecoder)) {
|
|
||||||
if (!cros_supported_configs_) {
|
|
||||||
cros_supported_configs_ =
|
|
||||||
@@ -167,6 +168,7 @@
|
|
||||||
*cros_supported_configs_;
|
|
||||||
return supported_config_map;
|
|
||||||
}
|
|
||||||
+#endif //defined(OS_CHROMEOS)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
auto& default_configs =
|
|
||||||
@@ -1,82 +0,0 @@
|
|||||||
From 4a04af6bbd5b1a55e2e1a7c22f13f8571c2dd7ed Mon Sep 17 00:00:00 2001
|
|
||||||
From: Julien Isorce <julien.isorce@chromium.org>
|
|
||||||
Date: Fri, 24 Jan 2020 00:30:33 +0000
|
|
||||||
Subject: [PATCH] Reland "Call PreSandboxStartup after GL initialization in GpuInit"
|
|
||||||
|
|
||||||
This is a reland of d17c53b341adcfc9e2626162536a08c9f3e24017
|
|
||||||
|
|
||||||
Original change's description:
|
|
||||||
> Call PreSandboxStartup after GL initialization in GpuInit
|
|
||||||
>
|
|
||||||
> Fixes "vaInitialize failed: unknown libva error"
|
|
||||||
> on Wayland with LIBVA_DRIVER_NAME=i965
|
|
||||||
>
|
|
||||||
> VaapiWrapper relies on the GL implementation to decide
|
|
||||||
> which display to use. If the GL implementation is none,
|
|
||||||
> then VaapiWrapper is likely to do the wrong guess resulting
|
|
||||||
> in the above error.
|
|
||||||
>
|
|
||||||
> Bug: 1041229
|
|
||||||
> Change-Id: I1255a032a5e14b3aaffe3026a886de7e6d9ff0d7
|
|
||||||
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2011640
|
|
||||||
> Reviewed-by: Maggie Chen <magchen@chromium.org>
|
|
||||||
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
||||||
> Commit-Queue: Julien Isorce <julien.isorce@chromium.org>
|
|
||||||
> Cr-Commit-Position: refs/heads/master@{#733847}
|
|
||||||
|
|
||||||
Bug: 1041229
|
|
||||||
Change-Id: I8e268596a1e2a1b3da7d7e75b8943accc85dd2d7
|
|
||||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2013806
|
|
||||||
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
|
|
||||||
Reviewed-by: Maggie Chen <magchen@chromium.org>
|
|
||||||
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
||||||
Commit-Queue: Julien Isorce <julien.isorce@chromium.org>
|
|
||||||
Cr-Commit-Position: refs/heads/master@{#734746}
|
|
||||||
---
|
|
||||||
|
|
||||||
diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
|
|
||||||
index 04883fc..4e63f7a 100644
|
|
||||||
--- a/gpu/ipc/service/gpu_init.cc
|
|
||||||
+++ b/gpu/ipc/service/gpu_init.cc
|
|
||||||
@@ -221,10 +221,16 @@
|
|
||||||
delayed_watchdog_enable = true;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#if defined(OS_LINUX)
|
|
||||||
// PreSandbox is mainly for resource handling and not related to the GPU
|
|
||||||
// driver, it doesn't need the GPU watchdog. The loadLibrary may take long
|
|
||||||
// time that killing and restarting the GPU process will not help.
|
|
||||||
- sandbox_helper_->PreSandboxStartup();
|
|
||||||
+ if (gpu_preferences_.gpu_sandbox_start_early) {
|
|
||||||
+ // The sandbox will be started earlier than usual (i.e. before GL) so
|
|
||||||
+ // execute the pre-sandbox steps now.
|
|
||||||
+ sandbox_helper_->PreSandboxStartup();
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
// Start the GPU watchdog only after anything that is expected to be time
|
|
||||||
// consuming has completed, otherwise the process is liable to be aborted.
|
|
||||||
@@ -320,6 +326,23 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+ // The ContentSandboxHelper is currently the only one implementation of
|
|
||||||
+ // gpu::GpuSandboxHelper and it has no dependency. Except on Linux where
|
|
||||||
+ // VaapiWrapper checks the GL implementation to determine which display
|
|
||||||
+ // to use. So call PreSandboxStartup after GL initialization. But make
|
|
||||||
+ // sure the watchdog is paused as loadLibrary may take a long time and
|
|
||||||
+ // restarting the GPU process will not help.
|
|
||||||
+ if (!attempted_startsandbox) {
|
|
||||||
+ if (watchdog_thread_)
|
|
||||||
+ watchdog_thread_->PauseWatchdog();
|
|
||||||
+
|
|
||||||
+ // The sandbox is not started yet.
|
|
||||||
+ sandbox_helper_->PreSandboxStartup();
|
|
||||||
+
|
|
||||||
+ if (watchdog_thread_)
|
|
||||||
+ watchdog_thread_->ResumeWatchdog();
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
bool gl_disabled = gl::GetGLImplementation() == gl::kGLImplementationDisabled;
|
|
||||||
|
|
||||||
// Compute passthrough decoder status before ComputeGpuFeatureInfo below.
|
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
|
|
||||||
+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
|
|
||||||
@@ -641,6 +641,7 @@ void VaapiVideoDecodeAccelerator::AssignPictureBuffers(
|
|
||||||
// |vpp_vaapi_wrapper_| for VaapiPicture to DownloadFromSurface() the VA's
|
|
||||||
// internal decoded frame.
|
|
||||||
if (buffer_allocation_mode_ != BufferAllocationMode::kNone &&
|
|
||||||
+ buffer_allocation_mode_ != BufferAllocationMode::kWrapVdpau &&
|
|
||||||
!vpp_vaapi_wrapper_) {
|
|
||||||
vpp_vaapi_wrapper_ = VaapiWrapper::Create(
|
|
||||||
VaapiWrapper::kVideoProcess, VAProfileNone,
|
|
||||||
@@ -665,7 +666,8 @@ void VaapiVideoDecodeAccelerator::AssignPictureBuffers(
|
|
||||||
PictureBuffer buffer = buffers[i];
|
|
||||||
buffer.set_size(requested_pic_size_);
|
|
||||||
std::unique_ptr<VaapiPicture> picture = vaapi_picture_factory_->Create(
|
|
||||||
- (buffer_allocation_mode_ == BufferAllocationMode::kNone)
|
|
||||||
+ ((buffer_allocation_mode_ == BufferAllocationMode::kNone) ||
|
|
||||||
+ (buffer_allocation_mode_ == BufferAllocationMode::kWrapVdpau))
|
|
||||||
? vaapi_wrapper_
|
|
||||||
: vpp_vaapi_wrapper_,
|
|
||||||
make_context_current_cb_, bind_image_cb_, buffer);
|
|
||||||
@@ -1093,6 +1095,12 @@ VaapiVideoDecodeAccelerator::GetSupportedProfiles() {
|
|
||||||
|
|
||||||
VaapiVideoDecodeAccelerator::BufferAllocationMode
|
|
||||||
VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
|
|
||||||
+ // NVIDIA blobs use VDPAU
|
|
||||||
+ if (VaapiWrapper::GetImplementationType() == VAImplementation::kNVIDIAVDPAU) {
|
|
||||||
+ LOG(INFO) << "VA-API driver on VDPAU backend";
|
|
||||||
+ return BufferAllocationMode::kWrapVdpau;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
// TODO(crbug.com/912295): Enable a better BufferAllocationMode for IMPORT
|
|
||||||
// |output_mode_| as well.
|
|
||||||
if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT)
|
|
||||||
@@ -1105,7 +1113,7 @@ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
|
|
||||||
// depends on the bitstream and sometimes it's not enough to cover the amount
|
|
||||||
// of frames needed by the client pipeline (see b/133733739).
|
|
||||||
// TODO(crbug.com/911754): Enable for VP9 Profile 2.
|
|
||||||
- if (IsGeminiLakeOrLater() &&
|
|
||||||
+ if (false && IsGeminiLakeOrLater() &&
|
|
||||||
(profile_ == VP9PROFILE_PROFILE0 || profile_ == VP8PROFILE_ANY)) {
|
|
||||||
// Add one to the reference frames for the one being currently egressed, and
|
|
||||||
// an extra allocation for both |client_| and |decoder_|, see
|
|
||||||
--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.h
|
|
||||||
+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.h
|
|
||||||
@@ -204,6 +204,7 @@ class MEDIA_GPU_EXPORT VaapiVideoDecodeAccelerator
|
|
||||||
// Using |client_|s provided PictureBuffers and as many internally
|
|
||||||
// allocated.
|
|
||||||
kNormal,
|
|
||||||
+ kWrapVdpau,
|
|
||||||
};
|
|
||||||
|
|
||||||
// Decides the concrete buffer allocation mode, depending on the hardware
|
|
||||||
--- a/media/gpu/vaapi/vaapi_wrapper.cc
|
|
||||||
+++ b/media/gpu/vaapi/vaapi_wrapper.cc
|
|
||||||
@@ -131,6 +131,9 @@ media::VAImplementation VendorStringToImplementationType(
|
|
||||||
} else if (base::StartsWith(va_vendor_string, "Intel iHD driver",
|
|
||||||
base::CompareCase::SENSITIVE)) {
|
|
||||||
return media::VAImplementation::kIntelIHD;
|
|
||||||
+ } else if (base::StartsWith(va_vendor_string, "Splitted-Desktop Systems VDPAU",
|
|
||||||
+ base::CompareCase::SENSITIVE)) {
|
|
||||||
+ return media::VAImplementation::kNVIDIAVDPAU;
|
|
||||||
}
|
|
||||||
return media::VAImplementation::kOther;
|
|
||||||
}
|
|
||||||
--- a/media/gpu/vaapi/vaapi_wrapper.h
|
|
||||||
+++ b/media/gpu/vaapi/vaapi_wrapper.h
|
|
||||||
@@ -79,6 +79,7 @@ enum class VAImplementation {
|
|
||||||
kIntelIHD,
|
|
||||||
kOther,
|
|
||||||
kInvalid,
|
|
||||||
+ kNVIDIAVDPAU,
|
|
||||||
};
|
|
||||||
|
|
||||||
// This class handles VA-API calls and ensures proper locking of VA-API calls
|
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
|
|
||||||
+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
|
|
||||||
@@ -641,6 +641,7 @@ void VaapiVideoDecodeAccelerator::AssignPictureBuffers(
|
|
||||||
// |vpp_vaapi_wrapper_| for VaapiPicture to DownloadFromSurface() the VA's
|
|
||||||
// internal decoded frame.
|
|
||||||
if (buffer_allocation_mode_ != BufferAllocationMode::kNone &&
|
|
||||||
+ buffer_allocation_mode_ != BufferAllocationMode::kWrapVdpau &&
|
|
||||||
!vpp_vaapi_wrapper_) {
|
|
||||||
vpp_vaapi_wrapper_ = VaapiWrapper::Create(
|
|
||||||
VaapiWrapper::kVideoProcess, VAProfileNone,
|
|
||||||
@@ -665,7 +666,8 @@ void VaapiVideoDecodeAccelerator::AssignPictureBuffers(
|
|
||||||
PictureBuffer buffer = buffers[i];
|
|
||||||
buffer.set_size(requested_pic_size_);
|
|
||||||
std::unique_ptr<VaapiPicture> picture = vaapi_picture_factory_->Create(
|
|
||||||
- (buffer_allocation_mode_ == BufferAllocationMode::kNone)
|
|
||||||
+ ((buffer_allocation_mode_ == BufferAllocationMode::kNone) ||
|
|
||||||
+ (buffer_allocation_mode_ == BufferAllocationMode::kWrapVdpau))
|
|
||||||
? vaapi_wrapper_
|
|
||||||
: vpp_vaapi_wrapper_,
|
|
||||||
make_context_current_cb_, bind_image_cb_, buffer);
|
|
||||||
@@ -1093,6 +1095,12 @@ VaapiVideoDecodeAccelerator::GetSupportedProfiles() {
|
|
||||||
|
|
||||||
VaapiVideoDecodeAccelerator::BufferAllocationMode
|
|
||||||
VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
|
|
||||||
+ // NVIDIA blobs use VDPAU
|
|
||||||
+ if (VaapiWrapper::GetImplementationType() == VAImplementation::kNVIDIAVDPAU) {
|
|
||||||
+ LOG(INFO) << "VA-API driver on VDPAU backend";
|
|
||||||
+ return BufferAllocationMode::kWrapVdpau;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
// TODO(crbug.com/912295): Enable a better BufferAllocationMode for IMPORT
|
|
||||||
// |output_mode_| as well.
|
|
||||||
if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT)
|
|
||||||
@@ -1105,7 +1113,7 @@ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
|
|
||||||
// depends on the bitstream and sometimes it's not enough to cover the amount
|
|
||||||
// of frames needed by the client pipeline (see b/133733739).
|
|
||||||
// TODO(crbug.com/911754): Enable for VP9 Profile 2.
|
|
||||||
- if (IsGeminiLakeOrLater() &&
|
|
||||||
+ if (false && IsGeminiLakeOrLater() &&
|
|
||||||
(profile_ == VP9PROFILE_PROFILE0 || profile_ == VP8PROFILE_ANY)) {
|
|
||||||
// Add one to the reference frames for the one being currently egressed, and
|
|
||||||
// an extra allocation for both |client_| and |decoder_|, see
|
|
||||||
--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.h
|
|
||||||
+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.h
|
|
||||||
@@ -204,6 +204,7 @@ class MEDIA_GPU_EXPORT VaapiVideoDecodeAccelerator
|
|
||||||
// Using |client_|s provided PictureBuffers and as many internally
|
|
||||||
// allocated.
|
|
||||||
kNormal,
|
|
||||||
+ kWrapVdpau,
|
|
||||||
};
|
|
||||||
|
|
||||||
// Decides the concrete buffer allocation mode, depending on the hardware
|
|
||||||
--- a/media/gpu/vaapi/vaapi_wrapper.cc
|
|
||||||
+++ b/media/gpu/vaapi/vaapi_wrapper.cc
|
|
||||||
@@ -131,6 +131,9 @@ media::VAImplementation VendorStringToImplementationType(
|
|
||||||
} else if (base::StartsWith(va_vendor_string, "Intel iHD driver",
|
|
||||||
base::CompareCase::SENSITIVE)) {
|
|
||||||
return media::VAImplementation::kIntelIHD;
|
|
||||||
+ } else if (base::StartsWith(va_vendor_string, "Splitted-Desktop Systems VDPAU",
|
|
||||||
+ base::CompareCase::SENSITIVE)) {
|
|
||||||
+ return media::VAImplementation::kNVIDIAVDPAU;
|
|
||||||
}
|
|
||||||
return media::VAImplementation::kOther;
|
|
||||||
}
|
|
||||||
--- a/media/gpu/vaapi/vaapi_wrapper.h
|
|
||||||
+++ b/media/gpu/vaapi/vaapi_wrapper.h
|
|
||||||
@@ -79,6 +79,7 @@ enum class VAImplementation {
|
|
||||||
kIntelIHD,
|
|
||||||
kOther,
|
|
||||||
kInvalid,
|
|
||||||
+ kNVIDIAVDPAU,
|
|
||||||
};
|
|
||||||
|
|
||||||
// This class handles VA-API calls and ensures proper locking of VA-API calls
|
|
||||||
@@ -1,39 +1,3 @@
|
|||||||
--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc 2020-10-07 09:38:47.000000000 -0700
|
|
||||||
+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc 2020-10-08 14:09:34.550174093 -0700
|
|
||||||
@@ -698,7 +698,6 @@
|
|
||||||
// The X11/ANGLE implementation can use |vaapi_wrapper_| to copy from an
|
|
||||||
// internal libva buffer into an X Pixmap without having to use a processing
|
|
||||||
// wrapper.
|
|
||||||
-#if !defined(USE_X11)
|
|
||||||
// If we aren't in BufferAllocationMode::kNone, we have to allocate a
|
|
||||||
// |vpp_vaapi_wrapper_| for VaapiPicture to DownloadFromSurface() the VA's
|
|
||||||
// internal decoded frame.
|
|
||||||
@@ -708,6 +707,7 @@
|
|
||||||
VaapiWrapper::kVideoProcess, VAProfileNone,
|
|
||||||
base::Bind(&ReportVaapiErrorToUMA,
|
|
||||||
"Media.VaapiVideoDecodeAccelerator.Vpp.VAAPIError"));
|
|
||||||
+#if !defined(USE_X11)
|
|
||||||
RETURN_AND_NOTIFY_ON_FAILURE(vpp_vaapi_wrapper_,
|
|
||||||
"Failed to initialize VppVaapiWrapper",
|
|
||||||
PLATFORM_FAILURE, );
|
|
||||||
@@ -715,11 +715,15 @@
|
|
||||||
RETURN_AND_NOTIFY_ON_FAILURE(
|
|
||||||
vpp_vaapi_wrapper_->CreateContext(gfx::Size()),
|
|
||||||
"Failed to create Context", PLATFORM_FAILURE, );
|
|
||||||
+#else
|
|
||||||
+ if (vpp_vaapi_wrapper_)
|
|
||||||
+ vpp_vaapi_wrapper_->CreateContext(gfx::Size());
|
|
||||||
+#endif // !defined(USE_X11)
|
|
||||||
}
|
|
||||||
- vaapi_wrapper_for_picture = vpp_vaapi_wrapper_;
|
|
||||||
+ vaapi_wrapper_for_picture = (vpp_vaapi_wrapper_)?
|
|
||||||
+ vpp_vaapi_wrapper_:vaapi_wrapper_for_picture;
|
|
||||||
}
|
|
||||||
|
|
||||||
-#endif // !defined(USE_X11)
|
|
||||||
|
|
||||||
for (size_t i = 0; i < buffers.size(); ++i) {
|
|
||||||
// TODO(b/139460315): Create with buffers[i] once the AMD driver issue is
|
|
||||||
--- a/ui/gl/gl_image_native_pixmap.cc 2020-05-18 11:40:06.000000000 -0700
|
--- a/ui/gl/gl_image_native_pixmap.cc 2020-05-18 11:40:06.000000000 -0700
|
||||||
+++ b/ui/gl/gl_image_native_pixmap.cc 2020-05-22 02:07:16.007770442 -0700
|
+++ b/ui/gl/gl_image_native_pixmap.cc 2020-05-22 02:07:16.007770442 -0700
|
||||||
@@ -288,6 +288,8 @@
|
@@ -288,6 +288,8 @@
|
||||||
|
|||||||
@@ -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
|
||||||
|
--- a/ui/aura/window_tree_host_platform.cc
|
||||||
|
+++ b/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
|
||||||
|
--- a/ui/aura/window_tree_host_platform_unittest.cc
|
||||||
|
+++ b/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
|
||||||
|
--- a/ui/base/x/x11_whole_screen_move_loop.cc
|
||||||
|
+++ b/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();
|
||||||
|
}
|
||||||
|
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
<IsA>app:gui</IsA>
|
<IsA>app:gui</IsA>
|
||||||
<Summary>A WebKit powered web browser</Summary>
|
<Summary>A WebKit powered web browser</Summary>
|
||||||
<Description>Chromium-browser is an open-source web browser, powered by WebKit.</Description>
|
<Description>Chromium-browser is an open-source web browser, powered by WebKit.</Description>
|
||||||
<Archive type="tarxz" sha1sum="1af51ac3807da61665e943a5958090000c587e20">http://gsdview.appspot.com/chromium-browser-official/chromium-87.0.4280.142.tar.xz</Archive>
|
<Archive type="tarxz" sha1sum="d0826ac53536e82ec517468bd8f299340125bfe3">http://gsdview.appspot.com/chromium-browser-official/chromium-89.0.4389.90.tar.xz</Archive>
|
||||||
<BuildDependencies>
|
<BuildDependencies>
|
||||||
<Dependency>alsa-lib-devel</Dependency>
|
<Dependency>alsa-lib-devel</Dependency>
|
||||||
<Dependency>at-spi2-atk-devel</Dependency>
|
<Dependency>at-spi2-atk-devel</Dependency>
|
||||||
@@ -99,19 +99,20 @@
|
|||||||
<Dependency>pipewire-0.2-devel</Dependency>
|
<Dependency>pipewire-0.2-devel</Dependency>
|
||||||
</BuildDependencies>
|
</BuildDependencies>
|
||||||
<Patches>
|
<Patches>
|
||||||
<Patch level="1">subpixel-anti-aliasing-in-FreeType-2.8.1.patch</Patch>
|
<Patch level="1">add-dependency-on-opus-in-webcodecs.patch</Patch>
|
||||||
|
<Patch level="1">use-oauth2-client-switches-as-default.patch</Patch>
|
||||||
|
<Patch level="1">x11-ozone-fix-two-edge-cases.patch</Patch>
|
||||||
|
<Patch level="1">chromium-89-EnumTable-crash.patch</Patch>
|
||||||
<Patch level="1">wayland-egl.patch</Patch>
|
<Patch level="1">wayland-egl.patch</Patch>
|
||||||
<!-- Chromium Patchset -->
|
<!-- Chromium Patchset -->
|
||||||
<!-- Source: https://github.com/stha09/chromium-patches -->
|
<!-- Source: https://github.com/stha09/chromium-patches -->
|
||||||
<Patch level="1">patches/chromium-78-protobuf-RepeatedPtrField-export.patch</Patch>
|
<Patch level="1">patches/chromium-78-protobuf-RepeatedPtrField-export.patch</Patch>
|
||||||
<Patch level="1">patches/chromium-79-gcc-protobuf-alignas.patch</Patch>
|
<Patch level="1">patches/chromium-88-compiler.patch</Patch>
|
||||||
<Patch level="1">patches/chromium-84-blink-disable-clang-format.patch</Patch>
|
<Patch level="1">patches/chromium-89-AXTreeSerializer-include.patch</Patch>
|
||||||
<Patch level="1">patches/chromium-87-CursorFactory-include.patch</Patch>
|
<Patch level="1">patches/chromium-89-dawn-include.patch</Patch>
|
||||||
<Patch level="1">patches/chromium-87-ServiceWorkerContainerHost-crash.patch</Patch>
|
<Patch level="1">patches/chromium-89-quiche-dcheck.patch</Patch>
|
||||||
<Patch level="1">patches/chromium-87-compiler.patch</Patch>
|
<Patch level="1">patches/chromium-89-quiche-private.patch</Patch>
|
||||||
<Patch level="1">patches/chromium-87-openscreen-include.patch</Patch>
|
<Patch level="1">patches/chromium-89-skia-CropRect.patch</Patch>
|
||||||
<Patch level="1">patches/chromium-88-vaapi-attribute.patch</Patch>
|
|
||||||
<Patch level="1">patches/chromium-fix-char_traits.patch</Patch>
|
|
||||||
</Patches>
|
</Patches>
|
||||||
</Source>
|
</Source>
|
||||||
|
|
||||||
@@ -191,6 +192,13 @@
|
|||||||
</Package>
|
</Package>
|
||||||
|
|
||||||
<History>
|
<History>
|
||||||
|
<Update release="22">
|
||||||
|
<Date>2021-03-18</Date>
|
||||||
|
<Version>89.0.4389.90</Version>
|
||||||
|
<Comment>Version Bump</Comment>
|
||||||
|
<Name>İdris Kalp</Name>
|
||||||
|
<Email>idriskalp@gmail.com</Email>
|
||||||
|
</Update>
|
||||||
<Update release="21">
|
<Update release="21">
|
||||||
<Date>2021-01-19</Date>
|
<Date>2021-01-19</Date>
|
||||||
<Version>87.0.4280.142</Version>
|
<Version>87.0.4280.142</Version>
|
||||||
|
|||||||
Reference in New Issue
Block a user