File chromium-gcc.patch of Package chromium.openSUSE_Leap_42.3_Update

From 2c3b57cafbbb38c13a519c9d2fda8b65691d9564 Mon Sep 17 00:00:00 2001
From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Thu, 7 Feb 2019 22:55:37 +0000
Subject: [PATCH] allocator shim: Swap ALIGN_LINKAGE and SHIM_ALWAYS_EXPORT's
 positions
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This fixes the GCC build. GCC seems to be stricter with the position of the
linkage specification, so just swap the terms to prevent an error that looks
like:

In file included from ../../base/allocator/allocator_shim.cc:333:
../../base/allocator/allocator_shim_override_cpp_symbols.h:39:30: error: expected unqualified-id before string constant
 #define ALIGN_LINKAGE extern "C"
                              ^~~
../../base/allocator/allocator_shim_override_cpp_symbols.h:99:20: note: in expansion of macro ‘ALIGN_LINKAGE’
 SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW(std::size_t size,
                    ^~~~~~~~~~~~~

Bug: 819294
Change-Id: I0aa16ea88cead42e83796a1c86afad8b447ddc50
Reviewed-on: https://chromium-review.googlesource.com/c/1458256
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#630084}
---
 .../allocator_shim_override_cpp_symbols.h     | 20 +++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

Index: chromium-73.0.3683.75/base/allocator/allocator_shim_override_cpp_symbols.h
===================================================================
--- chromium-73.0.3683.75.orig/base/allocator/allocator_shim_override_cpp_symbols.h
+++ chromium-73.0.3683.75/base/allocator/allocator_shim_override_cpp_symbols.h
@@ -96,57 +96,57 @@ SHIM_ALWAYS_EXPORT void operator delete[
   ShimCppDelete(p);
 }
 
-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW(std::size_t size,
+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW(std::size_t size,
                                                  ALIGN_VAL_T alignment) {
   return ShimCppAlignedNew(size, static_cast<size_t>(alignment));
 }
 
-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW_NOTHROW(
+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW_NOTHROW(
     std::size_t size,
     ALIGN_VAL_T alignment,
     const std::nothrow_t&) __THROW {
   return ShimCppAlignedNew(size, static_cast<size_t>(alignment));
 }
 
-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL(void* p, ALIGN_VAL_T) __THROW {
+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL(void* p, ALIGN_VAL_T) __THROW {
   ShimCppDelete(p);
 }
 
-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL_SIZED(void* p,
+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL_SIZED(void* p,
                                                       std::size_t size,
                                                       ALIGN_VAL_T) __THROW {
   ShimCppDelete(p);
 }
 
-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void
+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void
 ALIGN_DEL_NOTHROW(void* p, ALIGN_VAL_T, const std::nothrow_t&) __THROW {
   ShimCppDelete(p);
 }
 
-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW_ARR(std::size_t size,
+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW_ARR(std::size_t size,
                                                      ALIGN_VAL_T alignment) {
   return ShimCppAlignedNew(size, static_cast<size_t>(alignment));
 }
 
-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW_ARR_NOTHROW(
+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW_ARR_NOTHROW(
     std::size_t size,
     ALIGN_VAL_T alignment,
     const std::nothrow_t&) __THROW {
   return ShimCppAlignedNew(size, static_cast<size_t>(alignment));
 }
 
-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL_ARR(void* p,
+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL_ARR(void* p,
                                                     ALIGN_VAL_T) __THROW {
   ShimCppDelete(p);
 }
 
-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL_ARR_SIZED(void* p,
+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL_ARR_SIZED(void* p,
                                                           std::size_t size,
                                                           ALIGN_VAL_T) __THROW {
   ShimCppDelete(p);
 }
 
-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void
+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void
 ALIGN_DEL_ARR_NOTHROW(void* p, ALIGN_VAL_T, const std::nothrow_t&) __THROW {
   ShimCppDelete(p);
 }
Index: chromium-73.0.3683.75/media/learning/common/labelled_example.cc
===================================================================
--- chromium-73.0.3683.75.orig/media/learning/common/labelled_example.cc
+++ chromium-73.0.3683.75/media/learning/common/labelled_example.cc
@@ -59,7 +59,8 @@ bool LabelledExample::operator<(const La
 LabelledExample& LabelledExample::operator=(const LabelledExample& rhs) =
     default;
 
-LabelledExample& LabelledExample::operator=(LabelledExample&& rhs) = default;
+LabelledExample& LabelledExample::operator=(LabelledExample&& rhs) noexcept =
+    default;
 
 TrainingData::TrainingData() = default;
 
Index: chromium-73.0.3683.75/media/learning/common/labelled_example.h
===================================================================
--- chromium-73.0.3683.75.orig/media/learning/common/labelled_example.h
+++ chromium-73.0.3683.75/media/learning/common/labelled_example.h
@@ -40,7 +40,7 @@ struct COMPONENT_EXPORT(LEARNING_COMMON)
   bool operator<(const LabelledExample& rhs) const;
 
   LabelledExample& operator=(const LabelledExample& rhs);
-  LabelledExample& operator=(LabelledExample&& rhs);
+  LabelledExample& operator=(LabelledExample&& rhs) noexcept;
 
   // Observed feature values.
   // Note that to interpret these values, you probably need to have the
Index: chromium-73.0.3683.75/media/learning/common/value.cc
===================================================================
--- chromium-73.0.3683.75.orig/media/learning/common/value.cc
+++ chromium-73.0.3683.75/media/learning/common/value.cc
@@ -23,6 +23,12 @@ Value::Value(const std::string& x) : val
 
 Value::Value(const Value& other) : value_(other.value_) {}
 
+Value::Value(Value&& rhs) noexcept = default;
+
+Value& Value::operator=(const Value& rhs) = default;
+
+Value& Value::operator=(Value&& rhs) noexcept = default;
+
 bool Value::operator==(const Value& rhs) const {
   return value_ == rhs.value_;
 }
Index: chromium-73.0.3683.75/media/learning/common/value.h
===================================================================
--- chromium-73.0.3683.75.orig/media/learning/common/value.h
+++ chromium-73.0.3683.75/media/learning/common/value.h
@@ -38,6 +38,10 @@ class COMPONENT_EXPORT(LEARNING_COMMON)
   explicit Value(const std::string& x);
 
   Value(const Value& other);
+  Value(Value&&) noexcept;
+
+  Value& operator=(const Value&);
+  Value& operator=(Value&&) noexcept;
 
   bool operator==(const Value& rhs) const;
   bool operator!=(const Value& rhs) const;
Index: chromium-73.0.3683.75/ui/gfx/color_utils.cc
===================================================================
--- chromium-73.0.3683.75.orig/ui/gfx/color_utils.cc
+++ chromium-73.0.3683.75/ui/gfx/color_utils.cc
@@ -431,7 +431,7 @@ SkColor SetDarkestColorForTesting(SkColo
   // GetContrastRatio(kWhiteLuminance, g_luminance_midpoint).  The formula below
   // can be verified by plugging it into how GetContrastRatio() operates.
   g_luminance_midpoint =
-      std::sqrtf((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f;
+      std::sqrt((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f;
 
   return previous_darkest_color;
 }
Index: chromium-73.0.3683.75/net/third_party/quic/platform/impl/quic_flags_impl.cc
===================================================================
--- chromium-73.0.3683.75.orig/net/third_party/quic/platform/impl/quic_flags_impl.cc
+++ chromium-73.0.3683.75/net/third_party/quic/platform/impl/quic_flags_impl.cc
@@ -5,6 +5,7 @@
 #include "net/third_party/quic/platform/impl/quic_flags_impl.h"
 
 #include <algorithm>
+#include <initializer_list>
 #include <iostream>
 #include <set>
 
@@ -153,9 +154,9 @@ std::string QuicFlagRegistry::GetHelp()
 template <>
 bool TypedQuicFlagHelper<bool>::SetFlag(const std::string& s) const {
   static const base::NoDestructor<std::set<std::string>> kTrueValues(
-      {"", "1", "t", "true", "y", "yes"});
+      std::initializer_list<std::string>({"", "1", "t", "true", "y", "yes"}));
   static const base::NoDestructor<std::set<std::string>> kFalseValues(
-      {"0", "f", "false", "n", "no"});
+      std::initializer_list<std::string>({"0", "f", "false", "n", "no"}));
   if (kTrueValues->find(base::ToLowerASCII(s)) != kTrueValues->end()) {
     *flag_ = true;
     return true;
Index: chromium-73.0.3683.75/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
===================================================================
--- chromium-73.0.3683.75.orig/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
+++ chromium-73.0.3683.75/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
@@ -1769,12 +1769,12 @@ void BaseRenderingContext2D::putImageDat
       CanvasColorParams(ColorParams().ColorSpace(), PixelFormat(), kNonOpaque);
   if (data_color_params.NeedsColorConversion(context_color_params) ||
       PixelFormat() == kF16CanvasPixelFormat) {
-    base::CheckedNumeric<size_t> data_length = data->Size().Area();
-    data_length *= context_color_params.BytesPerPixel();
-    if (!data_length.IsValid())
+    size_t data_length;
+    if (!base::CheckMul(data->Size().Area(),
+                        context_color_params.BytesPerPixel())
+             .AssignIfValid(&data_length))
       return;
-    std::unique_ptr<uint8_t[]> converted_pixels(
-        new uint8_t[data_length.ValueOrDie()]);
+    std::unique_ptr<uint8_t[]> converted_pixels(new uint8_t[data_length]);
     if (data->ImageDataInCanvasColorSettings(
             ColorParams().ColorSpace(), PixelFormat(), converted_pixels.get(),
             kRGBAColorType)) {
Index: chromium-73.0.3683.75/chrome/browser/media/router/providers/cast/cast_activity_manager.cc
===================================================================
--- chromium-73.0.3683.75.orig/chrome/browser/media/router/providers/cast/cast_activity_manager.cc
+++ chromium-73.0.3683.75/chrome/browser/media/router/providers/cast/cast_activity_manager.cc
@@ -803,7 +803,7 @@ CastActivityManager::DoLaunchSessionPara
       callback(std::move(callback)) {}
 
 CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams(
-    DoLaunchSessionParams&& other) noexcept = default;
+    DoLaunchSessionParams&& other) = default;
 
 CastActivityManager::DoLaunchSessionParams::~DoLaunchSessionParams() = default;
 
Index: chromium-73.0.3683.75/chrome/browser/media/router/providers/cast/cast_activity_manager.h
===================================================================
--- chromium-73.0.3683.75.orig/chrome/browser/media/router/providers/cast/cast_activity_manager.h
+++ chromium-73.0.3683.75/chrome/browser/media/router/providers/cast/cast_activity_manager.h
@@ -295,7 +295,7 @@ class CastActivityManager : public cast_
         const url::Origin& origin,
         int tab_id,
         mojom::MediaRouteProvider::CreateRouteCallback callback);
-    DoLaunchSessionParams(DoLaunchSessionParams&& other) noexcept;
+    DoLaunchSessionParams(DoLaunchSessionParams&& other);
     ~DoLaunchSessionParams();
     DoLaunchSessionParams& operator=(DoLaunchSessionParams&&) = delete;
 
Index: chromium-73.0.3683.75/chrome/browser/ui/views/extensions/extension_popup.cc
===================================================================
--- chromium-73.0.3683.75.orig/chrome/browser/ui/views/extensions/extension_popup.cc
+++ chromium-73.0.3683.75/chrome/browser/ui/views/extensions/extension_popup.cc
@@ -8,7 +8,6 @@
 #include "chrome/browser/devtools/devtools_window.h"
 #include "chrome/browser/extensions/extension_view_host.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "content/public/browser/devtools_agent_host.h"
 #include "content/public/browser/notification_details.h"
 #include "content/public/browser/notification_source.h"
Index: chromium-73.0.3683.75/chrome/browser/ui/views/extensions/extension_popup.h
===================================================================
--- chromium-73.0.3683.75.orig/chrome/browser/ui/views/extensions/extension_popup.h
+++ chromium-73.0.3683.75/chrome/browser/ui/views/extensions/extension_popup.h
@@ -9,6 +9,7 @@
 #include "base/compiler_specific.h"
 #include "base/macros.h"
 #include "base/scoped_observer.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
 #include "chrome/browser/ui/views/extensions/extension_view_views.h"
 #include "content/public/browser/devtools_agent_host_observer.h"
Index: chromium-73.0.3683.75/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h
===================================================================
--- chromium-73.0.3683.75.orig/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h
+++ chromium-73.0.3683.75/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h
@@ -8,6 +8,7 @@
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
 #include "base/scoped_observer.h"
+#include "chrome/browser/ui/toolbar/toolbar_actions_bar.h"
 #include "chrome/browser/ui/toolbar/toolbar_actions_bar_observer.h"
 #include "chrome/browser/ui/views/toolbar/app_menu_observer.h"
 #include "ui/views/controls/scroll_view.h"
@@ -15,7 +16,6 @@
 class AppMenu;
 class Browser;
 class BrowserActionsContainer;
-class ToolbarActionsBar;
 
 namespace views {
 class MenuItemView;
Index: chromium-73.0.3683.75/content/public/browser/desktop_media_id.h
===================================================================
--- chromium-73.0.3683.75.orig/content/public/browser/desktop_media_id.h
+++ chromium-73.0.3683.75/content/public/browser/desktop_media_id.h
@@ -41,16 +41,16 @@ struct CONTENT_EXPORT DesktopMediaID {
   static aura::Window* GetAuraWindowById(const DesktopMediaID& id);
 #endif  // defined(USE_AURA)
 
-  constexpr DesktopMediaID() = default;
+  DesktopMediaID() = default;
 
-  constexpr DesktopMediaID(Type type, Id id) : type(type), id(id) {}
+  DesktopMediaID(Type type, Id id) : type(type), id(id) {}
 
-  constexpr DesktopMediaID(Type type,
+  DesktopMediaID(Type type,
                            Id id,
                            WebContentsMediaCaptureId web_contents_id)
       : type(type), id(id), web_contents_id(web_contents_id) {}
 
-  constexpr DesktopMediaID(Type type, Id id, bool audio_share)
+  DesktopMediaID(Type type, Id id, bool audio_share)
       : type(type), id(id), audio_share(audio_share) {}
 
   // Operators so that DesktopMediaID can be used with STL containers.
Index: chromium-73.0.3683.75/extensions/browser/api/declarative_webrequest/webrequest_action.cc
===================================================================
--- chromium-73.0.3683.75.orig/extensions/browser/api/declarative_webrequest/webrequest_action.cc
+++ chromium-73.0.3683.75/extensions/browser/api/declarative_webrequest/webrequest_action.cc
@@ -578,7 +578,7 @@ base::Optional<EventResponseDelta> WebRe
   CHECK(request_data.stage & stages());
   EventResponseDelta result(extension_id, extension_install_time);
   result.cancel = true;
-  return result;
+  return base::make_optional(std::move(result));
 }
 
 //
@@ -613,7 +613,7 @@ base::Optional<EventResponseDelta> WebRe
     return base::nullopt;
   EventResponseDelta result(extension_id, extension_install_time);
   result.new_url = redirect_url_;
-  return result;
+  return base::make_optional(std::move(result));
 }
 
 //
@@ -642,7 +642,7 @@ WebRequestRedirectToTransparentImageActi
   CHECK(request_data.stage & stages());
   EventResponseDelta result(extension_id, extension_install_time);
   result.new_url = GURL(kTransparentImageUrl);
-  return result;
+  return base::make_optional(std::move(result));
 }
 
 //
@@ -671,7 +671,7 @@ WebRequestRedirectToEmptyDocumentAction:
   CHECK(request_data.stage & stages());
   EventResponseDelta result(extension_id, extension_install_time);
   result.new_url = GURL(kEmptyDocumentUrl);
-  return result;
+  return base::make_optional(std::move(result));
 }
 
 //
@@ -773,7 +773,7 @@ base::Optional<EventResponseDelta> WebRe
 
   EventResponseDelta result(extension_id, extension_install_time);
   result.new_url = GURL(new_url);
-  return result;
+  return base::make_optional(std::move(result));
 }
 
 //
@@ -813,7 +813,7 @@ WebRequestSetRequestHeaderAction::Create
   CHECK(request_data.stage & stages());
   EventResponseDelta result(extension_id, extension_install_time);
   result.modified_request_headers.SetHeader(name_, value_);
-  return result;
+  return base::make_optional(std::move(result));
 }
 
 //
@@ -851,7 +851,7 @@ WebRequestRemoveRequestHeaderAction::Cre
   CHECK(request_data.stage & stages());
   EventResponseDelta result(extension_id, extension_install_time);
   result.deleted_request_headers.push_back(name_);
-  return result;
+  return base::make_optional(std::move(result));
 }
 
 //
@@ -900,7 +900,7 @@ WebRequestAddResponseHeaderAction::Creat
 
   EventResponseDelta result(extension_id, extension_install_time);
   result.added_response_headers.push_back(make_pair(name_, value_));
-  return result;
+  return base::make_optional(std::move(result));
 }
 
 //
@@ -954,7 +954,7 @@ WebRequestRemoveResponseHeaderAction::Cr
       continue;
     result.deleted_response_headers.push_back(make_pair(name_, current_value));
   }
-  return result;
+  return base::make_optional(std::move(result));
 }
 
 //
@@ -1039,7 +1039,7 @@ base::Optional<EventResponseDelta> WebRe
   EventResponseDelta result(extension_id, extension_install_time);
   result.request_cookie_modifications.push_back(
       request_cookie_modification_.Clone());
-  return result;
+  return base::make_optional(std::move(result));
 }
 
 //
@@ -1087,7 +1087,7 @@ base::Optional<EventResponseDelta> WebRe
   EventResponseDelta result(extension_id, extension_install_time);
   result.response_cookie_modifications.push_back(
       response_cookie_modification_.Clone());
-  return result;
+  return base::make_optional(std::move(result));
 }
 
 //
@@ -1127,7 +1127,7 @@ WebRequestSendMessageToExtensionAction::
   CHECK(request_data.stage & stages());
   EventResponseDelta result(extension_id, extension_install_time);
   result.messages_to_extension.insert(message_);
-  return result;
+  return base::make_optional(std::move(result));
 }
 
 }  // namespace extensions
openSUSE Build Service is sponsored by