update to 107.0.5304.110

epel8
Than Ngo 2 years ago
parent cc370311a7
commit 758c7e4887

@ -1,567 +0,0 @@
From 7ae60470cdb0bea4548a0f5e8271b359f9450c79 Mon Sep 17 00:00:00 2001
From: Jeffrey Kardatzke <jkardatzke@google.com>
Date: Fri, 5 Feb 2021 03:33:58 +0000
Subject: [PATCH] vaapi: Update for libva forwards compatibility
There was a downstream patch applied for protected content for libva.
This patch is now upstreamed, but is not compatible with the downstream
version. This change will allow us to update libva in ChromeOS to an
intermediate version that'll be compatible with both downstream and
upstream. Then we can shift Chrome to the upstream API, and then remove
the downstream compatibility layer from ChromeOS after that and be on
upstream.
BUG=b:174951211
TEST=Chrome builds, protected content plays back
Change-Id: Id06b21daf19a54b340236b354b5f4a828e2362de
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2672690
Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org>
Reviewed-by: J Kardatzke <jkardatzke@chromium.org>
Commit-Queue: J Kardatzke <jkardatzke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#850949}
---
.../h264_vaapi_video_decoder_delegate.cc | 7 +
.../vaapi/h265_vaapi_video_decoder_delegate.h | 7 +
media/gpu/vaapi/va_prot.sigs | 1 -
media/gpu/vaapi/vaapi_utils.h | 7 +
.../gpu/vaapi/vaapi_video_decoder_delegate.cc | 11 +-
.../gpu/vaapi/vaapi_video_decoder_delegate.h | 7 +
media/gpu/vaapi/vaapi_wrapper.cc | 30 +--
media/gpu/vaapi/vaapi_wrapper.h | 7 +
.../va_protected_content.h | 225 ++----------------
tools/metrics/histograms/enums.xml | 2 +-
10 files changed, 75 insertions(+), 229 deletions(-)
diff --git a/media/gpu/vaapi/h264_vaapi_video_decoder_delegate.cc b/media/gpu/vaapi/h264_vaapi_video_decoder_delegate.cc
index 6e82506082ede..22fa594610540 100644
--- a/media/gpu/vaapi/h264_vaapi_video_decoder_delegate.cc
+++ b/media/gpu/vaapi/h264_vaapi_video_decoder_delegate.cc
@@ -4,6 +4,13 @@
#include "media/gpu/vaapi/h264_vaapi_video_decoder_delegate.h"
+// TODO(jkardatzke): Remove this once the transition to the new upstream
+// protected content API is complete. This is used to bridge a transition
+// between the libva pull request we used, and what actually landed upstream.
+#ifndef LEGACY_UPSTREAM_PROTECTED_LIBVA
+#define LEGACY_UPSTREAM_PROTECTED_LIBVA
+#endif
+
#include <va/va.h>
#include "base/memory/aligned_memory.h"
diff --git a/media/gpu/vaapi/h265_vaapi_video_decoder_delegate.h b/media/gpu/vaapi/h265_vaapi_video_decoder_delegate.h
index d152c3df8a90a..986c2b530076e 100644
--- a/media/gpu/vaapi/h265_vaapi_video_decoder_delegate.h
+++ b/media/gpu/vaapi/h265_vaapi_video_decoder_delegate.h
@@ -5,6 +5,13 @@
#ifndef MEDIA_GPU_VAAPI_H265_VAAPI_VIDEO_DECODER_DELEGATE_H_
#define MEDIA_GPU_VAAPI_H265_VAAPI_VIDEO_DECODER_DELEGATE_H_
+// TODO(jkardatzke): Remove this once the transition to the new upstream
+// protected content API is complete. This is used to bridge a transition
+// between the libva pull request we used, and what actually landed upstream.
+#ifndef LEGACY_UPSTREAM_PROTECTED_LIBVA
+#define LEGACY_UPSTREAM_PROTECTED_LIBVA
+#endif
+
#include <va/va.h>
#include "base/memory/scoped_refptr.h"
diff --git a/media/gpu/vaapi/va_prot.sigs b/media/gpu/vaapi/va_prot.sigs
index 1ffcd61778d11..dd13dafef1add 100644
--- a/media/gpu/vaapi/va_prot.sigs
+++ b/media/gpu/vaapi/va_prot.sigs
@@ -9,5 +9,4 @@ VAStatus vaCreateProtectedSession(VADisplay dpy, VAConfigID config_id, VAProtect
VAStatus vaDestroyProtectedSession(VADisplay dpy, VAProtectedSessionID protected_session);
VAStatus vaAttachProtectedSession(VADisplay dpy, VAContextID reserved, VAProtectedSessionID protected_session);
VAStatus vaDetachProtectedSession(VADisplay dpy, VAContextID reserved);
-VAStatus vaProtectedSessionHwUpdate(VADisplay dpy, VAProtectedSessionID protected_session, VABufferID buf_id);
VAStatus vaProtectedSessionExecute(VADisplay dpy, VAProtectedSessionID protected_session, VABufferID buf_id);
\ No newline at end of file
diff --git a/media/gpu/vaapi/vaapi_utils.h b/media/gpu/vaapi/vaapi_utils.h
index 9bcee23ce96d1..fd42ad2a148e3 100644
--- a/media/gpu/vaapi/vaapi_utils.h
+++ b/media/gpu/vaapi/vaapi_utils.h
@@ -5,6 +5,13 @@
#ifndef MEDIA_GPU_VAAPI_VAAPI_UTILS_H_
#define MEDIA_GPU_VAAPI_VAAPI_UTILS_H_
+// TODO(jkardatzke): Remove this once the transition to the new upstream
+// protected content API is complete. This is used to bridge a transition
+// between the libva pull request we used, and what actually landed upstream.
+#ifndef LEGACY_UPSTREAM_PROTECTED_LIBVA
+#define LEGACY_UPSTREAM_PROTECTED_LIBVA
+#endif
+
#include <va/va.h>
#include "base/callback_forward.h"
diff --git a/media/gpu/vaapi/vaapi_video_decoder_delegate.cc b/media/gpu/vaapi/vaapi_video_decoder_delegate.cc
index 07b7b3ce03f1b..a0a8ea67bd8c6 100644
--- a/media/gpu/vaapi/vaapi_video_decoder_delegate.cc
+++ b/media/gpu/vaapi/vaapi_video_decoder_delegate.cc
@@ -133,11 +133,13 @@ VaapiVideoDecoderDelegate::SetupDecryptDecode(
DCHECK_EQ(protected_session_state_, ProtectedSessionState::kCreated);
if (encryption_scheme_ == EncryptionScheme::kCenc) {
- crypto_params->encryption_type =
- full_sample ? VA_ENCRYPTION_TYPE_CENC_CTR : VA_ENCRYPTION_TYPE_CTR_128;
+ crypto_params->encryption_type = full_sample
+ ? VA_ENCRYPTION_TYPE_FULLSAMPLE_CTR
+ : VA_ENCRYPTION_TYPE_SUBSAMPLE_CTR;
} else {
- crypto_params->encryption_type =
- full_sample ? VA_ENCRYPTION_TYPE_CENC_CBC : VA_ENCRYPTION_TYPE_CBC;
+ crypto_params->encryption_type = full_sample
+ ? VA_ENCRYPTION_TYPE_FULLSAMPLE_CBC
+ : VA_ENCRYPTION_TYPE_SUBSAMPLE_CBC;
}
// For multi-slice we may already have segment information in here, so
@@ -224,6 +226,7 @@ VaapiVideoDecoderDelegate::SetupDecryptDecode(
memcpy(crypto_params->wrapped_decrypt_blob,
hw_key_data_map_[decrypt_config_->key_id()].data(),
DecryptConfig::kDecryptionKeySize);
+ crypto_params->key_blob_size = DecryptConfig::kDecryptionKeySize;
crypto_params->segment_info = &segments->front();
#else // if BUILDFLAG(IS_CHROMEOS_ASH)
protected_session_state_ = ProtectedSessionState::kFailed;
diff --git a/media/gpu/vaapi/vaapi_video_decoder_delegate.h b/media/gpu/vaapi/vaapi_video_decoder_delegate.h
index 1e222a41c543c..aeb48a75bd2c9 100644
--- a/media/gpu/vaapi/vaapi_video_decoder_delegate.h
+++ b/media/gpu/vaapi/vaapi_video_decoder_delegate.h
@@ -5,6 +5,13 @@
#ifndef MEDIA_GPU_VAAPI_VAAPI_VIDEO_DECODER_DELEGATE_H_
#define MEDIA_GPU_VAAPI_VAAPI_VIDEO_DECODER_DELEGATE_H_
+// TODO(jkardatzke): Remove this once the transition to the new upstream
+// protected content API is complete. This is used to bridge a transition
+// between the libva pull request we used, and what actually landed upstream.
+#ifndef LEGACY_UPSTREAM_PROTECTED_LIBVA
+#define LEGACY_UPSTREAM_PROTECTED_LIBVA
+#endif
+
#include <map>
#include <memory>
#include <string>
diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc
index 696ffaf00d866..cd2ee37998fbd 100644
--- a/media/gpu/vaapi/vaapi_wrapper.cc
+++ b/media/gpu/vaapi/vaapi_wrapper.cc
@@ -133,7 +133,7 @@ enum class VaapiFunctions {
kVADestroyProtectedSession = 26,
kVAAttachProtectedSession = 27,
kVADetachProtectedSession = 28,
- kVAProtectedSessionHwUpdate = 29,
+ kVAProtectedSessionHwUpdate_Deprecated = 29,
kVAProtectedSessionExecute = 30,
// Anything else is captured in this last entry.
kOtherVAFunction = 31,
@@ -176,7 +176,7 @@ constexpr std::array<const char*,
"vaDestroyProtectedSession",
"vaAttachProtectedSession",
"vaDetachProtectedSession",
- "vaProtectedSessionHwUpdate",
+ "vaProtectedSessionHwUpdate (Deprecated)",
"vaProtectedSessionExecute",
"Other VA function"};
@@ -811,7 +811,7 @@ bool GetRequiredAttribs(const base::Lock* va_lock,
#if BUILDFLAG(IS_CHROMEOS_ASH)
if (mode == VaapiWrapper::kDecodeProtected && profile != VAProfileProtected) {
required_attribs->push_back(
- {VAConfigAttribEncryption, VA_ENCRYPTION_TYPE_CTR_128});
+ {VAConfigAttribEncryption, VA_ENCRYPTION_TYPE_SUBSAMPLE_CTR});
required_attribs->push_back(
{VAConfigAttribDecProcessing, VA_DEC_PROCESSING});
}
@@ -1852,13 +1852,14 @@ bool VaapiWrapper::CreateProtectedSession(
// We have to hold the VABuffer outside of the lock because its destructor
// will acquire the lock when it goes out of scope. We also must do this after
// we create the protected session.
- VAProtectedSessionHwUpdateBuffer hw_update_buf;
+ VAProtectedSessionExecuteBuffer hw_update_buf;
std::unique_ptr<ScopedVABuffer> hw_update = CreateVABuffer(
- VAProtectedSessionHwUpdateBufferType, sizeof(hw_update_buf));
+ VAProtectedSessionExecuteBufferType, sizeof(hw_update_buf));
{
base::AutoLock auto_lock(*va_lock_);
constexpr size_t kHwIdentifierMaxSize = 64;
memset(&hw_update_buf, 0, sizeof(hw_update_buf));
+ hw_update_buf.function_id = VA_TEE_EXEC_TEE_FUNCID_HW_UPDATE;
hw_update_buf.input.data_size = hw_config.size();
hw_update_buf.input.data =
static_cast<void*>(const_cast<uint8_t*>(hw_config.data()));
@@ -1868,22 +1869,22 @@ bool VaapiWrapper::CreateProtectedSession(
if (!MapAndCopy_Locked(
hw_update->id(),
{hw_update->type(), hw_update->size(), &hw_update_buf})) {
- LOG(ERROR) << "Failed mapping HwUpdate buf";
+ LOG(ERROR) << "Failed mapping Execute buf";
return false;
}
- VAStatus va_res = vaProtectedSessionHwUpdate(
+ VAStatus va_res = vaProtectedSessionExecute(
va_display_, va_protected_session_id_, hw_update->id());
- VA_SUCCESS_OR_RETURN(va_res, VaapiFunctions::kVAProtectedSessionHwUpdate,
+ VA_SUCCESS_OR_RETURN(va_res, VaapiFunctions::kVAProtectedSessionExecute,
false);
ScopedVABufferMapping mapping(va_lock_, va_display_, hw_update->id());
if (!mapping.IsValid()) {
- LOG(ERROR) << "Failed mapping returned HwUpdate buf";
+ LOG(ERROR) << "Failed mapping returned Execute buf";
return false;
}
auto* hw_update_buf_out =
- reinterpret_cast<VAProtectedSessionHwUpdateBuffer*>(mapping.data());
+ reinterpret_cast<VAProtectedSessionExecuteBuffer*>(mapping.data());
if (!hw_update_buf_out->output.data_size) {
LOG(ERROR) << "Received empty HW identifier";
return false;
@@ -1964,10 +1965,9 @@ bool VaapiWrapper::IsProtectedSessionDead() {
if (va_protected_session_id_ == VA_INVALID_ID)
return false;
- constexpr uint32_t kVaTeeExecGpuFuncIdIsSessionAlive = 0x40000103;
uint8_t alive;
VAProtectedSessionExecuteBuffer tee_exec_buf = {};
- tee_exec_buf.function_id = kVaTeeExecGpuFuncIdIsSessionAlive;
+ tee_exec_buf.function_id = VA_TEE_EXEC_TEE_FUNCID_IS_SESSION_ALIVE;
tee_exec_buf.input.data_size = 0;
tee_exec_buf.input.data = nullptr;
tee_exec_buf.output.data_size = sizeof(alive);
@@ -2518,7 +2518,7 @@ std::unique_ptr<ScopedVABuffer> VaapiWrapper::CreateVABuffer(VABufferType type,
base::AutoLock auto_lock(*va_lock_);
TRACE_EVENT0("media,gpu", "VaapiWrapper::CreateVABufferLocked");
#if BUILDFLAG(IS_CHROMEOS_ASH)
- VAContextID context_id = type == VAProtectedSessionHwUpdateBufferType
+ VAContextID context_id = type == VAProtectedSessionExecuteBufferType
? va_protected_session_id_
: va_context_id_;
#else
@@ -2807,8 +2807,8 @@ bool VaapiWrapper::Initialize(CodecMode mode,
for (auto& attrib : required_attribs) {
if (attrib.type == VAConfigAttribEncryption) {
attrib.value = (encryption_scheme == EncryptionScheme::kCbcs)
- ? VA_ENCRYPTION_TYPE_CBC
- : VA_ENCRYPTION_TYPE_CTR_128;
+ ? VA_ENCRYPTION_TYPE_SUBSAMPLE_CBC
+ : VA_ENCRYPTION_TYPE_SUBSAMPLE_CTR;
}
}
}
diff --git a/media/gpu/vaapi/vaapi_wrapper.h b/media/gpu/vaapi/vaapi_wrapper.h
index 29b6864998240..f58723a0e852e 100644
--- a/media/gpu/vaapi/vaapi_wrapper.h
+++ b/media/gpu/vaapi/vaapi_wrapper.h
@@ -10,6 +10,13 @@
#ifndef MEDIA_GPU_VAAPI_VAAPI_WRAPPER_H_
#define MEDIA_GPU_VAAPI_VAAPI_WRAPPER_H_
+// TODO(jkardatzke): Remove this once the transition to the new upstream
+// protected content API is complete. This is used to bridge a transition
+// between the libva pull request we used, and what actually landed upstream.
+#ifndef LEGACY_UPSTREAM_PROTECTED_LIBVA
+#define LEGACY_UPSTREAM_PROTECTED_LIBVA
+#endif
+
#include <stddef.h>
#include <stdint.h>
#include <va/va.h>
diff --git a/third_party/libva_protected_content/va_protected_content.h b/third_party/libva_protected_content/va_protected_content.h
index dfea3ce94a285..c14a77da41389 100644
--- a/third_party/libva_protected_content/va_protected_content.h
+++ b/third_party/libva_protected_content/va_protected_content.h
@@ -46,6 +46,7 @@ extern "C" {
* @{
*/
+#ifdef LEGACY_UPSTREAM_PROTECTED_LIBVA
/**
*
* A protected content function for processing cipher protected content.
@@ -97,16 +98,19 @@ extern "C" {
/** \brief Encryption parameters buffer for content protection usage */
#define VAEncryptionParameterBufferType ((VABufferType)0x20001)
+#endif // LEGACY_UPSTREAM_PROTECTED_LIBVA
+
/**\brief CENC status paramter, used for vendor content protection only.
* The buffer corresponds to #VACencStatusParameters for va/cp*/
#define VACencStatusParameterBufferType ((VABufferType)0x20002)
+#ifdef LEGACY_UPSTREAM_PROTECTED_LIBVA
/** attribute values for VAConfigAttribEncryption */
#define VA_ENCRYPTION_TYPE_NONE 0x00000000
-#define VA_ENCRYPTION_TYPE_CENC_CBC 0x00000002
-#define VA_ENCRYPTION_TYPE_CENC_CTR 0x00000008
-#define VA_ENCRYPTION_TYPE_CTR_128 0x00000010
-#define VA_ENCRYPTION_TYPE_CBC 0x00000020
+#define VA_ENCRYPTION_TYPE_FULLSAMPLE_CBC 0x00000002
+#define VA_ENCRYPTION_TYPE_FULLSAMPLE_CTR 0x00000008
+#define VA_ENCRYPTION_TYPE_SUBSAMPLE_CTR 0x00000010
+#define VA_ENCRYPTION_TYPE_SUBSAMPLE_CBC 0x00000020
/** attribute values for VAConfigAttribContentProtectionSessionMode */
#define VA_PC_SESSION_MODE_NONE 0x00000000
@@ -132,18 +136,11 @@ extern "C" {
#define VA_PC_SAMPLE_TYPE_FULLSAMPLE 0x00000001
#define VA_PC_SAMPLE_TYPE_SUBSAMPLE 0x00000002
-/** \brief TeeExec Function Codes. */
-typedef enum _VA_TEE_EXEC_FUNCTION_ID {
- VA_TEE_EXEC_TEE_FUNCID_PASS_THROUGH_NONE = 0x0,
-
- // 0x40000000~0x400000FFF reserved for TEE Exec GPU function
- VA_TEE_EXEC_GPU_FUNCID_ENCRYPTION_BLT = 0x40000000,
- VA_TEE_EXEC_GPU_FUNCID_DECRYPTION_BLT = 0x40000001,
+#endif // LEGACY_UPSTREAM_PROTECTED_LIBVA
- // 0x40001000~0x400001FFF reserved for TEE Exec TEE function
- VA_TEE_EXEC_TEE_FUNCID_PASS_THROUGH = 0x40001000,
-
-} VA_TEE_EXEC_FUNCTION_ID;
+/** \brief TeeExec Function Codes. */
+#define VA_TEE_EXEC_TEE_FUNCID_HW_UPDATE 0x40000002
+#define VA_TEE_EXEC_TEE_FUNCID_IS_SESSION_ALIVE 0x40000103
/** \brief values for the encryption return status. */
typedef enum {
@@ -159,6 +156,7 @@ typedef enum {
VA_ENCRYPTION_STATUS_UNSUPPORT
} VAEncryptionStatus;
+#ifdef LEGACY_UPSTREAM_PROTECTED_LIBVA
/** \brief structure for encrypted segment info. */
typedef struct _VAEncryptionSegmentInfo {
/** \brief The offset relative to the start of the bitstream input in
@@ -212,23 +210,12 @@ typedef struct _VAEncryptionParameters {
* encrypted, i.e. the CENC or CBC1 scheme is being used.
*/
uint32_t blocks_stripe_clear;
+ /* Forwards compatibility */
+ uint32_t key_blob_size;
/** \brief Reserved bytes for future use, must be zero */
- uint32_t va_reserved[VA_PADDING_MEDIUM];
+ uint32_t va_reserved[VA_PADDING_MEDIUM - sizeof(uint32_t)];
} VAEncryptionParameters;
-
-/** \brief structure for VA_TEE_EXEC_GPU_FUNCID_ENCRYPTION_BLT */
-typedef struct _VA_PROTECTED_BLT_PARAMS {
- uint8_t* src_resource; // The source resource which contains the clear data.
- uint8_t*
- dst_resource; // The Destination resource. This resource will contain the
- // encrypted data. It should be allocated by the caller.
- uint32_t width; // The width of the surface in Bytes.
- uint32_t height; // The height of the surface in Bytes (pay attention that
- // for NV12 the height(Bytes) = 1.5*height(Pixel)).
- VAEncryptionParameters*
- enc_params; // The encryption parameters as defined by application
- void* reserved_extension; // The reserved extension for future BLT operations
-} VA_PROTECTED_BLT_PARAMS;
+#endif // LEGACY_UPSTREAM_PROTECTED_LIBVA
/** \brief cenc status parameters, corresponding to
* #VACencStatusParameterBufferType*/
@@ -311,184 +298,6 @@ typedef struct _VACencSliceParameterBufferH264 {
uint32_t va_reserved[VA_PADDING_MEDIUM];
} VACencSliceParameterBufferH264;
-/**
- * \brief Slice parameter for HEVC cenc decode in main & main 10 profiles.
- *
- * This structure holds information for \c
- * slice_segment_header() and nal_unit_header() of the slice as
- * defined by the HEVC specification.
- *
- */
-typedef struct _VACencSliceParameterBufferHEVC {
- /** \brief Same as the HEVC bitstream syntax element. */
- uint8_t nal_unit_type;
- /** \brief Corresponds to the HEVC bitstream syntax element.
- * Same as nuh_temporal_id_plus1 - 1*/
- uint8_t nuh_temporal_id;
- /** \brief Slice type.
- * Corresponds to HEVC syntax element of the same name. */
- uint8_t slice_type;
- /** \brief Same as the HEVC bitstream syntax element. */
- uint16_t slice_pic_order_cnt_lsb;
- /** \brief Indicates EOS_NUT or EOB_NUT is detected in picture. */
- uint16_t has_eos_or_eob;
-
- union {
- struct {
- /** \brief Same as the HEVC bitstream syntax element */
- uint32_t no_output_of_prior_pics_flag : 1;
- /** \brief Same as the HEVC bitstream syntax element */
- uint32_t pic_output_flag : 1;
- /** \brief Same as the HEVC bitstream syntax element */
- uint32_t colour_plane_id : 2;
- /** \brief Reserved for future use, must be zero */
- uint32_t reserved : 19;
- } bits;
- uint32_t value;
- } slice_fields;
-
- /** \brief Parameters for driver reference frame set */
- /**@{*/
-
- /** \brief number of entries as current before in short-term rps
- * Corresponds to NumPocStCurrBefore as the HEVC specification. */
- uint8_t num_of_curr_before;
- /** \brief number of entries as current after in short-term rps
- * Corresponds to NumPocStCurrAfter as the HEVC specification. */
- uint8_t num_of_curr_after;
- /** \brief number of entries as current total in short-term rps*/
- uint8_t num_of_curr_total;
- /** \brief number of entries as foll in short-term rps
- * Corresponds to NumPocStFoll as the HEVC specification.*/
- uint8_t num_of_foll_st;
- /** \brief number of entries as current in long-term rps
- * Corresponds to NumPocLtCurr as the HEVC specification. */
- uint8_t num_of_curr_lt;
- /** \brief number of entries as foll in long-term rps
- * Corresponds to NumPocLtFoll as the HEVC specification.*/
- uint8_t num_of_foll_lt;
- /** \brief delta poc as short-term current before
- * Corresponds to PocStCurrBefore as the HEVC specification. */
- int32_t delta_poc_curr_before[8];
- /** \brief delta poc as short-term current after
- * Corresponds to PocStCurrAfter, as the HEVC specification.*/
- int32_t delta_poc_curr_after[8];
- /** \brief delta poc as short-term current total */
- int32_t delta_poc_curr_total[8];
- /** \brief delta poc as short-term foll
- * Corresponds to PocStFoll as the HEVC specification.*/
- int32_t delta_poc_foll_st[16];
- /** \brief delta poc as long-term current
- * Corresponds to PocLtCurr as the HEVC specification.*/
- int32_t delta_poc_curr_lt[8];
- /** \brief delta poc as long-term foll
- * Corresponds to PocLtFoll, as the HEVC specification.*/
- int32_t delta_poc_foll_lt[16];
- /** \brief delta poc msb present flag
- * Same as the HEVC bitstream syntax element. */
- uint8_t delta_poc_msb_present_flag[16];
- /** \brief long-term reference RPS is used for reference by current picture*/
- uint8_t is_lt_curr_total[8];
- /** \brief index of reference picture list. [0] is for P and B slice, [1] is
- * for B slice*/
- uint8_t ref_list_idx[2][16];
- /**@}*/
- /** \brief Pointer to the next #VACencSliceParameterBufferHEVC element,
- * or \c nullptr if there is none.*/
- void* next;
-
- /** \brief Reserved bytes for future use, must be zero */
- uint32_t va_reserved[VA_PADDING_MEDIUM];
-} VACencSliceParameterBufferHEVC;
-
-/**
- * \brief uncompressed header for VP9 cenc decode
- *
- * This structure holds information for \c
- * uncompressed_header() as defined by the VP9 specification.
- *
- */
-typedef struct _VACencSliceParameterBufferVP9 {
- union {
- struct {
- /** \brief Same as the VP9 bitstream syntax element. */
- uint32_t profile : 2;
- /** \brief Same as the VP9 bitstream syntax element. */
- uint32_t show_existing_frame_flag : 1;
- /** \brief Same as the VP9 bitstream syntax element. */
- uint32_t frame_to_show_map_idx : 3;
- /** \brief Same as the VP9 bitstream syntax element. */
- uint32_t frame_type : 1;
- /** \brief Same as the VP9 bitstream syntax element. */
- uint32_t show_frame : 1;
- /** \brief Same as the VP9 bitstream syntax element. */
- uint32_t error_resilient_mode : 1;
- /** \brief Same as the VP9 bitstream syntax element. */
- uint32_t intra_only : 1;
- /** \brief Same as the VP9 bitstream syntax element. */
- uint32_t ten_or_twelve_bit : 1;
- /** \brief Same as the VP9 bitstream syntax element. */
- uint32_t color_space : 3;
- /** \brief Same as the VP9 bitstream syntax element. */
- uint32_t color_range : 1;
- /** \brief Same as the VP9 bitstream syntax element. */
- uint32_t subsampling_x : 1;
- /** \brief Same as the VP9 bitstream syntax element. */
- uint32_t subsampling_y : 1;
- /** \brief Corresponds to ref_frame_idx[0]
- * as the VP9 specification */
- uint32_t ref_frame_idx0 : 3;
- /** \brief Corresponds to ref_frame_sign_bias[LAST_FRAME]
- * as the VP9 specification */
- uint32_t ref_frame_sign_bias0 : 1;
- /** \brief Corresponds to ref_frame_idx[1]
- * as the VP9 specification */
- uint32_t ref_frame_idx1 : 3;
- /** \brief Corresponds to ref_frame_sign_bias[GOLDEN_FRAME]
- * as the VP9 specification */
- uint32_t ref_frame_sign_bias1 : 1;
- /** \brief Corresponds to ref_frame_idx[2]
- * as the VP9 specification */
- uint32_t ref_frame_idx2 : 3;
- /** \brief Corresponds to ref_frame_sign_bias[ALTREF_FRAME]
- * as the VP9 specification */
- uint32_t ref_frame_sign_bias2 : 1;
- /** \brief Same as the VP9 bitstream syntax element. */
- uint32_t frame_parallel_decoding_mode : 1;
- /** \brief Same as the VP9 bitstream syntax element. */
- uint32_t render_and_frame_size_different : 1;
- /** \brief Reserved for future use, must be zero */
- uint32_t reserved : 1;
- } bits;
- uint32_t value;
- } header_fields;
- /** \brief Same as the VP9 bitstream syntax element. */
- uint16_t frame_width_minus1;
- /** \brief Same as the VP9 bitstream syntax element. */
- uint16_t frame_height_minus1;
- /** \brief Same as the VP9 bitstream syntax element. */
- uint16_t render_width_minus1;
- /** \brief Same as the VP9 bitstream syntax element. */
- uint16_t render_height_minus1;
- /** \brief Same as the VP9 bitstream syntax element. */
- uint8_t refresh_frame_flags;
- /** \brief Parameters for super frame*/
- /**@{*/
- /** \brief Superframe index, from 0 to frames_in_superframe_minus_1.
- * as the VP9 specification */
- uint8_t sf_index;
- /** \brief Superframe size, corresponds to frame_sizes[ sf_index ]
- * as the VP9 specification */
- uint32_t sf_frame_size;
- /**@}*/
- /** \brief Pointer to the next #VACencSliceParameterBufferVP9 element,
- * or \c nullptr if there is none.*/
- void* next;
-
- /** \brief Reserved bytes for future use, must be zero */
- uint32_t va_reserved[VA_PADDING_MEDIUM];
-} VACencSliceParameterBufferVP9;
-
/** \brief Cenc Slice Buffer Type*/
typedef enum {
/** \brief Parsed slice parameters \c VACencSliceParameterBuffer* */
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index e88db8a3f1201..c1bd0d7db925f 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -77050,7 +77050,7 @@ Full version information for the fingerprint enum values:
<int value="26" label="vaDestroyProtectedSession()"/>
<int value="27" label="vaAttachProtectedSession()"/>
<int value="28" label="vaDetachProtectedSession()"/>
- <int value="29" label="vaProtectedSessionHwUpdate()"/>
+ <int value="29" label="vaProtectedSessionHwUpdate() (deprecated)"/>
<int value="30" label="kVAProtectedSessionExecute()"/>
<int value="31" label="Other VA functions"/>
</enum>

@ -1,92 +0,0 @@
From d32156fd3773330eca99e9cba5e18db57aaa1a53 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Sat, 19 Feb 2022 10:14:24 +0000
Subject: [PATCH] GCC: make GLImplementationParts constructors constexpr
Fix build error in GCC, as the constexpr operator== requires its
invocations to be also constexpr.
---
ui/gl/gl_implementation.cc | 23 -----------------------
ui/gl/gl_implementation.h | 25 +++++++++++++++++++++++--
2 files changed, 23 insertions(+), 25 deletions(-)
diff --git a/ui/gl/gl_implementation.cc b/ui/gl/gl_implementation.cc
index e4e5456..3e4a47c 100644
--- a/ui/gl/gl_implementation.cc
+++ b/ui/gl/gl_implementation.cc
@@ -26,29 +26,6 @@
namespace gl {
-ANGLEImplementation MakeANGLEImplementation(
- const GLImplementation gl_impl,
- const ANGLEImplementation angle_impl) {
- if (gl_impl == kGLImplementationEGLANGLE) {
- if (angle_impl == ANGLEImplementation::kNone) {
- return ANGLEImplementation::kDefault;
- } else {
- return angle_impl;
- }
- } else {
- return ANGLEImplementation::kNone;
- }
-}
-
-GLImplementationParts::GLImplementationParts(
- const ANGLEImplementation angle_impl)
- : gl(kGLImplementationEGLANGLE),
- angle(MakeANGLEImplementation(kGLImplementationEGLANGLE, angle_impl)) {}
-
-GLImplementationParts::GLImplementationParts(const GLImplementation gl_impl)
- : gl(gl_impl),
- angle(MakeANGLEImplementation(gl_impl, ANGLEImplementation::kDefault)) {}
-
bool GLImplementationParts::IsValid() const {
if (angle == ANGLEImplementation::kNone) {
return (gl != kGLImplementationEGLANGLE);
diff --git a/ui/gl/gl_implementation.h b/ui/gl/gl_implementation.h
index 376ed58..a2513ea 100644
--- a/ui/gl/gl_implementation.h
+++ b/ui/gl/gl_implementation.h
@@ -59,8 +59,14 @@ enum class ANGLEImplementation {
};
struct GL_EXPORT GLImplementationParts {
- explicit GLImplementationParts(const ANGLEImplementation angle_impl);
- explicit GLImplementationParts(const GLImplementation gl_impl);
+ constexpr explicit GLImplementationParts(const ANGLEImplementation angle_impl)
+ : gl(kGLImplementationEGLANGLE),
+ angle(MakeANGLEImplementation(kGLImplementationEGLANGLE, angle_impl)) {}
+
+ constexpr explicit GLImplementationParts(const GLImplementation gl_impl)
+ : gl(gl_impl),
+ angle(MakeANGLEImplementation(gl_impl, ANGLEImplementation::kDefault)) {
+ }
GLImplementation gl = kGLImplementationNone;
ANGLEImplementation angle = ANGLEImplementation::kNone;
@@ -80,6 +86,21 @@ struct GL_EXPORT GLImplementationParts {
bool IsValid() const;
bool IsAllowed(const std::vector<GLImplementationParts>& allowed_impls) const;
std::string ToString() const;
+
+ private:
+ constexpr ANGLEImplementation MakeANGLEImplementation(
+ const GLImplementation gl_impl,
+ const ANGLEImplementation angle_impl) {
+ if (gl_impl == kGLImplementationEGLANGLE) {
+ if (angle_impl == ANGLEImplementation::kNone) {
+ return ANGLEImplementation::kDefault;
+ } else {
+ return angle_impl;
+ }
+ } else {
+ return ANGLEImplementation::kNone;
+ }
+ }
};
struct GL_EXPORT GLWindowSystemBindingInfo {
--
2.34.1

@ -1,97 +0,0 @@
From da6e3f6071fdabeb96c0805626418414b4a4cea8 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Wed, 9 Feb 2022 17:56:21 +0000
Subject: [PATCH] GCC: make base::InMilliseconds(F,RoundedUp) constexpr
media::DecodeTimestamp uses it in several constexpr methods.
---
base/time/time.cc | 24 ------------------------
base/time/time.h | 30 +++++++++++++++++++++++++++---
2 files changed, 27 insertions(+), 27 deletions(-)
diff --git a/base/time/time.cc b/base/time/time.cc
index 0de273e..e0acda2 100644
--- a/base/time/time.cc
+++ b/base/time/time.cc
@@ -74,30 +74,6 @@ int TimeDelta::InDaysFloored() const {
: std::numeric_limits<int>::max();
}
-double TimeDelta::InMillisecondsF() const {
- if (!is_inf())
- return static_cast<double>(delta_) / Time::kMicrosecondsPerMillisecond;
- return (delta_ < 0) ? -std::numeric_limits<double>::infinity()
- : std::numeric_limits<double>::infinity();
-}
-
-int64_t TimeDelta::InMilliseconds() const {
- if (!is_inf())
- return delta_ / Time::kMicrosecondsPerMillisecond;
- return (delta_ < 0) ? std::numeric_limits<int64_t>::min()
- : std::numeric_limits<int64_t>::max();
-}
-
-int64_t TimeDelta::InMillisecondsRoundedUp() const {
- if (!is_inf()) {
- const int64_t result = delta_ / Time::kMicrosecondsPerMillisecond;
- // Convert |result| from truncating to ceiling.
- return (delta_ > result * Time::kMicrosecondsPerMillisecond) ? (result + 1)
- : result;
- }
- return delta_;
-}
-
double TimeDelta::InMicrosecondsF() const {
if (!is_inf())
return static_cast<double>(delta_);
diff --git a/base/time/time.h b/base/time/time.h
index c027aab..fb1d78d 100644
--- a/base/time/time.h
+++ b/base/time/time.h
@@ -216,9 +216,9 @@ class BASE_EXPORT TimeDelta {
constexpr int InMinutes() const;
constexpr double InSecondsF() const;
constexpr int64_t InSeconds() const;
- double InMillisecondsF() const;
- int64_t InMilliseconds() const;
- int64_t InMillisecondsRoundedUp() const;
+ constexpr double InMillisecondsF() const;
+ constexpr int64_t InMilliseconds() const;
+ constexpr int64_t InMillisecondsRoundedUp() const;
constexpr int64_t InMicroseconds() const { return delta_; }
double InMicrosecondsF() const;
constexpr int64_t InNanoseconds() const;
@@ -889,6 +889,30 @@ constexpr int64_t TimeDelta::InSeconds() const {
return is_inf() ? delta_ : (delta_ / Time::kMicrosecondsPerSecond);
}
+constexpr double TimeDelta::InMillisecondsF() const {
+ if (!is_inf())
+ return static_cast<double>(delta_) / Time::kMicrosecondsPerMillisecond;
+ return (delta_ < 0) ? -std::numeric_limits<double>::infinity()
+ : std::numeric_limits<double>::infinity();
+}
+
+constexpr int64_t TimeDelta::InMilliseconds() const {
+ if (!is_inf())
+ return delta_ / Time::kMicrosecondsPerMillisecond;
+ return (delta_ < 0) ? std::numeric_limits<int64_t>::min()
+ : std::numeric_limits<int64_t>::max();
+}
+
+constexpr int64_t TimeDelta::InMillisecondsRoundedUp() const {
+ if (!is_inf()) {
+ const int64_t result = delta_ / Time::kMicrosecondsPerMillisecond;
+ // Convert |result| from truncating to ceiling.
+ return (delta_ > result * Time::kMicrosecondsPerMillisecond) ? (result + 1)
+ : result;
+ }
+ return delta_;
+}
+
constexpr int64_t TimeDelta::InNanoseconds() const {
return base::ClampMul(delta_, Time::kNanosecondsPerMicrosecond);
}
--
2.34.1

@ -1,35 +0,0 @@
From 364dc0067d1c20c7a2d21277a7ec0c4419d9bc11 Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jdapena@igalia.com>
Date: Wed, 23 Feb 2022 12:18:57 +0100
Subject: [PATCH] GCC: explicitely move return value of SCTHashdanceMetadata::ToValue
GCC rejects to do Return Value Optimization in
SCTHashdanceMetadata::ToValue, because the copy constructor is
deleted, and in that scenario RVO is rejected in GCC:
../../services/network/sct_auditing/sct_auditing_reporter.cc: In member function base::Value network::SCTAuditingReporter::SCTHashdanceMetadata::ToValue() const:
../../services/network/sct_auditing/sct_auditing_reporter.cc:191:10: error: use of deleted function base::Value::Value(const base::Value&)
191 | return value;
| ^~~~~
In file included from ../../services/network/sct_auditing/sct_auditing_reporter.h:14,
from ../../services/network/sct_auditing/sct_auditing_reporter.cc:5:
../../base/values.h:254:3: note: declared here
254 | Value(const Value&) = delete;
| ^~~~~
Bug: 819294
Change-Id: I111e51dd10eee7b909d4ac3c0911aac18a589166
---
diff --git a/services/network/sct_auditing/sct_auditing_reporter.cc b/services/network/sct_auditing/sct_auditing_reporter.cc
index a057e8e..365527b 100644
--- a/services/network/sct_auditing/sct_auditing_reporter.cc
+++ b/services/network/sct_auditing/sct_auditing_reporter.cc
@@ -188,7 +188,7 @@
kLogIdKey, base::Base64Encode(base::as_bytes(base::make_span(log_id))));
value.SetKey(kLogMMDKey, base::TimeDeltaToValue(log_mmd));
value.SetKey(kCertificateExpiry, base::TimeToValue(certificate_expiry));
- return value;
+ return std::move(value);
}
// static

@ -1,29 +0,0 @@
From 1183b14db8bd08d731ff3433c436887de00be3aa Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jdapena@igalia.com>
Date: Fri, 18 Feb 2022 16:28:25 +0000
Subject: [PATCH] Fix typo in non-clang GSL_OWNER macro
GCC build fails because GSL_OWNER is not defined (GSL_OWNER_ was
the one actually declared).
Bug: 819294
Change-Id: I1c3d17cb1c08b9bc0e8a888452da9868c308ddb5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3472080
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/main@{#972974}
---
diff --git a/base/compiler_specific.h b/base/compiler_specific.h
index eec5810..1ee8074 100644
--- a/base/compiler_specific.h
+++ b/base/compiler_specific.h
@@ -386,7 +386,7 @@
#define GSL_OWNER [[gsl::Owner]]
#define GSL_POINTER [[gsl::Pointer]]
#else
-#define GSL_OWNER_
+#define GSL_OWNER
#define GSL_POINTER
#endif

@ -1,12 +0,0 @@
diff -up chromium-98.0.4758.102/base/third_party/symbolize/symbolize.h.missing-utility-for-std-exchange chromium-98.0.4758.102/base/third_party/symbolize/symbolize.h
--- chromium-98.0.4758.102/base/third_party/symbolize/symbolize.h.missing-utility-for-std-exchange 2022-02-25 22:30:02.833745309 +0000
+++ chromium-98.0.4758.102/base/third_party/symbolize/symbolize.h 2022-02-25 22:30:02.832745344 +0000
@@ -58,6 +58,8 @@
#include "config.h"
#include "glog/logging.h"
+#include <utility>
+
#ifdef HAVE_SYMBOLIZE
#include <algorithm>

@ -1,11 +0,0 @@
diff -up chromium-100.0.4896.75/net/base/address_list.h.missing-include-tuple chromium-100.0.4896.75/net/base/address_list.h
--- chromium-100.0.4896.75/net/base/address_list.h.missing-include-tuple 2022-04-08 10:03:31.950894611 -0400
+++ chromium-100.0.4896.75/net/base/address_list.h 2022-04-08 10:03:43.926970267 -0400
@@ -8,6 +8,7 @@
#include <stdint.h>
#include <string>
+#include <tuple>
#include <utility>
#include <vector>

@ -1,11 +0,0 @@
diff -up chromium-100.0.4896.75/media/capabilities/webrtc_video_stats_db.h.missing-vector chromium-100.0.4896.75/media/capabilities/webrtc_video_stats_db.h
--- chromium-100.0.4896.75/media/capabilities/webrtc_video_stats_db.h.missing-vector 2022-04-11 18:10:09.979195562 -0400
+++ chromium-100.0.4896.75/media/capabilities/webrtc_video_stats_db.h 2022-04-11 18:10:30.261338074 -0400
@@ -7,6 +7,7 @@
#include <memory>
#include <string>
+#include <vector>
#include "base/callback_forward.h"
#include "base/check.h"

@ -1,49 +0,0 @@
diff -up chromium-100.0.4896.75/ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine.cc.old-xkb chromium-100.0.4896.75/ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine.cc
--- chromium-100.0.4896.75/ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine.cc.old-xkb 2022-04-08 10:12:14.725197002 -0400
+++ chromium-100.0.4896.75/ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine.cc 2022-04-08 10:13:04.512511489 -0400
@@ -31,14 +31,6 @@
#include "ui/events/keycodes/keyboard_code_conversion.h"
#include "ui/events/keycodes/keyboard_code_conversion_xkb.h"
-// xkb_keymap_key_get_mods_for_level is relatively new (introduced in ver 1.0,
-// Sep 6, 2020), thus it is not available on some platform, such as Ubuntu
-// 18.04, which we still supports.
-// Thus declare the function as weak here, so we can check the availability on
-// runtime.
-extern "C" __attribute__((weak)) decltype(
- xkb_keymap_key_get_mods_for_level) xkb_keymap_key_get_mods_for_level;
-
namespace ui {
namespace {
@@ -925,18 +917,10 @@ void XkbKeyboardLayoutEngine::SetKeymap(
const xkb_keysym_t* keysyms;
int num_syms = xkb_keymap_key_get_syms_by_level(keymap, keycode, layout,
level, &keysyms);
- if (xkb_keymap_key_get_mods_for_level) {
- xkb_mod_mask_t masks[100]; // Large enough buffer.
- int num_mods = xkb_keymap_key_get_mods_for_level(
- keymap, keycode, layout, level, masks, std::size(masks));
- AddEntries(base::make_span(keysyms, num_syms),
- base::make_span(masks, num_mods), keycode);
- } else {
// If not, unfortunately, there's no convenient/efficient way
// to take the possible masks. Thus, use mask 0 always.
constexpr xkb_mod_mask_t kMask[] = {0};
AddEntries(base::make_span(keysyms, num_syms), kMask, keycode);
- }
}
}
}
@@ -1000,10 +984,7 @@ int XkbKeyboardLayoutEngine::UpdateModif
DomCode XkbKeyboardLayoutEngine::GetDomCodeByKeysym(uint32_t keysym,
uint32_t modifiers) const {
- // If xkb_keymap_key_get_mods_for_level is not available, all entries are
- // stored with modifiers mask is 0.
- if (!xkb_keymap_key_get_mods_for_level)
- modifiers = 0;
+ modifiers = 0;
auto iter = xkb_keysym_map_.find(XkbKeysymMapKey(keysym, modifiers));
if (iter == xkb_keysym_map_.end()) {

@ -1,147 +0,0 @@
diff -up chromium-100.0.4896.75/remoting/host/mojom/remoting_mojom_traits.h.remoting-extra-qualification chromium-100.0.4896.75/remoting/host/mojom/remoting_mojom_traits.h
--- chromium-100.0.4896.75/remoting/host/mojom/remoting_mojom_traits.h.remoting-extra-qualification 2022-04-05 20:02:25.525814644 +0000
+++ chromium-100.0.4896.75/remoting/host/mojom/remoting_mojom_traits.h 2022-04-07 13:35:28.490655471 +0000
@@ -30,7 +30,7 @@
namespace mojo {
template <>
-class mojo::StructTraits<remoting::mojom::BoolDataView, bool> {
+class StructTraits<remoting::mojom::BoolDataView, bool> {
public:
static bool value(bool value) { return value; }
@@ -41,7 +41,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::FloatDataView, float> {
+class StructTraits<remoting::mojom::FloatDataView, float> {
public:
static float value(float value) { return value; }
@@ -52,7 +52,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::Int32DataView, int32_t> {
+class StructTraits<remoting::mojom::Int32DataView, int32_t> {
public:
static int32_t value(int32_t value) { return value; }
@@ -64,7 +64,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::UInt32DataView, uint32_t> {
+class StructTraits<remoting::mojom::UInt32DataView, uint32_t> {
public:
static uint32_t value(uint32_t value) { return value; }
@@ -76,7 +76,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::DesktopCaptureOptionsDataView,
+class StructTraits<remoting::mojom::DesktopCaptureOptionsDataView,
::webrtc::DesktopCaptureOptions> {
public:
static bool use_update_notifications(
@@ -101,7 +101,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::DesktopEnvironmentOptionsDataView,
+class StructTraits<remoting::mojom::DesktopEnvironmentOptionsDataView,
::remoting::DesktopEnvironmentOptions> {
public:
static bool enable_curtaining(
@@ -161,7 +161,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::DesktopSizeDataView,
+class StructTraits<remoting::mojom::DesktopSizeDataView,
::webrtc::DesktopSize> {
public:
static int32_t width(const ::webrtc::DesktopSize& size) {
@@ -177,7 +177,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::DesktopVectorDataView,
+class StructTraits<remoting::mojom::DesktopVectorDataView,
::webrtc::DesktopVector> {
public:
static int32_t x(const ::webrtc::DesktopVector& vector) { return vector.x(); }
@@ -243,7 +243,7 @@ struct EnumTraits<remoting::mojom::Mouse
};
template <>
-class mojo::StructTraits<remoting::mojom::ClipboardEventDataView,
+class StructTraits<remoting::mojom::ClipboardEventDataView,
::remoting::protocol::ClipboardEvent> {
public:
static const std::string& mime_type(
@@ -261,7 +261,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::KeyEventDataView,
+class StructTraits<remoting::mojom::KeyEventDataView,
::remoting::protocol::KeyEvent> {
public:
static bool pressed(const ::remoting::protocol::KeyEvent& event) {
@@ -297,7 +297,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::MouseEventDataView,
+class StructTraits<remoting::mojom::MouseEventDataView,
::remoting::protocol::MouseEvent> {
public:
static absl::optional<int32_t> x(
@@ -386,7 +386,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::ScreenResolutionDataView,
+class StructTraits<remoting::mojom::ScreenResolutionDataView,
::remoting::ScreenResolution> {
public:
static const ::webrtc::DesktopSize& dimensions(
@@ -404,7 +404,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::TextEventDataView,
+class StructTraits<remoting::mojom::TextEventDataView,
::remoting::protocol::TextEvent> {
public:
static const std::string& text(const ::remoting::protocol::TextEvent& event) {
@@ -416,7 +416,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::TouchEventPointDataView,
+class StructTraits<remoting::mojom::TouchEventPointDataView,
::remoting::protocol::TouchEventPoint> {
public:
static uint32_t id(const ::remoting::protocol::TouchEventPoint& event) {
@@ -493,7 +493,7 @@ struct EnumTraits<remoting::mojom::Touch
};
template <>
-class mojo::StructTraits<remoting::mojom::TouchEventDataView,
+class StructTraits<remoting::mojom::TouchEventDataView,
::remoting::protocol::TouchEvent> {
public:
static ::remoting::protocol::TouchEvent::TouchEventType event_type(
@@ -553,7 +553,7 @@ struct EnumTraits<remoting::mojom::Trans
};
template <>
-class mojo::StructTraits<remoting::mojom::TransportRouteDataView,
+class StructTraits<remoting::mojom::TransportRouteDataView,
::remoting::protocol::TransportRoute> {
public:
static ::remoting::protocol::TransportRoute::RouteType type(

@ -1,165 +0,0 @@
diff -up chromium-101.0.4951.41/remoting/host/mojom/remoting_mojom_traits.h.remoting-extra-qualification chromium-101.0.4951.41/remoting/host/mojom/remoting_mojom_traits.h
--- chromium-101.0.4951.41/remoting/host/mojom/remoting_mojom_traits.h.remoting-extra-qualification 2022-04-27 20:08:44.312318089 +0000
+++ chromium-101.0.4951.41/remoting/host/mojom/remoting_mojom_traits.h 2022-04-28 16:11:30.308481321 +0000
@@ -32,7 +32,7 @@
namespace mojo {
template <>
-class mojo::StructTraits<remoting::mojom::BoolDataView, bool> {
+class StructTraits<remoting::mojom::BoolDataView, bool> {
public:
static bool value(bool value) { return value; }
@@ -43,7 +43,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::FloatDataView, float> {
+class StructTraits<remoting::mojom::FloatDataView, float> {
public:
static float value(float value) { return value; }
@@ -54,7 +54,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::Int32DataView, int32_t> {
+class StructTraits<remoting::mojom::Int32DataView, int32_t> {
public:
static int32_t value(int32_t value) { return value; }
@@ -66,7 +66,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::UInt32DataView, uint32_t> {
+class StructTraits<remoting::mojom::UInt32DataView, uint32_t> {
public:
static uint32_t value(uint32_t value) { return value; }
@@ -78,7 +78,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::DesktopCaptureOptionsDataView,
+class StructTraits<remoting::mojom::DesktopCaptureOptionsDataView,
::webrtc::DesktopCaptureOptions> {
public:
static bool use_update_notifications(
@@ -103,7 +103,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::DesktopEnvironmentOptionsDataView,
+class StructTraits<remoting::mojom::DesktopEnvironmentOptionsDataView,
::remoting::DesktopEnvironmentOptions> {
public:
static bool enable_curtaining(
@@ -200,7 +200,7 @@ struct EnumTraits<remoting::mojom::Deskt
};
template <>
-class mojo::StructTraits<remoting::mojom::DesktopRectDataView,
+class StructTraits<remoting::mojom::DesktopRectDataView,
::webrtc::DesktopRect> {
public:
static int32_t left(const ::webrtc::DesktopRect& rect) { return rect.left(); }
@@ -220,7 +220,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::DesktopSizeDataView,
+class StructTraits<remoting::mojom::DesktopSizeDataView,
::webrtc::DesktopSize> {
public:
static int32_t width(const ::webrtc::DesktopSize& size) {
@@ -236,7 +236,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::DesktopVectorDataView,
+class StructTraits<remoting::mojom::DesktopVectorDataView,
::webrtc::DesktopVector> {
public:
static int32_t x(const ::webrtc::DesktopVector& vector) { return vector.x(); }
@@ -475,7 +475,7 @@ struct EnumTraits<remoting::mojom::Audio
};
template <>
-class mojo::StructTraits<remoting::mojom::AudioPacketDataView,
+class StructTraits<remoting::mojom::AudioPacketDataView,
::std::unique_ptr<::remoting::AudioPacket>> {
public:
static int32_t timestamp(
@@ -513,7 +513,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::ClipboardEventDataView,
+class StructTraits<remoting::mojom::ClipboardEventDataView,
::remoting::protocol::ClipboardEvent> {
public:
static const std::string& mime_type(
@@ -531,7 +531,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::KeyEventDataView,
+class StructTraits<remoting::mojom::KeyEventDataView,
::remoting::protocol::KeyEvent> {
public:
static bool pressed(const ::remoting::protocol::KeyEvent& event) {
@@ -567,7 +567,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::MouseEventDataView,
+class StructTraits<remoting::mojom::MouseEventDataView,
::remoting::protocol::MouseEvent> {
public:
static absl::optional<int32_t> x(
@@ -656,7 +656,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::ScreenResolutionDataView,
+class StructTraits<remoting::mojom::ScreenResolutionDataView,
::remoting::ScreenResolution> {
public:
static const ::webrtc::DesktopSize& dimensions(
@@ -674,7 +674,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::TextEventDataView,
+class StructTraits<remoting::mojom::TextEventDataView,
::remoting::protocol::TextEvent> {
public:
static const std::string& text(const ::remoting::protocol::TextEvent& event) {
@@ -686,7 +686,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::TouchEventPointDataView,
+class StructTraits<remoting::mojom::TouchEventPointDataView,
::remoting::protocol::TouchEventPoint> {
public:
static uint32_t id(const ::remoting::protocol::TouchEventPoint& event) {
@@ -763,7 +763,7 @@ struct EnumTraits<remoting::mojom::Touch
};
template <>
-class mojo::StructTraits<remoting::mojom::TouchEventDataView,
+class StructTraits<remoting::mojom::TouchEventDataView,
::remoting::protocol::TouchEvent> {
public:
static ::remoting::protocol::TouchEvent::TouchEventType event_type(
@@ -823,7 +823,7 @@ struct EnumTraits<remoting::mojom::Trans
};
template <>
-class mojo::StructTraits<remoting::mojom::TransportRouteDataView,
+class StructTraits<remoting::mojom::TransportRouteDataView,
::remoting::protocol::TransportRoute> {
public:
static ::remoting::protocol::TransportRoute::RouteType type(

@ -1,25 +0,0 @@
From 7c135a291184b59a59643ed6a8c40b4405ac0175 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Wed, 27 Apr 2022 16:01:01 +0000
Subject: [PATCH] IWYU: add cstring for std::strlen in fenced_frame_utils
---
third_party/blink/common/fenced_frame/fenced_frame_utils.cc | 2 ++
1 file changed, 2 insertions(+)
diff --git a/third_party/blink/common/fenced_frame/fenced_frame_utils.cc b/third_party/blink/common/fenced_frame/fenced_frame_utils.cc
index 9e2d3ad..68f4823 100644
--- a/third_party/blink/common/fenced_frame/fenced_frame_utils.cc
+++ b/third_party/blink/common/fenced_frame/fenced_frame_utils.cc
@@ -4,6 +4,8 @@
#include "third_party/blink/public/common/fenced_frame/fenced_frame_utils.h"
+#include <cstring>
+
#include "base/guid.h"
#include "base/strings/string_util.h"
--
2.35.1

@ -1,14 +0,0 @@
--- a/components/autofill/core/browser/BUILD.gn
+++ b/components/autofill/core/browser/BUILD.gn
@@ -54,6 +54,11 @@ action("regex_patterns_inl_h") {
}
static_library("browser") {
+ if (is_clang) {
+ cflags = [
+ "-fbracket-depth=1000",
+ ]
+ }
sources = [
"address_normalization_manager.cc",
"address_normalization_manager.h",

@ -1,47 +0,0 @@
From 89c498edff683c68df6be0dd224848f4b4af5ae7 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Mon, 25 Apr 2022 13:25:02 +0200
Subject: [PATCH] GCC: add explicit template instantiation
Bug: b/223668065
Change-Id: I97ea197273f2b46b6a47a9fdfbbfb5065fbd8edd
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/65268
Kokoro-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Commit-Queue: Alexis Hétu <sugoi@google.com>
Tested-by: Alexis Hétu <sugoi@google.com>
---
diff --git a/third_party/swiftshader/third_party/subzero/src/IceInstX8632.cpp b/third_party/swiftshader/third_party/subzero/src/IceInstX8632.cpp
index fe87eee..94cac3b 100644
--- a/third_party/swiftshader/third_party/subzero/src/IceInstX8632.cpp
+++ b/third_party/swiftshader/third_party/subzero/src/IceInstX8632.cpp
@@ -710,6 +710,11 @@
}
}
+template void emitIASRegOpTyGPR<true, true>(const Cfg *Func, Type Ty,
+ const Variable *Var,
+ const Operand *Src,
+ const GPREmitterRegOp &Emitter);
+
void emitIASAddrOpTyGPR(const Cfg *Func, Type Ty, const AsmAddress &Addr,
const Operand *Src, const GPREmitterAddrOp &Emitter) {
Assembler *Asm = Func->getAssembler<Assembler>();
diff --git a/third_party/swiftshader/third_party/subzero/src/IceInstX8664.cpp b/third_party/swiftshader/third_party/subzero/src/IceInstX8664.cpp
index 9d655a1..f7097d2 100644
--- a/third_party/swiftshader/third_party/subzero/src/IceInstX8664.cpp
+++ b/third_party/swiftshader/third_party/subzero/src/IceInstX8664.cpp
@@ -698,6 +698,11 @@
}
}
+template void emitIASRegOpTyGPR<true, true>(const Cfg *Func, Type Ty,
+ const Variable *Var,
+ const Operand *Src,
+ const GPREmitterRegOp &Emitter);
+
void emitIASAddrOpTyGPR(const Cfg *Func, Type Ty, const AsmAddress &Addr,
const Operand *Src, const GPREmitterAddrOp &Emitter) {
Assembler *Asm = Func->getAssembler<Assembler>();

@ -1,43 +0,0 @@
From 9dd0503835dc875807ab63efb1f477bffed2a852 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Mon, 25 Apr 2022 23:18:30 +0000
Subject: [PATCH] IWYU: add utility for std::exchange
Bug: 957519
Change-Id: I307d520fdc34d2452018ed32a505e7e519739410
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3604643
Reviewed-by: Wez <wez@chromium.org>
Commit-Queue: Stephan Hartmann <stha09@googlemail.com>
Cr-Commit-Position: refs/heads/main@{#995855}
---
diff --git a/base/third_party/symbolize/patches/0001-expose-object-file-helpers.patch b/base/third_party/symbolize/patches/0001-expose-object-file-helpers.patch
index b7376d8..72900a19 100644
--- a/base/third_party/symbolize/patches/0001-expose-object-file-helpers.patch
+++ b/base/third_party/symbolize/patches/0001-expose-object-file-helpers.patch
@@ -118,11 +118,12 @@
index c6f9ec4360ede..00cfa022219e6 100644
--- a/base/third_party/symbolize/symbolize.h
+++ b/base/third_party/symbolize/symbolize.h
-@@ -60,6 +60,8 @@
+@@ -60,6 +60,9 @@
#ifdef HAVE_SYMBOLIZE
+#include <algorithm>
++#include <utility>
+
#if defined(__ELF__) // defined by gcc
#if defined(__OpenBSD__)
diff --git a/base/third_party/symbolize/symbolize.h b/base/third_party/symbolize/symbolize.h
index 99029a9..278078f 100644
--- a/base/third_party/symbolize/symbolize.h
+++ b/base/third_party/symbolize/symbolize.h
@@ -61,6 +61,7 @@
#ifdef HAVE_SYMBOLIZE
#include <algorithm>
+#include <utility>
#if defined(__ELF__) // defined by gcc
#if defined(__OpenBSD__)

@ -1,26 +0,0 @@
From 491bf840da4f76fa3591cc0aa2f4c19cdbe57ec4 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Thu, 12 May 2022 11:58:29 +0000
Subject: [PATCH] GCC: fix ambiguous references in blink::FrameLoadRequest
Add namespace to avoid confusion.
---
third_party/blink/renderer/core/loader/frame_load_request.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/third_party/blink/renderer/core/loader/frame_load_request.h b/third_party/blink/renderer/core/loader/frame_load_request.h
index 444b25c..a86814d 100644
--- a/third_party/blink/renderer/core/loader/frame_load_request.h
+++ b/third_party/blink/renderer/core/loader/frame_load_request.h
@@ -179,7 +179,7 @@ struct CORE_EXPORT FrameLoadRequest {
impression_ = impression;
}
- const absl::optional<Impression>& Impression() const { return impression_; }
+ const absl::optional<blink::Impression>& Impression() const { return impression_; }
bool CanDisplay(const KURL&) const;
--
2.35.1

@ -1,70 +0,0 @@
From 3d274856e792a361336eb4ae1670bc9c1905f0cb Mon Sep 17 00:00:00 2001
From: Steinar H. Gunderson <sesse@chromium.org>
Date: Thu, 12 May 2022 16:42:40 +0200
Subject: [PATCH] Make AhoCorasickNode 4-aligned.
This should fix an issue where std::vector could allocate unaligned
memory for AhoCorasickNode, and we'd then return a pointer to
inline_edges, where a caller would expect the pointer to be aligned
but it wasn't.
Change-Id: Id9dff044c61f8e46062c63b8480b18ebc68c4862
---
diff --git a/base/substring_set_matcher/substring_set_matcher.cc b/base/substring_set_matcher/substring_set_matcher.cc
index e110047..ef0b750 100644
--- a/base/substring_set_matcher/substring_set_matcher.cc
+++ b/base/substring_set_matcher/substring_set_matcher.cc
@@ -424,7 +424,12 @@
edges_.inline_edges[num_edges()] = AhoCorasickEdge{label, node};
if (label == kFailureNodeLabel) {
// Make sure that kFailureNodeLabel is first.
- std::swap(edges_.inline_edges[0], edges_.inline_edges[num_edges()]);
+ // NOTE: We don't use std::swap here, because GCC
+ // doesn't understand that inline_edges[] is 4-aligned
+ // and gives a warning.
+ AhoCorasickEdge temp = edges_.inline_edges[0];
+ edges_.inline_edges[0] = edges_.inline_edges[num_edges()];
+ edges_.inline_edges[num_edges()] = temp;
}
--num_free_edges_;
return;
diff --git a/base/substring_set_matcher/substring_set_matcher.cc b/base/substring_set_matcher/substring_set_matcher.cc
index e110047..ef0b750 100644
--- a/base/substring_set_matcher/substring_set_matcher.h
+++ b/base/substring_set_matcher/substring_set_matcher.h
@@ -154,8 +154,9 @@
static constexpr uint32_t kEmptyLabel = 0x103;
// A node in the trie, packed tightly together so that it occupies 12 bytes
- // (both on 32- and 64-bit platforms).
- class AhoCorasickNode {
+ // (both on 32- and 64-bit platforms), but aligned to at least 4 (see the
+ // comment on edges_).
+ class alignas(AhoCorasickEdge) AhoCorasickNode {
public:
AhoCorasickNode();
~AhoCorasickNode();
@@ -178,6 +179,10 @@
NodeID GetEdgeNoInline(uint32_t label) const;
void SetEdge(uint32_t label, NodeID node);
const AhoCorasickEdge* edges() const {
+ // NOTE: Returning edges_.inline_edges here is fine, because it's
+ // the first thing in the struct (see the comment on edges_).
+ DCHECK_EQ(0u, reinterpret_cast<uintptr_t>(edges_.inline_edges) %
+ alignof(AhoCorasickEdge));
return edges_capacity_ == 0 ? edges_.inline_edges : edges_.edges;
}
@@ -258,6 +263,11 @@
// in the first slot if it exists (ie., is not equal to kRootID), since we
// need to access that label during every single node we look at during
// traversal.
+ //
+ // NOTE: Keep this the first member in the struct, so that inline_edges gets
+ // 4-aligned (since the class is marked as such, despite being packed.
+ // Otherwise, edges() can return an unaligned pointer marked as aligned
+ // (the unalignedness gets lost).
static constexpr int kNumInlineEdges = 2;
union {
// Out-of-line edge storage, having room for edges_capacity_ elements.

@ -1,12 +0,0 @@
diff -up chromium-103.0.5060.53/tools/grit/grit/util.py.fix-python3 chromium-103.0.5060.53/tools/grit/grit/util.py
--- chromium-103.0.5060.53/tools/grit/grit/util.py.fix-python3 2022-06-30 19:38:05.483590098 +0000
+++ chromium-103.0.5060.53/tools/grit/grit/util.py 2022-06-30 19:38:14.024304827 +0000
@@ -209,7 +209,7 @@ def ReadFile(filename, encoding):
mode = 'rb'
encoding = None
else:
- mode = 'rU'
+ mode = 'r'
with io.open(filename, mode, encoding=encoding) as f:
return f.read()

@ -1,76 +0,0 @@
diff -up chromium-104.0.5112.101/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc.system-minizip chromium-104.0.5112.101/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc
--- chromium-104.0.5112.101/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc.system-minizip 2022-08-18 23:16:03.451728329 +0000
+++ chromium-104.0.5112.101/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc 2022-08-18 23:16:23.966049114 +0000
@@ -21,8 +21,8 @@ limitations under the License.
#include "absl/status/status.h" // from @com_google_absl
#include "absl/strings/str_format.h" // from @com_google_absl
#include "absl/strings/string_view.h" // from @com_google_absl
-#include "contrib/minizip/ioapi.h"
-#include "contrib/minizip/unzip.h"
+#include <minizip/ioapi.h>
+#include <minizip/unzip.h>
#include "flatbuffers/flatbuffers.h" // from @flatbuffers
#include "tensorflow/lite/schema/schema_generated.h"
#include "tensorflow_lite_support/cc/common.h"
diff -up chromium-104.0.5112.101/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc.system-minizip chromium-104.0.5112.101/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc
--- chromium-104.0.5112.101/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc.system-minizip 2022-08-18 23:16:52.463105585 +0000
+++ chromium-104.0.5112.101/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc 2022-08-18 23:17:12.849430606 +0000
@@ -19,8 +19,8 @@ limitations under the License.
#include <cstring>
#include <functional>
-#include "contrib/minizip/ioapi.h"
-#include "contrib/minizip/zip.h"
+#include <minizip/ioapi.h>
+#include <minizip/zip.h>
#include "flatbuffers/flatbuffers.h" // from @flatbuffers
#include "tensorflow/lite/schema/schema_generated.h"
#include "tensorflow_lite_support/cc/common.h"
diff -up chromium-104.0.5112.101/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc.system-minizip chromium-104.0.5112.101/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc
--- chromium-104.0.5112.101/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc.system-minizip 2022-08-18 23:18:14.697382850 +0000
+++ chromium-104.0.5112.101/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc 2022-08-18 23:18:27.148970583 +0000
@@ -19,7 +19,7 @@ limitations under the License.
#include <cstdio>
#include "absl/strings/string_view.h" // from @com_google_absl
-#include "contrib/minizip/ioapi.h"
+#include <minizip/ioapi.h>
namespace tflite {
namespace metadata {
diff -up chromium-104.0.5112.101/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h.system-minizip chromium-104.0.5112.101/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h
--- chromium-104.0.5112.101/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h.system-minizip 2022-08-18 20:14:28.116854693 +0000
+++ chromium-104.0.5112.101/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h 2022-08-18 20:14:28.115854726 +0000
@@ -19,7 +19,7 @@ limitations under the License.
#include <cstdlib>
#include "absl/strings/string_view.h" // from @com_google_absl
-#include "contrib/minizip/ioapi.h"
+#include <minizip/ioapi.h>
namespace tflite {
namespace metadata {
diff -up chromium-104.0.5112.101/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc.system-minizip chromium-104.0.5112.101/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc
--- chromium-104.0.5112.101/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc.system-minizip 2022-08-18 23:19:14.807392634 +0000
+++ chromium-104.0.5112.101/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc 2022-08-18 23:19:31.177850617 +0000
@@ -19,7 +19,7 @@ limitations under the License.
#include <cstdio>
#include "absl/strings/string_view.h" // from @com_google_absl
-#include "contrib/minizip/ioapi.h"
+#include <minizip/ioapi.h>
namespace tflite {
namespace metadata {
diff -up chromium-104.0.5112.101/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h.system-minizip chromium-104.0.5112.101/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h
--- chromium-104.0.5112.101/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h.system-minizip 2022-08-18 20:14:28.116854693 +0000
+++ chromium-104.0.5112.101/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h 2022-08-18 20:14:28.116854693 +0000
@@ -19,7 +19,7 @@ limitations under the License.
#include <cstdlib>
#include "absl/strings/string_view.h" // from @com_google_absl
-#include "contrib/minizip/ioapi.h"
+#include <minizip/ioapi.h>
namespace tflite {
namespace metadata {

@ -1,41 +0,0 @@
From 385068e1eb1cde9629d18ceee1fd13255c70c806 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Fri, 22 Jul 2022 18:29:24 +0000
Subject: [PATCH] libstdc++: use math.h in blink::AdjustMaskLayerGeometry
libstdc++ does not implement std::ceilf. Use ceilf from math.h
instead.
Bug: 957519
Change-Id: I03b5e0a1eb73fdeae34d5f3d2f2e9c8871c52543
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3782841
Commit-Queue: Stephan Hartmann <stha09@googlemail.com>
Reviewed-by: Juanmi Huertas <juanmihd@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1027342}
---
diff --git a/third_party/blink/renderer/platform/graphics/compositing/adjust_mask_layer_geometry.cc b/third_party/blink/renderer/platform/graphics/compositing/adjust_mask_layer_geometry.cc
index 4abe1d9..b5b43da 100644
--- a/third_party/blink/renderer/platform/graphics/compositing/adjust_mask_layer_geometry.cc
+++ b/third_party/blink/renderer/platform/graphics/compositing/adjust_mask_layer_geometry.cc
@@ -4,8 +4,9 @@
#include "third_party/blink/renderer/platform/graphics/compositing/adjust_mask_layer_geometry.h"
+#include <math.h>
#include <algorithm>
-#include <cmath>
+
#include "third_party/blink/renderer/platform/graphics/paint/geometry_mapper.h"
#include "third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h"
#include "ui/gfx/geometry/size.h"
@@ -29,8 +30,7 @@
// Map a screen pixel into the layer.
GeometryMapper::SourceToDestinationRect(TransformPaintPropertyNode::Root(),
transform, pixel_rect);
- int outset =
- std::ceilf(std::max(pixel_rect.width(), pixel_rect.height()) * 2);
+ int outset = ceilf(std::max(pixel_rect.width(), pixel_rect.height()) * 2);
// Don't expand too far in extreme cases.
constexpr int kMaxOutset = 1000;
outset = std::min(kMaxOutset, outset);

@ -1,26 +0,0 @@
From 8959d9d1c6e4ed083c278ab9e8def20a409052b9 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Fri, 22 Jul 2022 16:51:28 +0000
Subject: [PATCH] IWYU: add memory for std::unique_ptr in disk_cache::Bitmap
Bug: 957519
Change-Id: I123198345e5f9062329b7eabe980f312525c268b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3779530
Reviewed-by: Maks Orlovich <morlovich@chromium.org>
Commit-Queue: Stephan Hartmann <stha09@googlemail.com>
Cr-Commit-Position: refs/heads/main@{#1027289}
---
diff --git a/net/disk_cache/blockfile/bitmap.h b/net/disk_cache/blockfile/bitmap.h
index 07806cf..9ffa98b9 100644
--- a/net/disk_cache/blockfile/bitmap.h
+++ b/net/disk_cache/blockfile/bitmap.h
@@ -8,6 +8,8 @@
#include <stdint.h>
#include <string.h>
+#include <memory>
+
#include "base/memory/raw_ptr.h"
#include "net/base/net_export.h"

@ -1,161 +0,0 @@
From 632aad0141fe0008fa9babba4f1f514222fa2cda Mon Sep 17 00:00:00 2001
From: Matthew Denton <mpdenton@chromium.org>
Date: Mon, 01 Aug 2022 21:45:28 +0000
Subject: [PATCH] [Linux sandbox] cleanup TrapRegistry's "atomics"
TrapRegistry uses some hacky asm statements as compiler memory barriers
to prevent a signal handler from accessing a deleted array (in the case
that the store of the pointer to the new array is reordered after the
deletion of the old array and the signal handler grabs a pointer to the
old array after it's deleted).
We have std::atomic_signal_fence for this now, so this uses it.
This also changes the |trap_array_| pointer back to a raw pointer from
a raw_ptr. Usage of raw_ptr might be awkward as it is also accessed in
a signal handler, and in fact |trap_array_| is an owning pointer
anyway so raw_ptr is unnecessary.
This came up in https://crrev.com/c/3789266 in which the use of raw_ptr
with the hacky compiler barriers was not supported by GCC.
SMALL ADDITION: This also removes raw_ptr from the arch_sigsys struct; it was a raw pointer to a code instruction and likely would not have worked. It is also never dereferenced (only its value is used).
NOTE 1: In technicality, all non-local variables accessed by the signal
handler must be either lock-free std::atomics or volatile sig_atomic_t.
None of Chrome's code does this and in fact, glibc just typedefs
sig_atomic_t to int. The std::atomic_signal_fence is enough on any
architecture.
NOTE 2: This race condition is unlikely to ever happen even without
compiler barriers. The only time we might be modifying the
|trap_array_| and also accessing it from a signal handler, we must
have already applied a seccomp sandbox that uses traps, and now be
applying another one that uses traps. And to replace the deleted object,
the second sandbox must be getting applied in a multithreaded
environment, otherwise there would be no allocations after the free.
Bug: 819294
Change-Id: I9f1cd417446dd863805a303e9b111bc862cb9ae2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3788911
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1030277}
---
diff --git a/sandbox/linux/seccomp-bpf/trap.cc b/sandbox/linux/seccomp-bpf/trap.cc
index cb71a9b..b0c0257 100644
--- a/sandbox/linux/seccomp-bpf/trap.cc
+++ b/sandbox/linux/seccomp-bpf/trap.cc
@@ -12,12 +12,13 @@
#include <sys/syscall.h>
#include <algorithm>
+#include <atomic>
#include <limits>
#include <tuple>
#include "base/compiler_specific.h"
#include "base/logging.h"
-#include "base/memory/raw_ptr.h"
+#include "base/memory/raw_ptr_exclusion.h"
#include "build/build_config.h"
#include "sandbox/linux/bpf_dsl/seccomp_macros.h"
#include "sandbox/linux/seccomp-bpf/die.h"
@@ -29,7 +30,9 @@
namespace {
struct arch_sigsys {
- raw_ptr<void> ip;
+ // This is not raw_ptr because it is a pointer to a code address given to us
+ // by the kernel.
+ RAW_PTR_EXCLUSION void* ip;
int nr;
unsigned int arch;
};
@@ -77,11 +80,7 @@
namespace sandbox {
-Trap::Trap()
- : trap_array_(nullptr),
- trap_array_size_(0),
- trap_array_capacity_(0),
- has_unsafe_traps_(false) {
+Trap::Trap() {
// Set new SIGSYS handler
struct sigaction sa = {};
// In some toolchain, sa_sigaction is not declared in struct sigaction.
@@ -239,7 +238,7 @@
struct arch_seccomp_data data = {
static_cast<int>(SECCOMP_SYSCALL(ctx)),
SECCOMP_ARCH,
- reinterpret_cast<uint64_t>(sigsys.ip.get()),
+ reinterpret_cast<uint64_t>(sigsys.ip),
{static_cast<uint64_t>(SECCOMP_PARM1(ctx)),
static_cast<uint64_t>(SECCOMP_PARM2(ctx)),
static_cast<uint64_t>(SECCOMP_PARM3(ctx)),
@@ -333,24 +332,11 @@
TrapKey* new_trap_array = new TrapKey[trap_array_capacity_];
std::copy_n(old_trap_array, trap_array_size_, new_trap_array);
- // Language specs are unclear on whether the compiler is allowed to move
- // the "delete[]" above our preceding assignments and/or memory moves,
- // iff the compiler believes that "delete[]" doesn't have any other
- // global side-effects.
- // We insert optimization barriers to prevent this from happening.
- // The first barrier is probably not needed, but better be explicit in
- // what we want to tell the compiler.
- // The clang developer mailing list couldn't answer whether this is a
- // legitimate worry; but they at least thought that the barrier is
- // sufficient to prevent the (so far hypothetical) problem of re-ordering
- // of instructions by the compiler.
- //
- // TODO(mdempsky): Try to clean this up using base/atomicops or C++11
- // atomics; see crbug.com/414363.
- asm volatile("" : "=r"(new_trap_array) : "0"(new_trap_array) : "memory");
trap_array_ = new_trap_array;
- asm volatile("" : "=r"(trap_array_) : "0"(trap_array_) : "memory");
-
+ // Prevent the compiler from moving delete[] before the store of the
+ // |new_trap_array|, otherwise a concurrent SIGSYS may see a |trap_array_|
+ // that still points to |old_trap_array| after it has been deleted.
+ std::atomic_signal_fence(std::memory_order_release);
delete[] old_trap_array;
}
diff --git a/sandbox/linux/seccomp-bpf/trap.h b/sandbox/linux/seccomp-bpf/trap.h
index cc17d26..37d2029 100644
--- a/sandbox/linux/seccomp-bpf/trap.h
+++ b/sandbox/linux/seccomp-bpf/trap.h
@@ -10,7 +10,7 @@
#include <map>
-#include "base/memory/raw_ptr.h"
+#include "base/memory/raw_ptr_exclusion.h"
#include "sandbox/linux/bpf_dsl/trap_registry.h"
#include "sandbox/linux/system_headers/linux_signal.h"
#include "sandbox/sandbox_export.h"
@@ -75,11 +75,15 @@
// events.
static Trap* global_trap_;
- TrapIds trap_ids_; // Maps from TrapKeys to numeric ids
- raw_ptr<TrapKey> trap_array_; // Array of TrapKeys indexed by ids
- size_t trap_array_size_; // Currently used size of array
- size_t trap_array_capacity_; // Currently allocated capacity of array
- bool has_unsafe_traps_; // Whether unsafe traps have been enabled
+ TrapIds trap_ids_; // Maps from TrapKeys to numeric ids
+ // Array of TrapKeys indexed by ids.
+ //
+ // This is not a raw_ptr as it is an owning pointer anyway, and is meant to be
+ // used between normal code and signal handlers.
+ RAW_PTR_EXCLUSION TrapKey* trap_array_ = nullptr;
+ size_t trap_array_size_ = 0; // Currently used size of array
+ size_t trap_array_capacity_ = 0; // Currently allocated capacity of array
+ bool has_unsafe_traps_ = false; // Whether unsafe traps have been enabled
};
} // namespace sandbox

@ -1,24 +0,0 @@
From 41dca8bd0c5e8ac5197d7477c6f01556fb88fb43 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Sun, 14 Aug 2022 08:41:11 +0000
Subject: [PATCH] IWYU: add vector for std::vector in browser_finder.h
---
chrome/browser/ui/browser_finder.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/chrome/browser/ui/browser_finder.h b/chrome/browser/ui/browser_finder.h
index f885be0..ad7a184 100644
--- a/chrome/browser/ui/browser_finder.h
+++ b/chrome/browser/ui/browser_finder.h
@@ -6,6 +6,7 @@
#define CHROME_BROWSER_UI_BROWSER_FINDER_H_
#include <stddef.h>
+#include <vector>
#include "ui/display/types/display_constants.h"
#include "ui/gfx/native_widget_types.h"
--
2.35.1

@ -1,30 +0,0 @@
From 72b19a6a725809f872a7e7525c9a83bcbda85ec7 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Mon, 25 Jul 2022 09:19:19 +0000
Subject: [PATCH] GCC: make raw_ptr move assignment operator noexcept
Required in content::LevelDBScopesOptions, because move assignment
operator is noexcept too.
Bug: 3762913
Change-Id: Ic55ade0e15457eb7349fe24203307972d9030a8e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3782669
Reviewed-by: Keishi Hattori <keishi@chromium.org>
Commit-Queue: Stephan Hartmann <stha09@googlemail.com>
Reviewed-by: Bartek Nowierski <bartekn@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1027669}
---
diff --git a/base/memory/raw_ptr.h b/base/memory/raw_ptr.h
index 5d8c1cfd..9a62f03 100644
--- a/base/memory/raw_ptr.h
+++ b/base/memory/raw_ptr.h
@@ -796,7 +796,7 @@
return *this;
}
- ALWAYS_INLINE raw_ptr& operator=(raw_ptr&& p) {
+ ALWAYS_INLINE raw_ptr& operator=(raw_ptr&& p) noexcept {
if (LIKELY(this != &p)) {
Impl::ReleaseWrappedPtr(wrapped_ptr_);
wrapped_ptr_ = p.wrapped_ptr_;

@ -1,26 +0,0 @@
diff -up chromium-105.0.5195.125/ui/ozone/platform/wayland/host/wayland_window.cc.fix-wayland-menu chromium-105.0.5195.125/ui/ozone/platform/wayland/host/wayland_window.cc
--- chromium-105.0.5195.125/ui/ozone/platform/wayland/host/wayland_window.cc.fix-wayland-menu 2022-09-23 18:29:51.872286569 +0000
+++ chromium-105.0.5195.125/ui/ozone/platform/wayland/host/wayland_window.cc 2022-09-23 18:30:18.819376074 +0000
@@ -950,7 +950,7 @@ void WaylandWindow::ProcessPendingBounds
// window has been applied.
SetWindowGeometry(pending_bounds_dip_);
AckConfigure(serial);
- root_surface()->Commit();
+ connection()->ScheduleFlush();
} else if (!pending_configures_.empty() &&
pending_bounds_dip_.size() ==
pending_configures_.back().bounds_dip.size()) {
diff -up chromium-105.0.5195.125/ui/ozone/platform/wayland/wayland_buffer_manager_unittest.cc.fix-wayland-menu chromium-105.0.5195.125/ui/ozone/platform/wayland/wayland_buffer_manager_unittest.cc
--- chromium-105.0.5195.125/ui/ozone/platform/wayland/wayland_buffer_manager_unittest.cc.fix-wayland-menu 2022-09-23 18:30:41.936594397 +0000
+++ chromium-105.0.5195.125/ui/ozone/platform/wayland/wayland_buffer_manager_unittest.cc 2022-09-23 18:31:31.703911576 +0000
@@ -1103,9 +1103,7 @@ TEST_P(WaylandBufferManagerTest, TestCom
EXPECT_CALL(*xdg_surface, AckConfigure(_)).Times(1);
EXPECT_CALL(*mock_surface, Attach(_, _, _)).Times(1);
EXPECT_CALL(*mock_surface, Frame(_)).Times(1);
- // Commit() can be called a second time as part of the configure -> ack
- // sequence.
- EXPECT_CALL(*mock_surface, Commit()).Times(testing::Between(1, 2));
+ EXPECT_CALL(*mock_surface, Commit()).Times(1);
ActivateSurface(mock_surface->xdg_surface());
Sync();

@ -1,207 +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/opus.gn.gnsystem chromium-105.0.5195.52/build/linux/unbundle/opus.gn
--- chromium-105.0.5195.52/build/linux/unbundle/opus.gn.gnsystem 2022-08-24 20:27:57.000000000 +0000
+++ chromium-105.0.5195.52/build/linux/unbundle/opus.gn 2022-09-01 12:41:57.564878845 +0000
@@ -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-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',

@ -0,0 +1,65 @@
diff -up chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc.system-minizip chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc
--- chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc.system-minizip 2022-11-14 11:48:36.877164150 +0100
+++ chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc 2022-11-14 11:51:55.791949494 +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-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc.system-minizip chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc
--- chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc.system-minizip 2022-11-14 11:48:36.877164150 +0100
+++ chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc 2022-11-14 11:52:36.233736347 +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-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc.system-minizip chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc
--- chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc.system-minizip 2022-11-09 01:41:13.000000000 +0100
+++ chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc 2022-11-14 11:48:36.877164150 +0100
@@ -19,7 +19,7 @@ limitations under the License.
#include <cstdio>
#include "absl/strings/string_view.h" // from @com_google_absl
-#include "contrib/minizip/ioapi.h"
+#include <minizip/ioapi.h>
namespace tflite {
namespace metadata {
diff -up chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h.system-minizip chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h
diff -up chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc.system-minizip chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc
--- chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc.system-minizip 2022-11-14 11:48:36.877164150 +0100
+++ chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc 2022-11-14 11:53:57.365294462 +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-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h.system-minizip chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h
--- chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h.system-minizip 2022-11-14 11:48:36.877164150 +0100
+++ chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h 2022-11-14 11:54:21.318756738 +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 {

@ -0,0 +1,39 @@
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',

@ -1,7 +1,7 @@
diff -up chromium-103.0.5060.53/remoting/host/mojom/remoting_mojom_traits.h.remoting-extra-qualification chromium-103.0.5060.53/remoting/host/mojom/remoting_mojom_traits.h
--- chromium-103.0.5060.53/remoting/host/mojom/remoting_mojom_traits.h.remoting-extra-qualification 2022-06-27 22:16:20.214876025 +0000
+++ chromium-103.0.5060.53/remoting/host/mojom/remoting_mojom_traits.h 2022-06-28 12:44:09.663890774 +0000
@@ -37,7 +37,7 @@
diff -up chromium-107.0.5304.110/remoting/host/mojom/remoting_mojom_traits.h.remoting-extra-qualification chromium-107.0.5304.110/remoting/host/mojom/remoting_mojom_traits.h
--- chromium-107.0.5304.110/remoting/host/mojom/remoting_mojom_traits.h.remoting-extra-qualification 2022-11-20 19:56:00.897740616 +0100
+++ chromium-107.0.5304.110/remoting/host/mojom/remoting_mojom_traits.h 2022-11-21 09:21:47.967180137 +0100
@@ -42,7 +42,7 @@
namespace mojo {
template <>
@ -10,7 +10,7 @@ diff -up chromium-103.0.5060.53/remoting/host/mojom/remoting_mojom_traits.h.remo
public:
static bool value(bool value) { return value; }
@@ -48,7 +48,7 @@ class mojo::StructTraits<remoting::mojom
@@ -53,7 +53,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
@ -19,7 +19,7 @@ diff -up chromium-103.0.5060.53/remoting/host/mojom/remoting_mojom_traits.h.remo
public:
static float value(float value) { return value; }
@@ -59,7 +59,7 @@ class mojo::StructTraits<remoting::mojom
@@ -64,7 +64,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
@ -28,7 +28,7 @@ diff -up chromium-103.0.5060.53/remoting/host/mojom/remoting_mojom_traits.h.remo
public:
static int32_t value(int32_t value) { return value; }
@@ -71,7 +71,7 @@ class mojo::StructTraits<remoting::mojom
@@ -76,7 +76,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
@ -37,7 +37,7 @@ diff -up chromium-103.0.5060.53/remoting/host/mojom/remoting_mojom_traits.h.remo
public:
static uint32_t value(uint32_t value) { return value; }
@@ -83,7 +83,7 @@ class mojo::StructTraits<remoting::mojom
@@ -88,7 +88,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
@ -46,7 +46,7 @@ diff -up chromium-103.0.5060.53/remoting/host/mojom/remoting_mojom_traits.h.remo
::webrtc::DesktopCaptureOptions> {
public:
static bool use_update_notifications(
@@ -108,7 +108,7 @@ class mojo::StructTraits<remoting::mojom
@@ -113,7 +113,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
@ -55,7 +55,7 @@ diff -up chromium-103.0.5060.53/remoting/host/mojom/remoting_mojom_traits.h.remo
::remoting::DesktopEnvironmentOptions> {
public:
static bool enable_curtaining(
@@ -205,7 +205,7 @@ struct EnumTraits<remoting::mojom::Deskt
@@ -210,7 +210,7 @@ struct EnumTraits<remoting::mojom::Deskt
};
template <>
@ -64,7 +64,7 @@ diff -up chromium-103.0.5060.53/remoting/host/mojom/remoting_mojom_traits.h.remo
::webrtc::DesktopRect> {
public:
static int32_t left(const ::webrtc::DesktopRect& rect) { return rect.left(); }
@@ -225,7 +225,7 @@ class mojo::StructTraits<remoting::mojom
@@ -230,7 +230,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
@ -73,7 +73,7 @@ diff -up chromium-103.0.5060.53/remoting/host/mojom/remoting_mojom_traits.h.remo
::webrtc::DesktopSize> {
public:
static int32_t width(const ::webrtc::DesktopSize& size) {
@@ -241,7 +241,7 @@ class mojo::StructTraits<remoting::mojom
@@ -246,7 +246,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
@ -82,7 +82,7 @@ diff -up chromium-103.0.5060.53/remoting/host/mojom/remoting_mojom_traits.h.remo
::webrtc::DesktopVector> {
public:
static int32_t x(const ::webrtc::DesktopVector& vector) { return vector.x(); }
@@ -253,7 +253,7 @@ class mojo::StructTraits<remoting::mojom
@@ -258,7 +258,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
@ -91,7 +91,7 @@ diff -up chromium-103.0.5060.53/remoting/host/mojom/remoting_mojom_traits.h.remo
::webrtc::MouseCursor> {
public:
static const webrtc::DesktopSize& image_size(
@@ -506,7 +506,7 @@ struct EnumTraits<remoting::mojom::Audio
@@ -511,7 +511,7 @@ struct EnumTraits<remoting::mojom::Audio
};
template <>
@ -100,7 +100,7 @@ diff -up chromium-103.0.5060.53/remoting/host/mojom/remoting_mojom_traits.h.remo
::std::unique_ptr<::remoting::AudioPacket>> {
public:
static int32_t timestamp(
@@ -544,7 +544,7 @@ class mojo::StructTraits<remoting::mojom
@@ -549,7 +549,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
@ -109,16 +109,34 @@ diff -up chromium-103.0.5060.53/remoting/host/mojom/remoting_mojom_traits.h.remo
::remoting::protocol::ClipboardEvent> {
public:
static const std::string& mime_type(
@@ -562,7 +562,7 @@ class mojo::StructTraits<remoting::mojom
@@ -567,7 +567,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::UnionTraits<
+class UnionTraits<
remoting::mojom::ReadChunkResultDataView,
::remoting::Result<std::vector<uint8_t>,
::remoting::protocol::FileTransfer_Error>> {
@@ -606,7 +606,7 @@ class mojo::UnionTraits<
};
template <>
-class mojo::StructTraits<remoting::mojom::FileTransferErrorDataView,
+class StructTraits<remoting::mojom::FileTransferErrorDataView,
::remoting::protocol::FileTransfer_Error> {
public:
static ::remoting::protocol::FileTransfer_Error_Type type(
@@ -745,7 +745,7 @@ class mojo::UnionTraits<
#endif // BUILDFLAG(IS_WIN)
template <>
-class mojo::StructTraits<remoting::mojom::KeyboardLayoutDataView,
+class StructTraits<remoting::mojom::KeyboardLayoutDataView,
::remoting::protocol::KeyboardLayout> {
public:
static const ::google::protobuf::
@@ -576,7 +576,7 @@ class mojo::StructTraits<remoting::mojom
@@ -759,7 +759,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
@ -127,7 +145,7 @@ diff -up chromium-103.0.5060.53/remoting/host/mojom/remoting_mojom_traits.h.remo
::remoting::protocol::KeyboardLayout_KeyAction> {
public:
static remoting::mojom::KeyActionDataView::Tag GetTag(
@@ -609,7 +609,7 @@ class mojo::UnionTraits<remoting::mojom:
@@ -792,7 +792,7 @@ class mojo::UnionTraits<remoting::mojom:
};
template <>
@ -136,7 +154,7 @@ diff -up chromium-103.0.5060.53/remoting/host/mojom/remoting_mojom_traits.h.remo
::remoting::protocol::KeyboardLayout_KeyBehavior> {
public:
static const ::google::protobuf::Map<
@@ -967,7 +967,7 @@ struct EnumTraits<remoting::mojom::Layou
@@ -1150,7 +1150,7 @@ struct EnumTraits<remoting::mojom::Layou
};
template <>
@ -145,7 +163,7 @@ diff -up chromium-103.0.5060.53/remoting/host/mojom/remoting_mojom_traits.h.remo
::remoting::protocol::KeyEvent> {
public:
static bool pressed(const ::remoting::protocol::KeyEvent& event) {
@@ -1003,7 +1003,7 @@ class mojo::StructTraits<remoting::mojom
@@ -1186,7 +1186,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
@ -154,7 +172,7 @@ diff -up chromium-103.0.5060.53/remoting/host/mojom/remoting_mojom_traits.h.remo
::remoting::protocol::MouseEvent> {
public:
static absl::optional<int32_t> x(
@@ -1092,7 +1092,7 @@ class mojo::StructTraits<remoting::mojom
@@ -1275,7 +1275,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
@ -163,7 +181,7 @@ diff -up chromium-103.0.5060.53/remoting/host/mojom/remoting_mojom_traits.h.remo
::remoting::ScreenResolution> {
public:
static const ::webrtc::DesktopSize& dimensions(
@@ -1110,7 +1110,7 @@ class mojo::StructTraits<remoting::mojom
@@ -1293,7 +1293,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
@ -172,7 +190,7 @@ diff -up chromium-103.0.5060.53/remoting/host/mojom/remoting_mojom_traits.h.remo
::remoting::protocol::TextEvent> {
public:
static const std::string& text(const ::remoting::protocol::TextEvent& event) {
@@ -1122,7 +1122,7 @@ class mojo::StructTraits<remoting::mojom
@@ -1305,7 +1305,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
@ -181,7 +199,7 @@ diff -up chromium-103.0.5060.53/remoting/host/mojom/remoting_mojom_traits.h.remo
::remoting::protocol::TouchEventPoint> {
public:
static uint32_t id(const ::remoting::protocol::TouchEventPoint& event) {
@@ -1199,7 +1199,7 @@ struct EnumTraits<remoting::mojom::Touch
@@ -1382,7 +1382,7 @@ struct EnumTraits<remoting::mojom::Touch
};
template <>
@ -190,7 +208,7 @@ diff -up chromium-103.0.5060.53/remoting/host/mojom/remoting_mojom_traits.h.remo
::remoting::protocol::TouchEvent> {
public:
static ::remoting::protocol::TouchEvent::TouchEventType event_type(
@@ -1259,7 +1259,7 @@ struct EnumTraits<remoting::mojom::Trans
@@ -1442,7 +1442,7 @@ struct EnumTraits<remoting::mojom::Trans
};
template <>
@ -199,7 +217,7 @@ diff -up chromium-103.0.5060.53/remoting/host/mojom/remoting_mojom_traits.h.remo
::remoting::protocol::TransportRoute> {
public:
static ::remoting::protocol::TransportRoute::RouteType type(
@@ -1406,7 +1406,7 @@ struct EnumTraits<remoting::mojom::Proto
@@ -1589,7 +1589,7 @@ struct EnumTraits<remoting::mojom::Proto
};
template <>
@ -208,7 +226,7 @@ diff -up chromium-103.0.5060.53/remoting/host/mojom/remoting_mojom_traits.h.remo
::remoting::protocol::VideoLayout> {
public:
static const ::google::protobuf::RepeatedPtrField<
@@ -1425,7 +1425,7 @@ class mojo::StructTraits<remoting::mojom
@@ -1608,7 +1608,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>

@ -1,19 +0,0 @@
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;

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

@ -1,15 +0,0 @@
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);
}

@ -1,13 +0,0 @@
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) {

@ -1,81 +0,0 @@
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
}

@ -1,11 +0,0 @@
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++",
]
}
}

@ -1,23 +0,0 @@
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" ]

@ -1,14 +0,0 @@
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*,

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

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

@ -1,11 +0,0 @@
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",
]
}

@ -1,13 +0,0 @@
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) && \

@ -1,12 +0,0 @@
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;

@ -1,539 +0,0 @@
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;

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

@ -1,49 +0,0 @@
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") {

@ -1,28 +0,0 @@
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 {

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

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

@ -1,13 +0,0 @@
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);

@ -1,24 +0,0 @@
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);
}

@ -1,12 +0,0 @@
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",
]

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

@ -1,39 +0,0 @@
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;
}

@ -1,79 +0,0 @@
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(

@ -1,131 +0,0 @@
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"

@ -1,28 +0,0 @@
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;
}
}

@ -1,12 +0,0 @@
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)

@ -1,11 +0,0 @@
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"

@ -1,108 +0,0 @@
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;
}

@ -1,52 +0,0 @@
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))

@ -1,19 +0,0 @@
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)

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

@ -1,44 +0,0 @@
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 {

@ -1,23 +0,0 @@
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" ]

@ -1,201 +0,0 @@
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;

@ -1,190 +0,0 @@
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) {

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

@ -1,22 +0,0 @@
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 {

@ -1,45 +0,0 @@
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);

@ -1,11 +0,0 @@
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"

@ -1,19 +0,0 @@
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);
}

@ -1,13 +0,0 @@
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;

@ -1,52 +0,0 @@
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);
};

@ -1,31 +0,0 @@
From 5b2ff215473e0526b5b24aeff4ad90d369b21c75 Mon Sep 17 00:00:00 2001
From: Julien Isorce <julien.isorce@chromium.org>
Date: Wed, 05 Feb 2020 17:59:59 +0000
Subject: [PATCH] Fix vaapi with GLX
The signature of ui's gl::GLImageGLX has changed a little bit
since "mplement GpuMemoryBuffers for EGL and GLX":
https://chromium-review.googlesource.com/c/chromium/src/+/1984712
Bug: 1031269
Test: build with use_vaapi=true and run with --use-gl=desktop, see
Change-Id: I80b07294b9abdfa8233aaf79f7d9ec4c58117090
https: //chromium.googlesource.com/chromium/src.git/+/refs/heads/master/docs/gpu/vaapi.md#vaapi-on-linux
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2036494
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Miguel Casas <mcasas@chromium.org>
Commit-Queue: Julien Isorce <julien.isorce@chromium.org>
Cr-Commit-Position: refs/heads/master@{#738595}
---
--- 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";

@ -1,13 +0,0 @@
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) {

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

@ -1,11 +0,0 @@
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"

@ -1,79 +0,0 @@
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
}

@ -1,67 +0,0 @@
From aa4ba19043db1f41bb0982d4b50f4f00151930f4 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Tue, 26 May 2020 15:29:49 +0000
Subject: [PATCH] GCC: fix template specialization in content::WebUI
GCC complains that explicit specialization in non-namespace scope
is happening for GetValue. Move the methods outside
the class definition.
Bug: 819294
Change-Id: I109472a0b6fa7ddab3529bc92bba680252b40f67
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2128307
Reviewed-by: Camille Lamy <clamy@chromium.org>
Commit-Queue: Camille Lamy <clamy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#771818}
---
diff --git a/content/public/browser/web_ui.h b/content/public/browser/web_ui.h
index 4e6aa0e..fa6f10c 100644
--- a/content/public/browser/web_ui.h
+++ b/content/public/browser/web_ui.h
@@ -138,22 +138,6 @@
template <typename T>
static T GetValue(const base::Value& value);
- template <>
- inline bool GetValue<bool>(const base::Value& value) {
- return value.GetBool();
- }
-
- template <>
- inline int GetValue<int>(const base::Value& value) {
- return value.GetInt();
- }
-
- template <>
- inline const std::string& GetValue<const std::string&>(
- const base::Value& value) {
- return value.GetString();
- }
-
template <typename Is, typename... Args>
struct Call;
@@ -169,6 +153,22 @@
};
};
+template <>
+inline bool WebUI::GetValue<bool>(const base::Value& value) {
+ return value.GetBool();
+}
+
+template <>
+inline int WebUI::GetValue<int>(const base::Value& value) {
+ return value.GetInt();
+}
+
+template <>
+inline const std::string& WebUI::GetValue<const std::string&>(
+ const base::Value& value) {
+ return value.GetString();
+}
+
} // namespace content
#endif // CONTENT_PUBLIC_BROWSER_WEB_UI_H_

@ -1,25 +0,0 @@
From 55ce03222ee4c5ed2442278264028f6fb5bffa34 Mon Sep 17 00:00:00 2001
From: David Seifert <david.seifert@gmail.com>
Date: Sun, 03 May 2020 17:05:43 +0200
Subject: [PATCH] Add compatibility workaround for GCC 6/7/8
Bug: 819294
Change-Id: I632c4ecf7d7f9876b37a6cff05c0408125656257
---
diff --git a/third_party/blink/renderer/platform/wtf/hash_table.h b/third_party/blink/renderer/platform/wtf/hash_table.h
index 5a4468d..9dc95fa 100644
--- a/third_party/blink/renderer/platform/wtf/hash_table.h
+++ b/third_party/blink/renderer/platform/wtf/hash_table.h
@@ -673,7 +673,10 @@
return IsEmptyBucket(key) || IsDeletedBucket(key);
}
static bool IsEmptyOrDeletedBucketSafe(const Value& value) {
- alignas(std::max(alignof(Key), sizeof(size_t))) char buf[sizeof(Key)];
+ // GCC 6, 7 and 8 require this indirection due to a constexpr bug:
+ // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94929
+ constexpr size_t kAlignment = std::max(alignof(Key), sizeof(size_t));
+ alignas(kAlignment) char buf[sizeof(Key)];
const Key& key = Extractor::ExtractSafe(value, &buf);
return IsEmptyBucket(key) || IsDeletedBucket(key);
}

@ -1,41 +0,0 @@
From 4abcf0a76a7cb5c343be7d17c60cb908f3673c3d Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Thu, 9 Apr 2020 17:03:38 +0000
Subject: [PATCH] libstdc++: replace std::any_of in blink::SerializedScriptValue
Use of std::any_of requires STL compliant iterator. However,
HashTableIterator does not define iterator_tag and therefore
is no STL iterator.
---
.../core/v8/serialization/serialized_script_value.h | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h
index bbf10ef..53d98c9 100644
--- a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h
+++ b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h
@@ -268,12 +268,17 @@ class CORE_EXPORT SerializedScriptValue
MessagePortChannelArray& GetStreamChannels() { return stream_channels_; }
bool IsLockedToAgentCluster() const {
+ auto AnyOfIsLockedToAgentCluster = [&]() {
+ for (auto entry = attachments_.begin();
+ entry != attachments_.end(); ++entry) {
+ if (entry->value->IsLockedToAgentCluster())
+ return true;
+ }
+ return false;
+ };
return !wasm_modules_.IsEmpty() ||
!shared_array_buffers_contents_.IsEmpty() ||
- std::any_of(attachments_.begin(), attachments_.end(),
- [](const auto& entry) {
- return entry.value->IsLockedToAgentCluster();
- });
+ AnyOfIsLockedToAgentCluster();
}
// Returns true after serializing script values that remote origins cannot
--
2.24.1

@ -1,12 +0,0 @@
diff -up chromium-83.0.4103.61/ui/ozone/platform/wayland/host/xdg_surface_wrapper_impl.h.gcc-ozone-wayland chromium-83.0.4103.61/ui/ozone/platform/wayland/host/xdg_surface_wrapper_impl.h
--- chromium-83.0.4103.61/ui/ozone/platform/wayland/host/xdg_surface_wrapper_impl.h.gcc-ozone-wayland 2020-06-05 09:16:08.903282140 -0400
+++ chromium-83.0.4103.61/ui/ozone/platform/wayland/host/xdg_surface_wrapper_impl.h 2020-06-05 09:16:31.131863653 -0400
@@ -68,7 +68,7 @@ class XDGSurfaceWrapperImpl : public She
static void CloseTopLevelV6(void* data,
struct zxdg_toplevel_v6* zxdg_toplevel_v6);
- xdg_surface* xdg_surface() const;
+ struct xdg_surface* xdg_surface() const;
zxdg_surface_v6* zxdg_surface() const;
private:

@ -1,13 +0,0 @@
diff -up chromium-83.0.4103.61/base/test/BUILD.gn.nofontconfigcache chromium-83.0.4103.61/base/test/BUILD.gn
--- chromium-83.0.4103.61/base/test/BUILD.gn.nofontconfigcache 2020-05-29 12:30:03.409707011 -0400
+++ chromium-83.0.4103.61/base/test/BUILD.gn 2020-05-29 12:30:22.593275137 -0400
@@ -188,9 +188,6 @@ static_library("test_support") {
sources += [ "test_file_util_linux.cc" ]
public_deps += [ ":fontconfig_util_linux" ]
data_deps = [ "//third_party/test_fonts" ]
- if (current_toolchain == host_toolchain) {
- data_deps += [ ":do_generate_fontconfig_caches" ]
- }
}
if (is_mac) {

@ -1,34 +0,0 @@
diff -up chromium-83.0.4103.61/chrome/browser/search/background/ntp_backgrounds.h.missing-cstddef chromium-83.0.4103.61/chrome/browser/search/background/ntp_backgrounds.h
--- chromium-83.0.4103.61/chrome/browser/search/background/ntp_backgrounds.h.missing-cstddef 2020-05-18 14:39:11.000000000 -0400
+++ chromium-83.0.4103.61/chrome/browser/search/background/ntp_backgrounds.h 2020-05-29 15:37:52.370693881 -0400
@@ -6,6 +6,7 @@
#define CHROME_BROWSER_SEARCH_BACKGROUND_NTP_BACKGROUNDS_H_
#include <array>
+#include <cstddef>
class GURL;
diff -up chromium-83.0.4103.61/media/cdm/supported_cdm_versions.h.missing-cstddef chromium-83.0.4103.61/media/cdm/supported_cdm_versions.h
diff -up chromium-83.0.4103.61/third_party/angle/include/platform/Platform.h.missing-cstddef chromium-83.0.4103.61/third_party/angle/include/platform/Platform.h
--- chromium-83.0.4103.61/third_party/angle/include/platform/Platform.h.missing-cstddef 2020-05-29 15:37:52.374693782 -0400
+++ chromium-83.0.4103.61/third_party/angle/include/platform/Platform.h 2020-05-29 15:39:47.343874233 -0400
@@ -12,6 +12,7 @@
#include <stdint.h>
#include <stdlib.h>
#include <array>
+#include <cstddef>
#define EGL_PLATFORM_ANGLE_PLATFORM_METHODS_ANGLEX 0x3482
diff -up chromium-83.0.4103.61/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h.missing-cstddef chromium-83.0.4103.61/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
--- chromium-83.0.4103.61/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h.missing-cstddef 2020-05-18 14:42:43.000000000 -0400
+++ chromium-83.0.4103.61/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h 2020-05-29 15:37:52.376693733 -0400
@@ -12,6 +12,7 @@
#define MODULES_AUDIO_PROCESSING_AEC3_CLOCKDRIFT_DETECTOR_H_
#include <array>
+#include <cstddef>
namespace webrtc {

@ -1,79 +0,0 @@
diff -up chromium-83.0.4103.61/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-83.0.4103.61/chrome/common/safe_browsing/BUILD.gn
--- chromium-83.0.4103.61/chrome/common/safe_browsing/BUILD.gn.nounrar 2020-05-29 12:21:53.249790785 -0400
+++ chromium-83.0.4103.61/chrome/common/safe_browsing/BUILD.gn 2020-05-29 12:22:27.825004615 -0400
@@ -57,39 +57,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",
- "//base",
- "//base:i18n",
- "//components/safe_browsing/core:features",
- "//components/safe_browsing/core:file_type_policies",
- "//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",
@@ -156,7 +123,6 @@ source_set("safe_browsing") {
":archive_analyzer_results",
":binary_feature_extractor",
":download_type_util",
- ":rar_analyzer",
"//components/safe_browsing/core:features",
]
diff -up chromium-83.0.4103.61/chrome/common/safe_browsing/DEPS.nounrar chromium-83.0.4103.61/chrome/common/safe_browsing/DEPS
--- chromium-83.0.4103.61/chrome/common/safe_browsing/DEPS.nounrar 2020-05-18 14:39:13.000000000 -0400
+++ chromium-83.0.4103.61/chrome/common/safe_browsing/DEPS 2020-05-29 12:21:08.563806866 -0400
@@ -1,6 +1,5 @@
include_rules = [
"+components/safe_browsing",
"+third_party/protobuf",
- "+third_party/unrar",
"+third_party/zlib",
]
diff -up chromium-83.0.4103.61/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-83.0.4103.61/chrome/services/file_util/safe_archive_analyzer.cc
--- chromium-83.0.4103.61/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2020-05-18 14:39:13.000000000 -0400
+++ chromium-83.0.4103.61/chrome/services/file_util/safe_archive_analyzer.cc 2020-05-29 12:21:08.565806820 -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
}

@ -1,48 +0,0 @@
diff -up chromium-83.0.4103.97/third_party/skia/include/private/SkFloatingPoint.h.gcc-float-divide-by-zero chromium-83.0.4103.97/third_party/skia/include/private/SkFloatingPoint.h
--- chromium-83.0.4103.97/third_party/skia/include/private/SkFloatingPoint.h.gcc-float-divide-by-zero 2020-06-15 11:09:01.218290365 -0400
+++ chromium-83.0.4103.97/third_party/skia/include/private/SkFloatingPoint.h 2020-06-15 11:14:15.900470624 -0400
@@ -159,7 +159,15 @@ static inline int64_t sk_float_saturate2
// Cast double to float, ignoring any warning about too-large finite values being cast to float.
// Clang thinks this is undefined, but it's actually implementation defined to return either
// the largest float or infinity (one of the two bracketing representable floats). Good enough!
+#if defined(__GNUC__) && __GNUC__ >= 8
+__attribute__((no_sanitize("float-cast-overflow")))
+#else
+# if defined(__GNUC__)
+__attribute__((no_sanitize_undefined))
+# else
[[clang::no_sanitize("float-cast-overflow")]]
+# endif
+#endif
static inline float sk_double_to_float(double x) {
return static_cast<float>(x);
}
@@ -226,12 +234,28 @@ static inline float sk_float_rsqrt(float
// IEEE defines how float divide behaves for non-finite values and zero-denoms, but C does not
// so we have a helper that suppresses the possible undefined-behavior warnings.
+#if defined(__GNUC__) && __GNUC__ >= 8
+__attribute__((no_sanitize("float-divide-by-zero")))
+#else
+# if defined(__GNUC__)
+__attribute__((no_sanitize_undefined))
+# else
[[clang::no_sanitize("float-divide-by-zero")]]
+# endif
+#endif
static inline float sk_ieee_float_divide(float numer, float denom) {
return numer / denom;
}
+#if defined(__GNUC__) && __GNUC__ >= 8
+__attribute__((no_sanitize("float-divide-by-zero")))
+#else
+# if defined(__GNUC__)
+__attribute__((no_sanitize_undefined))
+# else
[[clang::no_sanitize("float-divide-by-zero")]]
+# endif
+#endif
static inline double sk_ieee_double_divide(double numer, double denom) {
return numer / denom;
}

@ -1,23 +0,0 @@
diff -up chromium-83.0.4103.97/media/gpu/vaapi/BUILD.gn.i686permissive chromium-83.0.4103.97/media/gpu/vaapi/BUILD.gn
--- chromium-83.0.4103.97/media/gpu/vaapi/BUILD.gn.i686permissive 2020-06-07 10:58:00.309383632 -0400
+++ chromium-83.0.4103.97/media/gpu/vaapi/BUILD.gn 2020-06-07 10:58:47.532340933 -0400
@@ -13,6 +13,10 @@ import("//ui/ozone/ozone.gni")
assert(is_linux) # is_chromeos is a subset of is_linux
assert(use_vaapi)
+config("vaapi_permissive") {
+ cflags = [ "-fpermissive" ]
+}
+
generate_stubs("libva_stubs") {
extra_header = "va_stub_header.fragment"
sigs = [ "va.sigs" ]
@@ -108,6 +112,8 @@ source_set("vaapi") {
]
}
+ configs += [ ":vaapi_permissive" ]
+
if (use_x11) {
deps += [ "//ui/gfx/x" ]
sources += [

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

@ -1,55 +0,0 @@
From c65b4d03c76da607b6b678c4a46baa75ca0cf7b3 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Wed, 27 May 2020 18:46:40 +0000
Subject: [PATCH] GCC: make base::FilePath move assignment operator noexcept
The move assignment operator in PaintPreviewClient::PaintPreviewData is
noexcept. Because this class has a member of type base::FilePath, the
move assignment operator of base::FilePath must be noexcept too.
Otherwise GCC fails like this:
../../components/paint_preview/browser/paint_preview_client.cc:107:1:
error: function 'paint_preview::PaintPreviewClient::PaintPreviewData&
paint_preview::PaintPreviewClient::PaintPreviewData::operator=
(paint_preview::PaintPreviewClient::PaintPreviewData&&)' defaulted on
its redeclaration with an exception-specification that differs from
the implicit exception-specification ''
107 | PaintPreviewClient::PaintPreviewData::operator=(
| ^~~~~~~~~~~~~~~~~~
Bug: 819294
Change-Id: I87b88a81e8af6b7e61f0d1a8c8444fd6707e50d2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2218168
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#772348}
---
diff --git a/base/files/file_path.cc b/base/files/file_path.cc
index 6dc6854..56c02d2b 100644
--- a/base/files/file_path.cc
+++ b/base/files/file_path.cc
@@ -186,7 +186,7 @@
FilePath& FilePath::operator=(const FilePath& that) = default;
-FilePath& FilePath::operator=(FilePath&& that) = default;
+FilePath& FilePath::operator=(FilePath&& that) noexcept = default;
bool FilePath::operator==(const FilePath& that) const {
#if defined(FILE_PATH_USES_DRIVE_LETTERS)
diff --git a/base/files/file_path.h b/base/files/file_path.h
index 4e23f71a..2160fda 100644
--- a/base/files/file_path.h
+++ b/base/files/file_path.h
@@ -193,7 +193,7 @@
FilePath(FilePath&& that) noexcept;
// Replaces the contents with those of |that|, which is left in valid but
// unspecified state.
- FilePath& operator=(FilePath&& that);
+ FilePath& operator=(FilePath&& that) noexcept;
bool operator==(const FilePath& that) const;

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

@ -1,114 +0,0 @@
From bc9a96ef9eeab89276d67929f4a8a7d88f5dbc02 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Wed, 27 May 2020 13:37:25 +0000
Subject: [PATCH] GCC: fix template specialization in TraceInCollectionTrait
GCC complains that explicit specialization in non-namespace scope
is happening for TraceImpl. Move TraceImpl implementations into
different nested classes and select implementation using
std::conditional.
Bug: 819294
Change-Id: I8feea5f2aa6e1f87daad61f496d6b53b1bbc49ac
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2217887
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#772215}
---
diff --git a/third_party/blink/renderer/platform/heap/collection_support/heap_hash_table_backing.h b/third_party/blink/renderer/platform/heap/collection_support/heap_hash_table_backing.h
index 31e7888..2c0583f 100644
--- a/third_party/blink/renderer/platform/heap/collection_support/heap_hash_table_backing.h
+++ b/third_party/blink/renderer/platform/heap/collection_support/heap_hash_table_backing.h
@@ -241,50 +241,52 @@
static void Trace(blink::Visitor* visitor,
const KeyValuePair<Key, Value>& self) {
- TraceImpl(visitor, self);
+ TraceImpl::Trace(visitor, self);
}
private:
- template <bool = EphemeronHelper::is_ephemeron>
- static void TraceImpl(blink::Visitor* visitor,
- const KeyValuePair<Key, Value>& self);
-
- // Strongification of ephemerons, i.e., Weak/Strong and Strong/Weak.
- template <>
- static void TraceImpl<true>(blink::Visitor* visitor,
- const KeyValuePair<Key, Value>& self) {
+ struct TraceImplEphemerons {
// Strongification of ephemerons, i.e., Weak/Strong and Strong/Weak.
- // The helper ensures that helper.key always refers to the weak part and
- // helper.value always refers to the dependent part.
- // We distinguish ephemeron from Weak/Weak and Strong/Strong to allow users
- // to override visitation behavior. An example is creating a heap snapshot,
- // where it is useful to annotate values as being kept alive from keys
- // rather than the table.
- EphemeronHelper helper(&self.key, &self.value);
- // Strongify the weak part.
- blink::TraceCollectionIfEnabled<
- kNoWeakHandling, typename EphemeronHelper::KeyType,
- typename EphemeronHelper::KeyTraits>::Trace(visitor, helper.key);
- // Strongify the dependent part.
- visitor->TraceEphemeron(
- *helper.key, helper.value,
- blink::TraceCollectionIfEnabled<
- kNoWeakHandling, typename EphemeronHelper::ValueType,
- typename EphemeronHelper::ValueTraits>::Trace);
- }
+ static void Trace(blink::Visitor* visitor,
+ const KeyValuePair<Key, Value>& self) {
+ // Strongification of ephemerons, i.e., Weak/Strong and Strong/Weak.
+ // The helper ensures that helper.key always refers to the weak part and
+ // helper.value always refers to the dependent part.
+ // We distinguish ephemeron from Weak/Weak and Strong/Strong to allow
+ // users to override visitation behavior. An example is creating a heap
+ // snapshot, where it is useful to annotate values as being kept alive
+ // from keys rather than the table.
+ EphemeronHelper helper(&self.key, &self.value);
+ // Strongify the weak part.
+ blink::TraceCollectionIfEnabled<
+ kNoWeakHandling, typename EphemeronHelper::KeyType,
+ typename EphemeronHelper::KeyTraits>::Trace(visitor, helper.key);
+ // Strongify the dependent part.
+ visitor->TraceEphemeron(
+ *helper.key, helper.value,
+ blink::TraceCollectionIfEnabled<
+ kNoWeakHandling, typename EphemeronHelper::ValueType,
+ typename EphemeronHelper::ValueTraits>::Trace);
+ }
+ };
- template <>
- static void TraceImpl<false>(blink::Visitor* visitor,
- const KeyValuePair<Key, Value>& self) {
- // Strongification of non-ephemeron KVP, i.e., Strong/Strong or Weak/Weak.
- // Order does not matter here.
- blink::TraceCollectionIfEnabled<
- kNoWeakHandling, Key, typename Traits::KeyTraits>::Trace(visitor,
- &self.key);
- blink::TraceCollectionIfEnabled<
- kNoWeakHandling, Value,
- typename Traits::ValueTraits>::Trace(visitor, &self.value);
- }
+ struct TraceImplDefault {
+ static void Trace(blink::Visitor* visitor,
+ const KeyValuePair<Key, Value>& self) {
+ // Strongification of non-ephemeron KVP, i.e., Strong/Strong or Weak/Weak.
+ // Order does not matter here.
+ blink::TraceCollectionIfEnabled<
+ kNoWeakHandling, Key, typename Traits::KeyTraits>::Trace(visitor,
+ &self.key);
+ blink::TraceCollectionIfEnabled<
+ kNoWeakHandling, Value,
+ typename Traits::ValueTraits>::Trace(visitor, &self.value);
+ }
+ };
+
+ using TraceImpl = typename std::conditional<EphemeronHelper::is_ephemeron,
+ TraceImplEphemerons,
+ TraceImplDefault>::type;
};
template <typename Key, typename Value, typename Traits>

@ -1,34 +0,0 @@
From 93b66919d34f977a7d437afc1691f2d8762a350f Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Mon, 04 May 2020 07:46:46 +0000
Subject: [PATCH] GCC: fix template specialization in WTF::VectorBuffer
GCC complains that explicit specialization in non-namespace scope
is happening for InitInlinedBuffer. However, specialization is
not really necessary here with templates and can be moved
into InitInlinedBuffer method without changing generated code.
Bug: 819294
Change-Id: Ia8060152bf4ba21c85dfc4d99cd7cc64983de077
---
diff --git a/third_party/blink/renderer/platform/wtf/vector.h b/third_party/blink/renderer/platform/wtf/vector.h
index 81a4e7b..8a879a0 100644
--- a/third_party/blink/renderer/platform/wtf/vector.h
+++ b/third_party/blink/renderer/platform/wtf/vector.h
@@ -950,11 +950,10 @@
return unsafe_reinterpret_cast_ptr<const T*>(inline_buffer_);
}
- template <bool = Allocator::kIsGarbageCollected>
- void InitInlinedBuffer() {}
- template <>
- void InitInlinedBuffer<true>() {
- memset(&inline_buffer_, 0, kInlineBufferSize);
+ void InitInlinedBuffer() {
+ if (Allocator::kIsGarbageCollected) {
+ memset(&inline_buffer_, 0, kInlineBufferSize);
+ }
}
alignas(T) char inline_buffer_[kInlineBufferSize];

@ -1,87 +0,0 @@
From f2076c6a4c9c14538d71a3ef9c9e4fd40ee6ee00 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Sun, 31 May 2020 11:46:05 +0000
Subject: [PATCH] GCC: fix __has_builtin defines for non-clang compilers
Defining __has_builtin to 0 for non-clang compilers in base headers can
lead to wrong detection of features. For example in base/location.h
checking for __has_builtin macros succeeds for non-clang compilers,
because base/check_op.h defines __has_builtin to 0 and is included
before base/location.h. Instead of defining __has_builtin to 0 for
non-clang compilers, define an independent preprocessor symbol that
reflects support for requested feature. Undefine the symbol to avoid
collision.
While we're at it fix base/memory/aligned_memory.h too.
Bug: 819294
Change-Id: Iac40dc44e7356b600e7d06aa4ccd1294bb09ebce
---
diff --git a/base/check_op.h b/base/check_op.h
index 04b0c6f..28f4263a 100644
--- a/base/check_op.h
+++ b/base/check_op.h
@@ -48,8 +48,10 @@
void (*stream_func)(std::ostream&,
const void*));
-#ifndef __has_builtin
-#define __has_builtin(x) 0 // Compatibility with non-clang compilers.
+#ifdef __has_builtin
+#define SUPPORTS_BUILTIN_ADDRESSOF (__has_builtin(__builtin_addressof))
+#else
+#define SUPPORTS_BUILTIN_ADDRESSOF 0
#endif
template <typename T>
@@ -65,7 +67,7 @@
// operator& might be overloaded, so do the std::addressof dance.
// __builtin_addressof is preferred since it also handles Obj-C ARC pointers.
// Some casting is still needed, because T might be volatile.
-#if __has_builtin(__builtin_addressof)
+#if SUPPORTS_BUILTIN_ADDRESSOF
const void* vp = const_cast<const void*>(
reinterpret_cast<const volatile void*>(__builtin_addressof(v)));
#else
@@ -75,6 +77,8 @@
return StreamValToStr(vp, f);
}
+#undef SUPPORTS_BUILTIN_ADDRESSOF
+
// Overload for types that have no operator<< but do have .ToString() defined.
template <typename T>
inline typename std::enable_if<
diff --git a/base/memory/aligned_memory.h b/base/memory/aligned_memory.h
index d1cba0c..a0d9f13 100644
--- a/base/memory/aligned_memory.h
+++ b/base/memory/aligned_memory.h
@@ -57,13 +57,15 @@
}
};
-#ifndef __has_builtin
-#define __has_builtin(x) 0 // Compatibility with non-clang compilers.
+#ifdef __has_builtin
+#define SUPPORTS_BUILTIN_IS_ALIGNED (__has_builtin(__builtin_is_aligned))
+#else
+#define SUPPORTS_BUILTIN_IS_ALIGNED 0
#endif
inline bool IsAligned(uintptr_t val, size_t alignment) {
// If the compiler supports builtin alignment checks prefer them.
-#if __has_builtin(__builtin_is_aligned)
+#if SUPPORTS_BUILTIN_IS_ALIGNED
return __builtin_is_aligned(val, alignment);
#else
DCHECK(!((alignment - 1) & alignment))
@@ -72,6 +74,8 @@
#endif
}
+#undef SUPPORTS_BUILTIN_IS_ALIGNED
+
inline bool IsAligned(void* val, size_t alignment) {
return IsAligned(reinterpret_cast<uintptr_t>(val), alignment);
}

@ -1,33 +0,0 @@
From 08ac7188f414218ac9d764e29e7aa64a6bfc2f96 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Sun, 31 May 2020 10:02:03 +0000
Subject: [PATCH] disable clang-format for generated code in blink
For GCC builds clang-format might be not available. Additionally,
current scripts look for clang-format within chromium sources and
don't consider system clang-format.
---
.../bindings/scripts/bind_gen/codegen_utils.py | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py b/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
index 7021f1a..33bf5bf 100644
--- a/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
+++ b/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
@@ -150,12 +150,4 @@ def write_code_node_to_file(code_node, filepath):
rendered_text = render_code_node(code_node)
- format_result = style_format.auto_format(rendered_text, filename=filepath)
- if not format_result.did_succeed:
- raise RuntimeError("Style-formatting failed: filename = {filename}\n"
- "---- stderr ----\n"
- "{stderr}:".format(
- filename=format_result.filename,
- stderr=format_result.error_message))
-
- web_idl.file_io.write_to_file_if_changed(filepath, format_result.contents)
+ web_idl.file_io.write_to_file_if_changed(filepath, rendered_text)
--
2.26.2

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

@ -1,37 +0,0 @@
From e174cb4af7a47b891dcaa114f0a95fd4a64a9761 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Mon, 04 May 2020 11:09:20 +0000
Subject: [PATCH] GCC: remove noexcept on definition of move constructor
ScopedInterfaceEndpointHandle move constructor does not have noexcept specifier. However, noexcept can't be added there, because the move constructor uses new operator which can throw.
Bug: 819294
Change-Id: I61806b7aa6f1d77ed0668df7de5ef6cda5da97a5
---
diff --git a/third_party/blink/public/platform/cross_variant_mojo_util.h b/third_party/blink/public/platform/cross_variant_mojo_util.h
index a3a6d80..bb1095a 100644
--- a/third_party/blink/public/platform/cross_variant_mojo_util.h
+++ b/third_party/blink/public/platform/cross_variant_mojo_util.h
@@ -127,8 +127,8 @@
CrossVariantMojoAssociatedReceiver() = default;
~CrossVariantMojoAssociatedReceiver() = default;
- CrossVariantMojoAssociatedReceiver(
- CrossVariantMojoAssociatedReceiver&&) noexcept = default;
+ CrossVariantMojoAssociatedReceiver(CrossVariantMojoAssociatedReceiver&&) =
+ default;
CrossVariantMojoAssociatedReceiver& operator=(
CrossVariantMojoAssociatedReceiver&&) noexcept = default;
@@ -160,8 +160,8 @@
CrossVariantMojoAssociatedRemote() = default;
~CrossVariantMojoAssociatedRemote() = default;
- CrossVariantMojoAssociatedRemote(
- CrossVariantMojoAssociatedRemote&&) noexcept = default;
+ CrossVariantMojoAssociatedRemote(CrossVariantMojoAssociatedRemote&&) =
+ default;
CrossVariantMojoAssociatedRemote& operator=(
CrossVariantMojoAssociatedRemote&&) noexcept = default;

@ -1,65 +0,0 @@
From df413313083a9dabdc573545aaf70343aa0830ca Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Wed, 27 May 2020 17:03:03 +0000
Subject: [PATCH] GCC: fix decltype to get a valid function pointer
The decltype(<func>) passed as template parameter to
CBBFunctionToVector does not return a function pointer
and GCC complains like this:
../../device/fido/virtual_fido_device.cc:104:68: error:
'int(struct cbb_st*, const struct evp_pkey_st*)' is not a valid type
for a template non-type parameter
104 | EVP_marshal_private_key>(pkey_.get());
| ^
Fix this by passing decltype(&<func>).
Bug: 819294
Change-Id: I8114c3d75c9865779d58c0b6a6c48e6affd3175b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2217414
Reviewed-by: Adam Langley <agl@chromium.org>
Commit-Queue: Adam Langley <agl@chromium.org>
Cr-Commit-Position: refs/heads/master@{#772283}
---
diff --git a/device/fido/virtual_fido_device.cc b/device/fido/virtual_fido_device.cc
index 0256c6a..72423d3 100644
--- a/device/fido/virtual_fido_device.cc
+++ b/device/fido/virtual_fido_device.cc
@@ -51,7 +51,7 @@
// CBBFunctionToVector converts a BoringSSL function that writes to a CBB to one
// that returns a std::vector. Invoke for a function, f, with:
-// CBBFunctionToVector<decltype(f), f>(args, to, f);
+// CBBFunctionToVector<decltype(&f), f>(args, to, f);
template <typename F, F function, typename... Args>
std::vector<uint8_t> CBBFunctionToVector(Args&&... args) {
uint8_t* der = nullptr;
@@ -102,7 +102,7 @@
}
std::vector<uint8_t> GetPKCS8PrivateKey() const override {
- return CBBFunctionToVector<decltype(EVP_marshal_private_key),
+ return CBBFunctionToVector<decltype(&EVP_marshal_private_key),
EVP_marshal_private_key>(pkey_.get());
}
@@ -122,7 +122,7 @@
std::vector<uint8_t> GetX962PublicKey() const override {
const EC_KEY* ec_key = EVP_PKEY_get0_EC_KEY(pkey_.get());
- return CBBFunctionToVector<decltype(EC_POINT_point2cbb),
+ return CBBFunctionToVector<decltype(&EC_POINT_point2cbb),
EC_POINT_point2cbb>(
EC_KEY_get0_group(ec_key), EC_KEY_get0_public_key(ec_key),
POINT_CONVERSION_UNCOMPRESSED, /*ctx=*/nullptr);
@@ -172,7 +172,7 @@
cbor::Writer::Write(cbor::Value(std::move(map))));
std::vector<uint8_t> der_bytes(
- CBBFunctionToVector<decltype(EVP_marshal_public_key),
+ CBBFunctionToVector<decltype(&EVP_marshal_public_key),
EVP_marshal_public_key>(pkey_.get()));
return std::make_unique<PublicKey>(

@ -1,66 +0,0 @@
From 911bdcd8cc5475be4ec4228cfbc85fc38f52857e Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Wed, 27 May 2020 10:00:41 +0000
Subject: [PATCH] GCC: make base::{flat_map,flat_tree} move assignement operators noexcept
Move assigment operator in ui::ColorSet is noexcept. Because this
class has a member of type base::flat_map, move assignment operators
of base::flat_map and base::flat_tree must be noexcept too.
base::flat_tree noexcept is conditional to avoid build failure with
NaCl.
Otherwise GCC fails like this:
../../ui/color/color_set.cc:14:11: error: function
'ui::ColorSet& ui::ColorSet::operator=(ui::ColorSet&&)' defaulted on its
redeclaration with an exception-specification that differs from the
implicit exception-specification ''
14 | ColorSet& ColorSet::operator=(ColorSet&&) noexcept = default;
| ^~~~~~~~
Bug: 819294
Change-Id: I10ce31851effc9ce78f2b5cbbb7148c339f065a7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2179245
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#772175}
---
diff --git a/base/containers/flat_map.h b/base/containers/flat_map.h
index ed82c5d..1af6b40 100644
--- a/base/containers/flat_map.h
+++ b/base/containers/flat_map.h
@@ -202,7 +202,7 @@
~flat_map() = default;
flat_map& operator=(const flat_map&) = default;
- flat_map& operator=(flat_map&&) = default;
+ flat_map& operator=(flat_map&&) noexcept = default;
// Takes the first if there are duplicates in the initializer list.
flat_map& operator=(std::initializer_list<value_type> ilist);
diff --git a/base/containers/flat_tree.h b/base/containers/flat_tree.h
index 9412ff6..ce6e92b 100644
--- a/base/containers/flat_tree.h
+++ b/base/containers/flat_tree.h
@@ -125,7 +125,8 @@
// Assume that move assignment invalidates iterators and references.
flat_tree& operator=(const flat_tree&);
- flat_tree& operator=(flat_tree&&);
+ flat_tree& operator=(flat_tree&&) noexcept(
+ std::is_nothrow_move_assignable<underlying_type>::value);
// Takes the first if there are duplicates in the initializer list.
flat_tree& operator=(std::initializer_list<value_type> ilist);
@@ -518,7 +519,9 @@
const flat_tree&) -> flat_tree& = default;
template <class Key, class Value, class GetKeyFromValue, class KeyCompare>
-auto flat_tree<Key, Value, GetKeyFromValue, KeyCompare>::operator=(flat_tree &&)
+auto flat_tree<Key, Value, GetKeyFromValue, KeyCompare>::
+operator=(flat_tree&&) noexcept(
+ std::is_nothrow_move_assignable<underlying_type>::value)
-> flat_tree& = default;
template <class Key, class Value, class GetKeyFromValue, class KeyCompare>

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

@ -1,29 +0,0 @@
From 62f633b8ca2b2376ca3273e6df910feb4bd93578 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Wed, 27 May 2020 19:23:12 +0000
Subject: [PATCH] GCC: DOMRect constexpr equal operator depends on non constexpr operators
Make operators 'inline' only.
Bug: 819294
Change-Id: If07442258b4ebce26c013c4dff830c1d61dff9e3
---
diff --git a/third_party/blink/renderer/core/geometry/dom_rect.h b/third_party/blink/renderer/core/geometry/dom_rect.h
index fede005..058c60a 100644
--- a/third_party/blink/renderer/core/geometry/dom_rect.h
+++ b/third_party/blink/renderer/core/geometry/dom_rect.h
@@ -34,11 +34,11 @@
void setHeight(double height) { height_ = height; }
};
-constexpr bool operator==(const DOMRect& lhs, const DOMRect& rhs) {
+inline bool operator==(const DOMRect& lhs, const DOMRect& rhs) {
return lhs.x() == rhs.x() && lhs.y() == rhs.y() &&
lhs.width() == rhs.width() && lhs.height() == rhs.height();
}
-constexpr bool operator!=(const DOMRect& lhs, const DOMRect& rhs) {
+inline bool operator!=(const DOMRect& lhs, const DOMRect& rhs) {
return !(lhs == rhs);
}
} // namespace blink

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

Loading…
Cancel
Save