New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Starred by 6 users

Issue metadata

Status: Untriaged
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocked on:
issue 843143
issue 882347


Show other hotlists

Hotlists containing this issue:
Chromium-Packagers


Sign in to add a comment
link

Issue 819294: [meta] GCC build issues

Reported by jani.hau...@lge.com, Mar 6 2018 Project Member

Issue description

This is an umbrella bug for GCC build issues (Clang vs. GCC in C++14/C++17)
 

Comment 1 by dtapu...@chromium.org, Mar 6 2018

Components: Build

Comment 2 by bugdroid1@chromium.org, Mar 6 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7316014f3fa309982ebfede4ac73d251ec16739e

commit 7316014f3fa309982ebfede4ac73d251ec16739e
Author: Jani Hautakangas <jani.hautakangas@lge.com>
Date: Tue Mar 06 21:53:01 2018

GCC build fix: cannot call member function without object

This CL fixes issue with anonymous function calling
a member function without object in GCC version < 6.4.

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61636

Bug: 819294

Change-Id: I29a9e14a5160a3c9c658dc76f7f167c74e1c2b41
Reviewed-on: https://chromium-review.googlesource.com/945995
Commit-Queue: Jani Hautakangas <jani.hautakangas@lge.com>
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541208}
[modify] https://crrev.com/7316014f3fa309982ebfede4ac73d251ec16739e/ui/accessibility/ax_event_generator.cc

Comment 3 by bugdroid1@chromium.org, Mar 7 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6a95de244dbba0c596541fa88597f34e2160d648

commit 6a95de244dbba0c596541fa88597f34e2160d648
Author: Jani Hautakangas <jani.hautakangas@lge.com>
Date: Wed Mar 07 12:08:09 2018

GCC build fix: constexpr static data member must be initialized

static constexpr member data is incorrectly initialized as
static const data.

Bug: 819294

Change-Id: I96f06032e00b6bd4d2b5df0ed9b466028453912b
Reviewed-on: https://chromium-review.googlesource.com/945997
Reviewed-by: Nate Chapin <japhet@chromium.org>
Reviewed-by: Taiju Tsuiki <tzik@chromium.org>
Commit-Queue: Jani Hautakangas <jani.hautakangas@lge.com>
Cr-Commit-Position: refs/heads/master@{#541412}
[modify] https://crrev.com/6a95de244dbba0c596541fa88597f34e2160d648/third_party/WebKit/Source/core/loader/IdlenessDetector.cpp

Comment 4 by bugdroid1@chromium.org, Mar 7 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b84682f31dc99b9c90f5a04947075815697c68d9

commit b84682f31dc99b9c90f5a04947075815697c68d9
Author: Jose Dapena Paz <jose.dapena@lge.com>
Date: Wed Mar 07 20:07:48 2018

GCC: do not initialize NEON int32x4_t with braces initializer

GCC does not support int32x4_t loading using braces wrapping 4 ints.
Instead we should use the NEON intrinsic to load from an array of
ints.

Bug: 819294
Change-Id: I13b877405273e4ebcc944d50c155ee29ff31cc99
Reviewed-on: https://chromium-review.googlesource.com/951773
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541544}
[modify] https://crrev.com/b84682f31dc99b9c90f5a04947075815697c68d9/skia/ext/convolver_neon.cc

Comment 5 by bugdroid1@chromium.org, Mar 8 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4f2b52281ce1649ea8347489443965ad33262ecc

commit 4f2b52281ce1649ea8347489443965ad33262ecc
Author: Jose Dapena Paz <jose.dapena@lge.com>
Date: Thu Mar 08 17:46:02 2018

GCC: PlaybackImageProvider::Settings: explicitely set copy constructor.

GCC fails to resolve the default copy constructor of the flat_map, so
we add an explicit reference to use default copy constructor.

Bug: 819294

Change-Id: Ie2d69bdbe60742e9253251c965cbf0a936037871
Reviewed-on: https://chromium-review.googlesource.com/944403
Reviewed-by: David Reveman <reveman@chromium.org>
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Cr-Commit-Position: refs/heads/master@{#541827}
[modify] https://crrev.com/4f2b52281ce1649ea8347489443965ad33262ecc/cc/raster/playback_image_provider.cc
[modify] https://crrev.com/4f2b52281ce1649ea8347489443965ad33262ecc/cc/raster/playback_image_provider.h
[modify] https://crrev.com/4f2b52281ce1649ea8347489443965ad33262ecc/cc/raster/playback_image_provider_unittest.cc

Comment 6 by bugdroid1@chromium.org, Mar 8 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/19ddca775a75f99da4d4df3830a2ddea38409c2f

commit 19ddca775a75f99da4d4df3830a2ddea38409c2f
Author: Jose Dapena Paz <jose.dapena@lge.com>
Date: Thu Mar 08 19:12:03 2018

GCC: Remove unneded tailing backslash in comment

A comment in video_decode_accelerator.h had an unneeded backslash.
Remove it.

Bug: 819294

Change-Id: I89065637311795b420474d2722330c3fe687d99a
Reviewed-on: https://chromium-review.googlesource.com/944410
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Reviewed-by: Dan Sanders <sandersd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541856}
[modify] https://crrev.com/19ddca775a75f99da4d4df3830a2ddea38409c2f/media/video/video_encode_accelerator.h

Comment 7 by bugdroid1@chromium.org, Mar 9 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8a96b1e8af0b3944a2576ef0c1de1dc1d9b652e3

commit 8a96b1e8af0b3944a2576ef0c1de1dc1d9b652e3
Author: Jose Dapena Paz <jose.dapena@lge.com>
Date: Fri Mar 09 09:40:10 2018

GCC: do not declare NetworkService to be friend of itself.

Bug: 819294

