Compare commits

..

18 Commits
rawhide ... f30

Author SHA1 Message Date
Tom Callaway d04a819fff Merge branch 'master' into f30 2020-05-07 12:17:40 -04:00
Tom Callaway 676620aaf4 Merge branch 'master' into f30 2020-05-05 09:29:02 -04:00
Tom Callaway da85f2068e Merge branch 'master' into f30 2020-04-23 13:08:18 -04:00
Tom Callaway 05d2cf0d34 Merge branch 'master' into f30 2020-04-21 10:24:25 -04:00
Tom Callaway 5fc8858d96 Merge branch 'master' into f30 2020-04-16 19:22:04 -04:00
Tom Callaway c0fb212e0b Merge branch 'master' into f30 2020-04-15 21:28:48 -04:00
Tom Callaway e5a2fe6bf9 Merge branch 'master' into f30 2020-04-05 07:18:14 -04:00
Tom Callaway 221955b503 Merge branch 'master' into f30 2020-04-01 11:25:31 -04:00
Tom Callaway 898f03e29c Merge branch 'master' into f30 2020-03-18 09:34:43 -04:00
Tom Callaway 24713a7d83 Merge branch 'master' into f30 2020-03-11 09:32:41 -04:00
Tom Callaway f31cfdf366 Merge branch 'master' into f30 2020-01-17 13:33:09 -05:00
Tom Callaway d0fbb12446 Merge branch 'master' into f30 2020-01-09 14:28:30 -05:00
Tom Callaway f58fe84a22 Merge branch 'master' into f30 2019-12-17 15:52:53 -05:00
Tom Callaway ba5e1533ef Merge branch 'master' into f30 2019-12-11 08:53:50 -05:00
Tom Callaway 962f432818 Merge branch 'master' into f30 2019-11-25 16:21:17 -05:00
Tom Callaway 9b9e3f1757 Merge branch 'master' into f30 2019-11-07 09:05:51 -05:00
Tom Callaway f00f09bba7 Merge branch 'master' into f30 2019-11-04 12:07:50 -05:00
Tom Callaway 74d7a05332 Merge branch 'master' into f30 2019-10-29 13:47:31 -04:00
117 changed files with 4338 additions and 6768 deletions

10
.gitignore vendored
View File

@ -21,13 +21,3 @@
/Ahem.ttf
/node-v8.9.1-linux-x64.tar.gz
/node-v10.15.3-linux-x64.tar.gz
/xcb-proto-1.14.tar.xz
/NotoSansSymbols2-Regular.ttf
/NotoSansTibetan-Regular.ttf
/node-v12.22.6-linux-arm64.tar.xz
/node-v12.22.6-linux-x64.tar.xz
/node-v16.17.0-linux-x64.tar.xz
/node-v16.17.0-linux-arm64.tar.xz
/testupload
/node-v19.8.1-linux-arm64.tar.xz
/node-v19.8.1-linux-x64.tar.xz

BIN
GardinerModBug.ttf Normal file

Binary file not shown.

BIN
GardinerModCat.ttf Normal file

Binary file not shown.

View File

@ -1,9 +0,0 @@
- Widevine is not a free library and cannot be shipped in fedora.
You have to get it from Google first and install it under
/usr/lib64/chromium-browser or /opt/google/chrome if you want
Chromium to use widevine.
- Chromium uses the system ffmpeg-free library which is included in
fedora >= 36 and centos-stream 9. This library contains free video
codecs. If you want Chromium to use non-free video codecs, you need
to install libavcodec-freeworld from rpmfusion-free.

View File

