commit
67061b4894
@ -0,0 +1,22 @@
|
||||
/chromium-52.0.2743.75-clean.tar.xz
|
||||
/depot_tools.git-master.tar.gz
|
||||
/policy_templates.zip
|
||||
/chromium-*.tar.xz
|
||||
/gelasio.zip
|
||||
/MuktiNarrow-0.94.tar.bz2
|
||||
/NotoSansCJKjp-hinted.zip
|
||||
/lohit-gurmukhi-ttf-2.91.2.tar.gz
|
||||
/Arimo-BoldItalic.ttf
|
||||
/Arimo-Bold.ttf
|
||||
/Arimo-Italic.ttf
|
||||
/Arimo-Regular.ttf
|
||||
/Cousine-BoldItalic.ttf
|
||||
/Cousine-Bold.ttf
|
||||
/Cousine-Italic.ttf
|
||||
/Cousine-Regular.ttf
|
||||
/Tinos-BoldItalic.ttf
|
||||
/Tinos-Bold.ttf
|
||||
/Tinos-Italic.ttf
|
||||
/Tinos-Regular.ttf
|
||||
/Ahem.ttf
|
||||
/node-v8.9.1-linux-x64.tar.gz
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description="Chrome Remote Desktop host daemon"
|
||||
|
||||
[Service]
|
||||
User=%i
|
||||
Environment=HOME=%h
|
||||
ExecStart=@@CRD_PATH@@/chrome-remote-desktop --start --foreground
|
||||
ExecStop=@@CRD_PATH@@/chrome-remote-desktop --stop
|
||||
ExecReload=@@CRD_PATH@@/chrome-remote-desktop --reload
|
||||
Restart=always
|
||||
TimeoutStopSec=10
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
@ -0,0 +1,44 @@
|
||||
diff -up chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h.pathmax chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h
|
||||
--- chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h.pathmax 2015-10-07 11:26:11.813477839 -0400
|
||||
+++ chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h 2015-10-07 11:26:40.845845054 -0400
|
||||
@@ -12,6 +12,11 @@
|
||||
|
||||
#include "sdk_util/macros.h"
|
||||
|
||||
+/* Needed for PATH_MAX */
|
||||
+#ifndef PATH_MAX
|
||||
+#define PATH_MAX 4096
|
||||
+#endif
|
||||
+
|
||||
namespace nacl_io {
|
||||
|
||||
class Path {
|
||||
diff -up chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c.pathmax chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c
|
||||
--- chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c.pathmax 2015-08-22 15:02:08.000000000 -0400
|
||||
+++ chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c 2015-10-07 10:58:56.172018783 -0400
|
||||
@@ -11,6 +11,10 @@
|
||||
|
||||
#include <errno.h>
|
||||
#include <limits.h>
|
||||
+/* Needed for PATH_MAX */
|
||||
+#ifndef PATH_MAX
|
||||
+#define PATH_MAX 4096
|
||||
+#endif
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
diff -up chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c.pathmax chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c
|
||||
--- chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c.pathmax 2015-10-09 10:57:38.424348662 -0400
|
||||
+++ chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c 2015-10-09 10:57:51.541059938 -0400
|
||||
@@ -13,6 +13,11 @@
|
||||
|
||||
#include "sdk_util/macros.h"
|
||||
|
||||
+/* Needed for PATH_MAX */
|
||||
+#ifndef PATH_MAX
|
||||
+#define PATH_MAX 4096
|
||||
+#endif
|
||||
+
|
||||
EXTERN_C_BEGIN
|
||||
|
||||
#if defined(__native_client__)
|
@ -0,0 +1,27 @@
|
||||
diff -up chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc.ignore-fd-count chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc
|
||||
--- chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc.ignore-fd-count 2015-12-15 14:48:07.119011866 -0500
|
||||
+++ chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc 2015-12-15 14:48:14.151850055 -0500
|
||||
@@ -153,6 +153,14 @@ void NaClSandbox::InitializeLayerOneSand
|
||||
}
|
||||
|
||||
void NaClSandbox::CheckForExpectedNumberOfOpenFds() {
|
||||
+ // Whatever logic this code is using is wrong more often than it is right.
|
||||
+ // If you set expected_num_fds to 6, it finds 7.
|
||||
+ // If you set expected_num_fds to 7, it finds 6.
|
||||
+ // Code like this makes a packager drink. And not the good stuff either.
|
||||
+ // Instead, we're just going to smile and tell it to never care about the
|
||||
+ // number of FDs open. Stupid code. We hates it.
|
||||
+
|
||||
+#if 0
|
||||
// We expect to have the following FDs open:
|
||||
// 1-3) stdin, stdout, stderr.
|
||||
// 4) The /dev/urandom FD used by base::GetUrandomFD().
|
||||
@@ -171,6 +179,8 @@ void NaClSandbox::CheckForExpectedNumber
|
||||
}
|
||||
|
||||
CHECK_EQ(expected_num_fds, sandbox::ProcUtil::CountOpenFds(proc_fd_.get()));
|
||||
+#endif
|
||||
+
|
||||
}
|
||||
|
||||
void NaClSandbox::InitializeLayerTwoSandbox(bool uses_nonsfi_mode) {
|
@ -0,0 +1,11 @@
|
||||
diff -up chromium-47.0.2526.80/native_client/build/untrusted.gypi.fixme chromium-47.0.2526.80/native_client/build/untrusted.gypi
|
||||
--- chromium-47.0.2526.80/native_client/build/untrusted.gypi.fixme 2015-12-09 11:54:27.584962337 -0500
|
||||
+++ chromium-47.0.2526.80/native_client/build/untrusted.gypi 2015-12-09 11:54:45.033571750 -0500
|
||||
@@ -1564,6 +1564,7 @@
|
||||
'-Wno-char-subscripts',
|
||||
'-Wno-unused-function',
|
||||
'-std=gnu++11',
|
||||
+ '-fgnu-inline-asm',
|
||||
],
|
||||
'native_irt_compile_flags': [
|
||||
# IRT compile/link flags to make the binary smaller.
|
@ -0,0 +1,11 @@
|
||||
diff -up chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c.timefix chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c
|
||||
--- chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c.timefix 2016-09-06 15:20:06.094396255 -0400
|
||||
+++ chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c 2016-09-06 15:20:16.893187930 -0400
|
||||
@@ -56,6 +56,7 @@
|
||||
* [including the GNU Public Licence.] */
|
||||
|
||||
#include <string.h>
|
||||
+#include <time.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
|
@ -0,0 +1,11 @@
|
||||
diff -up chromium-54.0.2840.59/third_party/BUILD.gn.jpegfix chromium-54.0.2840.59/third_party/BUILD.gn
|
||||
--- chromium-54.0.2840.59/third_party/BUILD.gn.jpegfix 2016-10-17 11:45:44.995340495 -0400
|
||||
+++ chromium-54.0.2840.59/third_party/BUILD.gn 2016-10-17 11:46:35.254289872 -0400
|
||||
@@ -20,6 +20,7 @@ declare_args() {
|
||||
config("system_libjpeg_config") {
|
||||
libs = [ "jpeg" ]
|
||||
defines = [ "USE_SYSTEM_LIBJPEG" ]
|
||||
+ include_dirs = [ "/usr/include/" ]
|
||||
}
|
||||
|
||||
config("libjpeg_turbo_config") {
|
@ -0,0 +1,11 @@
|
||||
diff -up chromium-55.0.2883.75/third_party/boringssl/BUILD.gn.addrfix chromium-55.0.2883.75/third_party/boringssl/BUILD.gn
|
||||
--- chromium-55.0.2883.75/third_party/boringssl/BUILD.gn.addrfix 2016-12-12 15:30:27.727834891 -0500
|
||||
+++ chromium-55.0.2883.75/third_party/boringssl/BUILD.gn 2016-12-12 15:30:53.095709352 -0500
|
||||
@@ -24,6 +24,7 @@ config("internal_config") {
|
||||
"BORINGSSL_IMPLEMENTATION",
|
||||
"BORINGSSL_NO_STATIC_INITIALIZER",
|
||||
"OPENSSL_SMALL",
|
||||
+ "_POSIX_C_SOURCE=200112L",
|
||||
]
|
||||
configs = [
|
||||
# TODO(davidben): Fix size_t truncations in BoringSSL.
|
@ -0,0 +1,19 @@
|
||||
diff -up chromium-58.0.3029.96/ui/events/devices/x11/device_data_manager_x11.cc.revert chromium-58.0.3029.96/ui/events/devices/x11/device_data_manager_x11.cc
|
||||
--- chromium-58.0.3029.96/ui/events/devices/x11/device_data_manager_x11.cc.revert 2017-05-08 14:58:11.767482431 -0400
|
||||
+++ chromium-58.0.3029.96/ui/events/devices/x11/device_data_manager_x11.cc 2017-05-08 14:58:37.722960109 -0400
|
||||
@@ -790,15 +790,6 @@ void DeviceDataManagerX11::UpdateScrollC
|
||||
DCHECK(deviceid >= 0 && deviceid < kMaxDeviceNum);
|
||||
ScrollInfo& info = scroll_data_[deviceid];
|
||||
|
||||
- bool legacy_scroll_available =
|
||||
- (scroll_class_info->flags & XIScrollFlagNoEmulation) == 0;
|
||||
- // If the device's highest resolution is lower than the resolution of xinput1
|
||||
- // then use xinput1's events instead (ie. don't configure smooth scrolling).
|
||||
- if (legacy_scroll_available &&
|
||||
- std::abs(scroll_class_info->increment) <= 1.0) {
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
switch (scroll_class_info->scroll_type) {
|
||||
case XIScrollTypeVertical:
|
||||
info.vertical.number = scroll_class_info->number;
|
@ -0,0 +1,12 @@
|
||||
diff -up chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.ldmemory chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn
|
||||
--- chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.ldmemory 2017-06-07 15:37:09.436616113 -0400
|
||||
+++ chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn 2017-06-07 15:38:04.508519102 -0400
|
||||
@@ -93,7 +93,7 @@ gcc_toolchain("x86") {
|
||||
nm = "nm"
|
||||
ar = "ar"
|
||||
ld = cxx
|
||||
- extra_cppflags = "-fno-delete-null-pointer-checks"
|
||||
+ extra_cppflags = "-fno-delete-null-pointer-checks -g1"
|
||||
|
||||
# Output linker map files for binary size analysis.
|
||||
enable_linker_map = true
|
@ -0,0 +1,21 @@
|
||||
diff -up chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h.pathfix chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h
|
||||
--- chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h.pathfix 2017-08-25 15:29:12.143242471 -0400
|
||||
+++ chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h 2017-08-25 15:29:36.941835865 -0400
|
||||
@@ -39,13 +39,13 @@
|
||||
#include "log.h"
|
||||
|
||||
#if ARCH_AARCH64
|
||||
-# include "aarch64/timer.h"
|
||||
+# include "libavutil/aarch64/timer.h"
|
||||
#elif ARCH_ARM
|
||||
-# include "arm/timer.h"
|
||||
+# include "libavutil/arm/timer.h"
|
||||
#elif ARCH_PPC
|
||||
-# include "ppc/timer.h"
|
||||
+# include "libavutil/ppc/timer.h"
|
||||
#elif ARCH_X86
|
||||
-# include "x86/timer.h"
|
||||
+# include "libavutil/x86/timer.h"
|
||||
#endif
|
||||
|
||||
#if !defined(AV_READ_TIME)
|
@ -0,0 +1,14 @@
|
||||
diff -up chromium-60.0.3112.78/third_party/libjpeg_turbo/jpeglib.h.nomangle chromium-60.0.3112.78/third_party/libjpeg_turbo/jpeglib.h
|
||||
--- chromium-60.0.3112.78/third_party/libjpeg_turbo/jpeglib.h.nomangle 2017-08-01 15:29:00.870759406 -0400
|
||||
+++ chromium-60.0.3112.78/third_party/libjpeg_turbo/jpeglib.h 2017-08-01 15:29:09.326593414 -0400
|
||||
@@ -18,10 +18,6 @@
|
||||
#ifndef JPEGLIB_H
|
||||
#define JPEGLIB_H
|
||||
|
||||
-/* Begin chromium edits */
|
||||
-#include "jpeglibmangler.h"
|
||||
-/* End chromium edits */
|
||||
-
|
||||
/*
|
||||
* First we include the configuration files that record how this
|
||||
* installation of the JPEG library is set up. jconfig.h can be
|
@ -0,0 +1,17 @@
|
||||
diff -up chromium-60.0.3112.78/third_party/libpng/pnglibconf.h.noprefix chromium-60.0.3112.78/third_party/libpng/pnglibconf.h
|
||||
--- chromium-60.0.3112.78/third_party/libpng/pnglibconf.h.noprefix 2017-08-01 14:42:54.321986758 -0400
|
||||
+++ chromium-60.0.3112.78/third_party/libpng/pnglibconf.h 2017-08-01 14:43:01.493845832 -0400
|
||||
@@ -225,13 +225,4 @@
|
||||
#define PNG_USER_CHUNK_MALLOC_MAX 4000000L
|
||||
/* end of chromium settings */
|
||||
|
||||
-/* chromium prefixing */
|
||||
-/*
|
||||
- * This is necessary to build multiple copies of libpng. We need this while pdfium builds
|
||||
- * its own copy of libpng.
|
||||
- */
|
||||
-#define PNG_PREFIX
|
||||
-#include "pngprefix.h"
|
||||
-/* end of chromium prefixing */
|
||||
-
|
||||
#endif /* PNGLCONF_H */
|
@ -0,0 +1,13 @@
|
||||
diff -up chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h.fixgcc3 chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h
|
||||
--- chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h.fixgcc3 2017-09-06 16:30:15.898454585 -0400
|
||||
+++ chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h 2017-09-06 16:30:27.570229539 -0400
|
||||
@@ -21,8 +21,7 @@
|
||||
#if !defined(__native_client__) && \
|
||||
((defined(__clang__) && \
|
||||
((__clang_major__ > 3) || \
|
||||
- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
|
||||
- (defined(__GNUC__) && __GNUC__ >= 5))
|
||||
+ (__clang_major__ == 3 && __clang_minor__ >= 4))))
|
||||
#include "base/numerics/safe_math_clang_gcc_impl.h"
|
||||
#define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
|
||||
#else
|
@ -0,0 +1,12 @@
|
||||
diff -up chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc.kmaxskip chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc
|
||||
--- chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc.kmaxskip 2017-10-18 10:00:28.503714392 -0400
|
||||
+++ chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc 2017-10-18 10:00:43.153430212 -0400
|
||||
@@ -336,7 +336,7 @@ TYPES(M);
|
||||
#undef TYPES
|
||||
|
||||
const SkRect PaintOp::kUnsetRect = {SK_ScalarInfinity, 0, 0, 0};
|
||||
-const size_t PaintOp::kMaxSkip;
|
||||
+constexpr size_t PaintOp::kMaxSkip;
|
||||
|
||||
std::string PaintOpTypeToString(PaintOpType type) {
|
||||
switch (type) {
|
@ -0,0 +1,43 @@
|
||||
diff -up chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn.nullfix chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn
|
||||
--- chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn.nullfix 2017-12-06 15:05:21.000000000 -0500
|
||||
+++ chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn 2017-12-07 10:44:34.507207080 -0500
|
||||
@@ -31,6 +31,7 @@ gcc_toolchain("arm64") {
|
||||
ld = cxx
|
||||
readelf = "${toolprefix}readelf"
|
||||
nm = "${toolprefix}nm"
|
||||
+ extra_cppflags = "-fno-delete-null-pointer-checks"
|
||||
|
||||
toolchain_args = {
|
||||
current_cpu = "arm64"
|
||||
@@ -49,6 +50,7 @@ gcc_toolchain("arm") {
|
||||
ld = cxx
|
||||
readelf = "${toolprefix}readelf"
|
||||
nm = "${toolprefix}nm"
|
||||
+ extra_cppflags = "-fno-delete-null-pointer-checks"
|
||||
|
||||
toolchain_args = {
|
||||
current_cpu = "arm"
|
||||
@@ -99,6 +101,7 @@ gcc_toolchain("x86") {
|
||||
nm = "nm"
|
||||
ar = "ar"
|
||||
ld = cxx
|
||||
+ extra_cppflags = "-fno-delete-null-pointer-checks"
|
||||
|
||||
# Output linker map files for binary size analysis.
|
||||
enable_linker_map = true
|
||||
@@ -152,6 +155,7 @@ gcc_toolchain("x64") {
|
||||
nm = "nm"
|
||||
ar = "ar"
|
||||
ld = cxx
|
||||
+ extra_cppflags = "-fno-delete-null-pointer-checks"
|
||||
|
||||
# Output linker map files for binary size analysis.
|
||||
enable_linker_map = true
|
||||
@@ -186,6 +190,7 @@ gcc_toolchain("mipsel") {
|
||||
ld = cxx
|
||||
readelf = "${toolprefix}readelf"
|
||||
nm = "${toolprefix}nm"
|
||||
+ extra_cppflags = "-fno-delete-null-pointer-checks"
|
||||
|
||||
toolchain_args = {
|
||||
cc_wrapper = ""
|
@ -0,0 +1,17 @@
|
||||
diff -up chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c
|
||||
--- chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic 2018-01-25 11:55:57.880936815 -0500
|
||||
+++ chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c 2018-01-25 11:57:18.456787888 -0500
|
||||
@@ -18,7 +18,13 @@
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
+// GCC 4.8 didn't have stdatomic, but was advertising it.
|
||||
+// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58016
|
||||
+#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ == 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ == 8)))
|
||||
+#include <compat/atomics/gcc/stdatomic.h>
|
||||
+#else
|
||||
#include <stdatomic.h>
|
||||
+#endif
|
||||
|
||||
#include "attributes.h"
|
||||
#include "cpu.h"
|
@ -0,0 +1,12 @@
|
||||
diff -up chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc.gcc-round-fix chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc
|
||||
--- chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc.gcc-round-fix 2018-03-07 10:57:11.284376048 -0500
|
||||
+++ chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc 2018-03-07 10:58:16.590742636 -0500
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
#include "p2p/base/port.h"
|
||||
|
||||
-#include <math.h>
|
||||
+#include <cmath>
|
||||
|
||||
#include <algorithm>
|
||||
#include <utility>
|
@ -0,0 +1,12 @@
|
||||
diff -up chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc
|
||||
--- chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix 2018-03-07 11:04:14.690379817 -0500
|
||||
+++ chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc 2018-03-07 11:06:04.339878069 -0500
|
||||
@@ -3,7 +3,7 @@
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "cc/paint/raw_memory_transfer_cache_entry.h"
|
||||
-
|
||||
+#include <memory.h>
|
||||
#include <string.h>
|
||||
|
||||
namespace cc {
|
@ -0,0 +1,18 @@
|
||||
diff -up chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h.gcc-cpolicyprovider chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h
|
||||
--- chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h.gcc-cpolicyprovider 2018-04-25 16:33:40.872222779 -0400
|
||||
+++ chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h 2018-04-25 16:37:23.175883637 -0400
|
||||
@@ -11,13 +11,13 @@
|
||||
#include "base/callback_forward.h"
|
||||
#include "base/macros.h"
|
||||
#include "components/policy/core/browser/configuration_policy_handler_list.h"
|
||||
+#include "components/policy/core/common/configuration_policy_provider.h"
|
||||
#include "components/policy/core/common/schema.h"
|
||||
#include "components/policy/core/common/schema_registry.h"
|
||||
#include "components/policy/policy_export.h"
|
||||
|
||||
namespace policy {
|
||||
|
||||
-class ConfigurationPolicyProvider;
|
||||
class PolicyService;
|
||||
class PolicyServiceImpl;
|
||||
|
@ -0,0 +1,12 @@
|
||||
diff -up chromium-66.0.3359.117/build/config/clang/clang.gni.system-clang chromium-66.0.3359.117/build/config/clang/clang.gni
|
||||
--- chromium-66.0.3359.117/build/config/clang/clang.gni.system-clang 2018-04-18 12:08:45.658190297 -0400
|
||||
+++ chromium-66.0.3359.117/build/config/clang/clang.gni 2018-04-18 12:09:37.612032982 -0400
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
import("//build/toolchain/toolchain.gni")
|
||||
|
||||
-default_clang_base_path = "//third_party/llvm-build/Release+Asserts"
|
||||
+default_clang_base_path = "/usr"
|
||||
|
||||
declare_args() {
|
||||
# Indicates if the build should use the Chrome-specific plugins for enforcing
|
@ -0,0 +1,12 @@
|
||||
diff -up chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl
|
||||
--- chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 2018-05-30 04:44:33.000000000 -0400
|
||||
+++ chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl 2018-05-30 11:59:26.218625660 -0400
|
||||
@@ -262,7 +262,7 @@ interface mixin WebGL2RenderingContextBa
|
||||
const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
|
||||
const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
|
||||
const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
|
||||
- const GLenum INVALID_INDEX = 0xFFFFFFFF;
|
||||
+ const GLenum INVALID_INDEX = 256;
|
||||
const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
|
||||
const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
|
||||
const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111;
|
@ -0,0 +1,208 @@
|
||||
diff -up chromium-67.0.3396.62/build/linux/unbundle/libjpeg.gn.gnsystem chromium-67.0.3396.62/build/linux/unbundle/libjpeg.gn
|
||||
diff -up chromium-67.0.3396.62/build/linux/unbundle/libusb.gn.gnsystem chromium-67.0.3396.62/build/linux/unbundle/libusb.gn
|
||||
--- chromium-67.0.3396.62/build/linux/unbundle/libusb.gn.gnsystem 2018-05-30 12:18:36.949488683 -0400
|
||||
+++ chromium-67.0.3396.62/build/linux/unbundle/libusb.gn 2018-05-30 12:18:36.949488683 -0400
|
||||
@@ -0,0 +1,24 @@
|
||||
+# Copyright 2016 The Chromium Authors. All rights reserved.
|
||||
+# Use of this source code is governed by a BSD-style license that can be
|
||||
+# found in the LICENSE file.
|
||||
+
|
||||
+import("//build/config/linux/pkg_config.gni")
|
||||
+import("//build/shim_headers.gni")
|
||||
+
|
||||
+pkg_config("system_libusb") {
|
||||
+ packages = [ "libusb-1.0" ]
|
||||
+}
|
||||
+
|
||||
+shim_headers("libusb_shim") {
|
||||
+ root_path = "src/libusb"
|
||||
+ headers = [
|
||||
+ "libusb.h",
|
||||
+ ]
|
||||
+}
|
||||
+
|
||||
+source_set("libusb") {
|
||||
+ deps = [
|
||||
+ ":libusb_shim",
|
||||
+ ]
|
||||
+ public_configs = [ ":system_libusb" ]
|
||||
+}
|
||||
diff -up chromium-67.0.3396.62/build/linux/unbundle/opus.gn.gnsystem chromium-67.0.3396.62/build/linux/unbundle/opus.gn
|
||||
--- chromium-67.0.3396.62/build/linux/unbundle/opus.gn.gnsystem 2018-05-30 04:43:03.000000000 -0400
|
||||
+++ chromium-67.0.3396.62/build/linux/unbundle/opus.gn 2018-05-30 12:18:36.950488661 -0400
|
||||
@@ -1,3 +1,164 @@
|
||||
+# Copyright 2016 The Chromium Authors. All rights reserved.
|
||||
+# Use of this source code is governed by a BSD-style license that can be
|
||||
+# found in the LICENSE file.
|
||||
+
|
||||
+import("//build/config/linux/pkg_config.gni")
|
||||
+import("//build/shim_headers.gni")
|
||||
+import("//testing/test.gni")
|
||||
+
|
||||
+pkg_config("system_opus") {
|
||||
+ packages = [ "opus" ]
|
||||
+}
|
||||
+
|
||||
+shim_headers("opus_shim") {
|
||||
+ root_path = "src/include"
|
||||
+ headers = [
|
||||
+ "opus_custom.h",
|
||||
+ "opus_defines.h",
|
||||
+ "opus_multistream.h",
|
||||
+ "opus_types.h",
|
||||
+ "opus.h",
|
||||
+ ]
|
||||
+}
|
||||
+
|
||||
+source_set("opus") {
|
||||
+ deps = [
|
||||
+ ":opus_shim",
|
||||
+ ]
|
||||
+ public_configs = [ ":system_opus" ]
|
||||
+}
|
||||
+
|
||||
+config("opus_test_config") {
|
||||
+ include_dirs = [
|
||||
+ "src/celt",
|
||||
+ "src/silk",
|
||||
+ ]
|
||||
+
|
||||
+ if (is_win) {
|
||||
+ defines = [ "inline=__inline" ]
|
||||
+ }
|
||||
+ if (is_android) {
|
||||
+ libs = [ "log" ]
|
||||
+ }
|
||||
+ if (is_clang) {
|
||||
+ cflags = [ "-Wno-absolute-value" ]
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+executable("opus_compare") {
|
||||
+ sources = [
|
||||
+ "src/src/opus_compare.c",
|
||||
+ ]
|
||||
+
|
||||
+ configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
+ configs += [
|
||||
+ "//build/config/compiler:no_chromium_code",
|
||||
+ ":opus_test_config",
|
||||
+ ]
|
||||
+
|
||||
+ deps = [
|
||||
+ ":opus",
|
||||
+ "//build/config/sanitizers:deps",
|
||||
+ "//build/win:default_exe_manifest",
|
||||
+ ]
|
||||
+}
|
||||
+
|
||||
+executable("opus_demo") {
|
||||
+ sources = [
|
||||
+ "src/src/opus_demo.c",
|
||||
+ ]
|
||||
+
|
||||
+ configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
+ configs += [
|
||||
+ "//build/config/compiler:no_chromium_code",
|
||||
+ ":opus_test_config",
|
||||
+ ]
|
||||
+
|
||||
+ deps = [
|
||||
+ ":opus",
|
||||
+ "//build/config/sanitizers:deps",
|
||||
+ "//build/win:default_exe_manifest",
|
||||
+ ]
|
||||
+}
|
||||
+
|
||||
+test("test_opus_api") {
|
||||
+ sources = [
|
||||
+ "src/tests/test_opus_api.c",
|
||||
+ ]
|
||||
+
|
||||
+ configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
+ configs += [
|
||||
+ "//build/config/compiler:no_chromium_code",
|
||||
+ ":opus_test_config",
|
||||
+ ]
|
||||
+
|
||||
+ deps = [
|
||||
+ ":opus",
|
||||
+ ]
|
||||
+}
|
||||
+
|
||||
+test("test_opus_encode") {
|
||||
+ sources = [
|
||||
+ "src/tests/test_opus_encode.c",
|
||||
+ ]
|
||||
+
|
||||
+ configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
+ configs += [
|
||||
+ "//build/config/compiler:no_chromium_code",
|
||||
+ ":opus_test_config",
|
||||
+ ]
|
||||
+
|
||||
+ deps = [
|
||||
+ ":opus",
|
||||
+ ]
|
||||
+}
|
||||
+
|
||||
+# GN orders flags on a target before flags from configs. The default config
|
||||
+# adds -Wall, and this flag have to be after -Wall -- so they need to
|
||||
+# come from a config and can't be on the target directly.
|
||||
+config("test_opus_decode_config") {
|
||||
+ # test_opus_decode passes a null pointer to opus_decode() for an argument
|
||||
+ # marked as requiring a non-null value by the nonnull function attribute,
|
||||
+ # and expects opus_decode() to fail. Disable the -Wnonnull option to avoid
|
||||
+ # a compilation error if -Werror is specified.
|
||||
+ if (is_posix) {
|
||||
+ cflags = [ "-Wno-nonnull" ]
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+test("test_opus_decode") {
|
||||
+ sources = [
|
||||
+ "src/tests/test_opus_decode.c",
|
||||
+ ]
|
||||
+
|
||||
+ configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
+ configs += [
|
||||
+ "//build/config/compiler:no_chromium_code",
|
||||
+ ":opus_test_config",
|
||||
+ ":test_opus_decode_config",
|
||||
+ ]
|
||||
+
|
||||
+ deps = [
|
||||
+ ":opus",
|
||||
+ ]
|
||||
+}
|
||||
+
|
||||
+test("test_opus_padding") {
|
||||
+ sources = [
|
||||
+ "src/tests/test_opus_padding.c",
|
||||
+ ]
|
||||
+
|
||||
+ configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
+ configs += [
|
||||
+ "//build/config/compiler:no_chromium_code",
|
||||
+ ":opus_test_config",
|
||||
+ ]
|
||||
+
|
||||
+ deps = [
|
||||
+ ":opus",
|
||||
+ ]
|
||||
+}
|
||||
+
|
||||
# Copyright 2017 The Chromium Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
diff -up chromium-67.0.3396.62/build/linux/unbundle/replace_gn_files.py.gnsystem chromium-67.0.3396.62/build/linux/unbundle/replace_gn_files.py
|
||||
--- chromium-67.0.3396.62/build/linux/unbundle/replace_gn_files.py.gnsystem 2018-05-30 12:18:36.951488638 -0400
|
||||
+++ chromium-67.0.3396.62/build/linux/unbundle/replace_gn_files.py 2018-05-30 12:20:02.542534270 -0400
|
||||
@@ -27,6 +27,7 @@ REPLACEMENTS = {
|
||||
'libevent': 'base/third_party/libevent/BUILD.gn',
|
||||
'libjpeg': 'third_party/libjpeg.gni',
|
||||
'libpng': 'third_party/libpng/BUILD.gn',
|
||||
+ 'libusb': 'third_party/libusb/BUILD.gn',
|
||||
'libvpx': 'third_party/libvpx/BUILD.gn',
|
||||
'libwebp': 'third_party/libwebp/BUILD.gn',
|
||||
'libxml': 'third_party/libxml/BUILD.gn',
|
@ -0,0 +1,36 @@
|
||||
diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h
|
||||
--- chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2018-08-09 03:21:23.066802340 -0400
|
||||
+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2018-08-09 03:25:10.638595925 -0400
|
||||
@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
|
||||
|
||||
bool is_valid() const { return handle_.is_valid(); }
|
||||
|
||||
- explicit operator bool() const { return handle_.is_valid(); }
|
||||
+ explicit operator bool() const { return (bool) handle_.is_valid(); }
|
||||
|
||||
ScopedInterfaceEndpointHandle PassHandle() {
|
||||
return std::move(handle_);
|
||||
diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h
|
||||
--- chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2018-08-09 03:21:23.067802318 -0400
|
||||
+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h 2018-08-09 03:24:44.935229067 -0400
|
||||
@@ -50,7 +50,7 @@ class AssociatedInterfaceRequest {
|
||||
// handle.
|
||||
bool is_pending() const { return handle_.is_valid(); }
|
||||
|
||||
- explicit operator bool() const { return handle_.is_valid(); }
|
||||
+ explicit operator bool() const { return (bool) handle_.is_valid(); }
|
||||
|
||||
ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
|
||||
|
||||
diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h
|
||||
--- chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h.boolfix 2018-08-08 15:11:05.000000000 -0400
|
||||
+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h 2018-08-09 03:21:23.067802318 -0400
|
||||
@@ -54,7 +54,7 @@ class InterfaceRequest {
|
||||
// Indicates whether the request currently contains a valid message pipe.
|
||||
bool is_pending() const { return handle_.is_valid(); }
|
||||
|
||||
- explicit operator bool() const { return handle_.is_valid(); }
|
||||
+ explicit operator bool() const { return (bool) handle_.is_valid(); }
|
||||
|
||||
// Removes the message pipe from the request and returns it.
|
||||
ScopedMessagePipeHandle PassMessagePipe() { return std::move(handle_); }
|
@ -0,0 +1,30 @@
|
||||
diff -up chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc.122692c chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc
|
||||
--- chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc.122692c 2018-08-17 14:54:30.587338865 -0400
|
||||
+++ chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc 2018-08-17 14:55:20.461184298 -0400
|
||||
@@ -14,22 +14,22 @@ 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;
|
||||
Logo::~Logo() = default;
|
||||
|
||||
LogoCallbacks::LogoCallbacks() = default;
|
||||
-LogoCallbacks::LogoCallbacks(LogoCallbacks&&) noexcept = default;
|
||||
-LogoCallbacks& LogoCallbacks::operator=(LogoCallbacks&&) noexcept = default;
|
||||
+LogoCallbacks::LogoCallbacks(LogoCallbacks&&) = default;
|
||||
+LogoCallbacks& LogoCallbacks::operator=(LogoCallbacks&&) = default;
|
||||
LogoCallbacks::~LogoCallbacks() = default;
|
||||
|
||||
} // namespace search_provider_logos
|
@ -0,0 +1,15 @@
|
||||
diff -up chromium-68.0.3440.106/chrome/browser/first_run/first_run_internal_linux.cc.etc chromium-68.0.3440.106/chrome/browser/first_run/first_run_internal_linux.cc
|
||||
--- chromium-68.0.3440.106/chrome/browser/first_run/first_run_internal_linux.cc.etc 2018-08-09 03:12:33.444705798 -0400
|
||||
+++ chromium-68.0.3440.106/chrome/browser/first_run/first_run_internal_linux.cc 2018-08-09 03:14:46.275754910 -0400
|
||||
@@ -19,9 +19,9 @@ bool IsOrganicFirstRun() {
|
||||
|
||||
base::FilePath MasterPrefsPath() {
|
||||
// The standard location of the master prefs is next to the chrome binary.
|
||||
+ // ...but we patch it to use /etc/chromium
|
||||
base::FilePath master_prefs;
|
||||
- if (!base::PathService::Get(base::DIR_EXE, &master_prefs))
|
||||
- return base::FilePath();
|
||||
+ master_prefs = base::FilePath("/etc/chromium");
|
||||
return master_prefs.AppendASCII(installer::kDefaultMasterPrefs);
|
||||
}
|
||||
|
@ -0,0 +1,33 @@
|
||||
diff -up chromium-69.0.3497.81/build/config/BUILD.gn.fyoursysroot chromium-69.0.3497.81/build/config/BUILD.gn
|
||||
--- chromium-69.0.3497.81/build/config/BUILD.gn.fyoursysroot 2018-09-06 13:43:44.863375238 -0400
|
||||
+++ chromium-69.0.3497.81/build/config/BUILD.gn 2018-09-06 13:43:58.377083290 -0400
|
||||
@@ -284,9 +284,9 @@ group("executable_and_loadable_module_an
|
||||
public_deps += [ "//build/config/sanitizers:deps" ]
|
||||
}
|
||||
|
||||
- if (use_custom_libcxx) {
|
||||
- public_deps += [ "//buildtools/third_party/libc++" ]
|
||||
- }
|
||||
+ # if (use_custom_libcxx) {
|
||||
+ # public_deps += [ "//buildtools/third_party/libc++" ]
|
||||
+ # }
|
||||
|
||||
if (use_afl) {
|
||||
public_deps += [ "//third_party/afl" ]
|
||||
diff -up chromium-69.0.3497.81/build/config/sysroot.gni.fyoursysroot chromium-69.0.3497.81/build/config/sysroot.gni
|
||||
--- chromium-69.0.3497.81/build/config/sysroot.gni.fyoursysroot 2018-09-06 13:40:46.212232232 -0400
|
||||
+++ chromium-69.0.3497.81/build/config/sysroot.gni 2018-09-06 13:41:02.421882529 -0400
|
||||
@@ -15,9 +15,10 @@ declare_args() {
|
||||
# The absolute path to directory containing linux sysroot images
|
||||
target_sysroot_dir = "//build/linux"
|
||||
|
||||
- use_sysroot = current_cpu == "x86" || current_cpu == "x64" ||
|
||||
- current_cpu == "arm" || current_cpu == "arm64" ||
|
||||
- current_cpu == "mipsel" || current_cpu == "mips64el"
|
||||
+ use_sysroot = false
|
||||
+ # use_sysroot = current_cpu == "x86" || current_cpu == "x64" ||
|
||||
+ # current_cpu == "arm" || current_cpu == "arm64" ||
|
||||
+ # current_cpu == "mipsel" || current_cpu == "mips64el"
|
||||
}
|
||||
|
||||
if (current_os == target_os && current_cpu == target_cpu &&
|
@ -0,0 +1,13 @@
|
||||
diff -up chromium-70.0.3538.67/base/test/BUILD.gn.nofc chromium-70.0.3538.67/base/test/BUILD.gn
|
||||
--- chromium-70.0.3538.67/base/test/BUILD.gn.nofc 2018-10-29 11:29:01.356812567 -0400
|
||||
+++ chromium-70.0.3538.67/base/test/BUILD.gn 2018-10-29 11:29:12.631584916 -0400
|
||||
@@ -209,9 +209,6 @@ static_library("test_support") {
|
||||
data_deps = [
|
||||
"//third_party/test_fonts",
|
||||
]
|
||||
- if (current_toolchain == host_toolchain) {
|
||||
- data_deps += [ ":do_generate_fontconfig_caches" ]
|
||||
- }
|
||||
}
|
||||
|
||||
if (is_ios) {
|
@ -0,0 +1,20 @@
|
||||
diff -up chromium-70.0.3538.67/sandbox/linux/BUILD.gn.sandboxpie chromium-70.0.3538.67/sandbox/linux/BUILD.gn
|
||||
--- chromium-70.0.3538.67/sandbox/linux/BUILD.gn.sandboxpie 2018-10-18 12:14:05.766939769 -0400
|
||||
+++ chromium-70.0.3538.67/sandbox/linux/BUILD.gn 2018-10-18 12:16:37.820027182 -0400
|
||||
@@ -315,10 +315,16 @@ if (is_linux) {
|
||||
# For ULLONG_MAX
|
||||
"-std=gnu99",
|
||||
|
||||
+ "-fPIE",
|
||||
+
|
||||
# These files have a suspicious comparison.
|
||||
# TODO fix this and re-enable this warning.
|
||||
"-Wno-sign-compare",
|
||||
]
|
||||
+
|
||||
+ ldflags = [
|
||||
+ "-pie",
|
||||
+ ]
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,12 @@
|
||||
diff -up chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h.aarch64-new-stat chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h
|
||||
--- chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h.aarch64-new-stat 2018-11-06 13:27:05.118766581 -0500
|
||||
+++ chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h 2018-11-06 13:27:34.575204504 -0500
|
||||
@@ -5,6 +5,8 @@
|
||||
#ifndef SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
|
||||
#define SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
|
||||
|
||||
+#define __ARCH_WANT_NEW_STAT
|
||||
+
|
||||
#include <asm-generic/unistd.h>
|
||||
|
||||
#if !defined(__NR_io_setup)
|
@ -0,0 +1,12 @@
|
||||
diff -up chromium-71.0.3578.98/third_party/tcmalloc/gperftools-2.0/chromium/src/base/linux_syscall_support.h.gcc9 chromium-71.0.3578.98/third_party/tcmalloc/gperftools-2.0/chromium/src/base/linux_syscall_support.h
|
||||
--- chromium-71.0.3578.98/third_party/tcmalloc/gperftools-2.0/chromium/src/base/linux_syscall_support.h.gcc9 2019-01-08 13:27:25.193614727 -0500
|
||||
+++ chromium-71.0.3578.98/third_party/tcmalloc/gperftools-2.0/chromium/src/base/linux_syscall_support.h 2019-01-08 13:27:35.161392234 -0500
|
||||
@@ -1231,7 +1231,7 @@ typedef unsigned long int ulong;
|
||||
"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);
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
diff -up chromium-71.0.3578.98/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py.py2 chromium-71.0.3578.98/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py
|
||||
--- chromium-71.0.3578.98/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py.py2 2018-12-12 17:02:58.000000000 -0500
|
||||
+++ chromium-71.0.3578.98/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py 2018-12-14 11:48:22.150229631 -0500
|
||||
@@ -58,7 +58,7 @@ def _MinifyJS(input_js):
|
||||
|
||||
with tempfile.NamedTemporaryFile() as _:
|
||||
args = [
|
||||
- 'python',
|
||||
+ 'python2',
|
||||
rjsmin_path
|
||||
]
|
||||
p = subprocess.Popen(args,
|
||||
@@ -177,7 +177,7 @@ def _MinifyCSS(css_text):
|
||||
os.path.join(py_vulcanize_path, 'third_party', 'rcssmin', 'rcssmin.py'))
|
||||
|
||||
with tempfile.NamedTemporaryFile() as _:
|
||||
- rcssmin_args = ['python', rcssmin_path]
|
||||
+ rcssmin_args = ['python2', rcssmin_path]
|
||||
p = subprocess.Popen(rcssmin_args,
|
||||
stdin=subprocess.PIPE,
|
||||
stdout=subprocess.PIPE,
|
||||
diff -up chromium-71.0.3578.98/tools/gn/bootstrap/bootstrap.py.py2 chromium-71.0.3578.98/tools/gn/bootstrap/bootstrap.py
|
||||
--- chromium-71.0.3578.98/tools/gn/bootstrap/bootstrap.py.py2 2018-12-14 11:48:22.155229522 -0500
|
||||
+++ chromium-71.0.3578.98/tools/gn/bootstrap/bootstrap.py 2018-12-14 11:49:31.043728244 -0500
|
||||
@@ -93,7 +93,7 @@ def main(argv):
|
||||
if not options.debug:
|
||||
gn_gen_args += ' is_debug=false'
|
||||
subprocess.check_call([
|
||||
- gn_path, 'gen', out_dir,
|
||||
+ gn_path, 'gen', out_dir, ' --script-executable=/usr/bin/python2',
|
||||
'--args=%s' % gn_gen_args, "--root=" + SRC_ROOT
|
||||
])
|
||||
|
@ -0,0 +1,21 @@
|
||||
diff -up chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h
|
||||
--- chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix 2018-12-14 11:17:43.249121756 -0500
|
||||
+++ chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h 2018-12-14 11:20:07.770030234 -0500
|
||||
@@ -658,7 +658,7 @@ SI F approx_powf(F x, F y) {
|
||||
}
|
||||
|
||||
SI F from_half(U16 h) {
|
||||
-#if defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
|
||||
+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
|
||||
return vcvt_f32_f16(h);
|
||||
|
||||
#elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
|
||||
@@ -678,7 +678,7 @@ SI F from_half(U16 h) {
|
||||
}
|
||||
|
||||
SI U16 to_half(F f) {
|
||||
-#if defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
|
||||
+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
|
||||
return vcvt_f16_f32(f);
|
||||
|
||||
#elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
|
@ -0,0 +1,22 @@
|
||||
diff -upr chromium-71.0.3578.80.orig/chrome/common/chrome_content_client.cc chromium-71.0.3578.80/chrome/common/chrome_content_client.cc
|
||||
--- chromium-71.0.3578.80.orig/chrome/common/chrome_content_client.cc 2018-12-21 20:16:43.000000000 +0000
|
||||
+++ chromium-71.0.3578.80/chrome/common/chrome_content_client.cc 2018-12-21 21:34:28.658206942 +0000
|
||||
@@ -99,7 +99,7 @@
|
||||
// Registers Widevine CDM if Widevine is enabled, the Widevine CDM is
|
||||
// bundled and not a component. When the Widevine CDM is a component, it is
|
||||
// registered in widevine_cdm_component_installer.cc.
|
||||
-#if BUILDFLAG(BUNDLE_WIDEVINE_CDM) && !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
|
||||
+#if !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
|
||||
#define REGISTER_BUNDLED_WIDEVINE_CDM
|
||||
#include "third_party/widevine/cdm/widevine_cdm_common.h" // nogncheck
|
||||
// TODO(crbug.com/663554): Needed for WIDEVINE_CDM_VERSION_STRING. Support
|
||||
diff -upr chromium-71.0.3578.80.orig/third_party/widevine/cdm/widevine_cdm_version.h chromium-71.0.3578.80/third_party/widevine/cdm/widevine_cdm_version.h
|
||||
--- chromium-71.0.3578.80.orig/third_party/widevine/cdm/widevine_cdm_version.h 2018-12-21 20:18:01.000000000 +0000
|
||||
+++ chromium-71.0.3578.80/third_party/widevine/cdm/widevine_cdm_version.h 2018-12-21 21:37:45.635374949 +0000
|
||||
@@ -12,4 +12,6 @@
|
||||
// - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available
|
||||
// as a string, e.g., "1.0.123.456").
|
||||
|
||||
+#define WIDEVINE_CDM_VERSION_STRING "undefined"
|
||||
+
|
||||
#endif // WIDEVINE_CDM_VERSION_H_
|
@ -0,0 +1,12 @@
|
||||
diff -up chromium-72.0.3626.121/content/common/user_agent.cc.fedora-user-agent chromium-72.0.3626.121/content/common/user_agent.cc
|
||||
--- chromium-72.0.3626.121/content/common/user_agent.cc.fedora-user-agent 2019-03-10 14:21:02.877454982 -0400
|
||||
+++ chromium-72.0.3626.121/content/common/user_agent.cc 2019-03-10 14:22:05.728812272 -0400
|
||||
@@ -36,7 +36,7 @@ std::string GetUserAgentPlatform() {
|
||||
#elif defined(OS_MACOSX)
|
||||
"Macintosh; ";
|
||||
#elif defined(USE_X11) || defined(USE_OZONE)
|
||||
- "X11; "; // strange, but that's what Firefox uses
|
||||
+ "X11; Fedora; "; // strange, but that's what Firefox uses
|
||||
#elif defined(OS_ANDROID)
|
||||
"Linux; ";
|
||||
#elif defined(OS_POSIX) || defined(OS_FUCHSIA)
|
@ -0,0 +1,36 @@
|
||||
diff -up chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h
|
||||
--- chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-03-01 23:10:21.000000000 -0500
|
||||
+++ chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h 2019-03-10 14:07:48.300244125 -0400
|
||||
@@ -15,7 +15,7 @@ namespace mojo {
|
||||
template <>
|
||||
struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
|
||||
static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
|
||||
- return mailbox.name;
|
||||
+ return base::make_span(mailbox.name);
|
||||
}
|
||||
static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
|
||||
};
|
||||
diff -up chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h
|
||||
--- chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-03-01 23:10:31.000000000 -0500
|
||||
+++ chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-03-10 14:07:48.303244046 -0400
|
||||
@@ -340,7 +340,7 @@ struct StructTraits<viz::mojom::TextureQ
|
||||
static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
|
||||
const viz::TextureDrawQuad* quad =
|
||||
viz::TextureDrawQuad::MaterialCast(&input);
|
||||
- return quad->vertex_opacity;
|
||||
+ return base::make_span(quad->vertex_opacity);
|
||||
}
|
||||
|
||||
static bool y_flipped(const viz::DrawQuad& input) {
|
||||
diff -up chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
|
||||
--- chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-03-10 14:07:48.307243941 -0400
|
||||
+++ chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-03-10 14:09:16.565920044 -0400
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
#include "modules/audio_processing/aec3/aec_state.h"
|
||||
|
||||
-#include <math.h>
|
||||
+#include <cmath>
|
||||
#include <algorithm>
|
||||
#include <numeric>
|
||||
#include <vector>
|
@ -0,0 +1,11 @@
|
||||
diff -up chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd.notest chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd
|
||||
--- chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd.notest 2019-03-10 13:54:17.843583876 -0400
|
||||
+++ chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd 2019-03-10 14:03:29.302063637 -0400
|
||||
@@ -8,7 +8,6 @@
|
||||
</outputs>
|
||||
<release seq="1">
|
||||
<includes>
|
||||
- <include name="IDR_WEBUI_TEST_I18N_PROCESS_CSS_TEST" file="webui/i18n_process_css_test.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
|
||||
<include name="IDR_WEB_UI_TEST_MOJO_JS" file="${root_gen_dir}/chrome/test/data/webui/web_ui_test.mojom.js" use_base_dir="false" type="BINDATA"/>
|
||||
<include name="IDR_WEB_UI_TEST_MOJO_LITE_JS" file="${root_gen_dir}/chrome/test/data/webui/web_ui_test.mojom-lite.js" use_base_dir="false" type="BINDATA"/>
|
||||
</includes>
|
@ -0,0 +1,48 @@
|
||||
diff -up chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn.disable-ndnpc chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn
|
||||
--- chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn.disable-ndnpc 2019-03-13 10:29:00.331009643 -0400
|
||||
+++ chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn 2019-03-13 10:29:28.344458746 -0400
|
||||
@@ -31,7 +31,7 @@ gcc_toolchain("arm64") {
|
||||
ld = cxx
|
||||
readelf = "${toolprefix}readelf"
|
||||
nm = "${toolprefix}nm"
|
||||
- extra_cppflags = "-fno-delete-null-pointer-checks"
|
||||
+ extra_cppflags = ""
|
||||
|
||||
toolchain_args = {
|
||||
current_cpu = "arm64"
|
||||
@@ -50,7 +50,7 @@ gcc_toolchain("arm") {
|
||||
ld = cxx
|
||||
readelf = "${toolprefix}readelf"
|
||||
nm = "${toolprefix}nm"
|
||||
- extra_cppflags = "-fno-delete-null-pointer-checks"
|
||||
+ extra_cppflags = ""
|
||||
|
||||
toolchain_args = {
|
||||
current_cpu = "arm"
|
||||
@@ -101,7 +101,7 @@ gcc_toolchain("x86") {
|
||||
nm = "nm"
|
||||
ar = "ar"
|
||||
ld = cxx
|
||||
- extra_cppflags = "-fno-delete-null-pointer-checks -g1"
|
||||
+ extra_cppflags = "-g1"
|
||||
|
||||
# Output linker map files for binary size analysis.
|
||||
enable_linker_map = true
|
||||
@@ -155,7 +155,7 @@ gcc_toolchain("x64") {
|
||||
nm = "nm"
|
||||
ar = "ar"
|
||||
ld = cxx
|
||||
- extra_cppflags = "-fno-delete-null-pointer-checks"
|
||||
+ extra_cppflags = ""
|
||||
|
||||
# Output linker map files for binary size analysis.
|
||||
enable_linker_map = true
|
||||
@@ -190,7 +190,7 @@ gcc_toolchain("mipsel") {
|
||||
ld = cxx
|
||||
readelf = "${toolprefix}readelf"
|
||||
nm = "${toolprefix}nm"
|
||||
- extra_cppflags = "-fno-delete-null-pointer-checks"
|
||||
+ extra_cppflags = ""
|
||||
|
||||
toolchain_args = {
|
||||
cc_wrapper = ""
|
@ -0,0 +1,81 @@
|
||||
diff -up chromium-73.0.3683.75/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-73.0.3683.75/chrome/common/safe_browsing/BUILD.gn
|
||||
--- chromium-73.0.3683.75/chrome/common/safe_browsing/BUILD.gn.nounrar 2019-03-13 08:59:45.988801102 -0400
|
||||
+++ chromium-73.0.3683.75/chrome/common/safe_browsing/BUILD.gn 2019-03-13 09:00:20.244977448 -0400
|
||||
@@ -64,41 +64,6 @@ if (safe_browsing_mode == 1) {
|
||||
]
|
||||
}
|
||||
|
||||
- source_set("rar_analyzer") {
|
||||
- sources = [
|
||||
- "rar_analyzer.cc",
|
||||
- "rar_analyzer.h",
|
||||
- ]
|
||||
-
|
||||
- deps = [
|
||||
- ":archive_analyzer_results",
|
||||
- ":download_type_util",
|
||||
- ":file_type_policies",
|
||||
- "//base",
|
||||
- "//base:i18n",
|
||||
- "//components/safe_browsing:features",
|
||||
- "//third_party/unrar:unrar",
|
||||
- ]
|
||||
-
|
||||
- defines = [
|
||||
- "_FILE_OFFSET_BITS=64",
|
||||
- "LARGEFILE_SOURCE",
|
||||
- "RAR_SMP",
|
||||
- "SILENT",
|
||||
-
|
||||
- # The following is set to disable certain macro definitions in the unrar
|
||||
- # source code.
|
||||
- "CHROMIUM_UNRAR",
|
||||
-
|
||||
- # Disables exceptions in unrar, replaces them with process termination.
|
||||
- "UNRAR_NO_EXCEPTIONS",
|
||||
- ]
|
||||
-
|
||||
- public_deps = [
|
||||
- "//components/safe_browsing:csd_proto",
|
||||
- ]
|
||||
- }
|
||||
-
|
||||
source_set("disk_image_type_sniffer_mac") {
|
||||
sources = [
|
||||
"disk_image_type_sniffer_mac.cc",
|
||||
@@ -167,7 +132,6 @@ source_set("safe_browsing") {
|
||||
":archive_analyzer_results",
|
||||
":binary_feature_extractor",
|
||||
":download_type_util",
|
||||
- ":rar_analyzer",
|
||||
"//components/safe_browsing:features",
|
||||
]
|
||||
|
||||
diff -up chromium-73.0.3683.75/chrome/common/safe_browsing/DEPS.nounrar chromium-73.0.3683.75/chrome/common/safe_browsing/DEPS
|
||||
--- chromium-73.0.3683.75/chrome/common/safe_browsing/DEPS.nounrar 2019-03-11 18:00:54.000000000 -0400
|
||||
+++ chromium-73.0.3683.75/chrome/common/safe_browsing/DEPS 2019-03-13 08:59:26.513282690 -0400
|
||||
@@ -1,6 +1,5 @@
|
||||
include_rules = [
|
||||
"+components/safe_browsing",
|
||||
"+third_party/protobuf",
|
||||
- "+third_party/unrar",
|
||||
"+third_party/zlib",
|
||||
]
|
||||
diff -up chromium-73.0.3683.75/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-73.0.3683.75/chrome/services/file_util/safe_archive_analyzer.cc
|
||||
--- chromium-73.0.3683.75/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2019-03-13 08:59:26.518282566 -0400
|
||||
+++ chromium-73.0.3683.75/chrome/services/file_util/safe_archive_analyzer.cc 2019-03-13 09:01:03.885935483 -0400
|
||||
@@ -48,10 +48,14 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
|
||||
void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
|
||||
base::File temporary_file,
|
||||
AnalyzeRarFileCallback callback) {
|
||||
+#if 0
|
||||
DCHECK(rar_file.IsValid());
|
||||
|
||||
safe_browsing::ArchiveAnalyzerResults results;
|
||||
safe_browsing::rar_analyzer::AnalyzeRarFile(
|
||||
std::move(rar_file), std::move(temporary_file), &results);
|
||||
std::move(callback).Run(results);
|
||||
+#else
|
||||
+ NOTREACHED();
|
||||
+#endif
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
diff -up chromium-75.0.3770.100/build/config/BUILD.gn.epel7 chromium-75.0.3770.100/build/config/BUILD.gn
|
||||
--- chromium-75.0.3770.100/build/config/BUILD.gn.epel7 2019-06-20 10:10:03.099549006 -0400
|
||||
+++ chromium-75.0.3770.100/build/config/BUILD.gn 2019-06-20 10:10:21.483158162 -0400
|
||||
@@ -267,6 +267,7 @@ config("default_libs") {
|
||||
"dl",
|
||||
"pthread",
|
||||
"rt",
|
||||
+ "stdc++",
|
||||
]
|
||||
}
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
diff -up chromium-75.0.3770.100/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-75.0.3770.100/v8/src/objects/js-objects.cc
|
||||
--- chromium-75.0.3770.100/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-06-25 10:55:08.132254304 -0400
|
||||
+++ chromium-75.0.3770.100/v8/src/objects/js-objects.cc 2019-06-25 10:55:23.147933648 -0400
|
||||
@@ -3792,6 +3792,10 @@ void JSObject::ApplyAttributesToDictiona
|
||||
}
|
||||
}
|
||||
|
||||
+template void JSObject::ApplyAttributesToDictionary(
|
||||
+ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
|
||||
+ const PropertyAttributes attributes);
|
||||
+
|
||||
template <PropertyAttributes attrs>
|
||||
Maybe<bool> JSObject::PreventExtensionsWithTransition(
|
||||
Handle<JSObject> object, ShouldThrow should_throw) {
|
@ -0,0 +1,34 @@
|
||||
diff -up chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc.git00281713 chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc
|
||||
--- chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc.git00281713 2019-07-02 09:10:38.951369854 -0400
|
||||
+++ chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc 2019-07-02 09:11:59.864642942 -0400
|
||||
@@ -12,13 +12,19 @@
|
||||
#include "chrome/browser/performance_manager/graph/process_node_impl.h"
|
||||
#include "chrome/browser/performance_manager/performance_manager.h"
|
||||
#include "chrome/browser/performance_manager/render_process_user_data.h"
|
||||
+#include "content/public/browser/render_process_host.h"
|
||||
#include "services/resource_coordinator/public/mojom/coordination_unit.mojom.h"
|
||||
|
||||
namespace {
|
||||
|
||||
void BindProcessNode(
|
||||
- content::RenderProcessHost* render_process_host,
|
||||
+ int render_process_host_id,
|
||||
resource_coordinator::mojom::ProcessCoordinationUnitRequest request) {
|
||||
+ content::RenderProcessHost* render_process_host =
|
||||
+ content::RenderProcessHost::FromID(render_process_host_id);
|
||||
+ if (!render_process_host)
|
||||
+ return;
|
||||
+
|
||||
performance_manager::RenderProcessUserData* user_data =
|
||||
performance_manager::RenderProcessUserData::GetForRenderProcessHost(
|
||||
render_process_host);
|
||||
@@ -47,8 +53,7 @@ void ChromeContentBrowserClientPerforman
|
||||
blink::AssociatedInterfaceRegistry* associated_registry,
|
||||
content::RenderProcessHost* render_process_host) {
|
||||
registry->AddInterface(
|
||||
- base::BindRepeating(&BindProcessNode,
|
||||
- base::Unretained(render_process_host)),
|
||||
+ base::BindRepeating(&BindProcessNode, render_process_host->GetID()),
|
||||
base::SequencedTaskRunnerHandle::Get());
|
||||
|
||||
// Ideally this would strictly be a "CreateForRenderProcess", but when a
|
@ -0,0 +1,15 @@
|
||||
diff -up chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h.SIOCGSTAMP chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h
|
||||
--- chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h.SIOCGSTAMP 2019-06-06 10:04:57.050403639 -0400
|
||||
+++ chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h 2019-06-06 10:06:03.975121688 -0400
|
||||
@@ -16,6 +16,11 @@
|
||||
#define WEBRTC_USE_EPOLL 1
|
||||
#endif
|
||||
|
||||
+// for SIOCGSTAMP in Linux 5.2
|
||||
+#if defined(WEBRTC_LINUX)
|
||||
+#include <linux/sockios.h>
|
||||
+#endif
|
||||
+
|
||||
#include <memory>
|
||||
#include <set>
|
||||
#include <vector>
|
@ -0,0 +1,14 @@
|
||||
diff -up chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc.gcc-dcheck_ne-fix chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc
|
||||
--- chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc.gcc-dcheck_ne-fix 2019-06-06 12:42:27.431575032 -0400
|
||||
+++ chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc 2019-06-06 12:43:05.692848409 -0400
|
||||
@@ -31,8 +31,8 @@ void CompositorFrameReportingController:
|
||||
|
||||
void CompositorFrameReportingController::WillBeginMainFrame() {
|
||||
DCHECK(reporters_[PipelineStage::kBeginImplFrame]);
|
||||
- DCHECK_NE(reporters_[PipelineStage::kBeginMainFrame],
|
||||
- reporters_[PipelineStage::kBeginImplFrame]);
|
||||
+ DCHECK(reporters_[PipelineStage::kBeginMainFrame] !=
|
||||
+ reporters_[PipelineStage::kBeginImplFrame]);
|
||||
reporters_[PipelineStage::kBeginImplFrame]->StartStage(
|
||||
"SendBeginMainFrameToCommit");
|
||||
AdvanceReporterStage(PipelineStage::kBeginImplFrame,
|
@ -0,0 +1,21 @@
|
||||
diff -up chromium-75.0.3770.80/third_party/angle/src/common/debug.h.gcc-assume chromium-75.0.3770.80/third_party/angle/src/common/debug.h
|
||||
--- chromium-75.0.3770.80/third_party/angle/src/common/debug.h.gcc-assume 2019-06-06 17:38:01.876631704 -0400
|
||||
+++ chromium-75.0.3770.80/third_party/angle/src/common/debug.h 2019-06-07 09:30:06.205446547 -0400
|
||||
@@ -248,7 +248,7 @@ std::ostream &FmtHex(std::ostream &os, T
|
||||
# define EVENT(message, ...) (void(0))
|
||||
#endif
|
||||
|
||||
-#if defined(COMPILER_GCC) || defined(__clang__)
|
||||
+#if defined(__GNUC__)
|
||||
# define ANGLE_CRASH() __builtin_trap()
|
||||
#else
|
||||
# define ANGLE_CRASH() ((void)(*(volatile char *)0 = 0)), __assume(0)
|
||||
@@ -336,7 +336,7 @@ std::ostream &FmtHex(std::ostream &os, T
|
||||
# define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
|
||||
_Pragma("clang diagnostic push") _Pragma("clang diagnostic error \"-Wpadded\"")
|
||||
# define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("clang diagnostic pop")
|
||||
-#elif defined(COMPILER_GCC)
|
||||
+#elif defined(__GNUC__)
|
||||
# define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
|
||||
_Pragma("GCC diagnostic push") _Pragma("GCC diagnostic error \"-Wpadded\"")
|
||||
# define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("GCC diagnostic pop")
|
@ -0,0 +1,22 @@
|
||||
diff -up chromium-75.0.3770.80/third_party/grpc/src/src/core/lib/gpr/log_linux.cc.gettid-fix chromium-75.0.3770.80/third_party/grpc/src/src/core/lib/gpr/log_linux.cc
|
||||
--- chromium-75.0.3770.80/third_party/grpc/src/src/core/lib/gpr/log_linux.cc.gettid-fix 2019-06-12 17:05:01.720907204 -0400
|
||||
+++ chromium-75.0.3770.80/third_party/grpc/src/src/core/lib/gpr/log_linux.cc 2019-06-12 17:06:01.000671370 -0400
|
||||
@@ -40,7 +40,8 @@
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
-static long gettid(void) { return syscall(__NR_gettid); }
|
||||
+/* renamed to avoid conflict with glibc 'gettid()' */
|
||||
+static long gettid_gpr(void) { return syscall(__NR_gettid); }
|
||||
|
||||
void gpr_log(const char* file, int line, gpr_log_severity severity,
|
||||
const char* format, ...) {
|
||||
@@ -70,7 +71,7 @@ void gpr_default_log(gpr_log_func_args*
|
||||
gpr_timespec now = gpr_now(GPR_CLOCK_REALTIME);
|
||||
struct tm tm;
|
||||
static __thread long tid = 0;
|
||||
- if (tid == 0) tid = gettid();
|
||||
+ if (tid == 0) tid = gettid_gpr();
|
||||
|
||||
timer = static_cast<time_t>(now.tv_sec);
|
||||
final_slash = strrchr(args->file, '/');
|
@ -0,0 +1,14 @@
|
||||
diff -up chromium-75.0.3770.80/third_party/zlib/zconf.h.nozmangle chromium-75.0.3770.80/third_party/zlib/zconf.h
|
||||
--- chromium-75.0.3770.80/third_party/zlib/zconf.h.nozmangle 2019-06-05 11:12:30.420412467 -0400
|
||||
+++ chromium-75.0.3770.80/third_party/zlib/zconf.h 2019-06-05 11:17:43.512683058 -0400
|
||||
@@ -8,10 +8,6 @@
|
||||
#ifndef ZCONF_H
|
||||
#define ZCONF_H
|
||||
|
||||
-/* This include does prefixing as below, but with an updated set of names. Also
|
||||
- * sets up export macros in component builds. */
|
||||
-#include "chromeconf.h"
|
||||
-
|
||||
/*
|
||||
* If you *really* need a unique prefix for all types and library functions,
|
||||
* compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
|
@ -0,0 +1,24 @@
|
||||
diff -up chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc.pure-virtual-fix chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc
|
||||
--- chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc.pure-virtual-fix 2019-06-07 15:03:43.302202979 -0400
|
||||
+++ chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc 2019-06-07 15:04:25.140393048 -0400
|
||||
@@ -116,4 +116,9 @@ void RenderProcessUserData::RenderProces
|
||||
base::Unretained(process_node_.get()), info.exit_code));
|
||||
}
|
||||
|
||||
+void RenderProcessUserData::RenderProcessHostDestroyed(
|
||||
+ content::RenderProcessHost* host) {
|
||||
+ host->RemoveUserData(kRenderProcessUserDataKey);
|
||||
+}
|
||||
+
|
||||
} // namespace performance_manager
|
||||
diff -up chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h.pure-virtual-fix chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h
|
||||
--- chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h.pure-virtual-fix 2019-06-07 15:04:43.530039597 -0400
|
||||
+++ chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h 2019-06-07 15:05:13.770458374 -0400
|
||||
@@ -47,6 +47,7 @@ class RenderProcessUserData : public bas
|
||||
void RenderProcessExited(
|
||||
content::RenderProcessHost* host,
|
||||
const content::ChildProcessTerminationInfo& info) override;
|
||||
+ void RenderProcessHostDestroyed(content::RenderProcessHost* host) override;
|
||||
|
||||
// All instances are linked together in a doubly linked list to allow orderly
|
||||
// destruction at browser shutdown time.
|
@ -0,0 +1,13 @@
|
||||
diff -up chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc.revert-daff6b chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc
|
||||
--- chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc.revert-daff6b 2019-06-06 14:54:13.819190586 -0400
|
||||
+++ chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc 2019-06-06 14:54:31.892839991 -0400
|
||||
@@ -154,8 +154,7 @@ AutocompleteMatch::AutocompleteMatch(con
|
||||
additional_info(match.additional_info),
|
||||
duplicate_matches(match.duplicate_matches) {}
|
||||
|
||||
-AutocompleteMatch::AutocompleteMatch(AutocompleteMatch&& match) noexcept =
|
||||
- default;
|
||||
+AutocompleteMatch::AutocompleteMatch(AutocompleteMatch&& match) = default;
|
||||
|
||||
AutocompleteMatch::~AutocompleteMatch() {
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
diff -up chromium-75.0.3770.80/media/gpu/vaapi/BUILD.gn.i686permissive chromium-75.0.3770.80/media/gpu/vaapi/BUILD.gn
|
||||
--- chromium-75.0.3770.80/media/gpu/vaapi/BUILD.gn.i686permissive 2019-06-10 14:47:37.315515026 -0400
|
||||
+++ chromium-75.0.3770.80/media/gpu/vaapi/BUILD.gn 2019-06-10 14:48:25.250604888 -0400
|
||||
@@ -11,6 +11,10 @@ import("//ui/ozone/ozone.gni")
|
||||
|
||||
assert(use_vaapi)
|
||||
|
||||
+config("vaapi_permissive") {
|
||||
+ cflags = [ "-fpermissive" ]
|
||||
+}
|
||||
+
|
||||
generate_stubs("libva_stubs") {
|
||||
extra_header = "va_stub_header.fragment"
|
||||
sigs = [ "va.sigs" ]
|
||||
@@ -89,6 +93,8 @@ source_set("vaapi") {
|
||||
deps += [ "//media/gpu/linux" ]
|
||||
}
|
||||
|
||||
+ configs += [ ":vaapi_permissive" ]
|
||||
+
|
||||
if (use_x11) {
|
||||
configs += [ "//build/config/linux:x11" ]
|
||||
deps += [ "//ui/gfx/x" ]
|
@ -0,0 +1,14 @@
|
||||
diff -up chromium-75.0.3770.80/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc.va1compat chromium-75.0.3770.80/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc
|
||||
--- chromium-75.0.3770.80/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc.va1compat 2019-06-05 11:35:57.274466969 -0400
|
||||
+++ chromium-75.0.3770.80/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc 2019-06-05 11:36:17.201067326 -0400
|
||||
@@ -39,6 +39,10 @@ enum VAJDADecoderFailure {
|
||||
VAJDA_DECODER_FAILURES_MAX,
|
||||
};
|
||||
|
||||
+#ifndef VA_FOURCC_I420
|
||||
+#define VA_FOURCC_I420 VA_FOURCC('I', '4', '2', '0')
|
||||
+#endif
|
||||
+
|
||||
static void ReportToVAJDADecoderFailureUMA(VAJDADecoderFailure failure) {
|
||||
UMA_HISTOGRAM_ENUMERATION("Media.VAJDA.DecoderFailure", failure,
|
||||
VAJDA_DECODER_FAILURES_MAX + 1);
|
@ -0,0 +1,129 @@
|
||||
diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc
|
||||
--- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 13:41:04.842597850 +0200
|
||||
+++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 13:41:04.842597850 +0200
|
||||
@@ -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-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.cc
|
||||
--- chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept 2019-08-23 13:45:57.673815531 +0200
|
||||
+++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-26 10:13:00.815409764 +0200
|
||||
@@ -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-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.h
|
||||
--- chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept 2019-08-23 13:46:11.455966965 +0200
|
||||
+++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-26 10:13:49.951881558 +0200
|
||||
@@ -143,7 +143,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_; }
|
||||
@@ -278,7 +278,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-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
|
||||
--- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 13:40:42.633353810 +0200
|
||||
+++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 13:40:42.576353183 +0200
|
||||
@@ -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;
|
||||
diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-76.0.3809.100/components/signin/core/browser/account_info.cc
|
||||
--- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 13:40:44.224371292 +0200
|
||||
+++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 13:40:44.190370918 +0200
|
||||
@@ -52,7 +52,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 {
|
||||
@@ -69,7 +69,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-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
|
||||
--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
|
||||
+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 13:40:25.481165338 +0200
|
||||
@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
|
||||
|
||||
CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
|
||||
|
||||
-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
|
||||
+CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
|
||||
|
||||
CoreAccountId::CoreAccountId(const char* id) : id(id) {}
|
||||
|
||||
diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
|
||||
--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
|
||||
+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 13:40:25.481165338 +0200
|
||||
@@ -19,7 +19,7 @@ struct CoreAccountId {
|
||||
~CoreAccountId();
|
||||
|
||||
CoreAccountId& operator=(const CoreAccountId&);
|
||||
- CoreAccountId& operator=(CoreAccountId&&) noexcept;
|
||||
+ CoreAccountId& operator=(CoreAccountId&&);
|
||||
|
||||
// Those implicit constructor and conversion operator allow to
|
||||
// progressively migrate the code to use this struct. Removing
|
||||
diff -up chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept chromium-76.0.3809.100/gpu/config/gpu_info.cc
|
||||
--- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-09 16:48:01.000000000 +0200
|
||||
+++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 13:40:25.482165349 +0200
|
||||
@@ -166,7 +166,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),
|
@ -0,0 +1,53 @@
|
||||
From 719df31ffd4d52b473509cf77acd9c02ec112acb Mon Sep 17 00:00:00 2001
|
||||
From: Jose Dapena Paz <jose.dapena@lge.com>
|
||||
Date: Tue, 04 Jun 2019 18:38:12 +0200
|
||||
Subject: [PATCH] GCC: fix noexcept from move constructor and assign operators of AccountInfo
|
||||
|
||||
AccountInfo declares them as noexcept and uses default implementation,
|
||||
so all its members (including AccountId) should be noexcept. But AccountId
|
||||
is not noexcept. To fix it we just need to make CoreAccountId move
|
||||
operator/assign operator noexcept.
|
||||
|
||||
Bug: 819294
|
||||
Change-Id: Ice38654ab7cf3b9eaa6f54aa36e1fec329264f98
|
||||
---
|
||||
|
||||
diff --git a/google_apis/gaia/core_account_id.cc b/google_apis/gaia/core_account_id.cc
|
||||
index d808082..12eefe3 100644
|
||||
--- a/google_apis/gaia/core_account_id.cc
|
||||
+++ b/google_apis/gaia/core_account_id.cc
|
||||
@@ -6,8 +6,16 @@
|
||||
|
||||
CoreAccountId::CoreAccountId() = default;
|
||||
|
||||
+CoreAccountId::CoreAccountId(const CoreAccountId&) = default;
|
||||
+
|
||||
+CoreAccountId::CoreAccountId(CoreAccountId&&) noexcept = default;
|
||||
+
|
||||
CoreAccountId::~CoreAccountId() = default;
|
||||
|
||||
+CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
|
||||
+
|
||||
+CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
|
||||
+
|
||||
CoreAccountId::CoreAccountId(const char* id) : id(id) {}
|
||||
|
||||
CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
|
||||
diff --git a/google_apis/gaia/core_account_id.h b/google_apis/gaia/core_account_id.h
|
||||
index 5ea602a..c2d1911 100644
|
||||
--- a/google_apis/gaia/core_account_id.h
|
||||
+++ b/google_apis/gaia/core_account_id.h
|
||||
@@ -14,8 +14,13 @@
|
||||
// for design and tracking).
|
||||
struct CoreAccountId {
|
||||
CoreAccountId();
|
||||
+ CoreAccountId(const CoreAccountId&);
|
||||
+ CoreAccountId(CoreAccountId&&) noexcept;
|
||||
~CoreAccountId();
|
||||
|
||||
+ CoreAccountId& operator=(const CoreAccountId&);
|
||||
+ CoreAccountId& operator=(CoreAccountId&&) noexcept;
|
||||
+
|
||||
// Those implicit constructor and conversion operator allow to
|
||||
// progressively migrate the code to use this struct. Removing
|
||||
// them is tracked by https://crbug.com/959161
|
@ -0,0 +1,105 @@
|
||||
From 84c91abab33966f928497c24db4a39f436d2dca8 Mon Sep 17 00:00:00 2001
|
||||
From: Jose Dapena Paz <jose.dapena@lge.com>
|
||||
Date: Fri, 07 Jun 2019 09:50:11 +0000
|
||||
Subject: [PATCH] Make SharedMemoryMapping move constructor noexcept
|
||||
|
||||
As LayerTreeHostImpl::UIResourceData move constructor is declared
|
||||
noexcept with default implementation, the move constructor of its
|
||||
members should also be noexcept. GCC will fail to build otherwise
|
||||
for mismatching noexcept declaration.
|
||||
|
||||
We also set the move assignment operator.
|
||||
|
||||
Bug: 819294
|
||||
Change-Id: Icd663da83b882e15f7d16780c9241972e09bc492
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645297
|
||||
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
|
||||
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/master@{#667064}
|
||||
---
|
||||
|
||||
diff --git a/base/memory/shared_memory_mapping.cc b/base/memory/shared_memory_mapping.cc
|
||||
index 2be2570..8426fa8 100644
|
||||
--- a/base/memory/shared_memory_mapping.cc
|
||||
+++ b/base/memory/shared_memory_mapping.cc
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
SharedMemoryMapping::SharedMemoryMapping() = default;
|
||||
|
||||
-SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping)
|
||||
+SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept
|
||||
: memory_(mapping.memory_),
|
||||
size_(mapping.size_),
|
||||
mapped_size_(mapping.mapped_size_),
|
||||
@@ -42,7 +42,7 @@
|
||||
}
|
||||
|
||||
SharedMemoryMapping& SharedMemoryMapping::operator=(
|
||||
- SharedMemoryMapping&& mapping) {
|
||||
+ SharedMemoryMapping&& mapping) noexcept {
|
||||
Unmap();
|
||||
memory_ = mapping.memory_;
|
||||
size_ = mapping.size_;
|
||||
@@ -90,9 +90,9 @@
|
||||
|
||||
ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping() = default;
|
||||
ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
|
||||
- ReadOnlySharedMemoryMapping&&) = default;
|
||||
+ ReadOnlySharedMemoryMapping&&) noexcept = default;
|
||||
ReadOnlySharedMemoryMapping& ReadOnlySharedMemoryMapping::operator=(
|
||||
- ReadOnlySharedMemoryMapping&&) = default;
|
||||
+ ReadOnlySharedMemoryMapping&&) noexcept = default;
|
||||
ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
|
||||
void* address,
|
||||
size_t size,
|
||||
@@ -102,9 +102,9 @@
|
||||
|
||||
WritableSharedMemoryMapping::WritableSharedMemoryMapping() = default;
|
||||
WritableSharedMemoryMapping::WritableSharedMemoryMapping(
|
||||
- WritableSharedMemoryMapping&&) = default;
|
||||
+ WritableSharedMemoryMapping&&) noexcept = default;
|
||||
WritableSharedMemoryMapping& WritableSharedMemoryMapping::operator=(
|
||||
- WritableSharedMemoryMapping&&) = default;
|
||||
+ WritableSharedMemoryMapping&&) noexcept = default;
|
||||
WritableSharedMemoryMapping::WritableSharedMemoryMapping(
|
||||
void* address,
|
||||
size_t size,
|
||||
diff --git a/base/memory/shared_memory_mapping.h b/base/memory/shared_memory_mapping.h
|
||||
index d9569af..2b8858e 100644
|
||||
--- a/base/memory/shared_memory_mapping.h
|
||||
+++ b/base/memory/shared_memory_mapping.h
|
||||
@@ -32,8 +32,8 @@
|
||||
SharedMemoryMapping();
|
||||
|
||||
// Move operations are allowed.
|
||||
- SharedMemoryMapping(SharedMemoryMapping&& mapping);
|
||||
- SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping);
|
||||
+ SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept;
|
||||
+ SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping) noexcept;
|
||||
|
||||
// Unmaps the region if the mapping is valid.
|
||||
virtual ~SharedMemoryMapping();
|
||||
@@ -93,8 +93,9 @@
|
||||
ReadOnlySharedMemoryMapping();
|
||||
|
||||
// Move operations are allowed.
|
||||
- ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&);
|
||||
- ReadOnlySharedMemoryMapping& operator=(ReadOnlySharedMemoryMapping&&);
|
||||
+ ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&) noexcept;
|
||||
+ ReadOnlySharedMemoryMapping& operator=(
|
||||
+ ReadOnlySharedMemoryMapping&&) noexcept;
|
||||
|
||||
// Returns the base address of the mapping. This is read-only memory. This is
|
||||
// page-aligned. This is nullptr for invalid instances.
|
||||
@@ -171,8 +172,9 @@
|
||||
WritableSharedMemoryMapping();
|
||||
|
||||
// Move operations are allowed.
|
||||
- WritableSharedMemoryMapping(WritableSharedMemoryMapping&&);
|
||||
- WritableSharedMemoryMapping& operator=(WritableSharedMemoryMapping&&);
|
||||
+ WritableSharedMemoryMapping(WritableSharedMemoryMapping&&) noexcept;
|
||||
+ WritableSharedMemoryMapping& operator=(
|
||||
+ WritableSharedMemoryMapping&&) noexcept;
|
||||
|
||||
// Returns the base address of the mapping. This is writable memory. This is
|
||||
// page-aligned. This is nullptr for invalid instances.
|
@ -0,0 +1,76 @@
|
||||
From 0aca7b8dea0f52ba7bd58dfce4ac236ee60670a8 Mon Sep 17 00:00:00 2001
|
||||
From: Jose Dapena Paz <jose.dapena@lge.com>
|
||||
Date: Tue, 04 Jun 2019 19:44:58 +0200
|
||||
Subject: [PATCH] GCC: FeaturePolicyParser ParseValueForFuzzer is not in anonymous namespace
|
||||
|
||||
Compilation fails because we are declaring ParseValueForFuzzer as friend method,
|
||||
but we are declaring it is in anonymous namespace. Moving to global namespace
|
||||
still fails (in this case in Clang).
|
||||
|
||||
So final solution is making it a public static method of FeaturePolicyParser.
|
||||
|
||||
Bug: 819294
|
||||
Change-Id: Iea307cb6faef675b748d6eb5da2175dcbb17fdc7
|
||||
---
|
||||
|
||||
diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
|
||||
index 3b7f4a9..eaee409 100644
|
||||
--- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
|
||||
+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
|
||||
@@ -317,6 +317,13 @@
|
||||
return value;
|
||||
}
|
||||
|
||||
+void FeaturePolicyParser::ParseValueForFuzzer(
|
||||
+ blink::mojom::PolicyValueType feature_type,
|
||||
+ const WTF::String& value_string) {
|
||||
+ bool ok;
|
||||
+ ParseValueForType(feature_type, value_string, &ok);
|
||||
+}
|
||||
+
|
||||
bool IsFeatureDeclared(mojom::FeaturePolicyFeature feature,
|
||||
const ParsedFeaturePolicy& policy) {
|
||||
return std::any_of(policy.begin(), policy.end(),
|
||||
diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
|
||||
index fd25d90..36af405 100644
|
||||
--- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
|
||||
+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
|
||||
@@ -16,9 +16,6 @@
|
||||
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
|
||||
#include "third_party/blink/renderer/platform/wtf/vector.h"
|
||||
|
||||
-// Forward declare for friendship.
|
||||
-void ParseValueForFuzzer(blink::mojom::PolicyValueType, const WTF::String&);
|
||||
-
|
||||
namespace blink {
|
||||
|
||||
class Document;
|
||||
@@ -79,8 +76,9 @@
|
||||
const FeatureNameMap& feature_names,
|
||||
ExecutionContext* execution_context = nullptr);
|
||||
|
||||
+ static void ParseValueForFuzzer(mojom::PolicyValueType, const String&);
|
||||
+
|
||||
private:
|
||||
- friend void ::ParseValueForFuzzer(mojom::PolicyValueType, const String&);
|
||||
static PolicyValue GetFallbackValueForFeature(
|
||||
mojom::FeaturePolicyFeature feature);
|
||||
static PolicyValue ParseValueForType(mojom::PolicyValueType feature_type,
|
||||
diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
|
||||
index 7f8e6aa..53350e43 100644
|
||||
--- a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
|
||||
+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
|
||||
@@ -23,9 +23,9 @@
|
||||
extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
|
||||
static blink::BlinkFuzzerTestSupport test_support =
|
||||
blink::BlinkFuzzerTestSupport();
|
||||
- ParseValueForFuzzer(blink::mojom::PolicyValueType::kBool,
|
||||
- WTF::String(data, size));
|
||||
- ParseValueForFuzzer(blink::mojom::PolicyValueType::kDecDouble,
|
||||
- WTF::String(data, size));
|
||||
+ blink::FeaturePolicyParser::ParseValueForFuzzer(
|
||||
+ blink::mojom::PolicyValueType::kBool, WTF::String(data, size));
|
||||
+ blink::FeaturePolicyParser::ParseValueForFuzzer(
|
||||
+ blink::mojom::PolicyValueType::kDecDouble, WTF::String(data, size));
|
||||
return 0;
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
From cf6d6b40d711fce93a24a2cf517fa3becdbae8bb Mon Sep 17 00:00:00 2001
|
||||
From: Jose Dapena Paz <jose.dapena@lge.com>
|
||||
Date: Wed, 05 Jun 2019 17:18:40 +0000
|
||||
Subject: [PATCH] Make blink::LayoutUnit::HasFraction constexpr
|
||||
|
||||
Other HasFraction methods as in PhysicalUnit are declared already
|
||||
constexpr and using it. It breaks GCC build.
|
||||
|
||||
Bug: 819294.
|
||||
Change-Id: I0c4bd9bd206d45cf31f7fa815ce8533718a425cb
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645222
|
||||
Reviewed-by: vmpstr <vmpstr@chromium.org>
|
||||
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
|
||||
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
|
||||
Cr-Commit-Position: refs/heads/master@{#666336}
|
||||
---
|
||||
|
||||
diff --git a/third_party/blink/renderer/platform/geometry/layout_unit.h b/third_party/blink/renderer/platform/geometry/layout_unit.h
|
||||
index f073986..b6dbc76 100644
|
||||
--- a/third_party/blink/renderer/platform/geometry/layout_unit.h
|
||||
+++ b/third_party/blink/renderer/platform/geometry/layout_unit.h
|
||||
@@ -202,7 +202,9 @@
|
||||
return value_ > 0 ? LayoutUnit() : *this;
|
||||
}
|
||||
|
||||
- bool HasFraction() const { return RawValue() % kFixedPointDenominator; }
|
||||
+ constexpr bool HasFraction() const {
|
||||
+ return RawValue() % kFixedPointDenominator;
|
||||
+ }
|
||||
|
||||
LayoutUnit Fraction() const {
|
||||
// Compute fraction using the mod operator to preserve the sign of the value
|
@ -0,0 +1,42 @@
|
||||
From abe74a7f0c53a43a9706a42d71b7ff4a5da53380 Mon Sep 17 00:00:00 2001
|
||||
From: Jose Dapena Paz <jose.dapena@lge.com>
|
||||
Date: Tue, 11 Jun 2019 10:27:19 +0200
|
||||
Subject: [PATCH] GCC: add noexcept move assignment in history::URLRow
|
||||
|
||||
In GCC, build is failing because history::QueryURLResult declares its move
|
||||
assignment operator as noexcept using default implementation. That requires
|
||||
its members to provide a move assignment operator that is noexcept too.
|
||||
|
||||
But URLRow was missing noexcept declaration in move assignment operator (even
|
||||
though it was providing noexcept to its move constructor).
|
||||
|
||||
Bug: 819294
|
||||
Change-Id: I726e3cf7a4a50c9206a5d0fba8a561d363483d4f
|
||||
---
|
||||
|
||||
diff --git a/components/history/core/browser/url_row.cc b/components/history/core/browser/url_row.cc
|
||||
index 44c22fd..aec0101 100644
|
||||
--- a/components/history/core/browser/url_row.cc
|
||||
+++ b/components/history/core/browser/url_row.cc
|
||||
@@ -26,7 +26,7 @@
|
||||
}
|
||||
|
||||
URLRow& URLRow::operator=(const URLRow& other) = default;
|
||||
-URLRow& URLRow::operator=(URLRow&& other) = default;
|
||||
+URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
|
||||
|
||||
void URLRow::Swap(URLRow* other) {
|
||||
std::swap(id_, other->id_);
|
||||
diff --git a/components/history/core/browser/url_row.h b/components/history/core/browser/url_row.h
|
||||
index 8f6f9cf..31a1ef8 100644
|
||||
--- a/components/history/core/browser/url_row.h
|
||||
+++ b/components/history/core/browser/url_row.h
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
virtual ~URLRow();
|
||||
URLRow& operator=(const URLRow& other);
|
||||
- URLRow& operator=(URLRow&& other);
|
||||
+ URLRow& operator=(URLRow&& other) noexcept;
|
||||
|
||||
URLID id() const { return id_; }
|
||||
|
@ -0,0 +1,33 @@
|
||||
From 7dc76c8d9f4cfbce7cf11424120aa6f6094916dc Mon Sep 17 00:00:00 2001
|
||||
From: Jose Dapena Paz <jose.dapena@lge.com>
|
||||
Date: Wed, 05 Jun 2019 21:09:01 +0000
|
||||
Subject: [PATCH] GCC: XSetWindowAttributes struct initialization should keep order of declaration
|
||||
|
||||
XSetWindowAttributes initialization of attributes in GLSurfaceGLX is not in the
|
||||
same order of the declaration. GCC fails because of that.
|
||||
|
||||
Bug: 819294
|
||||
Change-Id: I8a97da980d5961a35a47ae4d0d8d558b85291f1f
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1646253
|
||||
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
|
||||
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
|
||||
Cr-Commit-Position: refs/heads/master@{#666436}
|
||||
---
|
||||
|
||||
diff --git a/ui/gl/gl_surface_glx.cc b/ui/gl/gl_surface_glx.cc
|
||||
index f649dd4..0aa6892 100644
|
||||
--- a/ui/gl/gl_surface_glx.cc
|
||||
+++ b/ui/gl/gl_surface_glx.cc
|
||||
@@ -583,10 +583,10 @@
|
||||
|
||||
XSetWindowAttributes swa = {
|
||||
.background_pixmap = 0,
|
||||
- .bit_gravity = NorthWestGravity,
|
||||
- .colormap = g_colormap,
|
||||
.background_pixel = 0, // ARGB(0,0,0,0) for compositing WM
|
||||
.border_pixel = 0,
|
||||
+ .bit_gravity = NorthWestGravity,
|
||||
+ .colormap = g_colormap,
|
||||
};
|
||||
auto value_mask = CWBackPixmap | CWBitGravity | CWColormap | CWBorderPixel;
|
||||
if (ui::IsCompositingManagerPresent() &&
|
@ -0,0 +1,97 @@
|
||||
From dcb55fb8f18abe5f43d260aa67b14b2dc996f992 Mon Sep 17 00:00:00 2001
|
||||
From: Jose Dapena Paz <jose.dapena@lge.com>
|
||||
Date: Tue, 11 Jun 2019 08:00:13 +0000
|
||||
Subject: [PATCH] GCC: move explicit specialization out of RunInfo
|
||||
|
||||
Explicit specialization in non-namespace scope is not allowed in C++, and GCC breaks
|
||||
build because of that. Move the template specializations out of RunInfo declaration
|
||||
in shape_result_inline_headeres.h to fix the GCC build issue.
|
||||
|
||||
Bug: 819294
|
||||
Change-Id: Id083852bcf8e9efbdc911fdad28fd8767d2905d0
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651728
|
||||
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
|
||||
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
|
||||
Cr-Commit-Position: refs/heads/master@{#667901}
|
||||
---
|
||||
|
||||
diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
|
||||
index 76ee6091..c14d3a0 100644
|
||||
--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
|
||||
+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
|
||||
@@ -251,37 +251,6 @@
|
||||
template <bool has_non_zero_glyph_offsets>
|
||||
struct iterator final {};
|
||||
|
||||
- // For non-zero glyph offset array
|
||||
- template <>
|
||||
- struct iterator<true> final {
|
||||
- // The constructor for ShapeResult
|
||||
- explicit iterator(const GlyphOffsetArray& array)
|
||||
- : pointer(array.storage_.get()) {
|
||||
- DCHECK(pointer);
|
||||
- }
|
||||
-
|
||||
- // The constructor for ShapeResultView
|
||||
- explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
|
||||
- DCHECK(pointer);
|
||||
- }
|
||||
-
|
||||
- GlyphOffset operator*() const { return *pointer; }
|
||||
- void operator++() { ++pointer; }
|
||||
-
|
||||
- const GlyphOffset* pointer;
|
||||
- };
|
||||
-
|
||||
- // For zero glyph offset array
|
||||
- template <>
|
||||
- struct iterator<false> final {
|
||||
- explicit iterator(const GlyphOffsetArray& array) {
|
||||
- DCHECK(!array.HasStorage());
|
||||
- }
|
||||
- explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
|
||||
- GlyphOffset operator*() const { return GlyphOffset(); }
|
||||
- void operator++() {}
|
||||
- };
|
||||
-
|
||||
template <bool has_non_zero_glyph_offsets>
|
||||
iterator<has_non_zero_glyph_offsets> GetIterator() const {
|
||||
return iterator<has_non_zero_glyph_offsets>(*this);
|
||||
@@ -495,6 +464,37 @@
|
||||
float width_;
|
||||
};
|
||||
|
||||
+// For non-zero glyph offset array
|
||||
+template <>
|
||||
+struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<true> final {
|
||||
+ // The constructor for ShapeResult
|
||||
+ explicit iterator(const GlyphOffsetArray& array)
|
||||
+ : pointer(array.storage_.get()) {
|
||||
+ DCHECK(pointer);
|
||||
+ }
|
||||
+
|
||||
+ // The constructor for ShapeResultView
|
||||
+ explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
|
||||
+ DCHECK(pointer);
|
||||
+ }
|
||||
+
|
||||
+ GlyphOffset operator*() const { return *pointer; }
|
||||
+ void operator++() { ++pointer; }
|
||||
+
|
||||
+ const GlyphOffset* pointer;
|
||||
+};
|
||||
+
|
||||
+// For zero glyph offset array
|
||||
+template <>
|
||||
+struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<false> final {
|
||||
+ explicit iterator(const GlyphOffsetArray& array) {
|
||||
+ DCHECK(!array.HasStorage());
|
||||
+ }
|
||||
+ explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
|
||||
+ GlyphOffset operator*() const { return GlyphOffset(); }
|
||||
+ void operator++() {}
|
||||
+};
|
||||
+
|
||||
// Find the range of HarfBuzzRunGlyphData for the specified character index
|
||||
// range. This function uses binary search twice, hence O(2 log n).
|
||||
inline ShapeResult::RunInfo::GlyphDataRange
|
@ -0,0 +1,14 @@
|
||||
diff -up chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h.gcc-no-alignas chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h
|
||||
--- chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h.gcc-no-alignas 2019-08-09 16:48:13.000000000 +0200
|
||||
+++ chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h 2019-08-15 21:04:30.231532746 +0200
|
||||
@@ -176,8 +176,8 @@ class CSSLazyPropertyParser
|
||||
DISALLOW_COPY_AND_ASSIGN(CSSLazyPropertyParser);
|
||||
};
|
||||
|
||||
-class CORE_EXPORT alignas(Member<const CSSValue>) alignas(
|
||||
- CSSPropertyValueMetadata) ImmutableCSSPropertyValueSet
|
||||
+class CORE_EXPORT ALIGNAS(alignof(Member<const CSSValue>))
|
||||
+ ALIGNAS(alignof(CSSPropertyValueMetadata)) ImmutableCSSPropertyValueSet
|
||||
: public CSSPropertyValueSet {
|
||||
public:
|
||||
ImmutableCSSPropertyValueSet(const CSSPropertyValue*,
|
@ -0,0 +1,27 @@
|
||||
diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.cc.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker.cc
|
||||
--- chromium-76.0.3809.100/remoting/signaling/message_tracker.cc.gcc-constexpr 2019-08-09 16:48:08.000000000 +0200
|
||||
+++ chromium-76.0.3809.100/remoting/signaling/message_tracker.cc 2019-08-20 21:29:14.545465656 +0200
|
||||
@@ -9,8 +9,7 @@
|
||||
namespace remoting {
|
||||
|
||||
// static
|
||||
-const base::TimeDelta MessageTracker::kCleanupInterval =
|
||||
- base::TimeDelta::FromMinutes(2);
|
||||
+constexpr base::TimeDelta MessageTracker::kCleanupInterval;
|
||||
|
||||
MessageTracker::MessageTracker() = default;
|
||||
|
||||
diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker.h
|
||||
--- chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr 2019-08-20 22:02:25.625970954 +0200
|
||||
+++ chromium-76.0.3809.100/remoting/signaling/message_tracker.h 2019-08-20 21:28:23.371952434 +0200
|
||||
@@ -36,7 +36,8 @@ class MessageTracker final {
|
||||
|
||||
// All IDs older than now - kCleanupInterval will be eventually removed, but
|
||||
// they are not guaranteed to be immediately removed after the interval.
|
||||
- static const base::TimeDelta kCleanupInterval;
|
||||
+ static constexpr base::TimeDelta kCleanupInterval =
|
||||
+ base::TimeDelta::FromMinutes(2);
|
||||
|
||||
void RemoveExpiredIds();
|
||||
|
||||
diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker_unittest.cc.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker_unittest.cc
|
@ -0,0 +1,36 @@
|
||||
From d08ea83acc2f5ff395c1fe54f52687e92fe51c3b Mon Sep 17 00:00:00 2001
|
||||
From: Jose Dapena Paz <jose.dapena@lge.com>
|
||||
Date: Tue, 04 Jun 2019 22:01:03 +0200
|
||||
Subject: [PATCH] IWYU: ThemeService requires NativeTheme
|
||||
|
||||
As ThemeService referes to NativeTheme through a ScopedObserver,
|
||||
the full declaration is required.
|
||||
|
||||
Bug: 819294
|
||||
Change-Id: I9d5bd2e87cfaa76e87f9b5509daea24848906a63
|
||||
---
|
||||
|
||||
diff --git a/chrome/browser/themes/theme_service.cc b/chrome/browser/themes/theme_service.cc
|
||||
index d65388e2..23dc86d 100644
|
||||
--- a/chrome/browser/themes/theme_service.cc
|
||||
+++ b/chrome/browser/themes/theme_service.cc
|
||||
@@ -54,7 +54,6 @@
|
||||
#include "ui/gfx/color_palette.h"
|
||||
#include "ui/gfx/image/image_skia.h"
|
||||
#include "ui/native_theme/common_theme.h"
|
||||
-#include "ui/native_theme/native_theme.h"
|
||||
|
||||
#if BUILDFLAG(ENABLE_EXTENSIONS)
|
||||
#include "base/scoped_observer.h"
|
||||
diff --git a/chrome/browser/themes/theme_service.h b/chrome/browser/themes/theme_service.h
|
||||
index 6c79c72..f93dc0d 100644
|
||||
--- a/chrome/browser/themes/theme_service.h
|
||||
+++ b/chrome/browser/themes/theme_service.h
|
||||
@@ -25,6 +25,7 @@
|
||||
#include "extensions/buildflags/buildflags.h"
|
||||
#include "extensions/common/extension_id.h"
|
||||
#include "ui/base/theme_provider.h"
|
||||
+#include "ui/native_theme/native_theme.h"
|
||||
#include "ui/native_theme/native_theme_observer.h"
|
||||
|
||||
class BrowserThemePack;
|
@ -0,0 +1,115 @@
|
||||
From fdb3bb1f8c41d044a5b0cb80257a26dd3c8f83a3 Mon Sep 17 00:00:00 2001
|
||||
From: Jose Dapena Paz <jose.dapena@lge.com>
|
||||
Date: Tue, 11 Jun 2019 17:39:38 +0000
|
||||
Subject: [PATCH] GCC: do not use old C notation to assign struct with property names.
|
||||
|
||||
The notation for initialization of structs referring to its properties
|
||||
is invalid in C++. This is not accepted in GCC. It was making build
|
||||
fail in VulkanCommandBuffer.
|
||||
|
||||
./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::TransitionImageLayout(VkImage, VkImageLayout, VkImageLayout)':
|
||||
./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:214:7: error: expected primary-expression before '.' token
|
||||
.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
|
||||
^
|
||||
./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:215:7: error: expected primary-expression before '.' token
|
||||
.subresourceRange.baseMipLevel = 0,
|
||||
^
|
||||
./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:216:7: error: expected primary-expression before '.' token
|
||||
.subresourceRange.levelCount = 1,
|
||||
^
|
||||
./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:217:7: error: expected primary-expression before '.' token
|
||||
.subresourceRange.baseArrayLayer = 0,
|
||||
^
|
||||
./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:218:7: error: expected primary-expression before '.' token
|
||||
.subresourceRange.layerCount = 1,
|
||||
^
|
||||
./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::CopyBufferToImage(VkBuffer, VkImage, uint32_t, uint32_t, uint32_t, uint32_t)':
|
||||
./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:235:7: error: expected primary-expression before '.' token
|
||||
.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
|
||||
^
|
||||
./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:236:7: error: expected primary-expression before '.' token
|
||||
.imageSubresource.mipLevel = 0,
|
||||
^
|
||||
./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:237:7: error: expected primary-expression before '.' token
|
||||
.imageSubresource.baseArrayLayer = 0,
|
||||
^
|
||||
./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:238:7: error: expected primary-expression before '.' token
|
||||
.imageSubresource.layerCount = 1,
|
||||
^
|
||||
Bug: 819294
|
||||
|
||||
Change-Id: I999abece0c727e77964789183642ba62009c2c22
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651802
|
||||
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
|
||||
Reviewed-by: Antoine Labour <piman@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/master@{#668033}
|
||||
---
|
||||
|
||||
diff --git a/gpu/vulkan/vulkan_command_buffer.cc b/gpu/vulkan/vulkan_command_buffer.cc
|
||||
index ba776e4..4f14c85 100644
|
||||
--- a/gpu/vulkan/vulkan_command_buffer.cc
|
||||
+++ b/gpu/vulkan/vulkan_command_buffer.cc
|
||||
@@ -207,21 +207,20 @@
|
||||
void VulkanCommandBuffer::TransitionImageLayout(VkImage image,
|
||||
VkImageLayout old_layout,
|
||||
VkImageLayout new_layout) {
|
||||
- VkImageMemoryBarrier barrier = {
|
||||
- .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
|
||||
- .srcAccessMask = GetAccessMask(old_layout),
|
||||
- .dstAccessMask = GetAccessMask(new_layout),
|
||||
- .oldLayout = old_layout,
|
||||
- .newLayout = new_layout,
|
||||
- .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
|
||||
- .dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
|
||||
- .image = image,
|
||||
- .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
|
||||
- .subresourceRange.baseMipLevel = 0,
|
||||
- .subresourceRange.levelCount = 1,
|
||||
- .subresourceRange.baseArrayLayer = 0,
|
||||
- .subresourceRange.layerCount = 1,
|
||||
- };
|
||||
+ VkImageMemoryBarrier barrier = {};
|
||||
+ barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
|
||||
+ barrier.srcAccessMask = GetAccessMask(old_layout);
|
||||
+ barrier.dstAccessMask = GetAccessMask(new_layout);
|
||||
+ barrier.oldLayout = old_layout;
|
||||
+ barrier.newLayout = new_layout;
|
||||
+ barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
|
||||
+ barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
|
||||
+ barrier.image = image;
|
||||
+ barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
|
||||
+ barrier.subresourceRange.baseMipLevel = 0;
|
||||
+ barrier.subresourceRange.levelCount = 1;
|
||||
+ barrier.subresourceRange.baseArrayLayer = 0;
|
||||
+ barrier.subresourceRange.layerCount = 1;
|
||||
vkCmdPipelineBarrier(command_buffer_, GetPipelineStageFlags(old_layout),
|
||||
GetPipelineStageFlags(new_layout), 0, 0, nullptr, 0,
|
||||
nullptr, 1, &barrier);
|
||||
@@ -233,17 +232,16 @@
|
||||
uint32_t buffer_height,
|
||||
uint32_t width,
|
||||
uint32_t height) {
|
||||
- VkBufferImageCopy region = {
|
||||
- .bufferOffset = 0,
|
||||
- .bufferRowLength = buffer_width,
|
||||
- .bufferImageHeight = buffer_height,
|
||||
- .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
|
||||
- .imageSubresource.mipLevel = 0,
|
||||
- .imageSubresource.baseArrayLayer = 0,
|
||||
- .imageSubresource.layerCount = 1,
|
||||
- .imageOffset = {0, 0, 0},
|
||||
- .imageExtent = {width, height, 1},
|
||||
- };
|
||||
+ VkBufferImageCopy region = {};
|
||||
+ region.bufferOffset = 0;
|
||||
+ region.bufferRowLength = buffer_width;
|
||||
+ region.bufferImageHeight = buffer_height;
|
||||
+ region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
|
||||
+ region.imageSubresource.mipLevel = 0;
|
||||
+ region.imageSubresource.baseArrayLayer = 0;
|
||||
+ region.imageSubresource.layerCount = 1;
|
||||
+ region.imageOffset = {0, 0, 0};
|
||||
+ region.imageExtent = {width, height, 1};
|
||||
vkCmdCopyBufferToImage(command_buffer_, buffer, image,
|
||||
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, ®ion);
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
diff -up chromium-76.0.3809.100/services/device/usb/usb_context.cc.modern-libusbx chromium-76.0.3809.100/services/device/usb/usb_context.cc
|
||||
--- chromium-76.0.3809.100/services/device/usb/usb_context.cc.modern-libusbx 2019-08-12 15:40:49.034170484 +0200
|
||||
+++ chromium-76.0.3809.100/services/device/usb/usb_context.cc 2019-08-12 15:41:23.775558867 +0200
|
||||
@@ -58,7 +58,11 @@ void UsbContext::UsbEventHandler::Run()
|
||||
|
||||
void UsbContext::UsbEventHandler::Stop() {
|
||||
base::subtle::Release_Store(&running_, 0);
|
||||
+#ifdef LIBUSB_API_VERSION >= 0x01000105
|
||||
+ libusb_interrupt_event_handler(context_);
|
||||
+#else
|
||||
libusb_interrupt_handle_event(context_);
|
||||
+#endif
|
||||
}
|
||||
|
||||
UsbContext::UsbContext(PlatformUsbContext context) : context_(context) {
|
@ -0,0 +1,47 @@
|
||||
diff -up chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse-api-change chromium-76.0.3809.100/media/audio/pulse/pulse.sigs
|
||||
--- chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse-api-change 2019-08-14 23:18:59.624627870 +0200
|
||||
+++ chromium-76.0.3809.100/media/audio/pulse/pulse.sigs 2019-08-14 23:19:41.258104998 +0200
|
||||
@@ -24,11 +24,11 @@ pa_operation* pa_context_get_source_info
|
||||
pa_operation* pa_context_get_source_info_by_name(pa_context* c, const char* name, pa_source_info_cb_t cb, void *userdata);
|
||||
pa_operation* pa_context_get_source_info_list(pa_context* c, pa_source_info_cb_t cb, void* userdata);
|
||||
pa_operation* pa_context_get_sink_info_list(pa_context* c, pa_sink_info_cb_t cb, void* userdata);
|
||||
-pa_context_state_t pa_context_get_state(pa_context* c);
|
||||
+pa_context_state_t pa_context_get_state(const pa_context* c);
|
||||
pa_context* pa_context_new(pa_mainloop_api* mainloop, const char* name);
|
||||
pa_operation* pa_context_set_source_volume_by_index(pa_context* c, uint32_t idx, const pa_cvolume* volume, pa_context_success_cb_t cb, void* userdata);
|
||||
void pa_context_set_state_callback(pa_context* c, pa_context_notify_cb_t cb, void* userdata);
|
||||
-pa_operation_state_t pa_operation_get_state(pa_operation* o);
|
||||
+pa_operation_state_t pa_operation_get_state(const pa_operation* o);
|
||||
void pa_context_unref(pa_context* c);
|
||||
void pa_operation_unref(pa_operation* o);
|
||||
int pa_stream_begin_write(pa_stream* p, void** data, size_t* nbytes);
|
||||
@@ -38,23 +38,23 @@ pa_operation* pa_stream_cork(pa_stream*
|
||||
int pa_stream_disconnect(pa_stream* s);
|
||||
int pa_stream_drop(pa_stream *p);
|
||||
pa_operation* pa_stream_flush(pa_stream* s, pa_stream_success_cb_t cb, void* userdata);
|
||||
-uint32_t pa_stream_get_device_index(pa_stream* s);
|
||||
+uint32_t pa_stream_get_device_index(const pa_stream* s);
|
||||
int pa_stream_get_latency(pa_stream* s, pa_usec_t* r_usec, int* negative);
|
||||
-pa_stream_state_t pa_stream_get_state(pa_stream* p);
|
||||
+pa_stream_state_t pa_stream_get_state(const pa_stream* p);
|
||||
pa_stream* pa_stream_new(pa_context* c, const char* name, const pa_sample_spec* ss, const pa_channel_map * map);
|
||||
pa_stream* pa_stream_new_with_proplist(pa_context* c, const char* name, const pa_sample_spec* ss, const pa_channel_map* map, pa_proplist* p);
|
||||
pa_proplist* pa_proplist_new(void);
|
||||
-int pa_proplist_contains(pa_proplist* p, const char* key);
|
||||
+int pa_proplist_contains(const pa_proplist* p, const char* key);
|
||||
void pa_proplist_free(pa_proplist* p);
|
||||
-const char* pa_proplist_gets(pa_proplist* p, const char* key);
|
||||
+const char* pa_proplist_gets(const pa_proplist* p, const char* key);
|
||||
int pa_proplist_sets(pa_proplist* p, const char* key, const char* value);
|
||||
-size_t pa_stream_readable_size(pa_stream *p);
|
||||
+size_t pa_stream_readable_size(const pa_stream *p);
|
||||
int pa_stream_peek(pa_stream* p, const void** data, size_t* nbytes);
|
||||
void pa_stream_set_read_callback(pa_stream* p, pa_stream_request_cb_t cb, void* userdata);
|
||||
void pa_stream_set_state_callback(pa_stream* s, pa_stream_notify_cb_t cb, void* userdata);
|
||||
int pa_stream_write(pa_stream* p, const void* data, size_t nbytes, pa_free_cb_t free_cb, int64_t offset, pa_seek_mode_t seek);
|
||||
void pa_stream_set_write_callback(pa_stream *p, pa_stream_request_cb_t cb, void *userdata);
|
||||
void pa_stream_unref(pa_stream* s);
|
||||
-int pa_context_errno(pa_context *c);
|
||||
+int pa_context_errno(const pa_context *c);
|
||||
const char* pa_strerror(int error);
|
||||
pa_cvolume* pa_cvolume_set(pa_cvolume* a, unsigned channels, pa_volume_t v);
|
@ -0,0 +1,225 @@
|
||||
diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc
|
||||
--- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix 2019-08-14 09:58:07.721193200 +0200
|
||||
+++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc 2019-08-14 09:59:33.131041525 +0200
|
||||
@@ -62,37 +62,37 @@ const size_t kStatelessResetTokenLength
|
||||
std::string TransportParameterIdToString(
|
||||
TransportParameters::TransportParameterId param_id) {
|
||||
switch (param_id) {
|
||||
- case kOriginalConnectionId:
|
||||
+ case TransportParameters::kOriginalConnectionId:
|
||||
return "original_connection_id";
|
||||
- case kIdleTimeout:
|
||||
+ case TransportParameters::kIdleTimeout:
|
||||
return "idle_timeout";
|
||||
- case kStatelessResetToken:
|
||||
+ case TransportParameters::kStatelessResetToken:
|
||||
return "stateless_reset_token";
|
||||
- case kMaxPacketSize:
|
||||
+ case TransportParameters::kMaxPacketSize:
|
||||
return "max_packet_size";
|
||||
- case kInitialMaxData:
|
||||
+ case TransportParameters::kInitialMaxData:
|
||||
return "initial_max_data";
|
||||
- case kInitialMaxStreamDataBidiLocal:
|
||||
+ case TransportParameters::kInitialMaxStreamDataBidiLocal:
|
||||
return "initial_max_stream_data_bidi_local";
|
||||
- case kInitialMaxStreamDataBidiRemote:
|
||||
+ case TransportParameters::kInitialMaxStreamDataBidiRemote:
|
||||
return "initial_max_stream_data_bidi_remote";
|
||||
- case kInitialMaxStreamDataUni:
|
||||
+ case TransportParameters::kInitialMaxStreamDataUni:
|
||||
return "initial_max_stream_data_uni";
|
||||
- case kInitialMaxStreamsBidi:
|
||||
+ case TransportParameters::kInitialMaxStreamsBidi:
|
||||
return "initial_max_streams_bidi";
|
||||
- case kInitialMaxStreamsUni:
|
||||
+ case TransportParameters::kInitialMaxStreamsUni:
|
||||
return "initial_max_streams_uni";
|
||||
- case kAckDelayExponent:
|
||||
+ case TransportParameters::kAckDelayExponent:
|
||||
return "ack_delay_exponent";
|
||||
- case kMaxAckDelay:
|
||||
+ case TransportParameters::kMaxAckDelay:
|
||||
return "max_ack_delay";
|
||||
- case kDisableMigration:
|
||||
+ case TransportParameters::kDisableMigration:
|
||||
return "disable_migration";
|
||||
- case kPreferredAddress:
|
||||
+ case TransportParameters::kPreferredAddress:
|
||||
return "preferred_address";
|
||||
- case kGoogleQuicParam:
|
||||
+ case TransportParameters::kGoogleQuicParam:
|
||||
return "google";
|
||||
- case kGoogleQuicVersion:
|
||||
+ case TransportParameters::kGoogleQuicVersion:
|
||||
return "google-version";
|
||||
}
|
||||
return "Unknown(" + QuicTextUtils::Uint64ToString(param_id) + ")";
|
||||
@@ -390,7 +390,7 @@ bool SerializeTransportParameters(const
|
||||
CBB original_connection_id_param;
|
||||
if (!in.original_connection_id.IsEmpty()) {
|
||||
DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
|
||||
- if (!CBB_add_u16(¶ms, kOriginalConnectionId) ||
|
||||
+ if (!CBB_add_u16(¶ms, TransportParameters::kOriginalConnectionId) ||
|
||||
!CBB_add_u16_length_prefixed(¶ms, &original_connection_id_param) ||
|
||||
!CBB_add_bytes(
|
||||
&original_connection_id_param,
|
||||
@@ -412,7 +412,7 @@ bool SerializeTransportParameters(const
|
||||
if (!in.stateless_reset_token.empty()) {
|
||||
DCHECK_EQ(kStatelessResetTokenLength, in.stateless_reset_token.size());
|
||||
DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
|
||||
- if (!CBB_add_u16(¶ms, kStatelessResetToken) ||
|
||||
+ if (!CBB_add_u16(¶ms, TransportParameters::kStatelessResetToken) ||
|
||||
!CBB_add_u16_length_prefixed(¶ms, &stateless_reset_token_param) ||
|
||||
!CBB_add_bytes(&stateless_reset_token_param,
|
||||
in.stateless_reset_token.data(),
|
||||
@@ -438,7 +438,7 @@ bool SerializeTransportParameters(const
|
||||
|
||||
// disable_migration
|
||||
if (in.disable_migration) {
|
||||
- if (!CBB_add_u16(¶ms, kDisableMigration) ||
|
||||
+ if (!CBB_add_u16(¶ms, TransportParameters::kDisableMigration) ||
|
||||
!CBB_add_u16(¶ms, 0u)) { // 0 is the length of this parameter.
|
||||
QUIC_BUG << "Failed to write disable_migration for " << in;
|
||||
return false;
|
||||
@@ -458,7 +458,7 @@ bool SerializeTransportParameters(const
|
||||
QUIC_BUG << "Bad lengths " << *in.preferred_address;
|
||||
return false;
|
||||
}
|
||||
- if (!CBB_add_u16(¶ms, kPreferredAddress) ||
|
||||
+ if (!CBB_add_u16(¶ms, TransportParameters::kPreferredAddress) ||
|
||||
!CBB_add_u16_length_prefixed(¶ms, &preferred_address_params) ||
|
||||
!CBB_add_bytes(
|
||||
&preferred_address_params,
|
||||
@@ -491,7 +491,7 @@ bool SerializeTransportParameters(const
|
||||
if (in.google_quic_params) {
|
||||
const QuicData& serialized_google_quic_params =
|
||||
in.google_quic_params->GetSerialized();
|
||||
- if (!CBB_add_u16(¶ms, kGoogleQuicParam) ||
|
||||
+ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicParam) ||
|
||||
!CBB_add_u16_length_prefixed(¶ms, &google_quic_params) ||
|
||||
!CBB_add_bytes(&google_quic_params,
|
||||
reinterpret_cast<const uint8_t*>(
|
||||
@@ -505,7 +505,7 @@ bool SerializeTransportParameters(const
|
||||
|
||||
// Google-specific version extension.
|
||||
CBB google_version_params;
|
||||
- if (!CBB_add_u16(¶ms, kGoogleQuicVersion) ||
|
||||
+ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicVersion) ||
|
||||
!CBB_add_u16_length_prefixed(¶ms, &google_version_params) ||
|
||||
!CBB_add_u32(&google_version_params, in.version)) {
|
||||
QUIC_BUG << "Failed to write Google version extension for " << in;
|
||||
@@ -565,7 +565,7 @@ bool ParseTransportParameters(const uint
|
||||
}
|
||||
bool parse_success = true;
|
||||
switch (param_id) {
|
||||
- case kOriginalConnectionId:
|
||||
+ case TransportParameters::kOriginalConnectionId:
|
||||
if (!out->original_connection_id.IsEmpty()) {
|
||||
QUIC_DLOG(ERROR) << "Received a second original connection ID";
|
||||
return false;
|
||||
@@ -581,10 +581,10 @@ bool ParseTransportParameters(const uint
|
||||
CBS_len(&value));
|
||||
}
|
||||
break;
|
||||
- case kIdleTimeout:
|
||||
+ case TransportParameters::kIdleTimeout:
|
||||
parse_success = out->idle_timeout_milliseconds.ReadFromCbs(&value);
|
||||
break;
|
||||
- case kStatelessResetToken:
|
||||
+ case TransportParameters::kStatelessResetToken:
|
||||
if (!out->stateless_reset_token.empty()) {
|
||||
QUIC_DLOG(ERROR) << "Received a second stateless reset token";
|
||||
return false;
|
||||
@@ -597,36 +597,36 @@ bool ParseTransportParameters(const uint
|
||||
out->stateless_reset_token.assign(CBS_data(&value),
|
||||
CBS_data(&value) + CBS_len(&value));
|
||||
break;
|
||||
- case kMaxPacketSize:
|
||||
+ case TransportParameters::kMaxPacketSize:
|
||||
parse_success = out->max_packet_size.ReadFromCbs(&value);
|
||||
break;
|
||||
- case kInitialMaxData:
|
||||
+ case TransportParameters::kInitialMaxData:
|
||||
parse_success = out->initial_max_data.ReadFromCbs(&value);
|
||||
break;
|
||||
- case kInitialMaxStreamDataBidiLocal:
|
||||
+ case TransportParameters::kInitialMaxStreamDataBidiLocal:
|
||||
parse_success =
|
||||
out->initial_max_stream_data_bidi_local.ReadFromCbs(&value);
|
||||
break;
|
||||
- case kInitialMaxStreamDataBidiRemote:
|
||||
+ case TransportParameters::kInitialMaxStreamDataBidiRemote:
|
||||
parse_success =
|
||||
out->initial_max_stream_data_bidi_remote.ReadFromCbs(&value);
|
||||
break;
|
||||
- case kInitialMaxStreamDataUni:
|
||||
+ case TransportParameters::kInitialMaxStreamDataUni:
|
||||
parse_success = out->initial_max_stream_data_uni.ReadFromCbs(&value);
|
||||
break;
|
||||
- case kInitialMaxStreamsBidi:
|
||||
+ case TransportParameters::kInitialMaxStreamsBidi:
|
||||
parse_success = out->initial_max_streams_bidi.ReadFromCbs(&value);
|
||||
break;
|
||||
- case kInitialMaxStreamsUni:
|
||||
+ case TransportParameters::kInitialMaxStreamsUni:
|
||||
parse_success = out->initial_max_streams_uni.ReadFromCbs(&value);
|
||||
break;
|
||||
- case kAckDelayExponent:
|
||||
+ case TransportParameters::kAckDelayExponent:
|
||||
parse_success = out->ack_delay_exponent.ReadFromCbs(&value);
|
||||
break;
|
||||
- case kMaxAckDelay:
|
||||
+ case TransportParameters::kMaxAckDelay:
|
||||
parse_success = out->max_ack_delay.ReadFromCbs(&value);
|
||||
break;
|
||||
- case kDisableMigration:
|
||||
+ case TransportParameters::kDisableMigration:
|
||||
if (out->disable_migration) {
|
||||
QUIC_DLOG(ERROR) << "Received a second disable migration";
|
||||
return false;
|
||||
@@ -638,7 +638,7 @@ bool ParseTransportParameters(const uint
|
||||
}
|
||||
out->disable_migration = true;
|
||||
break;
|
||||
- case kPreferredAddress: {
|
||||
+ case TransportParameters::kPreferredAddress: {
|
||||
uint16_t ipv4_port, ipv6_port;
|
||||
in_addr ipv4_address;
|
||||
in6_addr ipv6_address;
|
||||
@@ -692,7 +692,7 @@ bool ParseTransportParameters(const uint
|
||||
QuicMakeUnique<TransportParameters::PreferredAddress>(
|
||||
preferred_address);
|
||||
} break;
|
||||
- case kGoogleQuicParam: {
|
||||
+ case TransportParameters::kGoogleQuicParam: {
|
||||
if (out->google_quic_params) {
|
||||
QUIC_DLOG(ERROR) << "Received a second Google parameter";
|
||||
return false;
|
||||
@@ -701,7 +701,7 @@ bool ParseTransportParameters(const uint
|
||||
reinterpret_cast<const char*>(CBS_data(&value)), CBS_len(&value));
|
||||
out->google_quic_params = CryptoFramer::ParseMessage(serialized_params);
|
||||
} break;
|
||||
- case kGoogleQuicVersion: {
|
||||
+ case TransportParameters::kGoogleQuicVersion: {
|
||||
if (!CBS_get_u32(&value, &out->version)) {
|
||||
QUIC_DLOG(ERROR) << "Failed to parse Google version extension";
|
||||
return false;
|
||||
diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc
|
||||
--- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix 2019-08-14 09:59:19.139902052 +0200
|
||||
+++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc 2019-08-14 09:59:33.132041535 +0200
|
||||
@@ -2,10 +2,12 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
-#include <string>
|
||||
-
|
||||
#include "net/third_party/quiche/src/quic/core/quic_socket_address_coder.h"
|
||||
|
||||
+#include <cstring>
|
||||
+#include <string>
|
||||
+#include <vector>
|
||||
+
|
||||
namespace quic {
|
||||
|
||||
namespace {
|
@ -0,0 +1,30 @@
|
||||
From 53bb5a463ee956c70230eaa5450022185d0ddc3c Mon Sep 17 00:00:00 2001
|
||||
From: Jose Dapena Paz <jose.dapena@lge.com>
|
||||
Date: Thu, 06 Jun 2019 07:54:05 +0000
|
||||
Subject: [PATCH] ThrottlingController::Liveness needs to be uint32_t
|
||||
|
||||
We are setting kAlive and kDead values assigning values that
|
||||
are bigger than the maximum signed int32. It is better to use
|
||||
uint32_t in this case.
|
||||
|
||||
Bug: 819294
|
||||
Change-Id: If72b48291a66a3a9db24b4c8e2d11d31936a66ee
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645772
|
||||
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
|
||||
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
|
||||
Cr-Commit-Position: refs/heads/master@{#666619}
|
||||
---
|
||||
|
||||
diff --git a/services/network/throttling/throttling_controller.h b/services/network/throttling/throttling_controller.h
|
||||
index 43751c4..3c6f87b 100644
|
||||
--- a/services/network/throttling/throttling_controller.h
|
||||
+++ b/services/network/throttling/throttling_controller.h
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
// TODO(https://crbug.com/960874): Debugging code to try and shed some light
|
||||
// on why the owned maps are invalid.
|
||||
- enum class Liveness : int32_t {
|
||||
+ enum class Liveness : uint32_t {
|
||||
kAlive = 0xCA11AB13,
|
||||
kDead = 0xDEADBEEF,
|
||||
};
|
@ -0,0 +1,11 @@
|
||||
diff -up chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc
|
||||
--- chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined 2019-08-20 21:21:24.901899270 +0200
|
||||
+++ chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc 2019-08-20 21:19:30.361746211 +0200
|
||||
@@ -18,6 +18,7 @@
|
||||
#include "net/quic/crypto/proof_verifier_chromium.h"
|
||||
#include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
|
||||
#include "net/third_party/quiche/src/quic/platform/api/quic_ptr_util.h"
|
||||
+#include "net/quic/platform/impl/quic_flags_impl.cc"
|
||||
|
||||
DEFINE_QUIC_COMMAND_LINE_FLAG(std::string,
|
||||
certificate_file,
|
@ -0,0 +1,66 @@
|
||||
From 0370838723e786b51e7ec8ab55014811ec3e3aa3 Mon Sep 17 00:00:00 2001
|
||||
From: Jose Dapena Paz <jose.dapena@lge.com>
|
||||
Date: Thu, 18 Jul 2019 14:26:11 +0200
|
||||
Subject: [PATCH] Make base::WeakPtr move constructor/operator noexcept to fix GCC build regression
|
||||
|
||||
A GCC build regression has happened on DisjointRangeLockManager, as its move
|
||||
operator and constructor were declared noexcept. This was failing because the
|
||||
default implementation depended on base::WeakPtr, that did not provide
|
||||
noexcept declaration for them.
|
||||
|
||||
So make base::WeakPtr noexcept.
|
||||
|
||||
Bug: 819294
|
||||
Change-Id: I936784b881c7c1afea136ceedbe9341e76464f95
|
||||
---
|
||||
|
||||
diff --git a/base/memory/weak_ptr.cc b/base/memory/weak_ptr.cc
|
||||
index 64fd499..0efcc44 100644
|
||||
--- a/base/memory/weak_ptr.cc
|
||||
+++ b/base/memory/weak_ptr.cc
|
||||
@@ -46,7 +46,7 @@
|
||||
|
||||
WeakReference::~WeakReference() = default;
|
||||
|
||||
-WeakReference::WeakReference(WeakReference&& other) = default;
|
||||
+WeakReference::WeakReference(WeakReference&& other) noexcept = default;
|
||||
|
||||
WeakReference::WeakReference(const WeakReference& other) = default;
|
||||
|
||||
diff --git a/base/memory/weak_ptr.h b/base/memory/weak_ptr.h
|
||||
index 72b5f1f..ccd22fd13 100644
|
||||
--- a/base/memory/weak_ptr.h
|
||||
+++ b/base/memory/weak_ptr.h
|
||||
@@ -116,9 +116,9 @@
|
||||
explicit WeakReference(const scoped_refptr<Flag>& flag);
|
||||
~WeakReference();
|
||||
|
||||
- WeakReference(WeakReference&& other);
|
||||
+ WeakReference(WeakReference&& other) noexcept;
|
||||
WeakReference(const WeakReference& other);
|
||||
- WeakReference& operator=(WeakReference&& other) = default;
|
||||
+ WeakReference& operator=(WeakReference&& other) noexcept = default;
|
||||
WeakReference& operator=(const WeakReference& other) = default;
|
||||
|
||||
bool IsValid() const;
|
||||
@@ -153,9 +153,9 @@
|
||||
~WeakPtrBase();
|
||||
|
||||
WeakPtrBase(const WeakPtrBase& other) = default;
|
||||
- WeakPtrBase(WeakPtrBase&& other) = default;
|
||||
+ WeakPtrBase(WeakPtrBase&& other) noexcept = default;
|
||||
WeakPtrBase& operator=(const WeakPtrBase& other) = default;
|
||||
- WeakPtrBase& operator=(WeakPtrBase&& other) = default;
|
||||
+ WeakPtrBase& operator=(WeakPtrBase&& other) noexcept = default;
|
||||
|
||||
void reset() {
|
||||
ref_ = internal::WeakReference();
|
||||
@@ -236,7 +236,7 @@
|
||||
ptr_ = reinterpret_cast<uintptr_t>(t);
|
||||
}
|
||||
template <typename U>
|
||||
- WeakPtr(WeakPtr<U>&& other) : WeakPtrBase(std::move(other)) {
|
||||
+ WeakPtr(WeakPtr<U>&& other) noexcept : WeakPtrBase(std::move(other)) {
|
||||
// Need to cast from U* to T* to do pointer adjustment in case of multiple
|
||||
// inheritance. This also enforces the "U is a T" rule.
|
||||
T* t = reinterpret_cast<U*>(other.ptr_);
|
@ -0,0 +1,539 @@
|
||||
diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc
|
||||
--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-03 22:08:28.931786496 +0200
|
||||
+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-03 22:15:24.743555759 +0200
|
||||
@@ -17,6 +17,7 @@
|
||||
#include "chrome/common/pref_names.h"
|
||||
#include "chrome/test/base/in_process_browser_test.h"
|
||||
#include "components/prefs/pref_service.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"
|
||||
@@ -297,3 +298,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
|
||||
INSTANTIATE_TEST_SUITE_P(,
|
||||
SystemNetworkContextManagerStubResolverBrowsertest,
|
||||
::testing::Values(false, true));
|
||||
+
|
||||
+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-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
|
||||
--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
|
||||
+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 22:13:26.451198970 +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"
|
||||
@@ -51,6 +53,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"
|
||||
@@ -81,6 +84,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;
|
||||
|
||||
@@ -686,14 +703,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 =
|
||||
@@ -756,6 +794,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-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h
|
||||
--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
|
||||
+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h 2019-09-03 22:08:28.931786496 +0200
|
||||
@@ -158,6 +158,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-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc
|
||||
--- chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
|
||||
+++ chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
|
||||
@@ -4834,7 +4834,7 @@ IN_PROC_BROWSER_TEST_P(SSLPolicyTestComm
|
||||
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-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
|
||||
--- chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
|
||||
+++ chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-03 22:08:28.932786508 +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-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
|
||||
--- chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
|
||||
+++ chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
|
||||
@@ -457,6 +457,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-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc
|
||||
--- chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
|
||||
+++ chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc 2019-09-03 22:08:28.934786531 +0200
|
||||
@@ -2008,8 +2008,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-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h
|
||||
--- chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-08-26 21:02:14.000000000 +0200
|
||||
+++ chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-03 22:08:28.934786531 +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-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
|
||||
--- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
|
||||
+++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 22:17:27.977834857 +0200
|
||||
@@ -35,6 +35,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"
|
||||
@@ -1851,16 +1852,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())
|
||||
@@ -1910,8 +1901,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) {
|
||||
@@ -1924,6 +1927,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-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context_unittest.cc
|
||||
--- chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
|
||||
+++ chromium-76.0.3809.132/services/network/network_context_unittest.cc 2019-09-03 22:20:22.382888089 +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/interface_request.h"
|
||||
#include "mojo/public/cpp/bindings/strong_binding.h"
|
||||
#include "mojo/public/cpp/system/data_pipe_utils.h"
|
||||
@@ -113,6 +116,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(ENABLE_REPORTING)
|
||||
#include "net/network_error_logging/network_error_logging_service.h"
|
||||
#include "net/reporting/reporting_cache.h"
|
||||
@@ -5566,6 +5574,72 @@ TEST_F(NetworkContextTest, BlockAllCooki
|
||||
EXPECT_EQ("None", response_body);
|
||||
}
|
||||
|
||||
+#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-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
|
||||
--- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
|
||||
+++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 22:08:28.936786554 +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-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
|
||||
--- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
|
||||
+++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 22:08:28.936786554 +0200
|
||||
@@ -238,15 +238,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;
|
||||
|
||||
@@ -299,6 +290,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]
|
||||
@@ -310,6 +310,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;
|
@ -0,0 +1,21 @@
|
||||
diff -up chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc
|
||||
--- chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation 2019-08-26 21:02:33.000000000 +0200
|
||||
+++ chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc 2019-08-27 06:58:23.963821667 +0200
|
||||
@@ -207,7 +207,7 @@ std::set<int>& GetPluginProxyingProcesse
|
||||
// confirmation sniffing because images, scripts, etc. are frequently
|
||||
// mislabelled by http servers as HTML/JSON/XML).
|
||||
base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
|
||||
- static base::NoDestructor<base::flat_set<std::string>> s_types({
|
||||
+ static base::NoDestructor<base::flat_set<std::string>> s_types{{
|
||||
// The list below has been populated based on most commonly used content
|
||||
// types according to HTTP Archive - see:
|
||||
// https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
|
||||
@@ -219,7 +219,7 @@ base::flat_set<std::string>& GetNeverSni
|
||||
"application/x-protobuf",
|
||||
"application/zip",
|
||||
"text/event-stream",
|
||||
- });
|
||||
+ }};
|
||||
|
||||
// All items need to be lower-case, to support case-insensitive comparisons
|
||||
// later.
|
@ -0,0 +1,58 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2011 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.
|
||||
|
||||
# Let the wrapped binary know that it has been run through the wrapper.
|
||||
export CHROME_WRAPPER="`readlink -f "$0"`"
|
||||
|
||||
HERE="`dirname "$CHROME_WRAPPER"`"
|
||||
|
||||
# We include some xdg utilities next to the binary, and we want to prefer them
|
||||
# over the system versions when we know the system versions are very old. We
|
||||
# detect whether the system xdg utilities are sufficiently new to be likely to
|
||||
# work for us by looking for xdg-settings. If we find it, we leave $PATH alone,
|
||||
# so that the system xdg utilities (including any distro patches) will be used.
|
||||
if ! which xdg-settings &> /dev/null; then
|
||||
# Old xdg utilities. Prepend $HERE to $PATH to use ours instead.
|
||||
export PATH="$HERE:$PATH"
|
||||
else
|
||||
# Use system xdg utilities. But first create mimeapps.list if it doesn't
|
||||
# exist; some systems have bugs in xdg-mime that make it fail without it.
|
||||
xdg_app_dir="${XDG_DATA_HOME:-$HOME/.local/share/applications}"
|
||||
mkdir -p "$xdg_app_dir"
|
||||
[ -f "$xdg_app_dir/mimeapps.list" ] || touch "$xdg_app_dir/mimeapps.list"
|
||||
fi
|
||||
|
||||
# Always use our versions of ffmpeg libs.
|
||||
# This also makes RPMs find the compatibly-named library symlinks.
|
||||
if [[ -n "$LD_LIBRARY_PATH" ]]; then
|
||||
LD_LIBRARY_PATH="$HERE:$HERE/lib:$LD_LIBRARY_PATH"
|
||||
else
|
||||
LD_LIBRARY_PATH="$HERE:$HERE/lib"
|
||||
fi
|
||||
export LD_LIBRARY_PATH
|
||||
|
||||
export CHROME_VERSION_EXTRA="Built from source for @@BUILD_TARGET@@"
|
||||
|
||||
# We don't want bug-buddy intercepting our crashes. http://crbug.com/24120
|
||||
export GNOME_DISABLE_CRASH_DIALOG=SET_BY_GOOGLE_CHROME
|
||||
|
||||
CHROMIUM_DISTRO_FLAGS=" --enable-plugins \
|
||||
--enable-extensions \
|
||||
--enable-user-scripts \
|
||||
--enable-printing \
|
||||
--enable-gpu-rasterization \
|
||||
--enable-sync \
|
||||
--auto-ssl-client-auth @@EXTRA_FLAGS@@"
|
||||
|
||||
if [ -f "$HERE/PepperFlash/libpepflashplayer.so" ] && [ -f "$HERE/PepperFlash/manifest.json" ] ; then
|
||||
CHROMIUM_FLASH_VERSION=$(grep '"version":' "$HERE/PepperFlash/manifest.json" | awk -F\" '{ print $4 }')
|
||||
CHROMIUM_FLASH_FLAGS=" --ppapi-flash-path=$HERE/PepperFlash/libpepflashplayer.so \
|
||||
--ppapi-flash-version=$CHROMIUM_FLASH_VERSION"
|
||||
else
|
||||
CHROMIUM_FLASH_FLAGS=""
|
||||
fi
|
||||
|
||||
exec -a "$0" "$HERE/@@CHROMIUM_BROWSER_CHANNEL@@" $CHROMIUM_DISTRO_FLAGS $CHROMIUM_FLASH_FLAGS "$@"
|
@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE default-apps SYSTEM "gnome-da-list.dtd">
|
||||
<default-apps>
|
||||
<web-browsers>
|
||||
<web-browser>
|
||||
<name>Chromium</name>
|
||||
<executable>chromium-browser</executable>
|
||||
<command>/usr/bin/chromium-browser %s</command>
|
||||
<icon-name>chromium-browser</icon-name>
|
||||
<run-in-terminal>false</run-in-terminal>
|
||||
<netscape-remote>false</netscape-remote>
|
||||
<!--
|
||||
<tab-command>false</tab-command>
|
||||
<win-command>false</win-command>
|
||||
-->
|
||||
</web-browser>
|
||||
</web-browsers>
|
||||
</default-apps>
|
@ -0,0 +1,344 @@
|
||||
#!/usr/bin/python3
|
||||
# Copyright 2010,2015-2019 Tom Callaway <tcallawa@redhat.com>
|
||||
# Copyright 2013-2016 Tomas Popela <tpopela@redhat.com>
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
# "Software"), to deal in the Software without restriction, including
|
||||
# without limitation the rights to use, copy, modify, merge, publish,
|
||||
# distribute, sublicense, and/or sell copies of the Software, and to
|
||||
# permit persons to whom the Software is furnished to do so, subject to
|
||||
# the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included
|
||||
# in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
try:
|
||||
import argparse
|
||||
optparse = False
|
||||
except ImportError:
|
||||
from optparse import OptionParser
|
||||
optparse = True
|
||||
import csv
|
||||
import glob
|
||||
import hashlib
|
||||
import locale
|
||||
import os
|
||||
import shutil
|
||||
import io
|
||||
import sys
|
||||
import urllib.request, urllib.parse, urllib.error
|
||||
|
||||
chromium_url = "http://commondatastorage.googleapis.com/chromium-browser-official/"
|
||||
|
||||
chromium_root_dir = "."
|
||||
version_string = "stable"
|
||||
|
||||
name = 'Chromium Latest'
|
||||
script_version = 0.9
|
||||
my_description = '{0} {1}'.format(name, script_version)
|
||||
|
||||
|
||||
def dlProgress(count, blockSize, totalSize):
|
||||
|
||||
if (totalSize <= blockSize):
|
||||
percent = int(count * 100)
|
||||
else:
|
||||
percent = int(count * blockSize * 100 / totalSize)
|
||||
sys.stdout.write("\r" + "Downloading ... %d%%" % percent)
|
||||
sys.stdout.flush()
|
||||
|
||||
|
||||
def delete_chromium_dir(ch_dir):
|
||||
|
||||
full_dir = "%s/%s" % (latest_dir, ch_dir)
|
||||
print('Deleting %s ' % full_dir)
|
||||
if os.path.isdir(full_dir):
|
||||
shutil.rmtree(full_dir)
|
||||
print('[DONE]')
|
||||
else:
|
||||
print('[NOT FOUND]')
|
||||
|
||||
|
||||
def delete_chromium_files(files):
|
||||
|
||||
full_path = "%s/%s" % (latest_dir, files)
|
||||
print('Deleting ' + full_path + ' ', end=' ')
|
||||
for filename in glob.glob(full_path):
|
||||
print('Deleting ' + filename + ' ', end=' ')
|
||||
os.remove(filename)
|
||||
print('[DONE]')
|
||||
|
||||
|
||||
def check_omahaproxy(channel="stable"):
|
||||
|
||||
version = 0
|
||||
status_url = "http://omahaproxy.appspot.com/all?os=linux&channel=" + channel
|
||||
|
||||
usock = urllib.request.urlopen(status_url)
|
||||
status_dump = usock.read().decode('utf-8')
|
||||
usock.close()
|
||||
status_list = io.StringIO(status_dump)
|
||||
status_reader = list(csv.reader(status_list, delimiter=','))
|
||||
linux_channels = [s for s in status_reader if "linux" in s]
|
||||
linux_channel = [s for s in linux_channels if channel in s]
|
||||
version = linux_channel[0][2]
|
||||
|
||||
if version == 0:
|
||||
print('I could not find the latest %s build. Bailing out.' % channel)
|
||||
sys.exit(1)
|
||||
else:
|
||||
print('Latest Chromium Version on %s at %s is %s' % (channel, status_url, version))
|
||||
return version
|
||||
|
||||
|
||||
def remove_file_if_exists(filename):
|
||||
|
||||
if os.path.isfile("./%s" % filename):
|
||||
try:
|
||||
os.remove(filename)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
|
||||
def download_file_and_compare_hashes(file_to_download):
|
||||
|
||||
hashes_file = '%s.hashes' % file_to_download
|
||||
|
||||
if (args.clean):
|
||||
remove_file_if_exists(file_to_download)
|
||||
remove_file_if_exists(hashes_file)
|
||||
|
||||
# Let's make sure we haven't already downloaded it.
|
||||
tarball_local_file = "./%s" % file_to_download
|
||||
if os.path.isfile(tarball_local_file):
|
||||
print("%s already exists!" % file_to_download)
|
||||
else:
|
||||
path = '%s%s' % (chromium_url, file_to_download)
|
||||
print("Downloading %s" % path)
|
||||
# Perhaps look at using python-progressbar at some point?
|
||||
info=urllib.request.urlretrieve(path, file_to_download, reporthook=dlProgress)[1]
|
||||
urllib.request.urlcleanup()
|
||||
print("")
|
||||
if (info["Content-Type"] != "application/x-tar"):
|
||||
print('Chromium tarballs for %s are not on servers.' % file_to_download)
|
||||
remove_file_if_exists (file_to_download)
|
||||
sys.exit(1)
|
||||
|
||||
hashes_local_file = "./%s" % hashes_file
|
||||
if not os.path.isfile(hashes_local_file):
|
||||
path = '%s%s' % (chromium_url, hashes_file)
|
||||
print("Downloading %s" % path)
|
||||
# Perhaps look at using python-progressbar at some point?
|
||||
info=urllib.request.urlretrieve(path, hashes_file, reporthook=dlProgress)[1]
|
||||
urllib.request.urlcleanup()
|
||||
print("")
|
||||
|
||||
if os.path.isfile(hashes_local_file):
|
||||
with open(hashes_local_file, "r") as input_file:
|
||||
md5sum = input_file.readline().split()[1]
|
||||
md5 = hashlib.md5()
|
||||
with open(tarball_local_file, "rb") as f:
|
||||
for block in iter(lambda: f.read(65536), b""):
|
||||
md5.update(block)
|
||||
if (md5sum == md5.hexdigest()):
|
||||
print("MD5 matches for %s!" % file_to_download)
|
||||
else:
|
||||
print("MD5 mismatch for %s!" % file_to_download)
|
||||
sys.exit(1)
|
||||
else:
|
||||
print("Cannot compare hashes for %s!" % file_to_download)
|
||||
|
||||
|
||||
def download_version(version):
|
||||
|
||||
download_file_and_compare_hashes ('chromium-%s.tar.xz' % version)
|
||||
|
||||
if (args.tests):
|
||||
download_file_and_compare_hashes ('chromium-%s-testdata.tar.xz' % version)
|
||||
|
||||
def nacl_versions(version):
|
||||
|
||||
if sys.version_info[0] == 2 and sys.version_info[1] == 6:
|
||||
return
|
||||
|
||||
myvars = {}
|
||||
chrome_dir = './chromium-%s' % version
|
||||
with open(chrome_dir + "/native_client/tools/REVISIONS") as myfile:
|
||||
for line in myfile:
|
||||
name, var = line.partition("=")[::2]
|
||||
myvars[name] = var
|
||||
print("nacl-binutils commit: %s" % myvars["NACL_BINUTILS_COMMIT"])
|
||||
print("nacl-gcc commit: %s" % myvars["NACL_GCC_COMMIT"])
|
||||
print("nacl-newlib commit: %s" % myvars["NACL_NEWLIB_COMMIT"])
|
||||
|
||||
# Parse GIT_REVISIONS dict from toolchain_build.py
|
||||
|
||||
sys.path.append(os.path.abspath(chrome_dir + "/native_client/toolchain_build"))
|
||||
from toolchain_build import GIT_REVISIONS
|
||||
print("nacl-arm-binutils commit: %s" % GIT_REVISIONS['binutils']['rev'])
|
||||
print("nacl-arm-gcc commit: %s" % GIT_REVISIONS['gcc']['rev'])
|
||||
|
||||
|
||||
def download_chrome_latest_rpm(arch):
|
||||
|
||||
chrome_rpm = 'google-chrome-%s_current_%s.rpm' % (version_string, arch)
|
||||
path = 'https://dl.google.com/linux/direct/%s' % chrome_rpm
|
||||
|
||||
if (args.clean):
|
||||
remove_file_if_exists(chrome_rpm)
|
||||
|
||||
# Let's make sure we haven't already downloaded it.
|
||||
if os.path.isfile("./%s" % chrome_rpm):
|
||||
print("%s already exists!" % chrome_rpm)
|
||||
else:
|
||||
print("Downloading %s" % path)
|
||||
# Perhaps look at using python-progressbar at some point?
|
||||
info=urllib.request.urlretrieve(path, chrome_rpm, reporthook=dlProgress)[1]
|
||||
urllib.request.urlcleanup()
|
||||
print("")
|
||||
if (info["Content-Type"] != "binary/octet-stream" and info["Content-Type"] != "application/x-redhat-package-manager"):
|
||||
print('Chrome %s rpms are not on servers.' % version_string)
|
||||
remove_file_if_exists (chrome_rpm)
|
||||
sys.exit(1)
|
||||
|
||||
# This is where the magic happens
|
||||
if __name__ == '__main__':
|
||||
|
||||
# Locale magic
|
||||
locale.setlocale(locale.LC_ALL, '')
|
||||
|
||||
# Create the parser object
|
||||
if optparse:
|
||||
parser = OptionParser(description=my_description)
|
||||
parser_add_argument = parser.add_option
|
||||
else:
|
||||
parser = argparse.ArgumentParser(description=my_description)
|
||||
parser_add_argument = parser.add_argument
|
||||
|
||||
parser_add_argument(
|
||||
'--ffmpegarm', action='store_true',
|
||||
help='Leave arm sources when cleaning ffmpeg')
|
||||
parser_add_argument(
|
||||
'--beta', action='store_true',
|
||||
help='Get the latest beta Chromium source')
|
||||
parser_add_argument(
|
||||
'--clean', action='store_true',
|
||||
help='Re-download all previously downloaded sources')
|
||||
parser_add_argument(
|
||||
'--cleansources', action='store_true',
|
||||
help='Get the latest Chromium release from given channel and clean various directories to from unnecessary or unwanted stuff')
|
||||
parser_add_argument(
|
||||
'--dev', action='store_true',
|
||||
help='Get the latest dev Chromium source')
|
||||
parser_add_argument(
|
||||
'--ffmpegclean', action='store_true',
|
||||
help='Get the latest Chromium release from given channel and cleans ffmpeg sources from proprietary stuff')
|
||||
parser_add_argument(
|
||||
'--chrome', action='store_true',
|
||||
help='Get the latest Chrome rpms for the given channel')
|
||||
parser_add_argument(
|
||||
'--prep', action='store_true',
|
||||
help='Prepare everything, but don\'t compress the result')
|
||||
parser_add_argument(
|
||||
'--stable', action='store_true',
|
||||
help='Get the latest stable Chromium source')
|
||||
parser_add_argument(
|
||||
'--tests', action='store_true',
|
||||
help='Get the additional data for running tests')
|
||||
parser_add_argument(
|
||||
'--version',
|
||||
help='Download a specific version of Chromium')
|
||||
parser_add_argument(
|
||||
'--naclvers',
|
||||
help='Display the commit versions of nacl toolchain components')
|
||||
|
||||
# Parse the args
|
||||
if optparse:
|
||||
args, options = parser.parse_args()
|
||||
else:
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.stable:
|
||||
version_string = "stable"
|
||||
elif args.beta:
|
||||
version_string = "beta"
|
||||
elif args.dev:
|
||||
version_string = "dev"
|
||||
elif (not (args.stable or args.beta or args.dev)):
|
||||
if (not args.version):
|
||||
print('No version specified, downloading STABLE')
|
||||
args.stable = True
|
||||
|
||||
chromium_version = args.version if args.version else check_omahaproxy(version_string)
|
||||
|
||||
if args.dev:
|
||||
version_string = "unstable"
|
||||
|
||||
if args.chrome:
|
||||
if args.version:
|
||||
print('You cannot specify a Chrome RPM version!')
|
||||
sys.exit(1)
|
||||
latest = 'google-chrome-%s_current_i386' % version_string
|
||||
download_chrome_latest_rpm("i386")
|
||||
latest = 'google-chrome-%s_current_x86_64' % version_string
|
||||
download_chrome_latest_rpm("x86_64")
|
||||
if (not (args.ffmpegclean or args.tests)):
|
||||
sys.exit(0)
|
||||
|
||||
latest = 'chromium-%s.tar.xz' % chromium_version
|
||||
|
||||
download_version(chromium_version)
|
||||
|
||||
# Lets make sure we haven't unpacked it already
|
||||
latest_dir = "%s/chromium-%s" % (chromium_root_dir, chromium_version)
|
||||
if (args.clean and os.path.isdir(latest_dir)):
|
||||
shutil.rmtree(latest_dir)
|
||||
|
||||
if os.path.isdir(latest_dir):
|
||||
print("%s already exists, perhaps %s has already been unpacked?" % (latest_dir, latest))
|
||||
else:
|
||||
print("Unpacking %s into %s, please wait." % (latest, latest_dir))
|
||||
if (os.system("tar -xJf %s" % latest) != 0):
|
||||
print("%s is possibly corrupted, exiting." % (latest))
|
||||
sys.exit(1)
|
||||
|
||||
if (args.naclvers):
|
||||
nacl_versions(chromium_version)
|
||||
|
||||
if (args.cleansources):
|
||||
junk_dirs = ['third_party/WebKit/Tools/Scripts/webkitpy/layout_tests',
|
||||
'webkit/data/layout_tests', 'third_party/hunspell/dictionaries',
|
||||
'chrome/test/data', 'native_client/tests',
|
||||
'third_party/WebKit/LayoutTests']
|
||||
|
||||
# First, the dirs:
|
||||
for directory in junk_dirs:
|
||||
delete_chromium_dir(directory)
|
||||
|
||||
# There has got to be a better, more portable way to do this.
|
||||
os.system("find %s -depth -name reference_build -type d -exec rm -rf {} \;" % latest_dir)
|
||||
|
||||
# I could not find good bindings for xz/lzma support, so we system call here too.
|
||||
chromium_clean_xz_file = "chromium-" + chromium_version + "-clean.tar.xz"
|
||||
|
||||
remove_file_if_exists(chromium_clean_xz_file)
|
||||
|
||||
if (args.ffmpegclean):
|
||||
print("Cleaning ffmpeg from proprietary things...")
|
||||
os.system("./clean_ffmpeg.sh %s %d" % (latest_dir, 0 if args.ffmpegarm else 1))
|
||||
print("Done!")
|
||||
|
||||
if (not args.prep):
|
||||
print("Compressing cleaned tree, please wait...")
|
||||
os.chdir(chromium_root_dir)
|
||||
os.system("tar --exclude=\.svn -cf - chromium-%s | xz -9 -T 0 -f > %s" % (chromium_version, chromium_clean_xz_file))
|
||||
|
||||
print("Finished!")
|
@ -0,0 +1,23 @@
|
||||
Description: try alternative locations for libwidevinecdm.so:
|
||||
- $HOME/.local/lib/ (snap-friendly, see https://launchpad.net/bugs/1738149)
|
||||
- /opt/google/chrome/ (installed by official google chrome package)
|
||||
Author: Olivier Tilloy <olivier.tilloy@canonical.com>
|
||||
|
||||
--- a/chrome/common/chrome_paths.cc
|
||||
+++ b/chrome/common/chrome_paths.cc
|
||||
@@ -377,6 +377,15 @@ bool PathProvider(int key, base::FilePat
|
||||
// TODO(crbug.com/663554): Remove this after component updated CDM is
|
||||
// supported on Linux and ChromeOS.
|
||||
case chrome::FILE_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;
|
||||
cur =
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,345 @@
|
||||
#!/bin/bash
|
||||
# Copyright 2013-2015 Tomas Popela <tpopela@redhat.com>
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
# "Software"), to deal in the Software without restriction, including
|
||||
# without limitation the rights to use, copy, modify, merge, publish,
|
||||
# distribute, sublicense, and/or sell copies of the Software, and to
|
||||
# permit persons to whom the Software is furnished to do so, subject to
|
||||
# the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included
|
||||
# in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
# $1 files
|
||||
# $2 verbose
|
||||
function copy_files() {
|
||||
for file in $1
|
||||
do
|
||||
dir_name=$(echo "$file" | sed 's%/[^/]*$%/%')
|
||||
if [[ $dir_name == */* ]]; then
|
||||
tmp_dir_name="tmp_"$dir_name
|
||||
mkdir -p "../tmp_ffmpeg/$tmp_dir_name"
|
||||
else
|
||||
tmp_dir_name=$file
|
||||
fi
|
||||
|
||||
if [ "$2" -eq 1 ]; then
|
||||
cp "$file" "../tmp_ffmpeg/$tmp_dir_name"
|
||||
else
|
||||
cp "$file" "../tmp_ffmpeg/$tmp_dir_name" > /dev/null 2>&1
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
where=$(pwd)
|
||||
|
||||
if ! generated_files=$(./get_free_ffmpeg_source_files.py "$1" "$2"); then
|
||||
exit 1
|
||||
fi
|
||||
# As the build system files does not contain the header files, cheat here
|
||||
# and generate the header files names from source files. These that does not
|
||||
# exist will be later skipped while copying.
|
||||
generated_files_headers="${generated_files//.c/.h}"
|
||||
generated_files_headers="$generated_files_headers ${generated_files//.c/_internal.h}"
|
||||
if [ "$2" -ne "1" ]; then
|
||||
generated_files_headers="$generated_files_headers ${generated_files//.S/.h}"
|
||||
fi
|
||||
generated_files_headers="$generated_files_headers ${generated_files//.asm/.h}"
|
||||
|
||||
header_files=" libavcodec/x86/inline_asm.h \
|
||||
libavcodec/x86/mathops.h \
|
||||
libavcodec/x86/vp56_arith.h \
|
||||
libavcodec/aarch64/vp8dsp.h \
|
||||
libavcodec/arm/vp8dsp.h \
|
||||
libavcodec/aac.h \
|
||||
libavcodec/aacps.h \
|
||||
libavcodec/aacpsdsp.h \
|
||||
libavcodec/aacsbrdata.h \
|
||||
libavcodec/aac_ac3_parser.h \
|
||||
libavcodec/aac_defines.h \
|
||||
libavcodec/ac3.h \
|
||||
libavcodec/ac3tab.h \
|
||||
libavcodec/adts_header.h \
|
||||
libavcodec/avcodec.h \
|
||||
libavcodec/blockdsp.h \
|
||||
libavcodec/bytestream.h \
|
||||
libavcodec/cbrt_data.h \
|
||||
libavcodec/cbrt_tablegen.h \
|
||||
libavcodec/dct.h \
|
||||
libavcodec/dct32.h \
|
||||
libavcodec/error_resilience.h \
|
||||
libavcodec/fdctdsp.h \
|
||||
libavcodec/fft.h \
|
||||
libavcodec/fft-internal.h \
|
||||
libavcodec/fft_table.h \
|
||||
libavcodec/flac.h \
|
||||
libavcodec/flacdsp.h \
|
||||
libavcodec/frame_thread_encoder.h \
|
||||
libavcodec/get_bits.h \
|
||||
libavcodec/h263dsp.h \
|
||||
libavcodec/h264chroma.h \
|
||||
libavcodec/hpeldsp.h \
|
||||
libavcodec/hwaccel.h \
|
||||
libavcodec/hwaccels.h \
|
||||
libavcodec/idctdsp.h \
|
||||
libavcodec/internal.h \
|
||||
libavcodec/kbdwin.h \
|
||||
libavcodec/mathops.h \
|
||||
libavcodec/mdct15.c \
|
||||
libavcodec/mdct15.h \
|
||||
libavcodec/me_cmp.h \
|
||||
libavcodec/motion_est.h \
|
||||
libavcodec/mpeg12.h \
|
||||
libavcodec/mpeg12data.h \
|
||||
libavcodec/mpeg12vlc.h \
|
||||
libavcodec/mpegaudio.h \
|
||||
libavcodec/mpegaudiodecheader.h \
|
||||
libavcodec/mpegaudiodectab.h \
|
||||
libavcodec/mpegaudiodsp.h \
|
||||
libavcodec/mpegaudio_tablegen.h \
|
||||
libavcodec/mpegpicture.h \
|
||||
libavcodec/mpegutils.h \
|
||||
libavcodec/mpegvideo.h \
|
||||
libavcodec/mpegvideodata.h \
|
||||
libavcodec/mpegvideodsp.h \
|
||||
libavcodec/mpegvideoencdsp.h \
|
||||
libavcodec/options_table.h \
|
||||
libavcodec/opusdsp.h \
|
||||
libavcodec/opus_celt.h \
|
||||
libavcodec/opus_pvq.h \
|
||||
libavcodec/opus_rc.h \
|
||||
libavcodec/pcm_tablegen.h \
|
||||
libavcodec/pixblockdsp.h \
|
||||
libavcodec/pixels.h \
|
||||
libavcodec/png.h \
|
||||
libavcodec/put_bits.h \
|
||||
libavcodec/qpeldsp.h \
|
||||
libavcodec/ratecontrol.h \
|
||||
libavcodec/rectangle.h \
|
||||
libavcodec/rl.h \
|
||||
libavcodec/rnd_avg.h \
|
||||
libavcodec/sbr.h \
|
||||
libavcodec/sbrdsp.h \
|
||||
libavcodec/sinewin.h \
|
||||
libavcodec/sinewin_tablegen.h \
|
||||
libavcodec/thread.h \
|
||||
libavcodec/unary.h \
|
||||
libavcodec/version.h \
|
||||
libavcodec/videodsp.h \
|
||||
libavcodec/vlc.h \
|
||||
libavcodec/vorbisdsp.h \
|
||||
libavcodec/vp3data.h \
|
||||
libavcodec/vp3dsp.h \
|
||||
libavcodec/vp56.h \
|
||||
libavcodec/vp56dsp.h \
|
||||
libavcodec/vp8data.h \
|
||||
libavcodec/vp8dsp.h \
|
||||
libavformat/apetag.h \
|
||||
libavformat/audiointerleave.h \
|
||||
libavformat/avformat.h \
|
||||
libavformat/dv.h \
|
||||
libavformat/img2.h \
|
||||
libavformat/internal.h \
|
||||
libavformat/mov_chan.h \
|
||||
libavformat/pcm.h \
|
||||
libavformat/rdt.h \
|
||||
libavformat/rtp.h \
|
||||
libavformat/rtpdec.h \
|
||||
libavformat/spdif.h \
|
||||
libavformat/srtp.h \
|
||||
libavformat/options_table.h \
|
||||
libavformat/version.h \
|
||||
libavformat/w64.h \
|
||||
libavutil/x86/asm.h \
|
||||
libavutil/x86/bswap.h \
|
||||
libavutil/x86/cpu.h \
|
||||
libavutil/x86/emms.h
|
||||
libavutil/x86/intreadwrite.h \
|
||||
libavutil/x86/intmath.h
|
||||
libavutil/x86/timer.h \
|
||||
libavutil/attributes.h \
|
||||
libavutil/audio_fifo.h \
|
||||
libavutil/avassert.h \
|
||||
libavutil/avutil.h \
|
||||
libavutil/bswap.h \
|
||||
libavutil/common.h \
|
||||
libavutil/colorspace.h \
|
||||
libavutil/cpu.h \
|
||||
libavutil/cpu_internal.h \
|
||||
libavutil/dynarray.h \
|
||||
libavutil/ffmath.h \
|
||||
libavutil/fixed_dsp.h \
|
||||
libavutil/float_dsp.h \
|
||||
libavutil/imgutils.h \
|
||||
libavutil/imgutils_internal.h \
|
||||
libavutil/internal.h \
|
||||
libavutil/intfloat.h \
|
||||
libavutil/intreadwrite.h \
|
||||
libavutil/libm.h \
|
||||
libavutil/lls.h \
|
||||
libavutil/macros.h \
|
||||
libavutil/pixfmt.h \
|
||||
libavutil/qsort.h \
|
||||
libavutil/replaygain.h \
|
||||
libavutil/softfloat.h \
|
||||
libavutil/softfloat_tables.h \
|
||||
libavutil/thread.h \
|
||||
libavutil/timer.h \
|
||||
libavutil/timestamp.h \
|
||||
libavutil/version.h \
|
||||
libswresample/swresample.h \
|
||||
libswresample/version.h \
|
||||
compat/va_copy.h \
|
||||
compat/atomics/gcc/stdatomic.h "
|
||||
|
||||
manual_files=" libavcodec/aarch64/fft_neon.S \
|
||||
libavcodec/aarch64/h264pred_neon.S \
|
||||
libavcodec/aarch64/hpeldsp_neon.S \
|
||||
libavcodec/aarch64/mdct_neon.S \
|
||||
libavcodec/aarch64/neon.S \
|
||||
libavcodec/aarch64/vorbisdsp_neon.S \
|
||||
libavcodec/aarch64/vp8dsp_neon.S \
|
||||
libavcodec/x86/hpeldsp_rnd_template.c \
|
||||
libavcodec/x86/mdct15.asm \
|
||||
libavcodec/x86/mdct15_init.c \
|
||||
libavcodec/x86/rnd_template.c \
|
||||
libavcodec/x86/videodsp.asm \
|
||||
libavcodec/x86/videodsp_init.c \
|
||||
libavcodec/x86/vorbisdsp_init.c \
|
||||
libavcodec/autorename_libavcodec_mdct15.c \
|
||||
libavcodec/bit_depth_template.c \
|
||||
libavcodec/fft_template.c \
|
||||
libavcodec/flacdec.c \
|
||||
libavcodec/flacdsp.c \
|
||||
libavcodec/flacdsp_template.c \
|
||||
libavcodec/flacdsp_lpc_template.c \
|
||||
libavcodec/h264pred_template.c \
|
||||
libavcodec/hpel_template.c \
|
||||
libavcodec/hpeldsp.c \
|
||||
libavcodec/mdct15.c \
|
||||
libavcodec/mdct_template.c \
|
||||
libavcodec/pel_template.c \
|
||||
libavcodec/utils.c \
|
||||
libavcodec/videodsp.c \
|
||||
libavcodec/videodsp_template.c \
|
||||
libavcodec/vorbisdsp.c \
|
||||
libavcodec/vp3dsp.c \
|
||||
libavcodec/vp8dsp.c \
|
||||
libavformat/options.c \
|
||||
libavformat/pcm.c \
|
||||
libavformat/utils.c \
|
||||
libavutil/aarch64/asm.S \
|
||||
libavutil/aarch64/bswap.h \
|
||||
libavutil/aarch64/float_dsp_neon.S \
|
||||
libavutil/aarch64/timer.h \
|
||||
libavutil/cpu.c \
|
||||
libavutil/fixed_dsp.c \
|
||||
libavutil/float_dsp.c \
|
||||
libavutil/imgutils.c \
|
||||
libavutil/x86/cpu.c \
|
||||
libavutil/x86/float_dsp_init.c \
|
||||
libavutil/x86/x86inc.asm \
|
||||
libavutil/x86/x86util.asm "
|
||||
|
||||
mp3_files=" libavcodec/aarch64/aacpsdsp_init_aarch64.c \
|
||||
libavcodec/aarch64/aacpsdsp_neon.S \
|
||||
libavcodec/aarch64/autorename_libavcodec_aarch64_aacpsdsp_neon.S \
|
||||
libavcodec/aarch64/autorename_libavcodec_aarch64_sbrdsp_neon.S \
|
||||
libavcodec/aarch64/mpegaudiodsp_init.c \
|
||||
libavcodec/aarch64/mpegaudiodsp_neon.S \
|
||||
libavcodec/aarch64/sbrdsp_init_aarch64.c \
|
||||
libavcodec/aarch64/sbrdsp_neon.S \
|
||||
libavcodec/aac_ac3_parser.c \
|
||||
libavcodec/aac_parser.c \
|
||||
libavcodec/aacps_float.c \
|
||||
libavcodec/aacpsdsp_float.c \
|
||||
libavcodec/aacsbr.c \
|
||||
libavcodec/aactab.c \
|
||||
libavcodec/ac3tab.c \
|
||||
libavcodec/autorename_libavcodec_aacdec.c \
|
||||
libavcodec/autorename_libavcodec_mpegaudiodsp.c \
|
||||
libavcodec/autorename_libavcodec_sbrdsp.c \
|
||||
libavcodec/cbrt_data.c \
|
||||
libavcodec/dct.c \
|
||||
libavcodec/dct32_fixed.c \
|
||||
libavcodec/dct32_float.c \
|
||||
libavcodec/dct32_template.c \
|
||||
libavcodec/kbdwin.c \
|
||||
libavcodec/mpegaudio.c \
|
||||
libavcodec/mpegaudio_parser.c \
|
||||
libavcodec/mpegaudiodec_fixed.c \
|
||||
libavcodec/mpegaudiodec_template.c \
|
||||
libavcodec/mpegaudiodecheader.c \
|
||||
libavcodec/mpegaudiodsp.c \
|
||||
libavcodec/mpegaudiodsp_data.c \
|
||||
libavcodec/mpegaudiodsp_fixed.c \
|
||||
libavcodec/mpegaudiodsp_float.c \
|
||||
libavcodec/mpegaudiodsp_template.c \
|
||||
libavcodec/sbrdsp.c \
|
||||
libavcodec/sbrdsp_template.c \
|
||||
libavcodec/sinewin.c \
|
||||
libavcodec/sinewin_fixed.c \
|
||||
libavcodec/x86/dct_init.c \
|
||||
libavcodec/x86/dct32.asm \
|
||||
libavcodec/x86/imdct36.asm \
|
||||
libavcodec/x86/mpegaudiodsp.c \
|
||||
libavcodec/x86/sbrdsp_init.c \
|
||||
libavcodec/x86/sbrdsp.asm \
|
||||
libavformat/aacdec.c \
|
||||
libavformat/apetag.c \
|
||||
libavformat/img2.c \
|
||||
libavformat/mov.c \
|
||||
libavformat/mov_chan.c \
|
||||
libavformat/mp3dec.c "
|
||||
|
||||
other_files=" BUILD.gn \
|
||||
Changelog \
|
||||
COPYING.GPLv2 \
|
||||
COPYING.GPLv3 \
|
||||
COPYING.LGPLv2.1 \
|
||||
COPYING.LGPLv3 \
|
||||
CREDITS \
|
||||
CREDITS.chromium \
|
||||
ffmpeg_generated.gni \
|
||||
ffmpeg_options.gni \
|
||||
INSTALL.md \
|
||||
LICENSE.md \
|
||||
MAINTAINERS \
|
||||
OWNERS \
|
||||
README.chromium \
|
||||
README.md \
|
||||
RELEASE "
|
||||
|
||||
cd "$1/third_party/ffmpeg" || exit 1
|
||||
|
||||
copy_files "$generated_files" 0
|
||||
copy_files "$generated_files_headers" 0
|
||||
copy_files "$manual_files" 1
|
||||
copy_files "$other_files" 1
|
||||
copy_files "$header_files" 1
|
||||
copy_files "$mp3_files" 1
|
||||
|
||||
mkdir -p ../tmp_ffmpeg/tmp_chromium/config
|
||||
cp -r chromium/config ../tmp_ffmpeg/tmp_chromium
|
||||
|
||||
cd ../tmp_ffmpeg || exit 1
|
||||
|
||||
while IFS= read -r -d '' tmp_directory
|
||||
do
|
||||
new_name=${tmp_directory//tmp_/}
|
||||
mv "$tmp_directory" "$new_name"
|
||||
done < <(find . -type d -name 'tmp_*' -print0)
|
||||
|
||||
cd "$where" || exit 1
|
||||
|
||||
rm -rf "$1/third_party/ffmpeg"
|
||||
mv "$1/third_party/tmp_ffmpeg" "$1/third_party/ffmpeg"
|
@ -0,0 +1,96 @@
|
||||
diff -up chromium-75.0.3770.80/chrome/browser/about_flags.cc.vaapi chromium-75.0.3770.80/chrome/browser/about_flags.cc
|
||||
--- chromium-75.0.3770.80/chrome/browser/about_flags.cc.vaapi 2019-06-04 14:55:16.000000000 -0400
|
||||
+++ chromium-75.0.3770.80/chrome/browser/about_flags.cc 2019-06-05 11:26:46.472753047 -0400
|
||||
@@ -1390,7 +1390,7 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
"disable-accelerated-video-decode",
|
||||
flag_descriptions::kAcceleratedVideoDecodeName,
|
||||
flag_descriptions::kAcceleratedVideoDecodeDescription,
|
||||
- kOsMac | kOsWin | kOsCrOS | kOsAndroid,
|
||||
+ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux,
|
||||
SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
|
||||
},
|
||||
#if defined(OS_WIN)
|
||||
@@ -1882,12 +1882,12 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)},
|
||||
#endif // ENABLE_ISOLATED_XR_SERVICE
|
||||
#endif // ENABLE_VR
|
||||
-#if defined(OS_CHROMEOS)
|
||||
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
|
||||
{"disable-accelerated-mjpeg-decode",
|
||||
flag_descriptions::kAcceleratedMjpegDecodeName,
|
||||
- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS,
|
||||
+ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
|
||||
SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
|
||||
-#endif // OS_CHROMEOS
|
||||
+#endif // OS_CHROMEOS // OS_LINUX
|
||||
{"v8-cache-options", flag_descriptions::kV8CacheOptionsName,
|
||||
flag_descriptions::kV8CacheOptionsDescription, kOsAll,
|
||||
MULTI_VALUE_TYPE(kV8CacheOptionsChoices)},
|
||||
diff -up chromium-75.0.3770.80/chrome/browser/flag_descriptions.cc.vaapi chromium-75.0.3770.80/chrome/browser/flag_descriptions.cc
|
||||
--- chromium-75.0.3770.80/chrome/browser/flag_descriptions.cc.vaapi 2019-06-05 11:26:46.473753026 -0400
|
||||
+++ chromium-75.0.3770.80/chrome/browser/flag_descriptions.cc 2019-06-05 11:29:28.039397479 -0400
|
||||
@@ -2941,15 +2941,20 @@ const char kMacSystemMediaPermissionsInf
|
||||
|
||||
#endif
|
||||
|
||||
-// Chrome OS -------------------------------------------------------------------
|
||||
+// Chrome OS & Linux------------------------------------------------------------
|
||||
|
||||
-#if defined(OS_CHROMEOS)
|
||||
+#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
|
||||
|
||||
const char kAcceleratedMjpegDecodeName[] =
|
||||
"Hardware-accelerated mjpeg decode for captured frame";
|
||||
const char kAcceleratedMjpegDecodeDescription[] =
|
||||
"Enable hardware-accelerated mjpeg decode for captured frame where "
|
||||
"available.";
|
||||
+#endif
|
||||
+
|
||||
+// Chrome OS -------------------------------------------------------------------
|
||||
+
|
||||
+#if defined(OS_CHROMEOS)
|
||||
|
||||
const char kAppServiceAshName[] = "App Service Ash";
|
||||
const char kAppServiceAshDescription[] =
|
||||
diff -up chromium-75.0.3770.80/chrome/browser/flag_descriptions.h.vaapi chromium-75.0.3770.80/chrome/browser/flag_descriptions.h
|
||||
--- chromium-75.0.3770.80/chrome/browser/flag_descriptions.h.vaapi 2019-06-05 11:26:46.475752984 -0400
|
||||
+++ chromium-75.0.3770.80/chrome/browser/flag_descriptions.h 2019-06-05 11:30:39.503928986 -0400
|
||||
@@ -1765,13 +1765,19 @@ extern const char kPermissionPromptPersi
|
||||
|
||||
#endif // defined(OS_MACOSX)
|
||||
|
||||
-// Chrome OS ------------------------------------------------------------------
|
||||
+// Chrome OS & Linux ----------------------------------------------------------
|
||||
|
||||
-#if defined(OS_CHROMEOS)
|
||||
+#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
|
||||
|
||||
extern const char kAcceleratedMjpegDecodeName[];
|
||||
extern const char kAcceleratedMjpegDecodeDescription[];
|
||||
|
||||
+#endif
|
||||
+
|
||||
+// Chrome OS ------------------------------------------------------------------
|
||||
+
|
||||
+#if defined(OS_CHROMEOS)
|
||||
+
|
||||
extern const char kAppServiceAshName[];
|
||||
extern const char kAppServiceAshDescription[];
|
||||
|
||||
diff -up chromium-75.0.3770.80/gpu/config/software_rendering_list.json.vaapi chromium-75.0.3770.80/gpu/config/software_rendering_list.json
|
||||
--- chromium-75.0.3770.80/gpu/config/software_rendering_list.json.vaapi 2019-06-04 14:55:24.000000000 -0400
|
||||
+++ chromium-75.0.3770.80/gpu/config/software_rendering_list.json 2019-06-05 11:26:46.482752839 -0400
|
||||
@@ -371,11 +371,12 @@
|
||||
},
|
||||
{
|
||||
"id": 48,
|
||||
- "description": "Accelerated video decode is unavailable on Linux",
|
||||
+ "description": "Accelerated VA-API video decode is not supported on NVIDIA platforms",
|
||||
"cr_bugs": [137247],
|
||||
"os": {
|
||||
"type": "linux"
|
||||
},
|
||||
+ "vendor_id": "0x10de",
|
||||
"features": [
|
||||
"accelerated_video_decode"
|
||||
]
|
@ -0,0 +1,82 @@
|
||||
#!/usr/bin/python
|
||||
# Copyright 2015 Tomas Popela <tpopela@redhat.com>
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
# "Software"), to deal in the Software without restriction, including
|
||||
# without limitation the rights to use, copy, modify, merge, publish,
|
||||
# distribute, sublicense, and/or sell copies of the Software, and to
|
||||
# permit persons to whom the Software is furnished to do so, subject to
|
||||
# the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included
|
||||
# in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
import sys
|
||||
import re
|
||||
|
||||
def append_sources (input_sources, output_sources):
|
||||
|
||||
# Get the source files.
|
||||
source_files = re.findall(r"\"(.*?)\"", input_sources)
|
||||
output_sources += source_files
|
||||
|
||||
|
||||
def parse_sources(input_sources, output_sources, arch_not_arm):
|
||||
|
||||
# Get the type of sources in one group and sources itself in the other one.
|
||||
blocks = re.findall(r"(ffmpeg[^\s]*).*?\[(.*?)]", input_sources, re.DOTALL)
|
||||
for block in blocks:
|
||||
if (arch_not_arm):
|
||||
if not 'ffmpeg_gas_sources' in block[0]:
|
||||
append_sources (block[1], output_sources)
|
||||
else:
|
||||
append_sources (block[1], output_sources)
|
||||
|
||||
|
||||
def parse_ffmpeg_gni_file(gni_path, arch_not_arm):
|
||||
|
||||
with open(gni_path, "r") as input_file:
|
||||
content = input_file.read().replace('\n', '')
|
||||
|
||||
output_sources = []
|
||||
# Get all the sections.
|
||||
sections = re.findall(r"if (.*?})", content, re.DOTALL)
|
||||
for section in sections:
|
||||
# Get all the conditions (first group) and sources (second group) for the
|
||||
# current section.
|
||||
blocks = re.findall(r"(\(.*?\))\s\{(.*?)\}", section, re.DOTALL)
|
||||
for block in blocks:
|
||||
conditions = re.findall(r"\(?\((.*?)\)", block[0])
|
||||
inserted = False
|
||||
for condition in conditions:
|
||||
if inserted:
|
||||
break
|
||||
limitations = ['ffmpeg_branding == "Chrome"', 'ffmpeg_branding == "ChromeOS"']
|
||||
if ('use_linux_config' in condition) and not any(limitation in condition for limitation in limitations):
|
||||
if (arch_not_arm):
|
||||
if ('x64' in condition) or ('x86' in condition) or ('use_linux_config' in condition):
|
||||
parse_sources (block[1], output_sources, arch_not_arm)
|
||||
inserted = True
|
||||
else:
|
||||
parse_sources (block[1], output_sources, arch_not_arm)
|
||||
inserted = True
|
||||
|
||||
if len(output_sources) == 0:
|
||||
sys.stderr.write("Something went wrong, no sources parsed!\n")
|
||||
sys.exit(1)
|
||||
|
||||
print ' '.join(output_sources)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
path = "%s/third_party/ffmpeg/ffmpeg_generated.gni" % sys.argv[1]
|
||||
parse_ffmpeg_gni_file (path, False if sys.argv[2] == "0" else True)
|
@ -0,0 +1,121 @@
|
||||
#!/usr/bin/python
|
||||
# Copyright 2015 Tomas Popela <tpopela@redhat.com>
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
# "Software"), to deal in the Software without restriction, including
|
||||
# without limitation the rights to use, copy, modify, merge, publish,
|
||||
# distribute, sublicense, and/or sell copies of the Software, and to
|
||||
# permit persons to whom the Software is furnished to do so, subject to
|
||||
# the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included
|
||||
# in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
try:
|
||||
import argparse
|
||||
optparse = False
|
||||
except ImportError:
|
||||
from optparse import OptionParser
|
||||
optparse = True
|
||||
import locale
|
||||
import simplejson as json
|
||||
import sys
|
||||
import os
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
added = []
|
||||
|
||||
# Create the parser object
|
||||
if optparse:
|
||||
parser = OptionParser()
|
||||
parser_add_argument = parser.add_option
|
||||
else:
|
||||
parser = argparse.ArgumentParser()
|
||||
parser_add_argument = parser.add_argument
|
||||
|
||||
parser_add_argument(
|
||||
'--check',
|
||||
help='Check the tests against given SPEC file')
|
||||
parser_add_argument(
|
||||
'--spec', action='store_true',
|
||||
help='Prints the test targets in format suitable for SPEC file')
|
||||
parser_add_argument(
|
||||
'path', nargs='?', default=os.getcwd(),
|
||||
help='Path to Chromium sources')
|
||||
|
||||
# Parse the args
|
||||
if optparse:
|
||||
args, options = parser.parse_args()
|
||||
else:
|
||||
args = parser.parse_args()
|
||||
|
||||
tests_path = "%s/testing/buildbot/chromium.linux.json" % args.path
|
||||
|
||||
try:
|
||||
with open(tests_path, "r") as input_file:
|
||||
json_file = json.load(input_file)
|
||||
except IOError:
|
||||
print "Cannot find JSON file with tests in path '%s'!" % args.path
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
for test in json_file['Linux Tests']['gtest_tests']:
|
||||
if isinstance(test, dict):
|
||||
added.append(test['test'])
|
||||
else:
|
||||
added.append(test)
|
||||
|
||||
if args.check:
|
||||
removed = []
|
||||
disabled = []
|
||||
in_tests = False
|
||||
spec_file = None
|
||||
|
||||
with open(args.check) as f:
|
||||
for line in f:
|
||||
if "CHROMIUM_BROWSER_UNIT_TESTS=" in line:
|
||||
in_tests = True
|
||||
continue
|
||||
|
||||
if in_tests and line.endswith('"\n'):
|
||||
break
|
||||
|
||||
if in_tests:
|
||||
found = False
|
||||
for test in added:
|
||||
if test in line:
|
||||
if "#" in line:
|
||||
disabled.append(test)
|
||||
added.remove(test)
|
||||
found = True
|
||||
break
|
||||
if not found:
|
||||
if not "%" in line:
|
||||
removed.append(line)
|
||||
|
||||
for test in removed:
|
||||
print "REMOVED"
|
||||
print "\t" + test;
|
||||
for test in added:
|
||||
print "ADDED"
|
||||
print "\t" + test;
|
||||
for test in disabled:
|
||||
print "DISABLED"
|
||||
print "\t" + test;
|
||||
|
||||
sys.exit(0)
|
||||
|
||||
for name in added:
|
||||
if args.spec:
|
||||
print "\t" + name + " \\"
|
||||
else:
|
||||
print name
|
@ -0,0 +1,17 @@
|
||||
{
|
||||
"homepage": "https://start.fedoraproject.org",
|
||||
"homepage_is_newtabpage": false,
|
||||
"distribution": {
|
||||
"alternate_shortcut_text": false,
|
||||
"oem_bubble": true,
|
||||
"chrome_shortcut_icon_index": 0,
|
||||
"create_all_shortcuts": true,
|
||||
"show_welcome_page": true,
|
||||
"system_level": false,
|
||||
"verbose_logging": false
|
||||
},
|
||||
"first_run_tabs": [
|
||||
"https://start.fedoraproject.org",
|
||||
"http://tools.google.com/chrome/intl/en/welcome.html"
|
||||
]
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
SHA512 (depot_tools.git-master.tar.gz) = d3d6a1873b2b0296a8cd99e0d8d2e629a17b1808934b4972556168f8b4ccea60577ebaeab4445baf15afb1b04080808db59a832a5b61d247bd48da14fa6acf03
|
||||
SHA512 (gelasio.zip) = 0a22def3eca8848161ee72453dc5f97cc52ed09ffe21834152f2535d3a71f404cdf1f6e1809564bacb86aae75278cbcb96cae52b537d3ccdc299b60d6d0bc53e
|
||||
SHA512 (MuktiNarrow-0.94.tar.bz2) = f7abd429e2591eaa047d1ac982d97fa67dc1480c42e55b2a97861abd90918704dce90b6bb27dec7b6d696f188017a74de54a7b7f45281f0515923b90300959d1
|
||||
SHA512 (NotoSansCJKjp-hinted.zip) = e7bcbc53a10b8ec3679dcade5a8a94cea7e1f60875ab38f2193b4fa8e33968e1f0abc8184a3df1e5210f6f5c731f96c727c6aa8f519423a29707d2dee5ada193
|
||||
SHA512 (lohit-gurmukhi-ttf-2.91.2.tar.gz) = 714ed72d201e7f8956d24e9d9f1526207beb91a604e88c02a8b0d145f19d9bfe1408ca290d1665ebef462ab3854365dcd9850529803277738e2585addf3e280a
|
||||
SHA512 (Arimo-BoldItalic.ttf) = cb1f411f2630f2754dfb0244b3c56fde43650d603512d47c143bc0f24028da4d7ca2b35a633226ef9c502b97c63cfbd5a6d696934b3e60b2a98ad879b113a4c4
|
||||
SHA512 (Arimo-Bold.ttf) = 2853e5f41e6899baf226db2578aba09f2f88085eaea02da024621492d21e1af8bdefdefd354ea23dc4d5de5cb0d554085040a0108820f213e86dd532986fdb41
|
||||
SHA512 (Arimo-Italic.ttf) = 56ef918e5811dcd375e6cd8d79dc69f4db75d544639c0f6ac3a0343b3b4ef94b7dee5a6066f1558d8747a32bbee074256be68b943ff31cfbd2f5f32acfa7c1c5
|
||||
SHA512 (Arimo-Regular.ttf) = 05e6aa6b785b0038a8e0e0a8a618a1b8e907a700be302148eaebc91cfac3c9e2d9acf90b9d077ff3b9ff54bd5f8a9c522a039cff6103cdeee54be29b6a0b355f
|
||||
SHA512 (Cousine-BoldItalic.ttf) = 2125aa9f5db4ae4a3725d308b6afbfbce5957f3c96a3c5fcba8ebf5cd167017d9c7023391e947ed68d12fa97e2cba3f156a3acca276d9f5ed50df7d78c07f918
|
||||
SHA512 (Cousine-Bold.ttf) = 1759fd23419ae0e1bfc9be92abb9cb0c74084ce85e7f53c055d86ec3d62da83169d0d67ed96fd4e496b28acf382933d63448459108b109d8202db7f18f05caab
|
||||
SHA512 (Cousine-Italic.ttf) = ec3fc9d940b748dbbc64aa66184413a78ae2b085181eed563449df044b891e951e8feebd865be5be42f0cd001acf5bdce9084a006f9b5be32f096f7df0dc7700
|
||||
SHA512 (Cousine-Regular.ttf) = a665a6a4a5583079eb87509e2da7d6bd06965e6a7655217302b088caef942ae9ad63e6cffda18d0001fc9ab2284836766843e46bfdacd188b54f39d7855f36a0
|
||||
SHA512 (Tinos-BoldItalic.ttf) = 2574de2add94ef976b731fac688951fab49574c9b0ccd259ba647ea3598ca026bcfb88e2ea3f19effb3af71fdc0eb5fa9973f0b6e996c22185c5f2aab5a23fdd
|
||||
SHA512 (Tinos-Bold.ttf) = 54aeca804c06a4d5c57ade596e73df91a6a1c4401c4aadba55d987b3fb73045d35f3df02678b59abb77c4914ec741755536c0adf808c931e4b77848c52c229c4
|
||||
SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0e22a16414278217f37497b904a18540273c0e2d79d4f1faabde3b0eb5446283b318c73bafb38
|
||||
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
|
||||
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
|
||||
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
|
||||
SHA512 (chromium-76.0.3809.132-clean.tar.xz) = fbc5f989945adfaffb9fb5199ccb988accdc53f41a03bba9c4ab3df8585b9267b1f34cd7a6ac487eff34ebb6e65865e32ceea4ad945eec30f871d8eed41f3e6f
|
Loading…
Reference in new issue