Change-Id: I8b7c0cc30161332e396a0a4ac142188cb5cf1ad1
Reviewed-on: https://chromium-review.googlesource.com/944411
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Cr-Commit-Position: refs/heads/master@{#542072}
[modify] https://crrev.com/8a96b1e8af0b3944a2576ef0c1de1dc1d9b652e3/services/network/network_service.h

Comment 8 by bugdroid1@chromium.org, Mar 9 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d103aafd9e94060aba30f87d58cfb041d815061c

commit d103aafd9e94060aba30f87d58cfb041d815061c
Author: Jose Dapena Paz <jose.dapena@lge.com>
Date: Fri Mar 09 18:21:58 2018

GCC: disable -Wcomments.

-Wcomment gives too many false positives in the case a
backslash ended comment line is followed by a new line of
comments:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61638

Bug: 819294

Change-Id: I3c809aa7ce9f232775b58d153d45d81ad27880e4
Reviewed-on: https://chromium-review.googlesource.com/944409
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Cr-Commit-Position: refs/heads/master@{#542155}
[modify] https://crrev.com/d103aafd9e94060aba30f87d58cfb041d815061c/build/config/compiler/BUILD.gn

Comment 9 by bugdroid1@chromium.org, Apr 19 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f83d193ebe48911e5c178d3e0c55e619c68fac27

commit f83d193ebe48911e5c178d3e0c55e619c68fac27
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Thu Apr 19 14:00:58 2018

[Password Manager] Explicitly create a base::flat_set with an initializer list

This fixes the GCC build after 4b06d0ab ("[Password Manager] Autofill forms
with prefilled values matching list of known placeholders").

Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84849, creating a
base::NoDestructor with an initializer list causes GCC to fail to resolve
the right constructor and forward the initializer list to base::flat_set:

    ../../components/autofill/content/renderer/password_autofill_agent.cc: In function ‘bool autofill::{anonymous}::PossiblePrefilledUsernameValue(const string&)’:
    ../../components/autofill/content/renderer/password_autofill_agent.cc:132:59: error: call of overloaded ‘NoDestructor(<brace-enclosed initializer list>)’ is ambiguous
                                     "邮箱/手机/展位号"});
                                                               ^
    In file included from ../../components/autofill/content/renderer/password_autofill_agent.cc:21:0:
    ../../base/no_destructor.h:63:3: note: candidate: base::NoDestructor<T>::NoDestructor(const base::NoDestructor<T>&) [with T = base::internal::flat_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, base::internal::GetKeyFromValueIdentity<std::__cxx11::basic_string<char> >, std::less<void> >] <deleted>
       NoDestructor(const NoDestructor&) = delete;
       ^~~~~~~~~~~~
    ../../base/no_destructor.h:61:12: note: candidate: base::NoDestructor<T>::NoDestructor(T&&) [with T = base::internal::flat_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, base::internal::GetKeyFromValueIdentity<std::__cxx11::basic_string<char> >, std::less<void> >]
       explicit NoDestructor(T&& x) { new (storage_) T(std::move(x)); }
                ^~~~~~~~~~~~
    ../../base/no_destructor.h:60:12: note: candidate: base::NoDestructor<T>::NoDestructor(const T&) [with T = base::internal::flat_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, base::internal::GetKeyFromValueIdentity<std::__cxx11::basic_string<char> >, std::less<void> >]
       explicit NoDestructor(const T& x) { new (storage_) T(x); }
                ^~~~~~~~~~~~

Do something similar to https://chromium-review.googlesource.com/944405 and
explicitly create a base::flat_set when constructing a base::NoDestructor.

Bug: 819294
Change-Id: I20e3c043fc5663fe02cdcaf1061014c22998f973
Reviewed-on: https://chromium-review.googlesource.com/1019322
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Reviewed-by: Vaclav Brozek <vabr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#552002}
[modify] https://crrev.com/f83d193ebe48911e5c178d3e0c55e619c68fac27/components/autofill/content/renderer/password_autofill_agent.cc

Comment 10 by bugdroid1@chromium.org, May 4 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ec4cdda75f7092f49972babbce348e168d4e12b1

commit ec4cdda75f7092f49972babbce348e168d4e12b1
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Fri May 04 12:49:58 2018

IWYU: Include <limits.h> for CHAR_BIT

This fixes the build with libstdc++ after a4c197977f ("Shatter
partition_alloc.h into smaller files").

    In file included from ../../base/allocator/partition_allocator/partition_bucket.h:11:0,
                     from ../../base/allocator/partition_allocator/partition_bucket.cc:5:
    ../../base/allocator/partition_allocator/partition_alloc_constants.h:140:53: error: ‘CHAR_BIT’ was not declared in this scope
     static const size_t kBitsPerSizeT = sizeof(void*) * CHAR_BIT;
                                                         ^~~~~~~~
    ../../base/allocator/partition_allocator/partition_alloc_constants.h:140:53: note: suggested alternative: ‘WCHAR_MIN’
     static const size_t kBitsPerSizeT = sizeof(void*) * CHAR_BIT;
                                                         ^~~~~~~~
                                                         WCHAR_MIN

Bug: 819294
Change-Id: Ie61cd7a1b55adf77e1f584bd5447ac11b6980b02
Reviewed-on: https://chromium-review.googlesource.com/1043748
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#556034}
[modify] https://crrev.com/ec4cdda75f7092f49972babbce348e168d4e12b1/base/allocator/partition_allocator/partition_alloc_constants.h

Comment 11 by bugdroid1@chromium.org, May 4 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1131840b370f71d4c60d2427254381505dd06571

commit 1131840b370f71d4c60d2427254381505dd06571
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Fri May 04 20:15:13 2018

flat_map: Readd constructors and assignment operator overloads.

https://chromium-review.googlesource.com/c/chromium/src/+/705955 ("base::flat_map
was missing defaults for duplication handling") removed them in favor of
inheriting them from flat_tree.

This can cause problems with GCC due to
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84782, and the build has been
failing with it since
https://chromium-review.googlesource.com/1000393 ("Mojo C++ Bindings:
unordered_map => flat_map") with a message like this:

    gen/mojo/public/interfaces/bindings/tests/test_unions.mojom.cc: In member function ‘void mojo::test::ObjectUnion::set_f_map_int8(const base::flat_map<std::__cxx11::basic_string<char>, signed char>&)’:
    gen/mojo/public/interfaces/bindings/tests/test_unions.mojom.cc:455:30: error: use of deleted function ‘base::flat_map<std::__cxx11::basic_string<char>, signed char>::flat_map(const base::flat_map<std::__cxx11::basic_string<char>, signed char>&)’
             std::move(f_map_int8));
                                  ^
    In file included from ../../mojo/public/cpp/bindings/clone_traits.h:11:0,
                     from gen/mojo/public/interfaces/bindings/tests/test_unions.mojom.h:22,
                     from gen/mojo/public/interfaces/bindings/tests/test_unions.mojom.cc:15:
    ../../base/containers/flat_map.h:152:7: note: ‘base::flat_map<std::__cxx11::basic_string<char>, signed char>::flat_map(const base::flat_map<std::__cxx11::basic_string<char>, signed char>&)’ is implicitly declared as deleted because ‘base::flat_map<std::__cxx11::basic_string<char>, signed char>’ declares a move constructor or move assignment operator
     class flat_map : public ::base::internal::flat_tree<
           ^~~~~~~~

Work around it by replacing the inheritance statements with actual
constructors and operator=() overloads again. This change does not
completely revert https://chromium-review.googlesource.com/1000393, as the
constructors maintain their new signature (so that they look like
flat_tree's).

Bug: 819294, 837221
Change-Id: I8f37a2c8aa269b3c1025cdc009518a7709e95947
Reviewed-on: https://chromium-review.googlesource.com/1038103
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: kylechar <kylechar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#556168}
[modify] https://crrev.com/1131840b370f71d4c60d2427254381505dd06571/base/containers/flat_map.h

Comment 12 by bugdroid1@chromium.org, May 4 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d47586ce757ac9d701409acb560274cef84c78ad

commit d47586ce757ac9d701409acb560274cef84c78ad
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Fri May 04 21:12:18 2018

IWYU: Include <algorithm> in secure_display_link_tracker.h.

Recent changes that removed some includes such as a92b7636e ("[MessageLoop]
Fix random IWYU preventing message_loop.h cleanup") and
629ba73c96 ("[MessageLoop] Fix message_loop.h includes") have broken the
build with libstdc++, as secure_display_link_tracker.h uses std::find() but
relied on it being included implicitly by other headers:

    In file included from ../../base/memory/weak_ptr.h:77:0,
                     from ../../content/renderer/media/stream/media_stream_video_source.h:13,
                     from ../../content/renderer/media/stream/media_stream_video_source.cc:5:
    ../../content/renderer/media/stream/secure_display_link_tracker.h: In instantiation of ‘void SecureDisplayLinkTracker<T>::Add(T*, bool) [with T = content::MediaStreamVideoTrack]’:
    ../../content/renderer/media/stream/media_stream_video_source.cc:55:34:   required from here
    ../../content/renderer/media/stream/secure_display_link_tracker.h:32:19: error: no matching function for call to ‘find(std::vector<content::MediaStreamVideoTrack*>::iterator, std::vector<content::MediaStreamVideoTrack*>::iterator, content::MediaStreamVideoTrack*&)’
       DCHECK(std::find(insecure_links_.begin(), insecure_links_.end(), link) ==
              ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ../../base/logging.h:888:54: note: in definition of macro ‘DCHECK’
     #define DCHECK(condition) EAT_STREAM_PARAMETERS << !(condition)
                                                          ^~~~~~~~~

Bug: 819294
Change-Id: I1e747d7e15a7be74460012fbe5f207368744114b
Reviewed-on: https://chromium-review.googlesource.com/1043749
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Chrome Cunningham <chcunningham@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#556190}
[modify] https://crrev.com/d47586ce757ac9d701409acb560274cef84c78ad/content/renderer/media/stream/secure_display_link_tracker.h

Comment 13 by bugdroid1@chromium.org, May 7 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f7c0f5fc1c619308139b2e4c099bc139ad45f7a2

commit f7c0f5fc1c619308139b2e4c099bc139ad45f7a2
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Mon May 07 18:44:22 2018

media router: Fix GCC build after 72d48c21c

Commit 72d48c21c ("Add MRUIBase and MRViewsUI") added code that follows the
following pattern:

    base::Optional<T> Foo() {
      T t;
      return t;
    }

clang seems to automatically convert |t| to an rvalue reference, but GCC
fails with:

    ../../chrome/browser/ui/media_router/media_router_ui_base.cc: In member function ‘base::Optional<media_router::RouteParameters> media_router::MediaRouterUIBase::GetRouteParameters(const Id&, media_router::MediaCastMode)’:
    ../../chrome/browser/ui/media_router/media_router_ui_base.cc:325:10: error: could not convert ‘params’ from ‘media_router::RouteParameters’ to ‘base::Optional<media_router::RouteParameters>’
       return params;
              ^~~~~~

    ../../chrome/browser/ui/webui/media_router/media_router_ui.cc: In member function ‘base::Optional<media_router::RouteParameters> media_router::MediaRouterUI::GetLocalFileRouteParameters(const Id&, const GURL&, content::WebContents*)’:
    ../../chrome/browser/ui/webui/media_router/media_router_ui.cc:421:10: error: could not convert ‘params’ from ‘media_router::RouteParameters’ to ‘base::Optional<media_router::RouteParameters>’
       return params;
              ^~~~~~

Make the code build everywhere by explicitly using std::move() on the return
value.

Bug: 819294
Change-Id: I3c9d76d1ac595be90417603dcde9ff43c147fadd
Reviewed-on: https://chromium-review.googlesource.com/1043870
Reviewed-by: Derek Cheng <imcheng@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#556509}
[modify] https://crrev.com/f7c0f5fc1c619308139b2e4c099bc139ad45f7a2/chrome/browser/ui/media_router/media_router_ui_base.cc
[modify] https://crrev.com/f7c0f5fc1c619308139b2e4c099bc139ad45f7a2/chrome/browser/ui/webui/media_router/media_router_ui.cc

Comment 14 by raphael....@intel.com, May 15 2018

Blockedon: 843143

Comment 15 by bugdroid1@chromium.org, May 15 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dcf44780a37e609b1d109f0db8c10840230f7446

commit dcf44780a37e609b1d109f0db8c10840230f7446
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Tue May 15 16:48:16 2018

sandbox: Explicitly define BrokerSimpleMessage::EntryType's integer type

This fixes the build with GCC after a722110a ("Fix non-signal-safe calls in
BrokerClient"). GCC seems to use a different underlying integer type than
clang and fails with the following message:

    In file included from ../../sandbox/linux/syscall_broker/broker_simple_message.cc:5:
    ../../sandbox/linux/syscall_broker/broker_simple_message.h:80:33: error: enumerator value ‘3183328640’ is outside the range of underlying type ‘int’
       enum class EntryType { DATA = 0xBDBDBD80, INT = 0xBDBDBD81 };
                                     ^~~~~~~~~~
    ../../sandbox/linux/syscall_broker/broker_simple_message.h:80:51: error: enumerator value ‘3183328641’ is outside the range of underlying type ‘int’
       enum class EntryType { DATA = 0xBDBDBD80, INT = 0xBDBDBD81 };
                                                       ^~~~~~~~~~

Bug: 255063, 819294
Change-Id: I21dc7471ea6b5a28a54f7ecfad32f84d62ed16a7
Reviewed-on: https://chromium-review.googlesource.com/1059778
Reviewed-by: Greg Kerr <kerrnel@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#558751}
[modify] https://crrev.com/dcf44780a37e609b1d109f0db8c10840230f7446/sandbox/linux/syscall_broker/broker_simple_message.h

Comment 16 by bugdroid1@chromium.org, May 16 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b65488bce5e804e97acb64ccb696195699a26b8a

commit b65488bce5e804e97acb64ccb696195699a26b8a
Author: Jüri Valdmann <juri.valdmann@qt.io>
Date: Wed May 16 02:27:40 2018

Fix operator bool in AssociatedInterfacePtrInfo and AssociatedInterfaceRequest

Current version does not compile with GCC 8.1 and for good reason: there's no
operator bool defined in ScopedInterfaceEndpointHandle.

Bug: 795173, 819294
Change-Id: Ia0677af3160fb24c376c66863956ee6d171d7caf
Reviewed-on: https://chromium-review.googlesource.com/1059153
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558931}
[modify] https://crrev.com/b65488bce5e804e97acb64ccb696195699a26b8a/mojo/public/cpp/bindings/associated_interface_ptr_info.h
[modify] https://crrev.com/b65488bce5e804e97acb64ccb696195699a26b8a/mojo/public/cpp/bindings/associated_interface_request.h

Comment 17 by bugdroid1@chromium.org, May 18 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f841ac2afe7ac227b760d0300f2abfbe4c278bae

commit f841ac2afe7ac227b760d0300f2abfbe4c278bae
Author: Jüri Valdmann <juri.valdmann@qt.io>
Date: Fri May 18 22:36:28 2018

Mark base::*Callback, GURL and mojo::ScopeHandleBase as noexcept movable

These types are used by

  search_provider_logos::LogoMetadata
  search_provider_logos::LogoCallbacks
  viz::InterprocessFramePool::PooledBuffer

which are already using explicitly-defaulted ("= default") noexcept move
constructors and assignment operators. This is illegal however, as C++ requires
the exception specification of an explicitly-defaulted function to be compatible
with the exception specification of the implicit declaration (see
dcl.fct.def.default in C++11 standard). GCC considers this an error and Clang
too, but only if compiling without -fno-exceptions.

Bug: 843143, 819294
Change-Id: I24fb8660b3e8c7748cf6b626292ebd6ddd971643
Reviewed-on: https://chromium-review.googlesource.com/1061464
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Mike West <mkwst@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: danakj <danakj@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#560076}
[modify] https://crrev.com/f841ac2afe7ac227b760d0300f2abfbe4c278bae/base/callback.h
[modify] https://crrev.com/f841ac2afe7ac227b760d0300f2abfbe4c278bae/base/callback_internal.h
[modify] https://crrev.com/f841ac2afe7ac227b760d0300f2abfbe4c278bae/mojo/public/cpp/system/handle.h
[modify] https://crrev.com/f841ac2afe7ac227b760d0300f2abfbe4c278bae/url/gurl.cc
[modify] https://crrev.com/f841ac2afe7ac227b760d0300f2abfbe4c278bae/url/gurl.h

Comment 18 by bugdroid1@chromium.org, May 28 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/deps/inspector_protocol/+/7efd53047e3df9993c0c1653bb674f2de9b93053

commit 7efd53047e3df9993c0c1653bb674f2de9b93053
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Mon May 28 11:45:04 2018

IWYU: INT_MAX and INT_MIN need <climits>

Follow-up to ecc514d490 ("Parser.cpp: Fix undefined behaviour in float
conversion"), which broke the libstdc++ build:

    gen/chrome/browser/devtools/protocol/protocol.cc: In function ‘std::unique_ptr<protocol::Value> protocol::{anonymous}::buildValue(const Char*, const Char*, const Char**, int)’:
    gen/chrome/browser/devtools/protocol/protocol.cc:1304:22: error: ‘INT_MIN’ was not declared in this scope
             if (value >= INT_MIN && value <= INT_MAX && static_cast<int>(value) == value)
                          ^~~~~~~
    gen/chrome/browser/devtools/protocol/protocol.cc:1304:22: note: suggested alternative: ‘WINT_MIN’
             if (value >= INT_MIN && value <= INT_MAX && static_cast<int>(value) == value)
                          ^~~~~~~
                          WINT_MIN
    gen/chrome/browser/devtools/protocol/protocol.cc:1304:42: error: ‘INT_MAX’ was not declared in this scope
             if (value >= INT_MIN && value <= INT_MAX && static_cast<int>(value) == value)
                                              ^~~~~~~
    gen/chrome/browser/devtools/protocol/protocol.cc:1304:42: note: suggested alternative: ‘WINT_MAX’
             if (value >= INT_MIN && value <= INT_MAX && static_cast<int>(value) == value)
                                              ^~~~~~~
                                              WINT_MAX

Bug: chromium:819294, chromium:845816
Change-Id: Iabcece0e83cf0ab26d6bfda5a63239bfd850a33a
[modify] https://crrev.com/7efd53047e3df9993c0c1653bb674f2de9b93053/lib/Protocol_cpp.template

Comment 19 by bugdroid1@chromium.org, May 29 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a6dec5eda3a42527339a41b19640c70f1b2dad8f

commit a6dec5eda3a42527339a41b19640c70f1b2dad8f
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Tue May 29 13:47:06 2018

Roll third_party/inspector_protocol f58d066..7efd530

This roll includes:
- 7efd530 IWYU: INT_MAX and INT_MIN need <climits>

Bug: 819294
Change-Id: Ia709f051ed5cb4a1f93242d98250e1436e4eb47b
Reviewed-on: https://chromium-review.googlesource.com/1076128
Reviewed-by: Hans Wennborg <hans@chromium.org>
Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#562410}
[modify] https://crrev.com/a6dec5eda3a42527339a41b19640c70f1b2dad8f/third_party/inspector_protocol/README.chromium
[modify] https://crrev.com/a6dec5eda3a42527339a41b19640c70f1b2dad8f/third_party/inspector_protocol/lib/Protocol_cpp.template

Comment 20 by bugdroid1@chromium.org, May 29 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/56cb5f7da1025f6db869e840ed34d3b98b9ab899

commit 56cb5f7da1025f6db869e840ed34d3b98b9ab899
Author: Jose Dapena Paz <jose.dapena@lge.com>
Date: Tue May 29 16:04:14 2018

GCC: do not std::move unique ptr of forward declared UrlIndex

GCC fails to resolve the size of UrlIndex, needed
for moving a std::unique_ptr of UrlIndex. This is because
moved is done on a forward-declared UrlIndex.

To avoid the problem, move the call to std::move to the .cc
file so the full declaration is available.

Build error:
../../buildtools/third_party/libc++/trunk/include/memory: In instantiation of ‘void std::__1::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = bookmarks::UrlIndex]’:
../../buildtools/third_party/libc++/trunk/include/memory:2634:22:   required from ‘void std::__1::unique_ptr<_Tp, _Dp>::reset(std::__1::unique_ptr<_Tp, _Dp>::pointer) [with _Tp = bookmarks::UrlIndex; _Dp = std::__1::default_delete<bookmarks::UrlIndex>; std::__1::unique_ptr<_Tp, _Dp>::pointer = bookmarks::UrlIndex*]’
../../buildtools/third_party/libc++/trunk/include/memory:2588:24:   required from ‘std::__1::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = bookmarks::UrlIndex; _Dp = std::__1::default_delete<bookmarks::UrlIndex>]’
../../components/bookmarks/browser/bookmark_storage.h:107:76:   required from here
../../buildtools/third_party/libc++/trunk/include/memory:2317:25: error: invalid application of ‘sizeof’ to incomplete type ‘bookmarks::UrlIndex’
     static_assert(sizeof(_Tp) > 0,

Bug: 819294
Change-Id: I793a807c28e797aaa2e31d9c8b7e09fb6ca6b9e7
Reviewed-on: https://chromium-review.googlesource.com/1071648
Commit-Queue: Scott Violet <sky@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#562446}
[modify] https://crrev.com/56cb5f7da1025f6db869e840ed34d3b98b9ab899/components/bookmarks/browser/bookmark_storage.cc
[modify] https://crrev.com/56cb5f7da1025f6db869e840ed34d3b98b9ab899/components/bookmarks/browser/bookmark_storage.h

Comment 21 by bugdroid1@chromium.org, May 30 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/crashpad/crashpad.git/+/26ef5c910fc7e2edb441f1d2b39944195342dee9

commit 26ef5c910fc7e2edb441f1d2b39944195342dee9
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Wed May 30 16:46:16 2018

aarch64: Use xzr instead of x31 in the ASM code

Officially, register X31 does not exist. The code is zeroing out a location
and thus actually needs XZR.

LLVM seems to automatically translate X31 into XZR when compiling the code,
but GCC (tested 7.3.0) refuses to accept the instruction:

    ../../third_party/crashpad/crashpad/util/misc/capture_context_linux.S: Assembler messages:
    ../../third_party/crashpad/crashpad/util/misc/capture_context_linux.S:291: Error: operand 1 must be an integer register -- `str x31,[x0,#0xb0]'

Bug: chromium:819294
Change-Id: I85be3923ac56fca6e3ec59d7e22b2223cfc8fa63
Reviewed-on: https://chromium-review.googlesource.com/1078818
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>

[modify] https://crrev.com/26ef5c910fc7e2edb441f1d2b39944195342dee9/AUTHORS
[modify] https://crrev.com/26ef5c910fc7e2edb441f1d2b39944195342dee9/util/misc/capture_context_linux.S

Comment 22 by bugdroid1@chromium.org, Jun 1 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/368f1ff61e47cafa38f20eb6dbb48be029d4502c

commit 368f1ff61e47cafa38f20eb6dbb48be029d4502c
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Fri Jun 01 17:52:55 2018

aura: Move |observer_manager_| initialization to the member initialization list

Commit 2cc29e0ee ("aura: changes aura not to convert coordinates from ws2")
broke the GCC build:

    ../../base/scoped_observer.h: In instantiation of ‘void ScopedObserver<Source, Observer>::RemoveAll() [with Source = aura::Window; Observer = aura::WindowObserver]’:
    ../../base/scoped_observer.h:26:14:   required from ‘ScopedObserver<Source, Observer>::~ScopedObserver() [with Source = aura::Window; Observer = aura::WindowObserver]’
    ../../ui/aura/window_event_dispatcher.h:315:76:   required from here
    ../../base/scoped_observer.h:45:20: error: invalid use of incomplete type ‘class aura::Window’
           sources_[i]->RemoveObserver(observer_);
           ~~~~~~~~~~~~~^~~~~~~~~~~~~~
    In file included from ../../content/public/browser/render_frame_host.h:22:0,
                     from ../../content/public/test/test_renderer_host.h:17,
                     from ../../chrome/test/base/chrome_render_view_host_test_harness.h:9,
                     from ../../chrome/browser/plugins/pdf_iframe_navigation_throttle_unittest.cc:10:
    ../../ui/gfx/native_widget_types.h:47:7: note: forward declaration of ‘class aura::Window’
     class Window;
           ^~~~~~

Initialize |observer_manager_| in WindowEventDispatcher's constructor
instead, as aura::Window is fully declared by then.

Bug: 819294
Change-Id: I38588698f7a87c0dcf18de78c0721fc41d959b64
Reviewed-on: https://chromium-review.googlesource.com/1082316
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#563709}
[modify] https://crrev.com/368f1ff61e47cafa38f20eb6dbb48be029d4502c/ui/aura/window_event_dispatcher.cc
[modify] https://crrev.com/368f1ff61e47cafa38f20eb6dbb48be029d4502c/ui/aura/window_event_dispatcher.h

Comment 23 by bugdroid1@chromium.org, Jun 2 2018

Project Member
The following revision refers to this bug:
  https://pdfium.googlesource.com/pdfium/+/67539cecfeb140d5a77fba66446450cb9e20fb1e

commit 67539cecfeb140d5a77fba66446450cb9e20fb1e
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Sat Jun 02 16:50:45 2018

IWYU: std::begin() and std::end() need <iterator>

This fixes the libstdc++ build after 656eb84f8 ("Move codepage/charset
methods into related places"):

    ../../third_party/pdfium/core/fxcrt/fx_codepage.cpp: In function ‘uint16_t FX_GetCodePageFromCharset(uint8_t)’:
    ../../third_party/pdfium/core/fxcrt/fx_codepage.cpp:212:60: error: no matching function for call to ‘begin(const {anonymous}::FX_CHARSET_MAP [31])’
           std::lower_bound(std::begin(g_FXCharset2CodePageTable),
                                                                ^
    In file included from /usr/include/c++/7/utility:76:0,
                     from /usr/include/c++/7/algorithm:60,
                     from ../../third_party/pdfium/core/fxcrt/fx_codepage.cpp:9:
    /usr/include/c++/7/initializer_list:89:5: note: candidate: template<class _Tp> constexpr const _Tp* std::begin(std::initializer_list<_Tp>)
         begin(initializer_list<_Tp> __ils) noexcept
         ^~~~~
    /usr/include/c++/7/initializer_list:89:5: note:   template argument deduction/substitution failed:
    ../../third_party/pdfium/core/fxcrt/fx_codepage.cpp:212:60: note:   mismatched types ‘std::initializer_list<_Tp>’ and ‘const {anonymous}::FX_CHARSET_MAP*’
           std::lower_bound(std::begin(g_FXCharset2CodePageTable),
                                                                ^

Bug: chromium:819294
Change-Id: I3c0368af81ae274d62bf51eb6dc17d9bd71951eb
Reviewed-on: https://pdfium-review.googlesource.com/33490
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>

[modify] https://crrev.com/67539cecfeb140d5a77fba66446450cb9e20fb1e/core/fxcrt/fx_codepage.cpp

Comment 24 by bugdroid1@chromium.org, Jun 2 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/891b7907fabc802fbbae7331e66c8b846c193d8a

commit 891b7907fabc802fbbae7331e66c8b846c193d8a
Author: pdfium-chromium-autoroll <pdfium-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Sat Jun 02 18:46:27 2018

Roll src/third_party/pdfium 940aa31..67539ce (1 commits)

https://pdfium.googlesource.com/pdfium.git/+log/940aa31..67539ce


git log 940aa31..67539ce --date=short --no-merges --format='%ad %ae %s'
2018-06-02 raphael.kubo.da.costa@intel.com IWYU: std::begin() and std::end() need <iterator>


Created with:
  gclient setdep -r src/third_party/pdfium@67539ce

The AutoRoll server is located here: https://pdfium-roll.skia.org

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.



BUG=chromium:819294
TBR=dsinclair@chromium.org

Change-Id: I4035933976da594daa4bf1c7c6b6fb1b0289aa0e
Reviewed-on: https://chromium-review.googlesource.com/1083962
Reviewed-by: pdfium-chromium-autoroll <pdfium-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: pdfium-chromium-autoroll <pdfium-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#563945}
[modify] https://crrev.com/891b7907fabc802fbbae7331e66c8b846c193d8a/DEPS

Comment 25 by bugdroid1@chromium.org, Jun 4 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/42930fc83a837e9ab33055cca46bdf90c0d9f971

commit 42930fc83a837e9ab33055cca46bdf90c0d9f971
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Mon Jun 04 12:43:01 2018

AnimationOptions: Include <memory> for std::unique_ptr

IWYU and stop relying on the header being included implicitly, which breaks
the libstdc++ build:

    In file included from ../../cc/trees/layer_tree_mutator.h:11:0,
                     from ../../cc/trees/layer_tree_mutator.cc:5:
    ../../cc/trees/animation_options.h:18:16: error: ‘unique_ptr’ in namespace ‘std’ does not name a template type
       virtual std::unique_ptr<AnimationOptions> Clone() const = 0;
                    ^~~~~~~~~~

Bug: 819294
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I876921fb915c41362f4674c30e46748688a78172
Reviewed-on: https://chromium-review.googlesource.com/1084597
Reviewed-by: Stephen McGruer <smcgruer@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#564069}
[modify] https://crrev.com/42930fc83a837e9ab33055cca46bdf90c0d9f971/cc/trees/animation_options.h

Comment 26 by bugdroid1@chromium.org, Jun 4 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/30e6f82d17b9d1c136cd6177c53a5ec86e0ab740

commit 30e6f82d17b9d1c136cd6177c53a5ec86e0ab740
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Mon Jun 04 14:16:42 2018

OmniboxViewViews: Do not initialize ScopedObservers in the class declaration

See also: https://chromium-review.googlesource.com/1082316, which fixes the
same issue elsewhere.

GCC requires a full declaration for ScopedObserver's types to be present
when it is initialized in a class declaration:

    ../../base/scoped_observer.h: In instantiation of ‘void ScopedObserver<Source, Observer>::RemoveAll() [with Source = TemplateURLService; Observer = TemplateURLServiceObserver]’:
    ../../base/scoped_observer.h:26:14:   required from ‘ScopedObserver<Source, Observer>::~ScopedObserver() [with Source = TemplateURLService; Observer = TemplateURLServiceObserver]’
    ../../chrome/browser/ui/views/omnibox/omnibox_view_views.h:339:49:   required from here
    ../../base/scoped_observer.h:45:20: error: invalid use of incomplete type ‘class TemplateURLService’
           sources_[i]->RemoveObserver(observer_);
           ~~~~~~~~~~~~~^~~~~~~~~~~~~~
    In file included from ../../chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc:31:0:
    ../../chrome/browser/search/search.h:12:7: note: forward declaration of ‘class TemplateURLService’
     class TemplateURLService;
           ^~~~~~~~~~~~~~~~~~

Fix it by moving the initialization to the class' member initialization
list.

Bug: 819294
Change-Id: I00d1a39254681b05bcfa4df56bc0b36f6fe318e4
Reviewed-on: https://chromium-review.googlesource.com/1084596
Reviewed-by: Michael Wasserman <msw@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#564082}
[modify] https://crrev.com/30e6f82d17b9d1c136cd6177c53a5ec86e0ab740/chrome/browser/ui/views/omnibox/omnibox_view_views.cc
[modify] https://crrev.com/30e6f82d17b9d1c136cd6177c53a5ec86e0ab740/chrome/browser/ui/views/omnibox/omnibox_view_views.h

Comment 27 by bugdroid1@chromium.org, Jun 5 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/05c12416819bca6865d37393f1244e834520c943

commit 05c12416819bca6865d37393f1244e834520c943
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Tue Jun 05 16:39:40 2018

NGInlineItem: Rename FontFallbackPriority() to GetFontFallbackPriority()

GCC is stricter than clang when it comes to class members' names and how
they can change the meaning of a previously existing symbol with the same
name:

    In file included from ../../third_party/blink/renderer/core/layout/ng/inline/ng_inline_node_data.h:9:0,
                     from ../../third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.h:10,
                     from ../../third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.h:11,
                     from ../../third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.cc:5:
    ../../third_party/blink/renderer/core/layout/ng/inline/ng_inline_item.h:135:47: error: declaration of ‘blink::FontFallbackPriority blink::NGInlineItem::FontFallbackPriority() const’ [-fpermissive]
       FontFallbackPriority FontFallbackPriority() const;
                                                   ^~~~~
    In file included from ../../third_party/blink/renderer/platform/fonts/font_cache.h:44:0,
                     from ../../third_party/blink/renderer/platform/fonts/font_fallback_list.h:26,
                     from ../../third_party/blink/renderer/platform/fonts/font.h:29,
                     from gen/third_party/blink/renderer/core/style/computed_style_initial_values.h:31,
                     from gen/third_party/blink/renderer/core/computed_style_base.h:25,
                     from ../../third_party/blink/renderer/core/style/computed_style.h:30,
                     from ../../third_party/blink/renderer/core/layout/layout_object.h:48,
                     from ../../third_party/blink/renderer/core/layout/api/line_layout_item.h:9,
                     from ../../third_party/blink/renderer/core/layout/layout_block_flow.h:42,
                     from ../../third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.h:9,
                     from ../../third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.h:11,
                     from ../../third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.cc:5:
    ../../third_party/blink/renderer/platform/fonts/font_fallback_priority.h:14:12: error: changes meaning of ‘FontFallbackPriority’ from ‘enum class blink::FontFallbackPriority’ [-fpermissive]
     enum class FontFallbackPriority {
                ^~~~~~~~~~~~~~~~~~~~

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84709 contains a longer
explanation, but essentially having a |FontFallbackPriority()| method can
change the meaning of references to the |FontFallbackPriority| enum in the
code depending on where it is declared, which contradicts the C++ standard.

Fix it by renaming the method to |GetFontFallbackPriority()| after commit
06e705c9 ("[LayoutNG] Segment NGInlineItem by RunSegmenter").

Bug: 819294
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: If50741d932c9068ec024cc79c01b444dc40b39a5
Reviewed-on: https://chromium-review.googlesource.com/1086934
Commit-Queue: Koji Ishii <kojii@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564536}
[modify] https://crrev.com/05c12416819bca6865d37393f1244e834520c943/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item.cc
[modify] https://crrev.com/05c12416819bca6865d37393f1244e834520c943/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item.h

Comment 28 by bugdroid1@chromium.org, Jun 6 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/64debbe9a4de290c8fb4f3ac9ef87768a379d167

commit 64debbe9a4de290c8fb4f3ac9ef87768a379d167
Author: Jose Dapena Paz <jose.dapena@lge.com>
Date: Wed Jun 06 11:31:11 2018

GCC: fix ambiguous auto assignment from initializer list

Fix build error in GCC due to an ambiguous auto resolution. An initializer list
is not compatible with an std::vector in a ? : sequence, so it will fail to
resolve the subsequent auto statement:
 ../../components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle.cc -o obj/components/subresource_filter/content/browser/browser/subresource_filter_safe_browsing_activation_throttle.o
../../components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle.cc: In member function ‘void subresource_filter::SubresourceFilterSafeBrowsingActivationThrottle::NotifyResult()’:
../../components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle.cc:141:26: error: operands to ?: have different types ‘std::vector<subresource_filter::SubresourceFilterSafeBrowsingClient::CheckResult>’ and ‘const std::initializer_list<const subresource_filter::SubresourceFilterSafeBrowsingClient::CheckResult>’
       consider_redirects ? check_results_ : last_result_array;
       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle.cc:145:37: error: unable to deduce ‘auto&&’ from ‘check_results_to_consider’
   for (const auto& current_result : check_results_to_consider) {
                                     ^~~~~~~~~~~~~~~~~~~~~~~~~

The solution is explicitely setting the type instead of using auto, so the resolution
is not ambiguous.

Bug: 819294
Change-Id: Ieae11f751569ffe15a5db49833153478eed4cbcb
Reviewed-on: https://chromium-review.googlesource.com/1087958
Commit-Queue: Balazs Engedy <engedy@chromium.org>
Reviewed-by: Balazs Engedy <engedy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564853}
[modify] https://crrev.com/64debbe9a4de290c8fb4f3ac9ef87768a379d167/components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle.cc

Comment 29 by bugdroid1@chromium.org, Jun 7 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/23c2a004082f767e4a5200df253c127a31fc9822

commit 23c2a004082f767e4a5200df253c127a31fc9822
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Thu Jun 07 14:39:34 2018

LazilyDeallocatedDeque: Include <memory> for std::unique_ptr

IWYU. This fixes the libstdc++ build after commit 68d360546 ("Add
LazilyDeallocatedDeque a custom deque for TaskQueueManager"):

    In file included from ../../third_party/blink/renderer/platform/scheduler/base/lazily_deallocated_deque_unittest.cc:5:0:
    ../../third_party/blink/renderer/platform/scheduler/base/lazily_deallocated_deque.h:302:10: error: ‘unique_ptr’ in namespace ‘std’ does not name a template type
         std::unique_ptr<Ring> next_;
              ^~~~~~~~~~
    ../../third_party/blink/renderer/platform/scheduler/base/lazily_deallocated_deque.h:354:8: error: ‘unique_ptr’ in namespace ‘std’ does not name a template type
       std::unique_ptr<Ring> head_;
            ^~~~~~~~~~

Bug: 819294
Change-Id: I3a49f212f036905d89088749431b09513b9c33b8
Reviewed-on: https://chromium-review.googlesource.com/1090717
Reviewed-by: Alex Clarke <alexclarke@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#565262}
[modify] https://crrev.com/23c2a004082f767e4a5200df253c127a31fc9822/third_party/blink/renderer/platform/scheduler/base/lazily_deallocated_deque.h

Comment 30 by bugdroid1@chromium.org, Jun 15 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ddd86290c115ee3c54f7c3407e44ba170b5b4ce2

commit ddd86290c115ee3c54f7c3407e44ba170b5b4ce2
Author: Jose Dapena Paz <jose.dapena@lge.com>
Date: Fri Jun 15 10:34:57 2018

GCC: another std::move to return to base::Optional

GCC fails to implicitely move an T to a base::Optional<T> in return. So
this causes a build error. Explicitely std::move(). In this case the
issue happened in AuthenticatorGetAssertionResponse.

../../device/fido/authenticator_get_assertion_response.cc: In static member function ‘static base::Optional<device::AuthenticatorGetAssertionResponse> device::AuthenticatorGetAssertionResponse::CreateFromU2fSignResponse(base::span<const unsigned char, 32ul>, base::span<const unsigned char>, base::span<const unsigned char>)’:
../../device/fido/authenticator_get_assertion_response.cc:48:10: error: could not convert ‘response’ from ‘device::AuthenticatorGetAssertionResponse’ to ‘base::Optional<device::AuthenticatorGetAssertionResponse>’
   return response;
          ^~~~~~~~

Bug: 819294
Change-Id: I6410e3d4b10a9e50cae06f5a0b3dfe75d61d8b5d
Reviewed-on: https://chromium-review.googlesource.com/1101684
Commit-Queue: Balazs Engedy <engedy@chromium.org>
Reviewed-by: Balazs Engedy <engedy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567600}
[modify] https://crrev.com/ddd86290c115ee3c54f7c3407e44ba170b5b4ce2/device/fido/authenticator_get_assertion_response.cc

Comment 31 by bugdroid1@chromium.org, Jun 20 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6fc70059c558426139724c0145b81c65bebce5da

commit 6fc70059c558426139724c0145b81c65bebce5da
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Wed Jun 20 06:08:58 2018

ScopedThrottlingToken: Include <memory> for std::unique_ptr

IWYU. This fixes the build with libstdc++ after c1ab712a08 ("Stop using
x-devtools-emulate-network-conditions-client-id header"):

    In file included from ../../services/network/throttling/scoped_throttling_token.cc:5:0:
    ../../services/network/throttling/scoped_throttling_token.h:29:15: error: ‘unique_ptr’ in namespace ‘std’ does not name a template type
       static std::unique_ptr<ScopedThrottlingToken> MaybeCreate(
                   ^~~~~~~~~~

Bug: 819294
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I66b2db483ac9e90d0a132a65f83f15aa673f12f9
Reviewed-on: https://chromium-review.googlesource.com/1105825
Reviewed-by: Tsuyoshi Horo <horo@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#568746}
[modify] https://crrev.com/6fc70059c558426139724c0145b81c65bebce5da/services/network/throttling/scoped_throttling_token.h

Comment 32 by bugdroid1@chromium.org, Jun 20 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a7d6d9872e267e3e970707e394e84092177b357d

commit a7d6d9872e267e3e970707e394e84092177b357d
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Wed Jun 20 21:33:02 2018

media capture, mojo: Sprinkle noexcept in a few more classes

Commit fc5fe70812c ("FrameSinkVideoCapture clean-up: Remove unused APIs,
style fixes") added the noexcept marker to FrameSinkVideoCapture's
ConsumptionState inner class.

This breaks the GCC build due to the fact that its members' types do not
have noexcept themselves:

    ../../content/browser/media/capture/frame_sink_video_capture_device.cc: At global scope:
    ../../content/browser/media/capture/frame_sink_video_capture_device.cc:372:1: error: function ‘content::FrameSinkVideoCaptureDevice::ConsumptionState::ConsumptionState(content::FrameSinkVideoCaptureDevice::ConsumptionState&&)’ defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification ‘’
    FrameSinkVideoCaptureDevice::ConsumptionState::ConsumptionState(

clang is fine because we pass -fno-exceptions and it disables the same error
there, while GCC continues to raise it (bug 843143 and its corresponding CL
have a longer discussion on this issue).

In this case, mark CursorRendererUndoer as well as mojo's ubiquitous
InterfacePtr with noexcept to fix the build.

Bug: 754872, 819294, 843143
Change-Id: I78714fda26d21e0979aed4fe26d543463dff9631
Reviewed-on: https://chromium-review.googlesource.com/1107918
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Commit-Queue: Raphael Kubo da Costa (CET) <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#569029}
[modify] https://crrev.com/a7d6d9872e267e3e970707e394e84092177b357d/content/browser/media/capture/cursor_renderer.cc
[modify] https://crrev.com/a7d6d9872e267e3e970707e394e84092177b357d/content/browser/media/capture/cursor_renderer.h
[modify] https://crrev.com/a7d6d9872e267e3e970707e394e84092177b357d/mojo/public/cpp/bindings/interface_ptr.h

Comment 33 by bugdroid1@chromium.org, Jul 3 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6f49aca84725dab9adbf83da143ba6da569dbe13

commit 6f49aca84725dab9adbf83da143ba6da569dbe13
Author: Jose Dapena Paz <jose.dapena@lge.com>
Date: Tue Jul 03 21:14:55 2018

GCC: do not populate AttestedCredentialData span parameters from initializer list.

A base::span parameter of AttestedCredentialData constructor was populated in
VirtualCtap2Device with an initializer list. But GCC cannot resolve that mapping.
So replace the initializer list by an explicit declaration of an array.

Bug: 819294
Change-Id: Id3f2d7978ab8adff3c5bf3fd8e25c1b16c872470
Reviewed-on: https://chromium-review.googlesource.com/1123823
Reviewed-by: Jun Choi <hongjunchoi@chromium.org>
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Cr-Commit-Position: refs/heads/master@{#572354}
[modify] https://crrev.com/6f49aca84725dab9adbf83da143ba6da569dbe13/device/fido/virtual_ctap2_device.cc

Comment 34 by bugdroid1@chromium.org, Jul 6 2018

Project Member
The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/7d47525e8bc11d0e401c2180e0222c1858f8e134

commit 7d47525e8bc11d0e401c2180e0222c1858f8e134
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Fri Jul 06 08:34:21 2018

IWYU: Add <math.h> for fabsf() and powf()

Fix the build with libstdc++ after 496cedfe5 ("AEC3: Reverberation model:
Changes on the decay estimation") by including the missing header:

    ../../modules/audio_processing/aec3/reverb_model_estimator.cc: In constructor ‘webrtc::ReverbModelEstimator::ReverbModelEstimator(const webrtc::EchoCanceller3Config&)’:
    ../../modules/audio_processing/aec3/reverb_model_estimator.cc:61:21: error: ‘fabsf’ was not declared in this scope
           reverb_decay_(fabsf(config.ep_strength.default_len)),
                         ^~~~~
    ../../modules/audio_processing/aec3/reverb_model_estimator.cc:61:21: note: suggested alternative: ‘labs’
           reverb_decay_(fabsf(config.ep_strength.default_len)),
                         ^~~~~
                         labs
    ../../modules/audio_processing/aec3/reverb_model_estimator.cc: In member function ‘void webrtc::ReverbModelEstimator::UpdateReverbDecay(const std::vector<float>&)’:
    ../../modules/audio_processing/aec3/reverb_model_estimator.cc:206:15: error: ‘powf’ was not declared in this scope
           decay = powf(2.0f, -exp_candidate * kFftLengthBy2);
                   ^~~~

Spotted by Jose Dapena Paz <jose.dapena@lge.com>.

Bug: chromium:819294
Change-Id: If992e5e473b9d4d0c1b3c1006c3816b7c4eee296
Reviewed-on: https://webrtc-review.googlesource.com/87241
Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Raphael Kubo da Costa (rakuco) <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#23863}
[modify] https://crrev.com/7d47525e8bc11d0e401c2180e0222c1858f8e134/modules/audio_processing/aec3/reverb_model_estimator.cc

Comment 35 by bugdroid1@chromium.org, Jul 6 2018

Project Member
The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/282dad1943ca0a73e64e39b7d51f0548a9c32ed2

commit 282dad1943ca0a73e64e39b7d51f0548a9c32ed2
Author: Alessio Bazzica <alessiob@webrtc.org>
Date: Fri Jul 06 09:18:22 2018

Revert "IWYU: Add <math.h> for fabsf() and powf()"

This reverts commit 7d47525e8bc11d0e401c2180e0222c1858f8e134.

Reason for revert: breaking downstream projects

Original change's description:
> IWYU: Add <math.h> for fabsf() and powf()
> 
> Fix the build with libstdc++ after 496cedfe5 ("AEC3: Reverberation model:
> Changes on the decay estimation") by including the missing header:
> 
>     ../../modules/audio_processing/aec3/reverb_model_estimator.cc: In constructor ‘webrtc::ReverbModelEstimator::ReverbModelEstimator(const webrtc::EchoCanceller3Config&)’:
>     ../../modules/audio_processing/aec3/reverb_model_estimator.cc:61:21: error: ‘fabsf’ was not declared in this scope
>            reverb_decay_(fabsf(config.ep_strength.default_len)),
>                          ^~~~~
>     ../../modules/audio_processing/aec3/reverb_model_estimator.cc:61:21: note: suggested alternative: ‘labs’
>            reverb_decay_(fabsf(config.ep_strength.default_len)),
>                          ^~~~~
>                          labs
>     ../../modules/audio_processing/aec3/reverb_model_estimator.cc: In member function ‘void webrtc::ReverbModelEstimator::UpdateReverbDecay(const std::vector<float>&)’:
>     ../../modules/audio_processing/aec3/reverb_model_estimator.cc:206:15: error: ‘powf’ was not declared in this scope
>            decay = powf(2.0f, -exp_candidate * kFftLengthBy2);
>                    ^~~~
> 
> Spotted by Jose Dapena Paz <jose.dapena@lge.com>.
> 
> Bug: chromium:819294
> Change-Id: If992e5e473b9d4d0c1b3c1006c3816b7c4eee296
> Reviewed-on: https://webrtc-review.googlesource.com/87241
> Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
> Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
> Commit-Queue: Raphael Kubo da Costa (rakuco) <raphael.kubo.da.costa@intel.com>
> Cr-Commit-Position: refs/heads/master@{#23863}

TBR=gustaf@webrtc.org,alessiob@webrtc.org,raphael.kubo.da.costa@intel.com,devicentepena@webrtc.org

Change-Id: I8adcec57d67de2efcbf0ebef0cdb700fcc21689a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:819294
Reviewed-on: https://webrtc-review.googlesource.com/87400
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23864}
[modify] https://crrev.com/282dad1943ca0a73e64e39b7d51f0548a9c32ed2/modules/audio_processing/aec3/reverb_model_estimator.cc

Comment 36 by bugdroid1@chromium.org, Jul 6 2018

Project Member
The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/e90879097c7151148aaad57393967cf72d233a69

commit e90879097c7151148aaad57393967cf72d233a69
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Fri Jul 06 11:03:41 2018

IWYU: Add <cmath> for fabsf() and powf(), switch to C++ versions

Fix the build with libstdc++ after 496cedfe5 ("AEC3: Reverberation model:
Changes on the decay estimation") by including the missing header:

    ../../modules/audio_processing/aec3/reverb_model_estimator.cc: In constructor ‘webrtc::ReverbModelEstimator::ReverbModelEstimator(const webrtc::EchoCanceller3Config&)’:
    ../../modules/audio_processing/aec3/reverb_model_estimator.cc:61:21: error: ‘fabsf’ was not declared in this scope
           reverb_decay_(fabsf(config.ep_strength.default_len)),
                         ^~~~~
    ../../modules/audio_processing/aec3/reverb_model_estimator.cc:61:21: note: suggested alternative: ‘labs’
           reverb_decay_(fabsf(config.ep_strength.default_len)),
                         ^~~~~
                         labs
    ../../modules/audio_processing/aec3/reverb_model_estimator.cc: In member function ‘void webrtc::ReverbModelEstimator::UpdateReverbDecay(const std::vector<float>&)’:
    ../../modules/audio_processing/aec3/reverb_model_estimator.cc:206:15: error: ‘powf’ was not declared in this scope
           decay = powf(2.0f, -exp_candidate * kFftLengthBy2);
                   ^~~~

While here, also switch to the C++ versions of those functions: std::fabs()
and std::pow() respectively.

Spotted by Jose Dapena Paz <jose.dapena@lge.com>.

Bug: chromium:819294
Change-Id: Id803243be8dd17eac95c70a88a37ee2fe1505a5a
Reviewed-on: https://webrtc-review.googlesource.com/87421
Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23870}
[modify] https://crrev.com/e90879097c7151148aaad57393967cf72d233a69/modules/audio_processing/aec3/reverb_model_estimator.cc

Comment 37 by bugdroid1@chromium.org, Jul 6 2018

Project Member
The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/d39ce8d45bc9bcfaef2b3d39bb24d04fa962cfe8

commit d39ce8d45bc9bcfaef2b3d39bb24d04fa962cfe8
Author: Alessio Bazzica <alessiob@webrtc.org>
Date: Fri Jul 06 11:37:15 2018

Revert "IWYU: Add <cmath> for fabsf() and powf(), switch to C++ versions"

This reverts commit e90879097c7151148aaad57393967cf72d233a69.

Reason for revert: breaking downstream projects

Original change's description:
> IWYU: Add <cmath> for fabsf() and powf(), switch to C++ versions
> 
> Fix the build with libstdc++ after 496cedfe5 ("AEC3: Reverberation model:
> Changes on the decay estimation") by including the missing header:
> 
>     ../../modules/audio_processing/aec3/reverb_model_estimator.cc: In constructor ‘webrtc::ReverbModelEstimator::ReverbModelEstimator(const webrtc::EchoCanceller3Config&)’:
>     ../../modules/audio_processing/aec3/reverb_model_estimator.cc:61:21: error: ‘fabsf’ was not declared in this scope
>            reverb_decay_(fabsf(config.ep_strength.default_len)),
>                          ^~~~~
>     ../../modules/audio_processing/aec3/reverb_model_estimator.cc:61:21: note: suggested alternative: ‘labs’
>            reverb_decay_(fabsf(config.ep_strength.default_len)),
>                          ^~~~~
>                          labs
>     ../../modules/audio_processing/aec3/reverb_model_estimator.cc: In member function ‘void webrtc::ReverbModelEstimator::UpdateReverbDecay(const std::vector<float>&)’:
>     ../../modules/audio_processing/aec3/reverb_model_estimator.cc:206:15: error: ‘powf’ was not declared in this scope
>            decay = powf(2.0f, -exp_candidate * kFftLengthBy2);
>                    ^~~~
> 
> While here, also switch to the C++ versions of those functions: std::fabs()
> and std::pow() respectively.
> 
> Spotted by Jose Dapena Paz <jose.dapena@lge.com>.
> 
> Bug: chromium:819294
> Change-Id: Id803243be8dd17eac95c70a88a37ee2fe1505a5a
> Reviewed-on: https://webrtc-review.googlesource.com/87421
> Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
> Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
> Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#23870}

TBR=gustaf@webrtc.org,alessiob@webrtc.org,raphael.kubo.da.costa@intel.com,devicentepena@webrtc.org

Change-Id: I22423a2d4201183f70ae084e0e21930367824f1c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:819294
Reviewed-on: https://webrtc-review.googlesource.com/87401
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23871}
[modify] https://crrev.com/d39ce8d45bc9bcfaef2b3d39bb24d04fa962cfe8/modules/audio_processing/aec3/reverb_model_estimator.cc

Comment 38 by raphael....@intel.com, Jul 6 2018

There are some downstream issues the WebRTC guys need to take care of before the CL above can really land; we'll try again next week.

Comment 39 by bugdroid1@chromium.org, Jul 6 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bf0112123d055721209dfe0c0f24b5774918ea9e

commit bf0112123d055721209dfe0c0f24b5774918ea9e
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Fri Jul 06 13:55:34 2018

origin policy: Include <memory> for std::unique_ptr

This fixes the build with libstdc++ after 00446508ac0 ("Origin Policy:
Implement Origin Policy object and parser"):

    In file included from ../../third_party/blink/common/origin_policy/origin_policy_unittest.cc:5:0:
    ../../third_party/blink/public/common/origin_policy/origin_policy.h:22:15: error: ‘unique_ptr’ in namespace ‘std’ does not name a template type
       static std::unique_ptr<OriginPolicy> From(base::StringPiece);
                   ^~~~~~~~~~

Bug: 819294
Change-Id: I56864efb91b405b39eb28cdace87c83159454e34
Reviewed-on: https://chromium-review.googlesource.com/1127897
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org>
Commit-Queue: Raphael Kubo da Costa (CET) <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#572958}
[modify] https://crrev.com/bf0112123d055721209dfe0c0f24b5774918ea9e/third_party/blink/public/common/origin_policy/origin_policy.h

Comment 40 by bugdroid1@chromium.org, Jul 6 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c097aa55ffe95c24bb91fdd13ccdb72ec1286250

commit c097aa55ffe95c24bb91fdd13ccdb72ec1286250
Author: webrtc-chromium-autoroll <webrtc-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Fri Jul 06 14:16:17 2018

Roll src/third_party/webrtc 5abfb00bf229..bfd44e083746 (3 commits)

https://webrtc.googlesource.com/src.git/+log/5abfb00bf229..bfd44e083746


git log 5abfb00bf229..bfd44e083746 --date=short --no-merges --format='%ad %ae %s'
2018-07-06 brandtr@webrtc.org Add JavaToNativeVideoCodecInfo to native API.
2018-07-06 alessiob@webrtc.org Revert "IWYU: Add <math.h> for fabsf() and powf()"
2018-07-06 raphael.kubo.da.costa@intel.com IWYU: Add <math.h> for fabsf() and powf()


Created with:
  gclient setdep -r src/third_party/webrtc@bfd44e083746

The AutoRoll server is located here: https://webrtc-chromium-roll.skia.org

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=luci.chromium.try:linux_chromium_archive_rel_ng;master.tryserver.chromium.mac:mac_chromium_archive_rel_ng

BUG=chromium:819294,chromium:819294
TBR=webrtc-chromium-sheriffs-robots@google.com

Change-Id: Ic93da76fb9eb91b70fc6db06ae3e56f02947ac1e
Reviewed-on: https://chromium-review.googlesource.com/1127820
Reviewed-by: webrtc-chromium-autoroll <webrtc-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: webrtc-chromium-autoroll <webrtc-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#572965}
[modify] https://crrev.com/c097aa55ffe95c24bb91fdd13ccdb72ec1286250/DEPS

Comment 41 by bugdroid1@chromium.org, Jul 6 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c370a5b9cb122f1dfa11c4c259c8fd192a6561b9

commit c370a5b9cb122f1dfa11c4c259c8fd192a6561b9
Author: webrtc-chromium-autoroll <webrtc-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Fri Jul 06 16:49:46 2018

Roll src/third_party/webrtc bfd44e083746..d39ce8d45bc9 (6 commits)

https://webrtc.googlesource.com/src.git/+log/bfd44e083746..d39ce8d45bc9


git log bfd44e083746..d39ce8d45bc9 --date=short --no-merges --format='%ad %ae %s'
2018-07-06 alessiob@webrtc.org Revert "IWYU: Add <cmath> for fabsf() and powf(), switch to C++ versions"
2018-07-06 raphael.kubo.da.costa@intel.com IWYU: Add <cmath> for fabsf() and powf(), switch to C++ versions
2018-07-06 sakal@webrtc.org Update capturer/test code to use the new interface VideoCapturer.
2018-07-06 sakal@webrtc.org Deprecate PeerConnectionFactory#createVideoSource(VideoCapturer).
2018-07-06 magjed@webrtc.org Android: Output VideoFrames from SurfaceTextureHelper
2018-07-06 buildbot@webrtc.org Roll chromium_revision b2695df06e..f0909821f4 (572823:572927)


Created with:
  gclient setdep -r src/third_party/webrtc@d39ce8d45bc9

The AutoRoll server is located here: https://webrtc-chromium-roll.skia.org

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=luci.chromium.try:linux_chromium_archive_rel_ng;master.tryserver.chromium.mac:mac_chromium_archive_rel_ng

BUG=chromium:819294,chromium:819294,chromium:None
TBR=webrtc-chromium-sheriffs-robots@google.com

Change-Id: I0179cf7cc89f7f7278c37dc0a7248219e36a4fb0
Reviewed-on: https://chromium-review.googlesource.com/1127823
Reviewed-by: webrtc-chromium-autoroll <webrtc-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: webrtc-chromium-autoroll <webrtc-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#572996}
[modify] https://crrev.com/c370a5b9cb122f1dfa11c4c259c8fd192a6561b9/DEPS

Comment 42 by bugdroid1@chromium.org, Jul 10 2018

Project Member
The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/9cb5d5f9deb733e9b9ffd183729da10fd0e2a5c6

commit 9cb5d5f9deb733e9b9ffd183729da10fd0e2a5c6
Author: Alessio Bazzica <alessiob@webrtc.org>
Date: Tue Jul 10 15:01:50 2018

Reland "IWYU: Add <cmath> for fabsf() and powf(), switch to C++ versions"

This reverts commit d39ce8d45bc9bcfaef2b3d39bb24d04fa962cfe8.

Reason for revert: downstream project fix

Original change's description:
> Revert "IWYU: Add <cmath> for fabsf() and powf(), switch to C++ versions"
> 
> This reverts commit e90879097c7151148aaad57393967cf72d233a69.
> 
> Reason for revert: breaking downstream projects
> 
> Original change's description:
> > IWYU: Add <cmath> for fabsf() and powf(), switch to C++ versions
> > 
> > Fix the build with libstdc++ after 496cedfe5 ("AEC3: Reverberation model:
> > Changes on the decay estimation") by including the missing header:
> > 
> >     ../../modules/audio_processing/aec3/reverb_model_estimator.cc: In constructor ‘webrtc::ReverbModelEstimator::ReverbModelEstimator(const webrtc::EchoCanceller3Config&)’:
> >     ../../modules/audio_processing/aec3/reverb_model_estimator.cc:61:21: error: ‘fabsf’ was not declared in this scope
> >            reverb_decay_(fabsf(config.ep_strength.default_len)),
> >                          ^~~~~
> >     ../../modules/audio_processing/aec3/reverb_model_estimator.cc:61:21: note: suggested alternative: ‘labs’
> >            reverb_decay_(fabsf(config.ep_strength.default_len)),
> >                          ^~~~~
> >                          labs
> >     ../../modules/audio_processing/aec3/reverb_model_estimator.cc: In member function ‘void webrtc::ReverbModelEstimator::UpdateReverbDecay(const std::vector<float>&)’:
> >     ../../modules/audio_processing/aec3/reverb_model_estimator.cc:206:15: error: ‘powf’ was not declared in this scope
> >            decay = powf(2.0f, -exp_candidate * kFftLengthBy2);
> >                    ^~~~
> > 
> > While here, also switch to the C++ versions of those functions: std::fabs()
> > and std::pow() respectively.
> > 
> > Spotted by Jose Dapena Paz <jose.dapena@lge.com>.
> > 
> > Bug: chromium:819294
> > Change-Id: Id803243be8dd17eac95c70a88a37ee2fe1505a5a
> > Reviewed-on: https://webrtc-review.googlesource.com/87421
> > Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
> > Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
> > Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#23870}
> 
> TBR=gustaf@webrtc.org,alessiob@webrtc.org,raphael.kubo.da.costa@intel.com,devicentepena@webrtc.org
> 
> Change-Id: I22423a2d4201183f70ae084e0e21930367824f1c
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: chromium:819294
> Reviewed-on: https://webrtc-review.googlesource.com/87401
> Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
> Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#23871}

TBR=gustaf@webrtc.org,alessiob@webrtc.org,raphael.kubo.da.costa@intel.com,devicentepena@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: chromium:819294
Change-Id: I09e07d59961d3e2ecc617244287a821cb8b04578
Reviewed-on: https://webrtc-review.googlesource.com/87900
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23910}
[modify] https://crrev.com/9cb5d5f9deb733e9b9ffd183729da10fd0e2a5c6/modules/audio_processing/aec3/reverb_model_estimator.cc

Comment 43 by bugdroid1@chromium.org, Jul 12 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2b0529974fae81606d19de5722d21320de4678e8

commit 2b0529974fae81606d19de5722d21320de4678e8
Author: webrtc-chromium-autoroll <webrtc-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Thu Jul 12 02:51:41 2018

Roll src/third_party/webrtc ef43aafcf595..d78323faba86 (47 commits)

https://webrtc.googlesource.com/src.git/+log/ef43aafcf595..d78323faba86


git log ef43aafcf595..d78323faba86 --date=short --no-merges --format='%ad %ae %s'
2018-07-11 steveanton@webrtc.org Remove AddTrack override with MediaStreams
2018-07-11 buildbot@webrtc.org Roll chromium_revision c797a4c559..2e3b05bf93 (574101:574261)
2018-07-11 danilchap@webrtc.org Reland "Remove rtc::Optional alias and api:optional target"
2018-07-11 tkchin@webrtc.org Clear interrupted flag on CallKit audio activation.
2018-07-11 yujo@chromium.org Remove not-updating-stats log message.
2018-07-11 qingsi@google.com Revert "Reland "Replace the usage of MetricsObserverInterface by RTC_HISTOGRAM_*.""
2018-07-11 fbarchard@google.com Include libyuv/planar_functions.h for CopyPlane
2018-07-11 stefan@webrtc.org Moved PayloadRouter to call/.
2018-07-11 sprang@webrtc.org Fix incorrect screenshare bitrate configs in test cases
2018-07-11 magjed@webrtc.org Android: Remove use of EGLContexts in PeerConnectionFactory
2018-07-11 magjed@webrtc.org VCMPacket: Set VCMNaluCompleteness for generic codecs
2018-07-11 mbonadei@webrtc.org Removing unneeded warning suppression flags from audio_device.
2018-07-11 yura.yaroshevich@gmail.com Fixed crash when PCF is destroyed before RTCRtpReceiver in ObjC
2018-07-11 srte@webrtc.org Removes unnecessary destructor checks in tests.
2018-07-11 hbos@webrtc.org RtpReceiverInterface::stream_ids() added.
2018-07-11 mbonadei@webrtc.org Remove -Wno-reorder from examples/BUILD.gn.
2018-07-11 andersc@webrtc.org Fix null check in CricketToWebRtcVideoDecoderFactory
2018-07-11 mbonadei@webrtc.org Add missing dependency on //third_party/abseil-cpp/absl/memory.
2018-07-11 buildbot@webrtc.org Roll chromium_revision 916138ba7e..c797a4c559 (573665:574101)
2018-07-11 mbonadei@webrtc.org Removing -Wno-sentinel from examples/BUILD.gn.
2018-07-11 mbonadei@webrtc.org Add missing dependencies on //third_party/abseil-cpp/absl/memory.
2018-07-11 asapersson@webrtc.org Add unit tests for simulcast layer configurations.
2018-07-11 ilnik@webrtc.org Revert "Remove rtc::Optional alias and api:optional target"
2018-07-11 qingsi@webrtc.org Revert "Add Profile 2 configuration to VP9 Encoder and Decoder"
2018-07-11 qingsi@google.com Reland "Replace the usage of MetricsObserverInterface by RTC_HISTOGRAM_*."
2018-07-11 emircan@webrtc.org Add Profile 2 to default supported profiles
2018-07-10 emircan@webrtc.org Add Profile 2 configuration to VP9 Encoder and Decoder
2018-07-10 qingsi@google.com Revert "Replace the usage of MetricsObserverInterface by RTC_HISTOGRAM_*."
2018-07-10 ouj@fb.com Add unittest for default severity level of RTCCallbackLogger
2018-07-10 qingsi@google.com Replace the usage of MetricsObserverInterface by RTC_HISTOGRAM_*.
2018-07-10 danilchap@webrtc.org Remove rtc::Optional alias and api:optional target
2018-07-10 magjed@webrtc.org Android: Fix QueryVideoEncoder() for H264 High Profile
2018-07-10 philipel@webrtc.org Actually input packets into the PacketBuffer.
2018-07-10 alessiob@webrtc.org Reland "IWYU: Add <cmath> for fabsf() and powf(), switch to C++ versions"
2018-07-10 magjed@webrtc.org Android: Honor disabling legacy video HW codec acceleration
2018-07-10 saza@webrtc.org Fix fuzzer-found flow-over in AGC1
2018-07-10 mbonadei@webrtc.org Removing -Wno-microsoft-extra-qualification.
2018-07-10 mbonadei@webrtc.org Removing rtc_unittests warning suppression flags.
2018-07-10 mbonadei@webrtc.org Remove -Wno-sign-compare, -Wno-unused-variable and -Wno-format.
2018-07-10 philipel@webrtc.org Change RTPVideoTypeHeader to absl::variant and move RTPVideoHeader into its own h/cc file.
2018-07-10 srte@webrtc.org Moves VideoAnalyzer class to a separate file.
2018-07-10 srte@webrtc.org Removes unnecessary destructor checks in tests.
2018-07-10 buildbot@webrtc.org Roll chromium_revision ef3275516a..916138ba7e (573561:573665)
2018-07-10 ouj@fb.com Regenerate mock peer connection to add missing mock methods.
2018-07-10 sakal@webrtc.org Update examples to use the new VideoCapturer interface.
2018-07-10 ouj@fb.com Make the default severity level of RTCCallbackLogger match the comment on its header.
2018-07-10 andersc@webrtc.org Migrate legacy Android video codec factories.


Created with:
  gclient setdep -r src/third_party/webrtc@d78323faba86

The AutoRoll server is located here: https://webrtc-chromium-roll.skia.org

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=luci.chromium.try:linux_chromium_archive_rel_ng;master.tryserver.chromium.mac:mac_chromium_archive_rel_ng

BUG=chromium:None,chromium:None,chromium:None,chromium:861721,chromium:None,chromium:None,chromium:None,chromium:none,chromium:819294,chromium:860638,chromium:none,chromium:None,chromium:None
TBR=webrtc-chromium-sheriffs-robots@google.com

Change-Id: I76bc9222cb5ac91beb290da2d1740e35a029679c
Reviewed-on: https://chromium-review.googlesource.com/1134448
Reviewed-by: webrtc-chromium-autoroll <webrtc-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: webrtc-chromium-autoroll <webrtc-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#574470}
[modify] https://crrev.com/2b0529974fae81606d19de5722d21320de4678e8/DEPS

Comment 44 by bugdroid1@chromium.org, Jul 17 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/997e3c083a5fcdc008860ca51a4739bd23903e10

commit 997e3c083a5fcdc008860ca51a4739bd23903e10
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Tue Jul 17 11:56:52 2018

skia: Build skcms with -mfp16-format=ieee on GCC ARM builds

skcms' Transform_inl.h assumes support for 16-bit floating point in the
__ARM_FP macro means the __fp16 (and corresponding SIMD data type) is
present.

While this is currently true for LLVM, which always sets the equivalent of
GCC's -mfp16-format=ieee internally on ARM builds, GCC explicitly needs that
option to be specified in order to enable support for __fp16. Doing so
allows GCC ARM builds to proceed without the following error:

    ../../third_party/skia/third_party/skcms/src/Transform_inl.h: In function 'F_from_Half_':
    ../../third_party/skia/third_party/skcms/src/Transform_inl.h:101:72: error: 'float16x4_t' undeclared (first use in this function); did you mean 'float32x4_t'?
         SI ATTR F   NS(F_from_Half_(U16 half)) { return      vcvt_f32_f16((float16x4_t)half); }
                                                                            ^~~~~~~~~~~
                                                                            float32x4_t
    ../../third_party/skia/third_party/skcms/src/Transform_inl.h:101:72: note: each undeclared identifier is reported only once for each function it appears in
    ../../third_party/skia/third_party/skcms/src/Transform_inl.h:101:84: error: expected ')' before 'half'
         SI ATTR F   NS(F_from_Half_(U16 half)) { return      vcvt_f32_f16((float16x4_t)half); }
                                                                                        ^~~~
                                                                                        )
    ../../third_party/skia/third_party/skcms/src/Transform_inl.h: In function 'Half_from_F_':
    ../../third_party/skia/third_party/skcms/src/Transform_inl.h:102:5: error: can't convert a value of type 'int' to vector type '__vector(4) short unsigned int' which has different size
         SI ATTR U16 NS(Half_from_F_(F      f)) { return (U16)vcvt_f16_f32(                f); }
         ^~

Bug: 819294
Change-Id: Ib7417fb9bdc6bd93553084053ba69f9d3409b112
Reviewed-on: https://chromium-review.googlesource.com/1138251
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Raphael Kubo da Costa (CET) <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#575608}
[modify] https://crrev.com/997e3c083a5fcdc008860ca51a4739bd23903e10/skia/BUILD.gn

Comment 45 by bugdroid1@chromium.org, Jul 19 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b991e98fe3af06c601681332680a19c77d0aec25

commit b991e98fe3af06c601681332680a19c77d0aec25
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Thu Jul 19 17:30:12 2018

editing: Fix build with GCC after #575975

GCC currently fails to build selection_adjuster.cc after 7bd29404a ("[Blink]
Avoid crossing editing boundaries selection"):

    ../../third_party/blink/renderer/core/editing/selection_adjuster.cc:607:13: error: explicit specialization in non-namespace scope ‘class blink::EditingBoundaryAdjuster’
       template <>
                 ^
    ../../third_party/blink/renderer/core/editing/selection_adjuster.cc:611:37: error: template-id ‘IsEditingBoundary<blink::EditingInFlatTreeStrategy>’ in declaration of primary template
           bool is_previous_node_editable) {
                                         ^

which can be fixed by specializing
EditingBoundaryAdjuster::IsEditingBoundary() outside of
EditingBoundaryAdjuster's declaration.

Bug: 819294, 847192
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I624d693c4b629aefc5ada45313cdcd7242a00a2d
Reviewed-on: https://chromium-review.googlesource.com/1143393
Reviewed-by: Xiaocheng Hu <xiaochengh@chromium.org>
Commit-Queue: Raphael Kubo da Costa (CET) <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#576542}
[modify] https://crrev.com/b991e98fe3af06c601681332680a19c77d0aec25/third_party/blink/renderer/core/editing/selection_adjuster.cc

Comment 46 by bugdroid1@chromium.org, Jul 27 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f96614b8ae18bfd7aa573a1a1c5aa4592102dce1

commit f96614b8ae18bfd7aa573a1a1c5aa4592102dce1
Author: Jose Dapena Paz <jose.dapena@lge.com>
Date: Fri Jul 27 10:49:31 2018

DownloadDB: include <memory> for std::unique_ptr

IWYU: it fixes the build with libstdc++ after dc24395b "Retry initializing download
db on failure"

Bug: 819294
Change-Id: Id8a9bdf56f74d979d4e48747a3a6fbd9c51f59c6
Reviewed-on: https://chromium-review.googlesource.com/1150530
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Reviewed-by: Min Qin <qinmin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578586}
[modify] https://crrev.com/f96614b8ae18bfd7aa573a1a1c5aa4592102dce1/components/download/database/download_db.h

Comment 47 by oetu...@nvidia.com, Jul 27 2018

Cc: xingliu@chromium.org qin...@chromium.org shaktisahu@chromium.org
Issue 868290 has been merged into this issue.

Comment 48 by bugdroid1@chromium.org, Jul 27 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b2542bdc1868d86fb2b405bf160e31c55e61fdaf

commit b2542bdc1868d86fb2b405bf160e31c55e61fdaf
Author: Jose Dapena Paz <jose.dapena@lge.com>
Date: Fri Jul 27 15:41:08 2018

GCC: fix regressions after declaring constexpr many geometry types methods.

Commit 19105bf introduced using constexpr for lots of methods. It introduced
two kinds of regressions building with GCC:
- Some depended on FloatSize::IsZero, which is not only non constexpr, but
  it cannot be constexpr either, as it depends on fabs, that is not constexpr.
- Some depended on methods that were not constexpr (but we could fix them to
  be, as FloatQuat::P1() or FloatSize::SetWidth().

Those do not break in clang as it is a less picky in the scenario of
defining a constexpr method that depends on non-constexpr methods.

This patch fixes usage of constexpr in both cases adding constexpr
implementations when needed. In particular it replaces fabs calls that are
not constexpr at least in libc++ with a constexpr replacement, fixing
GCC build and adding some extra constexpr that were missing.

Bug: 819294
Change-Id: Ia1143ad4be1067bb8a918f0224b657523599ea97
Reviewed-on: https://chromium-review.googlesource.com/1150529
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578654}
[modify] https://crrev.com/b2542bdc1868d86fb2b405bf160e31c55e61fdaf/third_party/blink/renderer/platform/geometry/double_size.cc
[modify] https://crrev.com/b2542bdc1868d86fb2b405bf160e31c55e61fdaf/third_party/blink/renderer/platform/geometry/double_size.h
[modify] https://crrev.com/b2542bdc1868d86fb2b405bf160e31c55e61fdaf/third_party/blink/renderer/platform/geometry/float_quad.h
[modify] https://crrev.com/b2542bdc1868d86fb2b405bf160e31c55e61fdaf/third_party/blink/renderer/platform/geometry/float_size.h

Comment 49 by bugdroid1@chromium.org, Jul 30 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ab027ae0b4f60b704322f4cb291270412eca1390

commit ab027ae0b4f60b704322f4cb291270412eca1390
Author: Dave Tapuska <dtapuska@chromium.org>
Date: Mon Jul 30 15:15:11 2018

Fix GCC build issue with WTF Vector change

Follow up from https://chromium.googlesource.com/chromium/src.git/+/9d0fd86cf833cd7f35eea342f15c827516938d67

Adjust mojo template. It built correctly with clang but failed to build
with GCC.

BUG=652586, 819294
TBR=jam@chromium.org

Change-Id: I985bf855d5fce1f2c774123a8f6103e97aedb9f6
Reviewed-on: https://chromium-review.googlesource.com/1154990
Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: Raphael Kubo da Costa (CET) <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#579040}
[modify] https://crrev.com/ab027ae0b4f60b704322f4cb291270412eca1390/mojo/public/cpp/bindings/array_traits_wtf_vector.h

Comment 50 by bugdroid1@chromium.org, Jul 30 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2ee9326b641f2ec436074257f9deaefc828aa6d5

commit 2ee9326b641f2ec436074257f9deaefc828aa6d5
Author: Jose Dapena Paz <jose.dapena@lge.com>
Date: Mon Jul 30 19:09:43 2018

GCC: use wtf_size_t on WTF::Vector cross thread copier.

Another regression in GCC build caused by the introduction of wtf_size_t on
WTF::Vector in the commit 9d0fd86cf833 "Introduce wtf_size_t which is typedef
for uint32_t".

In this case, it failed because the WTF::CrossThreadCopier structs for vector
were still using size_ instead of wtf_size_t.

Bug: 819294
Change-Id: I62811a58218696f5c3bd409132b44954ff682a40
Reviewed-on: https://chromium-review.googlesource.com/1155110
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
Cr-Commit-Position: refs/heads/master@{#579112}
[modify] https://crrev.com/2ee9326b641f2ec436074257f9deaefc828aa6d5/third_party/blink/renderer/platform/cross_thread_copier.h

Comment 51 by bugdroid1@chromium.org, Jul 31 2018

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/32f4d9ca4b2c16b425af6126c2d191c964bc2e1c

commit 32f4d9ca4b2c16b425af6126c2d191c964bc2e1c
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Tue Jul 31 08:29:45 2018

CORS: Take a std::initializer_list in cors_error_string.cc's Append()

Follow-up to fc0443b1 ("Update CORS error messages"), which broke the GCC
build because GCC does not implicitly covert all array items to StringViews
when Append() is invoked:

    ../../third_party/blink/renderer/platform/loader/cors/cors_error_string.cc: In function ‘WTF::String blink::CORS::GetErrorString(const network::CORSErrorStatus&, const blink::KURL&, const blink::KURL&, const blink::SecurityOrigin&, blink::Resource::Type, const WTF::AtomicString&)’:
    ../../third_party/blink/renderer/platform/loader/cors/cors_error_string.cc:72:55: error: no matching function for call to ‘Append(WTF::StringBuilder&, <brace-enclosed initializer list>)’
                        last_request_url.GetString(), "' "});
                                                           ^
    ../../third_party/blink/renderer/platform/loader/cors/cors_error_string.cc:24:6: note: candidate: ‘template<long unsigned int N> void blink::CORS::{anonymous}::Append(WTF::StringBuilder&, const WTF::StringView (&)[N])’
      void Append(StringBuilder& builder, const StringView (&views)[N]) {
          ^~~~~~
    ../../third_party/blink/renderer/platform/loader/cors/cors_error_string.cc:24:6: note:   template argument deduction/substitution failed:
    ../../third_party/blink/renderer/platform/loader/cors/cors_error_string.cc:72:55: note:   mismatched types ‘WTF::StringView’ and ‘const char*’
                        last_request_url.GetString(), "' "});
                                                           ^

Make the local Append() function take a std::initializer_list<StringView> to
make sure all items are converted to that type on invocation.

Bug: 819294
Change-Id: I7c14773589dda16e7c882270e206d1b66dbb73b4
Reviewed-on: https://chromium-review.googlesource.com/1155113
Reviewed-by: Adam Rice <ricea@chromium.org>
Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
Commit-Queue: Raphael Kubo da Costa (CET) <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#579346}
[modify] https://crrev.com/32f4d9ca4b2c16b425af6126c2d191c964bc2e1c/third_party/blink/renderer/platform/loader/cors/cors_error_string.cc

Comment 52 by bugdroid1@chromium.org, Aug 7

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2e0f0bb3edb6f5d941bb0820a9ec9fd694ad31ab

commit 2e0f0bb3edb6f5d941bb0820a9ec9fd694ad31ab
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Tue Aug 07 18:20:12 2018

NavigationURLLoaderImpl: Fix GCC build after #580595

Commit bf7722f9 ('Reland "Fixes
ExtensionWebRequestApiTest.WebRequestBlocking with network service"') caused
the GCC build to hit https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84849,
where having base::NoDestructor<T<U>> and passing an initializer list of Us
does not work.

Explicitly create an std::set<string> to pass to base::NoDestructor, just
like we did in https://chromium-review.googlesource.com/944405 before.

Bug: 819294
Change-Id: I8077b39959d8a53daef40bc33f8293f15c597ce0
Reviewed-on: https://chromium-review.googlesource.com/1165360
Reviewed-by: Matt Menke <mmenke@chromium.org>
Reviewed-by: Charlie Harrison <csharrison@chromium.org>
Commit-Queue: Raphael Kubo da Costa (CET) <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#581287}
[modify] https://crrev.com/2e0f0bb3edb6f5d941bb0820a9ec9fd694ad31ab/content/browser/loader/navigation_url_loader_impl.cc

Comment 53 by bugdroid1@chromium.org, Aug 8

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/db900e74d50878e2d48399a310a6de1546e50ba3

commit db900e74d50878e2d48399a310a6de1546e50ba3
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Wed Aug 08 16:54:42 2018

JsLiteralHelper: Do not make overloads for base::*Value template specializations

Commit b7e7131a ("Introduce EvalJs, a replacement for ExecuteScript and
friends") broke the GCC build with the JsLiteralHelper::Convert() overloads
for base::Value and base::ListValue:

    In file included from ../../content/public/test/test_frame_navigation_observer.h:11:0,
                     from ../../content/public/test/test_frame_navigation_observer.cc:5:
    ../../content/public/test/browser_test_utils.h:416:13: error: explicit specialization in non-namespace scope ‘struct content::JsLiteralHelper<T>’
       template <>
                 ^
    ../../content/public/test/browser_test_utils.h:421:13: error: explicit specialization in non-namespace scope ‘struct content::JsLiteralHelper<T>’
       template <>
                 ^

Since base::Value and base::ListValue overloads are not template
specializations anyway, and a non-template overload is preferred over a
specialized one, we can just drop the "template <>" part and fix the build.

Bug: 819294
Change-Id: I20c4bbed63b2ad7bb3f9146d790159ae1468ece6
Reviewed-on: https://chromium-review.googlesource.com/1167059
Commit-Queue: Nick Carter <nick@chromium.org>
Reviewed-by: Nick Carter <nick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#581601}
[modify] https://crrev.com/db900e74d50878e2d48399a310a6de1546e50ba3/content/public/test/browser_test_utils.h

Comment 54 by bugdroid1@chromium.org, Aug 13

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5c66bf91078e24f4281690b89fdcb6edfe332b45

commit 5c66bf91078e24f4281690b89fdcb6edfe332b45
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Mon Aug 13 17:08:57 2018

MessagePopupCollection: Include <memory> for std::unique_ptr

This fixes the libstdc++ build after commit d540c125c1 ("New implementation
of MessagePopupCollection").

Bug: 819294
Change-Id: Ibf45feee935b25d48564f84326b95f33529ab879
Reviewed-on: https://chromium-review.googlesource.com/1172784
Reviewed-by: Evan Stade <estade@chromium.org>
Commit-Queue: Raphael Kubo da Costa (CET) <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#582622}
[modify] https://crrev.com/5c66bf91078e24f4281690b89fdcb6edfe332b45/ui/message_center/views/message_popup_collection.h

Comment 55 by bugdroid1@chromium.org, Aug 13

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/350b0daeb13e5bbf37fd6f7c310eb892e8e89718

commit 350b0daeb13e5bbf37fd6f7c310eb892e8e89718
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Mon Aug 13 17:16:53 2018

BrowserThemePack: Fix GCC build after #581022

Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84849, having
base::NoDestructor<T<U>> and passing an initializer list of Us does not
work.

Just explicitly create a base::flat_set in the constructor. See also:
https://chromium-review.googlesource.com/1165360

Bug: 819294
Change-Id: I24593dc199df47c2f8fd316436517704d159e4fa
Reviewed-on: https://chromium-review.googlesource.com/1170905
Commit-Queue: Raphael Kubo da Costa (CET) <raphael.kubo.da.costa@intel.com>
Reviewed-by: Evan Stade <estade@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582625}
[modify] https://crrev.com/350b0daeb13e5bbf37fd6f7c310eb892e8e89718/chrome/browser/themes/browser_theme_pack.cc

Comment 56 by bugdroid1@chromium.org, Aug 13

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/63c11722cdcba9b575bd2af0bb0662ec0fa577b6

commit 63c11722cdcba9b575bd2af0bb0662ec0fa577b6
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Mon Aug 13 22:34:55 2018

VerifiedContents: Include <memory> for std::unique_ptr

IWYU. This fixes the libstdc++ build after commit 11484015 ("[Extensions]
Add a static factory to create VerifiedContents").

Bug: 819294
Change-Id: I5fea2d0b22a0a0b70d0a8e5cd5499cb3c0735385
Reviewed-on: https://chromium-review.googlesource.com/1172786
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Commit-Queue: Raphael Kubo da Costa (CET) <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#582716}
[modify] https://crrev.com/63c11722cdcba9b575bd2af0bb0662ec0fa577b6/extensions/browser/verified_contents.h

Comment 57 by raphael....@intel.com, Sep 17

Blockedon: 882347

Comment 58 by msi...@igalia.com, Sep 17

Cc: msi...@igalia.com

Comment 59 by bugdroid1@chromium.org, Oct 8

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cc843eb64f6599d9ede176f711fe6355015c30b1

commit cc843eb64f6599d9ede176f711fe6355015c30b1
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Mon Oct 08 22:33:38 2018

PictureLayerImpl: Use ceil() instead of ceilf()

ceilf() is only formally mentioned in C++17, even though previous versions
of the standard say <cmath> should have the same contents as C's math.h.

libstdc++ does not ship ceilf() in its cmath, but the ceil(float) overload
that _is_ in the standard is available everywhere, so use that instead.

This fixes the build with libstdc++ after 77b67445ba ("Elements with fixed
bottom and top stick to top"):

    ../../cc/layers/picture_layer_impl.cc: In member function ‘void cc::PictureLayerImpl::UpdateViewportRectForTilePriorityInContentSpace()’:
    ../../cc/layers/picture_layer_impl.cc:738:16: error: ‘ceilf’ is not a member of ‘std’
               std::ceilf(-total_controls_height * hidden_ratio));  // bottom
                    ^~~~~
    ../../cc/layers/picture_layer_impl.cc:738:16: note: suggested alternative: ‘ceil’
               std::ceilf(-total_controls_height * hidden_ratio));  // bottom
                    ^~~~~
                    ceil

Bug: 819294
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ida69eb3127ca132e7090c9aad0dd17dc314b6992
Reviewed-on: https://chromium-review.googlesource.com/c/1264537
Commit-Queue: David Bokan <bokan@chromium.org>
Reviewed-by: David Bokan <bokan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#597709}
[modify] https://crrev.com/cc843eb64f6599d9ede176f711fe6355015c30b1/cc/layers/picture_layer_impl.cc

Comment 60 by bugdroid1@chromium.org, Oct 10

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9b3719707b8c4c46a74be5951c4ad6cce22217fc

commit 9b3719707b8c4c46a74be5951c4ad6cce22217fc
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Wed Oct 10 18:03:45 2018

chrome views: Do not rely on MaterialDesignController forward declarations

This fixes the libstdc++ build after #595275 ("Relayout browser windows when
MD mode changes") and #596350 ("Relayout location bar buttons when MD mode
changes"), which was failing with errors such as

    ../../base/scoped_observer.h: In instantiation of ‘void ScopedObserver<Source, Observer>::RemoveAll() [with Source = ui::MaterialDesignController; Observer = ui::MaterialDesignControllerObserver]’:
    ../../base/scoped_observer.h:26:14:   required from ‘ScopedObserver<Source, Observer>::~ScopedObserver() [with Source = ui::MaterialDesignController; Observer = ui::MaterialDesignControllerObserver]’
    ../../chrome/browser/ui/views/frame/browser_frame.h:156:24:   required from here
    ../../base/scoped_observer.h:45:20: error: invalid use of incomplete type ‘class ui::MaterialDesignController’
           sources_[i]->RemoveObserver(observer_);
           ~~~~~~~~~~~~~^~~~~~~~~~~~~~

which likely comes from libstdc++'s std::vector::operator[] needing more
than a forward declaration to work.

Bug: 819294
Change-Id: Iac577346cc706713a60d8cd0aa205bd14a0b7b5a
Reviewed-on: https://chromium-review.googlesource.com/c/1273745
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Commit-Queue: Raphael Kubo da Costa (CET) <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#598398}
[modify] https://crrev.com/9b3719707b8c4c46a74be5951c4ad6cce22217fc/chrome/browser/ui/views/frame/browser_frame.h
[modify] https://crrev.com/9b3719707b8c4c46a74be5951c4ad6cce22217fc/chrome/browser/ui/views/location_bar/icon_label_bubble_view.h

Comment 61 by bugdroid1@chromium.org, Oct 10

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7f14947018f6928fc71f3c6ff2af87bace04e91c

commit 7f14947018f6928fc71f3c6ff2af87bace04e91c
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Wed Oct 10 18:07:45 2018

appcache: Make a few local parser functions non-constexpr

This fixes the GCC build, which was failing with errors such as

    ../../content/browser/appcache/appcache_manifest_parser.cc: In function ‘constexpr base::StringPiece content::{anonymous}::TrimToFirstNewLine(base::StringPiece)’:
    ../../content/browser/appcache/appcache_manifest_parser.cc:78:26: error: call to non-constexpr function ‘base::BasicStringPiece<STRING_TYPE> base::BasicStringPiece<STRING_TYPE>::substr(base::BasicStringPiece<STRING_TYPE>::size_type, base::BasicStringPiece<STRING_TYPE>::size_type) const [with STRING_TYPE = std::__cxx11::basic_string<char>; base::BasicStringPiece<STRING_TYPE>::size_type = long unsigned int]’
       return data.substr(skip);
                              ^

which actually makes sense, as base::BasicStringPiece::substr() is not a
constexpr function and is always called from the functions in
appcache_manifest_parser.cc, rendering their own constexpr specifiers
irrelevant.

MSVC also rejects similar code, so I've filed an upstream LLVM bug at
https://bugs.llvm.org/show_bug.cgi?id=39242

Original patch by Maksim Sisov <msisov@igalia.com>, whose original CL ended
up being deleted from Gerrit.

Bug: 819294
Change-Id: I269d35f701ca3fbbdb9c8fed248e80c7c4066633
Reviewed-on: https://chromium-review.googlesource.com/c/1273108
Commit-Queue: Victor Costan <pwnall@chromium.org>
Reviewed-by: Victor Costan <pwnall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#598401}
[modify] https://crrev.com/7f14947018f6928fc71f3c6ff2af87bace04e91c/content/browser/appcache/appcache_manifest_parser.cc

Comment 62 by bugdroid1@chromium.org, Oct 10

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/76d84f3dbd8d8d4cd955ccbd30dc9afd58b5a970

commit 76d84f3dbd8d8d4cd955ccbd30dc9afd58b5a970
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Wed Oct 10 21:38:05 2018

UkmFeatures: Fix GCC build after #598120

Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84849, having
base::NoDestructor<T<U>> and passing an initializer list of Us does not
work.

Just explicitly create a base::flat_set in the constructor. See also:
https://chromium-review.googlesource.com/c/chromium/src/+/1170905

Bug: 819294
Change-Id: I887b461bc1263af02ee9dc448aea1d9ff6d1e5c7
Reviewed-on: https://chromium-review.googlesource.com/c/1273746
Reviewed-by: Steven Holte <holte@chromium.org>
Commit-Queue: Raphael Kubo da Costa (CET) <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#598517}
[modify] https://crrev.com/76d84f3dbd8d8d4cd955ccbd30dc9afd58b5a970/chrome/browser/page_load_metrics/observers/use_counter/ukm_features.cc

Comment 63 by bugdroid1@chromium.org, Oct 10

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7c9af6c257d681159b8764c8d3d7b70f1d2f7d3a

commit 7c9af6c257d681159b8764c8d3d7b70f1d2f7d3a
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Wed Oct 10 21:38:33 2018

VideoFrame: Explicitly create a vector when creating a VideoFrameLayout

This fixes the GCC build after 53905008c ("Nuke set_strides in VideoFrame
and VideoFrameLayout"):

    ../../media/base/video_frame.cc: In static member function ‘static scoped_refptr<media::VideoFrame> media::VideoFrame::WrapExternalStorage(media::VideoPixelFormat, media::VideoFrame::StorageType, const gfx::Size&, const gfx::Rect&, const gfx::Size&, uint8_t*, size_t, base::TimeDelta, base::ReadOnlySharedMemoryRegion*, base::UnsafeSharedMemoryRegion*, base::SharedMemoryHandle, size_t)’:
    ../../media/base/video_frame.cc:963:75: error: call of overloaded ‘VideoFrameLayout(media::VideoPixelFormat&, const gfx::Size&, <brace-enclosed initializer list>)’ is ambiguous
                                {RowBytes(kYPlane, format, coded_size.width())}),
                                                                               ^
    In file included from ../../media/base/video_frame.h:28:0,
                     from ../../media/base/video_frame.cc:5:
    ../../media/base/video_frame_layout.h:67:3: note: candidate: media::VideoFrameLayout::VideoFrameLayout(media::VideoPixelFormat, const gfx::Size&, std::vector<media::VideoFrameLayout::Plane>, std::vector<long unsigned int>)
       VideoFrameLayout(VideoPixelFormat format,
       ^~~~~~~~~~~~~~~~
    ../../media/base/video_frame_layout.h:58:3: note: candidate: media::VideoFrameLayout::VideoFrameLayout(media::VideoPixelFormat, const gfx::Size&, std::vector<int>, std::vector<long unsigned int>)
       VideoFrameLayout(VideoPixelFormat format,
       ^~~~~~~~~~~~~~~~

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84849 makes GCC fail to choose
the right overload when a class with multiple constructors that can take
initializer lists receive one.

Explicitly create an std::vector to resolve all ambiguities. See also:
https://chromium-review.googlesource.com/c/chromium/src/+/1170905

Bug: 819294
Change-Id: I594a8c8a69cfd600ebd505aa6bc3c8369c15fead
Reviewed-on: https://chromium-review.googlesource.com/c/1273528
Reviewed-by: John Rummell <jrummell@chromium.org>
Commit-Queue: Raphael Kubo da Costa (CET) <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#598518}
[modify] https://crrev.com/7c9af6c257d681159b8764c8d3d7b70f1d2f7d3a/media/base/video_frame.cc

Comment 64 by bugdroid1@chromium.org, Oct 15

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/65be571f6ac2f7942b4df9e50b24da517f829eec

commit 65be571f6ac2f7942b4df9e50b24da517f829eec
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Mon Oct 15 20:26:10 2018

google_util: Explicitly use std::initializer_list with base::NoDestructor

Follow-up to ac53c5c53 ("Remove CR_DEFINE_STATIC_LOCAL from /components").
Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84849, having
base::NoDestructor<T<U>> and passing an initializer list of Us does not
work if this is not done explicitly, as GCC incorrectly fails to determine
which constructor overload to use:

    ../../components/google/core/common/google_util.cc: In function ‘bool google_util::{anonymous}::IsCanonicalHostGoogleHostname(base::StringPiece, google_util::SubdomainPermission)’:
    ../../components/google/core/common/google_util.cc:120:24: error: call of overloaded ‘NoDestructor(<brace-enclosed initializer list>)’ is ambiguous
           {GOOGLE_TLD_LIST});

See also: https://chromium-review.googlesource.com/c/chromium/src/+/1170905

Bug: 819294
Change-Id: Ie1490b6646d7998d636c485769caabf56c1cf44c
Reviewed-on: https://chromium-review.googlesource.com/c/1275854
Reviewed-by: Peter Kasting <pkasting@chromium.org>
Commit-Queue: Raphael Kubo da Costa (CET) <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#599733}
[modify] https://crrev.com/65be571f6ac2f7942b4df9e50b24da517f829eec/components/google/core/common/google_util.cc

Comment 65 by bugdroid1@chromium.org, Oct 25

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6f82585f66a5685a5a38ecb7c2765f0dc627659a

commit 6f82585f66a5685a5a38ecb7c2765f0dc627659a
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Thu Oct 25 22:02:09 2018

net service: Fix GCC build after commit e366fe60

Commit e366fe60 ("Servicified custom DNS configuration") added code that
follows the following pattern:

    base::Optional<T> Foo() {
      T t;
      return t;
    }

clang seems to automatically convert |t| to an rvalue reference, but GCC
fails with:

In file included from /usr/include/c++/7/vector:62:0,
                 from ../../services/network/public/cpp/host_resolver_mojom_traits.h:10,
                 from ../../services/network/public/cpp/host_resolver_mojom_traits.cc:5:
/usr/include/c++/7/bits/stl_construct.h: In instantiation of ‘void std::_Construct(_T1*, _Args&& ...) [with _T1 = mojo::InlinedStructPtr<network::mojom::DnsOverHttpsServer>; _Args = {const mojo::InlinedStructPtr<network::mojom::DnsOverHttpsServer>&}]’:
/usr/include/c++/7/bits/stl_uninitialized.h:83:18:   required from ‘static _ForwardIterator std::__uninitialized_copy<_TrivialValueTypes>::__uninit_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const mojo::InlinedStructPtr<network::mojom::DnsOverHttpsServer>*, std::vector<mojo::InlinedStructPtr<network::mojom::DnsOverHttpsServer> > >; _ForwardIterator = mojo::InlinedStructPtr<network::mojom::DnsOverHttpsServer>*; bool _TrivialValueTypes = false]’
/usr/include/c++/7/bits/stl_uninitialized.h:134:15:   required from ‘_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const mojo::InlinedStructPtr<network::mojom::DnsOverHttpsServer>*, std::vector<mojo::InlinedStructPtr<network::mojom::DnsOverHttpsServer> > >; _ForwardIterator = mojo::InlinedStructPtr<network::mojom::DnsOverHttpsServer>*]’
/usr/include/c++/7/bits/stl_uninitialized.h:289:37:   required from ‘_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, std::allocator<_Tp>&) [with _InputIterator = __gnu_cxx::__normal_iterator<const mojo::InlinedStructPtr<network::mojom::DnsOverHttpsServer>*, std::vector<mojo::InlinedStructPtr<network::mojom::DnsOverHttpsServer> > >; _ForwardIterator = mojo::InlinedStructPtr<network::mojom::DnsOverHttpsServer>*; _Tp = mojo::InlinedStructPtr<network::mojom::DnsOverHttpsServer>]’
/usr/include/c++/7/bits/stl_vector.h:331:31:   required from ‘std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&) [with _Tp = mojo::InlinedStructPtr<network::mojom::DnsOverHttpsServer>; _Alloc = std::allocator<mojo::InlinedStructPtr<network::mojom::DnsOverHttpsServer> >]’
../../base/optional.h:49:64:   required from ‘constexpr base::internal::OptionalStorageBase<T, <anonymous> >::OptionalStorageBase(base::in_place_t, Args&& ...) [with Args = {std::vector<mojo::InlinedStructPtr<network::mojom::DnsOverHttpsServer>, std::allocator<mojo::InlinedStructPtr<network::mojom::DnsOverHttpsServer> > >&}; T = std::vector<mojo::InlinedStructPtr<network::mojom::DnsOverHttpsServer> >; bool <anonymous> = false]’
../../base/optional.h:146:33:   required from ‘constexpr base::internal::OptionalBase<T>::OptionalBase(base::in_place_t, Args&& ...) [with Args = {std::vector<mojo::InlinedStructPtr<network::mojom::DnsOverHttpsServer>, std::allocator<mojo::InlinedStructPtr<network::mojom::DnsOverHttpsServer> > >&}; T = std::vector<mojo::InlinedStructPtr<network::mojom::DnsOverHttpsServer> >]’
../../base/optional.h:518:67:   required from ‘constexpr base::Optional<T>::Optional(U&&) [with U = std::vector<mojo::InlinedStructPtr<network::mojom::DnsOverHttpsServer> >&; typename std::enable_if<(((std::is_constructible<T, U&&>::value && (! std::is_same<typename std::remove_cv<typename std::remove_reference<_SrcTuple>::type>::type, base::in_place_t>::value)) && (! std::is_same<typename std::remove_cv<typename std::remove_reference<_SrcTuple>::type>::type, base::Optional<T> >::value)) && std::is_convertible<U&&, T>::value), bool>::type <anonymous> = 0; T = std::vector<mojo::InlinedStructPtr<network::mojom::DnsOverHttpsServer> >]’
../../services/network/public/cpp/host_resolver_mojom_traits.cc:168:10:   required from here
/usr/include/c++/7/bits/stl_construct.h:75:7: error: ‘mojo::InlinedStructPtr<S>::InlinedStructPtr(const mojo::InlinedStructPtr<S>&) [with S = network::mojom::DnsOverHttpsServer]’ is private within this context
     { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Bug: 819294
Change-Id: Ic4233296aac5036131a43551eea7e7e8961ea1f8
Reviewed-on: https://chromium-review.googlesource.com/c/1298993
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#602888}
[modify] https://crrev.com/6f82585f66a5685a5a38ecb7c2765f0dc627659a/services/network/public/cpp/host_resolver_mojom_traits.cc

Comment 66 by bugdroid1@chromium.org, Oct 29

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e609dbf1db989cbd275cd2d5512221e4f0a963c6

commit e609dbf1db989cbd275cd2d5512221e4f0a963c6
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Mon Oct 29 13:38:37 2018

SnapSelectionStrategy: Include <memory>

IWYU. std::unique_ptr needs <memory>, which was being included indirectly
and breaking the libstdc++ build after commit e806ef73a7 ("Snap after
pressing arrow key"):

In file included from ../../cc/input/snap_selection_strategy.cc:5:0:
../../cc/input/snap_selection_strategy.h:20:15: error: ‘unique_ptr’ in namespace ‘std’ does not name a template type
   static std::unique_ptr<SnapSelectionStrategy> CreateForEndPosition(
               ^~~~~~~~~~
../../cc/input/snap_selection_strategy.h:24:15: error: ‘unique_ptr’ in namespace ‘std’ does not name a template type
   static std::unique_ptr<SnapSelectionStrategy> CreateForDirection(
               ^~~~~~~~~~
../../cc/input/snap_selection_strategy.h:27:15: error: ‘unique_ptr’ in namespace ‘std’ does not name a template type
   static std::unique_ptr<SnapSelectionStrategy> CreateForEndAndDirection(
               ^~~~~~~~~~
../../cc/input/snap_selection_strategy.cc:9:6: error: ‘unique_ptr’ in namespace ‘std’ does not name a template type
 std::unique_ptr<SnapSelectionStrategy>
      ^~~~~~~~~~
../../cc/input/snap_selection_strategy.cc:18:6: error: ‘unique_ptr’ in namespace ‘std’ does not name a template type
 std::unique_ptr<SnapSelectionStrategy>
      ^~~~~~~~~~
../../cc/input/snap_selection_strategy.cc:24:6: error: ‘unique_ptr’ in namespace ‘std’ does not name a template type
 std::unique_ptr<SnapSelectionStrategy>
      ^~~~~~~~~~

Bug: 819294
Change-Id: I83c594b1ae71a34f21e77c7c9d866e47629c7a61
Reviewed-on: https://chromium-review.googlesource.com/c/1304418
Reviewed-by: David Bokan <bokan@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#603480}
[modify] https://crrev.com/e609dbf1db989cbd275cd2d5512221e4f0a963c6/cc/input/snap_selection_strategy.h

Comment 67 by bugdroid1@chromium.org, Nov 27

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8222afd27c8795b78e308d54a7f689791f51d7e9

commit 8222afd27c8795b78e308d54a7f689791f51d7e9
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Tue Nov 27 07:16:04 2018

CacheStorageRef: Drop noexcept from the default constructor

This fixes the GCC build after fdf95b6 ("CacheStorage: Refactor handle
ref-counting"):

    ../../content/browser/background_fetch/storage/match_requests_task.cc: In constructor ‘content::background_fetch::MatchRequestsTask::MatchRequestsTask(content::background_fetch::DatabaseTaskHost*, content::BackgroundFetchRegistrationId, std::unique_ptr<content::BackgroundFetchRequestMatchParams>, content::background_fetch::MatchRequestsTask::SettledFetchesCallback)’:
    ../../content/browser/background_fetch/storage/match_requests_task.cc:29:25: error: use of deleted function ‘content::CacheStorageRef<TargetType>::CacheStorageRef() [with TargetType = content::CacheStorageCache]’
           weak_factory_(this) {}
                             ^

With GCC, having that noexcept marker would require all members to be
marked with noexcept themselves (in this case, base::WeakPtr and its
hierarchy). While that could also be possible, the style guide only
explicitly mentions move constructors/assignment operators, and it is not
clear if having a noexcept default constructor brings any benefits.

clang is fine because we pass -fno-exceptions and it disables the same error
there, while GCC continues to raise it (bug 843143 and its corresponding CL
have a longer discussion on this issue).

Bug: 819294
Change-Id: I726cbc8d9e0d624c530a835373c0dbad32279b78
Reviewed-on: https://chromium-review.googlesource.com/c/1350954
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#611035}
[modify] https://crrev.com/8222afd27c8795b78e308d54a7f689791f51d7e9/content/browser/cache_storage/cache_storage_ref.h

Comment 68 by bugdroid1@chromium.org, Nov 28

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6e73ad4e27057a9ca76747eec49df6aeeaee315e

commit 6e73ad4e27057a9ca76747eec49df6aeeaee315e
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Wed Nov 28 08:04:57 2018

dns: Explicitly use std::initializer_list with base::NoDestructor

This fixes the GCC build after 65be571f ("Add DNS histograms for private DNS
usage, perf, and auto-upgradability").

Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84849, having
base::NoDestructor<T<U>> and passing an initializer list of Us does not
work if this is not done explicitly, as GCC incorrectly fails to determine
which constructor overload to use:

    ../../net/dns/host_resolver_impl.cc: In function ‘bool net::{anonymous}::DnsServerSupportsDoh(const net::IPAddress&)’:
    ../../net/dns/host_resolver_impl.cc:525:8: error: call of overloaded ‘NoDestructor(<brace-enclosed initializer list>)’ is ambiguous
           });
            ^
    In file included from ../../net/dns/host_resolver_impl.cc:42:
    ../../base/no_destructor.h:62:3: note: candidate: ‘base::NoDestructor<T>::NoDestructor(const base::NoDestructor<T>&) [with T = std::unordered_set<std::__cxx11::basic_string<char> >]’ <deleted>
       NoDestructor(const NoDestructor&) = delete;
       ^~~~~~~~~~~~
    ../../base/no_destructor.h:60:12: note: candidate: ‘base::NoDestructor<T>::NoDestructor(T&&) [with T = std::unordered_set<std::__cxx11::basic_string<char> >]’
       explicit NoDestructor(T&& x) { new (storage_) T(std::move(x)); }
                ^~~~~~~~~~~~
    ../../base/no_destructor.h:59:12: note: candidate: ‘base::NoDestructor<T>::NoDestructor(const T&) [with T = std::unordered_set<std::__cxx11::basic_string<char> >]’
       explicit NoDestructor(const T& x) { new (storage_) T(x); }
                ^~~~~~~~~~~~

See also: https://chromium-review.googlesource.com/c/chromium/src/+/1170905

Bug: 819294
Change-Id: I821c5215bf39c9c3caf50c614710dba551b0a19a
Reviewed-on: https://chromium-review.googlesource.com/c/1352353
Reviewed-by: Paul Jensen <pauljensen@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#611593}
[modify] https://crrev.com/6e73ad4e27057a9ca76747eec49df6aeeaee315e/net/dns/host_resolver_impl.cc

Comment 69 by bugdroid1@chromium.org, Nov 28

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2763df947d592ac42cc7e565b6ee7467c0d06cd3

commit 2763df947d592ac42cc7e565b6ee7467c0d06cd3
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Wed Nov 28 08:17:04 2018

WebIDBKey: Stop inlining ReleaseIdbKey()'s implementation

This fixes the libstdc++ build after 86293fce ("IndexedDB: Move
content/renderer/indexed_db/ to Blink, take 2"):

    In file included from /usr/include/c++/8/memory:80,
                     from ../../third_party/googletest/src/googlemock/include/gmock/gmock-actions.h:45,
                     from ../../third_party/googletest/src/googlemock/include/gmock/gmock.h:59,
                     from ../../testing/gmock/include/gmock/gmock.h:10,
                     from ../../third_party/blink/renderer/modules/indexeddb/mock_web_idb_callbacks.h:9,
                     from ../../third_party/blink/renderer/modules/indexeddb/mock_web_idb_callbacks.cc:5:
    /usr/include/c++/8/bits/unique_ptr.h: In instantiation of ‘void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = blink::IDBKey]’:
    /usr/include/c++/8/bits/unique_ptr.h:274:17:   required from ‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = blink::IDBKey; _Dp = std::default_delete<blink::IDBKey>]’
    ../../third_party/blink/public/platform/modules/indexeddb/web_idb_key.h:165:30:   required from here
    /usr/include/c++/8/bits/unique_ptr.h:79:16: error: invalid application of ‘sizeof’ to incomplete type ‘blink::IDBKey’
      static_assert(sizeof(_Tp)>0,
                    ^~~~~~~~~~~

libstdc++'s std::unique_ptr implementation has a few static_asserts in the
destructor, one of which requires that the type passed to unique_ptr is
fully declared at the time.

mock_web_idb_callbacks.cc is now in Blink, and it ends up indirectly
including web_idb_key.h, and now WebIDBKey::ReleaseIdbKey()'s call to
std::move() triggers that assert.

Move the implementation to the web_idb_key.cc to fix the issue.

Bug: 819294
Change-Id: Ia02ed14d4b53b3e75cad46ef8dadba8017c64d02
Reviewed-on: https://chromium-review.googlesource.com/c/1352184
Reviewed-by: Chase Phillips <cmp@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#611596}
[modify] https://crrev.com/2763df947d592ac42cc7e565b6ee7467c0d06cd3/third_party/blink/public/platform/modules/indexeddb/web_idb_key.h
[modify] https://crrev.com/2763df947d592ac42cc7e565b6ee7467c0d06cd3/third_party/blink/renderer/modules/exported/web_idb_key.cc

Comment 70 by bugdroid1@chromium.org, Nov 28

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/287f1e706d105d31b7913149025a30d8b1a37860

commit 287f1e706d105d31b7913149025a30d8b1a37860
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Wed Nov 28 08:18:19 2018

CallSetupStateTracker: Rename CallSetupState() to GetCallSetupState()

GCC is stricter than clang when it comes to class members' names and how
they can change the meaning of a previously existing symbol with the same
name:

    In file included from ../../third_party/blink/renderer/modules/peerconnection/call_setup_state_tracker_unittest.cc:5:
    ../../third_party/blink/renderer/modules/peerconnection/call_setup_state_tracker.h:102:35: error: declaration of ‘blink::CallSetupState blink::CallSetupStateTracker::CallSetupState() const’ [-fpermissive]
       CallSetupState CallSetupState() const;
                                       ^~~~~
    ../../third_party/blink/renderer/modules/peerconnection/call_setup_state_tracker.h:79:12: error: changes meaning of ‘CallSetupState’ from ‘enum class blink::CallSetupState’ [-fpermissive]
     enum class CallSetupState {
                ^~~~~~~~~~~~~~

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84709 contains a longer
explanation, but essentially having a |CallSetupState()| method can change
the meaning of references to the |CallSetupState| enum in the code depending
on where it is declared, which contradicts the C++ standard.

Fix it by renaming the method to |GetCallSetupState()| after commit
7b1a3d2d1 ("CallSetupStateTracker::CallSetupState() added").

Bug: 819294
Change-Id: I5660c7c39d107343567452a5575205090c23cae8
Reviewed-on: https://chromium-review.googlesource.com/c/1352354
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#611597}
[modify] https://crrev.com/287f1e706d105d31b7913149025a30d8b1a37860/third_party/blink/renderer/modules/peerconnection/call_setup_state_tracker.cc
[modify] https://crrev.com/287f1e706d105d31b7913149025a30d8b1a37860/third_party/blink/renderer/modules/peerconnection/call_setup_state_tracker.h
[modify] https://crrev.com/287f1e706d105d31b7913149025a30d8b1a37860/third_party/blink/renderer/modules/peerconnection/call_setup_state_tracker_unittest.cc
[modify] https://crrev.com/287f1e706d105d31b7913149025a30d8b1a37860/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_test.cc

Comment 71 by bugdroid1@chromium.org, Nov 28

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9f029b08083a905e6f304a3d7c2e4c0a7de67ce4

commit 9f029b08083a905e6f304a3d7c2e4c0a7de67ce4
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Wed Nov 28 08:19:33 2018

FuzzedDataProvider: Include the right headers for CHAR_BIT and memcpy

This fixes the build with libstdc++ after c416f80a9 ("Refactor
base::FuzzedDataProvider and fix the calling sites"):

* CHAR_BIT is part of limits.h (or <climits>), not the C++ <limits> header
* std::memcpy() needs <cstring>

Bug: 819294
Change-Id: I71439bd56c68fb7600a816ce03a71711ccfb00db
Reviewed-on: https://chromium-review.googlesource.com/c/1352320
Reviewed-by: Max Moroz <mmoroz@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#611598}
[modify] https://crrev.com/9f029b08083a905e6f304a3d7c2e4c0a7de67ce4/base/test/fuzzed_data_provider.h

Comment 72 by bugdroid1@chromium.org, Nov 28

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/707771a033e3e99edb0e2cb35f860761968b9dc2

commit 707771a033e3e99edb0e2cb35f860761968b9dc2
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Wed Nov 28 12:21:23 2018

CallSetupStateTrackerTest: Fix template handling in member functions

This fixes the build with GCC, which was complaining with error messages
such as:

    ../../third_party/blink/renderer/modules/peerconnection/call_setup_state_tracker_unittest.cc:60:13: error: explicit specialization in non-namespace scope ‘class blink::CallSetupStateTrackerTest’
       template <>
                 ^
    ../../third_party/blink/renderer/modules/peerconnection/call_setup_state_tracker_unittest.cc:65:13: error: explicit specialization in non-namespace scope ‘class blink::CallSetupStateTrackerTest’
       template <>
                 ^
    ../../third_party/blink/renderer/modules/peerconnection/call_setup_state_tracker_unittest.cc:66:17: error: ‘blink::AnswererState blink::CallSetupStateTrackerTest::current_state() const’ cannot be overloaded with ‘blink::OffererState blink::CallSetupStateTrackerTest::current_state() const’
       AnswererState current_state() const {
                     ^~~~~~~~~~~~~
    ../../third_party/blink/renderer/modules/peerconnection/call_setup_state_tracker_unittest.cc:61:16: note: previous declaration ‘blink::OffererState blink::CallSetupStateTrackerTest::current_state() const’
       OffererState current_state() const {
                    ^~~~~~~~~~~~~

For current_state(), move the template specializations outside of
CallSetupStateTrackerTest. Having them in CallSetupStateTrackerTest
officially requires C++17 (specifically, C++ DR727). While clang has
implemented DR727 for other -std= options, GCC is stricter and only builds
that code in C++17 mode.

For NoteStateEvent, drop the template bits altogether: the two
NoteStateEvent() functions work as regular overloads and do not need any
templates.

Bug: 819294
Change-Id: I3f839d9a70670de1f52db14efcbd10b3a199b84e
Reviewed-on: https://chromium-review.googlesource.com/c/1352256
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611666}
[modify] https://crrev.com/707771a033e3e99edb0e2cb35f860761968b9dc2/third_party/blink/renderer/modules/peerconnection/call_setup_state_tracker_unittest.cc

Comment 73 by bugdroid1@chromium.org, Nov 29

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cd8b2fb824e19b6406a150fb4ff932a0375ea505

commit cd8b2fb824e19b6406a150fb4ff932a0375ea505
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Thu Nov 29 09:24:31 2018

WebIDBValue: Stop inlining ReleaseIdbValue()'s implementation

This fixes the libstdc++ build after 86293fce ("IndexedDB: Move
content/renderer/indexed_db/ to Blink, take 2"):

    In file included from /usr/include/c++/8/memory:80,
                     from ../../mojo/public/cpp/system/buffer.h:17,
                     from ../../mojo/public/cpp/system/core.h:8,
                     from ../../mojo/public/cpp/bindings/lib/bindings_internal.h:16,
                     from ../../mojo/public/cpp/bindings/lib/array_internal.h:18,
                     from ../../mojo/public/cpp/bindings/array_data_view.h:10,
                     from gen/third_party/blink/public/mojom/indexeddb/indexeddb.mojom-shared.h:17,
                     from ../../third_party/blink/public/common/indexeddb/web_idb_types.h:29,
                     from ../../third_party/blink/renderer/modules/indexeddb/indexed_db_dispatcher.h:12,
                     from ../../third_party/blink/renderer/modules/indexeddb/indexed_db_dispatcher.cc:5:
    /usr/include/c++/8/bits/unique_ptr.h: In instantiation of ‘void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = blink::IDBValue]’:
    /usr/include/c++/8/bits/unique_ptr.h:274:17:   required from ‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = blink::IDBValue; _Dp = std::default_delete<blink::IDBValue>]’
    ../../third_party/blink/public/platform/modules/indexeddb/web_idb_value.h:49:30:   required from here
    /usr/include/c++/8/bits/unique_ptr.h:79:16: error: invalid application of ‘sizeof’ to incomplete type ‘blink::IDBValue’
      static_assert(sizeof(_Tp)>0,
                    ^~~~~~~~~~~

libstdc++'s std::unique_ptr implementation has a few static_asserts in the
destructor, one of which requires that the type passed to unique_ptr is
fully declared at the time.

indexed_db_dispatcher.cc is now in Blink, and it ends up indirectly
including web_idb_value.h, and now WebIDBValue::ReleaseIdbValue()'s call to
std::move() triggers that assert.

Since we cannot include idb_value.h in web_idb_value.h without triggering
checkdeps, move the implementation to web_idb_value.cc instead.

Bug: 819294
Change-Id: I5fdcfab3fa83729863b5f825568780a0ccb0d96f
Reviewed-on: https://chromium-review.googlesource.com/c/1352251
Reviewed-by: Victor Costan <pwnall@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#612115}
[modify] https://crrev.com/cd8b2fb824e19b6406a150fb4ff932a0375ea505/third_party/blink/public/platform/modules/indexeddb/web_idb_value.h
[modify] https://crrev.com/cd8b2fb824e19b6406a150fb4ff932a0375ea505/third_party/blink/renderer/modules/exported/web_idb_value.cc

Comment 74 by bugdroid1@chromium.org, Dec 6

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/763b79a9142f3f063eca4504dc9a45b7e75e252f

commit 763b79a9142f3f063eca4504dc9a45b7e75e252f
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Thu Dec 06 15:22:28 2018

gpu_init: Stop inlining GpuInit::TakeDefaultOffscreenSurface()

This fixes the GCC build after commit b6ef3ba2a3 ("Pass GpuPreferences to
in-process GPU in Mash"):

    In file included from ../../content/utility/utility_service_factory.h:12,
                     from ../../content/utility/utility_service_factory.cc:5:
    ../../base/memory/scoped_refptr.h: In instantiation of ‘static void scoped_refptr<T>::Release(T*) [with T = gl::GLSurface]’:
    ../../base/memory/scoped_refptr.h:208:14:   required from ‘scoped_refptr<T>::~scoped_refptr() [with T = gl::GLSurface]’
    ../../gpu/ipc/service/gpu_init.h:70:48:   required from here
    ../../base/memory/scoped_refptr.h:284:8: error: invalid use of incomplete type ‘class gl::GLSurface’
       ptr->Release();
       ~~~~~^~~~~~~
    In file included from ../../services/viz/service.h:8,
                     from ../../content/utility/utility_service_factory.cc:35:
    ../../gpu/ipc/service/gpu_init.h:22:7: note: forward declaration of ‘class gl::GLSurface’
     class GLSurface;
           ^~~~~~~~~

gpu_init.h forward-declares gl::GLSurface but using std::move() with GCC
seems to require a full declaration for things to work.

Bug: 819294
Change-Id: Ib22ca2f8af6977869571292acf780042507a8afd
Reviewed-on: https://chromium-review.googlesource.com/c/1365249
Reviewed-by: Jonathan Backer <backer@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#614358}
[modify] https://crrev.com/763b79a9142f3f063eca4504dc9a45b7e75e252f/gpu/ipc/service/gpu_init.cc
[modify] https://crrev.com/763b79a9142f3f063eca4504dc9a45b7e75e252f/gpu/ipc/service/gpu_init.h

Comment 75 by bugdroid1@chromium.org, Dec 12

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3e390e1cf6a97441fcdc5c5bc34f813f0053f6e9

commit 3e390e1cf6a97441fcdc5c5bc34f813f0053f6e9
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Wed Dec 12 22:20:20 2018

trace_arguments: Mark StringStorage's move operations noexcept

This fixes the GCC build after eebbd7f63c5 ("Introduce
base::trace_event::TraceArguments helper class"):

    ../../base/trace_event/trace_event_impl.cc:61:1: error: function ‘base::trace_event::TraceEvent::TraceEvent(base::trace_event::TraceEvent&&)’ defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification ‘’
     TraceEvent::TraceEvent(TraceEvent&& other) noexcept = default;
     ^~~~~~~~~~
    ../../base/trace_event/trace_event_impl.cc:62:13: error: function ‘base::trace_event::TraceEvent& base::trace_event::TraceEvent::operator=(base::trace_event::TraceEvent&&)’ defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification ‘’
     TraceEvent& TraceEvent::operator=(TraceEvent&& other) noexcept = default;
                 ^~~~~~~~~~

With GCC, having that noexcept marker requires all members to be marked
with noexcept themselves, and StringStorage was missing it.

clang is fine because we pass -fno-exceptions and it disables the same error
there, while GCC continues to raise it (bug 843143 and its corresponding CL
have a longer discussion on this issue).

Bug: 819294
Change-Id: Ie2eba30dcb6d4a5f9cc1b4b7c961af96d9f55f10
Reviewed-on: https://chromium-review.googlesource.com/c/1374230
Reviewed-by: David Turner <digit@chromium.org>
Reviewed-by: oysteine <oysteine@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#616082}
[modify] https://crrev.com/3e390e1cf6a97441fcdc5c5bc34f813f0053f6e9/base/trace_event/trace_arguments.h

Comment 76 by bugdroid1@chromium.org, Dec 13

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ff2599dc95f6cfd211c131b63d494f7114326c0a

commit ff2599dc95f6cfd211c131b63d494f7114326c0a
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Thu Dec 13 07:25:30 2018

TraceArguments: IWYU to fix the libstdc++ build

Follow-up to eebbd7f63c5 ("Introduce base::trace_event::TraceArguments
helper class"). The libstdc++ build is currently failing, add a few missing
headers to fix it:

* <cmath> for std::isfinite() and std::isnan()
* <string.h> for memcpy()

Bug: 819294
Change-Id: I370aa3ef245c5a23375a679b2ada7cb124f938e0
Reviewed-on: https://chromium-review.googlesource.com/c/1373767
Reviewed-by: David Turner <digit@chromium.org>
Reviewed-by: oysteine <oysteine@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#616237}
[modify] https://crrev.com/ff2599dc95f6cfd211c131b63d494f7114326c0a/base/trace_event/trace_arguments.cc
[modify] https://crrev.com/ff2599dc95f6cfd211c131b63d494f7114326c0a/base/trace_event/trace_arguments.h

Comment 77 by bugdroid1@chromium.org, Dec 14

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9df045779f62cbbe3fbf56be9b0329302e9a0df7

commit 9df045779f62cbbe3fbf56be9b0329302e9a0df7
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Fri Dec 14 18:20:36 2018

a11y: Include <memory> for std::unique_ptr in accessibility_alert_window.h

IWYU. This fixes the libstdc++ build after commit 1ed701bc4 ("Remove fake
alert AXObjWrapper object"):

    In file included from ../../ui/views/accessibility/accessibility_alert_window.cc:5:
    ../../ui/views/accessibility/accessibility_alert_window.h:34:8: error: ‘unique_ptr’ in namespace ‘std’ does not name a template type
       std::unique_ptr<aura::Window> alert_window_;
            ^~~~~~~~~~
    ../../ui/views/accessibility/accessibility_alert_window.h:34:3: note: ‘std::unique_ptr’ is defined in header ‘<memory>’; did you forget to ‘#include <memory>’?

Bug: 819294
Change-Id: I5e41e529fb5961ae2c93359328d437da40fa60fd
Reviewed-on: https://chromium-review.googlesource.com/c/1375119
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#616747}
[modify] https://crrev.com/9df045779f62cbbe3fbf56be9b0329302e9a0df7/ui/views/accessibility/accessibility_alert_window.h

Comment 78 by xingliu@chromium.org, Dec 14

Cc: -xingliu@chromium.org

Comment 79 by bugdroid1@chromium.org, Dec 17

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d47a661f6d429269feaec001451be492b96d1dd3

commit d47a661f6d429269feaec001451be492b96d1dd3
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Mon Dec 17 16:14:38 2018

image: Mark move operations noexcept

Commit 97ad318786 ("Store account image in AccountInfo") broke the GCC build
when it added a gfx::Image to a class whose move constructor and assignment
operators are marked with noexcept:

    ../../components/signin/core/browser/account_info.cc:31:1: error: function ‘AccountInfo::AccountInfo(AccountInfo&&)’ defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification ‘’
     AccountInfo::AccountInfo(AccountInfo&& other) noexcept = default;
     ^~~~~~~~~~~
    ../../components/signin/core/browser/account_info.cc:35:14: error: function ‘AccountInfo& AccountInfo::operator=(AccountInfo&&)’ defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification ‘’
     AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
                  ^~~~~~~~~~~

With GCC, having that noexcept marker requires all members to be marked with
noexcept themselves, and gfx::Image was missing it.

clang is fine because we pass -fno-exceptions and it disables the same error
there, while GCC continues to raise it (bug 843143 and its corresponding CL
have a longer discussion on this issue).

gfx::Image's move constructor and assignment operators do not do anything,
so we can just mark them noexcept too.

Bug: 819294
Change-Id: I799a29bc2dee9773c3ccabcdc5f4450767925b3c
Reviewed-on: https://chromium-review.googlesource.com/c/1379764
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#617133}
[modify] https://crrev.com/d47a661f6d429269feaec001451be492b96d1dd3/ui/gfx/image/image.cc
[modify] https://crrev.com/d47a661f6d429269feaec001451be492b96d1dd3/ui/gfx/image/image.h

Comment 80 by bugdroid1@chromium.org, Dec 20

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9f416806dc00d3ec431ad57b715fc60e355b7699

commit 9f416806dc00d3ec431ad57b715fc60e355b7699
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Thu Dec 20 13:40:25 2018

UkmFeatures: Fix GCC build after #617636

This kind of reapplies the same fix landed in
https://chromium-review.googlesource.com/c/chromium/src/+/1273746 after
commit 6bac25cd ("record use counter ukm/uma usage for features on main
frames only").

Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84849, having
base::NoDestructor<T<U>> and passing an initializer list of Us does not
work, so explicitly pass an std::initializer_list there to disambiguate
things.

Bug: 819294
Change-Id: Ibe459c61a4df18726223a9ce4a6564a331c26028
Reviewed-on: https://chromium-review.googlesource.com/c/1384525
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Reviewed-by: Bryan McQuade <bmcquade@chromium.org>
Cr-Commit-Position: refs/heads/master@{#618198}
[modify] https://crrev.com/9f416806dc00d3ec431ad57b715fc60e355b7699/chrome/browser/page_load_metrics/observers/use_counter/ukm_features.cc

Comment 81 by bugdroid, Feb 5

Project Member
The following revision refers to this bug:
  https://swiftshader.googlesource.com/SwiftShader.git/+/24f3d30cdec3c7473762405bde1c85b7c26f7941

commit 24f3d30cdec3c7473762405bde1c85b7c26f7941
Author: Maksim Sisov <msisov@igalia.com>
Date: Tue Feb 05 15:02:42 2019

GCC: use Wno-error=header-hygiene only with clang.

There is no sense in passing -Wno-error=header-hygiene
if -Wno-header-hygiene is not passed (gcc case). Thus,
use -Wno-error=header-hygiene only with clang.

Bug: chromium:819294
Change-Id: I01bd9771352ab2e8827f1fdd493eb89bb719dd0f
Reviewed-on: https://swiftshader-review.googlesource.com/c/24428
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Tested-by: Alexis Hétu <sugoi@google.com>

[modify] https://crrev.com/24f3d30cdec3c7473762405bde1c85b7c26f7941/third_party/llvm-7.0/BUILD.gn

Comment 82 by bugdroid, Feb 5

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/df740f5cbb5a2939cfafb85ce7fa40ce164178d6

commit df740f5cbb5a2939cfafb85ce7fa40ce164178d6
Author: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Date: Tue Feb 05 17:05:25 2019

Roll src/third_party/swiftshader 8f71f7311f29..24f3d30cdec3 (1 commits)

https://swiftshader.googlesource.com/SwiftShader.git/+log/8f71f7311f29..24f3d30cdec3


git log 8f71f7311f29..24f3d30cdec3 --date=short --no-merges --format='%ad %ae %s'
2019-02-05 msisov@igalia.com GCC: use Wno-error=header-hygiene only with clang.


Created with:
  gclient setdep -r src/third_party/swiftshader@24f3d30cdec3

The AutoRoll server is located here: https://autoroll.skia.org/r/swiftshader-chromium-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel

BUG=chromium:819294
TBR=swiftshader-team+autoroll@chromium.org

Change-Id: I9784d04fc63b638fd3ad81c1e295eb9ea4d942ae
Reviewed-on: https://chromium-review.googlesource.com/c/1454762
Reviewed-by: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#629186}
[modify] https://crrev.com/df740f5cbb5a2939cfafb85ce7fa40ce164178d6/DEPS

Comment 83 by bugdroid, Feb 5

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/75697011774ea1802d2f4902608f4188cd580b97

commit 75697011774ea1802d2f4902608f4188cd580b97
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Tue Feb 05 18:17:05 2019

StringImpl: Move AllocationSize() specialization out of class declaration

This fixes the GCC build after commit fdb5f28 ("Use a more obviously-correct
way to calculate allocation sizes"):

In file included from ../../third_party/blink/renderer/platform/wtf/text/wtf_string.h:33,
                 from ../../third_party/blink/renderer/platform/wtf/decimal.h:38,
                 from ../../third_party/blink/renderer/platform/wtf/decimal_test.cc:31:
../../third_party/blink/renderer/platform/wtf/text/string_impl.h:453:13: error: explicit specialization in non-namespace scope ‘class WTF::StringImpl’
   template <>
             ^
../../third_party/blink/renderer/platform/wtf/text/string_impl.h:454:49: error: template-id ‘AllocationSize<LChar>’ in declaration of primary template
   size_t AllocationSize<LChar>(wtf_size_t length) {
                                                 ^
../../third_party/blink/renderer/platform/wtf/text/string_impl.h:467:29: error: too many template-parameter-lists
   scoped_refptr<StringImpl> StripMatchedCharacters(UCharPredicate);
                             ^~~~~~~~~~~~~~~~~~~~~~
../../third_party/blink/renderer/platform/wtf/text/string_impl.h:469:29: error: too many template-parameter-lists
   scoped_refptr<StringImpl> SimplifyMatchedCharactersToSpace(UCharPredicate,
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Move the new template specialization outside of StringImpl. Having it in
StringImpl officially requires C++17 (specifically, C++ DR727). While clang
has implemented DR727 for other -std= options, GCC is stricter and only
builds that code in C++17 mode.

Bug: 819294
Change-Id: I0ab17347b3c9fc75f36c471933eb523ad134d869
Reviewed-on: https://chromium-review.googlesource.com/c/1454533
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Commit-Queue: Kentaro Hara <haraken@chromium.org>
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#629217}
[modify] https://crrev.com/75697011774ea1802d2f4902608f4188cd580b97/third_party/blink/renderer/platform/wtf/text/string_impl.h

Comment 84 by bugdroid, Feb 6

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6c0254a78043e32441dbc2e6d4893590dd0d1953

commit 6c0254a78043e32441dbc2e6d4893590dd0d1953
Author: Maksim Sisov <msisov@igalia.com>
Date: Wed Feb 06 10:43:51 2019

Add missing algorithm header to webcursor_ozone

This fixes the following error:

../../content/common/cursors/webcursor_ozone.cc:59:77: error: no matching function for call to 'min(<brace-enclosed initializer list>)'
        static_cast<float>(maximum_cursor_size_.height()) / bitmap->height()});
                                                                             ^
Bug: 819294

Change-Id: I248e8b0199d150bb22cf0609c3588048e6405bfe
Reviewed-on: https://chromium-review.googlesource.com/c/1454356
Reviewed-by: Bret Sepulveda <bsep@chromium.org>
Commit-Queue: Maksim Sisov <msisov@igalia.com>
Cr-Commit-Position: refs/heads/master@{#629520}
[modify] https://crrev.com/6c0254a78043e32441dbc2e6d4893590dd0d1953/content/common/cursors/webcursor_ozone.cc

Comment 85 by bugdroid, Feb 6

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2ad12a1e735497b691c86dc98c0d31de97e6ff88

commit 2ad12a1e735497b691c86dc98c0d31de97e6ff88
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Wed Feb 06 20:49:53 2019

SequenceBound: Move NO_SANITIZE annotation to fix GCC build

GCC seems to be stricter when it comes to the position of function
attributes, so move them around so the build works on both GCC and clang.

../../base/compiler_specific.h:158:27: error: attributes are not allowed on a function-definition
 #define NO_SANITIZE(what) __attribute__((no_sanitize(what)))
                           ^~~~~~~~~~~~~
../../base/threading/sequence_bound.h:114:33: note: in expansion of macro ‘NO_SANITIZE’
                 Args&&... args) NO_SANITIZE("cfi-unrelated-cast")
                                 ^~~~~~~~~~~
../../base/compiler_specific.h:158:27: error: attributes are not allowed on a function-definition
 #define NO_SANITIZE(what) __attribute__((no_sanitize(what)))
                           ^~~~~~~~~~~~~
../../base/threading/sequence_bound.h:162:37: note: in expansion of macro ‘NO_SANITIZE’
   void MoveRecordFrom(From&& other) NO_SANITIZE("cfi-unrelated-cast") {
                                     ^~~~~~~~~~~

Bug: 819294
Change-Id: Ic52ea4510ab34dac959e343cac869b32ba7005c5
Reviewed-on: https://chromium-review.googlesource.com/c/1456062
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#629720}
[modify] https://crrev.com/2ad12a1e735497b691c86dc98c0d31de97e6ff88/base/threading/sequence_bound.h

Comment 86 by bugdroid, Feb 7

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7cd0ea1c4d1d863a74c343e35a3383f97fc5644d

commit 7cd0ea1c4d1d863a74c343e35a3383f97fc5644d
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Thu Feb 07 19:23:07 2019

[Promises] Drop constexpr from unique_any/any_internal's operator=

This fixes the GCC build:

    ../../base/containers/any_internal.h: In member function ‘constexpr void base::internal::AnyInternal::operator=(base::internal::AnyInternal&&)’:
    ../../base/containers/any_internal.h:42:10: error: call to non-‘constexpr’ function ‘void base::internal::AnyInternal::reset()’
         reset();
         ~~~~~^~

reset() itself is not constexpr, and it is not clear if it should be given
it calls |delete_fn_ptr|.

Bug: 819294, 906125
Change-Id: I7760c62213db0e59a82e5210988ee469b5006090
Reviewed-on: https://chromium-review.googlesource.com/c/1458096
Commit-Queue: Gabriel Charette <gab@chromium.org>
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Reviewed-by: Alex Clarke <alexclarke@chromium.org>
Reviewed-by: Gabriel Charette <gab@chromium.org>
Cr-Commit-Position: refs/heads/master@{#630029}
[modify] https://crrev.com/7cd0ea1c4d1d863a74c343e35a3383f97fc5644d/base/containers/any_internal.h
[modify] https://crrev.com/7cd0ea1c4d1d863a74c343e35a3383f97fc5644d/base/containers/unique_any.h

Comment 87 by bugdroid, Feb 7

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2c3b57cafbbb38c13a519c9d2fda8b65691d9564

commit 2c3b57cafbbb38c13a519c9d2fda8b65691d9564
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Thu Feb 07 22:55:37 2019

allocator shim: Swap ALIGN_LINKAGE and SHIM_ALWAYS_EXPORT's positions

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}
[modify] https://crrev.com/2c3b57cafbbb38c13a519c9d2fda8b65691d9564/base/allocator/allocator_shim_override_cpp_symbols.h

Comment 88 by bugdroid, Feb 8

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a5ba6f9bb7665040045dc0f8087407096630ad7b

commit a5ba6f9bb7665040045dc0f8087407096630ad7b
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Fri Feb 08 02:57:28 2019

color_utils: Use std::sqrt() instead of std::sqrtf()

This fixes the build with libstdc++:

    ../../ui/gfx/color_utils.cc: In function ‘SkColor color_utils::SetDarkestColorForTesting(SkColor)’:
    ../../ui/gfx/color_utils.cc:434:12: error: ‘sqrtf’ is not a member of ‘std’
           std::sqrtf((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f;
                ^~~~~
    ../../ui/gfx/color_utils.cc:434:12: note: suggested alternative: ‘sqrt’
           std::sqrtf((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f;
                ^~~~~
                sqrt

sqrtf() is not formally part of C++14 as far as I can see even though libc++
has it in <cmath>. Additionally, we're only dealing with floats in all parts
of the expression above, so using the float sqrt() overload should be
harmless anyway.

Bug: 819294
Change-Id: If6c7bf31819df97a761e6963def6d6506154c34d
Reviewed-on: https://chromium-review.googlesource.com/c/1458193
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Reviewed-by: Peter Kasting <pkasting@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#630140}
[modify] https://crrev.com/a5ba6f9bb7665040045dc0f8087407096630ad7b/ui/gfx/color_utils.cc

Comment 89 by bugdroid, Feb 8

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c33e832cc145c696d2157796c7640e659740dafa

commit c33e832cc145c696d2157796c7640e659740dafa
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Fri Feb 08 08:44:00 2019

quic_flags_impl: Fix GCC build after #618558

Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84849, having
base::NoDestructor<T<U>> and passing an initializer list of Us does not
work if this is not done explicitly, as GCC incorrectly fails to determine
which constructor overload to use:

    ../../net/third_party/quic/platform/impl/quic_flags_impl.cc: In member function ‘bool quic::TypedQuicFlagHelper<T>::SetFlag(const string&) const [with T = bool; std::__cxx11::string = std::__cxx11::basic_string<char>]’:
    ../../net/third_party/quic/platform/impl/quic_flags_impl.cc:156:41: error: call of overloaded ‘NoDestructor(<brace-enclosed initializer list>)’ is ambiguous
           {"", "1", "t", "true", "y", "yes"});
                                         ^
    In file included from ../../net/third_party/quic/platform/impl/quic_flags_impl.h:16,
                     from ../../net/third_party/quic/platform/impl/quic_flags_impl.cc:5:
    ../../base/no_destructor.h:62:3: note: candidate: ‘base::NoDestructor<T>::NoDestructor(const base::NoDestructor<T>&) [with T = std::set<std::__cxx11::basic_string<char> >]’ <deleted>
       NoDestructor(const NoDestructor&) = delete;
       ^~~~~~~~~~~~
    ../../base/no_destructor.h:60:12: note: candidate: ‘base::NoDestructor<T>::NoDestructor(T&&) [with T = std::set<std::__cxx11::basic_string<char> >]’
       explicit NoDestructor(T&& x) { new (storage_) T(std::move(x)); }
                ^~~~~~~~~~~~
    ../../base/no_destructor.h:59:12: note: candidate: ‘base::NoDestructor<T>::NoDestructor(const T&) [with T = std::set<std::__cxx11::basic_string<char> >]’
       explicit NoDestructor(const T& x) { new (storage_) T(x); }
                ^~~~~~~~~~~~

Explicitly use an std::initializer_list to make the build work everywhere.

Bug: 819294
Change-Id: I775be20e3766a88a656b58c94c40869cb1bee2a8
Reviewed-on: https://chromium-review.googlesource.com/c/1458214
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#630249}
[modify] https://crrev.com/c33e832cc145c696d2157796c7640e659740dafa/net/third_party/quic/platform/impl/quic_flags_impl.cc

Comment 90 by bugdroid, Feb 8

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/130a5ae24a02daba8729ba2216bcaf3dbfacea69

commit 130a5ae24a02daba8729ba2216bcaf3dbfacea69
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Fri Feb 08 16:58:38 2019

media::learning: Make LabelledExample's move assignment operator noexcept

The GCC build is currently broken with an error like this:

    ../../media/learning/common/labelled_example.cc:20:1: error: function ‘media::learning::LabelledExample::LabelledExample(media::learning::LabelledExample&&)’ defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification ‘’
     LabelledExample::LabelledExample(LabelledExample&& rhs) noexcept = default;
     ^~~~~~~~~~~~~~~

With GCC, having that noexcept marker requires all members to be marked with
noexcept themselves, and TargetValue was missing some assignment operators
and noexcept markers.

clang is fine because we pass -fno-exceptions and it disables the same error
there, while GCC continues to raise it (bug 843143 and its corresponding CL
have a longer discussion on this issue).

Bug: 819294
Change-Id: Ide30932fc466ccb52d6883a82777e703dae48798
Reviewed-on: https://chromium-review.googlesource.com/c/1458210
Commit-Queue: Frank Liberato <liberato@chromium.org>
Reviewed-by: Frank Liberato <liberato@chromium.org>
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#630355}
[modify] https://crrev.com/130a5ae24a02daba8729ba2216bcaf3dbfacea69/media/learning/common/labelled_example.cc
[modify] https://crrev.com/130a5ae24a02daba8729ba2216bcaf3dbfacea69/media/learning/common/labelled_example.h
[modify] https://crrev.com/130a5ae24a02daba8729ba2216bcaf3dbfacea69/media/learning/common/value.cc
[modify] https://crrev.com/130a5ae24a02daba8729ba2216bcaf3dbfacea69/media/learning/common/value.h

Comment 91 by bugdroid, Feb 8

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9fb72653b6fa6a97c191e039778bc21e2c379a96

commit 9fb72653b6fa6a97c191e039778bc21e2c379a96
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Fri Feb 08 18:53:57 2019

streams: IWYU for isfinite()

Include <math.h> to fix the libstdc++ build:

    ../../third_party/blink/renderer/core/streams/queue_with_sizes.cc: In function ‘bool blink::{anonymous}::IsFiniteNonNegativeNumber(double)’:
    ../../third_party/blink/renderer/core/streams/queue_with_sizes.cc:18:10: error: ‘isfinite’ was not declared in this scope
       return isfinite(v) && v >= 0;
              ^~~~~~~~

Bug: 819294
Change-Id: I04eaebb0f951829b1994cd92eb4ec71df791ff22
Reviewed-on: https://chromium-review.googlesource.com/c/1461116
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Commit-Queue: Adam Rice <ricea@chromium.org>
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Reviewed-by: Adam Rice <ricea@chromium.org>
Cr-Commit-Position: refs/heads/master@{#630406}
[modify] https://crrev.com/9fb72653b6fa6a97c191e039778bc21e2c379a96/third_party/blink/renderer/core/streams/queue_with_sizes.cc

Comment 92 by bugdroid, Feb 11 (5 days ago)

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/crashpad/crashpad.git/+/152aa8d1f9039b2ac61339bcd8d8f6030ffbcea7

commit 152aa8d1f9039b2ac61339bcd8d8f6030ffbcea7
Author: Maksim Sisov <msisov@igalia.com>
Date: Mon Feb 11 10:07:08 2019

Add missing limits header to crashpad.

This patch fixes the following error:

../../third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc:246:12: error: 'numeric_limits' is not a member of 'std'
       std::numeric_limits<decltype(context->spsr)>::max()) {
            ^~~~~~~~~~~~~~
../../third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc:246:27: error: expected primary-expression before 'decltype'
       std::numeric_limits<decltype(context->spsr)>::max()) {
                           ^~~~~~~~
../../third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc:246:27: error: expected ')' before 'decltype'

Bug: chromium:819294
Change-Id: I4f31a33fcdae9567c71a4d371d2e6afe68d2ef6a
Reviewed-on: https://chromium-review.googlesource.com/c/1454376
Commit-Queue: Maksim Sisov <msisov@igalia.com>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

[modify] https://crrev.com/152aa8d1f9039b2ac61339bcd8d8f6030ffbcea7/snapshot/linux/cpu_context_linux.cc

Comment 93 by bugdroid, Feb 13 (4 days ago)

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bdd76190e54e6a0e11343dd19e4bf1d06956fa48

commit bdd76190e54e6a0e11343dd19e4bf1d06956fa48
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Wed Feb 13 01:02:27 2019

BaseRenderingContext2D: Use base::CheckMul and simplify code in putImageData()

Follow-up to commit e0b3253a56 ("Fix image conversion truncation issues").
The current code does not build with GCC due to
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89287:

    ../../third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc: In member function ‘void blink::BaseRenderingContext2D::putImageData(blink::ImageData*, int, int, int, int, int, int, blink::ExceptionState&)’:
    ../../third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc:1777:44: error: default type conversion can't deduce template argument for ‘template<class Dst, typename std::enable_if<base::internal::IsNumericRangeContained<Dst, long unsigned int, void>::value, void>::type* <anonymous> > constexpr base::internal::StrictNumeric<T>::operator Dst() const [with Dst = Dst; typename std::enable_if<base::internal::IsNumericRangeContained<Dst, T>::value>::type* <anonymous> = <enumerator>; T = long unsigned int]’
             new uint8_t[data_length.ValueOrDie()]);
                                                ^

Work around it by using the more idiomatic base::CheckMul() with
AssignIfValid, so that we can have |data_length| be a size_t again and not
leave it to the compiler to figure out the type we want when creating the
|converted_pixels| array.

Bug: 819294
Change-Id: Id124cc4f3d749b45def4708e21e4badafd708578
Reviewed-on: https://chromium-review.googlesource.com/c/1467201
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Commit-Queue: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#631472}
[modify] https://crrev.com/bdd76190e54e6a0e11343dd19e4bf1d06956fa48/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc

Comment 94 by bugdroid, Feb 13 (3 days ago)

Project Member
The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/448c387b8274c4416378e51cda29d135613c4c22

commit 448c387b8274c4416378e51cda29d135613c4c22
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Wed Feb 13 12:45:12 2019

IceTransportWithTransportChannel: Initialize |thread_checker_| in declaration

This works around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89305, which
causes GCC to fail to build the code due to |thread_checker_| being const
there and not having a declared constructor.

    ../../api/ice_transport_factory.cc: In constructor ‘webrtc::{anonymous}::IceTransportWithTransportChannel::IceTransportWithTransportChannel(std::unique_ptr<cricket::IceTransportInternal>)’:
    ../../api/ice_transport_factory.cc:31:3: error: uninitialized const member in ‘const class rtc::ThreadChecker’ [-fpermissive]
       IceTransportWithTransportChannel(
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ../../api/ice_transport_factory.cc:45:28: note: ‘const rtc::ThreadChecker webrtc::{anonymous}::IceTransportWithTransportChannel::thread_checker_’ should be initialized
       const rtc::ThreadChecker thread_checker_;
                                ^~~~~~~~~~~~~~~

Bug: chromium:819294
Change-Id: I750e8cdd796b3b0e076de01194cf7de988ac4ce2
Reviewed-on: https://webrtc-review.googlesource.com/c/122820
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Raphael Kubo da Costa (rakuco) <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#26662}
[modify] https://crrev.com/448c387b8274c4416378e51cda29d135613c4c22/api/ice_transport_factory.cc

Comment 95 by bugdroid, Feb 13 (3 days ago)

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/316734d86c3fabd300ad7352dc351d4577f1f87e

commit 316734d86c3fabd300ad7352dc351d4577f1f87e
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Wed Feb 13 14:19:13 2019

FileSystemURL: Stop marking move constructor as noexcept

This fixes the GCC build:
    ../../storage/browser/fileapi/file_system_url.cc:29:1: error: function ‘storage::FileSystemURL::FileSystemURL(storage::FileSystemURL&&)’ defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification ‘’
     FileSystemURL::FileSystemURL(FileSystemURL&& other) noexcept = default;
     ^~~~~~~~~~~~~

With GCC, having that noexcept marker requires all members to be marked with
noexcept themselves, and at least url::Origin needs the right annotations.
Just making FileSystemURL not noexcept is the least intrusive solution for
now.

clang is fine because we pass -fno-exceptions and it disables the same error
there, while GCC continues to raise it (bug 843143 and its corresponding CL
have a longer discussion on this issue).

Bug: 819294
Change-Id: I7523a048e280c0336559f3b10dce0b82dc7885d6
Reviewed-on: https://chromium-review.googlesource.com/c/1470223
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Reviewed-by: Taiju Tsuiki <tzik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#631685}
[modify] https://crrev.com/316734d86c3fabd300ad7352dc351d4577f1f87e/storage/browser/fileapi/file_system_url.cc
[modify] https://crrev.com/316734d86c3fabd300ad7352dc351d4577f1f87e/storage/browser/fileapi/file_system_url.h

Comment 96 by bugdroid, Feb 13 (3 days ago)

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/78b0f0dfa9e6f3c37b71102c01def92f1ab8c330

commit 78b0f0dfa9e6f3c37b71102c01def92f1ab8c330
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Wed Feb 13 23:28:46 2019

CastActivityManager: Do not make DoLaunchSessionParams' move constructor noexcept

This fixes the GCC build:

    ../../chrome/browser/media/router/providers/cast/cast_activity_manager.cc:806:1: error: function ‘media_router::CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams(media_router::CastActivityManager::DoLaunchSessionParams&&)’ defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification ‘’
     CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams(
     ^~~~~~~~~~~~~~~~~~~

With GCC, having that noexcept marker requires all members to be marked with
noexcept themselves, and MediaRoute, CastMediaSource and url::Origin need
the right annotations. Just making DoLaunchSessionParams not noexcept is the
least intrusive solution for now.

clang is fine because we pass -fno-exceptions and it disables the same error
there, while GCC continues to raise it (bug 843143 and its corresponding CL
have a longer discussion on this issue).

Bug: 819294
Change-Id: Ia3a5fb60b5e74e68bd35cfa50e2fcc728b64e5eb
Reviewed-on: https://chromium-review.googlesource.com/c/1469942
Commit-Queue: mark a. foltz <mfoltz@chromium.org>
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Reviewed-by: mark a. foltz <mfoltz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#631962}
[modify] https://crrev.com/78b0f0dfa9e6f3c37b71102c01def92f1ab8c330/chrome/browser/media/router/providers/cast/cast_activity_manager.cc
[modify] https://crrev.com/78b0f0dfa9e6f3c37b71102c01def92f1ab8c330/chrome/browser/media/router/providers/cast/cast_activity_manager.h

Comment 97 by bugdroid, Feb 14 (3 days ago)

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6a12308515a2d2b734a9fa1bd045c48c880c6e73

commit 6a12308515a2d2b734a9fa1bd045c48c880c6e73
Author: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Date: Thu Feb 14 07:31:32 2019

Roll src/third_party/webrtc f13c2cd9ee41..b1ea48c2e868 (49 commits)

https://webrtc.googlesource.com/src.git/+log/f13c2cd9ee41..b1ea48c2e868


git log f13c2cd9ee41..b1ea48c2e868 --date=short --no-merges --format='%ad %ae %s'
2019-02-14 chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com Roll chromium_revision 103665932a..bfd7bcf815 (631883:632040)
2019-02-14 qingsi@google.com Use a provider in rtc::Network to access the mDNS responder.
2019-02-13 sprang@webrtc.org Add FullStackTest with simulated encoder overshooting
2019-02-13 chfremer@webrtc.org Revert "Delete video source proxying in WebRtcVideoSendStream"
2019-02-13 chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com Roll chromium_revision d026ac796d..103665932a (631722:631883)
2019-02-13 terelius@webrtc.org Parse XR, FIR and PLI in rtc_event_log_parser.cc
2019-02-13 sergeysablin@fb.com Handle HKDF key derivation when building with OpenSSL.
2019-02-13 Peter) Slatala Support GenericPacketReceived/Sent/AckReceived event logs.
2019-02-13 chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com Roll chromium_revision aa7b61fdc4..d026ac796d (631597:631722)
2019-02-13 kuddai@google.com Separate base minimum delay and minimum delay.
2019-02-13 nisse@webrtc.org Update EncodedFrameForMediaTransport to use Retain() rather than set_buffer + memcpy.
2019-02-13 srte@webrtc.org Adds CallEncoder to ChannelSend.
2019-02-13 nisse@webrtc.org Update MultiplexEncoderAdapter to use EncodedImage::Allocate
2019-02-13 raphael.kubo.da.costa@intel.com IceTransportWithTransportChannel: Initialize |thread_checker_| in declaration
2019-02-13 mbonadei@webrtc.org Ensure TestPeers are destroyed at the end of Run.
2019-02-13 ilnik@webrtc.org Add |update_rect| field and UpdateRect struct to VideoFrame.
2019-02-13 sprang@webrtc.org Add settings to turn off VP8 base layer qp limit
2019-02-13 mbonadei@webrtc.org Remove always_passing_unittest.cc.
2019-02-13 hans@chromium.org Fix -Wunused-result warnings
2019-02-13 chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com Roll chromium_revision 23b4d2134b..aa7b61fdc4 (631425:631597)
2019-02-12 chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com Roll chromium_revision d366835eb8..23b4d2134b (631269:631425)
2019-02-12 ouj@fb.com Add Foundation.framework to cocoa_threading target
2019-02-12 ouj@fb.com Add gn configs to remove the dependency to audio and video codecs.
2019-02-12 chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com Roll chromium_revision b847e52039..d366835eb8 (631155:631269)
2019-02-12 srte@webrtc.org Adds audio priority bitrate field trial parameter.
2019-02-12 nisse@webrtc.org Update H264EncoderImpl to use EncodedImage::Allocate
2019-02-12 titovartem@webrtc.org Introduce cross traffic for emulated network layer.
2019-02-12 nisse@webrtc.org Delete obsolete usage of FakeConstraints
2019-02-12 gustaf@webrtc.org AEC3: Fix delay hysteresis validation
2019-02-12 kron@webrtc.org Enable padding bit in TransportFeedback packets
2019-02-12 saza@webrtc.org Add missing 'explicit' specifier to GainControlImpl
2019-02-12 danilchap@webrtc.org Migrate libevent task queue implementation to TaskQueueBase interface
2019-02-12 chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com Roll chromium_revision b6a69427be..b847e52039 (631040:631155)
2019-02-12 nisse@webrtc.org Update SimulcastTestFixtureImpl to use EncodedImage::Allocate
2019-02-12 chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com Roll chromium_revision e4a7c15e8a..b6a69427be (630925:631040)
2019-02-11 chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com Roll chromium_revision 92e6bfe90b..e4a7c15e8a (630806:630925)
2019-02-11 chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com Roll chromium_revision 339f6a582b..92e6bfe90b (630696:630806)
2019-02-11 ilnik@webrtc.org Revert "Reland "Partial frame capture API part 1""
2019-02-11 saza@webrtc.org Remove crit_render_ lock from webrtc::GainControlImpl
2019-02-11 saza@webrtc.org Dump histogram data in AEC3 delay estimator
2019-02-11 danilchap@webrtc.org Fix potential crash when building rtx packet
2019-02-11 kuddai@google.com Split rtp_receiver for readability.
2019-02-11 nisse@webrtc.org Delete video source proxying in WebRtcVideoSendStream
2019-02-11 ilnik@webrtc.org Revert "Partial frame capture API part 2"
2019-02-11 srte@webrtc.org Removes Start/Stop on network emulation manager.
2019-02-11 ilnik@webrtc.org Revert "Partial frame capture API part 3"
2019-02-11 ilnik@webrtc.org Revert "Partial frame capture API part 6"
2019-02-11 ilnik@webrtc.org Revert "Partial frame capture API part 5"
2019-02-11 kwiberg@webrtc.org Make some new rtc_base targets publicly visible


Created with:
  gclient setdep -r src/third_party/webrtc@b1ea48c2e868

The AutoRoll server is located here: https://autoroll.skia.org/r/webrtc-chromium-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=luci.chromium.try:linux_chromium_archive_rel_ng;luci.chromium.try:mac_chromium_archive_rel_ng

BUG=chromium:None,chromium:930339,chromium:None,chromium:None,chromium:819294,chromium:None,chromium:931227,chromium:None,chromium:None,chromium:None,chromium:None,chromium:None,chromium:None,chromium:None,chromium:None,chromium:b/123456404,chromium:None,chromium:None,chromium:None
TBR=webrtc-chromium-sheriffs-robots@google.com

Change-Id: Idc8ec9b29cfd3284aac8a63a22d480e01951401b
Reviewed-on: https://chromium-review.googlesource.com/c/1471953
Reviewed-by: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#632120}
[modify] https://crrev.com/6a12308515a2d2b734a9fa1bd045c48c880c6e73/DEPS

Comment 98 by bugdroid, Feb 14 (2 days ago)

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a06100a9df9956cb3fe5bc161ffde9e8734a96f9

commit a06100a9df9956cb3fe5bc161ffde9e8734a96f9
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Thu Feb 14 19:28:54 2019

FlexLayout: Use std::ceil() rather than std::ceilf()

This fixes the build with libstdc++ after commit 3a6cdd45b3 ('Improvements
in FlexLayout "stretch" cross-axis alignment handling'):

    ../../ui/views/layout/flex_layout_types_internal.cc: In member function ‘void views::internal::Span::Center(const views::internal::Span&, const views::internal::Inset1D&)’:
    ../../ui/views/layout/flex_layout_types_internal.cc:57:20: error: ‘ceilf’ is not a member of ‘std’
         set_start(std::ceilf(remaining * 0.5f));
                        ^~~~~
    ../../ui/views/layout/flex_layout_types_internal.cc:57:20: note: suggested alternative: ‘ceil’
         set_start(std::ceilf(remaining * 0.5f));
                        ^~~~~
                        ceil

ceilf() is not officially part of the C++14 standard even though libc++
exposes it. In this case, we're multiplying an int and a float, which means
we'll call ceil(float) anyway.

Bug: 819294
Change-Id: I24f16a5cd0462baef0eea07791758a3712ff2922
Reviewed-on: https://chromium-review.googlesource.com/c/1472673
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Commit-Queue: Dana Fried <dfried@chromium.org>
Reviewed-by: Dana Fried <dfried@chromium.org>
Cr-Commit-Position: refs/heads/master@{#632320}
[modify] https://crrev.com/a06100a9df9956cb3fe5bc161ffde9e8734a96f9/ui/views/layout/flex_layout_types_internal.cc

Comment 99 by bugdroid, Feb 14 (2 days ago)

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cf4c534f04c223f8a9d65407852e2a531a6d7fb6

commit cf4c534f04c223f8a9d65407852e2a531a6d7fb6
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Thu Feb 14 22:22:21 2019

chrome/browser: Replace some forward declarations with actual includes

This fixes the GCC build which was failing like this:

    ../../base/scoped_observer.h: In instantiation of ‘void ScopedObserver<Source, Observer>::RemoveAll() [with Source = TabStripModel; Observer = TabStripModelObserver]’:
    ../../base/scoped_observer.h:26:5:   required from ‘ScopedObserver<Source, Observer>::~ScopedObserver() [with Source = TabStripModel; Observer = TabStripModelObserver]’
    ../../chrome/browser/ui/views/extensions/extension_popup.h:115:70:   required from here
    ../../base/scoped_observer.h:45:20: error: invalid use of incomplete type ‘class TabStripModel’
           sources_[i]->RemoveObserver(observer_);
           ~~~~~~~~~~~~~^~~~~~~~~~~~~~

This is caused by https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89311 ("Brace
initialization needlessly invokes destructor"), i.e. having something like

    ScopedObserver<T, U> observer_{this};

in a header declaration requires T and U to be fully declared because
ScopedObserver's destructor references them. In a few cases, T was only
forward-declared.

Bug: 819294
Change-Id: Ie5b9dc2745e27d4532c5539e3845a8c9147a0595
Reviewed-on: https://chromium-review.googlesource.com/c/1472576
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Commit-Queue: Alan Cutter <alancutter@chromium.org>
Reviewed-by: Finnur Thorarinsson <finnur@chromium.org>
Reviewed-by: Alan Cutter <alancutter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#632385}
[modify] https://crrev.com/cf4c534f04c223f8a9d65407852e2a531a6d7fb6/chrome/browser/ui/views/extensions/extension_popup.cc
[modify] https://crrev.com/cf4c534f04c223f8a9d65407852e2a531a6d7fb6/chrome/browser/ui/views/extensions/extension_popup.h
[modify] https://crrev.com/cf4c534f04c223f8a9d65407852e2a531a6d7fb6/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.cc
[modify] https://crrev.com/cf4c534f04c223f8a9d65407852e2a531a6d7fb6/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h
[modify] https://crrev.com/cf4c534f04c223f8a9d65407852e2a531a6d7fb6/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.cc
[modify] https://crrev.com/cf4c534f04c223f8a9d65407852e2a531a6d7fb6/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.h

Comment 100 by bugdroid, Yesterday (46 hours ago)

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0e64aaaca4544910d27c41cf6f5995ee3d2b4db5

commit 0e64aaaca4544910d27c41cf6f5995ee3d2b4db5
Author: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Date: Fri Feb 15 10:52:42 2019

dav1d: Make |needs_stack_alignment| work with GCC

Right now, building dav1d with GCC fails with

    gcc: error: unrecognized command line option ‘-mstack-alignment=32’; did you mean ‘-fipa-cp-alignment’?

Follow third_party/dav1d/meson.build and pass the right flags for
GCC (-mpreferred-stack-boundary and -mincoming-stack-boundary instead of
-mstack-alignment and -mstackrealign, respectively).

Bug: 819294
Change-Id: Ie735780e49bb53921ebabb1ab66186ebe2353cf2
Reviewed-on: https://chromium-review.googlesource.com/c/1473272
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#632573}
[modify] https://crrev.com/0e64aaaca4544910d27c41cf6f5995ee3d2b4db5/third_party/dav1d/BUILD.gn

Sign in to add a comment