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,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,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,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…
Reference in new issue