Hello community, here is the log from the commit of package chromium for openSUSE:Factory checked in at 2019-12-23 22:37:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/chromium (Old) and /work/SRC/openSUSE:Factory/.chromium.new.6675 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "chromium" Mon Dec 23 22:37:29 2019 rev:240 rq:758715 version:79.0.3945.88 Changes: -------- --- /work/SRC/openSUSE:Factory/chromium/chromium.changes 2019-11-23 23:40:52.958904404 +0100 +++ /work/SRC/openSUSE:Factory/.chromium.new.6675/chromium.changes 2019-12-23 22:41:00.693913176 +0100 @@ -1,0 +2,71 @@ +Thu Dec 19 21:58:01 UTC 2019 - Andreas Stieger <andreas.stie...@gmx.de> + +- update to 79.0.3945.88: + * CVE-2019-13767: Use after free in media picker (boo#1159498) + +------------------------------------------------------------------- +Wed Dec 11 09:34:00 UTC 2019 - Tomáš Chvátal <tchva...@suse.com> + +- Update to 79.0.3945.79: + * CVE-2019-13725: Use after free in Bluetooth + * CVE-2019-13726: Heap buffer overflow in password manager + * CVE-2019-13727: Insufficient policy enforcement in WebSockets + * CVE-2019-13728: Out of bounds write in V8 + * CVE-2019-13729: Use after free in WebSockets + * CVE-2019-13730: Type Confusion in V8 + * CVE-2019-13732: Use after free in WebAudio + * CVE-2019-13734: Out of bounds write in SQLite + * CVE-2019-13735: Out of bounds write in V8 + * CVE-2019-13764: Type Confusion in V8 + * CVE-2019-13736: Integer overflow in PDFium + * CVE-2019-13737: Insufficient policy enforcement in autocomplete + * CVE-2019-13738: Insufficient policy enforcement in navigation + * CVE-2019-13739: Incorrect security UI in Omnibox + * CVE-2019-13740: Incorrect security UI in sharing + * CVE-2019-13741: Insufficient validation of untrusted input in Blink + * CVE-2019-13742: Incorrect security UI in Omnibox + * CVE-2019-13743: Incorrect security UI in external protocol handling + * CVE-2019-13744: Insufficient policy enforcement in cookies + * CVE-2019-13745: Insufficient policy enforcement in audio + * CVE-2019-13746: Insufficient policy enforcement in Omnibox + * CVE-2019-13747: Uninitialized Use in rendering + * CVE-2019-13748: Insufficient policy enforcement in developer tools + * CVE-2019-13749: Incorrect security UI in Omnibox + * CVE-2019-13750: Insufficient data validation in SQLite + * CVE-2019-13751: Uninitialized Use in SQLite + * CVE-2019-13752: Out of bounds read in SQLite + * CVE-2019-13753: Out of bounds read in SQLite + * CVE-2019-13754: Insufficient policy enforcement in extensions + * CVE-2019-13755: Insufficient policy enforcement in extensions + * CVE-2019-13756: Incorrect security UI in printing + * CVE-2019-13757: Incorrect security UI in Omnibox + * CVE-2019-13758: Insufficient policy enforcement in navigation + * CVE-2019-13759: Incorrect security UI in interstitials + * CVE-2019-13761: Incorrect security UI in Omnibox + * CVE-2019-13762: Insufficient policy enforcement in downloads + * CVE-2019-13763: Insufficient policy enforcement in payments +- Remove merged patches: + * chromium-77-clang.patch + * chromium-78-gcc-enum-range.patch + * chromium-78-gcc-noexcept.patch + * chromium-78-gcc-std-vector.patch + * chromium-78-icon.patch + * chromium-78-include.patch + * chromium-78-noexcept.patch + * chromium-78-pm-crash.patch + * chromium-78-protobuf-export.patch +- Add new patches: + * chromium-79-gcc-alignas.patch + * chromium-79-gcc-ambiguous-nodestructor.patch + * chromium-79-gcc-name-clash.patch + * chromium-79-gcc-permissive.patch + * chromium-79-include.patch + * chromium-79-system-hb.patch +- Rebase patches: + * chromium-dma-buf.patch + * chromium-old-glibc-noexcept.patch + * chromium-vaapi-fix.patch + * fix_building_widevinecdm_with_chromium.patch + * old-libva.patch + +------------------------------------------------------------------- Old: ---- chromium-77-clang.patch chromium-78-gcc-enum-range.patch chromium-78-gcc-noexcept.patch chromium-78-gcc-std-vector.patch chromium-78-icon.patch chromium-78-include.patch chromium-78-noexcept.patch chromium-78-pm-crash.patch chromium-78-protobuf-export.patch chromium-78.0.3904.108.tar.xz New: ---- chromium-79-gcc-alignas.patch chromium-79-gcc-ambiguous-nodestructor.patch chromium-79-gcc-name-clash.patch chromium-79-gcc-permissive.patch chromium-79-include.patch chromium-79-system-hb.patch chromium-79.0.3945.88.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ chromium.spec ++++++ --- /var/tmp/diff_new_pack.QIugbg/_old 2019-12-23 22:41:13.557918757 +0100 +++ /var/tmp/diff_new_pack.QIugbg/_new 2019-12-23 22:41:13.565918760 +0100 @@ -1,7 +1,7 @@ # # spec file for package chromium # -# Copyright (c) 2019 SUSE LLC +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -57,7 +57,7 @@ %bcond_with clang %bcond_with wayland Name: chromium -Version: 78.0.3904.108 +Version: 79.0.3945.88 Release: 0 Summary: Google's open source browser project License: BSD-3-Clause AND LGPL-2.1-or-later @@ -84,17 +84,14 @@ Patch9: chromium-system-libusb.patch Patch10: gcc-enable-lto.patch Patch11: chromium-unbundle-zlib.patch -Patch12: chromium-78-noexcept.patch -Patch13: chromium-78-gcc-enum-range.patch -Patch14: chromium-78-gcc-noexcept.patch -Patch15: chromium-78-gcc-std-vector.patch -Patch16: chromium-78-icon.patch -Patch17: chromium-78-include.patch -Patch18: chromium-78-pm-crash.patch -Patch19: chromium-78-protobuf-export.patch -Patch20: chromium-77-clang.patch -Patch21: chromium-old-glibc-noexcept.patch -Patch22: chromium-79-icu-65.patch +Patch12: chromium-old-glibc-noexcept.patch +Patch13: chromium-79-gcc-alignas.patch +Patch14: chromium-79-gcc-ambiguous-nodestructor.patch +Patch15: chromium-79-gcc-name-clash.patch +Patch16: chromium-79-gcc-permissive.patch +Patch17: chromium-79-icu-65.patch +Patch18: chromium-79-include.patch +Patch19: chromium-79-system-hb.patch # Google seem not too keen on merging this but GPU accel is quite important # https://chromium-review.googlesource.com/c/chromium/src/+/532294 # https://github.com/saiarcot895/chromium-ubuntu-build/tree/master/debian/patches @@ -454,6 +451,7 @@ third_party/swiftshader third_party/swiftshader/third_party/llvm-7.0 third_party/swiftshader/third_party/llvm-subzero + third_party/swiftshader/third_party/marl third_party/swiftshader/third_party/subzero third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1 third_party/tcmalloc @@ -528,12 +526,13 @@ cp -a %{_includedir}/libusb-1.0/libusb.h third_party/libusb/src/libusb/libusb.h %build +# GN sets lto on its own and we need just ldflag options, not cflags +%define _lto_cflags %{nil} %if %{with clang} export CC=clang export CXX=clang++ %else # REDUCE DEBUG as it gets TOO large -%define _lto_cflags %{nil} ARCH_FLAGS="`echo %{optflags} | sed -e 's/^-g / /g' -e 's/ -g / /g' -e 's/ -g$//g'`" export CXXFLAGS="${ARCH_FLAGS} -fpermissive -Wno-return-type" # extra flags to reduce warnings that aren't very useful @@ -563,6 +562,7 @@ %endif # do not eat all memory %limit_build -m 2600 + %if %{with lto} export LDFLAGS="-flto=%{jobs} --param lto-max-streaming-parallelism=1" %endif @@ -675,6 +675,9 @@ %if %{with lto} myconf_gn+=" gcc_lto=true" %endif +%if %{with system_icu} +myconf_gn+=" icu_use_data_file=false" +%endif # The proprietary codecs just force the chromium to say they can use it and # offload the actual computation to the ffmpeg, otherwise the chromium ++++++ chromium-79-gcc-alignas.patch ++++++ Re-use chromium alignas workaround in protobuf. --- diff --git a/third_party/protobuf/src/google/protobuf/arena.h b/third_party/protobuf/src/google/protobuf/arena.h index dedc221..a8515ce 100644 --- a/third_party/protobuf/src/google/protobuf/arena.h +++ b/third_party/protobuf/src/google/protobuf/arena.h @@ -245,7 +245,7 @@ struct ArenaOptions { // well as protobuf container types like RepeatedPtrField and Map. The protocol // is internal to protobuf and is not guaranteed to be stable. Non-proto types // should not rely on this protocol. -class PROTOBUF_EXPORT alignas(8) Arena final { +class PROTOBUF_EXPORT PROTOBUF_ALIGNAS(8) Arena final { public: // Arena constructor taking custom options. See ArenaOptions below for // descriptions of the options available. diff --git a/third_party/protobuf/src/google/protobuf/port_def.inc b/third_party/protobuf/src/google/protobuf/port_def.inc index f1bd85d..6d02b53 100644 --- a/third_party/protobuf/src/google/protobuf/port_def.inc +++ b/third_party/protobuf/src/google/protobuf/port_def.inc @@ -528,6 +528,35 @@ PROTOBUF_EXPORT_TEMPLATE_TEST(DEFAULT, __declspec(dllimport)); #undef IN #endif // _MSC_VER +// Specify memory alignment for structs, classes, etc. +// Use like: +// class PROTOBUF_ALIGNAS(16) MyClass { ... } +// PROTOBUF_ALIGNAS(16) int array[4]; +// +// In most places you can use the C++11 keyword "alignas", which is preferred. +// +// But compilers have trouble mixing __attribute__((...)) syntax with +// alignas(...) syntax. +// +// Doesn't work in clang or gcc: +// struct alignas(16) __attribute__((packed)) S { char c; }; +// Works in clang but not gcc: +// struct __attribute__((packed)) alignas(16) S2 { char c; }; +// Works in clang and gcc: +// struct alignas(16) S3 { char c; } __attribute__((packed)); +// +// There are also some attributes that must be specified *before* a class +// definition: visibility (used for exporting functions/classes) is one of +// these attributes. This means that it is not possible to use alignas() with a +// class that is marked as exported. +#if defined(_MSC_VER) +#define PROTOBUF_ALIGNAS(byte_alignment) __declspec(align(byte_alignment)) +#elif defined(__GNUC__) +#define PROTOBUF_ALIGNAS(byte_alignment) __attribute__((aligned(byte_alignment))) +#else +#define PROTOBUF_ALIGNAS(byte_alignment) alignas(byte_alignment) +#endif + #if defined(__clang__) #pragma clang diagnostic push // TODO(gerbens) ideally we cleanup the code. But a cursory try shows many diff --git a/third_party/protobuf/src/google/protobuf/port_undef.inc b/third_party/protobuf/src/google/protobuf/port_undef.inc index b7e67fe..ba1fffc 100644 --- a/third_party/protobuf/src/google/protobuf/port_undef.inc +++ b/third_party/protobuf/src/google/protobuf/port_undef.inc @@ -80,6 +80,7 @@ #undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_foj3FJo5StF0OvIzl7oMxA__declspec #undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_dllexport #undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_dllimport +#undef PROTOBUF_ALIGNAS ++++++ chromium-79-gcc-ambiguous-nodestructor.patch ++++++ >From af77dc4014ead3d898fdc8a7a70fe5063ac9b102 Mon Sep 17 00:00:00 2001 From: Jose Dapena Paz <jose.dap...@lge.com> Date: Fri, 25 Oct 2019 19:01:29 +0000 Subject: [PATCH] GCC: use brace-initializer for DohUpgrade vector Constructing NoDestructor with parenthesis constructor is ambiguous in GCC. Use brace-initializer to avoid that problem. This fixes this build error: Bug: 819294 Change-Id: I00dda42daa1794d11e022f26ac07f92e599d106d Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1879910 Reviewed-by: Eric Orth <erico...@chromium.org> Commit-Queue: José Dapena Paz <jose.dap...@lge.com> Cr-Commit-Position: refs/heads/master@{#709569} --- diff --git a/net/dns/dns_util.cc b/net/dns/dns_util.cc index 14997c4..637b6f2 100644 --- a/net/dns/dns_util.cc +++ b/net/dns/dns_util.cc @@ -144,7 +144,7 @@ // DohProviderId histogram suffix list in // tools/metrics/histograms/histograms.xml. static const base::NoDestructor<std::vector<DohUpgradeEntry>> - upgradable_servers({ + upgradable_servers{{ DohUpgradeEntry( "CleanBrowsingAdult", {"185.228.168.10", "185.228.169.11", "2a0d:2a00:1::1", @@ -215,7 +215,7 @@ {"9.9.9.9", "149.112.112.112", "2620:fe::fe", "2620:fe::9"}, {"dns.quad9.net", "dns9.quad9.net"} /* DoT hostname */, {"https://dns.quad9.net/dns-query", true /* use_post */}), - }); + }}; return *upgradable_servers; } ++++++ chromium-79-gcc-name-clash.patch ++++++ >From e925deab264e5ebc3c5c13415aa3d44a746e8d45 Mon Sep 17 00:00:00 2001 From: Jose Dapena Paz <jose.dap...@lge.com> Date: Fri, 25 Oct 2019 14:53:51 +0000 Subject: [PATCH] GCC: avoid clash of WebThemeEngine::ForcedColors with ForcedColors enum class GCC fails to build because the declaration of the enum class ForcedColors clashes with the GetForcedColors method. Bug: 819294 Change-Id: I5c7647978d15c771f5372a8c70ac6aeb2284fb2f Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1879452 Reviewed-by: Kentaro Hara <hara...@chromium.org> Commit-Queue: José Dapena Paz <jose.dap...@lge.com> Cr-Commit-Position: refs/heads/master@{#709469} (backported to M79) --- Index: chromium-79.0.3945.36/content/child/webthemeengine_impl_android.cc =================================================================== --- chromium-79.0.3945.36.orig/content/child/webthemeengine_impl_android.cc +++ chromium-79.0.3945.36/content/child/webthemeengine_impl_android.cc @@ -228,7 +228,7 @@ void WebThemeEngineAndroid::Paint( native_theme_extra_params, NativeColorScheme(color_scheme)); } -blink::ForcedColors WebThemeEngineAndroid::ForcedColors() const { +blink::ForcedColors WebThemeEngineAndroid::GetForcedColors() const { return forced_colors_; } Index: chromium-79.0.3945.36/content/child/webthemeengine_impl_android.h =================================================================== --- chromium-79.0.3945.36.orig/content/child/webthemeengine_impl_android.h +++ chromium-79.0.3945.36/content/child/webthemeengine_impl_android.h @@ -22,7 +22,7 @@ class WebThemeEngineAndroid : public bli const blink::WebRect& rect, const blink::WebThemeEngine::ExtraParams* extra_params, blink::WebColorScheme color_scheme) override; - blink::ForcedColors ForcedColors() const override; + blink::ForcedColors GetForcedColors() const override; void SetForcedColors(const blink::ForcedColors forced_colors) override; private: Index: chromium-79.0.3945.36/content/child/webthemeengine_impl_default.cc =================================================================== --- chromium-79.0.3945.36.orig/content/child/webthemeengine_impl_default.cc +++ chromium-79.0.3945.36/content/child/webthemeengine_impl_default.cc @@ -232,7 +232,7 @@ void WebThemeEngineDefault::cacheScrollB } #endif -blink::ForcedColors WebThemeEngineDefault::ForcedColors() const { +blink::ForcedColors WebThemeEngineDefault::GetForcedColors() const { return ui::NativeTheme::GetInstanceForWeb()->UsesHighContrastColors() ? blink::ForcedColors::kActive : blink::ForcedColors::kNone; Index: chromium-79.0.3945.36/content/child/webthemeengine_impl_default.h =================================================================== --- chromium-79.0.3945.36.orig/content/child/webthemeengine_impl_default.h +++ chromium-79.0.3945.36/content/child/webthemeengine_impl_default.h @@ -39,7 +39,7 @@ class WebThemeEngineDefault : public bli int32_t vertical_arrow_bitmap_height, int32_t horizontal_arrow_bitmap_width); #endif - blink::ForcedColors ForcedColors() const override; + blink::ForcedColors GetForcedColors() const override; void SetForcedColors(const blink::ForcedColors forced_colors) override; }; Index: chromium-79.0.3945.36/content/child/webthemeengine_impl_mac.cc =================================================================== --- chromium-79.0.3945.36.orig/content/child/webthemeengine_impl_mac.cc +++ chromium-79.0.3945.36/content/child/webthemeengine_impl_mac.cc @@ -6,7 +6,7 @@ namespace content { -blink::ForcedColors WebThemeEngineMac::ForcedColors() const { +blink::ForcedColors WebThemeEngineMac::GetForcedColors() const { return forced_colors_; } Index: chromium-79.0.3945.36/content/child/webthemeengine_impl_mac.h =================================================================== --- chromium-79.0.3945.36.orig/content/child/webthemeengine_impl_mac.h +++ chromium-79.0.3945.36/content/child/webthemeengine_impl_mac.h @@ -13,7 +13,7 @@ class WebThemeEngineMac : public blink:: public: ~WebThemeEngineMac() override {} - blink::ForcedColors ForcedColors() const override; + blink::ForcedColors GetForcedColors() const override; void SetForcedColors(const blink::ForcedColors forced_colors) override; private: Index: chromium-79.0.3945.36/third_party/blink/public/platform/web_theme_engine.h =================================================================== --- chromium-79.0.3945.36.orig/third_party/blink/public/platform/web_theme_engine.h +++ chromium-79.0.3945.36/third_party/blink/public/platform/web_theme_engine.h @@ -226,7 +226,7 @@ class WebThemeEngine { return base::nullopt; } - virtual ForcedColors ForcedColors() const { return ForcedColors::kNone; } + virtual ForcedColors GetForcedColors() const { return ForcedColors::kNone; } virtual void SetForcedColors(const blink::ForcedColors forced_colors) {} }; Index: chromium-79.0.3945.36/third_party/blink/renderer/core/css/media_values.cc =================================================================== --- chromium-79.0.3945.36.orig/third_party/blink/renderer/core/css/media_values.cc +++ chromium-79.0.3945.36/third_party/blink/renderer/core/css/media_values.cc @@ -221,7 +221,7 @@ bool MediaValues::CalculatePrefersReduce ForcedColors MediaValues::CalculateForcedColors() { if (Platform::Current() && Platform::Current()->ThemeEngine()) - return Platform::Current()->ThemeEngine()->ForcedColors(); + return Platform::Current()->ThemeEngine()->GetForcedColors(); else return ForcedColors::kNone; } Index: chromium-79.0.3945.36/third_party/blink/renderer/core/dom/document.cc =================================================================== --- chromium-79.0.3945.36.orig/third_party/blink/renderer/core/dom/document.cc +++ chromium-79.0.3945.36/third_party/blink/renderer/core/dom/document.cc @@ -8624,7 +8624,7 @@ void Document::ColorSchemeChanged() { bool Document::InForcedColorsMode() const { return RuntimeEnabledFeatures::ForcedColorsEnabled() && Platform::Current() && Platform::Current()->ThemeEngine() && - Platform::Current()->ThemeEngine()->ForcedColors() != + Platform::Current()->ThemeEngine()->GetForcedColors() != ForcedColors::kNone; } ++++++ chromium-79-gcc-permissive.patch ++++++ >From 528e9a3e1f25bd264549c4c7779748abfd16bb1c Mon Sep 17 00:00:00 2001 From: Jan Wilken Dörrie <jdoer...@chromium.org> Date: Fri, 18 Oct 2019 11:45:24 +0000 Subject: [PATCH] Reland "GCC: Fix base::internal::InvokeFuncImpl" This is a reland of 9293d5c86eec1c34fc00716645400b44a14e764e Original change's description: > GCC: Fix base::internal::InvokeFuncImpl > > GCC doesn't like that the Value data member has no out-of-line > definition. The problem is triggered specifically only when compiling > > components/services/leveldb/leveldb_database_impl.cc > > which has lambda functions returning locally-defined classes. > > The current code works as-is in C++17 mode which introduces the concept > of inline variables, but in C++14 we need either an explicit out-of-line > definition or a function member instead of a data member. > > Use std::integral_constant for defining the value. > > Bug: 819294 > Change-Id: I5c68e14ce3fa9d8b4d8a2cb42d7f9b53938aabf3 > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1862451 > Reviewed-by: Jan Wilken Dörrie <jdoer...@chromium.org> > Reviewed-by: Daniel Cheng <dch...@chromium.org> > Commit-Queue: Jüri Valdmann <juri.valdm...@qt.io> > Cr-Commit-Position: refs/heads/master@{#706384} Bug: 819294 Change-Id: I3d5a52ddc6815516e2239f9347c60de06bf765a2 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1865212 Reviewed-by: Daniel Cheng <dch...@chromium.org> Commit-Queue: Jan Wilken Dörrie <jdoer...@chromium.org> Cr-Commit-Position: refs/heads/master@{#707329} --- diff --git a/base/bind.h b/base/bind.h index 7a400af..1070ce6 100644 --- a/base/bind.h +++ b/base/bind.h @@ -187,18 +187,15 @@ // well-formed. Using `Invoker::Run` with a OnceCallback triggers a // static_assert, which is why the ternary expression does not compile. // TODO(crbug.com/752720): Remove this indirection once we have `if constexpr`. -template <bool is_once, typename Invoker> -struct InvokeFuncImpl; +template <typename Invoker> +constexpr auto GetInvokeFunc(std::true_type) { + return Invoker::RunOnce; +} template <typename Invoker> -struct InvokeFuncImpl<true, Invoker> { - static constexpr auto Value = &Invoker::RunOnce; -}; - -template <typename Invoker> -struct InvokeFuncImpl<false, Invoker> { - static constexpr auto Value = &Invoker::Run; -}; +constexpr auto GetInvokeFunc(std::false_type) { + return Invoker::Run; +} template <template <typename> class CallbackT, typename Functor, @@ -229,7 +226,8 @@ // InvokeFuncStorage, so that we can ensure its type matches to // PolymorphicInvoke, to which CallbackType will cast back. using PolymorphicInvoke = typename CallbackType::PolymorphicInvoke; - PolymorphicInvoke invoke_func = InvokeFuncImpl<kIsOnce, Invoker>::Value; + PolymorphicInvoke invoke_func = + GetInvokeFunc<Invoker>(std::integral_constant<bool, kIsOnce>()); using InvokeFuncStorage = internal::BindStateBase::InvokeFuncStorage; return CallbackType(BindState::Create( ++++++ chromium-78-include.patch -> chromium-79-include.patch ++++++ --- /work/SRC/openSUSE:Factory/chromium/chromium-78-include.patch 2019-10-30 14:44:35.369976296 +0100 +++ /work/SRC/openSUSE:Factory/.chromium.new.6675/chromium-79-include.patch 2019-12-23 22:40:22.297896519 +0100 @@ -1,40 +1,131 @@ -From bbfe2665923225b4a7c436ba2b6c7e5f695f2e52 Mon Sep 17 00:00:00 2001 -From: David Landell <land...@vewd.com> -Date: Fri, 13 Sep 2019 12:24:13 +0000 -Subject: [PATCH] Add missing include for unique_ptr - -Change-Id: I614d2f42868d563eb6a92dfb2aae08286e20d687 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1803137 -Reviewed-by: Henrik Boström <h...@chromium.org> -Commit-Queue: Henrik Boström <h...@chromium.org> -Cr-Commit-Position: refs/heads/master@{#696355} +From f7c177d35242311ea7a2cf49a0980c61664f27ba Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz <jose.dap...@lge.com> +Date: Fri, 25 Oct 2019 15:07:09 +0000 +Subject: [PATCH] IWYU: include algorithm to use std::lower_bound in ui/gfx/font.cc + +Fix GCC build because of missing include: +../../ui/gfx/font.cc: In function ‘gfx::Font::Weight gfx::FontWeightFromInt(int)’: +../../ui/gfx/font.cc:114:8: error: no matching function for call to ‘lower_bound(const gfx::Font::Weight*, const gfx::Font::Weight*, int&, gfx::FontWeightFromInt(int)::<lambda(const gfx::Font::Weight&, const int&)>)’ + }); + ^ +In file included from /usr/include/c++/8/bits/char_traits.h:39, + from /usr/include/c++/8/string:40, + from ../../ui/gfx/font.h:8, + from ../../ui/gfx/font.cc:5: +/usr/include/c++/8/bits/stl_algobase.h:984:5: note: candidate: ‘template<class _ForwardIterator, class _Tp> _ForwardIterator std::lower_bound(_ForwardIterator, _ForwardIterator, const _Tp&)’ + lower_bound(_ForwardIterator __first, _ForwardIterator __last, + ^~~~~~~~~~~ +/usr/include/c++/8/bits/stl_algobase.h:984:5: note: template argument deduction/substitution failed: +../../ui/gfx/font.cc:114:8: note: candidate expects 3 arguments, 4 provided + }); + ^ + +Bug: 819294 +Change-Id: Ic59dcf3a06bdd54d1d426c08a61624873a0ff30c +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1879909 +Commit-Queue: Alexei Svitkine <asvitk...@chromium.org> +Reviewed-by: Alexei Svitkine <asvitk...@chromium.org> +Cr-Commit-Position: refs/heads/master@{#709472} --- -diff --git a/third_party/blink/public/platform/web_rtc_rtp_source.h b/third_party/blink/public/platform/web_rtc_rtp_source.h -index 959440f..c3fd542 100644 ---- a/third_party/blink/public/platform/web_rtc_rtp_source.h -+++ b/third_party/blink/public/platform/web_rtc_rtp_source.h -@@ -5,6 +5,8 @@ - #ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_RTP_SOURCE_H_ - #define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_RTP_SOURCE_H_ +diff --git a/ui/gfx/font.cc b/ui/gfx/font.cc +index 21367fd7..92b159e 100644 +--- a/ui/gfx/font.cc ++++ b/ui/gfx/font.cc +@@ -4,6 +4,8 @@ -+#include <memory> + #include "ui/gfx/font.h" + ++#include <algorithm> + - #include "base/optional.h" - #include "third_party/blink/public/platform/web_common.h" + #include "base/strings/utf_string_conversions.h" + #include "build/build_config.h" + #include "ui/gfx/platform_font.h" + +From 97eb905ba262382bc3583078761c68f4452aea71 Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz <jose.dap...@lge.com> +Date: Fri, 25 Oct 2019 09:27:53 +0000 +Subject: [PATCH] IWYU: launch_manager.h uses std::vector + +Add #include <vector> for using std::vector. This fixes GCC build. + +./../chrome/browser/apps/launch_service/launch_manager.h:46:15: error: ‘vector’ in namespace ‘std’ does not name a template type + static std::vector<base::FilePath> GetLaunchFilesFromCommandLine( + ^~~~~~ + +Bug: 819294 +Change-Id: I02ec3a2914a8fbe3aa0041017a0228f4b0ca1ec9 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1879289 +Reviewed-by: Alexey Baskakov <lo...@chromium.org> +Commit-Queue: José Dapena Paz <jose.dap...@lge.com> +Cr-Commit-Position: refs/heads/master@{#709411} +--- + +diff --git a/chrome/browser/apps/launch_service/launch_manager.h b/chrome/browser/apps/launch_service/launch_manager.h +index 00aeb9d..76570ea 100644 +--- a/chrome/browser/apps/launch_service/launch_manager.h ++++ b/chrome/browser/apps/launch_service/launch_manager.h +@@ -6,6 +6,7 @@ + #define CHROME_BROWSER_APPS_LAUNCH_SERVICE_LAUNCH_MANAGER_H_ + + #include <string> ++#include <vector> -Missing include due to reverting ProfileManagerObserver + #include "base/macros.h" + +From e7407ce7fa262e9fd1a19dd0957e5a950520ee3a Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz <jose.dap...@lge.com> +Date: Fri, 25 Oct 2019 08:25:45 +0000 +Subject: [PATCH] IWYU: include cstdint in register_context.h as it uses uintptr_t + +GCC build fix as build fails with this: +../../base/profiler/register_context.h:31:1: error: ‘uintptr_t’ does not name a type; did you mean ‘intptr_t’? + uintptr_t& AsUintPtr(T* value) { + ^~~~~~~~~ + intptr_t +../../base/profiler/register_context.h:110:3: error: ‘uintptr_t’ does not name a type; did you mean ‘intptr_t’? + uintptr_t stack_pointer; + ^~~~~~~~~ + intptr_t +../../base/profiler/register_context.h:111:3: error: ‘uintptr_t’ does not name a type; did you mean ‘intptr_t’? + uintptr_t frame_pointer; + ^~~~~~~~~ + intptr_t +../../base/profiler/register_context.h:112:3: error: ‘uintptr_t’ does not name a type; did you mean ‘intptr_t’? + uintptr_t instruction_pointer; + ^~~~~~~~~ + intptr_t +../../base/profiler/register_context.h:115:8: error: ‘uintptr_t’ does not name a type; did you mean ‘intptr_t’? + inline uintptr_t& RegisterContextStackPointer(RegisterContext* context) { + ^~~~~~~~~ + intptr_t +../../base/profiler/register_context.h:119:8: error: ‘uintptr_t’ does not name a type; did you mean ‘intptr_t’? + inline uintptr_t& RegisterContextFramePointer(RegisterContext* context) { + ^~~~~~~~~ + intptr_t +../../base/profiler/register_context.h:123:8: error: ‘uintptr_t’ does not name a type; did you mean ‘intptr_t’? + inline uintptr_t& RegisterContextInstructionPointer(RegisterContext* context) { + ^~~~~~~~~ + intptr_t + + +Bug: 819294 +Change-Id: I49567b00a6f021686c52053a22fb9c502c84f1bc +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1879908 +Reviewed-by: Mike Wittman <witt...@chromium.org> +Commit-Queue: José Dapena Paz <jose.dap...@lge.com> +Cr-Commit-Position: refs/heads/master@{#709398} --- -diff --git a/chrome/browser/web_applications/extensions/bookmark_app_util.cc b/chrome/browser/web_applications/extensions/bookmark_app_util.cc -index ee4b70a..b31e5f5 100644 ---- a/chrome/browser/web_applications/extensions/bookmark_app_util.cc -+++ b/chrome/browser/web_applications/extensions/bookmark_app_util.cc -@@ -7,6 +7,7 @@ - #include "base/strings/string_piece.h" - #include "base/values.h" - #include "chrome/browser/extensions/extension_service.h" -+#include "chrome/browser/profiles/profile.h" - #include "chrome/browser/web_applications/components/app_registrar.h" - #include "chrome/browser/web_applications/components/web_app_provider_base.h" - #include "chrome/common/chrome_features.h" +diff --git a/base/profiler/register_context.h b/base/profiler/register_context.h +index 46c4250..7dd86ff 100644 +--- a/base/profiler/register_context.h ++++ b/base/profiler/register_context.h +@@ -9,6 +9,7 @@ + #ifndef BASE_PROFILER_REGISTER_CONTEXT_H_ + #define BASE_PROFILER_REGISTER_CONTEXT_H_ + ++#include <cstdint> + #include <type_traits> + + #include "build/build_config.h" ++++++ chromium-79-system-hb.patch ++++++ diff --git a/components/paint_preview/common/subset_font.cc b/components/paint_preview/common/subset_font.cc index a218d63..6a5bdae 100644 --- a/components/paint_preview/common/subset_font.cc +++ b/components/paint_preview/common/subset_font.cc @@ -10,11 +10,12 @@ #include "base/bind.h" #include "base/callback.h" #include "base/macros.h" -#include "third_party/harfbuzz-ng/src/src/hb-subset.h" -#include "third_party/harfbuzz-ng/src/src/hb.h" #include "third_party/skia/include/core/SkStream.h" #include "third_party/skia/include/core/SkTypeface.h" +#include <hb-subset.h> +#include <hb.h> + namespace paint_preview { namespace { ++++++ chromium-78.0.3904.108.tar.xz -> chromium-79.0.3945.88.tar.xz ++++++ /work/SRC/openSUSE:Factory/chromium/chromium-78.0.3904.108.tar.xz /work/SRC/openSUSE:Factory/.chromium.new.6675/chromium-79.0.3945.88.tar.xz differ: char 27, line 1 ++++++ chromium-dma-buf.patch ++++++ --- /var/tmp/diff_new_pack.QIugbg/_old 2019-12-23 22:41:13.701918819 +0100 +++ /var/tmp/diff_new_pack.QIugbg/_new 2019-12-23 22:41:13.705918821 +0100 @@ -1,9 +1,9 @@ -Index: chromium-76.0.3800.0/ui/gfx/linux/client_native_pixmap_dmabuf.cc +Index: chromium-79.0.3941.4/ui/gfx/linux/client_native_pixmap_dmabuf.cc =================================================================== ---- chromium-76.0.3800.0.orig/ui/gfx/linux/client_native_pixmap_dmabuf.cc -+++ chromium-76.0.3800.0/ui/gfx/linux/client_native_pixmap_dmabuf.cc -@@ -24,9 +24,6 @@ - #include "build/build_config.h" +--- chromium-79.0.3941.4.orig/ui/gfx/linux/client_native_pixmap_dmabuf.cc ++++ chromium-79.0.3941.4/ui/gfx/linux/client_native_pixmap_dmabuf.cc +@@ -25,9 +25,6 @@ + #include "ui/gfx/buffer_format_util.h" #include "ui/gfx/switches.h" -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) @@ -12,7 +12,7 @@ #include <linux/types.h> struct dma_buf_sync { -@@ -41,7 +38,6 @@ struct dma_buf_sync { +@@ -42,7 +39,6 @@ struct dma_buf_sync { #define DMA_BUF_BASE 'b' #define DMA_BUF_IOCTL_SYNC _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync) ++++++ chromium-old-glibc-noexcept.patch ++++++ --- /var/tmp/diff_new_pack.QIugbg/_old 2019-12-23 22:41:13.721918828 +0100 +++ /var/tmp/diff_new_pack.QIugbg/_new 2019-12-23 22:41:13.721918828 +0100 @@ -1,6 +1,7 @@ -diff -up chromium-78.0.3904.70/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-78.0.3904.70/chrome/common/media_router/media_sink.cc ---- chromium-78.0.3904.70/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-10-21 15:06:26.000000000 -0400 -+++ chromium-78.0.3904.70/chrome/common/media_router/media_sink.cc 2019-10-30 09:26:51.339057055 -0400 +Index: chromium-79.0.3941.4/chrome/common/media_router/media_sink.cc +=================================================================== +--- chromium-79.0.3941.4.orig/chrome/common/media_router/media_sink.cc ++++ chromium-79.0.3941.4/chrome/common/media_router/media_sink.cc @@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id provider_id_(provider_id) {} @@ -16,9 +17,10 @@ bool MediaSink::IsMaybeCloudSink() const { switch (icon_type_) { -diff -up chromium-78.0.3904.70/components/history/core/browser/history_types.cc.el7-noexcept chromium-78.0.3904.70/components/history/core/browser/history_types.cc ---- chromium-78.0.3904.70/components/history/core/browser/history_types.cc.el7-noexcept 2019-10-21 15:06:29.000000000 -0400 -+++ chromium-78.0.3904.70/components/history/core/browser/history_types.cc 2019-10-30 09:26:51.358056614 -0400 +Index: chromium-79.0.3941.4/components/history/core/browser/history_types.cc +=================================================================== +--- chromium-79.0.3941.4.orig/components/history/core/browser/history_types.cc ++++ chromium-79.0.3941.4/components/history/core/browser/history_types.cc @@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults& Swap(&other); } @@ -37,10 +39,11 @@ // MostVisitedURL -------------------------------------------------------------- -diff -up chromium-78.0.3904.70/components/history/core/browser/history_types.h.el7-noexcept chromium-78.0.3904.70/components/history/core/browser/history_types.h ---- chromium-78.0.3904.70/components/history/core/browser/history_types.h.el7-noexcept 2019-10-21 15:06:29.000000000 -0400 -+++ chromium-78.0.3904.70/components/history/core/browser/history_types.h 2019-10-30 09:26:51.623050465 -0400 -@@ -143,7 +143,7 @@ class QueryResults { +Index: chromium-79.0.3941.4/components/history/core/browser/history_types.h +=================================================================== +--- chromium-79.0.3941.4.orig/components/history/core/browser/history_types.h ++++ chromium-79.0.3941.4/components/history/core/browser/history_types.h +@@ -141,7 +141,7 @@ class QueryResults { ~QueryResults(); QueryResults(QueryResults&& other) noexcept; @@ -49,7 +52,7 @@ void set_reached_beginning(bool reached) { reached_beginning_ = reached; } bool reached_beginning() { return reached_beginning_; } -@@ -278,7 +278,7 @@ struct QueryURLResult { +@@ -276,7 +276,7 @@ struct QueryURLResult { QueryURLResult(const QueryURLResult&); QueryURLResult(QueryURLResult&&) noexcept; QueryURLResult& operator=(const QueryURLResult&); @@ -58,9 +61,10 @@ ~QueryURLResult(); // Indicates whether the call to HistoryBackend::QueryURL was successfull -diff -up chromium-78.0.3904.70/components/history/core/browser/url_row.cc.el7-noexcept chromium-78.0.3904.70/components/history/core/browser/url_row.cc ---- chromium-78.0.3904.70/components/history/core/browser/url_row.cc.el7-noexcept 2019-10-21 15:06:29.000000000 -0400 -+++ chromium-78.0.3904.70/components/history/core/browser/url_row.cc 2019-10-30 09:26:51.625050418 -0400 +Index: chromium-79.0.3941.4/components/history/core/browser/url_row.cc +=================================================================== +--- chromium-79.0.3941.4.orig/components/history/core/browser/url_row.cc ++++ chromium-79.0.3941.4/components/history/core/browser/url_row.cc @@ -26,7 +26,7 @@ URLRow::~URLRow() { } @@ -70,9 +74,10 @@ void URLRow::Swap(URLRow* other) { std::swap(id_, other->id_); -diff -up chromium-78.0.3904.70/components/omnibox/browser/suggestion_answer.cc.el7-noexcept chromium-78.0.3904.70/components/omnibox/browser/suggestion_answer.cc ---- chromium-78.0.3904.70/components/omnibox/browser/suggestion_answer.cc.el7-noexcept 2019-10-21 15:06:29.000000000 -0400 -+++ chromium-78.0.3904.70/components/omnibox/browser/suggestion_answer.cc 2019-10-30 09:26:51.627050372 -0400 +Index: chromium-79.0.3941.4/components/omnibox/browser/suggestion_answer.cc +=================================================================== +--- chromium-79.0.3941.4.orig/components/omnibox/browser/suggestion_answer.cc ++++ chromium-79.0.3941.4/components/omnibox/browser/suggestion_answer.cc @@ -60,7 +60,7 @@ SuggestionAnswer::TextField::TextField(T SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=( const TextField&) = default; @@ -82,9 +87,10 @@ // static bool SuggestionAnswer::TextField::ParseTextField(const base::Value& field_json, -diff -up chromium-78.0.3904.70/components/policy/core/common/policy_map.cc.el7-noexcept chromium-78.0.3904.70/components/policy/core/common/policy_map.cc ---- chromium-78.0.3904.70/components/policy/core/common/policy_map.cc.el7-noexcept 2019-10-21 15:06:29.000000000 -0400 -+++ chromium-78.0.3904.70/components/policy/core/common/policy_map.cc 2019-10-30 09:26:51.628050349 -0400 +Index: chromium-79.0.3941.4/components/policy/core/common/policy_map.cc +=================================================================== +--- chromium-79.0.3941.4.orig/components/policy/core/common/policy_map.cc ++++ chromium-79.0.3941.4/components/policy/core/common/policy_map.cc @@ -52,7 +52,7 @@ PolicyMap::Entry::Entry( PolicyMap::Entry::~Entry() = default; @@ -93,10 +99,11 @@ +PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default; PolicyMap::Entry PolicyMap::Entry::DeepCopy() const { - Entry copy; -diff -up chromium-78.0.3904.70/components/search_provider_logos/logo_common.cc.el7-noexcept chromium-78.0.3904.70/components/search_provider_logos/logo_common.cc ---- chromium-78.0.3904.70/components/search_provider_logos/logo_common.cc.el7-noexcept 2019-10-30 09:27:30.773143557 -0400 -+++ chromium-78.0.3904.70/components/search_provider_logos/logo_common.cc 2019-10-30 13:09:43.872691009 -0400 + Entry copy(level, scope, source, value ? value->CreateDeepCopy() : nullptr, +Index: chromium-79.0.3941.4/components/search_provider_logos/logo_common.cc +=================================================================== +--- chromium-79.0.3941.4.orig/components/search_provider_logos/logo_common.cc ++++ chromium-79.0.3941.4/components/search_provider_logos/logo_common.cc @@ -14,14 +14,14 @@ LogoMetadata::LogoMetadata() = default; LogoMetadata::LogoMetadata(const LogoMetadata&) = default; LogoMetadata::LogoMetadata(LogoMetadata&&) noexcept = default; @@ -123,10 +130,11 @@ LogoCallbacks::~LogoCallbacks() = default; } // namespace search_provider_logos -diff -up chromium-78.0.3904.70/components/signin/public/identity_manager/account_info.cc.el7-noexcept chromium-78.0.3904.70/components/signin/public/identity_manager/account_info.cc ---- chromium-78.0.3904.70/components/signin/public/identity_manager/account_info.cc.el7-noexcept 2019-10-21 15:06:30.000000000 -0400 -+++ chromium-78.0.3904.70/components/signin/public/identity_manager/account_info.cc 2019-10-30 09:26:51.629050326 -0400 -@@ -57,7 +57,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc +Index: chromium-79.0.3941.4/components/signin/public/identity_manager/account_info.cc +=================================================================== +--- chromium-79.0.3941.4.orig/components/signin/public/identity_manager/account_info.cc ++++ chromium-79.0.3941.4/components/signin/public/identity_manager/account_info.cc +@@ -58,7 +58,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) = default; @@ -135,7 +143,7 @@ default; bool CoreAccountInfo::IsEmpty() const { -@@ -74,7 +74,7 @@ AccountInfo::AccountInfo(AccountInfo&& o +@@ -75,7 +75,7 @@ AccountInfo::AccountInfo(AccountInfo&& o AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default; @@ -144,9 +152,10 @@ bool AccountInfo::IsEmpty() const { return CoreAccountInfo::IsEmpty() && hosted_domain.empty() && -diff -up chromium-78.0.3904.70/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-78.0.3904.70/google_apis/gaia/core_account_id.cc ---- chromium-78.0.3904.70/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-10-21 15:06:34.000000000 -0400 -+++ chromium-78.0.3904.70/google_apis/gaia/core_account_id.cc 2019-10-30 09:26:51.630050302 -0400 +Index: chromium-79.0.3941.4/google_apis/gaia/core_account_id.cc +=================================================================== +--- chromium-79.0.3941.4.orig/google_apis/gaia/core_account_id.cc ++++ chromium-79.0.3941.4/google_apis/gaia/core_account_id.cc @@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default; @@ -156,9 +165,10 @@ CoreAccountId::CoreAccountId(const char* id) : id(id) {} -diff -up chromium-78.0.3904.70/google_apis/gaia/core_account_id.h.el7-noexcept chromium-78.0.3904.70/google_apis/gaia/core_account_id.h ---- chromium-78.0.3904.70/google_apis/gaia/core_account_id.h.el7-noexcept 2019-10-21 15:06:34.000000000 -0400 -+++ chromium-78.0.3904.70/google_apis/gaia/core_account_id.h 2019-10-30 09:26:51.631050279 -0400 +Index: chromium-79.0.3941.4/google_apis/gaia/core_account_id.h +=================================================================== +--- chromium-79.0.3941.4.orig/google_apis/gaia/core_account_id.h ++++ chromium-79.0.3941.4/google_apis/gaia/core_account_id.h @@ -20,7 +20,7 @@ struct CoreAccountId { ~CoreAccountId(); @@ -168,10 +178,11 @@ // Those implicit constructor and conversion operator allow to // progressively migrate the code to use this struct. Removing -diff -up chromium-78.0.3904.70/gpu/config/gpu_info.cc.el7-noexcept chromium-78.0.3904.70/gpu/config/gpu_info.cc ---- chromium-78.0.3904.70/gpu/config/gpu_info.cc.el7-noexcept 2019-10-21 15:06:35.000000000 -0400 -+++ chromium-78.0.3904.70/gpu/config/gpu_info.cc 2019-10-30 09:26:51.633050233 -0400 -@@ -169,7 +169,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice:: +Index: chromium-79.0.3941.4/gpu/config/gpu_info.cc +=================================================================== +--- chromium-79.0.3941.4.orig/gpu/config/gpu_info.cc ++++ chromium-79.0.3941.4/gpu/config/gpu_info.cc +@@ -173,7 +173,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice:: const GPUInfo::GPUDevice& other) = default; GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=( @@ -180,9 +191,10 @@ GPUInfo::GPUInfo() : optimus(false), -diff -up chromium-78.0.3904.70/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept chromium-78.0.3904.70/third_party/openscreen/src/osp/public/service_info.h ---- chromium-78.0.3904.70/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept 2019-10-21 15:09:14.000000000 -0400 -+++ chromium-78.0.3904.70/third_party/openscreen/src/osp/public/service_info.h 2019-10-30 09:26:51.634050210 -0400 +Index: chromium-79.0.3941.4/third_party/openscreen/src/osp/public/service_info.h +=================================================================== +--- chromium-79.0.3941.4.orig/third_party/openscreen/src/osp/public/service_info.h ++++ chromium-79.0.3941.4/third_party/openscreen/src/osp/public/service_info.h @@ -21,7 +21,7 @@ struct ServiceInfo { ServiceInfo(ServiceInfo&&) MAYBE_NOEXCEPT = default; ServiceInfo(const ServiceInfo&) MAYBE_NOEXCEPT = default; ++++++ chromium-vaapi-fix.patch ++++++ --- /var/tmp/diff_new_pack.QIugbg/_old 2019-12-23 22:41:13.749918840 +0100 +++ /var/tmp/diff_new_pack.QIugbg/_new 2019-12-23 22:41:13.749918840 +0100 @@ -9,11 +9,11 @@ media/gpu/vaapi/vaapi_wrapper.cc | 24 +++++++++++++++---- 3 files changed, 42 insertions(+), 5 deletions(-) -Index: chromium-78.0.3887.7/media/gpu/gpu_video_decode_accelerator_factory.cc +Index: chromium-79.0.3945.36/media/gpu/gpu_video_decode_accelerator_factory.cc =================================================================== ---- chromium-78.0.3887.7.orig/media/gpu/gpu_video_decode_accelerator_factory.cc -+++ chromium-78.0.3887.7/media/gpu/gpu_video_decode_accelerator_factory.cc -@@ -171,6 +171,8 @@ GpuVideoDecodeAcceleratorFactory::Create +--- chromium-79.0.3945.36.orig/media/gpu/gpu_video_decode_accelerator_factory.cc ++++ chromium-79.0.3945.36/media/gpu/gpu_video_decode_accelerator_factory.cc +@@ -185,6 +185,8 @@ GpuVideoDecodeAcceleratorFactory::Create vda = (this->*create_vda_function)(workarounds, gpu_preferences, media_log); if (vda && vda->Initialize(config, client)) return vda; @@ -22,10 +22,10 @@ } return nullptr; -Index: chromium-78.0.3887.7/media/gpu/vaapi/vaapi_video_decode_accelerator.cc +Index: chromium-79.0.3945.36/media/gpu/vaapi/vaapi_video_decode_accelerator.cc =================================================================== ---- chromium-78.0.3887.7.orig/media/gpu/vaapi/vaapi_video_decode_accelerator.cc -+++ chromium-78.0.3887.7/media/gpu/vaapi/vaapi_video_decode_accelerator.cc +--- chromium-79.0.3945.36.orig/media/gpu/vaapi/vaapi_video_decode_accelerator.cc ++++ chromium-79.0.3945.36/media/gpu/vaapi/vaapi_video_decode_accelerator.cc @@ -63,6 +63,9 @@ void ReportToUMA(VAVDADecoderFailure fai VAVDA_DECODER_FAILURES_MAX + 1); } @@ -45,7 +45,7 @@ } // namespace #define RETURN_AND_NOTIFY_ON_FAILURE(result, log, error_code, ret) \ -@@ -635,6 +640,13 @@ void VaapiVideoDecodeAccelerator::Assign +@@ -637,6 +642,13 @@ void VaapiVideoDecodeAccelerator::Assign va_surface_format_ = GetVaFormatForVideoCodecProfile(profile_); std::vector<VASurfaceID> va_surface_ids; @@ -59,15 +59,15 @@ // If we aren't in BufferAllocationMode::kNone, we have to allocate a // |vpp_vaapi_wrapper_| for VaapiPicture to DownloadFromSurface() the VA's // internal decoded frame. -@@ -648,6 +660,7 @@ void VaapiVideoDecodeAccelerator::Assign - NotifyError(PLATFORM_FAILURE); - } +@@ -654,6 +666,7 @@ void VaapiVideoDecodeAccelerator::Assign + "Failed to create Context", + PLATFORM_FAILURE, ); } + #endif for (size_t i = 0; i < buffers.size(); ++i) { // If we aren't in BufferAllocationMode::kNone, this |picture| is -@@ -659,9 +672,13 @@ void VaapiVideoDecodeAccelerator::Assign +@@ -665,9 +678,13 @@ void VaapiVideoDecodeAccelerator::Assign PictureBuffer buffer = buffers[i]; buffer.set_size(requested_pic_size_); std::unique_ptr<VaapiPicture> picture = vaapi_picture_factory_->Create( @@ -81,7 +81,7 @@ make_context_current_cb_, bind_image_cb_, buffer); RETURN_AND_NOTIFY_ON_FAILURE(picture, "Failed creating a VaapiPicture", PLATFORM_FAILURE, ); -@@ -1086,6 +1103,9 @@ VaapiVideoDecodeAccelerator::GetSupporte +@@ -1093,6 +1110,9 @@ VaapiVideoDecodeAccelerator::GetSupporte VaapiVideoDecodeAccelerator::BufferAllocationMode VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() { @@ -91,7 +91,7 @@ // TODO(crbug.com/912295): Enable a better BufferAllocationMode for IMPORT // |output_mode_| as well. if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT) -@@ -1121,6 +1141,7 @@ VaapiVideoDecodeAccelerator::DecideBuffe +@@ -1128,6 +1148,7 @@ VaapiVideoDecodeAccelerator::DecideBuffe return BufferAllocationMode::kReduced; return BufferAllocationMode::kSuperReduced; @@ -99,11 +99,11 @@ } bool VaapiVideoDecodeAccelerator::IsBufferAllocationModeReducedOrSuperReduced() -Index: chromium-78.0.3887.7/media/gpu/vaapi/vaapi_wrapper.cc +Index: chromium-79.0.3945.36/media/gpu/vaapi/vaapi_wrapper.cc =================================================================== ---- chromium-78.0.3887.7.orig/media/gpu/vaapi/vaapi_wrapper.cc -+++ chromium-78.0.3887.7/media/gpu/vaapi/vaapi_wrapper.cc -@@ -328,6 +328,10 @@ void VADisplayState::PreSandboxInitializ +--- chromium-79.0.3945.36.orig/media/gpu/vaapi/vaapi_wrapper.cc ++++ chromium-79.0.3945.36/media/gpu/vaapi/vaapi_wrapper.cc +@@ -344,6 +344,10 @@ void VADisplayState::PreSandboxInitializ base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE); if (drm_file.IsValid()) VADisplayState::Get()->SetDrmFd(drm_file.GetPlatformFile()); @@ -114,7 +114,7 @@ } VADisplayState::VADisplayState() -@@ -362,10 +366,11 @@ bool VADisplayState::InitializeOnce() { +@@ -378,10 +382,11 @@ bool VADisplayState::InitializeOnce() { case gl::kGLImplementationDesktopGL: #if defined(USE_X11) va_display_ = vaGetDisplay(gfx::GetXDisplay()); @@ -129,7 +129,7 @@ break; // Cannot infer platform from GL, try all available displays case gl::kGLImplementationNone: -@@ -398,8 +403,17 @@ bool VADisplayState::InitializeOnce() { +@@ -414,8 +419,17 @@ bool VADisplayState::InitializeOnce() { int major_version, minor_version; VAStatus va_res = vaInitialize(va_display_, &major_version, &minor_version); if (va_res != VA_STATUS_SUCCESS) { ++++++ fix_building_widevinecdm_with_chromium.patch ++++++ --- /var/tmp/diff_new_pack.QIugbg/_old 2019-12-23 22:41:13.781918854 +0100 +++ /var/tmp/diff_new_pack.QIugbg/_new 2019-12-23 22:41:13.781918854 +0100 @@ -1,7 +1,7 @@ -Index: chromium-71.0.3578.80/third_party/widevine/cdm/widevine_cdm_version.h +Index: chromium-79.0.3941.4/third_party/widevine/cdm/widevine_cdm_version.h =================================================================== ---- 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-79.0.3941.4.orig/third_party/widevine/cdm/widevine_cdm_version.h ++++ chromium-79.0.3941.4/third_party/widevine/cdm/widevine_cdm_version.h @@ -11,5 +11,6 @@ // If the Widevine CDM is available define the following: // - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available @@ -9,16 +9,3 @@ +#define WIDEVINE_CDM_VERSION_STRING "unknown" #endif // WIDEVINE_CDM_VERSION_H_ -Index: chromium-71.0.3578.80/chrome/common/chrome_content_client.cc -=================================================================== ---- chromium-71.0.3578.80.orig/chrome/common/chrome_content_client.cc -+++ chromium-71.0.3578.80/chrome/common/chrome_content_client.cc -@@ -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) && !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 ++++++ old-libva.patch ++++++ --- /var/tmp/diff_new_pack.QIugbg/_old 2019-12-23 22:41:13.809918866 +0100 +++ /var/tmp/diff_new_pack.QIugbg/_new 2019-12-23 22:41:13.809918866 +0100 @@ -1,8 +1,8 @@ -Index: chromium-76.0.3809.12/media/gpu/vaapi/vaapi_wrapper.cc +Index: chromium-79.0.3945.36/media/gpu/vaapi/vaapi_wrapper.cc =================================================================== ---- chromium-76.0.3809.12.orig/media/gpu/vaapi/vaapi_wrapper.cc -+++ chromium-76.0.3809.12/media/gpu/vaapi/vaapi_wrapper.cc -@@ -63,6 +63,10 @@ +--- chromium-79.0.3945.36.orig/media/gpu/vaapi/vaapi_wrapper.cc ++++ chromium-79.0.3945.36/media/gpu/vaapi/vaapi_wrapper.cc +@@ -65,6 +65,10 @@ #include "ui/ozone/public/surface_factory_ozone.h" #endif @@ -13,7 +13,7 @@ using media_gpu_vaapi::kModuleVa; using media_gpu_vaapi::kModuleVa_drm; #if defined(USE_X11) -@@ -351,10 +355,6 @@ bool VADisplayState::Initialize() { +@@ -367,10 +371,6 @@ bool VADisplayState::Initialize() { } bool VADisplayState::InitializeOnce() { @@ -24,10 +24,30 @@ switch (gl::GetGLImplementation()) { case gl::kGLImplementationEGLGLES2: va_display_ = vaGetDisplayDRM(drm_fd_.get()); -Index: chromium-76.0.3809.12/media/gpu/vaapi/vaapi_jpeg_decoder.cc +@@ -1502,7 +1502,7 @@ VaapiWrapper::ExportVASurfaceAsNativePix + LOG(ERROR) << "Cannot export an invalid surface"; + return nullptr; + } +- ++#if VA_MAJOR_VERSION >= 2 || (VA_MAJOR_VERSION == 1 && VA_MINOR_VERSION >= 2) + VADRMPRIMESurfaceDescriptor descriptor; + { + base::AutoLock auto_lock(*va_lock_); +@@ -1595,6 +1595,10 @@ VaapiWrapper::ExportVASurfaceAsNativePix + exported_pixmap->pixmap = base::MakeRefCounted<gfx::NativePixmapDmaBuf>( + scoped_va_surface.size(), buffer_format, std::move(handle)); + return exported_pixmap; ++#else ++ LOG(ERROR) << "Exporting a surface with FOURCC has been disabled on old libva"; ++ return nullptr; ++#endif + } + + bool VaapiWrapper::SyncSurface(VASurfaceID va_surface_id) { +Index: chromium-79.0.3945.36/media/gpu/vaapi/vaapi_jpeg_decoder.cc =================================================================== ---- chromium-76.0.3809.12.orig/media/gpu/vaapi/vaapi_jpeg_decoder.cc -+++ chromium-76.0.3809.12/media/gpu/vaapi/vaapi_jpeg_decoder.cc +--- chromium-79.0.3945.36.orig/media/gpu/vaapi/vaapi_jpeg_decoder.cc ++++ chromium-79.0.3945.36/media/gpu/vaapi/vaapi_jpeg_decoder.cc @@ -20,6 +20,10 @@ #include "media/parsers/jpeg_parser.h" #include "ui/gfx/geometry/size.h" @@ -39,13 +59,13 @@ namespace media { namespace { -Index: chromium-76.0.3809.12/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc +Index: chromium-79.0.3945.36/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc =================================================================== ---- chromium-76.0.3809.12.orig/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc -+++ chromium-76.0.3809.12/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc +--- chromium-79.0.3945.36.orig/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc ++++ chromium-79.0.3945.36/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc @@ -44,6 +44,10 @@ - #include "ui/gfx/linux/native_pixmap_dmabuf.h" - #include "ui/gfx/native_pixmap.h" + #include "ui/gfx/geometry/size.h" + #include "ui/gfx/gpu_memory_buffer.h" +#ifndef VA_FOURCC_I420 +#define VA_FOURCC_I420 0x30323449 @@ -54,27 +74,21 @@ namespace media { namespace { -diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc -index 82f2b3c154f6..5edaa92e7380 100644 ---- a/media/gpu/vaapi/vaapi_wrapper.cc -+++ b/media/gpu/vaapi/vaapi_wrapper.cc -@@ -1456,7 +1456,7 @@ VaapiWrapper::ExportVASurfaceAsNativePixmapDmaBuf( - LOG(ERROR) << "Cannot export an invalid surface"; - return nullptr; - } -- -+#if VA_MAJOR_VERSION >= 2 || (VA_MAJOR_VERSION == 1 && VA_MINOR_VERSION >= 2) - VADRMPRIMESurfaceDescriptor descriptor; - { - base::AutoLock auto_lock(*va_lock_); -@@ -1549,6 +1549,10 @@ VaapiWrapper::ExportVASurfaceAsNativePixmapDmaBuf( - exported_pixmap->pixmap = base::MakeRefCounted<gfx::NativePixmapDmaBuf>( - scoped_va_surface.size(), buffer_format, std::move(handle)); - return exported_pixmap; -+#else -+ LOG(ERROR) << "Exporting a surface with FOURCC has been disabled on old libva"; -+ return nullptr; +Index: chromium-79.0.3945.36/media/gpu/chromeos/fourcc.cc +=================================================================== +--- chromium-79.0.3945.36.orig/media/gpu/chromeos/fourcc.cc ++++ chromium-79.0.3945.36/media/gpu/chromeos/fourcc.cc +@@ -15,6 +15,13 @@ + #include <va/va.h> + #endif // BUILDFLAG(USE_VAAPI) + ++#ifndef VA_FOURCC_I420 ++#define VA_FOURCC_I420 0x30323449 +#endif - } ++#ifndef VA_FOURCC_NV21 ++#define VA_FOURCC_NV21 0x3132564E ++#endif ++ + namespace media { - bool VaapiWrapper::SyncSurface(VASurfaceID va_surface_id) { + Fourcc::Fourcc() : value_(Fourcc::INVALID) {}