@ -1,12 +0,0 @@
diff -up chromium-101.0.4951.41/content/common/user_agent.cc.fedora-user-agent chromium-101.0.4951.41/content/common/user_agent.cc
--- chromium-101.0.4951.41/content/common/user_agent.cc.fedora-user-agent 2022-04-27 20:03:36.913767022 +0000
+++ chromium-101.0.4951.41/content/common/user_agent.cc 2022-04-27 20:04:30.591942420 +0000
@@ -34,7 +34,7 @@ std::string GetUserAgentPlatform() {
#elif BUILDFLAG(IS_MAC)
return "Macintosh; ";
#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
- return "X11; "; // strange, but that's what Firefox uses
+ return "X11; Fedora; "; // strange, but that's what Firefox uses
#elif BUILDFLAG(IS_ANDROID)
return "Linux; ";
#elif BUILDFLAG(IS_FUCHSIA)

File diff suppressed because it is too large Load Diff

View File

@ -1,134 +0,0 @@
diff -up chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py.116 chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py
--- chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py.116 2022-07-05 13:31:29.434673638 +0000
+++ chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py 2022-07-05 21:52:01.884578748 +0000
@@ -29,7 +29,7 @@ import sys
import types
__author__ = "Benjamin Peterson <benjamin@python.org>"
-__version__ = "1.15.0"
+__version__ = "1.16.0"
# Useful for very coarse version differentiation.
@@ -71,6 +71,11 @@ else:
MAXSIZE = int((1 << 63) - 1)
del X
+if PY34:
+ from importlib.util import spec_from_loader
+else:
+ spec_from_loader = None
+
def _add_doc(func, doc):
"""Add documentation to a function."""
@@ -186,6 +191,11 @@ class _SixMetaPathImporter(object):
return self
return None
+ def find_spec(self, fullname, path, target=None):
+ if fullname in self.known_modules:
+ return spec_from_loader(fullname, self)
+ return None
+
def __get_module(self, fullname):
try:
return self.known_modules[fullname]
@@ -223,6 +233,12 @@ class _SixMetaPathImporter(object):
return None
get_source = get_code # same as get_code
+ def create_module(self, spec):
+ return self.load_module(spec.name)
+
+ def exec_module(self, module):
+ pass
+
_importer = _SixMetaPathImporter(__name__)
diff -up chromium-103.0.5060.53/third_party/six/src/six.py.116 chromium-103.0.5060.53/third_party/six/src/six.py
--- chromium-103.0.5060.53/third_party/six/src/six.py.116 2022-07-05 13:32:28.916687658 +0000
+++ chromium-103.0.5060.53/third_party/six/src/six.py 2022-07-05 21:59:42.561240407 +0000
@@ -29,7 +29,7 @@ import sys
import types
__author__ = "Benjamin Peterson <benjamin@python.org>"
-__version__ = "1.14.0"
+__version__ = "1.16.0"
# Useful for very coarse version differentiation.
@@ -71,6 +71,11 @@ else:
MAXSIZE = int((1 << 63) - 1)
del X
+if PY34:
+ from importlib.util import spec_from_loader
+else:
+ spec_from_loader = None
+
def _add_doc(func, doc):
"""Add documentation to a function."""
@@ -186,6 +191,11 @@ class _SixMetaPathImporter(object):
return self
return None
+ def find_spec(self, fullname, path, target=None):
+ if fullname in self.known_modules:
+ return spec_from_loader(fullname, self)
+ return None
+
def __get_module(self, fullname):
try:
return self.known_modules[fullname]
@@ -223,6 +233,12 @@ class _SixMetaPathImporter(object):
return None
get_source = get_code # same as get_code
+ def create_module(self, spec):
+ return self.load_module(spec.name)
+
+ def exec_module(self, module):
+ pass
+
_importer = _SixMetaPathImporter(__name__)
@@ -890,12 +906,11 @@ def ensure_binary(s, encoding='utf-8', e
- `str` -> encoded to `bytes`
- `bytes` -> `bytes`
"""
+ if isinstance(s, binary_type):
+ return s
if isinstance(s, text_type):
return s.encode(encoding, errors)
- elif isinstance(s, binary_type):
- return s
- else:
- raise TypeError("not expecting type '%s'" % type(s))
+ raise TypeError("not expecting type '%s'" % type(s))
def ensure_str(s, encoding='utf-8', errors='strict'):
@@ -909,12 +924,15 @@ def ensure_str(s, encoding='utf-8', erro
- `str` -> `str`
- `bytes` -> decoded to `str`
"""
- if not isinstance(s, (text_type, binary_type)):
- raise TypeError("not expecting type '%s'" % type(s))
+ # Optimization: Fast return for the common case.
+ if type(s) is str:
+ return s
if PY2 and isinstance(s, text_type):
- s = s.encode(encoding, errors)
+ return s.encode(encoding, errors)
elif PY3 and isinstance(s, binary_type):
- s = s.decode(encoding, errors)
+ return s.decode(encoding, errors)
+ elif not isinstance(s, (text_type, binary_type)):
+ raise TypeError("not expecting type '%s'" % type(s))
return s

View File

@ -1,16 +0,0 @@
diff -up chromium-107.0.5304.121/media/filters/audio_file_reader.cc.me chromium-107.0.5304.121/media/filters/audio_file_reader.cc
--- chromium-107.0.5304.121/media/filters/audio_file_reader.cc.me 2022-12-17 08:27:12.204753071 +0100
+++ chromium-107.0.5304.121/media/filters/audio_file_reader.cc 2022-12-17 08:28:40.908211808 +0100
@@ -243,10 +243,10 @@ bool AudioFileReader::OnNewFrame(
// silence from being output. In the case where we are also discarding some
// portion of the packet (as indicated by a negative pts), we further want to
// adjust the duration downward by however much exists before zero.
- if (audio_codec_ == AudioCodec::kAAC && frame->duration) {
+ if (audio_codec_ == AudioCodec::kAAC && frame->pkt_duration) {
const base::TimeDelta pkt_duration = ConvertFromTimeBase(
glue_->format_context()->streams[stream_index_]->time_base,
- frame->duration + std::min(static_cast<int64_t>(0), frame->pts));
+ frame->pkt_duration + std::min(static_cast<int64_t>(0), frame->pts));
const base::TimeDelta frame_duration =
base::Seconds(frames_read / static_cast<double>(sample_rate_));

View File

@ -1,16 +0,0 @@
diff -up chromium-107.0.5304.121/media/BUILD.gn.me chromium-107.0.5304.121/media/BUILD.gn
--- chromium-107.0.5304.121/media/BUILD.gn.me 2022-12-17 12:35:44.546779129 +0100
+++ chromium-107.0.5304.121/media/BUILD.gn 2022-12-17 12:35:59.296047028 +0100
@@ -64,12 +64,6 @@ buildflag_header("media_buildflags") {
}
}
-if (proprietary_codecs && media_use_ffmpeg) {
- assert(
- ffmpeg_branding != "Chromium",
- "proprietary codecs and ffmpeg_branding set to Chromium are incompatible")
-}
-
# Common configuration for targets in the media directory; these must not be
# exported since things like USE_NEON and USE_CRAS have different meanings
# elsewhere in the code base.

View File

@ -1,39 +0,0 @@
diff -up chromium-105.0.5195.52/build/linux/unbundle/libusb.gn.gnsystem chromium-105.0.5195.52/build/linux/unbundle/libusb.gn
--- chromium-105.0.5195.52/build/linux/unbundle/libusb.gn.gnsystem 2022-09-01 12:23:27.557313611 +0000
+++ chromium-105.0.5195.52/build/linux/unbundle/libusb.gn 2022-09-01 12:23:27.557313611 +0000
@@ -0,0 +1,24 @@
+# Copyright 2016 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/linux/pkg_config.gni")
+import("//build/shim_headers.gni")
+
+pkg_config("system_libusb") {
+ packages = [ "libusb-1.0" ]
+}
+
+shim_headers("libusb_shim") {
+ root_path = "src/libusb"
+ headers = [
+ "libusb.h",
+ ]
+}
+
+source_set("libusb") {
+ deps = [
+ ":libusb_shim",
+ ]
+ public_configs = [ ":system_libusb" ]
+}
diff -up chromium-105.0.5195.52/build/linux/unbundle/replace_gn_files.py.gnsystem chromium-105.0.5195.52/build/linux/unbundle/replace_gn_files.py
--- chromium-105.0.5195.52/build/linux/unbundle/replace_gn_files.py.gnsystem 2022-09-01 12:23:27.558313577 +0000
+++ chromium-105.0.5195.52/build/linux/unbundle/replace_gn_files.py 2022-09-01 12:36:01.870847125 +0000
@@ -52,6 +52,7 @@ REPLACEMENTS = {
'libjpeg': 'third_party/libjpeg.gni',
'libjxl' : 'third_party/libjxl/BUILD.gn',
'libpng': 'third_party/libpng/BUILD.gn',
+ 'libusb': 'third_party/libusb/BUILD.gn',
'libvpx': 'third_party/libvpx/BUILD.gn',
'libwebp': 'third_party/libwebp/BUILD.gn',
'libxml': 'third_party/libxml/BUILD.gn',

View File

@ -1,36 +0,0 @@
diff -up chromium-108.0.5359.124/third_party/wayland/src/src/wayland-shm.c.me chromium-108.0.5359.124/third_party/wayland/src/src/wayland-shm.c
--- chromium-108.0.5359.124/third_party/wayland/src/src/wayland-shm.c.me 2022-12-24 11:08:03.212333476 +0100
+++ chromium-108.0.5359.124/third_party/wayland/src/src/wayland-shm.c 2022-12-24 11:08:18.316606155 +0100
@@ -44,7 +44,7 @@
#include <signal.h>
#include <pthread.h>
#include <errno.h>
-#include <fcntl.h>
+#include <linux/fcntl.h>
#include "wayland-os.h"
#include "wayland-util.h"
diff -up chromium-102.0.5005.115/v8/src/base/platform/platform-posix.cc.el7-memfd-include chromium-102.0.5005.115/v8/src/base/platform/platform-posix.cc
--- chromium-102.0.5005.115/v8/src/base/platform/platform-posix.cc.el7-memfd-include 2022-06-15 10:52:49.553817031 -0400
+++ chromium-102.0.5005.115/v8/src/base/platform/platform-posix.cc 2022-06-15 10:56:15.775173013 -0400
@@ -56,6 +56,7 @@
#if V8_OS_LINUX
#include <sys/prctl.h> // for prctl
+#include <linux/memfd.h> // for MFD_CLOEXEC
#endif
#if defined(V8_OS_FUCHSIA)
diff -up iridium-browser-2022.12.108.1/third_party/wayland/src/cursor/os-compatibility.c.me iridium-browser-2022.12.108.1/third_party/wayland/src/cursor/os-compatibility.c
--- iridium-browser-2022.12.108.1/third_party/wayland/src/cursor/os-compatibility.c.me 2022-12-08 21:59:43.502200984 +0100
+++ iridium-browser-2022.12.108.1/third_party/wayland/src/cursor/os-compatibility.c 2022-12-08 22:13:53.375653343 +0100
@@ -29,7 +29,8 @@
#include <sys/types.h>
#include <unistd.h>
-#include <fcntl.h>
+#include <linux/fcntl.h> // for F_SEAL_SHRINK, F_ADD_SEALS, F_SEAL_SEAL
+#include <linux/memfd.h> // for MFD_CLOEXEC
#include <errno.h>
#include <signal.h>
#include <string.h>

View File

@ -1,11 +0,0 @@
diff -up chromium-108.0.5359.124/third_party/wayland/src/src/scanner.c.me chromium-108.0.5359.124/third_party/wayland/src/src/scanner.c
--- chromium-108.0.5359.124/third_party/wayland/src/src/scanner.c.me 2022-12-27 16:14:22.507496575 +0100
+++ chromium-108.0.5359.124/third_party/wayland/src/src/scanner.c 2022-12-27 16:35:17.617573610 +0100
@@ -26,6 +26,7 @@
*/
#include "wayland-version.h"
+#include "config.h" // HAVE_STRNDUP
#include <stdbool.h>
#include <stdio.h>

View File

@ -1,294 +0,0 @@
diff -up chromium-108.0.5359.124/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc.revert-new-channel-layout-api chromium-108.0.5359.124/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc
--- chromium-108.0.5359.124/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc.revert-new-channel-layout-api 2022-12-14 01:39:52.000000000 +0100
+++ chromium-108.0.5359.124/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc 2023-01-04 21:44:23.098276796 +0100
@@ -74,7 +74,7 @@ void CdmAudioDecoderConfigToAVCodecConte
codec_context->sample_fmt = AV_SAMPLE_FMT_NONE;
}
- codec_context->ch_layout.nb_channels = config.channel_count;
+ codec_context->channels = config.channel_count;
codec_context->sample_rate = config.samples_per_second;
if (config.extra_data) {
@@ -124,8 +124,8 @@ void CopySamples(cdm::AudioFormat cdm_fo
case cdm::kAudioFormatPlanarS16:
case cdm::kAudioFormatPlanarF32: {
const int decoded_size_per_channel =
- decoded_audio_size / av_frame.ch_layout.nb_channels;
- for (int i = 0; i < av_frame.ch_layout.nb_channels; ++i) {
+ decoded_audio_size / av_frame.channels;
+ for (int i = 0; i < av_frame.channels; ++i) {
memcpy(output_buffer, av_frame.extended_data[i],
decoded_size_per_channel);
output_buffer += decoded_size_per_channel;
@@ -185,14 +185,13 @@ bool FFmpegCdmAudioDecoder::Initialize(
// Success!
decoding_loop_ = std::make_unique<FFmpegDecodingLoop>(codec_context_.get());
samples_per_second_ = config.samples_per_second;
- bytes_per_frame_ =
- codec_context_->ch_layout.nb_channels * config.bits_per_channel / 8;
+ bytes_per_frame_ = codec_context_->channels * config.bits_per_channel / 8;
output_timestamp_helper_ =
std::make_unique<AudioTimestampHelper>(config.samples_per_second);
is_initialized_ = true;
// Store initial values to guard against midstream configuration changes.
- channels_ = codec_context_->ch_layout.nb_channels;
+ channels_ = codec_context_->channels;
av_sample_format_ = codec_context_->sample_fmt;
return true;
@@ -292,19 +291,17 @@ cdm::Status FFmpegCdmAudioDecoder::Decod
for (auto& frame : audio_frames) {
int decoded_audio_size = 0;
if (frame->sample_rate != samples_per_second_ ||
- frame->ch_layout.nb_channels != channels_ ||
- frame->format != av_sample_format_) {
+ frame->channels != channels_ || frame->format != av_sample_format_) {
DLOG(ERROR) << "Unsupported midstream configuration change!"
<< " Sample Rate: " << frame->sample_rate << " vs "
- << samples_per_second_
- << ", Channels: " << frame->ch_layout.nb_channels << " vs "
- << channels_ << ", Sample Format: " << frame->format << " vs "
- << av_sample_format_;
+ << samples_per_second_ << ", Channels: " << frame->channels
+ << " vs " << channels_ << ", Sample Format: " << frame->format
+ << " vs " << av_sample_format_;
return cdm::kDecodeError;
}
decoded_audio_size = av_samples_get_buffer_size(
- nullptr, codec_context_->ch_layout.nb_channels, frame->nb_samples,
+ nullptr, codec_context_->channels, frame->nb_samples,
codec_context_->sample_fmt, 1);
if (!decoded_audio_size)
continue;
@@ -323,9 +320,9 @@ bool FFmpegCdmAudioDecoder::OnNewFrame(
size_t* total_size,
std::vector<std::unique_ptr<AVFrame, ScopedPtrAVFreeFrame>>* audio_frames,
AVFrame* frame) {
- *total_size += av_samples_get_buffer_size(
- nullptr, codec_context_->ch_layout.nb_channels, frame->nb_samples,
- codec_context_->sample_fmt, 1);
+ *total_size += av_samples_get_buffer_size(nullptr, codec_context_->channels,
+ frame->nb_samples,
+ codec_context_->sample_fmt, 1);
audio_frames->emplace_back(av_frame_clone(frame));
return true;
}
diff -up chromium-108.0.5359.124/media/ffmpeg/ffmpeg_common.cc.revert-new-channel-layout-api chromium-108.0.5359.124/media/ffmpeg/ffmpeg_common.cc
--- chromium-108.0.5359.124/media/ffmpeg/ffmpeg_common.cc.revert-new-channel-layout-api 2022-12-14 01:39:52.000000000 +0100
+++ chromium-108.0.5359.124/media/ffmpeg/ffmpeg_common.cc 2023-01-04 21:52:59.674165082 +0100
@@ -353,11 +353,9 @@ bool AVCodecContextToAudioDecoderConfig(
codec_context->sample_fmt, codec_context->codec_id);
ChannelLayout channel_layout =
- codec_context->ch_layout.nb_channels > 8
+ codec_context->channels > 8
? CHANNEL_LAYOUT_DISCRETE
- : ChannelLayoutToChromeChannelLayout(
- codec_context->ch_layout.u.mask,
- codec_context->ch_layout.nb_channels);
+ : ChannelLayoutToChromeChannelLayout(codec_context->channel_layout, codec_context->channels);
switch (codec) {
// For AC3/EAC3 we enable only demuxing, but not decoding, so FFmpeg does
@@ -409,7 +407,7 @@ bool AVCodecContextToAudioDecoderConfig(
extra_data, encryption_scheme, seek_preroll,
codec_context->delay);
if (channel_layout == CHANNEL_LAYOUT_DISCRETE)
- config->SetChannelsForDiscrete(codec_context->ch_layout.nb_channels);
+ config->SetChannelsForDiscrete(codec_context->channels);
#if BUILDFLAG(ENABLE_PLATFORM_AC3_EAC3_AUDIO)
// These are bitstream formats unknown to ffmpeg, so they don't have
@@ -478,7 +476,7 @@ void AudioDecoderConfigToAVCodecContext(
// TODO(scherkus): should we set |channel_layout|? I'm not sure if FFmpeg uses
// said information to decode.
- codec_context->ch_layout.nb_channels = config.channels();
+ codec_context->channels = config.channels();
codec_context->sample_rate = config.samples_per_second();
if (config.extra_data().empty()) {
diff -up chromium-108.0.5359.124/media/filters/audio_file_reader.cc.revert-new-channel-layout-api chromium-108.0.5359.124/media/filters/audio_file_reader.cc
--- chromium-108.0.5359.124/media/filters/audio_file_reader.cc.revert-new-channel-layout-api 2023-01-04 21:44:23.095276762 +0100
+++ chromium-108.0.5359.124/media/filters/audio_file_reader.cc 2023-01-04 21:44:23.098276796 +0100
@@ -113,15 +113,14 @@ bool AudioFileReader::OpenDecoder() {
// Verify the channel layout is supported by Chrome. Acts as a sanity check
// against invalid files. See http://crbug.com/171962
- if (ChannelLayoutToChromeChannelLayout(
- codec_context_->ch_layout.u.mask,
- codec_context_->ch_layout.nb_channels) ==
+ if (ChannelLayoutToChromeChannelLayout(codec_context_->channel_layout,
+ codec_context_->channels) ==
CHANNEL_LAYOUT_UNSUPPORTED) {
return false;
}
// Store initial values to guard against midstream configuration changes.
- channels_ = codec_context_->ch_layout.nb_channels;
+ channels_ = codec_context_->channels;
audio_codec_ = CodecIDToAudioCodec(codec_context_->codec_id);
sample_rate_ = codec_context_->sample_rate;
av_sample_format_ = codec_context_->sample_fmt;
@@ -224,7 +223,7 @@ bool AudioFileReader::OnNewFrame(
if (frames_read < 0)
return false;
- const int channels = frame->ch_layout.nb_channels;
+ const int channels = frame->channels;
if (frame->sample_rate != sample_rate_ || channels != channels_ ||
frame->format != av_sample_format_) {
DLOG(ERROR) << "Unsupported midstream configuration change!"
diff -up chromium-108.0.5359.124/media/filters/audio_file_reader_unittest.cc.revert-new-channel-layout-api chromium-108.0.5359.124/media/filters/audio_file_reader_unittest.cc
--- chromium-108.0.5359.124/media/filters/audio_file_reader_unittest.cc.revert-new-channel-layout-api 2022-12-14 01:39:52.000000000 +0100
+++ chromium-108.0.5359.124/media/filters/audio_file_reader_unittest.cc 2023-01-04 21:44:23.098276796 +0100
@@ -121,11 +121,11 @@ class AudioFileReaderTest : public testi
EXPECT_FALSE(reader_->Open());
}
- void RunTestFailingDecode(const char* fn, int expect_read = 0) {
+ void RunTestFailingDecode(const char* fn) {
Initialize(fn);
EXPECT_TRUE(reader_->Open());
std::vector<std::unique_ptr<AudioBus>> decoded_audio_packets;
- EXPECT_EQ(reader_->Read(&decoded_audio_packets), expect_read);
+ EXPECT_EQ(reader_->Read(&decoded_audio_packets), 0);
}
void RunTestPartialDecode(const char* fn) {
@@ -219,7 +219,7 @@ TEST_F(AudioFileReaderTest, AAC_ADTS) {
}
TEST_F(AudioFileReaderTest, MidStreamConfigChangesFail) {
- RunTestFailingDecode("midstream_config_change.mp3", 42624);
+ RunTestFailingDecode("midstream_config_change.mp3");
}
#endif
diff -up chromium-108.0.5359.124/media/filters/audio_video_metadata_extractor.cc.revert-new-channel-layout-api chromium-108.0.5359.124/media/filters/audio_video_metadata_extractor.cc
--- chromium-108.0.5359.124/media/filters/audio_video_metadata_extractor.cc.revert-new-channel-layout-api 2022-12-14 01:39:52.000000000 +0100
+++ chromium-108.0.5359.124/media/filters/audio_video_metadata_extractor.cc 2023-01-04 21:44:23.098276796 +0100
@@ -113,15 +113,6 @@ bool AudioVideoMetadataExtractor::Extrac
if (!stream)
continue;
- void* display_matrix =
- av_stream_get_side_data(stream, AV_PKT_DATA_DISPLAYMATRIX, nullptr);
- if (display_matrix) {
- rotation_ = VideoTransformation::FromFFmpegDisplayMatrix(
- static_cast<int32_t*>(display_matrix))
- .rotation;
- info.tags["rotate"] = base::NumberToString(rotation_);
- }
-
// Extract dictionary from streams also. Needed for containers that attach
// metadata to contained streams instead the container itself, like OGG.
ExtractDictionary(stream->metadata, &info.tags);
@@ -264,6 +255,8 @@ void AudioVideoMetadataExtractor::Extrac
if (raw_tags->find(tag->key) == raw_tags->end())
(*raw_tags)[tag->key] = tag->value;
+ if (ExtractInt(tag, "rotate", &rotation_))
+ continue;
if (ExtractString(tag, "album", &album_))
continue;
if (ExtractString(tag, "artist", &artist_))
diff -up chromium-108.0.5359.124/media/filters/ffmpeg_aac_bitstream_converter.cc.revert-new-channel-layout-api chromium-108.0.5359.124/media/filters/ffmpeg_aac_bitstream_converter.cc
--- chromium-108.0.5359.124/media/filters/ffmpeg_aac_bitstream_converter.cc.revert-new-channel-layout-api 2022-12-14 01:39:52.000000000 +0100
+++ chromium-108.0.5359.124/media/filters/ffmpeg_aac_bitstream_converter.cc 2023-01-04 21:44:23.099276807 +0100
@@ -195,15 +195,14 @@ bool FFmpegAACBitstreamConverter::Conver
if (!header_generated_ || codec_ != stream_codec_parameters_->codec_id ||
audio_profile_ != stream_codec_parameters_->profile ||
sample_rate_index_ != sample_rate_index ||
- channel_configuration_ !=
- stream_codec_parameters_->ch_layout.nb_channels ||
+ channel_configuration_ != stream_codec_parameters_->channels ||
frame_length_ != header_plus_packet_size) {
header_generated_ =
GenerateAdtsHeader(stream_codec_parameters_->codec_id,
0, // layer
stream_codec_parameters_->profile, sample_rate_index,
0, // private stream
- stream_codec_parameters_->ch_layout.nb_channels,
+ stream_codec_parameters_->channels,
0, // originality
0, // home
0, // copyrighted_stream
@@ -215,7 +214,7 @@ bool FFmpegAACBitstreamConverter::Conver
codec_ = stream_codec_parameters_->codec_id;
audio_profile_ = stream_codec_parameters_->profile;
sample_rate_index_ = sample_rate_index;
- channel_configuration_ = stream_codec_parameters_->ch_layout.nb_channels;
+ channel_configuration_ = stream_codec_parameters_->channels;
frame_length_ = header_plus_packet_size;
}
diff -up chromium-108.0.5359.124/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc.revert-new-channel-layout-api chromium-108.0.5359.124/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
--- chromium-108.0.5359.124/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc.revert-new-channel-layout-api 2022-12-14 01:39:52.000000000 +0100
+++ chromium-108.0.5359.124/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc 2023-01-04 21:44:23.099276807 +0100
@@ -34,7 +34,7 @@ class FFmpegAACBitstreamConverterTest :
memset(&test_parameters_, 0, sizeof(AVCodecParameters));
test_parameters_.codec_id = AV_CODEC_ID_AAC;
test_parameters_.profile = FF_PROFILE_AAC_MAIN;
- test_parameters_.ch_layout.nb_channels = 2;
+ test_parameters_.channels = 2;
test_parameters_.extradata = extradata_header_;
test_parameters_.extradata_size = sizeof(extradata_header_);
}
diff -up chromium-108.0.5359.124/media/filters/ffmpeg_audio_decoder.cc.revert-new-channel-layout-api chromium-108.0.5359.124/media/filters/ffmpeg_audio_decoder.cc
--- chromium-108.0.5359.124/media/filters/ffmpeg_audio_decoder.cc.revert-new-channel-layout-api 2022-12-14 01:39:52.000000000 +0100
+++ chromium-108.0.5359.124/media/filters/ffmpeg_audio_decoder.cc 2023-01-04 21:44:23.099276807 +0100
@@ -28,7 +28,7 @@ namespace media {
// Return the number of channels from the data in |frame|.
static inline int DetermineChannels(AVFrame* frame) {
- return frame->ch_layout.nb_channels;
+ return frame->channels;
}
// Called by FFmpeg's allocation routine to allocate a buffer. Uses
@@ -233,7 +233,7 @@ bool FFmpegAudioDecoder::OnNewFrame(cons
// Translate unsupported into discrete layouts for discrete configurations;
// ffmpeg does not have a labeled discrete configuration internally.
ChannelLayout channel_layout = ChannelLayoutToChromeChannelLayout(
- codec_context_->ch_layout.u.mask, codec_context_->ch_layout.nb_channels);
+ codec_context_->channel_layout, codec_context_->channels);
if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED &&
config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE) {
channel_layout = CHANNEL_LAYOUT_DISCRETE;
@@ -350,11 +350,11 @@ bool FFmpegAudioDecoder::ConfigureDecode
// Success!
av_sample_format_ = codec_context_->sample_fmt;
- if (codec_context_->ch_layout.nb_channels != config.channels()) {
+ if (codec_context_->channels != config.channels()) {
MEDIA_LOG(ERROR, media_log_)
<< "Audio configuration specified " << config.channels()
<< " channels, but FFmpeg thinks the file contains "
- << codec_context_->ch_layout.nb_channels << " channels";
+ << codec_context_->channels << " channels";
ReleaseFFmpegResources();
state_ = DecoderState::kUninitialized;
return false;
@@ -405,7 +405,7 @@ int FFmpegAudioDecoder::GetAudioBuffer(s
if (frame->nb_samples <= 0)
return AVERROR(EINVAL);
- if (s->ch_layout.nb_channels != channels) {
+ if (s->channels != channels) {
DLOG(ERROR) << "AVCodecContext and AVFrame disagree on channel count.";
return AVERROR(EINVAL);
}
@@ -438,8 +438,7 @@ int FFmpegAudioDecoder::GetAudioBuffer(s
ChannelLayout channel_layout =
config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE
? CHANNEL_LAYOUT_DISCRETE
- : ChannelLayoutToChromeChannelLayout(s->ch_layout.u.mask,
- s->ch_layout.nb_channels);
+ : ChannelLayoutToChromeChannelLayout(s->channel_layout, s->channels);
if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED) {
DLOG(ERROR) << "Unsupported channel layout.";

View File

@ -1,36 +0,0 @@
diff -up chromium-108.0.5359.124/net/filter/brotli_source_stream.cc.me chromium-108.0.5359.124/net/filter/brotli_source_stream.cc
--- chromium-108.0.5359.124/net/filter/brotli_source_stream.cc.me 2022-12-30 16:00:58.320318310 +0100
+++ chromium-108.0.5359.124/net/filter/brotli_source_stream.cc 2022-12-30 16:01:24.928581631 +0100
@@ -10,7 +10,7 @@
#include "base/memory/raw_ptr.h"
#include "base/metrics/histogram_macros.h"
#include "net/base/io_buffer.h"
-#include "third_party/brotli/include/brotli/decode.h"
+#include <brotli/decode.h>
namespace net {
diff -up chromium-108.0.5359.124/net/ssl/cert_compression.cc.me chromium-108.0.5359.124/net/ssl/cert_compression.cc
--- chromium-108.0.5359.124/net/ssl/cert_compression.cc.me 2022-12-30 15:57:59.859543993 +0100
+++ chromium-108.0.5359.124/net/ssl/cert_compression.cc 2022-12-30 16:00:48.560221723 +0100
@@ -9,7 +9,7 @@
#include "third_party/boringssl/src/include/openssl/ssl.h"
#if !defined(NET_DISABLE_BROTLI)
-#include "third_party/brotli/include/brotli/decode.h"
+#include <brotli/decode.h>
#endif
namespace net {
diff -up chromium-108.0.5359.124/ui/base/resource/resource_bundle.cc.me chromium-108.0.5359.124/ui/base/resource/resource_bundle.cc
--- chromium-108.0.5359.124/ui/base/resource/resource_bundle.cc.me 2022-12-30 21:12:27.058346797 +0100
+++ chromium-108.0.5359.124/ui/base/resource/resource_bundle.cc 2022-12-30 21:13:58.363183795 +0100
@@ -31,7 +31,7 @@
#include "build/build_config.h"
#include "net/filter/gzip_header.h"
#include "skia/ext/image_operations.h"
-#include "third_party/brotli/include/brotli/decode.h"
+#include <brotli/decode.h>
#include "third_party/skia/include/core/SkBitmap.h"
#include "third_party/skia/include/core/SkColor.h"
#include "third_party/zlib/google/compression_utils.h"

View File

@ -1,12 +0,0 @@
diff -up chromium-108.0.5359.124/media/audio/audio_opus_encoder.h.me chromium-108.0.5359.124/media/audio/audio_opus_encoder.h
--- chromium-108.0.5359.124/media/audio/audio_opus_encoder.h.me 2022-12-31 09:49:17.100277502 +0100
+++ chromium-108.0.5359.124/media/audio/audio_opus_encoder.h 2022-12-31 09:49:57.101016710 +0100
@@ -12,7 +12,7 @@
#include "media/base/audio_converter.h"
#include "media/base/audio_encoder.h"
#include "media/base/audio_timestamp_helper.h"
-#include "third_party/opus/src/include/opus.h"
+#include <opus/opus.h>
namespace media {

View File

@ -1,32 +0,0 @@
diff -up chromium-108.0.5359.124/chrome/common/chrome_paths.cc.widevine-other-locations chromium-108.0.5359.124/chrome/common/chrome_paths.cc
--- chromium-108.0.5359.124/chrome/common/chrome_paths.cc.widevine-other-locations 2023-01-02 11:10:03.951330305 +0100
+++ chromium-108.0.5359.124/chrome/common/chrome_paths.cc 2023-01-02 13:42:26.781022150 +0100
@@ -319,6 +319,16 @@ bool PathProvider(int key, base::FilePat
#if BUILDFLAG(ENABLE_WIDEVINE)
case chrome::DIR_BUNDLED_WIDEVINE_CDM:
+ base::PathService::Get(base::DIR_HOME, &cur);
+ cur = cur.Append(FILE_PATH_LITERAL(".config/chromium/WidevineCdm"));
+ if (base::PathExists(cur)) {
+ break;
+ }
+ // Yes, this has an arch hardcoded in the path, but at this time, it is the only place to find libwidevinecdm.so
+ if (base::PathExists(base::FilePath(FILE_PATH_LITERAL("/opt/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so")))) {
+ cur = base::FilePath(FILE_PATH_LITERAL("/opt/google/chrome/WidevineCdm"));
+ break;
+ }
if (!GetComponentDirectory(&cur))
return false;
cur = cur.AppendASCII(kWidevineCdmBaseDirectory);
diff -up chromium-108.0.5359.124/third_party/widevine/cdm/BUILD.gn.widevine-other-locations chromium-108.0.5359.124/third_party/widevine/cdm/BUILD.gn
--- chromium-108.0.5359.124/third_party/widevine/cdm/BUILD.gn.widevine-other-locations 2023-01-02 11:10:45.953114153 +0100
+++ chromium-108.0.5359.124/third_party/widevine/cdm/BUILD.gn 2023-01-02 11:10:45.953114153 +0100
@@ -22,7 +22,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",
"ENABLE_MEDIA_FOUNDATION_WIDEVINE_CDM=$enable_media_foundation_widevine_cdm",
]

View File

@ -1,64 +0,0 @@
diff -up chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc.system-minizip chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc
--- chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc.system-minizip 2023-01-04 20:20:37.000000000 +0100
+++ chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc 2023-01-08 15:48:08.654793086 +0100
@@ -27,8 +27,8 @@ limitations under the License.
#include "tensorflow_lite_support/cc/port/status_macros.h"
#include "tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h"
#include "tensorflow_lite_support/metadata/metadata_schema_generated.h"
-#include "third_party/zlib/contrib/minizip/ioapi.h"
-#include "third_party/zlib/contrib/minizip/unzip.h"
+#include <minizip/ioapi.h>
+#include <minizip/unzip.h>
namespace tflite {
namespace metadata {
diff -up chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc.system-minizip chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc
--- chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc.system-minizip 2023-01-04 20:20:37.000000000 +0100
+++ chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc 2023-01-08 15:48:08.655793097 +0100
@@ -26,8 +26,8 @@ limitations under the License.
#include "tensorflow_lite_support/cc/port/statusor.h"
#include "tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h"
#include "tensorflow_lite_support/metadata/metadata_schema_generated.h"
-#include "third_party/zlib/contrib/minizip/ioapi.h"
-#include "third_party/zlib/contrib/minizip/unzip.h"
+#include <minizip/ioapi.h>
+#include <minizip/zip.h>
namespace tflite {
namespace metadata {
diff -up chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc.system-minizip chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc
--- chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc.system-minizip 2023-01-08 15:48:08.655793097 +0100
+++ chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc 2023-01-08 15:53:17.498329640 +0100
@@ -19,7 +19,7 @@ limitations under the License.
#include <cstdio>
#include "absl/strings/string_view.h" // from @com_google_absl
-#include "third_party/zlib/contrib/minizip/ioapi.h"
+#include <minizip/ioapi.h>
namespace tflite {
namespace metadata {
diff -up chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc.system-minizip chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc
--- chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc.system-minizip 2023-01-04 20:20:37.000000000 +0100
+++ chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc 2023-01-08 15:48:08.655793097 +0100
@@ -19,7 +19,7 @@ limitations under the License.
#include <cstdio>
#include "absl/strings/string_view.h" // from @com_google_absl
-#include "third_party/zlib/contrib/minizip/ioapi.h"
+#include <minizip/ioapi.h>
namespace tflite {
namespace metadata {
diff -up chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h.system-minizip chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h
--- chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h.system-minizip 2023-01-04 20:20:37.000000000 +0100
+++ chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h 2023-01-08 15:48:08.655793097 +0100
@@ -19,7 +19,7 @@ limitations under the License.
#include <cstdlib>
#include "absl/strings/string_view.h" // from @com_google_absl
-#include "third_party/zlib/contrib/minizip/ioapi.h"
+#include <minizip/ioapi.h>
namespace tflite {
namespace metadata {

View File

@ -1,141 +0,0 @@
diff -up chromium-110.0.5481.77/sandbox/policy/linux/bpf_hardware_video_decoding_policy_linux.cc.me chromium-110.0.5481.77/sandbox/policy/linux/bpf_hardware_video_decoding_policy_linux.cc
--- chromium-110.0.5481.77/sandbox/policy/linux/bpf_hardware_video_decoding_policy_linux.cc.me 2023-02-08 20:34:02.700010846 +0100
+++ chromium-110.0.5481.77/sandbox/policy/linux/bpf_hardware_video_decoding_policy_linux.cc 2023-02-08 20:35:30.455580670 +0100
@@ -4,7 +4,9 @@
#include "sandbox/policy/linux/bpf_hardware_video_decoding_policy_linux.h"
-#include <linux/kcmp.h>
+#ifndef KCMP_FILE
+#define KCMP_FILE 0
+#endif
#include "media/gpu/buildflags.h"
#include "sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h"
diff -up chromium-99.0.4844.51/mojo/core/channel_linux.cc.epel7-header-workarounds chromium-99.0.4844.51/mojo/core/channel_linux.cc
--- chromium-99.0.4844.51/mojo/core/channel_linux.cc.epel7-header-workarounds 2022-02-28 19:05:54.000000000 -0500
+++ chromium-99.0.4844.51/mojo/core/channel_linux.cc 2022-03-05 14:50:49.876812909 -0500
@@ -44,6 +44,25 @@
#include "base/android/build_info.h"
#endif
+#ifndef F_LINUX_SPECIFIC_BASE
+#define F_LINUX_SPECIFIC_BASE 1024
+#endif
+#ifndef F_SEAL_SEAL
+#define F_SEAL_SEAL 0x0001
+#endif
+#ifndef F_SEAL_SHRINK
+#define F_SEAL_SHRINK 0x0002
+#endif
+#ifndef F_SEAL_GROW
+#define F_SEAL_GROW 0x0004
+#endif
+#ifndef F_ADD_SEALS
+#define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9)
+#endif
+#ifndef F_GET_SEALS
+#define F_GET_SEALS (F_LINUX_SPECIFIC_BASE + 10)
+#endif
+
#ifndef EFD_ZERO_ON_WAKE
#define EFD_ZERO_ON_WAKE O_NOFOLLOW
#endif
diff -up chromium-99.0.4844.51/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc.epel7-header-workarounds chromium-99.0.4844.51/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
--- chromium-99.0.4844.51/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc.epel7-header-workarounds 2022-03-05 14:50:49.877812915 -0500
+++ chromium-99.0.4844.51/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc 2022-03-05 15:15:02.536867009 -0500
@@ -53,6 +53,25 @@
#endif // BUILDFLAG(IS_ANDROID)
+#ifndef F_LINUX_SPECIFIC_BASE
+#define F_LINUX_SPECIFIC_BASE 1024
+#endif
+#ifndef F_SEAL_SEAL
+#define F_SEAL_SEAL 0x0001
+#endif
+#ifndef F_SEAL_SHRINK
+#define F_SEAL_SHRINK 0x0002
+#endif
+#ifndef F_SEAL_GROW
+#define F_SEAL_GROW 0x0004
+#endif
+#ifndef F_ADD_SEALS
+#define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9)
+#endif
+#ifndef F_GET_SEALS
+#define F_GET_SEALS (F_LINUX_SPECIFIC_BASE + 10)
+#endif
+
#if defined(__arm__) && !defined(MAP_STACK)
#define MAP_STACK 0x20000 // Daisy build environment has old headers.
#endif
diff -up chromium-99.0.4844.51/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc.epel7-header-workarounds chromium-99.0.4844.51/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc
--- chromium-99.0.4844.51/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc.epel7-header-workarounds 2022-02-28 19:05:55.000000000 -0500
+++ chromium-99.0.4844.51/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc 2022-03-05 14:50:49.877812915 -0500
@@ -6,7 +6,24 @@
#include <errno.h>
#include <fcntl.h>
-#include <linux/kcmp.h>
+#ifndef KCMP_FILE
+#define KCMP_FILE 0
+#endif
+#ifndef F_LINUX_SPECIFIC_BASE
+#define F_LINUX_SPECIFIC_BASE 1024
+#endif
+#ifndef F_SEAL_SEAL
+#define F_SEAL_SEAL 0x0001
+#endif
+#ifndef F_SEAL_SHRINK
+#define F_SEAL_SHRINK 0x0002
+#endif
+#ifndef F_SEAL_GROW
+#define F_SEAL_GROW 0x0004
+#endif
+#ifndef F_ADD_SEALS
+#define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9)
+#endif
#include <sys/socket.h>
// Some arch's (arm64 for instance) unistd.h don't pull in symbols used here
diff -up chromium-99.0.4844.51/sandbox/policy/linux/bpf_gpu_policy_linux.cc.epel7-header-workarounds chromium-99.0.4844.51/sandbox/policy/linux/bpf_gpu_policy_linux.cc
--- chromium-99.0.4844.51/sandbox/policy/linux/bpf_gpu_policy_linux.cc.epel7-header-workarounds 2022-02-28 19:05:55.000000000 -0500
+++ chromium-99.0.4844.51/sandbox/policy/linux/bpf_gpu_policy_linux.cc 2022-03-05 14:50:49.877812915 -0500
@@ -22,6 +22,22 @@
#include "sandbox/policy/linux/sandbox_linux.h"
#include "sandbox/policy/linux/sandbox_seccomp_bpf_linux.h"
+#ifndef F_LINUX_SPECIFIC_BASE
+#define F_LINUX_SPECIFIC_BASE 1024
+#endif
+#ifndef F_SEAL_SEAL
+#define F_SEAL_SEAL 0x0001
+#endif
+#ifndef F_SEAL_SHRINK
+#define F_SEAL_SHRINK 0x0002
+#endif
+#ifndef F_SEAL_GROW
+#define F_SEAL_GROW 0x0004
+#endif
+#ifndef F_ADD_SEALS
+#define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9)
+#endif
+
using sandbox::bpf_dsl::AllOf;
using sandbox::bpf_dsl::Allow;
using sandbox::bpf_dsl::Arg;
diff -up chromium-99.0.4844.51/ui/events/ozone/evdev/event_converter_evdev_impl.cc.epel7-header-workarounds chromium-99.0.4844.51/ui/events/ozone/evdev/event_converter_evdev_impl.cc
--- chromium-99.0.4844.51/ui/events/ozone/evdev/event_converter_evdev_impl.cc.epel7-header-workarounds 2022-02-28 19:06:49.000000000 -0500
+++ chromium-99.0.4844.51/ui/events/ozone/evdev/event_converter_evdev_impl.cc 2022-03-05 14:50:49.877812915 -0500
@@ -23,6 +23,10 @@
#include "ui/events/ozone/evdev/numberpad_metrics.h"
#endif
+#ifndef SW_PEN_INSERTED
+#define SW_PEN_INSERTED 0x0f /* set = pen inserted */
+#endif
+
namespace ui {
namespace {

View File

@ -1,11 +0,0 @@
diff -up chromium-110.0.5481.177/base/memory/ref_counted.h.me chromium-110.0.5481.177/base/memory/ref_counted.h
--- chromium-110.0.5481.177/base/memory/ref_counted.h.me 2023-02-23 13:34:33.174817255 -0500
+++ chromium-110.0.5481.177/base/memory/ref_counted.h 2023-02-23 13:42:28.646052469 -0500
@@ -6,6 +6,7 @@
#define BASE_MEMORY_REF_COUNTED_H_
#include <stddef.h>
+#include <limits>
#include <utility>

View File

@ -1,120 +0,0 @@
From 2aef9000a1c8d76d3072365ffcb471ebffa20d3d Mon Sep 17 00:00:00 2001
From: Andreas Schneider <asn@cryptomilk.org>
Date: Tue, 15 Mar 2022 14:26:16 +0100
Subject: [PATCH] Track first_dts instead of using non-upstream functions
The function av_stream_get_first_dts() is not an upstream ffmpeg function and
is not available if you build with system ffmpeg. We can easily track the
first_dts on our own.
See also
https://ffmpeg.org/pipermail/ffmpeg-devel/2021-September/285401.html
Bug: 1306560
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Change-Id: I90ba3cf2f2e16f56a0b405f26c67f911349fb71d
---
media/filters/ffmpeg_demuxer.cc | 18 ++++++++++++------
media/filters/ffmpeg_demuxer.h | 3 +++
3 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
index 111899b661..799fc6e941 100644
--- a/media/filters/ffmpeg_demuxer.cc
+++ b/media/filters/ffmpeg_demuxer.cc
@@ -97,7 +97,7 @@ static base::TimeDelta FramesToTimeDelta(int frames, double sample_rate) {
sample_rate);
}
-static base::TimeDelta ExtractStartTime(AVStream* stream) {
+static base::TimeDelta ExtractStartTime(AVStream* stream, int64_t first_dts) {
// The default start time is zero.
base::TimeDelta start_time;
@@ -107,12 +107,12 @@ static base::TimeDelta ExtractStartTime(AVStream* stream) {
// Next try to use the first DTS value, for codecs where we know PTS == DTS
// (excludes all H26x codecs). The start time must be returned in PTS.
- if (av_stream_get_first_dts(stream) != kNoFFmpegTimestamp &&
+ if (first_dts != AV_NOPTS_VALUE &&
stream->codecpar->codec_id != AV_CODEC_ID_HEVC &&
stream->codecpar->codec_id != AV_CODEC_ID_H264 &&
stream->codecpar->codec_id != AV_CODEC_ID_MPEG4) {
const base::TimeDelta first_pts =
- ConvertFromTimeBase(stream->time_base, av_stream_get_first_dts(stream));
+ ConvertFromTimeBase(stream->time_base, first_dts);
if (first_pts < start_time)
start_time = first_pts;
}
@@ -283,6 +283,7 @@ FFmpegDemuxerStream::FFmpegDemuxerStream(
fixup_negative_timestamps_(false),
fixup_chained_ogg_(false),
num_discarded_packet_warnings_(0),
+ first_dts_(AV_NOPTS_VALUE),
last_packet_pos_(AV_NOPTS_VALUE),
last_packet_dts_(AV_NOPTS_VALUE) {
DCHECK(demuxer_);
@@ -349,6 +350,10 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
int64_t packet_dts =
packet->dts == AV_NOPTS_VALUE ? packet->pts : packet->dts;
+ if (first_dts_ == AV_NOPTS_VALUE) {
+ first_dts_ = packet_dts;
+ }
+
// Chained ogg files have non-monotonically increasing position and time stamp
// values, which prevents us from using them to determine if a packet should
// be dropped. Since chained ogg is only allowed on single track audio only
@@ -1442,7 +1447,8 @@ void FFmpegDemuxer::OnFindStreamInfoDone(int result) {
max_duration = std::max(max_duration, streams_[i]->duration());
- base::TimeDelta start_time = ExtractStartTime(stream);
+ base::TimeDelta start_time =
+ ExtractStartTime(stream, streams_[i]->first_dts());
// Note: This value is used for seeking, so we must take the true value and
// not the one possibly clamped to zero below.
@@ -1599,7 +1605,7 @@ FFmpegDemuxerStream* FFmpegDemuxer::FindStreamWithLowestStartTimestamp(
for (const auto& stream : streams_) {
if (!stream || stream->IsEnabled() != enabled)
continue;
- if (av_stream_get_first_dts(stream->av_stream()) == kInvalidPTSMarker)
+ if (stream->first_dts() == AV_NOPTS_VALUE)
continue;
if (!lowest_start_time_stream ||
stream->start_time() < lowest_start_time_stream->start_time()) {
@@ -1620,7 +1626,7 @@ FFmpegDemuxerStream* FFmpegDemuxer::FindPreferredStreamForSeeking(
if (stream->type() != DemuxerStream::VIDEO)
continue;
- if (av_stream_get_first_dts(stream->av_stream()) == kInvalidPTSMarker)
+ if (stream->first_dts() == AV_NOPTS_VALUE)
continue;
if (!stream->IsEnabled())
diff --git a/media/filters/ffmpeg_demuxer.h b/media/filters/ffmpeg_demuxer.h
index c147309d6f..48a8f6ad8c 100644
--- a/media/filters/ffmpeg_demuxer.h
+++ b/media/filters/ffmpeg_demuxer.h
@@ -151,6 +151,8 @@ class MEDIA_EXPORT FFmpegDemuxerStream : public DemuxerStream {
base::TimeDelta start_time() const { return start_time_; }
void set_start_time(base::TimeDelta time) { start_time_ = time; }
+ int64_t first_dts() const { return first_dts_; }
+
private:
friend class FFmpegDemuxerTest;
@@ -208,6 +210,7 @@ class MEDIA_EXPORT FFmpegDemuxerStream : public DemuxerStream {
bool fixup_chained_ogg_;
int num_discarded_packet_warnings_;
+ int64_t first_dts_;
int64_t last_packet_pos_;
int64_t last_packet_dts_;
};
--
2.35.1

View File

@ -1,12 +0,0 @@
diff -up chromium-113.0.5672.24/chrome/browser/media/router/media_router_feature.cc.disable-GlobalMediaControlsCastStartStop chromium-113.0.5672.24/chrome/browser/media/router/media_router_feature.cc
--- chromium-113.0.5672.24/chrome/browser/media/router/media_router_feature.cc.disable-GlobalMediaControlsCastStartStop 2023-04-07 13:54:52.562292026 +0200
+++ chromium-113.0.5672.24/chrome/browser/media/router/media_router_feature.cc 2023-04-07 13:57:41.470414086 +0200
@@ -68,7 +68,7 @@ BASE_FEATURE(kGlobalMediaControlsCastSta
#else
BASE_FEATURE(kGlobalMediaControlsCastStartStop,
"GlobalMediaControlsCastStartStop",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT);
#endif // BUILDFLAG(IS_CHROMEOS)
#endif // BUILDFLAG(IS_ANDROID)

View File

@ -1,12 +0,0 @@
diff -up chromium-113.0.5672.24/components/os_crypt/sync/features.gni.disblegnomekeyring chromium-113.0.5672.24/components/os_crypt/sync/features.gni
--- chromium-113.0.5672.24/components/os_crypt/sync/features.gni.disblegnomekeyring 2023-04-07 14:23:11.083985460 +0200
+++ chromium-113.0.5672.24/components/os_crypt/sync/features.gni 2023-04-07 14:23:44.276599353 +0200
@@ -8,7 +8,7 @@ import("//build/config/ui.gni")
declare_args() {
# Whether to use libgnome-keyring (deprecated by libsecret).
# See http://crbug.com/466975 and http://crbug.com/355223.
- use_gnome_keyring = is_linux && use_glib
+ use_gnome_keyring = false
# Whether to make account and service names for the crypto key storage
# configurable at runtime for embedders.

View File

@ -1,545 +0,0 @@
commit 75f4b48eb71d4872ba3ac6c9fc3662a60eb4175d
Author: Tom Anderson <thomasanderson@chromium.org>
Date: Thu Apr 27 02:21:34 2023 +0000
Add QT6 LinuxUi backend
- Enable QT6 by default on KDE6
- If QT6 load fails, fallback to QT5 (and vice versa)
- Add use_qt6 build flag for packager control
- Add --qt-version runtime flag for user control
R=thestig
Change-Id: Ib1d9f6183663ecf7b9ddfe9d7f3e3442e534ccda
Fixed: 1434754
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4475369
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1136295}
diff --git a/chrome/installer/linux/BUILD.gn b/chrome/installer/linux/BUILD.gn
index 5639b9ffc996e..3bacd3398d4a2 100644
--- a/chrome/installer/linux/BUILD.gn
+++ b/chrome/installer/linux/BUILD.gn
@@ -109,6 +109,9 @@ if (use_qt) {
# to prevent a hard dependency on QT for the package.
packaging_files += [ "$root_out_dir/libqt5_shim.so" ]
}
+if (use_qt6) {
+ packaging_files += [ "$root_out_dir/libqt6_shim.so" ]
+}
action_foreach("calculate_deb_dependencies") {
deps = [ ":installer_deps" ]
@@ -249,6 +252,12 @@ if (use_qt) {
deps = [ "//ui/qt:qt5_shim" ]
}
}
+if (use_qt6) {
+ strip_binary("strip_qt6_shim") {
+ binary_input = "$root_out_dir/libqt6_shim.so"
+ deps = [ "//ui/qt:qt6_shim" ]
+ }
+}
# This target builds all "normal" Linux installers. You must set
# is_component_build=false before building this target.
@@ -447,6 +456,12 @@ group("installer_deps") {
"//ui/qt:qt5_shim",
]
}
+ if (use_qt6) {
+ public_deps += [
+ ":strip_qt6_shim",
+ "//ui/qt:qt6_shim",
+ ]
+ }
}
# Creates .deb and .rpm (RPM for non-ChromeOS only) installer packages.
diff --git a/chrome/installer/linux/common/installer.include b/chrome/installer/linux/common/installer.include
index 8d76f1f280b01..439ef5ccb0f52 100644
--- a/chrome/installer/linux/common/installer.include
+++ b/chrome/installer/linux/common/installer.include
@@ -254,6 +254,11 @@ stage_install_common() {
strippedfile="${OUTPUTDIR}/${file}.stripped"
install -m ${SHLIB_PERMS} "${strippedfile}" "${STAGEDIR}/${INSTALLDIR}/${file}"
fi
+ if [ -f "${OUTPUTDIR}/libqt6_shim.so" ]; then
+ file="libqt6_shim.so"
+ strippedfile="${OUTPUTDIR}/${file}.stripped"
+ install -m ${SHLIB_PERMS} "${strippedfile}" "${STAGEDIR}/${INSTALLDIR}/${file}"
+ fi
# libc++
if [ -f "${OUTPUTDIR}/lib/libc++.so" ]; then
diff --git a/ui/qt/BUILD.gn b/ui/qt/BUILD.gn
index bbede00daa4d0..6a67961edc2f7 100644
--- a/ui/qt/BUILD.gn
+++ b/ui/qt/BUILD.gn
@@ -11,13 +11,6 @@ assert(use_qt)
assert(is_linux)
assert(!is_castos)
-pkg_config("qt5_config") {
- packages = [
- "Qt5Core",
- "Qt5Widgets",
- ]
-}
-
config("qt_internal_config") {
if (is_clang) {
# libstdc++ headers are incompatible with -fcomplete-member-pointers.
@@ -56,40 +49,57 @@ if (!use_sysroot) {
}
}
-shared_library("qt5_shim") {
- visibility = [
- ":qt",
- "//chrome/installer/linux:*",
- ]
-
- # Since qt_shim is a shared library even in non-component builds, it shouldn't
- # depend on any other targets since that would duplicate code between binaries
- # leading to increased size and potential issues from duplicated global state.
- no_default_deps = true
- assert_no_deps = [
- "//base",
- "//buildtools/third_party/libc++",
- ]
- deps = [ ":qt_interface" ]
-
- configs -= [ "//build/config/compiler:runtime_library" ]
- configs += [
- ":qt_internal_config",
- ":qt5_config",
- ]
+template("qt_shim") {
+ pkg_config("qt" + invoker.qt_version + "_config") {
+ packages = [
+ "Qt" + invoker.qt_version + "Core",
+ "Qt" + invoker.qt_version + "Widgets",
+ ]
+ }
- public = []
- sources = [
- "qt_shim.cc",
- "qt_shim.h",
- ]
- if (use_sysroot) {
- # This file is generated with gen_qt_shim_moc.sh on an amd64 system to
- # avoid a build-time dependency on `moc` when using the sysroot.
- sources += [ "qt_shim_moc.cc" ]
- } else {
- sources += get_target_outputs(":generate_moc")
- deps += [ ":generate_moc" ]
+ shared_library(target_name) {
+ visibility = [
+ ":qt",
+ "//chrome/installer/linux:*",
+ ]
+
+ # Since qt_shim is a shared library even in non-component builds, it shouldn't
+ # depend on any other targets since that would duplicate code between binaries
+ # leading to increased size and potential issues from duplicated global state.
+ no_default_deps = true
+ assert_no_deps = [
+ "//base",
+ "//buildtools/third_party/libc++",
+ ]
+ deps = [ ":qt_interface" ]
+
+ configs -= [ "//build/config/compiler:runtime_library" ]
+ configs += [
+ ":qt_internal_config",
+ ":qt" + invoker.qt_version + "_config",
+ ]
+
+ public = []
+ sources = [
+ "qt_shim.cc",
+ "qt_shim.h",
+ ]
+ if (use_sysroot) {
+ # This file is generated with gen_qt_shim_moc.sh on an amd64 system to
+ # avoid a build-time dependency on `moc` when using the sysroot.
+ sources += [ "qt" + invoker.qt_version + "_shim_moc.cc" ]
+ } else {
+ sources += get_target_outputs(":generate_moc")
+ deps += [ ":generate_moc" ]
+ }
+ }
+}
+qt_shim("qt5_shim") {
+ qt_version = "5"
+}
+if (use_qt6) {
+ qt_shim("qt6_shim") {
+ qt_version = "6"
}
}
@@ -100,6 +110,9 @@ component("qt") {
# qt_shim is in data_deps since we want to load it manually.
data_deps = [ ":qt5_shim" ]
+ if (use_qt6) {
+ data_deps += [ ":qt6_shim" ]
+ }
deps = [
":qt_interface",
"//base",
diff --git a/ui/qt/gen_qt_shim_moc.sh b/ui/qt/gen_qt_shim_moc.sh
index 74272d5611dab..9d02c2dfcb12f 100755
--- a/ui/qt/gen_qt_shim_moc.sh
+++ b/ui/qt/gen_qt_shim_moc.sh
@@ -6,11 +6,15 @@
set -o nounset
set -o errexit
-URL="http://archive.debian.org/debian/pool/main/q/qtbase-opensource-src"
-PACKAGE="qtbase5-dev-tools_5.3.2+dfsg-4+deb8u2_amd64.deb"
-SHA256="7703754f2c230ce6b8b6030b6c1e7e030899aa9f45a415498df04bd5ec061a76"
-SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+URL5="http://archive.debian.org/debian/pool/main/q/qtbase-opensource-src"
+PACKAGE5="qtbase5-dev-tools_5.3.2+dfsg-4+deb8u2_amd64.deb"
+SHA256_5="7703754f2c230ce6b8b6030b6c1e7e030899aa9f45a415498df04bd5ec061a76"
+
+URL6="http://archive.ubuntu.com/ubuntu/pool/universe/q/qt6-base"
+PACKAGE6="qt6-base-dev-tools_6.2.4+dfsg-2ubuntu1_amd64.deb"
+SHA256_6="8dddfc79e7743185b07c478ca0f96a4ccc13d48ecccc42f44d2578c33c7d9b8b"
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
TMP_DIR=$(mktemp -d -p "$SCRIPT_DIR")
function cleanup {
rm -rf "$TMP_DIR"
@@ -18,16 +22,22 @@ function cleanup {
trap cleanup EXIT
cd "$TMP_DIR"
-wget "$URL/$PACKAGE"
-echo "$SHA256 $PACKAGE" | shasum -a 256 -c
-dpkg -x "$PACKAGE" .
-cat > ../qt_shim_moc.cc <<EOF
-// Copyright 2022 The Chromium Authors
+wget "$URL5/$PACKAGE5"
+echo "$SHA256_5 $PACKAGE5" | shasum -a 256 -c
+dpkg -x "$PACKAGE5" .
+wget "$URL6/$PACKAGE6"
+echo "$SHA256_6 $PACKAGE6" | shasum -a 256 -c
+dpkg -x "$PACKAGE6" .
+cat > ../qt5_shim_moc.cc <<EOF
+// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
EOF
cd "$SCRIPT_DIR/../.."
+cp ui/qt/qt5_shim_moc.cc ui/qt/qt6_shim_moc.cc
"$TMP_DIR/usr/lib/x86_64-linux-gnu/qt5/bin/moc" ui/qt/qt_shim.h \
- >> ui/qt/qt_shim_moc.cc
-git cl format ui/qt/qt_shim_moc.cc
+ >> ui/qt/qt5_shim_moc.cc
+"$TMP_DIR//usr/lib/qt6/libexec/moc" ui/qt/qt_shim.h \
+ >> ui/qt/qt6_shim_moc.cc
+git cl format ui/qt/qt5_shim_moc.cc ui/qt/qt6_shim_moc.cc
diff --git a/ui/qt/qt.gni b/ui/qt/qt.gni
index 27bb6375880b7..f45823270cb91 100644
--- a/ui/qt/qt.gni
+++ b/ui/qt/qt.gni
@@ -4,9 +4,17 @@
import("//build/config/chromecast_build.gni")
import("//build/config/sanitizers/sanitizers.gni")
+import("//build/config/sysroot.gni")
declare_args() {
# TODO(https://crbug.com/1424435): Allow QT in MSAN builds once QT is
# added to the instrumented libraries.
use_qt = is_linux && !is_castos && !is_msan
}
+
+declare_args() {
+ use_qt6 = use_qt && use_sysroot
+}
+
+# use_qt6 => use_qt
+assert(!use_qt6 || use_qt)
diff --git a/ui/qt/qt_shim_moc.cc b/ui/qt/qt5_shim_moc.cc
similarity index 95%
rename from ui/qt/qt_shim_moc.cc
rename to ui/qt/qt5_shim_moc.cc
index dafbfadce56ba..8f8b6b57784a8 100644
--- a/ui/qt/qt_shim_moc.cc
+++ b/ui/qt/qt5_shim_moc.cc
@@ -1,4 +1,4 @@
-// Copyright 2022 The Chromium Authors
+// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -89,26 +89,32 @@ const QMetaObject* qt::QtShim::metaObject() const {
}
void* qt::QtShim::qt_metacast(const char* _clname) {
- if (!_clname)
+ if (!_clname) {
return 0;
- if (!strcmp(_clname, qt_meta_stringdata_qt__QtShim.stringdata))
+ }
+ if (!strcmp(_clname, qt_meta_stringdata_qt__QtShim.stringdata)) {
return static_cast<void*>(const_cast<QtShim*>(this));
- if (!strcmp(_clname, "QtInterface"))
+ }
+ if (!strcmp(_clname, "QtInterface")) {
return static_cast<QtInterface*>(const_cast<QtShim*>(this));
+ }
return QObject::qt_metacast(_clname);
}
int qt::QtShim::qt_metacall(QMetaObject::Call _c, int _id, void** _a) {
_id = QObject::qt_metacall(_c, _id, _a);
- if (_id < 0)
+ if (_id < 0) {
return _id;
+ }
if (_c == QMetaObject::InvokeMetaMethod) {
- if (_id < 2)
+ if (_id < 2) {
qt_static_metacall(this, _c, _id, _a);
+ }
_id -= 2;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
- if (_id < 2)
+ if (_id < 2) {
*reinterpret_cast<int*>(_a[0]) = -1;
+ }
_id -= 2;
}
return _id;
diff --git a/ui/qt/qt6_shim_moc.cc b/ui/qt/qt6_shim_moc.cc
new file mode 100644
index 0000000000000..6d02ca317b65d
--- /dev/null
+++ b/ui/qt/qt6_shim_moc.cc
@@ -0,0 +1,143 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/****************************************************************************
+** Meta object code from reading C++ file 'qt_shim.h'
+**
+** Created by: The Qt Meta Object Compiler version 68 (Qt 6.2.4)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include <QtCore/qbytearray.h>
+#include <QtCore/qmetatype.h>
+#include <memory>
+#include "ui/qt/qt_shim.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'qt_shim.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 68
+#error "This file was generated using the moc from 6.2.4. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+QT_WARNING_PUSH
+QT_WARNING_DISABLE_DEPRECATED
+struct qt_meta_stringdata_qt__QtShim_t {
+ const uint offsetsAndSize[12];
+ char stringdata0[52];
+};
+#define QT_MOC_LITERAL(ofs, len) \
+ uint(offsetof(qt_meta_stringdata_qt__QtShim_t, stringdata0) + ofs), len
+static const qt_meta_stringdata_qt__QtShim_t qt_meta_stringdata_qt__QtShim = {
+ {
+ QT_MOC_LITERAL(0, 10), // "qt::QtShim"
+ QT_MOC_LITERAL(11, 11), // "FontChanged"
+ QT_MOC_LITERAL(23, 0), // ""
+ QT_MOC_LITERAL(24, 4), // "font"
+ QT_MOC_LITERAL(29, 14), // "PaletteChanged"
+ QT_MOC_LITERAL(44, 7) // "palette"
+
+ },
+ "qt::QtShim\0FontChanged\0\0font\0"
+ "PaletteChanged\0palette"};
+#undef QT_MOC_LITERAL
+
+static const uint qt_meta_data_qt__QtShim[] = {
+
+ // content:
+ 10, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 2, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+ 0, // flags
+ 0, // signalCount
+
+ // slots: name, argc, parameters, tag, flags, initial metatype offsets
+ 1, 1, 26, 2, 0x08, 1 /* Private */, 4, 1, 29, 2, 0x08, 3 /* Private */,
+
+ // slots: parameters
+ QMetaType::Void, QMetaType::QFont, 3, QMetaType::Void, QMetaType::QPalette,
+ 5,
+
+ 0 // eod
+};
+
+void qt::QtShim::qt_static_metacall(QObject* _o,
+ QMetaObject::Call _c,
+ int _id,
+ void** _a) {
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ auto* _t = static_cast<QtShim*>(_o);
+ (void)_t;
+ switch (_id) {
+ case 0:
+ _t->FontChanged((*reinterpret_cast<std::add_pointer_t<QFont>>(_a[1])));
+ break;
+ case 1:
+ _t->PaletteChanged(
+ (*reinterpret_cast<std::add_pointer_t<QPalette>>(_a[1])));
+ break;
+ default:;
+ }
+ }
+}
+
+const QMetaObject qt::QtShim::staticMetaObject = {
+ {QMetaObject::SuperData::link<QObject::staticMetaObject>(),
+ qt_meta_stringdata_qt__QtShim.offsetsAndSize, qt_meta_data_qt__QtShim,
+ qt_static_metacall, nullptr,
+ qt_incomplete_metaTypeArray<
+ qt_meta_stringdata_qt__QtShim_t,
+ QtPrivate::TypeAndForceComplete<QtShim, std::true_type>,
+ QtPrivate::TypeAndForceComplete<void, std::false_type>,
+ QtPrivate::TypeAndForceComplete<const QFont&, std::false_type>,
+ QtPrivate::TypeAndForceComplete<void, std::false_type>,
+ QtPrivate::TypeAndForceComplete<const QPalette&, std::false_type>
+
+ >,
+ nullptr}};
+
+const QMetaObject* qt::QtShim::metaObject() const {
+ return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject()
+ : &staticMetaObject;
+}
+
+void* qt::QtShim::qt_metacast(const char* _clname) {
+ if (!_clname) {
+ return nullptr;
+ }
+ if (!strcmp(_clname, qt_meta_stringdata_qt__QtShim.stringdata0)) {
+ return static_cast<void*>(this);
+ }
+ if (!strcmp(_clname, "QtInterface")) {
+ return static_cast<QtInterface*>(this);
+ }
+ return QObject::qt_metacast(_clname);
+}
+
+int qt::QtShim::qt_metacall(QMetaObject::Call _c, int _id, void** _a) {
+ _id = QObject::qt_metacall(_c, _id, _a);
+ if (_id < 0) {
+ return _id;
+ }
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ if (_id < 2) {
+ qt_static_metacall(this, _c, _id, _a);
+ }
+ _id -= 2;
+ } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
+ if (_id < 2) {
+ *reinterpret_cast<QMetaType*>(_a[0]) = QMetaType();
+ }
+ _id -= 2;
+ }
+ return _id;
+}
+QT_WARNING_POP
+QT_END_MOC_NAMESPACE
diff --git a/ui/qt/qt_ui.cc b/ui/qt/qt_ui.cc
index d4052b7e8bc3d..6a3b58e9f930b 100644
--- a/ui/qt/qt_ui.cc
+++ b/ui/qt/qt_ui.cc
@@ -14,7 +14,9 @@
#include "base/check.h"
#include "base/command_line.h"
#include "base/compiler_specific.h"
+#include "base/environment.h"
#include "base/memory/raw_ptr.h"
+#include "base/nix/xdg_util.h"
#include "base/notreached.h"
#include "base/path_service.h"
#include "base/time/time.h"
@@ -47,6 +49,45 @@ namespace qt {
namespace {
+const char kQtVersionFlag[] = "qt-version";
+
+void* LoadLibrary(const base::FilePath& path) {
+ return dlopen(path.value().c_str(), RTLD_NOW | RTLD_GLOBAL);
+}
+
+void* LoadLibraryOrFallback(const base::FilePath& path,
+ const char* preferred,
+ const char* fallback) {
+ if (void* library = LoadLibrary(path.Append(preferred))) {
+ return library;
+ }
+ return LoadLibrary(path.Append(fallback));
+}
+
+bool PreferQt6() {
+ auto* cmd = base::CommandLine::ForCurrentProcess();
+ if (cmd->HasSwitch(kQtVersionFlag)) {
+ std::string qt_version_string = cmd->GetSwitchValueASCII(kQtVersionFlag);
+ unsigned int qt_version = 0;
+ if (base::StringToUint(qt_version_string, &qt_version)) {
+ switch (qt_version) {
+ case 5:
+ return false;
+ case 6:
+ return true;
+ default:
+ LOG(ERROR) << "Unsupported QT version " << qt_version;
+ }
+ } else {
+ LOG(ERROR) << "Unable to parse QT version " << qt_version_string;
+ }
+ }
+
+ auto env = base::Environment::Create();
+ auto desktop = base::nix::GetDesktopEnvironment(env.get());
+ return desktop == base::nix::DESKTOP_ENVIRONMENT_KDE6;
+}
+
int QtWeightToCssWeight(int weight) {
struct {
int qt_weight;
@@ -179,8 +220,10 @@ bool QtUi::Initialize() {
base::FilePath path;
if (!base::PathService::Get(base::DIR_MODULE, &path))
return false;
- path = path.Append("libqt5_shim.so");
- void* libqt_shim = dlopen(path.value().c_str(), RTLD_NOW | RTLD_GLOBAL);
+ void* libqt_shim =
+ PreferQt6()
+ ? LoadLibraryOrFallback(path, "libqt6_shim.so", "libqt5_shim.so")
+ : LoadLibraryOrFallback(path, "libqt5_shim.so", "libqt6_shim.so");
if (!libqt_shim)
return false;
void* create_qt_interface = dlsym(libqt_shim, "CreateQtInterface");

View File

@ -1,21 +0,0 @@
diff -up chromium-114.0.5735.26/components/omnibox/browser/omnibox_edit_model.cc.me chromium-114.0.5735.26/components/omnibox/browser/omnibox_edit_model.cc
--- chromium-114.0.5735.26/components/omnibox/browser/omnibox_edit_model.cc.me 2023-05-14 09:14:10.886314480 +0200
+++ chromium-114.0.5735.26/components/omnibox/browser/omnibox_edit_model.cc 2023-05-14 09:16:59.380054720 +0200
@@ -79,7 +79,7 @@
#include "ui/gfx/vector_icon_types.h"
#endif
-#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
+#ifdef GOOGLE_CHROME_BRANDING
#include "components/vector_icons/vector_icons.h" // nogncheck
#endif
@@ -628,7 +628,7 @@ bool OmniboxEditModel::ShouldShowCurrent
}
ui::ImageModel OmniboxEditModel::GetSuperGIcon(int image_size, bool dark_mode) {
-#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
+#ifdef GOOGLE_CHROME_BRANDING
if (dark_mode) {
return ui::ImageModel::FromVectorIcon(
vector_icons::kGoogleGLogoMonochromeIcon, ui::kColorRefPrimary100,

View File

@ -1,62 +0,0 @@
diff -up chromium-114.0.5735.26/components/version_info/version_info.cc.constexpr-el7 chromium-114.0.5735.26/components/version_info/version_info.cc
diff -up chromium-114.0.5735.26/components/version_info/version_info.h.constexpr-el7 chromium-114.0.5735.26/components/version_info/version_info.h
--- chromium-114.0.5735.26/components/version_info/version_info.h.constexpr-el7 2023-05-11 03:36:19.000000000 +0200
+++ chromium-114.0.5735.26/components/version_info/version_info.h 2023-05-14 10:59:19.921578645 +0200
@@ -27,18 +27,18 @@ const std::string GetProductNameAndVersi
const std::string& build_version);
// Returns the product name, e.g. "Chromium" or "Google Chrome".
-constexpr std::string GetProductName() {
+static const std::string GetProductName() {
return PRODUCT_NAME;
}
// Returns the version number, e.g. "6.0.490.1".
-constexpr std::string GetVersionNumber() {
+static const std::string GetVersionNumber() {
return PRODUCT_VERSION;
}
// Returns the product name and version information for the User-Agent header,
// in the format: Chrome/<major_version>.<minor_version>.<build>.<patch>.
-constexpr std::string GetProductNameAndVersionForUserAgent() {
+static const std::string GetProductNameAndVersionForUserAgent() {
return "Chrome/" + GetVersionNumber();
}
@@ -53,7 +53,7 @@ std::string GetMajorVersionNumber();
const base::Version& GetVersion();
// Returns a version control specific identifier of this release.
-constexpr std::string GetLastChange() {
+static const std::string GetLastChange() {
return LAST_CHANGE;
}
@@ -65,7 +65,7 @@ constexpr bool IsOfficialBuild() {
}
// Returns the OS type, e.g. "Windows", "Linux", "FreeBSD", ...
-constexpr std::string GetOSType() {
+static const std::string GetOSType() {
#if BUILDFLAG(IS_WIN)
return "Windows";
#elif BUILDFLAG(IS_IOS)
@@ -97,7 +97,7 @@ constexpr std::string GetOSType() {
// Returns a string equivalent of |channel|, independent of whether the build
// is branded or not and without any additional modifiers.
-constexpr std::string GetChannelString(Channel channel) {
+static const std::string GetChannelString(Channel channel) {
switch (channel) {
case Channel::STABLE:
return "stable";
@@ -114,7 +114,7 @@ constexpr std::string GetChannelString(C
}
// Returns a list of sanitizers enabled in this build.
-constexpr std::string GetSanitizerList() {
+static const std::string GetSanitizerList() {
return ""
#if defined(ADDRESS_SANITIZER)
"address "

View File

@ -1,389 +0,0 @@
diff -up chromium-109.0.5414.74/base/check_op.h.me chromium-109.0.5414.74/base/check_op.h
--- chromium-109.0.5414.74/base/check_op.h.me 2023-01-17 17:39:27.620875883 +0100
+++ chromium-109.0.5414.74/base/check_op.h 2023-01-17 17:39:42.546060957 +0100
@@ -5,6 +5,7 @@
#ifndef BASE_CHECK_OP_H_
#define BASE_CHECK_OP_H_
+#include <cstdint>
#include <cstddef>
#include <string>
#include <type_traits>
diff -up chromium-109.0.5414.74/base/debug/profiler.h.me chromium-109.0.5414.74/base/debug/profiler.h
--- chromium-109.0.5414.74/base/debug/profiler.h.me 2023-01-17 16:29:26.368090073 +0100
+++ chromium-109.0.5414.74/base/debug/profiler.h 2023-01-17 16:59:41.190628679 +0100
@@ -7,6 +7,7 @@
#include <stddef.h>
+#include <cstdint>
#include <string>
#include "base/base_export.h"
diff -up chromium-109.0.5414.74/components/viz/common/view_transition_element_resource_id.h.me chromium-109.0.5414.74/components/viz/common/view_transition_element_resource_id.h
--- chromium-109.0.5414.74/components/viz/common/view_transition_element_resource_id.h.me 2023-01-17 19:03:10.920014806 +0100
+++ chromium-109.0.5414.74/components/viz/common/view_transition_element_resource_id.h 2023-01-17 19:03:48.736395274 +0100
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_VIZ_COMMON_VIEW_TRANSITION_ELEMENT_RESOURCE_ID_H_
#define COMPONENTS_VIZ_COMMON_VIEW_TRANSITION_ELEMENT_RESOURCE_ID_H_
+#include <cstdint>
#include <string>
#include <vector>
diff -up chromium-109.0.5414.74/gpu/config/gpu_feature_info.h.me chromium-109.0.5414.74/gpu/config/gpu_feature_info.h
--- chromium-109.0.5414.74/gpu/config/gpu_feature_info.h.me 2023-01-17 19:06:53.530675129 +0100
+++ chromium-109.0.5414.74/gpu/config/gpu_feature_info.h 2023-01-17 19:07:08.874849879 +0100
@@ -5,6 +5,7 @@
#ifndef GPU_CONFIG_GPU_FEATURE_INFO_H_
#define GPU_CONFIG_GPU_FEATURE_INFO_H_
+#include <cstdint>
#include <string>
#include <vector>
diff -up chromium-109.0.5414.74/net/base/net_export.h.me chromium-109.0.5414.74/net/base/net_export.h
--- chromium-109.0.5414.74/net/base/net_export.h.me 2023-01-17 18:16:34.133854615 +0100
+++ chromium-109.0.5414.74/net/base/net_export.h 2023-01-17 18:16:15.945623153 +0100
@@ -5,6 +5,8 @@
#ifndef NET_BASE_NET_EXPORT_H_
#define NET_BASE_NET_EXPORT_H_
+#include <cstdint>
+
// Defines NET_EXPORT so that functionality implemented by the net module can
// be exported to consumers, and NET_EXPORT_PRIVATE that allows unit tests to
// access features not intended to be used directly by real consumers.
diff -up chromium-109.0.5414.74/sandbox/linux/syscall_broker/broker_file_permission.h.me chromium-109.0.5414.74/sandbox/linux/syscall_broker/broker_file_permission.h
--- chromium-109.0.5414.74/sandbox/linux/syscall_broker/broker_file_permission.h.me 2023-01-17 17:12:34.184686515 +0100
+++ chromium-109.0.5414.74/sandbox/linux/syscall_broker/broker_file_permission.h 2023-01-17 17:13:16.537162420 +0100
@@ -5,6 +5,7 @@
#ifndef SANDBOX_LINUX_SYSCALL_BROKER_BROKER_FILE_PERMISSION_H_
#define SANDBOX_LINUX_SYSCALL_BROKER_BROKER_FILE_PERMISSION_H_
+#include <cstdint>
#include <bitset>
#include <string>
diff -up chromium-109.0.5414.74/third_party/abseil-cpp/absl/strings/string_view.h.me chromium-109.0.5414.74/third_party/abseil-cpp/absl/strings/string_view.h
--- chromium-109.0.5414.74/third_party/abseil-cpp/absl/strings/string_view.h.me 2023-01-17 17:33:20.895717307 +0100
+++ chromium-109.0.5414.74/third_party/abseil-cpp/absl/strings/string_view.h 2023-01-17 17:34:03.456185365 +0100
@@ -27,6 +27,7 @@
#ifndef ABSL_STRINGS_STRING_VIEW_H_
#define ABSL_STRINGS_STRING_VIEW_H_
+#include <cstdint>
#include <algorithm>
#include <cassert>
#include <cstddef>
diff -up chromium-109.0.5414.74/third_party/angle/include/GLSLANG/ShaderVars.h.me chromium-109.0.5414.74/third_party/angle/include/GLSLANG/ShaderVars.h
--- chromium-109.0.5414.74/third_party/angle/include/GLSLANG/ShaderVars.h.me 2023-01-17 17:36:15.017616250 +0100
+++ chromium-109.0.5414.74/third_party/angle/include/GLSLANG/ShaderVars.h 2023-01-17 17:36:48.960982195 +0100
@@ -10,6 +10,7 @@
#ifndef GLSLANG_SHADERVARS_H_
#define GLSLANG_SHADERVARS_H_
+#include <cstdint>
#include <algorithm>
#include <array>
#include <string>
diff -up chromium-109.0.5414.74/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h.me chromium-109.0.5414.74/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h
--- chromium-109.0.5414.74/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h.me 2023-01-17 19:17:40.480876171 +0100
+++ chromium-109.0.5414.74/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h 2023-01-17 19:17:46.803958320 +0100
@@ -5,6 +5,7 @@
#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_BLUETOOTH_WEB_BLUETOOTH_DEVICE_ID_H_
#define THIRD_PARTY_BLINK_PUBLIC_COMMON_BLUETOOTH_WEB_BLUETOOTH_DEVICE_ID_H_
+#include <cstdint>
#include <array>
#include <string>
diff -up chromium-109.0.5414.74/third_party/dawn/src/tint/reader/spirv/namer.h.me chromium-109.0.5414.74/third_party/dawn/src/tint/reader/spirv/namer.h
--- chromium-109.0.5414.74/third_party/dawn/src/tint/reader/spirv/namer.h.me 2023-01-17 18:02:44.681538107 +0100
+++ chromium-109.0.5414.74/third_party/dawn/src/tint/reader/spirv/namer.h 2023-01-17 18:02:57.208679140 +0100
@@ -15,6 +15,7 @@
#ifndef SRC_TINT_READER_SPIRV_NAMER_H_
#define SRC_TINT_READER_SPIRV_NAMER_H_
+#include <cstdint>
#include <string>
#include <unordered_map>
#include <vector>
diff -up chromium-109.0.5414.74/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h.me chromium-109.0.5414.74/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h
--- chromium-109.0.5414.74/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h.me 2023-01-18 15:22:38.472940648 +0100
+++ chromium-109.0.5414.74/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h 2023-01-18 15:23:09.380255101 +0100
@@ -5,6 +5,7 @@
#ifndef DISCOVERY_DNSSD_PUBLIC_DNS_SD_TXT_RECORD_H_
#define DISCOVERY_DNSSD_PUBLIC_DNS_SD_TXT_RECORD_H_
+#include <cstdint>
#include <functional>
#include <map>
#include <set>
diff -up chromium-109.0.5414.74/third_party/swiftshader/src/System/LRUCache.hpp.me chromium-109.0.5414.74/third_party/swiftshader/src/System/LRUCache.hpp
--- chromium-109.0.5414.74/third_party/swiftshader/src/System/LRUCache.hpp.me 2023-01-17 15:37:48.530626516 +0100
+++ chromium-109.0.5414.74/third_party/swiftshader/src/System/LRUCache.hpp 2023-01-17 16:57:46.025548092 +0100
@@ -17,6 +17,7 @@
#include "System/Debug.hpp"
+#include <cstdint>
#include <cstddef>
#include <functional>
#include <unordered_set>
diff -up chromium-109.0.5414.74/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h.me chromium-109.0.5414.74/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h
--- chromium-109.0.5414.74/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h.me 2023-01-17 15:40:23.854386206 +0100
+++ chromium-109.0.5414.74/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h 2023-01-17 16:58:19.397862885 +0100
@@ -2388,6 +2388,7 @@ VMA_CALL_PRE void VMA_CALL_POST vmaFreeV
#ifdef VMA_IMPLEMENTATION
#undef VMA_IMPLEMENTATION
+#include <cstdio>
#include <cstdint>
#include <cstdlib>
#include <cstring>
diff -up chromium-109.0.5414.74/ui/gfx/geometry/linear_gradient.h.me chromium-109.0.5414.74/ui/gfx/geometry/linear_gradient.h
--- chromium-109.0.5414.74/ui/gfx/geometry/linear_gradient.h.me 2023-01-17 18:08:25.745491353 +0100
+++ chromium-109.0.5414.74/ui/gfx/geometry/linear_gradient.h 2023-01-17 18:08:35.777667632 +0100
@@ -5,6 +5,7 @@
#ifndef UI_GFX_LINEAR_GRADIENT_H_
#define UI_GFX_LINEAR_GRADIENT_H_
+#include <cstdint>
#include <array>
#include <string>
diff -up chromium-109.0.5414.74/third_party/ruy/src/ruy/profiler/instrumentation.h.me chromium-109.0.5414.74/third_party/ruy/src/ruy/profiler/instrumentation.h
--- chromium-109.0.5414.74/third_party/ruy/src/ruy/profiler/instrumentation.h.me 2023-01-19 10:10:21.287876736 +0100
+++ chromium-109.0.5414.74/third_party/ruy/src/ruy/profiler/instrumentation.h 2023-01-19 10:11:21.714778896 +0100
@@ -17,6 +17,7 @@ limitations under the License.
#define RUY_RUY_PROFILER_INSTRUMENTATION_H_
#ifdef RUY_PROFILER
+#include <string>
#include <cstdio>
#include <mutex>
#include <vector>
diff -up chromium-109.0.5414.74/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h.me chromium-109.0.5414.74/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h
--- chromium-109.0.5414.74/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h.me 2023-01-19 10:30:27.533861985 +0100
+++ chromium-109.0.5414.74/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h 2023-01-19 10:31:12.585554183 +0100
@@ -31,6 +31,7 @@ limitations under the License.
#ifndef TENSORFLOW_LITE_KERNELS_INTERNAL_SPECTROGRAM_H_
#define TENSORFLOW_LITE_KERNELS_INTERNAL_SPECTROGRAM_H_
+#include <cstdint>
#include <complex>
#include <deque>
#include <vector>
diff -up chromium-109.0.5414.74/base/containers/flat_map.h.mee chromium-109.0.5414.74/base/containers/flat_map.h
--- chromium-109.0.5414.74/base/containers/flat_map.h.mee 2023-01-19 10:59:52.214957773 +0100
+++ chromium-109.0.5414.74/base/containers/flat_map.h 2023-01-19 11:00:06.415215309 +0100
@@ -5,6 +5,7 @@
#ifndef BASE_CONTAINERS_FLAT_MAP_H_
#define BASE_CONTAINERS_FLAT_MAP_H_
+#include <cstdint>
#include <functional>
#include <tuple>
#include <utility>
diff -up chromium-109.0.5414.74/components/crash/core/app/crash_reporter_client.h.mee chromium-109.0.5414.74/components/crash/core/app/crash_reporter_client.h
--- chromium-109.0.5414.74/components/crash/core/app/crash_reporter_client.h.mee 2023-01-19 10:36:40.571422826 +0100
+++ chromium-109.0.5414.74/components/crash/core/app/crash_reporter_client.h 2023-01-19 10:36:49.343565294 +0100
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_CRASH_CORE_APP_CRASH_REPORTER_CLIENT_H_
#define COMPONENTS_CRASH_CORE_APP_CRASH_REPORTER_CLIENT_H_
+#include <cstdint>
#include <string>
#include "build/build_config.h"
diff -up chromium-109.0.5414.74/ui/base/prediction/kalman_filter.h.mee chromium-109.0.5414.74/ui/base/prediction/kalman_filter.h
--- chromium-109.0.5414.74/ui/base/prediction/kalman_filter.h.mee 2023-01-19 11:45:15.953159755 +0100
+++ chromium-109.0.5414.74/ui/base/prediction/kalman_filter.h 2023-01-19 11:45:22.320246241 +0100
@@ -5,6 +5,8 @@
#ifndef UI_BASE_PREDICTION_KALMAN_FILTER_H_
#define UI_BASE_PREDICTION_KALMAN_FILTER_H_
+#include <cstdint>
+
#include "base/component_export.h"
#include "ui/gfx/geometry/matrix3_f.h"
diff -up chromium-109.0.5414.74/components/password_manager/core/browser/generation/password_generator.h.me chromium-109.0.5414.74/components/password_manager/core/browser/generation/password_generator.h
--- chromium-109.0.5414.74/components/password_manager/core/browser/generation/password_generator.h.me 2023-01-19 15:20:07.620987949 +0100
+++ chromium-109.0.5414.74/components/password_manager/core/browser/generation/password_generator.h 2023-01-19 15:20:18.324173702 +0100
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_GENERATION_PASSWORD_GENERATOR_H_
#define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_GENERATION_PASSWORD_GENERATOR_H_
+#include <cstdint>
#include <string>
diff -up chromium-109.0.5414.74/components/feature_engagement/internal/event_storage_validator.h.me chromium-109.0.5414.74/components/feature_engagement/internal/event_storage_validator.h
--- chromium-109.0.5414.74/components/feature_engagement/internal/event_storage_validator.h.me 2023-01-19 16:00:14.350186515 +0100
+++ chromium-109.0.5414.74/components/feature_engagement/internal/event_storage_validator.h 2023-01-19 16:00:21.643307993 +0100
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_EVENT_STORAGE_VALIDATOR_H_
#define COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_EVENT_STORAGE_VALIDATOR_H_
+#include <cstdint>
#include <string>
namespace feature_engagement {
diff -up chromium-109.0.5414.74/components/feature_engagement/internal/never_event_storage_validator.h.me chromium-109.0.5414.74/components/feature_engagement/internal/never_event_storage_validator.h
--- chromium-109.0.5414.74/components/feature_engagement/internal/never_event_storage_validator.h.me 2023-01-19 15:59:18.210239416 +0100
+++ chromium-109.0.5414.74/components/feature_engagement/internal/never_event_storage_validator.h 2023-01-19 15:59:34.513515030 +0100
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_
#define COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_
+#include <cstdint>
#include <string>
#include "components/feature_engagement/internal/event_storage_validator.h"
diff -up chromium-109.0.5414.74/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/Signals.h.me chromium-109.0.5414.74/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/Signals.h
--- chromium-109.0.5414.74/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/Signals.h.me 2023-01-19 16:06:17.548272878 +0100
+++ chromium-109.0.5414.74/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/Signals.h 2023-01-19 16:06:25.685410592 +0100
@@ -14,6 +14,7 @@
#ifndef LLVM_SUPPORT_SIGNALS_H
#define LLVM_SUPPORT_SIGNALS_H
+#include <cstdint>
#include <string>
namespace llvm {
diff -up chromium-109.0.5414.74/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc.me chromium-109.0.5414.74/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc
--- chromium-109.0.5414.74/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc.me 2023-01-19 16:09:29.216477182 +0100
+++ chromium-109.0.5414.74/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc 2023-01-19 16:10:05.657089208 +0100
@@ -45,6 +45,7 @@
#include "llvm/Support/SaveAndRestore.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
+#include <cstdint>
#include <string>
#include <sysexits.h>
#ifdef HAVE_BACKTRACE
diff -up chromium-109.0.5414.74/chrome/browser/privacy_budget/encountered_surface_tracker.h.me chromium-109.0.5414.74/chrome/browser/privacy_budget/encountered_surface_tracker.h
--- chromium-109.0.5414.74/chrome/browser/privacy_budget/encountered_surface_tracker.h.me 2023-01-19 16:32:05.338160131 +0100
+++ chromium-109.0.5414.74/chrome/browser/privacy_budget/encountered_surface_tracker.h 2023-01-19 16:32:16.213326798 +0100
@@ -5,6 +5,7 @@
#ifndef CHROME_BROWSER_PRIVACY_BUDGET_ENCOUNTERED_SURFACE_TRACKER_H_
#define CHROME_BROWSER_PRIVACY_BUDGET_ENCOUNTERED_SURFACE_TRACKER_H_
+#include <cstdint>
#include <map>
#include "base/containers/flat_set.h"
diff -up chromium-109.0.5414.74/components/autofill/core/browser/autofill_ablation_study.h.me chromium-109.0.5414.74/components/autofill/core/browser/autofill_ablation_study.h
--- chromium-109.0.5414.74/components/autofill/core/browser/autofill_ablation_study.h.me 2023-01-19 16:47:55.548571102 +0100
+++ chromium-109.0.5414.74/components/autofill/core/browser/autofill_ablation_study.h 2023-01-19 16:48:29.214146529 +0100
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_ABLATION_STUDY_H_
#define COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_ABLATION_STUDY_H_
+#include <cstdint>
#include <string>
class GURL;
diff -up chromium-109.0.5414.74/components/omnibox/browser/on_device_head_model.h.me chromium-109.0.5414.74/components/omnibox/browser/on_device_head_model.h
--- chromium-109.0.5414.74/components/omnibox/browser/on_device_head_model.h.me 2023-01-19 16:57:29.525372814 +0100
+++ chromium-109.0.5414.74/components/omnibox/browser/on_device_head_model.h 2023-01-19 16:58:02.667979288 +0100
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_OMNIBOX_BROWSER_ON_DEVICE_HEAD_MODEL_H_
#define COMPONENTS_OMNIBOX_BROWSER_ON_DEVICE_HEAD_MODEL_H_
+#include <cstdint>
#include <string>
#include <utility>
#include <vector>
diff -up chromium-109.0.5414.74/components/payments/content/utility/fingerprint_parser.h.me chromium-109.0.5414.74/components/payments/content/utility/fingerprint_parser.h
--- chromium-109.0.5414.74/components/payments/content/utility/fingerprint_parser.h.me 2023-01-19 17:02:45.258544665 +0100
+++ chromium-109.0.5414.74/components/payments/content/utility/fingerprint_parser.h 2023-01-19 17:02:52.577611757 +0100
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_PAYMENTS_CONTENT_UTILITY_FINGERPRINT_PARSER_H_
#define COMPONENTS_PAYMENTS_CONTENT_UTILITY_FINGERPRINT_PARSER_H_
+#include <cstdint>
#include <stddef.h>
#include <string>
diff -up chromium-109.0.5414.74/pdf/document_attachment_info.h.me chromium-109.0.5414.74/pdf/document_attachment_info.h
--- chromium-109.0.5414.74/pdf/document_attachment_info.h.me 2023-01-19 17:28:28.552063534 +0100
+++ chromium-109.0.5414.74/pdf/document_attachment_info.h 2023-01-19 17:28:48.072379953 +0100
@@ -5,6 +5,7 @@
#ifndef PDF_DOCUMENT_ATTACHMENT_INFO_H_
#define PDF_DOCUMENT_ATTACHMENT_INFO_H_
+#include <cstdint>
#include <string>
diff -up chromium-109.0.5414.74/third_party/pdfium/constants/annotation_flags.h.me chromium-109.0.5414.74/third_party/pdfium/constants/annotation_flags.h
--- chromium-109.0.5414.74/third_party/pdfium/constants/annotation_flags.h.me 2023-01-19 18:25:47.648193710 +0100
+++ chromium-109.0.5414.74/third_party/pdfium/constants/annotation_flags.h 2023-01-19 18:26:11.488593556 +0100
@@ -5,6 +5,8 @@
#ifndef CONSTANTS_ANNOTATION_FLAGS_H_
#define CONSTANTS_ANNOTATION_FLAGS_H_
+#include <cstdint>
+
namespace pdfium {
namespace annotation_flags {
diff -up chromium-109.0.5414.74/base/cpu.h.me chromium-109.0.5414.74/base/cpu.h
--- chromium-109.0.5414.74/base/cpu.h.me 2023-01-19 21:31:02.905062987 +0100
+++ chromium-109.0.5414.74/base/cpu.h 2023-01-19 21:31:32.298573267 +0100
@@ -5,6 +5,7 @@
#ifndef BASE_CPU_H_
#define BASE_CPU_H_
+#include <cstdint>
#include <string>
#include "base/base_export.h"
diff -up chromium-113.0.5672.24/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h.me chromium-113.0.5672.24/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
--- chromium-113.0.5672.24/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h.me 2023-04-15 16:44:55.344305412 +0200
+++ chromium-113.0.5672.24/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h 2023-04-15 16:47:09.028666995 +0200
@@ -2854,6 +2854,7 @@ static void vma_aligned_free(void* VMA_N
// Define this macro to 1 to enable functions: vmaBuildStatsString, vmaFreeStatsString.
#if VMA_STATS_STRING_ENABLED
+#include <stdio.h>
static inline void VmaUint32ToStr(char* VMA_NOT_NULL outStr, size_t strLen, uint32_t num)
{
snprintf(outStr, strLen, "%u", static_cast<unsigned int>(num));
diff -up chromium-113.0.5672.37/chrome/browser/webauthn/authenticator_request_dialog_model.h.me chromium-113.0.5672.37/chrome/browser/webauthn/authenticator_request_dialog_model.h
--- chromium-113.0.5672.37/chrome/browser/webauthn/authenticator_request_dialog_model.h.me 2023-04-18 15:55:44.774916319 +0200
+++ chromium-113.0.5672.37/chrome/browser/webauthn/authenticator_request_dialog_model.h 2023-04-18 15:55:54.441085882 +0200
@@ -8,6 +8,7 @@
#include <memory>
#include <string>
#include <vector>
+#include <variant>
#include "base/containers/span.h"
#include "base/functional/callback_forward.h"
diff -up chromium-113.0.5672.37/gin/time_clamper.h.me chromium-113.0.5672.37/gin/time_clamper.h
--- chromium-113.0.5672.37/gin/time_clamper.h.me 2023-04-18 16:38:41.180437467 +0200
+++ chromium-113.0.5672.37/gin/time_clamper.h 2023-04-18 16:39:43.857049432 +0200
@@ -48,7 +48,7 @@ class GIN_EXPORT TimeClamper {
const int64_t micros = now_micros % 1000;
// abs() is necessary for devices with times before unix-epoch (most likely
// configured incorrectly).
- if (abs(micros) + kResolutionMicros < 1000) {
+ if (std::abs(micros) + kResolutionMicros < 1000) {
return now_micros / 1000;
}
return ClampTimeResolution(now_micros) / 1000;
diff -up chromium-113.0.5672.53/chrome/test/chromedriver/chrome/web_view_impl.cc.me chromium-113.0.5672.53/chrome/test/chromedriver/chrome/web_view_impl.cc
--- chromium-113.0.5672.53/chrome/test/chromedriver/chrome/web_view_impl.cc.me 2023-04-21 08:07:55.362714544 +0200
+++ chromium-113.0.5672.53/chrome/test/chromedriver/chrome/web_view_impl.cc 2023-04-21 08:14:35.424158693 +0200
@@ -10,6 +10,7 @@
#include <queue>
#include <utility>
#include <vector>
+#include <cstring>
#include "base/check.h"
#include "base/files/file_path.h"

View File

@ -1,105 +0,0 @@
diff -up chromium-114.0.5735.35/chrome/browser/safe_browsing/download_protection/file_analyzer.cc.nounrar chromium-114.0.5735.35/chrome/browser/safe_browsing/download_protection/file_analyzer.cc
--- chromium-114.0.5735.35/chrome/browser/safe_browsing/download_protection/file_analyzer.cc.nounrar 2023-05-18 00:37:47.000000000 +0200
+++ chromium-114.0.5735.35/chrome/browser/safe_browsing/download_protection/file_analyzer.cc 2023-05-21 18:12:30.368425080 +0200
@@ -77,8 +77,6 @@ void FileAnalyzer::Start(const base::Fil
if (inspection_type == DownloadFileType::ZIP) {
StartExtractZipFeatures();
- } else if (inspection_type == DownloadFileType::RAR) {
- StartExtractRarFeatures();
#if BUILDFLAG(IS_MAC)
} else if (inspection_type == DownloadFileType::DMG) {
StartExtractDmgFeatures();
diff -up chromium-114.0.5735.35/chrome/common/safe_browsing/archive_analyzer.cc.nounrar chromium-114.0.5735.35/chrome/common/safe_browsing/archive_analyzer.cc
--- chromium-114.0.5735.35/chrome/common/safe_browsing/archive_analyzer.cc.nounrar 2023-05-18 00:37:48.000000000 +0200
+++ chromium-114.0.5735.35/chrome/common/safe_browsing/archive_analyzer.cc 2023-05-21 18:11:14.870058635 +0200
@@ -8,7 +8,6 @@
#include "build/build_config.h"
#include "build/buildflag.h"
#include "chrome/common/safe_browsing/archive_analyzer_results.h"
-#include "chrome/common/safe_browsing/rar_analyzer.h"
#include "chrome/common/safe_browsing/seven_zip_analyzer.h"
#include "chrome/common/safe_browsing/zip_analyzer.h"
#include "components/safe_browsing/content/common/proto/download_file_types.pb.h"
@@ -23,9 +22,7 @@ namespace safe_browsing {
// static
std::unique_ptr<ArchiveAnalyzer> ArchiveAnalyzer::CreateForArchiveType(
DownloadFileType_InspectionType file_type) {
- if (file_type == DownloadFileType::RAR) {
- return std::make_unique<RarAnalyzer>();
- } else if (file_type == DownloadFileType::ZIP) {
+ if (file_type == DownloadFileType::ZIP) {
return std::make_unique<ZipAnalyzer>();
} else if (file_type == DownloadFileType::SEVEN_ZIP) {
return std::make_unique<SevenZipAnalyzer>();
diff -up chromium-114.0.5735.35/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-114.0.5735.35/chrome/common/safe_browsing/BUILD.gn
--- chromium-114.0.5735.35/chrome/common/safe_browsing/BUILD.gn.nounrar 2023-05-18 00:37:48.000000000 +0200
+++ chromium-114.0.5735.35/chrome/common/safe_browsing/BUILD.gn 2023-05-21 18:11:14.869058617 +0200
@@ -145,8 +145,6 @@ source_set("safe_browsing") {
"protobuf_message_log_macros.h",
"protobuf_message_read_macros.h",
"protobuf_message_write_macros.h",
- "rar_analyzer.cc",
- "rar_analyzer.h",
"seven_zip_analyzer.cc",
"seven_zip_analyzer.h",
"zip_analyzer.cc",
@@ -162,7 +160,6 @@ source_set("safe_browsing") {
"//components/safe_browsing/content/common:file_type_policies",
"//components/safe_browsing/core/common",
"//third_party/lzma_sdk/google:seven_zip_reader",
- "//third_party/unrar:unrar",
]
if (is_linux) {
diff -up chromium-114.0.5735.35/chrome/common/safe_browsing/zip_analyzer.cc.nounrar chromium-114.0.5735.35/chrome/common/safe_browsing/zip_analyzer.cc
--- chromium-114.0.5735.35/chrome/common/safe_browsing/zip_analyzer.cc.nounrar 2023-05-18 00:37:48.000000000 +0200
+++ chromium-114.0.5735.35/chrome/common/safe_browsing/zip_analyzer.cc 2023-05-21 18:11:14.869058617 +0200
@@ -18,7 +18,6 @@
#include "base/time/time.h"
#include "build/build_config.h"
#include "chrome/common/safe_browsing/archive_analyzer_results.h"
-#include "chrome/common/safe_browsing/rar_analyzer.h"
#include "components/safe_browsing/content/common/file_type_policies.h"
#include "components/safe_browsing/core/common/features.h"
#include "components/safe_browsing/core/common/proto/csd.pb.h"
diff -up chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.cc
--- chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2023-05-18 00:37:48.000000000 +0200
+++ chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.cc 2023-05-21 18:11:14.870058635 +0200
@@ -71,6 +71,7 @@ void SafeArchiveAnalyzer::AnalyzeRarFile
base::File rar_file,
mojo::PendingRemote<chrome::mojom::TemporaryFileGetter> temp_file_getter,
AnalyzeRarFileCallback callback) {
+#if 0
DCHECK(rar_file.IsValid());
temp_file_getter_.Bind(std::move(temp_file_getter));
callback_ = std::move(callback);
@@ -86,6 +87,9 @@ void SafeArchiveAnalyzer::AnalyzeRarFile
rar_analyzer_.Analyze(std::move(rar_file), base::FilePath(),
std::move(analysis_finished_callback),
std::move(temp_file_getter_callback), &results_);
+#else
+ NOTREACHED();
+#endif
}
void SafeArchiveAnalyzer::AnalyzeSevenZipFile(
diff -up chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.h.nounrar chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.h
--- chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.h.nounrar 2023-05-18 00:37:48.000000000 +0200
+++ chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.h 2023-05-21 18:11:14.870058635 +0200
@@ -6,7 +6,6 @@
#define CHROME_SERVICES_FILE_UTIL_SAFE_ARCHIVE_ANALYZER_H_
#include "chrome/common/safe_browsing/archive_analyzer_results.h"
-#include "chrome/common/safe_browsing/rar_analyzer.h"
#include "chrome/common/safe_browsing/seven_zip_analyzer.h"
#include "chrome/common/safe_browsing/zip_analyzer.h"
#include "chrome/services/file_util/public/mojom/safe_archive_analyzer.mojom.h"
@@ -63,7 +62,6 @@ class SafeArchiveAnalyzer : public chrom
void Timeout();
safe_browsing::ZipAnalyzer zip_analyzer_;
- safe_browsing::RarAnalyzer rar_analyzer_;
safe_browsing::SevenZipAnalyzer seven_zip_analyzer_;
#if BUILDFLAG(IS_MAC)
safe_browsing::dmg::DMGAnalyzer dmg_analyzer_;

View File

@ -1,21 +0,0 @@
diff --git a/ui/qt/qt_ui.cc b/ui/qt/qt_ui.cc
index bac5245a..a97fa8b 100644
--- a/ui/qt/qt_ui.cc
+++ b/ui/qt/qt_ui.cc
@@ -422,12 +422,14 @@
auto desc = shim_->GetFontDescription();
font_family_ = desc.family.c_str();
+ // Points are defined at 72 DPI and pixels are 96 DPI by default.
+ constexpr double kPointToPixelRatio = 96.0 / 72.0;
if (desc.size_pixels > 0) {
font_size_pixels_ = desc.size_pixels;
- font_size_points_ = font_size_pixels_ / GetDeviceScaleFactor();
+ font_size_points_ = std::round(font_size_pixels_ / kPointToPixelRatio);
} else {
font_size_points_ = desc.size_points;
- font_size_pixels_ = font_size_points_ * GetDeviceScaleFactor();
+ font_size_pixels_ = std::round(font_size_points_ * kPointToPixelRatio);
}
font_style_ = desc.is_italic ? gfx::Font::ITALIC : gfx::Font::NORMAL;
font_weight_ = QtWeightToCssWeight(desc.weight);

View File

@ -1,574 +0,0 @@
commit c51d6447fd0d124903d16bf5952efccbf9e1ca92
Author: Tom Anderson <thomasanderson@chromium.org>
Date: Wed May 24 22:53:20 2023 +0000
[Qt] Handle scale factor changes
This is a speculative fix for https://crbug.com/1439149. I suspect
the scale factor is not set immediately on QT initialization, but
is set asynchronously shortly after. This CL adds a listener for
QT scale changes.
R=thestig
Low-Coverage-Reason: No QT tests currently
Change-Id: I7dea23e16a6bb26237564af2dc4e43480f6aea9f
Bug: 1439149
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4559732
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1148805}
diff --git a/ui/qt/qt5_shim_moc.cc b/ui/qt/qt5_shim_moc.cc
index 8f8b6b57784a8..6e504f23c603a 100644
--- a/ui/qt/qt5_shim_moc.cc
+++ b/ui/qt/qt5_shim_moc.cc
@@ -23,8 +23,8 @@
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_qt__QtShim_t {
- QByteArrayData data[6];
- char stringdata[52];
+ QByteArrayData data[13];
+ char stringdata[151];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET( \
@@ -33,9 +33,16 @@ struct qt_meta_stringdata_qt__QtShim_t {
static const qt_meta_stringdata_qt__QtShim_t qt_meta_stringdata_qt__QtShim = {
{QT_MOC_LITERAL(0, 0, 10), QT_MOC_LITERAL(1, 11, 11),
QT_MOC_LITERAL(2, 23, 0), QT_MOC_LITERAL(3, 24, 4),
- QT_MOC_LITERAL(4, 29, 14), QT_MOC_LITERAL(5, 44, 7)},
+ QT_MOC_LITERAL(4, 29, 14), QT_MOC_LITERAL(5, 44, 7),
+ QT_MOC_LITERAL(6, 52, 11), QT_MOC_LITERAL(7, 64, 8),
+ QT_MOC_LITERAL(8, 73, 6), QT_MOC_LITERAL(9, 80, 13),
+ QT_MOC_LITERAL(10, 94, 25), QT_MOC_LITERAL(11, 120, 3),
+ QT_MOC_LITERAL(12, 124, 26)},
"qt::QtShim\0FontChanged\0\0font\0"
- "PaletteChanged\0palette"};
+ "PaletteChanged\0palette\0ScreenAdded\0"
+ "QScreen*\0screen\0ScreenRemoved\0"
+ "LogicalDotsPerInchChanged\0dpi\0"
+ "PhysicalDotsPerInchChanged"};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_qt__QtShim[] = {
@@ -44,7 +51,7 @@ static const uint qt_meta_data_qt__QtShim[] = {
7, // revision
0, // classname
0, 0, // classinfo
- 2, 14, // methods
+ 6, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
@@ -52,11 +59,15 @@ static const uint qt_meta_data_qt__QtShim[] = {
0, // signalCount
// slots: name, argc, parameters, tag, flags
- 1, 1, 24, 2, 0x08 /* Private */, 4, 1, 27, 2, 0x08 /* Private */,
+ 1, 1, 44, 2, 0x08 /* Private */, 4, 1, 47, 2, 0x08 /* Private */, 6, 1, 50,
+ 2, 0x08 /* Private */, 9, 1, 53, 2, 0x08 /* Private */, 10, 1, 56, 2,
+ 0x08 /* Private */, 12, 1, 59, 2, 0x08 /* Private */,
// slots: parameters
QMetaType::Void, QMetaType::QFont, 3, QMetaType::Void, QMetaType::QPalette,
- 5,
+ 5, QMetaType::Void, 0x80000000 | 7, 8, QMetaType::Void, 0x80000000 | 7, 8,
+ QMetaType::Void, QMetaType::QReal, 11, QMetaType::Void, QMetaType::QReal,
+ 11,
0 // eod
};
@@ -74,6 +85,18 @@ void qt::QtShim::qt_static_metacall(QObject* _o,
case 1:
_t->PaletteChanged((*reinterpret_cast<const QPalette(*)>(_a[1])));
break;
+ case 2:
+ _t->ScreenAdded((*reinterpret_cast<QScreen*(*)>(_a[1])));
+ break;
+ case 3:
+ _t->ScreenRemoved((*reinterpret_cast<QScreen*(*)>(_a[1])));
+ break;
+ case 4:
+ _t->LogicalDotsPerInchChanged((*reinterpret_cast<qreal(*)>(_a[1])));
+ break;
+ case 5:
+ _t->PhysicalDotsPerInchChanged((*reinterpret_cast<qreal(*)>(_a[1])));
+ break;
default:;
}
}
@@ -107,15 +130,15 @@ int qt::QtShim::qt_metacall(QMetaObject::Call _c, int _id, void** _a) {
return _id;
}
if (_c == QMetaObject::InvokeMetaMethod) {
- if (_id < 2) {
+ if (_id < 6) {
qt_static_metacall(this, _c, _id, _a);
}
- _id -= 2;
+ _id -= 6;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
- if (_id < 2) {
+ if (_id < 6) {
*reinterpret_cast<int*>(_a[0]) = -1;
}
- _id -= 2;
+ _id -= 6;
}
return _id;
}
diff --git a/ui/qt/qt6_shim_moc.cc b/ui/qt/qt6_shim_moc.cc
index 6d02ca317b65d..a16515008d892 100644
--- a/ui/qt/qt6_shim_moc.cc
+++ b/ui/qt/qt6_shim_moc.cc
@@ -26,8 +26,8 @@ QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_qt__QtShim_t {
- const uint offsetsAndSize[12];
- char stringdata0[52];
+ const uint offsetsAndSize[26];
+ char stringdata0[151];
};
#define QT_MOC_LITERAL(ofs, len) \
uint(offsetof(qt_meta_stringdata_qt__QtShim_t, stringdata0) + ofs), len
@@ -38,11 +38,21 @@ static const qt_meta_stringdata_qt__QtShim_t qt_meta_stringdata_qt__QtShim = {
QT_MOC_LITERAL(23, 0), // ""
QT_MOC_LITERAL(24, 4), // "font"
QT_MOC_LITERAL(29, 14), // "PaletteChanged"
- QT_MOC_LITERAL(44, 7) // "palette"
+ QT_MOC_LITERAL(44, 7), // "palette"
+ QT_MOC_LITERAL(52, 11), // "ScreenAdded"
+ QT_MOC_LITERAL(64, 8), // "QScreen*"
+ QT_MOC_LITERAL(73, 6), // "screen"
+ QT_MOC_LITERAL(80, 13), // "ScreenRemoved"
+ QT_MOC_LITERAL(94, 25), // "LogicalDotsPerInchChanged"
+ QT_MOC_LITERAL(120, 3), // "dpi"
+ QT_MOC_LITERAL(124, 26) // "PhysicalDotsPerInchChanged"
},
"qt::QtShim\0FontChanged\0\0font\0"
- "PaletteChanged\0palette"};
+ "PaletteChanged\0palette\0ScreenAdded\0"
+ "QScreen*\0screen\0ScreenRemoved\0"
+ "LogicalDotsPerInchChanged\0dpi\0"
+ "PhysicalDotsPerInchChanged"};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_qt__QtShim[] = {
@@ -51,7 +61,7 @@ static const uint qt_meta_data_qt__QtShim[] = {
10, // revision
0, // classname
0, 0, // classinfo
- 2, 14, // methods
+ 6, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
@@ -59,11 +69,15 @@ static const uint qt_meta_data_qt__QtShim[] = {
0, // signalCount
// slots: name, argc, parameters, tag, flags, initial metatype offsets
- 1, 1, 26, 2, 0x08, 1 /* Private */, 4, 1, 29, 2, 0x08, 3 /* Private */,
+ 1, 1, 50, 2, 0x08, 1 /* Private */, 4, 1, 53, 2, 0x08, 3 /* Private */, 6,
+ 1, 56, 2, 0x08, 5 /* Private */, 9, 1, 59, 2, 0x08, 7 /* Private */, 10, 1,
+ 62, 2, 0x08, 9 /* Private */, 12, 1, 65, 2, 0x08, 11 /* Private */,
// slots: parameters
QMetaType::Void, QMetaType::QFont, 3, QMetaType::Void, QMetaType::QPalette,
- 5,
+ 5, QMetaType::Void, 0x80000000 | 7, 8, QMetaType::Void, 0x80000000 | 7, 8,
+ QMetaType::Void, QMetaType::QReal, 11, QMetaType::Void, QMetaType::QReal,
+ 11,
0 // eod
};
@@ -83,6 +97,22 @@ void qt::QtShim::qt_static_metacall(QObject* _o,
_t->PaletteChanged(
(*reinterpret_cast<std::add_pointer_t<QPalette>>(_a[1])));
break;
+ case 2:
+ _t->ScreenAdded(
+ (*reinterpret_cast<std::add_pointer_t<QScreen*>>(_a[1])));
+ break;
+ case 3:
+ _t->ScreenRemoved(
+ (*reinterpret_cast<std::add_pointer_t<QScreen*>>(_a[1])));
+ break;
+ case 4:
+ _t->LogicalDotsPerInchChanged(
+ (*reinterpret_cast<std::add_pointer_t<qreal>>(_a[1])));
+ break;
+ case 5:
+ _t->PhysicalDotsPerInchChanged(
+ (*reinterpret_cast<std::add_pointer_t<qreal>>(_a[1])));
+ break;
default:;
}
}
@@ -98,7 +128,15 @@ const QMetaObject qt::QtShim::staticMetaObject = {
QtPrivate::TypeAndForceComplete<void, std::false_type>,
QtPrivate::TypeAndForceComplete<const QFont&, std::false_type>,
QtPrivate::TypeAndForceComplete<void, std::false_type>,
- QtPrivate::TypeAndForceComplete<const QPalette&, std::false_type>
+ QtPrivate::TypeAndForceComplete<const QPalette&, std::false_type>,
+ QtPrivate::TypeAndForceComplete<void, std::false_type>,
+ QtPrivate::TypeAndForceComplete<QScreen*, std::false_type>,
+ QtPrivate::TypeAndForceComplete<void, std::false_type>,
+ QtPrivate::TypeAndForceComplete<QScreen*, std::false_type>,
+ QtPrivate::TypeAndForceComplete<void, std::false_type>,
+ QtPrivate::TypeAndForceComplete<qreal, std::false_type>,
+ QtPrivate::TypeAndForceComplete<void, std::false_type>,
+ QtPrivate::TypeAndForceComplete<qreal, std::false_type>
>,
nullptr}};
@@ -127,15 +165,15 @@ int qt::QtShim::qt_metacall(QMetaObject::Call _c, int _id, void** _a) {
return _id;
}
if (_c == QMetaObject::InvokeMetaMethod) {
- if (_id < 2) {
+ if (_id < 6) {
qt_static_metacall(this, _c, _id, _a);
}
- _id -= 2;
+ _id -= 6;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
- if (_id < 2) {
+ if (_id < 6) {
*reinterpret_cast<QMetaType*>(_a[0]) = QMetaType();
}
- _id -= 2;
+ _id -= 6;
}
return _id;
}
diff --git a/ui/qt/qt_interface.h b/ui/qt/qt_interface.h
index 6a362bc66c0e3..28dfc6603544f 100644
--- a/ui/qt/qt_interface.h
+++ b/ui/qt/qt_interface.h
@@ -118,6 +118,7 @@ class QtInterface {
virtual void FontChanged() = 0;
virtual void ThemeChanged() = 0;
+ virtual void ScaleFactorMaybeChanged() = 0;
};
QtInterface() = default;
diff --git a/ui/qt/qt_shim.cc b/ui/qt/qt_shim.cc
index 74d34ad196f18..0aec9c3aed4ad 100644
--- a/ui/qt/qt_shim.cc
+++ b/ui/qt/qt_shim.cc
@@ -16,6 +16,7 @@
#include <QMimeType>
#include <QPainter>
#include <QPalette>
+#include <QScreen>
#include <QStyle>
#include <QStyleOptionTitleBar>
@@ -52,8 +53,9 @@ FontHinting QtHintingToFontHinting(QFont::HintingPreference hinting) {
// Obtain the average color of a gradient.
SkColor GradientColor(const QGradient& gradient) {
QGradientStops stops = gradient.stops();
- if (stops.empty())
+ if (stops.empty()) {
return qRgba(0, 0, 0, 0);
+ }
float a = 0;
float r = 0;
@@ -86,11 +88,13 @@ SkColor GradientColor(const QGradient& gradient) {
// Obtain the average color of a texture.
SkColor TextureColor(QImage image) {
size_t size = image.width() * image.height();
- if (!size)
+ if (!size) {
return qRgba(0, 0, 0, 0);
+ }
- if (image.format() != QImage::Format_ARGB32_Premultiplied)
+ if (image.format() != QImage::Format_ARGB32_Premultiplied) {
image = image.convertToFormat(QImage::Format_ARGB32_Premultiplied);
+ }
size_t a = 0;
size_t r = 0;
@@ -203,6 +207,13 @@ QtShim::QtShim(QtInterface::Delegate* delegate, int* argc, char** argv)
SLOT(FontChanged(const QFont&)));
connect(&app_, SIGNAL(paletteChanged(const QPalette&)), this,
SLOT(PaletteChanged(const QPalette&)));
+ connect(&app_, SIGNAL(screenAdded(QScreen*)), this,
+ SLOT(ScreenAdded(QScreen*)));
+ connect(&app_, SIGNAL(screenRemoved(QScreen*)), this,
+ SLOT(ScreenRemoved(QScreen*)));
+ for (QScreen* screen : app_.screens()) {
+ ScreenAdded(screen);
+ }
}
QtShim::~QtShim() = default;
@@ -241,8 +252,9 @@ Image QtShim::GetIconForContentType(const String& content_type,
auto icon = QIcon::fromTheme(name);
auto pixmap = icon.pixmap(size);
auto image = pixmap.toImage();
- if (image.format() != QImage::Format_ARGB32_Premultiplied)
+ if (image.format() != QImage::Format_ARGB32_Premultiplied) {
image = image.convertToFormat(QImage::Format_ARGB32_Premultiplied);
+ }
if (auto bytes = image.sizeInBytes()) {
return {image.width(), image.height(),
static_cast<float>(image.devicePixelRatio()),
@@ -283,6 +295,30 @@ void QtShim::PaletteChanged(const QPalette& palette) {
delegate_->ThemeChanged();
}
+DISABLE_CFI_VCALL
+void QtShim::ScreenAdded(QScreen* screen) {
+ connect(screen, SIGNAL(logicalDotsPerInchChanged(qreal)), this,
+ SLOT(LogicalDotsPerInchChanged(qreal)));
+ connect(screen, SIGNAL(physicalDotsPerInchChanged(qreal)), this,
+ SLOT(PhysicalDotsPerInchChanged(qreal)));
+ delegate_->ScaleFactorMaybeChanged();
+}
+
+DISABLE_CFI_VCALL
+void QtShim::ScreenRemoved(QScreen* screen) {
+ delegate_->ScaleFactorMaybeChanged();
+}
+
+DISABLE_CFI_VCALL
+void QtShim::LogicalDotsPerInchChanged(qreal dpi) {
+ delegate_->ScaleFactorMaybeChanged();
+}
+
+DISABLE_CFI_VCALL
+void QtShim::PhysicalDotsPerInchChanged(qreal dpi) {
+ delegate_->ScaleFactorMaybeChanged();
+}
+
Image QtShim::DrawHeader(int width,
int height,
SkColor default_color,
@@ -309,8 +345,9 @@ QImage QtShim::DrawHeaderImpl(int width,
QStyleOptionTitleBar opt;
opt.rect = QRect(-kBorderWidth, -kBorderWidth, width + 2 * kBorderWidth,
height + 2 * kBorderWidth);
- if (state == ColorState::kNormal)
+ if (state == ColorState::kNormal) {
opt.titleBarState = QStyle::State_Active;
+ }
app_.style()->drawComplexControl(QStyle::CC_TitleBar, &opt, &painter,
nullptr);
} else {
diff --git a/ui/qt/qt_shim.h b/ui/qt/qt_shim.h
index 607e6fe22dfc0..d979c47d589d4 100644
--- a/ui/qt/qt_shim.h
+++ b/ui/qt/qt_shim.h
@@ -42,6 +42,10 @@ class QtShim : public QObject, public QtInterface {
private slots:
void FontChanged(const QFont& font);
void PaletteChanged(const QPalette& palette);
+ void ScreenAdded(QScreen* screen);
+ void ScreenRemoved(QScreen* screen);
+ void LogicalDotsPerInchChanged(qreal dpi);
+ void PhysicalDotsPerInchChanged(qreal dpi);
private:
QImage DrawHeaderImpl(int width,
diff --git a/ui/qt/qt_ui.cc b/ui/qt/qt_ui.cc
index 6a3b58e9f930b..bac5245a069f9 100644
--- a/ui/qt/qt_ui.cc
+++ b/ui/qt/qt_ui.cc
@@ -19,6 +19,7 @@
#include "base/nix/xdg_util.h"
#include "base/notreached.h"
#include "base/path_service.h"
+#include "base/task/single_thread_task_runner.h"
#include "base/time/time.h"
#include "cc/paint/paint_canvas.h"
#include "chrome/browser/themes/theme_properties.h" // nogncheck
@@ -36,6 +37,7 @@
#include "ui/gfx/image/image.h"
#include "ui/gfx/image/image_skia_rep.h"
#include "ui/gfx/image/image_skia_source.h"
+#include "ui/linux/device_scale_factor_observer.h"
#include "ui/linux/linux_ui.h"
#include "ui/linux/nav_button_provider.h"
#include "ui/native_theme/native_theme_aura.h"
@@ -194,16 +196,21 @@ void QtUi::GetDefaultFontDescription(std::string* family_out,
int* style_out,
int* weight_out,
gfx::FontRenderParams* params_out) const {
- if (family_out)
+ if (family_out) {
*family_out = font_family_;
- if (size_pixels_out)
+ }
+ if (size_pixels_out) {
*size_pixels_out = font_size_pixels_;
- if (style_out)
+ }
+ if (style_out) {
*style_out = font_style_;
- if (weight_out)
+ }
+ if (weight_out) {
*weight_out = font_weight_;
- if (params_out)
+ }
+ if (params_out) {
*params_out = font_params_;
+ }
}
ui::SelectFileDialog* QtUi::CreateSelectFileDialog(
@@ -236,6 +245,7 @@ bool QtUi::Initialize() {
ui::ColorProviderManager::Get().AppendColorProviderInitializer(
base::BindRepeating(&QtUi::AddNativeColorMixer, base::Unretained(this)));
FontChanged();
+ scale_factor_ = shim_->GetScaleFactor();
return true;
}
@@ -246,8 +256,9 @@ ui::NativeTheme* QtUi::GetNativeTheme() const {
bool QtUi::GetColor(int id, SkColor* color, bool use_custom_frame) const {
auto value = GetColor(id, use_custom_frame);
- if (value)
+ if (value) {
*color = *value;
+ }
return value.has_value();
}
@@ -297,8 +308,9 @@ gfx::Image QtUi::GetIconForContentType(const std::string& content_type,
float scale) const {
Image image =
shim_->GetIconForContentType(String(content_type.c_str()), size * scale);
- if (!image.data_argb.size())
+ if (!image.data_argb.size()) {
return {};
+ }
SkImageInfo image_info = SkImageInfo::Make(
image.width, image.height, kBGRA_8888_SkColorType, kPremul_SkAlphaType);
@@ -345,14 +357,16 @@ bool QtUi::AnimationsEnabled() const {
void QtUi::AddWindowButtonOrderObserver(
ui::WindowButtonOrderObserver* observer) {
- if (fallback_linux_ui_)
+ if (fallback_linux_ui_) {
fallback_linux_ui_->AddWindowButtonOrderObserver(observer);
+ }
}
void QtUi::RemoveWindowButtonOrderObserver(
ui::WindowButtonOrderObserver* observer) {
- if (fallback_linux_ui_)
+ if (fallback_linux_ui_) {
fallback_linux_ui_->RemoveWindowButtonOrderObserver(observer);
+ }
}
std::unique_ptr<ui::NavButtonProvider> QtUi::CreateNavButtonProvider() {
@@ -441,11 +455,24 @@ void QtUi::ThemeChanged() {
native_theme_->ThemeChanged(PreferDarkTheme());
}
+void QtUi::ScaleFactorMaybeChanged() {
+ // This gets called whenever the monitor configuration changes. Handle the
+ // scale change asynchronously to allow the change to propagate to QT's scale
+ // factor. This also coalesces scale change events together.
+ if (!scale_factor_task_active_) {
+ scale_factor_task_active_ = true;
+ base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask(
+ FROM_HERE, base::BindOnce(&QtUi::ScaleFactorMaybeChangedImpl,
+ weak_factory_.GetWeakPtr()));
+ }
+}
+
DISABLE_CFI_VCALL
void QtUi::AddNativeColorMixer(ui::ColorProvider* provider,
const ui::ColorProviderManager::Key& key) {
- if (key.system_theme != ui::SystemTheme::kQt)
+ if (key.system_theme != ui::SystemTheme::kQt) {
return;
+ }
ui::ColorMixer& mixer = provider->AddMixer();
// These color constants are required by native_chrome_color_mixer_linux.cc
@@ -494,8 +521,9 @@ void QtUi::AddNativeColorMixer(ui::ColorProvider* provider,
ColorState::kInactive},
{ui::kColorNativeToolbarBackground, ColorType::kButtonBg},
};
- for (const auto& map : kMaps)
+ for (const auto& map : kMaps) {
mixer[map.id] = {shim_->GetColor(map.role, map.state)};
+ }
const bool use_custom_frame =
key.frame_type == ui::ColorProviderManager::FrameType::kChromium;
@@ -578,6 +606,20 @@ absl::optional<SkColor> QtUi::GetColor(int id, bool use_custom_frame) const {
}
}
+DISABLE_CFI_VCALL
+void QtUi::ScaleFactorMaybeChangedImpl() {
+ scale_factor_task_active_ = false;
+ double scale = shim_->GetScaleFactor();
+ if (scale == scale_factor_) {
+ return;
+ }
+ scale_factor_ = scale;
+ for (ui::DeviceScaleFactorObserver& observer :
+ device_scale_factor_observer_list()) {
+ observer.OnDeviceScaleFactorChanged();
+ }
+}
+
std::unique_ptr<ui::LinuxUiAndTheme> CreateQtUi(
ui::LinuxUi* fallback_linux_ui) {
return std::make_unique<QtUi>(fallback_linux_ui);
diff --git a/ui/qt/qt_ui.h b/ui/qt/qt_ui.h
index b53ed93240708..3319edf1ea9bc 100644
--- a/ui/qt/qt_ui.h
+++ b/ui/qt/qt_ui.h
@@ -8,6 +8,7 @@
#include <memory>
#include "base/component_export.h"
+#include "base/memory/weak_ptr.h"
#include "printing/buildflags/buildflags.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
#include "ui/color/color_provider.h"
@@ -88,11 +89,14 @@ class QtUi : public ui::LinuxUiAndTheme, QtInterface::Delegate {
// QtInterface::Delegate:
void FontChanged() override;
void ThemeChanged() override;
+ void ScaleFactorMaybeChanged() override;
private:
void AddNativeColorMixer(ui::ColorProvider* provider,
const ui::ColorProviderManager::Key& key);
+ void ScaleFactorMaybeChangedImpl();
+
absl::optional<SkColor> GetColor(int id, bool use_custom_frame) const;
// TODO(https://crbug.com/1317782): This is a fallback for any unimplemented
@@ -114,6 +118,11 @@ class QtUi : public ui::LinuxUiAndTheme, QtInterface::Delegate {
std::unique_ptr<QtInterface> shim_;
std::unique_ptr<QtNativeTheme> native_theme_;
+
+ bool scale_factor_task_active_ = false;
+ double scale_factor_ = 1.0;
+
+ base::WeakPtrFactory<QtUi> weak_factory_{this};
};
// This should be the only symbol exported from this component.

View File

@ -1,46 +0,0 @@
commit 7b1d747a599a752e493e34e7bbf841d8b4c7882f
Author: Tomasz Śniatowski <tomasz.sniatowski@xperi.com>
Date: Thu May 25 16:09:27 2023 +0000
Dep on //printing in //ui/qt if printing is enabled
qt_ui.h can use printing/printing_context_linux.h, and needs to dep
on //printing if it does, to avoid a missing dependency build break.
Without this fix, a clean build can fail on obj/ui/qt/qt/qt_ui.o with
In file included from ../../ui/qt/qt_ui.cc:8:
In file included from ../../ui/qt/qt_ui.h:21:
../../printing/printing_context_linux.h:12:10: fatal error:
'printing/mojom/print.mojom.h' file not found
(the #include is a // NOGNCHECK one, which is how this came to be)
Change-Id: I70af37071e232ffbf462a05e026051efae044b69
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4566944
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Auto-Submit: Tomasz Śniatowski <tomasz.sniatowski@xperi.com>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1149138}
diff --git a/ui/qt/BUILD.gn b/ui/qt/BUILD.gn
index 6a67961edc2f7..89fffcf3089f9 100644
--- a/ui/qt/BUILD.gn
+++ b/ui/qt/BUILD.gn
@@ -5,6 +5,7 @@
import("//build/config/chromecast_build.gni")
import("//build/config/linux/pkg_config.gni")
import("//build/config/sysroot.gni")
+import("//printing/buildflags/buildflags.gni")
import("//ui/qt/qt.gni")
assert(use_qt)
@@ -127,6 +128,9 @@ component("qt") {
"//ui/views",
]
public_deps = [ "//skia" ]
+ if (enable_printing) {
+ public_deps += [ "//printing" ]
+ }
sources = [
"qt_ui.cc",

View File

@ -1,12 +0,0 @@
diff -up chromium-114.0.5735.106/ui/linux/linux_ui_factory.cc.me chromium-114.0.5735.106/ui/linux/linux_ui_factory.cc
--- chromium-114.0.5735.106/ui/linux/linux_ui_factory.cc.me 2023-06-11 18:47:09.742886578 +0200
+++ chromium-114.0.5735.106/ui/linux/linux_ui_factory.cc 2023-06-11 18:48:42.231584886 +0200
@@ -127,7 +127,7 @@ LinuxUiAndTheme* GetDefaultLinuxUiAndThe
} // namespace
-BASE_FEATURE(kAllowQt, "AllowQt", base::FEATURE_DISABLED_BY_DEFAULT);
+BASE_FEATURE(kAllowQt, "AllowQt", base::FEATURE_ENABLED_BY_DEFAULT);
LinuxUi* GetDefaultLinuxUi() {
auto* linux_ui = GetDefaultLinuxUiAndTheme();

View File

@ -1,59 +0,0 @@
commit ff39a278ddccf61716a7dbcb575415801bbf8ded
Author: Tom Anderson <thomasanderson@chromium.org>
Date: Wed May 31 18:31:09 2023 +0000
[QT] Account for logical scale factor
Previously we were only using the device pixel ratio. But QT UI
scales with both the device pixel ratio and the logical DPI. This CL
sets Chrome's scale factor to be the product of these two.
R=thestig
CC=jkummerow
Change-Id: I9bd414046058e741450fabae4913d47a16ca48c3
Bug: 1439149
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4575572
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1151380}
diff --git a/ui/qt/qt_shim.cc b/ui/qt/qt_shim.cc
index 0aec9c3aed4ad..3780f8c3988b4 100644
--- a/ui/qt/qt_shim.cc
+++ b/ui/qt/qt_shim.cc
@@ -7,7 +7,7 @@
#include "ui/qt/qt_shim.h"
-#include <stdio.h>
+#include <cmath>
#include <QApplication>
#include <QFont>
@@ -219,7 +219,24 @@ QtShim::QtShim(QtInterface::Delegate* delegate, int* argc, char** argv)
QtShim::~QtShim() = default;
double QtShim::GetScaleFactor() const {
- return app_.devicePixelRatio();
+ constexpr double kDefaultPixelDpi = 96.0;
+ // Use the largest scale factor across all displays as the global scale
+ // factor. This matches the behavior of `app_.devicePixelRatio()`, except
+ // this also takes into account the logical DPI.
+ // TODO(https://crbug.com/1450301): Unlike GTK, QT supports per-display
+ // scaling. Use this instead of the max scale factor.
+ double scale = 0.0;
+ for (QScreen* screen : app_.screens()) {
+ scale =
+ std::max(scale, screen->devicePixelRatio() *
+ screen->logicalDotsPerInch() / kDefaultPixelDpi);
+ }
+ // Round to the nearest 16th so that UI can losslessly multiply and divide
+ // by the scale factor using floating point arithmetic. GtkUi also rounds
+ // in this way, but to 1/64th. 1/16th is chosen here since that's what
+ // KDE settings uses.
+ scale = std::round(scale * 16) / 16;
+ return scale > 0 ? scale : 1.0;
}
FontRenderParams QtShim::GetFontRenderParams() const {

View File

@ -1,87 +0,0 @@
diff -up chromium-114.0.5735.35/media/gpu/vaapi/vaapi_video_encode_accelerator.cc.me chromium-114.0.5735.35/media/gpu/vaapi/vaapi_video_encode_accelerator.cc
--- chromium-114.0.5735.35/media/gpu/vaapi/vaapi_video_encode_accelerator.cc.me 2023-05-21 10:05:00.357860329 +0200
+++ chromium-114.0.5735.35/media/gpu/vaapi/vaapi_video_encode_accelerator.cc 2023-05-21 10:18:09.665432735 +0200
@@ -41,7 +41,6 @@
#include "media/gpu/gpu_video_encode_accelerator_helpers.h"
#include "media/gpu/h264_dpb.h"
#include "media/gpu/macros.h"
-#include "media/gpu/vaapi/av1_vaapi_video_encoder_delegate.h"
#include "media/gpu/vaapi/h264_vaapi_video_encoder_delegate.h"
#include "media/gpu/vaapi/va_surface.h"
#include "media/gpu/vaapi/vaapi_common.h"
@@ -200,7 +199,7 @@ bool VaapiVideoEncodeAccelerator::Initia
const VideoCodec codec = VideoCodecProfileToVideoCodec(config.output_profile);
if (codec != VideoCodec::kH264 && codec != VideoCodec::kVP8 &&
- codec != VideoCodec::kVP9 && codec != VideoCodec::kAV1) {
+ codec != VideoCodec::kVP9) {
MEDIA_LOG(ERROR, media_log.get())
<< "Unsupported profile: " << GetProfileName(config.output_profile);
return false;
@@ -293,7 +292,6 @@ void VaapiVideoEncodeAccelerator::Initia
break;
case VideoCodec::kVP8:
case VideoCodec::kVP9:
- case VideoCodec::kAV1:
mode = VaapiWrapper::kEncodeConstantQuantizationParameter;
break;
default:
@@ -356,12 +354,6 @@ void VaapiVideoEncodeAccelerator::Initia
vaapi_wrapper_, error_cb);
}
break;
- case VideoCodec::kAV1:
- if (!IsConfiguredForTesting()) {
- encoder_ = std::make_unique<AV1VaapiVideoEncoderDelegate>(
- vaapi_wrapper_, error_cb);
- }
- break;
default:
NOTREACHED() << "Unsupported codec type " << GetCodecName(output_codec_);
return;
@@ -835,10 +827,6 @@ VaapiVideoEncodeAccelerator::CreateEncod
case VideoCodec::kVP9:
picture = new VaapiVP9Picture(std::move(reconstructed_surface));
break;
- case VideoCodec::kAV1:
- picture = new VaapiAV1Picture(/*display_va_surface=*/nullptr,
- std::move(reconstructed_surface));
- break;
default:
return nullptr;
}
diff -up chromium-114.0.5735.35/media/gpu/BUILD.gn.revert-av1enc chromium-114.0.5735.35/media/gpu/BUILD.gn
--- chromium-114.0.5735.35/media/gpu/BUILD.gn.revert-av1enc 2023-05-18 00:37:57.000000000 +0200
+++ chromium-114.0.5735.35/media/gpu/BUILD.gn 2023-05-20 13:14:10.755183630 +0200
@@ -373,10 +373,7 @@ source_set("common") {
"vp9_svc_layers.h",
]
configs += [ "//third_party/libvpx:libvpx_config" ]
- deps += [
- "//third_party/libaom:libaomrc",
- "//third_party/libvpx:libvpxrc",
- ]
+ deps += [ "//third_party/libvpx:libvpxrc" ]
}
if (use_libgav1_parser) {
sources += [
diff -up chromium-114.0.5735.35/media/gpu/vaapi/BUILD.gn.revert-av1enc chromium-114.0.5735.35/media/gpu/vaapi/BUILD.gn
--- chromium-114.0.5735.35/media/gpu/vaapi/BUILD.gn.revert-av1enc 2023-05-18 00:37:57.000000000 +0200
+++ chromium-114.0.5735.35/media/gpu/vaapi/BUILD.gn 2023-05-20 13:14:10.756183626 +0200
@@ -38,8 +38,6 @@ source_set("vaapi") {
sources = [
"av1_vaapi_video_decoder_delegate.cc",
"av1_vaapi_video_decoder_delegate.h",
- "av1_vaapi_video_encoder_delegate.cc",
- "av1_vaapi_video_encoder_delegate.h",
"h264_vaapi_video_decoder_delegate.cc",
"h264_vaapi_video_decoder_delegate.h",
"h264_vaapi_video_encoder_delegate.cc",
@@ -107,7 +105,6 @@ source_set("vaapi") {
"//media/gpu/chromeos:common",
"//media/parsers",
"//mojo/public/cpp/bindings",
- "//third_party/libaom:libaomrc",
"//third_party/libvpx:libvpxrc",
"//third_party/libyuv",
"//ui/gfx",

View File

@ -1,62 +0,0 @@
diff -up chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.cc.me chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.cc
--- chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.cc.me 2023-05-03 17:46:37.194000834 +0200
+++ chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.cc 2023-05-03 17:48:05.170317575 +0200
@@ -87,7 +87,7 @@ ItemSortKey GetSortKey(const Item& item)
// Helper to get an iterator to the last element in the cache. The cache
// must not be empty.
template <typename Item>
-SortedItems<Item>::iterator GetLastIter(SortedItems<Item>& cache) {
+typename SortedItems<Item>::iterator GetLastIter(SortedItems<Item>& cache) {
CHECK(!cache.empty());
auto it = cache.end();
return std::prev(it);
@@ -789,9 +789,9 @@ bool DownloadBubbleUpdateService::Remove
}
template <typename Id, typename Item>
-SortedItems<Item>::iterator
+typename SortedItems<Item>::iterator
DownloadBubbleUpdateService::RemoveItemFromCacheByIter(
- SortedItems<Item>::iterator iter,
+ typename SortedItems<Item>::iterator iter,
SortedItems<Item>& cache,
IterMap<Id, Item>& iter_map) {
CHECK(iter != cache.end());
diff -up chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.h.me chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.h
--- chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.h.me 2023-05-03 17:48:14.079551820 +0200
+++ chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.h 2023-05-03 17:49:24.702387180 +0200
@@ -208,8 +208,8 @@ class DownloadBubbleUpdateService
// Removes item if we already have the iterator to it. Returns next iterator.
template <typename Id, typename Item>
- SortedItems<Item>::iterator RemoveItemFromCacheByIter(
- SortedItems<Item>::iterator iter,
+ typename SortedItems<Item>::iterator RemoveItemFromCacheByIter(
+ typename SortedItems<Item>::iterator iter,
SortedItems<Item>& cache,
IterMap<Id, Item>& iter_map);
diff -up chromium-114.0.5735.26/chrome/browser/printing/print_backend_service_manager.h.me chromium-114.0.5735.26/chrome/browser/printing/print_backend_service_manager.h
--- chromium-114.0.5735.26/chrome/browser/printing/print_backend_service_manager.h.me 2023-05-14 00:03:48.455961696 +0200
+++ chromium-114.0.5735.26/chrome/browser/printing/print_backend_service_manager.h 2023-05-14 00:04:24.776589164 +0200
@@ -587,7 +587,7 @@ class PrintBackendServiceManager {
template <class... T>
void RunSavedCallbacks(RemoteSavedCallbacks<T...>& saved_callbacks,
const RemoteId& remote_id,
- std::remove_reference<T>::type... result);
+ typename std::remove_reference<T>::type... result);
// Test support for client ID management.
static void SetClientsForTesting(
diff -up chromium-114.0.5735.26/chrome/browser/printing/print_backend_service_manager.cc.me chromium-114.0.5735.26/chrome/browser/printing/print_backend_service_manager.cc
--- chromium-114.0.5735.26/chrome/browser/printing/print_backend_service_manager.cc.me 2023-05-14 12:40:29.555926646 +0200
+++ chromium-114.0.5735.26/chrome/browser/printing/print_backend_service_manager.cc 2023-05-14 12:41:12.150471791 +0200
@@ -1477,7 +1477,7 @@ template <class... T>
void PrintBackendServiceManager::RunSavedCallbacks(
RemoteSavedCallbacks<T...>& saved_callbacks,
const RemoteId& remote_id,
- std::remove_reference<T>::type... result) {
+ typename std::remove_reference<T>::type... result) {
auto found_callbacks_map = saved_callbacks.find(remote_id);
if (found_callbacks_map == saved_callbacks.end())
return; // No callbacks to run.

View File

@ -1,22 +0,0 @@
diff -up chromium-114.0.5735.26/sandbox/policy/linux/bpf_network_policy_linux.cc.me chromium-114.0.5735.26/sandbox/policy/linux/bpf_network_policy_linux.cc
--- chromium-114.0.5735.26/sandbox/policy/linux/bpf_network_policy_linux.cc.me 2023-05-13 12:09:44.423727385 +0200
+++ chromium-114.0.5735.26/sandbox/policy/linux/bpf_network_policy_linux.cc 2023-05-13 17:52:19.934347246 +0200
@@ -11,7 +11,6 @@
#include <linux/net.h>
#include <linux/netlink.h>
#include <linux/sockios.h>
-#include <linux/wireless.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <sys/inotify.h>
@@ -48,6 +47,10 @@ using sandbox::syscall_broker::BrokerPro
#define F2FS_IOC_GET_FEATURES _IOR(0xf5, 12, uint32_t)
#endif
+#if !defined(SIOCGIWNAME)
+#define SIOCGIWNAME 0x8B01
+#endif
+
namespace sandbox::policy {
namespace {

View File

@ -1,81 +0,0 @@
diff -up chromium-114.0.5735.26/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc.workaround_clang_bug-structured_binding chromium-114.0.5735.26/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc
--- chromium-114.0.5735.26/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc.workaround_clang_bug-structured_binding 2023-05-11 03:36:27.000000000 +0200
+++ chromium-114.0.5735.26/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc 2023-05-14 11:49:42.558129164 +0200
@@ -238,7 +238,10 @@ const NGLayoutResult* NGGridLayoutAlgori
: BuildGridSizingTree(&oof_children);
LayoutUnit intrinsic_block_size;
- auto& [grid_items, layout_data, tree_size] = grid_sizing_tree.TreeRootData();
+ auto& [g_i, l_d, t_s] = grid_sizing_tree.TreeRootData();
+ auto& grid_items = g_i;
+ auto& layout_data = l_d;
+ auto& tree_size = t_s;
if (IsBreakInside(BreakToken())) {
// TODO(layout-dev): When we support variable inline-size fragments we'll
@@ -520,8 +523,10 @@ wtf_size_t NGGridLayoutAlgorithm::BuildG
row_auto_repetitions);
bool has_nested_subgrid = false;
- auto& [grid_items, layout_data, subtree_size] =
- sizing_tree->CreateSizingData(opt_subgrid_data);
+ auto& [g_i, l_d, s_s] = sizing_tree->CreateSizingData(opt_subgrid_data);
+ auto& grid_items = g_i;
+ auto& layout_data = l_d;
+ auto& subtree_size = s_s;
if (!must_ignore_children) {
// Construct grid items that are not subgridded.
@@ -650,8 +655,10 @@ NGGridSizingTree NGGridLayoutAlgorithm::
NGGridSizingTree sizing_tree;
if (const auto* layout_subtree = ConstraintSpace().GridLayoutSubtree()) {
- auto& [grid_items, layout_data, subtree_size] =
- sizing_tree.CreateSizingData();
+ auto& [g_i, l_d, s_s] = sizing_tree.CreateSizingData();
+ auto& grid_items = g_i;
+ auto& layout_data = l_d;
+ auto& subtree_size = s_s;
const auto& node = Node();
grid_items =
@@ -1640,8 +1647,10 @@ void NGGridLayoutAlgorithm::InitializeTr
const absl::optional<GridTrackSizingDirection>& opt_track_direction) const {
DCHECK(sizing_subtree);
- auto& [grid_items, layout_data, subtree_size] =
- sizing_subtree.SubtreeRootData();
+ auto& [g_i, l_d, s_s] = sizing_subtree.SubtreeRootData();
+ auto& grid_items = g_i;
+ auto& layout_data = l_d;
+ auto& subtree_size = s_s;
auto InitAndCacheTrackSizes = [&](GridTrackSizingDirection track_direction) {
InitializeTrackCollection(opt_subgrid_data, track_direction, &layout_data);
@@ -1825,8 +1834,10 @@ void NGGridLayoutAlgorithm::CompleteTrac
bool* opt_needs_additional_pass) const {
DCHECK(sizing_subtree);
- auto& [grid_items, layout_data, subtree_size] =
- sizing_subtree.SubtreeRootData();
+ auto& [g_i, l_d, s_s] = sizing_subtree.SubtreeRootData();
+ auto& grid_items = g_i;
+ auto& layout_data = l_d;
+ auto& subtree_size = s_s;
const bool is_for_columns = track_direction == kForColumns;
const bool has_non_definite_track =
diff -up chromium-114.0.5735.26/media/base/cdm_promise_adapter.cc.me chromium-114.0.5735.26/media/base/cdm_promise_adapter.cc
--- chromium-114.0.5735.26/media/base/cdm_promise_adapter.cc.me 2023-05-14 17:35:00.446844465 +0200
+++ chromium-114.0.5735.26/media/base/cdm_promise_adapter.cc 2023-05-14 17:39:22.991733926 +0200
@@ -94,7 +94,9 @@ void CdmPromiseAdapter::RejectPromise(ui
void CdmPromiseAdapter::Clear(ClearReason reason) {
// Reject all outstanding promises.
DCHECK(thread_checker_.CalledOnValidThread());
- for (auto& [promise_id, promise] : promises_) {
+ for (auto& [p_i, p_e] : promises_) {
+ auto& promise_id = p_i;
+ auto& promise = p_e;
TRACE_EVENT_NESTABLE_ASYNC_END1(
"media", "CdmPromise", TRACE_ID_WITH_SCOPE("CdmPromise", promise_id),
"status", "cleared");

View File

@ -0,0 +1,22 @@
--- chromium-60.0.3112.40/build/linux/unbundle/ffmpeg.gn.ffmpeg-deprecation 2017-06-25 13:24:47.390218631 +0200
+++ chromium-60.0.3112.40/build/linux/unbundle/ffmpeg.gn 2017-06-25 13:32:48.528583949 +0200
@@ -19,6 +19,12 @@
flags = [ "USE_SYSTEM_FFMPEG=true" ]
}
+config("ffmpeg_deprecations") {
+ if (is_linux) {
+ cflags = [ "-Wno-error=deprecated-declarations" ]
+ }
+}
+
shim_headers("ffmpeg_shim") {
root_path = "."
headers = [
@@ -33,5 +39,5 @@
":ffmpeg_features",
":ffmpeg_shim",
]
- public_configs = [ ":system_ffmpeg" ]
+ public_configs = [ ":system_ffmpeg", ":ffmpeg_deprecations" ]
}

View File

@ -0,0 +1,19 @@
diff -up chromium-58.0.3029.96/ui/events/devices/x11/device_data_manager_x11.cc.revert chromium-58.0.3029.96/ui/events/devices/x11/device_data_manager_x11.cc
--- chromium-58.0.3029.96/ui/events/devices/x11/device_data_manager_x11.cc.revert 2017-05-08 14:58:11.767482431 -0400
+++ chromium-58.0.3029.96/ui/events/devices/x11/device_data_manager_x11.cc 2017-05-08 14:58:37.722960109 -0400
@@ -790,15 +790,6 @@ void DeviceDataManagerX11::UpdateScrollC
DCHECK(deviceid >= 0 && deviceid < kMaxDeviceNum);
ScrollInfo& info = scroll_data_[deviceid];
- bool legacy_scroll_available =
- (scroll_class_info->flags & XIScrollFlagNoEmulation) == 0;
- // If the device's highest resolution is lower than the resolution of xinput1
- // then use xinput1's events instead (ie. don't configure smooth scrolling).
- if (legacy_scroll_available &&
- std::abs(scroll_class_info->increment) <= 1.0) {
- return;
- }
-
switch (scroll_class_info->scroll_type) {
case XIScrollTypeVertical:
info.vertical.number = scroll_class_info->number;

View File

@ -0,0 +1,14 @@
diff -up chromium-60.0.3112.78/third_party/libjpeg_turbo/jpeglib.h.nomangle chromium-60.0.3112.78/third_party/libjpeg_turbo/jpeglib.h
--- chromium-60.0.3112.78/third_party/libjpeg_turbo/jpeglib.h.nomangle 2017-08-01 15:29:00.870759406 -0400
+++ chromium-60.0.3112.78/third_party/libjpeg_turbo/jpeglib.h 2017-08-01 15:29:09.326593414 -0400
@@ -18,10 +18,6 @@
#ifndef JPEGLIB_H
#define JPEGLIB_H
-/* Begin chromium edits */
-#include "jpeglibmangler.h"
-/* End chromium edits */
-
/*
* First we include the configuration files that record how this
* installation of the JPEG library is set up. jconfig.h can be

View File

@ -0,0 +1,17 @@
diff -up chromium-60.0.3112.78/third_party/libpng/pnglibconf.h.noprefix chromium-60.0.3112.78/third_party/libpng/pnglibconf.h
--- chromium-60.0.3112.78/third_party/libpng/pnglibconf.h.noprefix 2017-08-01 14:42:54.321986758 -0400
+++ chromium-60.0.3112.78/third_party/libpng/pnglibconf.h 2017-08-01 14:43:01.493845832 -0400
@@ -225,13 +225,4 @@
#define PNG_USER_CHUNK_MALLOC_MAX 4000000L
/* end of chromium settings */
-/* chromium prefixing */
-/*
- * This is necessary to build multiple copies of libpng. We need this while pdfium builds
- * its own copy of libpng.
- */
-#define PNG_PREFIX
-#include "pngprefix.h"
-/* end of chromium prefixing */
-
#endif /* PNGLCONF_H */

View File

@ -0,0 +1,208 @@
diff -up chromium-67.0.3396.62/build/linux/unbundle/libjpeg.gn.gnsystem chromium-67.0.3396.62/build/linux/unbundle/libjpeg.gn
diff -up chromium-67.0.3396.62/build/linux/unbundle/libusb.gn.gnsystem chromium-67.0.3396.62/build/linux/unbundle/libusb.gn
--- chromium-67.0.3396.62/build/linux/unbundle/libusb.gn.gnsystem 2018-05-30 12:18:36.949488683 -0400
+++ chromium-67.0.3396.62/build/linux/unbundle/libusb.gn 2018-05-30 12:18:36.949488683 -0400
@@ -0,0 +1,24 @@
+# Copyright 2016 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/linux/pkg_config.gni")
+import("//build/shim_headers.gni")
+
+pkg_config("system_libusb") {
+ packages = [ "libusb-1.0" ]
+}
+
+shim_headers("libusb_shim") {
+ root_path = "src/libusb"
+ headers = [
+ "libusb.h",
+ ]
+}
+
+source_set("libusb") {
+ deps = [
+ ":libusb_shim",
+ ]
+ public_configs = [ ":system_libusb" ]
+}
diff -up chromium-67.0.3396.62/build/linux/unbundle/opus.gn.gnsystem chromium-67.0.3396.62/build/linux/unbundle/opus.gn
--- chromium-67.0.3396.62/build/linux/unbundle/opus.gn.gnsystem 2018-05-30 04:43:03.000000000 -0400
+++ chromium-67.0.3396.62/build/linux/unbundle/opus.gn 2018-05-30 12:18:36.950488661 -0400
@@ -1,3 +1,164 @@
+# Copyright 2016 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/linux/pkg_config.gni")
+import("//build/shim_headers.gni")
+import("//testing/test.gni")
+
+pkg_config("system_opus") {
+ packages = [ "opus" ]
+}
+
+shim_headers("opus_shim") {
+ root_path = "src/include"
+ headers = [
+ "opus_custom.h",
+ "opus_defines.h",
+ "opus_multistream.h",
+ "opus_types.h",
+ "opus.h",
+ ]
+}
+
+source_set("opus") {
+ deps = [
+ ":opus_shim",
+ ]
+ public_configs = [ ":system_opus" ]
+}
+
+config("opus_test_config") {
+ include_dirs = [
+ "src/celt",
+ "src/silk",
+ ]
+
+ if (is_win) {
+ defines = [ "inline=__inline" ]
+ }
+ if (is_android) {
+ libs = [ "log" ]
+ }
+ if (is_clang) {
+ cflags = [ "-Wno-absolute-value" ]
+ }
+}
+
+executable("opus_compare") {
+ sources = [
+ "src/src/opus_compare.c",
+ ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":opus_test_config",
+ ]
+
+ deps = [
+ ":opus",
+ "//build/config/sanitizers:deps",
+ "//build/win:default_exe_manifest",
+ ]
+}
+
+executable("opus_demo") {
+ sources = [
+ "src/src/opus_demo.c",
+ ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":opus_test_config",
+ ]
+
+ deps = [
+ ":opus",
+ "//build/config/sanitizers:deps",
+ "//build/win:default_exe_manifest",
+ ]
+}
+
+test("test_opus_api") {
+ sources = [
+ "src/tests/test_opus_api.c",
+ ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":opus_test_config",
+ ]
+
+ deps = [
+ ":opus",
+ ]
+}
+
+test("test_opus_encode") {
+ sources = [
+ "src/tests/test_opus_encode.c",
+ ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":opus_test_config",
+ ]
+
+ deps = [
+ ":opus",
+ ]
+}
+
+# GN orders flags on a target before flags from configs. The default config
+# adds -Wall, and this flag have to be after -Wall -- so they need to
+# come from a config and can't be on the target directly.
+config("test_opus_decode_config") {
+ # test_opus_decode passes a null pointer to opus_decode() for an argument
+ # marked as requiring a non-null value by the nonnull function attribute,
+ # and expects opus_decode() to fail. Disable the -Wnonnull option to avoid
+ # a compilation error if -Werror is specified.
+ if (is_posix) {
+ cflags = [ "-Wno-nonnull" ]
+ }
+}
+
+test("test_opus_decode") {
+ sources = [
+ "src/tests/test_opus_decode.c",
+ ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":opus_test_config",
+ ":test_opus_decode_config",
+ ]
+
+ deps = [
+ ":opus",
+ ]
+}
+
+test("test_opus_padding") {
+ sources = [
+ "src/tests/test_opus_padding.c",
+ ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":opus_test_config",
+ ]
+
+ deps = [
+ ":opus",
+ ]
+}
+
# Copyright 2017 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
diff -up chromium-67.0.3396.62/build/linux/unbundle/replace_gn_files.py.gnsystem chromium-67.0.3396.62/build/linux/unbundle/replace_gn_files.py
--- chromium-67.0.3396.62/build/linux/unbundle/replace_gn_files.py.gnsystem 2018-05-30 12:18:36.951488638 -0400
+++ chromium-67.0.3396.62/build/linux/unbundle/replace_gn_files.py 2018-05-30 12:20:02.542534270 -0400
@@ -27,6 +27,7 @@ REPLACEMENTS = {
'libevent': 'base/third_party/libevent/BUILD.gn',
'libjpeg': 'third_party/libjpeg.gni',
'libpng': 'third_party/libpng/BUILD.gn',
+ 'libusb': 'third_party/libusb/BUILD.gn',
'libvpx': 'third_party/libvpx/BUILD.gn',
'libwebp': 'third_party/libwebp/BUILD.gn',
'libxml': 'third_party/libxml/BUILD.gn',

View File

@ -0,0 +1,15 @@
diff -up chromium-68.0.3440.106/chrome/browser/first_run/first_run_internal_linux.cc.etc chromium-68.0.3440.106/chrome/browser/first_run/first_run_internal_linux.cc
--- chromium-68.0.3440.106/chrome/browser/first_run/first_run_internal_linux.cc.etc 2018-08-09 03:12:33.444705798 -0400
+++ chromium-68.0.3440.106/chrome/browser/first_run/first_run_internal_linux.cc 2018-08-09 03:14:46.275754910 -0400
@@ -19,9 +19,9 @@ bool IsOrganicFirstRun() {
base::FilePath MasterPrefsPath() {
// The standard location of the master prefs is next to the chrome binary.
+ // ...but we patch it to use /etc/chromium
base::FilePath master_prefs;
- if (!base::PathService::Get(base::DIR_EXE, &master_prefs))
- return base::FilePath();
+ master_prefs = base::FilePath("/etc/chromium");
return master_prefs.AppendASCII(installer::kDefaultMasterPrefs);
}

View File

@ -0,0 +1,13 @@
diff -up chromium-70.0.3538.67/base/test/BUILD.gn.nofc chromium-70.0.3538.67/base/test/BUILD.gn
--- chromium-70.0.3538.67/base/test/BUILD.gn.nofc 2018-10-29 11:29:01.356812567 -0400
+++ chromium-70.0.3538.67/base/test/BUILD.gn 2018-10-29 11:29:12.631584916 -0400
@@ -209,9 +209,6 @@ static_library("test_support") {
data_deps = [
"//third_party/test_fonts",
]
- if (current_toolchain == host_toolchain) {
- data_deps += [ ":do_generate_fontconfig_caches" ]
- }
}
if (is_ios) {

View File

@ -0,0 +1,33 @@
diff -up chromium-71.0.3578.98/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py.py2 chromium-71.0.3578.98/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py
--- chromium-71.0.3578.98/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py.py2 2018-12-12 17:02:58.000000000 -0500
+++ chromium-71.0.3578.98/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py 2018-12-14 11:48:22.150229631 -0500
@@ -58,7 +58,7 @@ def _MinifyJS(input_js):
with tempfile.NamedTemporaryFile() as _:
args = [
- 'python',
+ 'python2',
rjsmin_path
]
p = subprocess.Popen(args,
@@ -177,7 +177,7 @@ def _MinifyCSS(css_text):
os.path.join(py_vulcanize_path, 'third_party', 'rcssmin', 'rcssmin.py'))
with tempfile.NamedTemporaryFile() as _:
- rcssmin_args = ['python', rcssmin_path]
+ rcssmin_args = ['python2', rcssmin_path]
p = subprocess.Popen(rcssmin_args,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
diff -up chromium-71.0.3578.98/tools/gn/bootstrap/bootstrap.py.py2 chromium-71.0.3578.98/tools/gn/bootstrap/bootstrap.py
--- chromium-71.0.3578.98/tools/gn/bootstrap/bootstrap.py.py2 2018-12-14 11:48:22.155229522 -0500
+++ chromium-71.0.3578.98/tools/gn/bootstrap/bootstrap.py 2018-12-14 11:49:31.043728244 -0500
@@ -93,7 +93,7 @@ def main(argv):
if not options.debug:
gn_gen_args += ' is_debug=false'
subprocess.check_call([
- gn_path, 'gen', out_dir,
+ gn_path, 'gen', out_dir, ' --script-executable=/usr/bin/python2',
'--args=%s' % gn_gen_args, "--root=" + SRC_ROOT
])

View File

@ -0,0 +1,10 @@
diff -upr chromium-71.0.3578.80.orig/third_party/widevine/cdm/widevine_cdm_version.h chromium-71.0.3578.80/third_party/widevine/cdm/widevine_cdm_version.h
--- chromium-71.0.3578.80.orig/third_party/widevine/cdm/widevine_cdm_version.h 2018-12-21 20:18:01.000000000 +0000
+++ chromium-71.0.3578.80/third_party/widevine/cdm/widevine_cdm_version.h 2018-12-21 21:37:45.635374949 +0000
@@ -12,4 +12,6 @@
// - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available
// as a string, e.g., "1.0.123.456").
+#define WIDEVINE_CDM_VERSION_STRING "unknown"
+
#endif // WIDEVINE_CDM_VERSION_H_

View File

@ -0,0 +1,81 @@
diff -up chromium-73.0.3683.75/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-73.0.3683.75/chrome/common/safe_browsing/BUILD.gn
--- chromium-73.0.3683.75/chrome/common/safe_browsing/BUILD.gn.nounrar 2019-03-13 08:59:45.988801102 -0400
+++ chromium-73.0.3683.75/chrome/common/safe_browsing/BUILD.gn 2019-03-13 09:00:20.244977448 -0400
@@ -64,41 +64,6 @@ if (safe_browsing_mode == 1) {
]
}
- source_set("rar_analyzer") {
- sources = [
- "rar_analyzer.cc",
- "rar_analyzer.h",
- ]
-
- deps = [
- ":archive_analyzer_results",
- ":download_type_util",
- ":file_type_policies",
- "//base",
- "//base:i18n",
- "//components/safe_browsing:features",
- "//third_party/unrar:unrar",
- ]
-
- defines = [
- "_FILE_OFFSET_BITS=64",
- "LARGEFILE_SOURCE",
- "RAR_SMP",
- "SILENT",
-
- # The following is set to disable certain macro definitions in the unrar
- # source code.
- "CHROMIUM_UNRAR",
-
- # Disables exceptions in unrar, replaces them with process termination.
- "UNRAR_NO_EXCEPTIONS",
- ]
-
- public_deps = [
- "//components/safe_browsing:csd_proto",
- ]
- }
-
source_set("disk_image_type_sniffer_mac") {
sources = [
"disk_image_type_sniffer_mac.cc",
@@ -167,7 +132,6 @@ source_set("safe_browsing") {
":archive_analyzer_results",
":binary_feature_extractor",
":download_type_util",
- ":rar_analyzer",
"//components/safe_browsing:features",
]
diff -up chromium-73.0.3683.75/chrome/common/safe_browsing/DEPS.nounrar chromium-73.0.3683.75/chrome/common/safe_browsing/DEPS
--- chromium-73.0.3683.75/chrome/common/safe_browsing/DEPS.nounrar 2019-03-11 18:00:54.000000000 -0400
+++ chromium-73.0.3683.75/chrome/common/safe_browsing/DEPS 2019-03-13 08:59:26.513282690 -0400
@@ -1,6 +1,5 @@
include_rules = [
"+components/safe_browsing",
"+third_party/protobuf",
- "+third_party/unrar",
"+third_party/zlib",
]
diff -up chromium-73.0.3683.75/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-73.0.3683.75/chrome/services/file_util/safe_archive_analyzer.cc
--- chromium-73.0.3683.75/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2019-03-13 08:59:26.518282566 -0400
+++ chromium-73.0.3683.75/chrome/services/file_util/safe_archive_analyzer.cc 2019-03-13 09:01:03.885935483 -0400
@@ -48,10 +48,14 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
base::File temporary_file,
AnalyzeRarFileCallback callback) {
+#if 0
DCHECK(rar_file.IsValid());
safe_browsing::ArchiveAnalyzerResults results;
safe_browsing::rar_analyzer::AnalyzeRarFile(
std::move(rar_file), std::move(temporary_file), &results);
std::move(callback).Run(results);
+#else
+ NOTREACHED();
+#endif
}

View File

@ -0,0 +1,11 @@
diff -up chromium-75.0.3770.100/build/config/BUILD.gn.epel7 chromium-75.0.3770.100/build/config/BUILD.gn
--- chromium-75.0.3770.100/build/config/BUILD.gn.epel7 2019-06-20 10:10:03.099549006 -0400
+++ chromium-75.0.3770.100/build/config/BUILD.gn 2019-06-20 10:10:21.483158162 -0400
@@ -267,6 +267,7 @@ config("default_libs") {
"dl",
"pthread",
"rt",
+ "stdc++",
]
}
}

View File

@ -0,0 +1,22 @@
diff -up chromium-75.0.3770.80/third_party/grpc/src/src/core/lib/gpr/log_linux.cc.gettid-fix chromium-75.0.3770.80/third_party/grpc/src/src/core/lib/gpr/log_linux.cc
--- chromium-75.0.3770.80/third_party/grpc/src/src/core/lib/gpr/log_linux.cc.gettid-fix 2019-06-12 17:05:01.720907204 -0400
+++ chromium-75.0.3770.80/third_party/grpc/src/src/core/lib/gpr/log_linux.cc 2019-06-12 17:06:01.000671370 -0400
@@ -40,7 +40,8 @@
#include <time.h>
#include <unistd.h>
-static long gettid(void) { return syscall(__NR_gettid); }
+/* renamed to avoid conflict with glibc 'gettid()' */
+static long gettid_gpr(void) { return syscall(__NR_gettid); }
void gpr_log(const char* file, int line, gpr_log_severity severity,
const char* format, ...) {
@@ -70,7 +71,7 @@ void gpr_default_log(gpr_log_func_args*
gpr_timespec now = gpr_now(GPR_CLOCK_REALTIME);
struct tm tm;
static __thread long tid = 0;
- if (tid == 0) tid = gettid();
+ if (tid == 0) tid = gettid_gpr();
timer = static_cast<time_t>(now.tv_sec);
final_slash = strrchr(args->file, '/');

View File

@ -0,0 +1,23 @@
diff -up chromium-75.0.3770.80/media/gpu/vaapi/BUILD.gn.i686permissive chromium-75.0.3770.80/media/gpu/vaapi/BUILD.gn
--- chromium-75.0.3770.80/media/gpu/vaapi/BUILD.gn.i686permissive 2019-06-10 14:47:37.315515026 -0400
+++ chromium-75.0.3770.80/media/gpu/vaapi/BUILD.gn 2019-06-10 14:48:25.250604888 -0400
@@ -11,6 +11,10 @@ import("//ui/ozone/ozone.gni")
assert(use_vaapi)
+config("vaapi_permissive") {
+ cflags = [ "-fpermissive" ]
+}
+
generate_stubs("libva_stubs") {
extra_header = "va_stub_header.fragment"
sigs = [ "va.sigs" ]
@@ -89,6 +93,8 @@ source_set("vaapi") {
deps += [ "//media/gpu/linux" ]
}
+ configs += [ ":vaapi_permissive" ]
+
if (use_x11) {
configs += [ "//build/config/linux:x11" ]
deps += [ "//ui/gfx/x" ]

View File

@ -0,0 +1,14 @@
diff -up chromium-75.0.3770.80/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc.va1compat chromium-75.0.3770.80/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc
--- chromium-75.0.3770.80/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc.va1compat 2019-06-05 11:35:57.274466969 -0400
+++ chromium-75.0.3770.80/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc 2019-06-05 11:36:17.201067326 -0400
@@ -39,6 +39,10 @@ enum VAJDADecoderFailure {
VAJDA_DECODER_FAILURES_MAX,
};
+#ifndef VA_FOURCC_I420
+#define VA_FOURCC_I420 VA_FOURCC('I', '4', '2', '0')
+#endif
+
static void ReportToVAJDADecoderFailureUMA(VAJDADecoderFailure failure) {
UMA_HISTOGRAM_ENUMERATION("Media.VAJDA.DecoderFailure", failure,
VAJDA_DECODER_FAILURES_MAX + 1);

View File

@ -0,0 +1,14 @@
diff -up chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h.gcc-no-alignas chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h
--- chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h.gcc-no-alignas 2019-08-09 16:48:13.000000000 +0200
+++ chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h 2019-08-15 21:04:30.231532746 +0200
@@ -176,8 +176,8 @@ class CSSLazyPropertyParser
DISALLOW_COPY_AND_ASSIGN(CSSLazyPropertyParser);
};
-class CORE_EXPORT alignas(Member<const CSSValue>) alignas(
- CSSPropertyValueMetadata) ImmutableCSSPropertyValueSet
+class CORE_EXPORT ALIGNAS(alignof(Member<const CSSValue>))
+ ALIGNAS(alignof(CSSPropertyValueMetadata)) ImmutableCSSPropertyValueSet
: public CSSPropertyValueSet {
public:
ImmutableCSSPropertyValueSet(const CSSPropertyValue*,

View File

@ -0,0 +1,27 @@
diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.cc.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker.cc
--- chromium-76.0.3809.100/remoting/signaling/message_tracker.cc.gcc-constexpr 2019-08-09 16:48:08.000000000 +0200
+++ chromium-76.0.3809.100/remoting/signaling/message_tracker.cc 2019-08-20 21:29:14.545465656 +0200
@@ -9,8 +9,7 @@
namespace remoting {
// static
-const base::TimeDelta MessageTracker::kCleanupInterval =
- base::TimeDelta::FromMinutes(2);
+constexpr base::TimeDelta MessageTracker::kCleanupInterval;
MessageTracker::MessageTracker() = default;
diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker.h
--- chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr 2019-08-20 22:02:25.625970954 +0200
+++ chromium-76.0.3809.100/remoting/signaling/message_tracker.h 2019-08-20 21:28:23.371952434 +0200
@@ -36,7 +36,8 @@ class MessageTracker final {
// All IDs older than now - kCleanupInterval will be eventually removed, but
// they are not guaranteed to be immediately removed after the interval.
- static const base::TimeDelta kCleanupInterval;
+ static constexpr base::TimeDelta kCleanupInterval =
+ base::TimeDelta::FromMinutes(2);
void RemoveExpiredIds();
diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker_unittest.cc.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker_unittest.cc

View File

@ -0,0 +1,11 @@
diff -up chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc
--- chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined 2019-08-20 21:21:24.901899270 +0200
+++ chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc 2019-08-20 21:19:30.361746211 +0200
@@ -18,6 +18,7 @@
#include "net/quic/crypto/proof_verifier_chromium.h"
#include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
#include "net/third_party/quiche/src/quic/platform/api/quic_ptr_util.h"
+#include "net/quic/platform/impl/quic_flags_impl.cc"
DEFINE_QUIC_COMMAND_LINE_FLAG(std::string,
certificate_file,

View File

@ -0,0 +1,11 @@
diff -up chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn.fixme chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn
--- chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn.fixme 2019-09-10 15:53:02.871463568 -0400
+++ chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn 2019-09-10 16:57:32.281112323 -0400
@@ -319,6 +319,7 @@ executable("chromedriver") {
"//net/server:http_server",
"//net/traffic_annotation:test_support",
"//services/network/public/mojom",
+ "//third_party/zlib",
]
}

View File

@ -0,0 +1,10 @@
diff -up chromium-76.0.3809.132/components/os_crypt/features.gni.rhel8 chromium-76.0.3809.132/components/os_crypt/features.gni
--- chromium-76.0.3809.132/components/os_crypt/features.gni.rhel8 2019-09-06 17:08:01.242314126 -0400
+++ chromium-76.0.3809.132/components/os_crypt/features.gni 2019-09-06 17:08:10.139134707 -0400
@@ -7,5 +7,5 @@ import("//build/config/ui.gni")
declare_args() {
# Whether to use libgnome-keyring (deprecated by libsecret).
# See http://crbug.com/466975 and http://crbug.com/355223.
- use_gnome_keyring = is_desktop_linux && use_glib
+ use_gnome_keyring = false
}

13
chromium-77-clang.patch Normal file
View File

@ -0,0 +1,13 @@
diff --git a/base/location.h b/base/location.h
index c07e747..924db1c 100644
--- a/base/location.h
+++ b/base/location.h
@@ -18,7 +18,7 @@
namespace base {
-#if defined(__has_builtin)
+#if defined(__clang__)
// Clang allows detection of these builtins.
#define SUPPORTS_LOCATION_BUILTINS \
(__has_builtin(__builtin_FUNCTION) && __has_builtin(__builtin_FILE) && \

View File

@ -0,0 +1,12 @@
diff -up chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas chromium-77.0.3865.75/base/task/promise/dependent_list.h
--- chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas 2019-09-13 21:45:51.873172347 +0200
+++ chromium-77.0.3865.75/base/task/promise/dependent_list.h 2019-09-13 21:46:21.661522514 +0200
@@ -59,7 +59,7 @@ class BASE_EXPORT DependentList {
// Align Node on an 8-byte boundary to ensure the first 3 bits are 0 and can
// be used to store additional state (see static_asserts below).
- class BASE_EXPORT alignas(8) Node {
+ class BASE_EXPORT ALIGNAS(8) Node {
public:
Node();
explicit Node(Node&& other) noexcept;

View File

@ -0,0 +1,539 @@
diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc
--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-12 16:09:52.818635106 +0200
+++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-12 16:11:07.662562005 +0200
@@ -21,6 +21,7 @@
#include "components/version_info/version_info.h"
#include "content/public/common/content_switches.h"
#include "content/public/common/user_agent.h"
+#include "services/network/public/cpp/network_service_buildflags.h"
#include "services/network/public/mojom/network_context.mojom.h"
#include "services/network/public/mojom/network_service.mojom.h"
#include "testing/gmock/include/gmock/gmock.h"
@@ -356,3 +357,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
INSTANTIATE_TEST_SUITE_P(,
SystemNetworkContextManagerFreezeQUICUaBrowsertest,
::testing::Values(true, false));
+
+class SystemNetworkContextManagerCertificateTransparencyBrowsertest
+ : public SystemNetworkContextManagerBrowsertest,
+ public testing::WithParamInterface<base::Optional<bool>> {
+ public:
+ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
+ GetParam());
+ }
+ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
+ base::nullopt);
+ }
+};
+
+#if BUILDFLAG(IS_CT_SUPPORTED)
+IN_PROC_BROWSER_TEST_P(
+ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
+ CertificateTransparencyConfig) {
+ network::mojom::NetworkContextParamsPtr context_params =
+ g_browser_process->system_network_context_manager()
+ ->CreateDefaultNetworkContextParams();
+
+ const bool kDefault =
+#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
+ !defined(OS_ANDROID)
+ true;
+#else
+ false;
+#endif
+
+ EXPECT_EQ(GetParam().value_or(kDefault),
+ context_params->enforce_chrome_ct_policy);
+ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
+
+ if (GetParam().value_or(kDefault)) {
+ bool has_google_log = false;
+ bool has_disqualified_log = false;
+ for (const auto& ct_log : context_params->ct_logs) {
+ has_google_log |= ct_log->operated_by_google;
+ has_disqualified_log |= ct_log->disqualified_at.has_value();
+ }
+ EXPECT_TRUE(has_google_log);
+ EXPECT_TRUE(has_disqualified_log);
+ }
+}
+#endif
+
+INSTANTIATE_TEST_SUITE_P(
+ ,
+ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
+ ::testing::Values(base::nullopt, true, false));
diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc
--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
+++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc 2019-09-12 16:09:52.819635118 +0200
@@ -4,11 +4,13 @@
#include "chrome/browser/net/system_network_context_manager.h"
+#include <algorithm>
#include <set>
#include <unordered_map>
#include <utility>
#include "base/bind.h"
+#include "base/build_time.h"
#include "base/command_line.h"
#include "base/feature_list.h"
#include "base/logging.h"
@@ -50,6 +52,7 @@
#include "content/public/common/mime_handler_view_mode.h"
#include "content/public/common/service_names.mojom.h"
#include "content/public/common/user_agent.h"
+#include "crypto/sha2.h"
#include "mojo/public/cpp/bindings/associated_interface_ptr.h"
#include "net/dns/public/util.h"
#include "net/net_buildflags.h"
@@ -79,6 +82,20 @@
namespace {
+constexpr bool kCertificateTransparencyEnabled =
+#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
+ !defined(OS_ANDROID)
+ // Certificate Transparency is only enabled if:
+ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
+ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
+ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
+ true;
+#else
+ false;
+#endif
+
+bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
+
// The global instance of the SystemNetworkContextmanager.
SystemNetworkContextManager* g_system_network_context_manager = nullptr;
@@ -658,14 +675,35 @@ SystemNetworkContextManager::CreateDefau
bool http_09_on_non_default_ports_enabled = false;
#if !defined(OS_ANDROID)
- // CT is only enabled on Desktop platforms for now.
- network_context_params->enforce_chrome_ct_policy = true;
- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
- log_info->name = ct_log.log_name;
- network_context_params->ct_logs.push_back(std::move(log_info));
+
+ if (g_enable_certificate_transparency) {
+ network_context_params->enforce_chrome_ct_policy = true;
+ network_context_params->ct_log_update_time = base::GetBuildTime();
+
+ std::vector<std::string> operated_by_google_logs =
+ certificate_transparency::GetLogsOperatedByGoogle();
+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
+ certificate_transparency::GetDisqualifiedLogs();
+ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+ log_info->name = ct_log.log_name;
+
+ std::string log_id = crypto::SHA256HashString(log_info->public_key);
+ log_info->operated_by_google =
+ std::binary_search(std::begin(operated_by_google_logs),
+ std::end(operated_by_google_logs), log_id);
+ auto it = std::lower_bound(
+ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
+ [](const auto& disqualified_log, const std::string& log_id) {
+ return disqualified_log.first < log_id;
+ });
+ if (it != std::end(disqualified_logs) && it->first == log_id) {
+ log_info->disqualified_at = it->second;
+ }
+ network_context_params->ct_logs.push_back(std::move(log_info));
+ }
}
const base::Value* value =
@@ -723,6 +761,12 @@ SystemNetworkContextManager::GetHttpAuth
return CreateHttpAuthDynamicParams(g_browser_process->local_state());
}
+void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
+ base::Optional<bool> enabled) {
+ g_enable_certificate_transparency =
+ enabled.value_or(kCertificateTransparencyEnabled);
+}
+
network::mojom::NetworkContextParamsPtr
SystemNetworkContextManager::CreateNetworkContextParams() {
// TODO(mmenke): Set up parameters here (in memory cookie store, etc).
diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h
--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
+++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h 2019-09-12 16:09:52.819635118 +0200
@@ -139,6 +139,12 @@ class SystemNetworkContextManager {
static network::mojom::HttpAuthDynamicParamsPtr
GetHttpAuthDynamicParamsForTesting();
+ // Enables Certificate Transparency and enforcing the Chrome Certificate
+ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
+ // the default state.
+ static void SetEnableCertificateTransparencyForTesting(
+ base::Optional<bool> enabled);
+
private:
class URLLoaderFactoryForSystem;
diff -up chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc
--- chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
+++ chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc 2019-09-12 16:09:52.820635131 +0200
@@ -4836,7 +4836,7 @@ IN_PROC_BROWSER_TEST_F(PolicyTest,
browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
}
-IN_PROC_BROWSER_TEST_F(PolicyTest,
+IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
CertificateTransparencyEnforcementDisabledForCas) {
net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
diff -up chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
--- chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
+++ chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
@@ -8,6 +8,7 @@
#include "base/callback.h"
#include "base/run_loop.h"
#include "base/test/scoped_feature_list.h"
+#include "chrome/browser/net/system_network_context_manager.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ssl/cert_verifier_browser_test.h"
#include "chrome/browser/ui/browser.h"
@@ -27,7 +28,17 @@ namespace {
// received by a server.
class ExpectCTBrowserTest : public CertVerifierBrowserTest {
public:
- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
+ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
+ // Expect-CT reporting depends on actually enforcing Certificate
+ // Transparency.
+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
+ true);
+ }
+
+ ~ExpectCTBrowserTest() override {
+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
+ base::nullopt);
+ }
void SetUpOnMainThread() override {
run_loop_ = std::make_unique<base::RunLoop>();
diff -up chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
--- chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
+++ chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
@@ -433,6 +433,13 @@ class SecurityStateTabHelperTest : publi
SecurityStateTabHelperTest()
: https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
+ true);
+ }
+
+ ~SecurityStateTabHelperTest() override {
+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
+ base::nullopt);
}
void SetUpOnMainThread() override {
diff -up chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc
--- chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
+++ chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc 2019-09-12 16:09:52.822635155 +0200
@@ -1853,8 +1853,14 @@ class CertificateTransparencySSLUITest :
public:
CertificateTransparencySSLUITest()
: CertVerifierBrowserTest(),
- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
- ~CertificateTransparencySSLUITest() override {}
+ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
+ true);
+ }
+ ~CertificateTransparencySSLUITest() override {
+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
+ base::nullopt);
+ }
void SetUpOnMainThread() override {
CertVerifierBrowserTest::SetUpOnMainThread();
diff -up chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h
--- chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-09-09 23:55:14.000000000 +0200
+++ chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-12 16:09:52.823635168 +0200
@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
+ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
+ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
+ // correctly constructed). When either this issue or https://crbug.com/848277
+ // are fixed, the configuration can be tested independently, and these can
+ // be removed.
+ const std::vector<std::string>& operated_by_google_logs_for_testing() {
+ return operated_by_google_logs_;
+ }
+ const std::vector<std::pair<std::string, base::TimeDelta>>&
+ disqualified_logs_for_testing() {
+ return disqualified_logs_;
+ }
+
private:
// Returns true if the log identified by |log_id| (the SHA-256 hash of the
// log's DER-encoded SPKI) has been disqualified, and sets
diff -up chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context.cc
--- chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
+++ chromium-77.0.3865.75/services/network/network_context.cc 2019-09-12 16:09:52.823635168 +0200
@@ -36,6 +36,7 @@
#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/pref_service.h"
#include "components/prefs/pref_service_factory.h"
+#include "crypto/sha2.h"
#include "mojo/public/cpp/bindings/strong_binding.h"
#include "net/base/layered_network_delegate.h"
#include "net/base/load_flags.h"
@@ -1877,16 +1878,6 @@ URLRequestContextOwner NetworkContext::A
base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
#endif // BUILDFLAG(ENABLE_REPORTING)
-#if BUILDFLAG(IS_CT_SUPPORTED)
- if (params_->enforce_chrome_ct_policy) {
- builder->set_ct_policy_enforcer(
- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
- base::GetBuildTime(),
- certificate_transparency::GetDisqualifiedLogs(),
- certificate_transparency::GetLogsOperatedByGoogle()));
- }
-#endif // BUILDFLAG(IS_CT_SUPPORTED)
-
net::HttpNetworkSession::Params session_params;
bool is_quic_force_disabled = false;
if (network_service_ && network_service_->quic_disabled())
@@ -1936,8 +1927,20 @@ URLRequestContextOwner NetworkContext::A
#if BUILDFLAG(IS_CT_SUPPORTED)
std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
+ std::vector<std::string> operated_by_google_logs;
+
if (!params_->ct_logs.empty()) {
for (const auto& log : params_->ct_logs) {
+ if (log->operated_by_google || log->disqualified_at) {
+ std::string log_id = crypto::SHA256HashString(log->public_key);
+ if (log->operated_by_google)
+ operated_by_google_logs.push_back(log_id);
+ if (log->disqualified_at) {
+ disqualified_logs.push_back(
+ std::make_pair(log_id, log->disqualified_at.value()));
+ }
+ }
scoped_refptr<const net::CTLogVerifier> log_verifier =
net::CTLogVerifier::Create(log->public_key, log->name);
if (!log_verifier) {
@@ -1950,6 +1953,17 @@ URLRequestContextOwner NetworkContext::A
ct_verifier->AddLogs(ct_logs);
builder->set_ct_verifier(std::move(ct_verifier));
}
+
+ if (params_->enforce_chrome_ct_policy) {
+ std::sort(std::begin(operated_by_google_logs),
+ std::end(operated_by_google_logs));
+ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
+
+ builder->set_ct_policy_enforcer(
+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+ params_->ct_log_update_time, disqualified_logs,
+ operated_by_google_logs));
+ }
#endif // BUILDFLAG(IS_CT_SUPPORTED)
const base::CommandLine* command_line =
diff -up chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context_unittest.cc
--- chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
+++ chromium-77.0.3865.75/services/network/network_context_unittest.cc 2019-09-12 16:13:10.479056669 +0200
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include <algorithm>
#include <map>
#include <memory>
#include <string>
@@ -38,10 +39,12 @@
#include "base/threading/thread_task_runner_handle.h"
#include "base/time/default_clock.h"
#include "base/time/default_tick_clock.h"
+#include "base/time/time.h"
#include "build/build_config.h"
#include "components/network_session_configurator/browser/network_session_configurator.h"
#include "components/network_session_configurator/common/network_switches.h"
#include "components/prefs/testing_pref_service.h"
+#include "crypto/sha2.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "mojo/public/cpp/bindings/self_owned_receiver.h"
#include "mojo/public/cpp/system/data_pipe_utils.h"
@@ -115,6 +118,11 @@
#include "url/scheme_host_port.h"
#include "url/url_constants.h"
+#if BUILDFLAG(IS_CT_SUPPORTED)
+#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
+#include "services/network/public/mojom/ct_log_info.mojom.h"
+#endif
+
#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
#include "net/ftp/ftp_auth_cache.h"
#endif // !BUILDFLAG(DISABLE_FTP_SUPPORT)
@@ -5958,6 +5966,72 @@ TEST_F(NetworkContextSplitCacheTest,
true /* was_cached */, true /* is_navigation */);
}
+#if BUILDFLAG(IS_CT_SUPPORTED)
+TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
+ mojom::NetworkContextParamsPtr params = CreateContextParams();
+ params->enforce_chrome_ct_policy = true;
+ params->ct_log_update_time = base::Time::Now();
+
+ // The log public keys do not matter for the test, so invalid keys are used.
+ // However, because the log IDs are derived from the SHA-256 hash of the log
+ // key, the log keys are generated such that qualified logs are in the form
+ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
+ // form of four letters (e.g. "AAAA", "BBBB").
+
+ for (int i = 0; i < 6; ++i) {
+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+ // Shift to ASCII '0' (0x30)
+ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
+ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
+ log_info->operated_by_google = i % 2;
+
+ params->ct_logs.push_back(std::move(log_info));
+ }
+ for (int i = 0; i < 3; ++i) {
+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+ // Shift to ASCII 'A' (0x41)
+ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
+ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
+ log_info->operated_by_google = false;
+ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
+
+ params->ct_logs.push_back(std::move(log_info));
+ }
+ std::unique_ptr<NetworkContext> network_context =
+ CreateContextWithParams(std::move(params));
+
+ net::CTPolicyEnforcer* request_enforcer =
+ network_context->url_request_context()->ct_policy_enforcer();
+ ASSERT_TRUE(request_enforcer);
+
+ // Completely unsafe if |enforce_chrome_ct_policy| is false.
+ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
+ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
+ request_enforcer);
+
+ EXPECT_TRUE(std::is_sorted(
+ policy_enforcer->operated_by_google_logs_for_testing().begin(),
+ policy_enforcer->operated_by_google_logs_for_testing().end()));
+ EXPECT_TRUE(
+ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
+ policy_enforcer->disqualified_logs_for_testing().end()));
+
+ EXPECT_THAT(
+ policy_enforcer->operated_by_google_logs_for_testing(),
+ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
+ crypto::SHA256HashString("3333"),
+ crypto::SHA256HashString("5555")}));
+ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
+ ::testing::UnorderedElementsAre(
+ ::testing::Pair(crypto::SHA256HashString("AAAA"),
+ base::TimeDelta::FromSeconds(0)),
+ ::testing::Pair(crypto::SHA256HashString("BBBB"),
+ base::TimeDelta::FromSeconds(1)),
+ ::testing::Pair(crypto::SHA256HashString("CCCC"),
+ base::TimeDelta::FromSeconds(2))));
+}
+#endif
+
} // namespace
} // namespace network
diff -up chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom
--- chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
+++ chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom 2019-09-12 16:09:52.824635180 +0200
@@ -4,6 +4,8 @@
module network.mojom;
+import "mojo/public/mojom/base/time.mojom";
+
// A single Certificate Transparency Log configuration.
struct CTLogInfo {
// The DER-encoded SubjectPublicKeyInfo of the log.
@@ -14,4 +16,13 @@ struct CTLogInfo {
// The human-readable, log-supplied log name. Note that this will not be
// translated.
string name;
+
+ // Whether or not the log should should be considered a Google Log for the
+ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
+ bool operated_by_google = false;
+
+ // If set, the time since the Unix Epoch when the log was disqualified. This
+ // is used to determine the "once or currently qualified" status of the log.
+ // If the log is currently qualified, this will not be set.
+ mojo_base.mojom.TimeDelta? disqualified_at;
};
diff -up chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom
--- chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
+++ chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom 2019-09-12 16:09:52.825635192 +0200
@@ -239,15 +239,6 @@ struct NetworkContextParams {
[EnableIf=is_android]
bool check_clear_text_permitted = false;
- // True if the "Certificate Transparency in Chrome" policy (see
- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
- // be enforced for certificates and connections.
- //
- // See //net/docs/certificate-transparency.md before setting this flag to
- // true.
- [EnableIf=is_ct_supported]
- bool enforce_chrome_ct_policy = false;
-
// Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
bool http_09_on_non_default_ports_enabled = false;
@@ -300,6 +291,15 @@ struct NetworkContextParams {
// servers, so they can discover misconfigurations.
bool enable_certificate_reporting = false;
+ // True if the "Certificate Transparency in Chrome" policy (see
+ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
+ // be enforced for certificates and connections.
+ //
+ // See //net/docs/certificate-transparency.md before setting this flag to
+ // true.
+ [EnableIf=is_ct_supported]
+ bool enforce_chrome_ct_policy = false;
+
// Enables Expect CT reporting, which sends reports for opted-in sites that
// don't serve sufficient Certificate Transparency information.
[EnableIf=is_ct_supported]
@@ -311,6 +311,13 @@ struct NetworkContextParams {
[EnableIf=is_ct_supported]
array<CTLogInfo> ct_logs;
+ // When the Certificate Transparency logs in |ct_logs| were last updated. If
+ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
+ // sufficiently recent, enforcement of the "Certificate Transparency in
+ // Chrome" policy will be disabled.
+ [EnableIf=is_ct_supported]
+ mojo_base.mojom.Time ct_log_update_time;
+
// Specifies the path to the directory where NSS will store its database.
[EnableIf=is_chromeos]
mojo_base.mojom.FilePath? nss_path;

View File

@ -0,0 +1,61 @@
From f08cb0022527081c078e8b96062e6c9b4fbda151 Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jose.dapena@lge.com>
Date: Fri, 26 Jul 2019 16:48:06 +0000
Subject: [PATCH] BinaryUploadService: change parameter passing that cannot afford abstract class
The method UploadForDeepScanning gets a Request as parameter. But Request is an
abstract class, so GCC will not allow that declaration (polimorphycs should be
passed by reference). Use std::unique_ptr so BinaryUploadService can assume
ownership.
Bug: 819294
Change-Id: I9e8c75cc92b01abd704d9049b0421555377da5ba
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713550
Reviewed-by: Daniel Rubery <drubery@chromium.org>
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Cr-Commit-Position: refs/heads/master@{#681333}
---
diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
index 6430c89..4e90487 100644
--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
@@ -10,7 +10,7 @@
namespace safe_browsing {
void BinaryUploadService::UploadForDeepScanning(
- BinaryUploadService::Request request) {
+ std::unique_ptr<BinaryUploadService::Request> request) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
NOTREACHED();
}
diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
index d2dfd83..9b6f395 100644
--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
@@ -5,6 +5,8 @@
#ifndef CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
#define CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+#include <memory>
+
#include "base/callback.h"
#include "components/safe_browsing/proto/webprotect.pb.h"
@@ -40,6 +42,7 @@
public:
// |callback| will run on the UI thread.
explicit Request(Callback callback);
+ virtual ~Request() = default;
Request(const Request&) = delete;
Request& operator=(const Request&) = delete;
@@ -67,7 +70,7 @@
// Upload the given file contents for deep scanning. The results will be
// returned asynchronously by calling |request|'s |callback|. This must be
// called on the UI thread.
- void UploadForDeepScanning(Request request);
+ void UploadForDeepScanning(std::unique_ptr<Request> request);
};
} // namespace safe_browsing

View File

@ -0,0 +1,23 @@
diff -up chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h
--- chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory 2019-09-13 14:44:24.962770079 +0200
+++ chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h 2019-09-13 14:44:45.347073612 +0200
@@ -3,6 +3,8 @@
#include "low_pass_filter.h"
+#include <memory>
+
namespace one_euro_filter {
namespace test {
class OneEuroFilterTest;
diff -up chromium-80.0.3987.106/third_party/webrtc/modules/audio_processing/aec3/reverb_model_estimator.h.missing-memory chromium-80.0.3987.106/third_party/webrtc/modules/audio_processing/aec3/reverb_model_estimator.h
--- chromium-80.0.3987.106/third_party/webrtc/modules/audio_processing/aec3/reverb_model_estimator.h.missing-memory 2020-02-21 12:25:17.206021379 -0500
+++ chromium-80.0.3987.106/third_party/webrtc/modules/audio_processing/aec3/reverb_model_estimator.h 2020-02-21 12:25:31.613759976 -0500
@@ -12,6 +12,7 @@
#define MODULES_AUDIO_PROCESSING_AEC3_REVERB_MODEL_ESTIMATOR_H_
#include <array>
+#include <memory>
#include <vector>
#include "absl/types/optional.h"

View File

@ -0,0 +1,49 @@
From 27e25336b8316ff3ec4e464058682ed85801fd06 Mon Sep 17 00:00:00 2001
From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Mon, 29 Jul 2019 10:54:28 +0000
Subject: [PATCH] Also link against libharfbuzz-subset when use_system_harfbuzz is true
When building HarfBuzz as part of Chromium, there is a single source set
with all the files we need in the build.
Upstream HarfBuzz, on the other hand, produces a few different libraries:
harfbuzz, harfbuzz-icu and harfbuzz-subset. When |use_system_harfbuzz| is
true, we were only looking for (and using) harfbuzz.pc with pkg-config even
though we also use symbols from libharfbuzz-subset.so. This resulted in
errors when linking:
ld: obj/skia/skia/SkPDFSubsetFont.o: in function `SkPDFSubsetFont(sk_sp<SkData>, SkPDFGlyphUse const&, SkPDF::Metadata::Subsetter, char const*, int)':
SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x48a): undefined reference to `hb_subset_input_create_or_fail'
ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x4af): undefined reference to `hb_subset_input_glyph_set'
ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5d7): undefined reference to `hb_subset_input_set_retain_gids'
ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5e4): undefined reference to `hb_subset_input_set_drop_hints'
ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5f3): undefined reference to `hb_subset'
ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x66f): undefined reference to `hb_subset_input_destroy'
as reported in
https://groups.google.com/a/chromium.org/d/msg/chromium-packagers/UyJsVJ5QqWo/jSv5z7-rEQAJ
Change-Id: I997af075c7b7263cd7cc71a63db5b0f93bd1ab59
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1715288
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Commit-Queue: Dominik Röttsches <drott@chromium.org>
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Cr-Commit-Position: refs/heads/master@{#681760}
---
diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn
index 37d8e33..72013eb1d 100644
--- a/third_party/harfbuzz-ng/BUILD.gn
+++ b/third_party/harfbuzz-ng/BUILD.gn
@@ -16,7 +16,10 @@
"//third_party:freetype_harfbuzz",
"//third_party/freetype:freetype_source",
]
- packages = [ "harfbuzz" ]
+ packages = [
+ "harfbuzz",
+ "harfbuzz-subset",
+ ]
}
} else {
config("harfbuzz_config") {

View File

@ -0,0 +1,28 @@
From 5baf7df7f4c5971dab552897eeef94b194650ce5 Mon Sep 17 00:00:00 2001
From: Dave Tapuska <dtapuska@chromium.org>
Date: Mon, 12 Aug 2019 22:30:13 +0000
Subject: [PATCH] Fix build failure due to missing include for std::numeric_limits usage.
Some configurations fail to build, limits should have been included.
BUG=992832
Change-Id: I894ba0543bfcef101c93259e39a31d12ae6d035c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1747981
Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: Mostyn Bramley-Moore <mostynb@vewd.com>
Cr-Commit-Position: refs/heads/master@{#686214}
---
diff --git a/third_party/blink/renderer/platform/exported/web_time_range.cc b/third_party/blink/renderer/platform/exported/web_time_range.cc
index 384566a..68d83e1 100644
--- a/third_party/blink/renderer/platform/exported/web_time_range.cc
+++ b/third_party/blink/renderer/platform/exported/web_time_range.cc
@@ -31,6 +31,7 @@
#include "third_party/blink/public/platform/web_time_range.h"
#include <cmath>
+#include <limits>
namespace blink {

View File

@ -0,0 +1,25 @@
From e1bbdec720a333937bd1b990ae0f7ee97db0d3b0 Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: Fri, 28 Jun 2019 15:56:23 +0000
Subject: [PATCH] update zlib
---
third_party/perfetto/gn/BUILD.gn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
index c951f5f..297eee3 100644
--- a/third_party/perfetto/gn/BUILD.gn
+++ b/third_party/perfetto/gn/BUILD.gn
@@ -200,7 +200,7 @@ group("zlib") {
"//buildtools:zlib",
]
} else if (build_with_chromium) {
- public_configs = [ "//third_party/zlib:zlib_config" ]
+ public_configs = [ "//third_party/zlib:system_zlib" ]
public_deps = [
"//third_party/zlib",
]
--
2.21.0

View File

@ -0,0 +1,130 @@
From 74138b9febd37eac0fc26b8efb110014a83a52c6 Mon Sep 17 00:00:00 2001
From: Jeremy Roman <jbroman@chromium.org>
Date: Wed, 07 Aug 2019 13:26:48 +0000
Subject: [PATCH] WTF: Make LinkedHashSet understand values for which memset initialization would be bad.
Includes a unit test which fails before, and uses this to fix FontCacheKeyTraits.
Bug: 980025
Change-Id: If41f97444c7fd37b9b95d6dadaf3da5689079e9e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739948
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
Commit-Queue: Jeremy Roman <jbroman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#684731}
---
diff --git a/third_party/blink/renderer/platform/fonts/font_cache_key.h b/third_party/blink/renderer/platform/fonts/font_cache_key.h
index 0efc8fb..90063cb 100644
--- a/third_party/blink/renderer/platform/fonts/font_cache_key.h
+++ b/third_party/blink/renderer/platform/fonts/font_cache_key.h
@@ -133,6 +133,10 @@
struct FontCacheKeyTraits : WTF::SimpleClassHashTraits<FontCacheKey> {
STATIC_ONLY(FontCacheKeyTraits);
+
+ // std::string's empty state need not be zero in all implementations,
+ // and it is held within FontFaceCreationParams.
+ static const bool kEmptyValueIsZero = false;
};
} // namespace blink
diff --git a/third_party/blink/renderer/platform/wtf/linked_hash_set.h b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
index b35b6e9..77e524c 100644
--- a/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+++ b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
@@ -146,6 +146,11 @@
LinkedHashSetNodeBase* next)
: LinkedHashSetNodeBase(prev, next), value_(value) {}
+ LinkedHashSetNode(ValueArg&& value,
+ LinkedHashSetNodeBase* prev,
+ LinkedHashSetNodeBase* next)
+ : LinkedHashSetNodeBase(prev, next), value_(std::move(value)) {}
+
LinkedHashSetNode(LinkedHashSetNode&& other)
: LinkedHashSetNodeBase(std::move(other)),
value_(std::move(other.value_)) {}
@@ -445,10 +450,13 @@
// The slot is empty when the next_ field is zero so it's safe to zero
// the backing.
- static const bool kEmptyValueIsZero = true;
+ static const bool kEmptyValueIsZero = ValueTraits::kEmptyValueIsZero;
static const bool kHasIsEmptyValueFunction = true;
static bool IsEmptyValue(const Node& node) { return !node.next_; }
+ static Node EmptyValue() {
+ return Node(ValueTraits::EmptyValue(), nullptr, nullptr);
+ }
static const int kDeletedValue = -1;
diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
index 4c3f899..cd1be00 100644
--- a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+++ b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
@@ -487,6 +487,7 @@
};
struct Complicated {
+ Complicated() : Complicated(0) {}
Complicated(int value) : simple_(value) { objects_constructed_++; }
Complicated(const Complicated& other) : simple_(other.simple_) {
@@ -495,9 +496,6 @@
Simple simple_;
static int objects_constructed_;
-
- private:
- Complicated() = delete;
};
int Complicated::objects_constructed_ = 0;
@@ -731,4 +729,45 @@
} // anonymous namespace
+// A unit type which objects to its state being initialized wrong.
+struct InvalidZeroValue {
+ InvalidZeroValue() = default;
+ InvalidZeroValue(WTF::HashTableDeletedValueType) : deleted_(true) {}
+ ~InvalidZeroValue() { CHECK(ok_); }
+ bool IsHashTableDeletedValue() const { return deleted_; }
+
+ bool ok_ = true;
+ bool deleted_ = false;
+};
+
+template <>
+struct HashTraits<InvalidZeroValue> : SimpleClassHashTraits<InvalidZeroValue> {
+ static const bool kEmptyValueIsZero = false;
+};
+
+template <>
+struct DefaultHash<InvalidZeroValue> {
+ struct Hash {
+ static unsigned GetHash(const InvalidZeroValue&) { return 0; }
+ static bool Equal(const InvalidZeroValue&, const InvalidZeroValue&) {
+ return true;
+ }
+ };
+};
+
+template <typename Set>
+class ListOrLinkedHashSetInvalidZeroTest : public testing::Test {};
+
+using InvalidZeroValueSetTypes =
+ testing::Types<ListHashSet<InvalidZeroValue>,
+ ListHashSet<InvalidZeroValue, 1>,
+ LinkedHashSet<InvalidZeroValue>>;
+TYPED_TEST_SUITE(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValueSetTypes);
+
+TYPED_TEST(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValue) {
+ using Set = TypeParam;
+ Set set;
+ set.insert(InvalidZeroValue());
+}
+
} // namespace WTF

View File

@ -0,0 +1,13 @@
diff --git a/third_party/protobuf/src/google/protobuf/repeated_field.h b/third_party/protobuf/src/google/protobuf/repeated_field.h
index b5b193c..4434854 100644
--- a/third_party/protobuf/src/google/protobuf/repeated_field.h
+++ b/third_party/protobuf/src/google/protobuf/repeated_field.h
@@ -804,7 +804,7 @@ class StringTypeHandler {
// RepeatedPtrField is like RepeatedField, but used for repeated strings or
// Messages.
template <typename Element>
-class RepeatedPtrField final : private internal::RepeatedPtrFieldBase {
+class PROTOBUF_EXPORT RepeatedPtrField final : private internal::RepeatedPtrFieldBase {
public:
RepeatedPtrField();
explicit RepeatedPtrField(Arena* arena);

View File

@ -0,0 +1,24 @@
diff -up chromium-78.0.3904.70/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h.gcc9 chromium-78.0.3904.70/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h
--- chromium-78.0.3904.70/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h.gcc9 2019-10-23 08:58:16.153251961 -0400
+++ chromium-78.0.3904.70/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h 2019-10-23 08:58:36.896862347 -0400
@@ -1486,7 +1486,7 @@ struct kernel_stat {
"d"(LSS_SYSCALL_ARG(parent_tidptr)),
"r"(LSS_SYSCALL_ARG(newtls)),
"r"(LSS_SYSCALL_ARG(child_tidptr))
- : "rsp", "memory", "r8", "r10", "r11", "rcx");
+ : "memory", "r8", "r10", "r11", "rcx");
}
LSS_RETURN(int, __res);
}
diff -up chromium-78.0.3904.70/third_party/tcmalloc/vendor/src/base/linux_syscall_support.h.gcc9 chromium-78.0.3904.70/third_party/tcmalloc/vendor/src/base/linux_syscall_support.h
--- chromium-78.0.3904.70/third_party/tcmalloc/vendor/src/base/linux_syscall_support.h.gcc9 2019-10-23 08:58:59.623435488 -0400
+++ chromium-78.0.3904.70/third_party/tcmalloc/vendor/src/base/linux_syscall_support.h 2019-10-23 08:59:16.113125772 -0400
@@ -1485,7 +1485,7 @@ struct kernel_stat {
"d"(LSS_SYSCALL_ARG(parent_tidptr)),
"r"(LSS_SYSCALL_ARG(newtls)),
"r"(LSS_SYSCALL_ARG(child_tidptr))
- : "rsp", "memory", "r8", "r10", "r11", "rcx");
+ : "memory", "r8", "r10", "r11", "rcx");
}
LSS_RETURN(int, __res);
}

View File

@ -0,0 +1,12 @@
diff -up chromium-78.0.3904.70/third_party/perfetto/gn/BUILD.gn.unbundle-zlib chromium-78.0.3904.70/third_party/perfetto/gn/BUILD.gn
--- chromium-78.0.3904.70/third_party/perfetto/gn/BUILD.gn.unbundle-zlib 2019-10-23 09:25:44.419884187 -0400
+++ chromium-78.0.3904.70/third_party/perfetto/gn/BUILD.gn 2019-10-23 09:29:53.553442745 -0400
@@ -276,7 +276,7 @@ if (enable_perfetto_trace_processor || e
"//buildtools:zlib",
]
} else {
- public_configs = [ "//third_party/zlib:zlib_config" ]
+ public_configs = [ "//third_party/zlib:system_zlib" ]
public_deps = [
"//third_party/zlib",
]

View File

@ -0,0 +1,11 @@
diff -up chromium-78.0.3904.70/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined chromium-78.0.3904.70/net/quic/platform/impl/quic_default_proof_providers_impl.cc
--- chromium-78.0.3904.70/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined 2019-10-23 09:12:08.754351798 -0400
+++ chromium-78.0.3904.70/net/quic/platform/impl/quic_default_proof_providers_impl.cc 2019-10-23 09:19:28.278431430 -0400
@@ -18,6 +18,7 @@
#include "net/quic/crypto/proof_verifier_chromium.h"
#include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
#include "net/third_party/quiche/src/quic/platform/api/quic_ptr_util.h"
+#include "net/quic/platform/impl/quic_flags_impl.cc"
DEFINE_QUIC_COMMAND_LINE_FLAG(
bool,

View File

@ -0,0 +1,39 @@
From af77dc4014ead3d898fdc8a7a70fe5063ac9b102 Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jose.dapena@lge.com>
Date: Fri, 25 Oct 2019 19:01:29 +0000
Subject: [PATCH] GCC: use brace-initializer for DohUpgrade vector
Constructing NoDestructor with parenthesis constructor is ambiguous
in GCC. Use brace-initializer to avoid that problem. This fixes this
build error:
Bug: 819294
Change-Id: I00dda42daa1794d11e022f26ac07f92e599d106d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1879910
Reviewed-by: Eric Orth <ericorth@chromium.org>
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Cr-Commit-Position: refs/heads/master@{#709569}
---
diff --git a/net/dns/dns_util.cc b/net/dns/dns_util.cc
index 14997c4..637b6f2 100644
--- a/net/dns/dns_util.cc
+++ b/net/dns/dns_util.cc
@@ -144,7 +144,7 @@
// DohProviderId histogram suffix list in
// tools/metrics/histograms/histograms.xml.
static const base::NoDestructor<std::vector<DohUpgradeEntry>>
- upgradable_servers({
+ upgradable_servers{{
DohUpgradeEntry(
"CleanBrowsingAdult",
{"185.228.168.10", "185.228.169.11", "2a0d:2a00:1::1",
@@ -215,7 +215,7 @@
{"9.9.9.9", "149.112.112.112", "2620:fe::fe", "2620:fe::9"},
{"dns.quad9.net", "dns9.quad9.net"} /* DoT hostname */,
{"https://dns.quad9.net/dns-query", true /* use_post */}),
- });
+ }};
return *upgradable_servers;
}

View File

@ -0,0 +1,79 @@
From 528e9a3e1f25bd264549c4c7779748abfd16bb1c Mon Sep 17 00:00:00 2001
From: Jan Wilken Dörrie <jdoerrie@chromium.org>
Date: Fri, 18 Oct 2019 11:45:24 +0000
Subject: [PATCH] Reland "GCC: Fix base::internal::InvokeFuncImpl"
This is a reland of 9293d5c86eec1c34fc00716645400b44a14e764e
Original change's description:
> GCC: Fix base::internal::InvokeFuncImpl
>
> GCC doesn't like that the Value data member has no out-of-line
> definition. The problem is triggered specifically only when compiling
>
> components/services/leveldb/leveldb_database_impl.cc
>
> which has lambda functions returning locally-defined classes.
>
> The current code works as-is in C++17 mode which introduces the concept
> of inline variables, but in C++14 we need either an explicit out-of-line
> definition or a function member instead of a data member.
>
> Use std::integral_constant for defining the value.
>
> Bug: 819294
> Change-Id: I5c68e14ce3fa9d8b4d8a2cb42d7f9b53938aabf3
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1862451
> Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org>
> Reviewed-by: Daniel Cheng <dcheng@chromium.org>
> Commit-Queue: Jüri Valdmann <juri.valdmann@qt.io>
> Cr-Commit-Position: refs/heads/master@{#706384}
Bug: 819294
Change-Id: I3d5a52ddc6815516e2239f9347c60de06bf765a2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1865212
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Cr-Commit-Position: refs/heads/master@{#707329}
---
diff --git a/base/bind.h b/base/bind.h
index 7a400af..1070ce6 100644
--- a/base/bind.h
+++ b/base/bind.h
@@ -187,18 +187,15 @@
// well-formed. Using `Invoker::Run` with a OnceCallback triggers a
// static_assert, which is why the ternary expression does not compile.
// TODO(crbug.com/752720): Remove this indirection once we have `if constexpr`.
-template <bool is_once, typename Invoker>
-struct InvokeFuncImpl;
+template <typename Invoker>
+constexpr auto GetInvokeFunc(std::true_type) {
+ return Invoker::RunOnce;
+}
template <typename Invoker>
-struct InvokeFuncImpl<true, Invoker> {
- static constexpr auto Value = &Invoker::RunOnce;
-};
-
-template <typename Invoker>
-struct InvokeFuncImpl<false, Invoker> {
- static constexpr auto Value = &Invoker::Run;
-};
+constexpr auto GetInvokeFunc(std::false_type) {
+ return Invoker::Run;
+}
template <template <typename> class CallbackT,
typename Functor,
@@ -229,7 +226,8 @@
// InvokeFuncStorage, so that we can ensure its type matches to
// PolymorphicInvoke, to which CallbackType will cast back.
using PolymorphicInvoke = typename CallbackType::PolymorphicInvoke;
- PolymorphicInvoke invoke_func = InvokeFuncImpl<kIsOnce, Invoker>::Value;
+ PolymorphicInvoke invoke_func =
+ GetInvokeFunc<Invoker>(std::integral_constant<bool, kIsOnce>());
using InvokeFuncStorage = internal::BindStateBase::InvokeFuncStorage;
return CallbackType(BindState::Create(

131
chromium-79-include.patch Normal file
View File

@ -0,0 +1,131 @@
From f7c177d35242311ea7a2cf49a0980c61664f27ba Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jose.dapena@lge.com>
Date: Fri, 25 Oct 2019 15:07:09 +0000
Subject: [PATCH] IWYU: include algorithm to use std::lower_bound in ui/gfx/font.cc
Fix GCC build because of missing include:
../../ui/gfx/font.cc: In function gfx::Font::Weight gfx::FontWeightFromInt(int):
../../ui/gfx/font.cc:114:8: error: no matching function for call to lower_bound(const gfx::Font::Weight*, const gfx::Font::Weight*, int&, gfx::FontWeightFromInt(int)::<lambda(const gfx::Font::Weight&, const int&)>)
});
^
In file included from /usr/include/c++/8/bits/char_traits.h:39,
from /usr/include/c++/8/string:40,
from ../../ui/gfx/font.h:8,
from ../../ui/gfx/font.cc:5:
/usr/include/c++/8/bits/stl_algobase.h:984:5: note: candidate: template<class _ForwardIterator, class _Tp> _ForwardIterator std::lower_bound(_ForwardIterator, _ForwardIterator, const _Tp&)
lower_bound(_ForwardIterator __first, _ForwardIterator __last,
^~~~~~~~~~~
/usr/include/c++/8/bits/stl_algobase.h:984:5: note: template argument deduction/substitution failed:
../../ui/gfx/font.cc:114:8: note: candidate expects 3 arguments, 4 provided
});
^
Bug: 819294
Change-Id: Ic59dcf3a06bdd54d1d426c08a61624873a0ff30c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1879909
Commit-Queue: Alexei Svitkine <asvitkine@chromium.org>
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Cr-Commit-Position: refs/heads/master@{#709472}
---
diff --git a/ui/gfx/font.cc b/ui/gfx/font.cc
index 21367fd7..92b159e 100644
--- a/ui/gfx/font.cc
+++ b/ui/gfx/font.cc
@@ -4,6 +4,8 @@
#include "ui/gfx/font.h"
+#include <algorithm>
+
#include "base/strings/utf_string_conversions.h"
#include "build/build_config.h"
#include "ui/gfx/platform_font.h"
From 97eb905ba262382bc3583078761c68f4452aea71 Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jose.dapena@lge.com>
Date: Fri, 25 Oct 2019 09:27:53 +0000
Subject: [PATCH] IWYU: launch_manager.h uses std::vector
Add #include <vector> for using std::vector. This fixes GCC build.
./../chrome/browser/apps/launch_service/launch_manager.h:46:15: error: vector in namespace std does not name a template type
static std::vector<base::FilePath> GetLaunchFilesFromCommandLine(
^~~~~~
Bug: 819294
Change-Id: I02ec3a2914a8fbe3aa0041017a0228f4b0ca1ec9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1879289
Reviewed-by: Alexey Baskakov <loyso@chromium.org>
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Cr-Commit-Position: refs/heads/master@{#709411}
---
diff --git a/chrome/browser/apps/launch_service/launch_manager.h b/chrome/browser/apps/launch_service/launch_manager.h
index 00aeb9d..76570ea 100644
--- a/chrome/browser/apps/launch_service/launch_manager.h
+++ b/chrome/browser/apps/launch_service/launch_manager.h
@@ -6,6 +6,7 @@
#define CHROME_BROWSER_APPS_LAUNCH_SERVICE_LAUNCH_MANAGER_H_
#include <string>
+#include <vector>
#include "base/macros.h"
From e7407ce7fa262e9fd1a19dd0957e5a950520ee3a Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jose.dapena@lge.com>
Date: Fri, 25 Oct 2019 08:25:45 +0000
Subject: [PATCH] IWYU: include cstdint in register_context.h as it uses uintptr_t
GCC build fix as build fails with this:
../../base/profiler/register_context.h:31:1: error: uintptr_t does not name a type; did you mean intptr_t?
uintptr_t& AsUintPtr(T* value) {
^~~~~~~~~
intptr_t
../../base/profiler/register_context.h:110:3: error: uintptr_t does not name a type; did you mean intptr_t?
uintptr_t stack_pointer;
^~~~~~~~~
intptr_t
../../base/profiler/register_context.h:111:3: error: uintptr_t does not name a type; did you mean intptr_t?
uintptr_t frame_pointer;
^~~~~~~~~
intptr_t
../../base/profiler/register_context.h:112:3: error: uintptr_t does not name a type; did you mean intptr_t?
uintptr_t instruction_pointer;
^~~~~~~~~
intptr_t
../../base/profiler/register_context.h:115:8: error: uintptr_t does not name a type; did you mean intptr_t?
inline uintptr_t& RegisterContextStackPointer(RegisterContext* context) {
^~~~~~~~~
intptr_t
../../base/profiler/register_context.h:119:8: error: uintptr_t does not name a type; did you mean intptr_t?
inline uintptr_t& RegisterContextFramePointer(RegisterContext* context) {
^~~~~~~~~
intptr_t
../../base/profiler/register_context.h:123:8: error: uintptr_t does not name a type; did you mean intptr_t?
inline uintptr_t& RegisterContextInstructionPointer(RegisterContext* context) {
^~~~~~~~~
intptr_t
Bug: 819294
Change-Id: I49567b00a6f021686c52053a22fb9c502c84f1bc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1879908
Reviewed-by: Mike Wittman <wittman@chromium.org>
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Cr-Commit-Position: refs/heads/master@{#709398}
---
diff --git a/base/profiler/register_context.h b/base/profiler/register_context.h
index 46c4250..7dd86ff 100644
--- a/base/profiler/register_context.h
+++ b/base/profiler/register_context.h
@@ -9,6 +9,7 @@
#ifndef BASE_PROFILER_REGISTER_CONTEXT_H_
#define BASE_PROFILER_REGISTER_CONTEXT_H_
+#include <cstdint>
#include <type_traits>
#include "build/build_config.h"

View File

@ -0,0 +1,28 @@
diff -up chromium-79.0.3945.130/third_party/angle/BUILD.gn.fixme chromium-79.0.3945.130/third_party/angle/BUILD.gn
--- chromium-79.0.3945.130/third_party/angle/BUILD.gn.fixme 2020-02-05 15:50:58.810040419 -0500
+++ chromium-79.0.3945.130/third_party/angle/BUILD.gn 2020-02-05 15:52:03.720848822 -0500
@@ -228,6 +228,9 @@ config("angle_common_config") {
if (is_android) {
libs = [ "log" ]
}
+ if (!is_clang) {
+ cflags_cc = [ "-std=c++17" ]
+ }
}
if (is_win && !angle_is_winuwp) {
diff -up chromium-79.0.3945.130/third_party/angle/src/common/PackedEnums.h.fixme chromium-79.0.3945.130/third_party/angle/src/common/PackedEnums.h
--- chromium-79.0.3945.130/third_party/angle/src/common/PackedEnums.h.fixme 2020-02-05 15:35:47.473867905 -0500
+++ chromium-79.0.3945.130/third_party/angle/src/common/PackedEnums.h 2020-02-05 15:36:30.362065300 -0500
@@ -85,8 +85,9 @@ class PackedEnumMap
{
// This horrible const_cast pattern is necessary to work around a constexpr limitation.
// See https://stackoverflow.com/q/34199774/ . Note that it should be fixed with C++17.
- const_cast<T &>(const_cast<const Storage &>(
- mPrivateData)[static_cast<UnderlyingType>(it->first)]) = it->second;
+ // const_cast<T &>(const_cast<const Storage &>(
+ // mPrivateData)[static_cast<UnderlyingType>(it->first)]) = it->second;
+ mPrivateData[static_cast<UnderlyingType>(it->first)] = it->second;
}
}

View File

@ -0,0 +1,56 @@
--- 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.
--- 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
--- 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

View File

@ -0,0 +1,12 @@
diff -up chromium-79.0.3945.56/content/common/user_agent.cc.fedora-user-agent chromium-79.0.3945.56/content/common/user_agent.cc
--- chromium-79.0.3945.56/content/common/user_agent.cc.fedora-user-agent 2019-12-03 14:16:13.076763501 -0500
+++ chromium-79.0.3945.56/content/common/user_agent.cc 2019-12-03 14:21:57.427351621 -0500
@@ -35,7 +35,7 @@ std::string GetUserAgentPlatform() {
#elif defined(OS_MACOSX)
return "Macintosh; ";
#elif defined(USE_X11) || defined(USE_OZONE)
- return "X11; "; // strange, but that's what Firefox uses
+ return "X11; Fedora; "; // strange, but that's what Firefox uses
#elif defined(OS_ANDROID)
return "Linux; ";
#elif defined(OS_FUCHSIA)

View File

@ -0,0 +1,11 @@
diff -up chromium-79.0.3945.56/ui/base/cursor/ozone/bitmap_cursor_factory_ozone.h.fix-find_if chromium-79.0.3945.56/ui/base/cursor/ozone/bitmap_cursor_factory_ozone.h
--- chromium-79.0.3945.56/ui/base/cursor/ozone/bitmap_cursor_factory_ozone.h.fix-find_if 2019-12-03 15:32:07.315635750 -0500
+++ chromium-79.0.3945.56/ui/base/cursor/ozone/bitmap_cursor_factory_ozone.h 2019-12-03 15:32:33.085054770 -0500
@@ -5,6 +5,7 @@
#ifndef UI_BASE_CURSOR_OZONE_BITMAP_CURSOR_FACTORY_OZONE_H_
#define UI_BASE_CURSOR_OZONE_BITMAP_CURSOR_FACTORY_OZONE_H_
+#include <algorithm>
#include <map>
#include "base/macros.h"

View File

@ -0,0 +1,108 @@
diff -up chromium-79.0.3945.56/content/child/webthemeengine_impl_android.cc.gcc-name-clash chromium-79.0.3945.56/content/child/webthemeengine_impl_android.cc
--- chromium-79.0.3945.56/content/child/webthemeengine_impl_android.cc.gcc-name-clash 2019-11-26 16:52:30.000000000 -0500
+++ chromium-79.0.3945.56/content/child/webthemeengine_impl_android.cc 2019-12-03 12:48:21.210018632 -0500
@@ -228,7 +228,7 @@ void WebThemeEngineAndroid::Paint(
native_theme_extra_params, NativeColorScheme(color_scheme));
}
-blink::ForcedColors WebThemeEngineAndroid::ForcedColors() const {
+blink::ForcedColors WebThemeEngineAndroid::GetForcedColors() const {
return forced_colors_;
}
diff -up chromium-79.0.3945.56/content/child/webthemeengine_impl_android.h.gcc-name-clash chromium-79.0.3945.56/content/child/webthemeengine_impl_android.h
--- chromium-79.0.3945.56/content/child/webthemeengine_impl_android.h.gcc-name-clash 2019-12-03 12:48:21.213018564 -0500
+++ chromium-79.0.3945.56/content/child/webthemeengine_impl_android.h 2019-12-03 12:49:44.079153643 -0500
@@ -22,7 +22,7 @@ class WebThemeEngineAndroid : public bli
const blink::WebRect& rect,
const blink::WebThemeEngine::ExtraParams* extra_params,
blink::WebColorScheme color_scheme) override;
- blink::ForcedColors ForcedColors() const override;
+ blink::ForcedColors GetForcedColors() const override;
void SetForcedColors(const blink::ForcedColors forced_colors) override;
private:
diff -up chromium-79.0.3945.56/content/child/webthemeengine_impl_default.cc.gcc-name-clash chromium-79.0.3945.56/content/child/webthemeengine_impl_default.cc
--- chromium-79.0.3945.56/content/child/webthemeengine_impl_default.cc.gcc-name-clash 2019-11-26 16:52:30.000000000 -0500
+++ chromium-79.0.3945.56/content/child/webthemeengine_impl_default.cc 2019-12-03 12:48:21.215018520 -0500
@@ -232,7 +232,7 @@ void WebThemeEngineDefault::cacheScrollB
}
#endif
-blink::ForcedColors WebThemeEngineDefault::ForcedColors() const {
+blink::ForcedColors WebThemeEngineDefault::GetForcedColors() const {
return ui::NativeTheme::GetInstanceForWeb()->UsesHighContrastColors()
? blink::ForcedColors::kActive
: blink::ForcedColors::kNone;
diff -up chromium-79.0.3945.56/content/child/webthemeengine_impl_default.h.gcc-name-clash chromium-79.0.3945.56/content/child/webthemeengine_impl_default.h
--- chromium-79.0.3945.56/content/child/webthemeengine_impl_default.h.gcc-name-clash 2019-12-03 12:48:21.217018474 -0500
+++ chromium-79.0.3945.56/content/child/webthemeengine_impl_default.h 2019-12-03 12:50:30.808102006 -0500
@@ -39,7 +39,7 @@ class WebThemeEngineDefault : public bli
int32_t vertical_arrow_bitmap_height,
int32_t horizontal_arrow_bitmap_width);
#endif
- blink::ForcedColors ForcedColors() const override;
+ blink::ForcedColors GetForcedColors() const override;
void SetForcedColors(const blink::ForcedColors forced_colors) override;
};
diff -up chromium-79.0.3945.56/content/child/webthemeengine_impl_mac.cc.gcc-name-clash chromium-79.0.3945.56/content/child/webthemeengine_impl_mac.cc
--- chromium-79.0.3945.56/content/child/webthemeengine_impl_mac.cc.gcc-name-clash 2019-11-26 16:52:30.000000000 -0500
+++ chromium-79.0.3945.56/content/child/webthemeengine_impl_mac.cc 2019-12-03 12:48:21.220018407 -0500
@@ -6,7 +6,7 @@
namespace content {
-blink::ForcedColors WebThemeEngineMac::ForcedColors() const {
+blink::ForcedColors WebThemeEngineMac::GetForcedColors() const {
return forced_colors_;
}
diff -up chromium-79.0.3945.56/content/child/webthemeengine_impl_mac.h.gcc-name-clash chromium-79.0.3945.56/content/child/webthemeengine_impl_mac.h
--- chromium-79.0.3945.56/content/child/webthemeengine_impl_mac.h.gcc-name-clash 2019-12-03 12:48:21.223018339 -0500
+++ chromium-79.0.3945.56/content/child/webthemeengine_impl_mac.h 2019-12-03 12:51:07.790269715 -0500
@@ -13,7 +13,7 @@ class WebThemeEngineMac : public blink::
public:
~WebThemeEngineMac() override {}
- blink::ForcedColors ForcedColors() const override;
+ blink::ForcedColors GetForcedColors() const override;
void SetForcedColors(const blink::ForcedColors forced_colors) override;
private:
diff -up chromium-79.0.3945.56/third_party/blink/public/platform/web_theme_engine.h.gcc-name-clash chromium-79.0.3945.56/third_party/blink/public/platform/web_theme_engine.h
--- chromium-79.0.3945.56/third_party/blink/public/platform/web_theme_engine.h.gcc-name-clash 2019-12-03 12:48:21.225018294 -0500
+++ chromium-79.0.3945.56/third_party/blink/public/platform/web_theme_engine.h 2019-12-03 12:51:54.547217442 -0500
@@ -226,7 +226,7 @@ class WebThemeEngine {
return base::nullopt;
}
- virtual ForcedColors ForcedColors() const { return ForcedColors::kNone; }
+ virtual ForcedColors GetForcedColors() const { return ForcedColors::kNone; }
virtual void SetForcedColors(const blink::ForcedColors forced_colors) {}
};
diff -up chromium-79.0.3945.56/third_party/blink/renderer/core/css/media_values.cc.gcc-name-clash chromium-79.0.3945.56/third_party/blink/renderer/core/css/media_values.cc
--- chromium-79.0.3945.56/third_party/blink/renderer/core/css/media_values.cc.gcc-name-clash 2019-11-26 16:52:32.000000000 -0500
+++ chromium-79.0.3945.56/third_party/blink/renderer/core/css/media_values.cc 2019-12-03 12:48:21.226018272 -0500
@@ -221,7 +221,7 @@ bool MediaValues::CalculatePrefersReduce
ForcedColors MediaValues::CalculateForcedColors() {
if (Platform::Current() && Platform::Current()->ThemeEngine())
- return Platform::Current()->ThemeEngine()->ForcedColors();
+ return Platform::Current()->ThemeEngine()->GetForcedColors();
else
return ForcedColors::kNone;
}
diff -up chromium-79.0.3945.56/third_party/blink/renderer/core/dom/document.cc.gcc-name-clash chromium-79.0.3945.56/third_party/blink/renderer/core/dom/document.cc
--- chromium-79.0.3945.56/third_party/blink/renderer/core/dom/document.cc.gcc-name-clash 2019-11-26 16:52:32.000000000 -0500
+++ chromium-79.0.3945.56/third_party/blink/renderer/core/dom/document.cc 2019-12-03 12:48:21.237018024 -0500
@@ -8624,7 +8624,7 @@ void Document::ColorSchemeChanged() {
bool Document::InForcedColorsMode() const {
return RuntimeEnabledFeatures::ForcedColorsEnabled() && Platform::Current() &&
Platform::Current()->ThemeEngine() &&
- Platform::Current()->ThemeEngine()->ForcedColors() !=
+ Platform::Current()->ThemeEngine()->GetForcedColors() !=
ForcedColors::kNone;
}

View File

@ -0,0 +1,52 @@
diff -up chromium-79.0.3945.56/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc.glibc-clock-nanosleep chromium-79.0.3945.56/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
--- chromium-79.0.3945.56/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc.glibc-clock-nanosleep 2019-12-03 11:36:08.592386976 -0500
+++ chromium-79.0.3945.56/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc 2019-12-03 11:36:34.889947958 -0500
@@ -148,7 +148,7 @@ ResultExpr EvaluateSyscallImpl(int fs_de
return Allow();
#endif
- if (sysno == __NR_clock_gettime) {
+ if (sysno == __NR_clock_gettime || sysno == __NR_clock_nanosleep) {
return RestrictClockID();
}
diff -up chromium-79.0.3945.56/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h.glibc-clock-nanosleep chromium-79.0.3945.56/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h
--- chromium-79.0.3945.56/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h.glibc-clock-nanosleep 2019-12-03 11:36:56.808582039 -0500
+++ chromium-79.0.3945.56/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h 2019-12-03 11:37:34.944945377 -0500
@@ -86,12 +86,13 @@ SANDBOX_EXPORT bpf_dsl::ResultExpr Restr
// process).
SANDBOX_EXPORT bpf_dsl::ResultExpr RestrictGetrusage();
-// Restrict |clk_id| for clock_getres(), clock_gettime() and clock_settime().
-// We allow accessing only CLOCK_MONOTONIC, CLOCK_PROCESS_CPUTIME_ID,
-// CLOCK_REALTIME, and CLOCK_THREAD_CPUTIME_ID. In particular, this disallows
-// access to arbitrary per-{process,thread} CPU-time clock IDs (such as those
-// returned by {clock,pthread}_getcpuclockid), which can leak information
-// about the state of the host OS.
+// Restrict |clk_id| for clock_getres(), clock_gettime(), clock_settime(), and
+// clock_nanosleep(). We allow accessing only CLOCK_BOOTTIME,
+// CLOCK_MONOTONIC{,_RAW,_COARSE}, CLOCK_PROCESS_CPUTIME_ID,
+// CLOCK_REALTIME{,_COARSE}, and CLOCK_THREAD_CPUTIME_ID. In particular, on
+// non-Android platforms this disallows access to arbitrary per-{process,thread}
+// CPU-time clock IDs (such as those returned by {clock,pthread}_getcpuclockid),
+// which can leak information about the state of the host OS.
SANDBOX_EXPORT bpf_dsl::ResultExpr RestrictClockID();
// Restrict the flags argument to getrandom() to allow only no flags, or
diff -up chromium-79.0.3945.56/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc.glibc-clock-nanosleep chromium-79.0.3945.56/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
--- chromium-79.0.3945.56/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc.glibc-clock-nanosleep 2019-12-03 11:37:53.752639332 -0500
+++ chromium-79.0.3945.56/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc 2019-12-03 11:38:32.802051407 -0500
@@ -35,9 +35,10 @@ bool SyscallSets::IsAllowedGettime(int s
return true;
case __NR_adjtimex: // Privileged.
case __NR_clock_adjtime: // Privileged.
- case __NR_clock_getres: // Could be allowed.
- case __NR_clock_gettime:
- case __NR_clock_nanosleep: // Could be allowed.
+ case __NR_clock_getres: // Allowed only on Android with parameters
+ // filtered by RestrictClockID().
+ case __NR_clock_gettime: // Parameters filtered by RestrictClockID().
+ case __NR_clock_nanosleep: // Parameters filtered by RestrictClockID().
case __NR_clock_settime: // Privileged.
#if defined(__i386__) || \
(defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))

View File

@ -0,0 +1,19 @@
diff -up chromium-79.0.3945.56/chrome/common/chrome_paths.cc.widevine-other-locations chromium-79.0.3945.56/chrome/common/chrome_paths.cc
--- chromium-79.0.3945.56/chrome/common/chrome_paths.cc.widevine-other-locations 2019-12-03 11:52:11.682295001 -0500
+++ chromium-79.0.3945.56/chrome/common/chrome_paths.cc 2019-12-03 12:00:08.654975939 -0500
@@ -381,6 +381,15 @@ bool PathProvider(int key, base::FilePat
#if defined(OS_LINUX) && BUILDFLAG(BUNDLE_WIDEVINE_CDM)
case chrome::DIR_BUNDLED_WIDEVINE_CDM:
+ base::PathService::Get(base::DIR_HOME, &cur);
+ cur = cur.Append(FILE_PATH_LITERAL(".local/lib/libwidevinecdm.so"));
+ if (base::PathExists(cur)) {
+ break;
+ }
+ if (base::PathExists(base::FilePath(FILE_PATH_LITERAL("/opt/google/chrome/libwidevinecdm.so")))) {
+ cur = base::FilePath(FILE_PATH_LITERAL("/opt/google/chrome/libwidevinecdm.so"));
+ break;
+ }
if (!GetComponentDirectory(&cur))
return false;
#if !defined(OS_CHROMEOS)

View File

@ -0,0 +1,45 @@
../../third_party/blink/renderer/core/editing/commands/delete_selection_command.cc: In member function 'void blink::DeleteSelectionCommand::InitializePositionData(blink::EditingState*)':
../../third_party/blink/renderer/core/editing/commands/delete_selection_command.cc:256:59: error: no matching function for call to 'EnclosingNodeOfType(blink::Position&, <unresolved overloaded function type>)'
256 | EnclosingNodeOfType(start, &IsA<HTMLTableRowElement>));
| ^
In file included from ../../third_party/blink/renderer/core/editing/commands/delete_selection_command.cc:34:
../../third_party/blink/renderer/core/editing/editing_utilities.h:112:19: note: candidate: 'blink::Node* blink::EnclosingNodeOfType(const Position&, bool (*)(const blink::Node*), blink::EditingBoundaryCrossingRule)'
112 | CORE_EXPORT Node* EnclosingNodeOfType(
| ^~~~~~~~~~~~~~~~~~~
../../third_party/blink/renderer/core/editing/editing_utilities.h:114:12: note: no known conversion for argument 2 from '<unresolved overloaded function type>' to 'bool (*)(const blink::Node*)'
114 | bool (*node_is_of_type)(const Node*),
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../third_party/blink/renderer/core/editing/editing_utilities.h:116:19: note: candidate: 'blink::Node* blink::EnclosingNodeOfType(const PositionInFlatTree&, bool (*)(const blink::Node*), blink::EditingBoundaryCrossingRule)'
116 | CORE_EXPORT Node* EnclosingNodeOfType(
| ^~~~~~~~~~~~~~~~~~~
../../third_party/blink/renderer/core/editing/editing_utilities.h:117:5: note: no known conversion for argument 1 from 'blink::Position' {aka 'blink::PositionTemplate<blink::EditingAlgorithm<blink::NodeTraversal> >'} to 'const PositionInFlatTree&' {aka 'const blink::PositionTemplate<blink::EditingAlgorithm<blink::FlatTreeTraversal> >&'}
117 | const PositionInFlatTree&,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/third_party/blink/renderer/core/editing/commands/delete_selection_command.cc b/third_party/blink/renderer/core/editing/commands/delete_selection_command.cc
index 6ff6906..dd531ae 100644
--- a/third_party/blink/renderer/core/editing/commands/delete_selection_command.cc
+++ b/third_party/blink/renderer/core/editing/commands/delete_selection_command.cc
@@ -224,6 +224,10 @@ static Position TrailingWhitespacePosition(const Position& position,
return Position();
}
+static bool IsAHTMLTableRowElement(const Node* node) {
+ return IsA<HTMLTableRowElement>(node);
+}
+
void DeleteSelectionCommand::InitializePositionData(
EditingState* editing_state) {
DCHECK(!GetDocument().NeedsLayoutTreeUpdate());
@@ -253,9 +257,9 @@ void DeleteSelectionCommand::InitializePositionData(
end_root_ = RootEditableElementOf(end);
start_table_row_ = To<HTMLTableRowElement>(
- EnclosingNodeOfType(start, &IsA<HTMLTableRowElement>));
+ EnclosingNodeOfType(start, &IsAHTMLTableRowElement));
end_table_row_ = To<HTMLTableRowElement>(
- EnclosingNodeOfType(end, &IsA<HTMLTableRowElement>));
+ EnclosingNodeOfType(end, &IsAHTMLTableRowElement));
// Don't move content out of a table cell.
// If the cell is non-editable, enclosingNodeOfType won't return it by

View File

@ -0,0 +1,30 @@
From 00f47df999c9b19e80fdc01db0ae9ca1b6a12b3a Mon Sep 17 00:00:00 2001
From: vasilvv <vasilvv@google.com>
Date: Wed, 03 Apr 2019 13:58:53 -0700
Subject: [PATCH] GCC: do not delete move constructor of QuicStreamSendBuffer
QuicStreamSendBuffer constructor is implicitely required in the
initialization of the vector of substreams in QuicCryptoStream.
Though clang apparently ignores that, GCC fails to build.
BUG=chromium:819294
Originally submitted by José Dapena Paz <jose.dapena@lge.com> at https://quiche-review.googlesource.com/c/quiche/+/2420
PiperOrigin-RevId: 241800134
Change-Id: I4e3c97d6e5895d85340e8c1b740e6196d9104066
---
diff --git a/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h b/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h
index e34514b..74e9d0d 100644
--- a/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h
+++ b/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h
@@ -62,7 +62,7 @@
public:
explicit QuicStreamSendBuffer(QuicBufferAllocator* allocator);
QuicStreamSendBuffer(const QuicStreamSendBuffer& other) = delete;
- QuicStreamSendBuffer(QuicStreamSendBuffer&& other) = delete;
+ QuicStreamSendBuffer(QuicStreamSendBuffer&& other) = default;
~QuicStreamSendBuffer();
// Save |data_length| of data starts at |iov_offset| in |iov| to send buffer.

View File

@ -0,0 +1,44 @@
diff -up chromium-80.0.3987.106/chrome/browser/search/background/ntp_backgrounds.h.missing-cstddef chromium-80.0.3987.106/chrome/browser/search/background/ntp_backgrounds.h
--- chromium-80.0.3987.106/chrome/browser/search/background/ntp_backgrounds.h.missing-cstddef 2020-02-18 08:42:38.088243182 -0500
+++ chromium-80.0.3987.106/chrome/browser/search/background/ntp_backgrounds.h 2020-02-18 08:42:59.679782858 -0500
@@ -6,6 +6,7 @@
#define CHROME_BROWSER_SEARCH_BACKGROUND_NTP_BACKGROUNDS_H_
#include <array>
+#include <cstddef>
class GURL;
diff -up chromium-80.0.3987.106/media/cdm/supported_cdm_versions.h.missing-cstddef chromium-80.0.3987.106/media/cdm/supported_cdm_versions.h
--- chromium-80.0.3987.106/media/cdm/supported_cdm_versions.h.missing-cstddef 2020-02-17 16:26:51.661246220 -0500
+++ chromium-80.0.3987.106/media/cdm/supported_cdm_versions.h 2020-02-17 16:26:51.662246200 -0500
@@ -6,6 +6,7 @@
#define MEDIA_CDM_SUPPORTED_CDM_VERSIONS_H_
#include <array>
+#include <cstddef>
#include "media/base/media_export.h"
#include "media/cdm/api/content_decryption_module.h"
diff -up chromium-80.0.3987.106/third_party/angle/include/platform/Platform.h.missing-cstddef chromium-80.0.3987.106/third_party/angle/include/platform/Platform.h
--- chromium-80.0.3987.106/third_party/angle/include/platform/Platform.h.missing-cstddef 2020-02-17 16:26:07.433130572 -0500
+++ chromium-80.0.3987.106/third_party/angle/include/platform/Platform.h 2020-02-17 16:26:07.434130552 -0500
@@ -11,6 +11,7 @@
#include <stdint.h>
#include <array>
+#include <cstddef>
#define EGL_PLATFORM_ANGLE_PLATFORM_METHODS_ANGLEX 0x3482
diff -up chromium-80.0.3987.106/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h.missing-cstddef chromium-80.0.3987.106/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
--- chromium-80.0.3987.106/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h.missing-cstddef 2020-02-17 16:23:41.385050827 -0500
+++ chromium-80.0.3987.106/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h 2020-02-17 16:23:41.368051167 -0500
@@ -12,6 +12,7 @@
#define MODULES_AUDIO_PROCESSING_AEC3_CLOCKDRIFT_DETECTOR_H_
#include <array>
+#include <cstddef>
namespace webrtc {

View File

@ -0,0 +1,34 @@
diff -up chromium-80.0.3987.106/third_party/webrtc/audio/utility/channel_mixer.cc.missing-cstring chromium-80.0.3987.106/third_party/webrtc/audio/utility/channel_mixer.cc
--- chromium-80.0.3987.106/third_party/webrtc/audio/utility/channel_mixer.cc.missing-cstring 2020-02-21 13:19:47.077683105 -0500
+++ chromium-80.0.3987.106/third_party/webrtc/audio/utility/channel_mixer.cc 2020-02-21 13:19:47.077683105 -0500
@@ -8,6 +8,8 @@
* be found in the AUTHORS file in the root of the source tree.
*/
+#include <cstring>
+
#include "audio/utility/channel_mixer.h"
#include "audio/utility/channel_mixing_matrix.h"
diff -up chromium-80.0.3987.106/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc.missing-cstring chromium-80.0.3987.106/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc
--- chromium-80.0.3987.106/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc.missing-cstring 2020-02-21 13:19:48.171659179 -0500
+++ chromium-80.0.3987.106/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc 2020-02-21 13:19:48.174659113 -0500
@@ -17,6 +17,7 @@
#include <spa/param/video/raw-utils.h>
#include <spa/support/type-map.h>
+#include <cstring>
#include <memory>
#include <utility>
diff -up chromium-80.0.3987.106/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc.missing-cstring chromium-80.0.3987.106/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc
--- chromium-80.0.3987.106/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc.missing-cstring 2020-02-21 13:30:09.609068057 -0500
+++ chromium-80.0.3987.106/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc 2020-02-21 13:30:23.791757875 -0500
@@ -10,6 +10,7 @@
#include "modules/video_coding/utility/ivf_file_reader.h"
+#include <cstring>
#include <string>
#include <vector>

View File

@ -0,0 +1,23 @@
diff -up chromium-80.0.3987.122/media/gpu/vaapi/BUILD.gn.i686permissive chromium-80.0.3987.122/media/gpu/vaapi/BUILD.gn
--- chromium-80.0.3987.122/media/gpu/vaapi/BUILD.gn.i686permissive 2020-02-27 11:58:10.534875341 -0500
+++ chromium-80.0.3987.122/media/gpu/vaapi/BUILD.gn 2020-02-27 11:58:17.544736535 -0500
@@ -13,6 +13,10 @@ import("//ui/ozone/ozone.gni")
assert(is_linux)
assert(use_vaapi)
+config("vaapi_permissive") {
+ cflags = [ "-fpermissive" ]
+}
+
generate_stubs("libva_stubs") {
extra_header = "va_stub_header.fragment"
sigs = [ "va.sigs" ]
@@ -120,6 +124,8 @@ source_set("vaapi") {
]
}
+ configs += [ ":vaapi_permissive" ]
+
if (use_x11) {
configs += [ "//build/config/linux:x11" ]
deps += [ "//ui/gfx/x" ]

View File

@ -0,0 +1,201 @@
diff -up chromium-80.0.3987.132/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-80.0.3987.132/chrome/common/media_router/media_sink.cc
--- chromium-80.0.3987.132/chrome/common/media_router/media_sink.cc.el7-noexcept 2020-03-03 13:53:03.000000000 -0500
+++ chromium-80.0.3987.132/chrome/common/media_router/media_sink.cc 2020-03-11 10:47:13.352162096 -0400
@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
provider_id_(provider_id) {}
MediaSink::MediaSink(const MediaSink& other) = default;
-MediaSink::MediaSink(MediaSink&& other) noexcept = default;
+MediaSink::MediaSink(MediaSink&& other) = default;
MediaSink::MediaSink() = default;
MediaSink::~MediaSink() = default;
MediaSink& MediaSink::operator=(const MediaSink& other) = default;
-MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
+MediaSink& MediaSink::operator=(MediaSink&& other) = default;
bool MediaSink::IsMaybeCloudSink() const {
switch (icon_type_) {
diff -up chromium-80.0.3987.132/components/history/core/browser/history_types.cc.el7-noexcept chromium-80.0.3987.132/components/history/core/browser/history_types.cc
--- chromium-80.0.3987.132/components/history/core/browser/history_types.cc.el7-noexcept 2020-03-03 13:53:53.000000000 -0500
+++ chromium-80.0.3987.132/components/history/core/browser/history_types.cc 2020-03-11 10:47:13.352162096 -0400
@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
Swap(&other);
}
-QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
+QueryResults& QueryResults::operator=(QueryResults&& other) {
Swap(&other);
return *this;
}
@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
-QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
+QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
// MostVisitedURL --------------------------------------------------------------
diff -up chromium-80.0.3987.132/components/history/core/browser/history_types.h.el7-noexcept chromium-80.0.3987.132/components/history/core/browser/history_types.h
--- chromium-80.0.3987.132/components/history/core/browser/history_types.h.el7-noexcept 2020-03-03 13:53:53.000000000 -0500
+++ chromium-80.0.3987.132/components/history/core/browser/history_types.h 2020-03-11 10:47:13.352162096 -0400
@@ -141,7 +141,7 @@ class QueryResults {
~QueryResults();
QueryResults(QueryResults&& other) noexcept;
- QueryResults& operator=(QueryResults&& other) noexcept;
+ QueryResults& operator=(QueryResults&& other);
void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
bool reached_beginning() { return reached_beginning_; }
@@ -276,7 +276,7 @@ struct QueryURLResult {
QueryURLResult(const QueryURLResult&);
QueryURLResult(QueryURLResult&&) noexcept;
QueryURLResult& operator=(const QueryURLResult&);
- QueryURLResult& operator=(QueryURLResult&&) noexcept;
+ QueryURLResult& operator=(QueryURLResult&&);
~QueryURLResult();
// Indicates whether the call to HistoryBackend::QueryURL was successfull
diff -up chromium-80.0.3987.132/components/history/core/browser/url_row.cc.el7-noexcept chromium-80.0.3987.132/components/history/core/browser/url_row.cc
--- chromium-80.0.3987.132/components/history/core/browser/url_row.cc.el7-noexcept 2020-03-03 13:53:05.000000000 -0500
+++ chromium-80.0.3987.132/components/history/core/browser/url_row.cc 2020-03-11 10:47:13.352162096 -0400
@@ -26,7 +26,7 @@ URLRow::~URLRow() {
}
URLRow& URLRow::operator=(const URLRow& other) = default;
-URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
+URLRow& URLRow::operator=(URLRow&& other) = default;
void URLRow::Swap(URLRow* other) {
std::swap(id_, other->id_);
diff -up chromium-80.0.3987.132/components/omnibox/browser/suggestion_answer.cc.el7-noexcept chromium-80.0.3987.132/components/omnibox/browser/suggestion_answer.cc
--- chromium-80.0.3987.132/components/omnibox/browser/suggestion_answer.cc.el7-noexcept 2020-03-03 13:53:06.000000000 -0500
+++ chromium-80.0.3987.132/components/omnibox/browser/suggestion_answer.cc 2020-03-11 10:47:13.352162096 -0400
@@ -60,7 +60,7 @@ SuggestionAnswer::TextField::TextField(T
SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
const TextField&) = default;
SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
- TextField&&) noexcept = default;
+ TextField&&) = default;
// static
bool SuggestionAnswer::TextField::ParseTextField(const base::Value& field_json,
diff -up chromium-80.0.3987.132/components/policy/core/common/policy_map.cc.el7-noexcept chromium-80.0.3987.132/components/policy/core/common/policy_map.cc
--- chromium-80.0.3987.132/components/policy/core/common/policy_map.cc.el7-noexcept 2020-03-03 13:53:53.000000000 -0500
+++ chromium-80.0.3987.132/components/policy/core/common/policy_map.cc 2020-03-11 10:47:13.353162076 -0400
@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
PolicyMap::Entry::~Entry() = default;
PolicyMap::Entry::Entry(Entry&&) noexcept = default;
-PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
+PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
Entry copy(level, scope, source, value ? value->CreateDeepCopy() : nullptr,
diff -up chromium-80.0.3987.132/components/search_provider_logos/logo_common.cc.el7-noexcept chromium-80.0.3987.132/components/search_provider_logos/logo_common.cc
--- chromium-80.0.3987.132/components/search_provider_logos/logo_common.cc.el7-noexcept 2020-03-03 13:53:06.000000000 -0500
+++ chromium-80.0.3987.132/components/search_provider_logos/logo_common.cc 2020-03-11 10:47:13.353162076 -0400
@@ -14,14 +14,14 @@ LogoMetadata::LogoMetadata() = default;
LogoMetadata::LogoMetadata(const LogoMetadata&) = default;
LogoMetadata::LogoMetadata(LogoMetadata&&) noexcept = default;
LogoMetadata& LogoMetadata::operator=(const LogoMetadata&) = default;
-LogoMetadata& LogoMetadata::operator=(LogoMetadata&&) noexcept = default;
+LogoMetadata& LogoMetadata::operator=(LogoMetadata&&) = default;
LogoMetadata::~LogoMetadata() = default;
EncodedLogo::EncodedLogo() = default;
EncodedLogo::EncodedLogo(const EncodedLogo&) = default;
EncodedLogo::EncodedLogo(EncodedLogo&&) noexcept = default;
EncodedLogo& EncodedLogo::operator=(const EncodedLogo&) = default;
-EncodedLogo& EncodedLogo::operator=(EncodedLogo&&) noexcept = default;
+EncodedLogo& EncodedLogo::operator=(EncodedLogo&&) = default;
EncodedLogo::~EncodedLogo() = default;
Logo::Logo() = default;
@@ -29,7 +29,7 @@ Logo::~Logo() = default;
LogoCallbacks::LogoCallbacks() = default;
LogoCallbacks::LogoCallbacks(LogoCallbacks&&) noexcept = default;
-LogoCallbacks& LogoCallbacks::operator=(LogoCallbacks&&) noexcept = default;
+LogoCallbacks& LogoCallbacks::operator=(LogoCallbacks&&) = default;
LogoCallbacks::~LogoCallbacks() = default;
} // namespace search_provider_logos
diff -up chromium-80.0.3987.132/components/signin/public/identity_manager/account_info.cc.el7-noexcept chromium-80.0.3987.132/components/signin/public/identity_manager/account_info.cc
--- chromium-80.0.3987.132/components/signin/public/identity_manager/account_info.cc.el7-noexcept 2020-03-03 13:53:54.000000000 -0500
+++ chromium-80.0.3987.132/components/signin/public/identity_manager/account_info.cc 2020-03-11 10:47:13.353162076 -0400
@@ -58,7 +58,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
default;
-CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
+CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
default;
bool CoreAccountInfo::IsEmpty() const {
@@ -75,7 +75,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
-AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
+AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
bool AccountInfo::IsEmpty() const {
return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
diff -up chromium-80.0.3987.132/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-80.0.3987.132/google_apis/gaia/core_account_id.cc
--- chromium-80.0.3987.132/google_apis/gaia/core_account_id.cc.el7-noexcept 2020-03-11 10:47:13.684155381 -0400
+++ chromium-80.0.3987.132/google_apis/gaia/core_account_id.cc 2020-03-11 10:48:18.241848293 -0400
@@ -24,7 +24,7 @@ CoreAccountId::~CoreAccountId() = defaul
CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
+CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
// static
CoreAccountId CoreAccountId::FromGaiaId(const std::string& gaia_id) {
@@ -82,4 +82,4 @@ std::vector<std::string> ToStringList(
for (const auto& account_id : account_ids)
account_ids_string.push_back(account_id.ToString());
return account_ids_string;
-}
\ No newline at end of file
+}
diff -up chromium-80.0.3987.132/google_apis/gaia/core_account_id.h.el7-noexcept chromium-80.0.3987.132/google_apis/gaia/core_account_id.h
--- chromium-80.0.3987.132/google_apis/gaia/core_account_id.h.el7-noexcept 2020-03-11 10:47:13.686155340 -0400
+++ chromium-80.0.3987.132/google_apis/gaia/core_account_id.h 2020-03-11 10:48:47.857248531 -0400
@@ -30,7 +30,7 @@ struct CoreAccountId {
~CoreAccountId();
CoreAccountId& operator=(const CoreAccountId&);
- CoreAccountId& operator=(CoreAccountId&&) noexcept;
+ CoreAccountId& operator=(CoreAccountId&&);
// Checks if the account is valid or not.
bool empty() const;
diff -up chromium-80.0.3987.132/gpu/config/gpu_info.cc.el7-noexcept chromium-80.0.3987.132/gpu/config/gpu_info.cc
--- chromium-80.0.3987.132/gpu/config/gpu_info.cc.el7-noexcept 2020-03-03 13:53:55.000000000 -0500
+++ chromium-80.0.3987.132/gpu/config/gpu_info.cc 2020-03-11 10:47:13.689155280 -0400
@@ -173,7 +173,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
const GPUInfo::GPUDevice& other) = default;
GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
- GPUInfo::GPUDevice&& other) noexcept = default;
+ GPUInfo::GPUDevice&& other) = default;
GPUInfo::GPUInfo()
: optimus(false),
diff -up chromium-80.0.3987.132/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept chromium-80.0.3987.132/third_party/openscreen/src/osp/public/service_info.h
--- chromium-80.0.3987.132/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept 2020-03-03 13:55:28.000000000 -0500
+++ chromium-80.0.3987.132/third_party/openscreen/src/osp/public/service_info.h 2020-03-11 10:47:13.690155259 -0400
@@ -22,7 +22,7 @@ struct ServiceInfo {
ServiceInfo(ServiceInfo&&) MAYBE_NOEXCEPT = default;
ServiceInfo(const ServiceInfo&) MAYBE_NOEXCEPT = default;
- ServiceInfo& operator=(ServiceInfo&&) MAYBE_NOEXCEPT = default;
+ ServiceInfo& operator=(ServiceInfo&&) = default;
ServiceInfo& operator=(const ServiceInfo&) MAYBE_NOEXCEPT = default;
bool operator==(const ServiceInfo& other) const;

View File

@ -0,0 +1,190 @@
diff -up chromium-80.0.3987.87/base/containers/flat_tree.h.c17 chromium-80.0.3987.87/base/containers/flat_tree.h
--- chromium-80.0.3987.87/base/containers/flat_tree.h.c17 2020-02-10 10:48:05.982500272 -0500
+++ chromium-80.0.3987.87/base/containers/flat_tree.h 2020-02-10 11:04:42.148507892 -0500
@@ -776,7 +776,11 @@ template <class Key, class Value, class
template <typename K>
auto flat_tree<Key, Value, GetKeyFromValue, KeyCompare>::find(const K& key)
-> iterator {
+#ifdef __cpp_lib_as_const
+ return const_cast_it(std::as_const(*this).find(key));
+#else
return const_cast_it(as_const(*this).find(key));
+#endif
}
template <class Key, class Value, class GetKeyFromValue, class KeyCompare>
@@ -799,7 +803,11 @@ template <class Key, class Value, class
template <typename K>
auto flat_tree<Key, Value, GetKeyFromValue, KeyCompare>::equal_range(
const K& key) -> std::pair<iterator, iterator> {
+#ifdef __cpp_lib_as_const
+ auto res = std::as_const(*this).equal_range(key);
+#else
auto res = as_const(*this).equal_range(key);
+#endif
return {const_cast_it(res.first), const_cast_it(res.second)};
}
@@ -820,7 +828,11 @@ template <class Key, class Value, class
template <typename K>
auto flat_tree<Key, Value, GetKeyFromValue, KeyCompare>::lower_bound(
const K& key) -> iterator {
+#ifdef __cpp_lib_as_const
+ return const_cast_it(std::as_const(*this).lower_bound(key));
+#else
return const_cast_it(as_const(*this).lower_bound(key));
+#endif
}
template <class Key, class Value, class GetKeyFromValue, class KeyCompare>
@@ -841,7 +853,11 @@ template <class Key, class Value, class
template <typename K>
auto flat_tree<Key, Value, GetKeyFromValue, KeyCompare>::upper_bound(
const K& key) -> iterator {
+#ifdef __cpp_lib_as_const
+ return const_cast_it(std::as_const(*this).upper_bound(key));
+#else
return const_cast_it(as_const(*this).upper_bound(key));
+#endif
}
template <class Key, class Value, class GetKeyFromValue, class KeyCompare>
diff -up chromium-80.0.3987.106/third_party/webrtc/BUILD.gn.c17fix chromium-80.0.3987.106/third_party/webrtc/BUILD.gn
--- chromium-80.0.3987.106/third_party/webrtc/BUILD.gn.c17fix 2020-02-20 15:00:23.439563056 -0500
+++ chromium-80.0.3987.106/third_party/webrtc/BUILD.gn 2020-02-20 15:01:36.282355645 -0500
@@ -237,6 +237,10 @@ config("common_config") {
cflags_objc = []
defines = []
+ if (!is_clang) {
+ cflags_cc += [ "-std=c++17" ]
+ }
+
if (rtc_enable_protobuf) {
defines += [ "WEBRTC_ENABLE_PROTOBUF=1" ]
} else {
diff -up chromium-80.0.3987.106/third_party/abseil-cpp/BUILD.gn.c17fix chromium-80.0.3987.106/third_party/abseil-cpp/BUILD.gn
--- chromium-80.0.3987.106/third_party/abseil-cpp/BUILD.gn.c17fix 2020-02-21 15:12:14.413937754 -0500
+++ chromium-80.0.3987.106/third_party/abseil-cpp/BUILD.gn 2020-02-21 15:12:59.128967149 -0500
@@ -46,6 +46,10 @@ config("absl_default_cflags_cc") {
cflags_cc += [ "-Wbitfield-enum-conversion" ]
}
}
+ if (!is_clang) {
+ cflags_cc = [ "-std=c++17" ]
+ }
+
if (is_win) {
cflags_cc += [
"/wd4005", # macro-redefinition
diff -up chromium-80.0.3987.106/third_party/openscreen/src/tools/cddl/BUILD.gn.c17fix chromium-80.0.3987.106/third_party/openscreen/src/tools/cddl/BUILD.gn
--- chromium-80.0.3987.106/third_party/openscreen/src/tools/cddl/BUILD.gn.c17fix 2020-02-21 15:35:56.269180510 -0500
+++ chromium-80.0.3987.106/third_party/openscreen/src/tools/cddl/BUILD.gn 2020-02-21 15:42:12.718900742 -0500
@@ -22,6 +22,10 @@ if (current_toolchain == host_toolchain)
"../../third_party/abseil",
]
+ if (!is_clang) {
+ cflags_cc = [ "-std=c++17" ]
+ }
+
configs += [ "../../build:openscreen_include_dirs" ]
}
}
diff -up chromium-80.0.3987.106/build/config/compiler/BUILD.gn.c17hack chromium-80.0.3987.106/build/config/compiler/BUILD.gn
--- chromium-80.0.3987.106/build/config/compiler/BUILD.gn.c17hack 2020-02-21 16:09:22.871980103 -0500
+++ chromium-80.0.3987.106/build/config/compiler/BUILD.gn 2020-02-21 16:09:28.606856106 -0500
@@ -570,7 +570,7 @@ config("compiler") {
if (cxx11_override) {
cflags_cc += [ "-std=c++11" ]
} else {
- cflags_cc += [ "-std=c++14" ]
+ cflags_cc += [ "-std=c++17" ]
}
}
diff -up chromium-80.0.3987.106/third_party/openscreen/src/build/config/BUILD.gn.c17fix chromium-80.0.3987.106/third_party/openscreen/src/build/config/BUILD.gn
--- chromium-80.0.3987.106/third_party/openscreen/src/build/config/BUILD.gn.c17fix 2020-02-24 08:55:52.674819783 -0500
+++ chromium-80.0.3987.106/third_party/openscreen/src/build/config/BUILD.gn 2020-02-24 08:56:08.665466317 -0500
@@ -67,8 +67,8 @@ config("openscreen_code") {
"-fno-strict-aliasing", # See http://crbug.com/32204
]
- cflags_cc = [ "-std=c++14" ]
- cflags_objcc = [ "-std=c++14" ]
+ cflags_cc = [ "-std=c++17" ]
+ cflags_objcc = [ "-std=c++17" ]
ldflags = [ "-Werror" ]
diff -up chromium-80.0.3987.106/build/config/compiler/BUILD.gn.c17fix chromium-80.0.3987.106/build/config/compiler/BUILD.gn
--- chromium-80.0.3987.106/build/config/compiler/BUILD.gn.c17fix 2020-02-24 09:39:14.659536642 -0500
+++ chromium-80.0.3987.106/build/config/compiler/BUILD.gn 2020-02-24 09:39:23.098366657 -0500
@@ -553,7 +553,7 @@ config("compiler") {
# Override Chromium's default for projects that wish to stay on C++11.
cflags_cc += [ "-std=${standard_prefix}++11" ]
} else {
- cflags_cc += [ "-std=${standard_prefix}++14" ]
+ cflags_cc += [ "-std=${standard_prefix}++17" ]
}
} else if (!is_win && !is_nacl) {
if (target_os == "android") {
diff -up chromium-80.0.3987.106/third_party/openscreen/src/platform/api/task_runner.h.spot chromium-80.0.3987.106/third_party/openscreen/src/platform/api/task_runner.h
--- chromium-80.0.3987.106/third_party/openscreen/src/platform/api/task_runner.h.spot 2020-02-24 10:56:54.645126949 -0500
+++ chromium-80.0.3987.106/third_party/openscreen/src/platform/api/task_runner.h 2020-02-24 10:57:26.788407144 -0500
@@ -22,7 +22,7 @@ namespace platform {
// that A shall run before B.
class TaskRunner {
public:
- using Task = std::packaged_task<void() noexcept>;
+ using Task = std::packaged_task<void()>;
virtual ~TaskRunner() = default;
diff -up chromium-80.0.3987.106/base/containers/circular_deque.h.c17fix chromium-80.0.3987.106/base/containers/circular_deque.h
--- chromium-80.0.3987.106/base/containers/circular_deque.h.c17fix 2020-02-24 14:42:14.163076162 -0500
+++ chromium-80.0.3987.106/base/containers/circular_deque.h 2020-02-24 14:43:38.393120439 -0500
@@ -522,11 +522,19 @@ class circular_deque {
return buffer_[i - right_size];
}
value_type& at(size_type i) {
+#ifdef __cpp_lib_as_const
+ return const_cast<value_type&>(std::as_const(*this).at(i));
+#else
return const_cast<value_type&>(as_const(*this).at(i));
+#endif
}
value_type& operator[](size_type i) {
+#ifdef __cpp_lib_as_const
+ return const_cast<value_type&>(std::as_const(*this)[i]);
+#else
return const_cast<value_type&>(as_const(*this)[i]);
+#endif
}
const value_type& operator[](size_type i) const { return at(i); }
diff -up chromium-80.0.3987.106/device/bluetooth/bluetooth_adapter.cc.c17fix chromium-80.0.3987.106/device/bluetooth/bluetooth_adapter.cc
--- chromium-80.0.3987.106/device/bluetooth/bluetooth_adapter.cc.c17fix 2020-02-24 16:09:58.810502665 -0500
+++ chromium-80.0.3987.106/device/bluetooth/bluetooth_adapter.cc 2020-02-24 16:10:35.484705843 -0500
@@ -638,7 +638,7 @@ void BluetoothAdapter::RecordBluetoothDi
}
// static
-constexpr base::TimeDelta BluetoothAdapter::timeoutSec =
+const extern base::TimeDelta BluetoothAdapter::timeoutSec =
base::TimeDelta::FromSeconds(180);
} // namespace device
diff -up chromium-80.0.3987.122/content/browser/web_package/signed_exchange_prologue.cc.c17fix chromium-80.0.3987.122/content/browser/web_package/signed_exchange_prologue.cc
--- chromium-80.0.3987.122/content/browser/web_package/signed_exchange_prologue.cc.c17fix 2020-02-27 13:48:15.815885662 -0500
+++ chromium-80.0.3987.122/content/browser/web_package/signed_exchange_prologue.cc 2020-02-27 13:48:24.146711682 -0500
@@ -30,7 +30,7 @@ constexpr size_t kMaximumCBORHeaderLengt
namespace signed_exchange_prologue {
-constexpr size_t BeforeFallbackUrl::kEncodedSizeInBytes =
+const extern size_t BeforeFallbackUrl::kEncodedSizeInBytes =
sizeof(kSignedExchangeMagic) + kFallbackUrlLengthFieldSizeInBytes;
size_t Parse2BytesEncodedLength(base::span<const uint8_t> input) {

View File

@ -0,0 +1,12 @@
diff -up chromium-80.0.3987.87/third_party/webrtc/modules/desktop_capture/BUILD.gn.pipewire03 chromium-80.0.3987.87/third_party/webrtc/modules/desktop_capture/BUILD.gn
--- chromium-80.0.3987.87/third_party/webrtc/modules/desktop_capture/BUILD.gn.pipewire03 2020-02-11 13:12:07.006990450 -0500
+++ chromium-80.0.3987.87/third_party/webrtc/modules/desktop_capture/BUILD.gn 2020-02-11 13:12:16.294795251 -0500
@@ -190,7 +190,7 @@ if (is_linux) {
if (rtc_link_pipewire) {
pkg_config("pipewire") {
- packages = [ "libpipewire-0.2" ]
+ packages = [ "libpipewire-0.3", "libspa-0.2" ]
}
} else {
# When libpipewire is not directly linked, use stubs to allow for dlopening of

View File

@ -0,0 +1,22 @@
diff -up chromium-80.0.3987.87/media/cdm/supported_cdm_versions.h.missing-cstddef chromium-80.0.3987.87/media/cdm/supported_cdm_versions.h
--- chromium-80.0.3987.87/media/cdm/supported_cdm_versions.h.missing-cstddef 2020-02-10 12:07:42.863507440 -0500
+++ chromium-80.0.3987.87/media/cdm/supported_cdm_versions.h 2020-02-10 12:07:53.807364746 -0500
@@ -6,6 +6,7 @@
#define MEDIA_CDM_SUPPORTED_CDM_VERSIONS_H_
#include <array>
+#include <cstddef>
#include "media/base/media_export.h"
#include "media/cdm/api/content_decryption_module.h"
diff -up chromium-80.0.3987.87/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h.missing-cstddef chromium-80.0.3987.87/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
--- chromium-80.0.3987.87/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h.missing-cstddef 2020-02-10 11:11:11.733934021 -0500
+++ chromium-80.0.3987.87/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h 2020-02-10 11:11:11.724934173 -0500
@@ -12,6 +12,7 @@
#define MODULES_AUDIO_PROCESSING_AEC3_CLOCKDRIFT_DETECTOR_H_
#include <array>
+#include <cstddef>
namespace webrtc {

View File

@ -0,0 +1,67 @@
diff -up chromium-80.0.3987.106/third_party/perfetto/include/perfetto/base/task_runner.h.missing-cstdint chromium-80.0.3987.106/third_party/perfetto/include/perfetto/base/task_runner.h
--- chromium-80.0.3987.106/third_party/perfetto/include/perfetto/base/task_runner.h.missing-cstdint 2020-02-21 12:29:43.393191877 -0500
+++ chromium-80.0.3987.106/third_party/perfetto/include/perfetto/base/task_runner.h 2020-02-21 12:29:43.393191877 -0500
@@ -17,6 +17,7 @@
#ifndef INCLUDE_PERFETTO_BASE_TASK_RUNNER_H_
#define INCLUDE_PERFETTO_BASE_TASK_RUNNER_H_
+#include <cstdint>
#include <functional>
#include "perfetto/base/export.h"
diff -up chromium-80.0.3987.106/third_party/webrtc/call/rtx_receive_stream.h.missing-cstdint chromium-80.0.3987.106/third_party/webrtc/call/rtx_receive_stream.h
--- chromium-80.0.3987.106/third_party/webrtc/call/rtx_receive_stream.h.missing-cstdint 2020-02-21 12:30:30.739332871 -0500
+++ chromium-80.0.3987.106/third_party/webrtc/call/rtx_receive_stream.h 2020-02-21 12:30:30.747332725 -0500
@@ -11,6 +11,7 @@
#ifndef CALL_RTX_RECEIVE_STREAM_H_
#define CALL_RTX_RECEIVE_STREAM_H_
+#include <cstdint>
#include <map>
#include "call/rtp_packet_sink_interface.h"
diff -up chromium-80.0.3987.106/third_party/webrtc/common_video/h264/pps_parser.h.missing-cstdint chromium-80.0.3987.106/third_party/webrtc/common_video/h264/pps_parser.h
--- chromium-80.0.3987.106/third_party/webrtc/common_video/h264/pps_parser.h.missing-cstdint 2020-02-21 12:30:31.564317903 -0500
+++ chromium-80.0.3987.106/third_party/webrtc/common_video/h264/pps_parser.h 2020-02-21 12:30:31.561317957 -0500
@@ -11,6 +11,7 @@
#ifndef COMMON_VIDEO_H264_PPS_PARSER_H_
#define COMMON_VIDEO_H264_PPS_PARSER_H_
+#include <cstdint>
#include "absl/types/optional.h"
namespace rtc {
diff -up chromium-80.0.3987.106/third_party/webrtc/common_video/h264/sps_parser.h.missing-cstdint chromium-80.0.3987.106/third_party/webrtc/common_video/h264/sps_parser.h
--- chromium-80.0.3987.106/third_party/webrtc/common_video/h264/sps_parser.h.missing-cstdint 2020-02-21 12:30:31.565317885 -0500
+++ chromium-80.0.3987.106/third_party/webrtc/common_video/h264/sps_parser.h 2020-02-21 12:30:31.565317885 -0500
@@ -11,6 +11,7 @@
#ifndef COMMON_VIDEO_H264_SPS_PARSER_H_
#define COMMON_VIDEO_H264_SPS_PARSER_H_
+#include <cstdint>
#include "absl/types/optional.h"
namespace rtc {
diff -up chromium-80.0.3987.106/third_party/webrtc/modules/include/module_common_types_public.h.missing-cstdint chromium-80.0.3987.106/third_party/webrtc/modules/include/module_common_types_public.h
--- chromium-80.0.3987.106/third_party/webrtc/modules/include/module_common_types_public.h.missing-cstdint 2020-02-21 12:52:16.946512744 -0500
+++ chromium-80.0.3987.106/third_party/webrtc/modules/include/module_common_types_public.h 2020-02-21 12:52:26.220312608 -0500
@@ -11,6 +11,7 @@
#ifndef MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
#define MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
+#include <cstdint>
#include <limits>
#include "absl/types/optional.h"
diff -up chromium-81.0.4044.92/ui/gfx/linux/drm_util_linux.h.missing-cstdint chromium-81.0.4044.92/ui/gfx/linux/drm_util_linux.h
--- chromium-81.0.4044.92/ui/gfx/linux/drm_util_linux.h.missing-cstdint 2020-04-13 15:33:24.879106867 -0400
+++ chromium-81.0.4044.92/ui/gfx/linux/drm_util_linux.h 2020-04-13 15:33:47.453689695 -0400
@@ -7,6 +7,8 @@
#include "ui/gfx/buffer_types.h"
+#include <cstdint>
+
namespace ui {
int GetFourCCFormatFromBufferFormat(gfx::BufferFormat format);

View File

@ -0,0 +1,11 @@
diff -up chromium-80.0.3987.87/base/trace_event/trace_event_memory_overhead.h.missing-string chromium-80.0.3987.87/base/trace_event/trace_event_memory_overhead.h
--- chromium-80.0.3987.87/base/trace_event/trace_event_memory_overhead.h.missing-string 2020-02-06 16:47:15.707676509 -0500
+++ chromium-80.0.3987.87/base/trace_event/trace_event_memory_overhead.h 2020-02-06 16:47:23.782504337 -0500
@@ -8,6 +8,7 @@
#include <stddef.h>
#include <stdint.h>
+#include <string>
#include <unordered_map>
#include "base/base_export.h"

View File

@ -0,0 +1,19 @@
diff --git a/ui/views/layout/layout_types.h b/ui/views/layout/layout_types.h
index 8f9dbf4..ba118b9 100644
--- a/ui/views/layout/layout_types.h
+++ b/ui/views/layout/layout_types.h
@@ -45,12 +45,12 @@ class VIEWS_EXPORT SizeBounds {
~SizeBounds() = default;
constexpr const base::Optional<int>& width() const { return width_; }
- constexpr void set_width(base::Optional<int> width) {
+ inline void set_width(base::Optional<int> width) {
width_ = std::move(width);
}
constexpr const base::Optional<int>& height() const { return height_; }
- constexpr void set_height(base::Optional<int> height) {
+ inline void set_height(base::Optional<int> height) {
height_ = std::move(height);
}

View File

@ -0,0 +1,13 @@
diff --git a/components/paint_preview/browser/paint_preview_client.cc b/components/paint_preview/browser/paint_preview_client.cc
index 38ab6be..dccf07f 100644
--- a/components/paint_preview/browser/paint_preview_client.cc
+++ b/components/paint_preview/browser/paint_preview_client.cc
@@ -78,7 +78,7 @@ PaintPreviewClient::PaintPreviewData::PaintPreviewData() = default;
PaintPreviewClient::PaintPreviewData::~PaintPreviewData() = default;
PaintPreviewClient::PaintPreviewData& PaintPreviewClient::PaintPreviewData::
-operator=(PaintPreviewData&& rhs) noexcept = default;
+operator=(PaintPreviewData&& rhs) = default;
PaintPreviewClient::PaintPreviewData::PaintPreviewData(
PaintPreviewData&& other) noexcept = default;

View File

@ -0,0 +1,52 @@
From 98e343ab369e4262511b5fce547728e3e5eefba8 Mon Sep 17 00:00:00 2001
From: Hidehiko Abe <hidehiko@chromium.org>
Date: Fri, 31 Jan 2020 21:27:40 +0000
Subject: [PATCH] Use same condition for field declaration and its use.
cros_supported_configs_ is defined iff OS_CHROMEOS is defined.
However, it is used iff USE_CHROMEOS_MEDIA_ACCELERATION regardless of
OS_CHROMEOS.
This CL aligns the conditions.
BUG=1047719
TEST=Build locally.
Change-Id: I08fe8532c1778ff8c77c7a9d9cdd96ff2a83272f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2030924
Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
Reviewed-by: Miguel Casas <mcasas@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#737459}
---
--- a/media/mojo/services/gpu_mojo_media_client.cc
+++ b/media/mojo/services/gpu_mojo_media_client.cc
@@ -157,7 +157,7 @@ GpuMojoMediaClient::GetSupportedVideoDec
supported_config_map[VideoDecoderImplementation::kAlternate] =
*d3d11_supported_configs_;
-#elif BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
+#elif defined(OS_CHROMEOS) && BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
if (base::FeatureList::IsEnabled(kChromeosVideoDecoder)) {
if (!cros_supported_configs_) {
cros_supported_configs_ =
--- a/media/mojo/services/gpu_mojo_media_client.h
+++ b/media/mojo/services/gpu_mojo_media_client.h
@@ -74,16 +74,13 @@ class GpuMojoMediaClient : public MojoMe
#if defined(OS_CHROMEOS) && BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
// Indirectly owned by GpuChildThread.
gpu::GpuMemoryBufferFactory* const gpu_memory_buffer_factory_;
+ base::Optional<SupportedVideoDecoderConfigs> cros_supported_configs_;
#endif // defined(OS_CHROMEOS) && BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
CdmProxyFactoryCB cdm_proxy_factory_cb_;
#if defined(OS_WIN)
base::Optional<SupportedVideoDecoderConfigs> d3d11_supported_configs_;
#endif // defined(OS_WIN)
-#if defined(OS_CHROMEOS)
- base::Optional<SupportedVideoDecoderConfigs> cros_supported_configs_;
-#endif // defined(OS_CHROMEOS)
-
DISALLOW_COPY_AND_ASSIGN(GpuMojoMediaClient);
};

View File

@ -0,0 +1,31 @@
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}
---
--- a/media/gpu/vaapi/vaapi_picture_tfp.cc
+++ b/media/gpu/vaapi/vaapi_picture_tfp.cc
@@ -57,7 +57,7 @@ bool VaapiTFPPicture::Initialize() {
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";

View File

@ -0,0 +1,13 @@
diff -up chromium-81.0.4044.92/base/test/BUILD.gn.nofontconfigcache chromium-81.0.4044.92/base/test/BUILD.gn
--- chromium-81.0.4044.92/base/test/BUILD.gn.nofontconfigcache 2020-04-13 12:06:59.233796815 -0400
+++ chromium-81.0.4044.92/base/test/BUILD.gn 2020-04-13 12:20:16.302174851 -0400
@@ -245,9 +245,6 @@ static_library("test_support") {
if (is_linux) {
public_deps += [ ":fontconfig_util_linux" ]
data_deps = [ "//third_party/test_fonts" ]
- if (current_toolchain == host_toolchain) {
- data_deps += [ ":do_generate_fontconfig_caches" ]
- }
}
if (is_ios) {

View File

@ -0,0 +1,36 @@
diff -up chromium-81.0.4044.113/media/gpu/vaapi/vaapi_video_decode_accelerator.cc.vaapi-intel-fix chromium-81.0.4044.113/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
--- chromium-81.0.4044.113/media/gpu/vaapi/vaapi_video_decode_accelerator.cc.vaapi-intel-fix 2020-04-15 19:25:53.000000000 -0400
+++ chromium-81.0.4044.113/media/gpu/vaapi/vaapi_video_decode_accelerator.cc 2020-04-16 14:41:41.303904954 -0400
@@ -64,6 +64,7 @@ void ReportToUMA(VAVDADecoderFailure fai
VAVDA_DECODER_FAILURES_MAX + 1);
}
+#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
// Returns true if the CPU is an Intel Gemini Lake or later (including Kaby
// Lake) Cpu platform id's are referenced from the following file in kernel
// source arch/x86/include/asm/intel-family.h
@@ -76,6 +77,7 @@ bool IsGeminiLakeOrLater() {
cpuid.model() >= kGeminiLakeModelId;
return is_geminilake_or_later;
}
+#endif
} // namespace
@@ -1171,6 +1173,8 @@ VaapiVideoDecodeAccelerator::DecideBuffe
if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT)
return BufferAllocationMode::kNormal;
+#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
+ // Move this to chromeOs only as it is causing problem in some intel linux drivers
// On Gemini Lake, Kaby Lake and later we can pass to libva the client's
// PictureBuffers to decode onto, which skips the use of the Vpp unit and its
// associated format reconciliation copy, avoiding all internal buffer
@@ -1187,6 +1191,7 @@ VaapiVideoDecodeAccelerator::DecideBuffe
num_extra_pics_ = 3;
return BufferAllocationMode::kNone;
}
+#endif
// If we're here, we have to use the Vpp unit and allocate buffers for
// |decoder_|; usually we'd have to allocate the |decoder_|s

View File

@ -0,0 +1,11 @@
diff -up chromium-81.0.4044.92/base/test/icu_test_util.h.missing-memory chromium-81.0.4044.92/base/test/icu_test_util.h
--- chromium-81.0.4044.92/base/test/icu_test_util.h.missing-memory 2020-04-15 07:52:11.239815139 -0400
+++ chromium-81.0.4044.92/base/test/icu_test_util.h 2020-04-15 07:52:19.982632306 -0400
@@ -5,6 +5,7 @@
#ifndef BASE_TEST_ICU_TEST_UTIL_H_
#define BASE_TEST_ICU_TEST_UTIL_H_
+#include <memory>
#include <string>
#include "base/macros.h"

View File

@ -0,0 +1,79 @@
diff -up chromium-81.0.4044.92/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-81.0.4044.92/chrome/common/safe_browsing/BUILD.gn
--- chromium-81.0.4044.92/chrome/common/safe_browsing/BUILD.gn.nounrar 2020-04-13 12:01:29.703428516 -0400
+++ chromium-81.0.4044.92/chrome/common/safe_browsing/BUILD.gn 2020-04-13 12:03:33.653310203 -0400
@@ -72,39 +72,6 @@ if (safe_browsing_mode == 1) {
public_deps = [ "//components/safe_browsing/core:csd_proto" ]
}
- source_set("rar_analyzer") {
- sources = [
- "rar_analyzer.cc",
- "rar_analyzer.h",
- ]
-
- deps = [
- ":archive_analyzer_results",
- ":download_type_util",
- ":file_type_policies",
- "//base",
- "//base:i18n",
- "//components/safe_browsing/core:features",
- "//third_party/unrar:unrar",
- ]
-
- defines = [
- "_FILE_OFFSET_BITS=64",
- "LARGEFILE_SOURCE",
- "RAR_SMP",
- "SILENT",
-
- # The following is set to disable certain macro definitions in the unrar
- # source code.
- "CHROMIUM_UNRAR",
-
- # Disables exceptions in unrar, replaces them with process termination.
- "UNRAR_NO_EXCEPTIONS",
- ]
-
- public_deps = [ "//components/safe_browsing/core:csd_proto" ]
- }
-
source_set("disk_image_type_sniffer_mac") {
sources = [
"disk_image_type_sniffer_mac.cc",
@@ -171,7 +138,6 @@ source_set("safe_browsing") {
":archive_analyzer_results",
":binary_feature_extractor",
":download_type_util",
- ":rar_analyzer",
"//components/safe_browsing/core:features",
]
diff -up chromium-81.0.4044.92/chrome/common/safe_browsing/DEPS.nounrar chromium-81.0.4044.92/chrome/common/safe_browsing/DEPS
--- chromium-81.0.4044.92/chrome/common/safe_browsing/DEPS.nounrar 2020-04-03 00:10:40.000000000 -0400
+++ chromium-81.0.4044.92/chrome/common/safe_browsing/DEPS 2020-04-13 12:01:29.703428516 -0400
@@ -1,6 +1,5 @@
include_rules = [
"+components/safe_browsing",
"+third_party/protobuf",
- "+third_party/unrar",
"+third_party/zlib",
]
diff -up chromium-81.0.4044.92/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-81.0.4044.92/chrome/services/file_util/safe_archive_analyzer.cc
--- chromium-81.0.4044.92/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2020-04-03 00:10:40.000000000 -0400
+++ chromium-81.0.4044.92/chrome/services/file_util/safe_archive_analyzer.cc 2020-04-13 12:01:29.703428516 -0400
@@ -46,10 +46,14 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
base::File temporary_file,
AnalyzeRarFileCallback callback) {
+#if 0
DCHECK(rar_file.IsValid());
safe_browsing::ArchiveAnalyzerResults results;
safe_browsing::rar_analyzer::AnalyzeRarFile(
std::move(rar_file), std::move(temporary_file), &results);
std::move(callback).Run(results);
+#else
+ NOTREACHED();
+#endif
}

View File

@ -1,15 +0,0 @@
diff -up chromium-85.0.4183.83/ui/gfx/linux/drm_util_linux.cc.el7-old-libdrm chromium-85.0.4183.83/ui/gfx/linux/drm_util_linux.cc
--- chromium-85.0.4183.83/ui/gfx/linux/drm_util_linux.cc.el7-old-libdrm 2020-08-31 09:38:46.043993882 -0400
+++ chromium-85.0.4183.83/ui/gfx/linux/drm_util_linux.cc 2020-08-31 09:39:21.599906318 -0400
@@ -6,6 +6,11 @@
#include <drm_fourcc.h>
+// the libdrm in EL-7 is too old to have this define
+#ifndef DRM_FORMAT_P010
+#define DRM_FORMAT_P010 DRM_FORMAT_INVALID
+#endif
+
#include "base/notreached.h"
namespace ui {

View File

@ -1,15 +0,0 @@
diff -up chromium-91.0.4472.77/chrome/browser/first_run/first_run_internal_linux.cc.etc chromium-91.0.4472.77/chrome/browser/first_run/first_run_internal_linux.cc
--- chromium-91.0.4472.77/chrome/browser/first_run/first_run_internal_linux.cc.etc 2021-06-01 16:37:39.182531036 -0400
+++ chromium-91.0.4472.77/chrome/browser/first_run/first_run_internal_linux.cc 2021-06-01 16:39:31.590102809 -0400
@@ -20,9 +20,9 @@ bool IsOrganicFirstRun() {
base::FilePath InitialPrefsPath() {
// The standard location of the initial prefs is next to the chrome binary.
+ // ...but we patch it to use /etc/chromium
base::FilePath initial_prefs;
- if (!base::PathService::Get(base::DIR_EXE, &initial_prefs))
- return base::FilePath();
+ initial_prefs = base::FilePath("/etc/chromium");
base::FilePath new_path = initial_prefs.AppendASCII(installer::kInitialPrefs);
if (base::PathIsReadable(new_path))

View File

@ -1,13 +0,0 @@
diff -up chromium-91.0.4472.77/third_party/closure_compiler/compiler.py.java-allowed chromium-91.0.4472.77/third_party/closure_compiler/compiler.py
--- chromium-91.0.4472.77/third_party/closure_compiler/compiler.py.java-allowed 2021-06-02 17:14:48.445064647 +0000
+++ chromium-91.0.4472.77/third_party/closure_compiler/compiler.py 2021-06-02 17:15:12.994836949 +0000
@@ -13,8 +13,7 @@ import subprocess
_CURRENT_DIR = os.path.join(os.path.dirname(__file__))
-_JAVA_PATH = os.path.join(_CURRENT_DIR, "..", "jdk", "current", "bin", "java")
-assert os.path.isfile(_JAVA_PATH), "java only allowed in android builds"
+_JAVA_PATH = "java"
class Compiler(object):
"""Runs the Closure compiler on given source files to typecheck them

Some files were not shown because too many files have changed in this diff Show More