New issue
Advanced search Search tips

Issue 819294 link

Starred by 5 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

[meta] GCC build issues

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

Issue description

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

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

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

Project Member

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

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

Project Member

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

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

Project Member

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

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

Project Member

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

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

Project Member

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

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

Project Member

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

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

Project Member

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

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

Project Member

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

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

Project Member

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

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

Project Member

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

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

Project Member

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

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

Blockedon: 843143
Project Member

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

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

Project Member

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

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

Project Member

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

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

Project Member

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

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

Project Member

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

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

Project Member

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

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

Project Member

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

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

Project Member

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

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

Project Member

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

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

Project Member

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

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

Project Member

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

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

Project Member

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

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

Project Member

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

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

Project Member

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

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

Project Member

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

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

Project Member

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

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

Project Member

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

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

Project Member

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

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

Project Member

Comment 33 by bugdroid1@chromium.org, Jul 3

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

Project Member

Comment 34 by bugdroid1@chromium.org, Jul 6

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

Project Member

Comment 35 by bugdroid1@chromium.org, Jul 6

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

Project Member

Comment 36 by bugdroid1@chromium.org, Jul 6

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

Project Member

Comment 37 by bugdroid1@chromium.org, Jul 6

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

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.
Project Member

Comment 39 by bugdroid1@chromium.org, Jul 6

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

Project Member

Comment 40 by bugdroid1@chromium.org, Jul 6

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

Project Member

Comment 41 by bugdroid1@chromium.org, Jul 6

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

Project Member

Comment 42 by bugdroid1@chromium.org, Jul 10

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

Project Member

Comment 43 by bugdroid1@chromium.org, Jul 12

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

Project Member

Comment 44 by bugdroid1@chromium.org, Jul 17

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

Project Member

Comment 45 by bugdroid1@chromium.org, Jul 19

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

Project Member

Comment 46 by bugdroid1@chromium.org, Jul 27

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

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

Comment 48 by bugdroid1@chromium.org, Jul 27

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

Project Member

Comment 49 by bugdroid1@chromium.org, Jul 30

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

Project Member

Comment 50 by bugdroid1@chromium.org, Jul 30

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

Project Member

Comment 51 by bugdroid1@chromium.org, Jul 31

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

Project Member

Comment 52 by bugdroid1@chromium.org, Aug 7

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

Project Member

Comment 53 by bugdroid1@chromium.org, Aug 8

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

Project Member

Comment 54 by bugdroid1@chromium.org, Aug 13

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

Project Member

Comment 55 by bugdroid1@chromium.org, Aug 13

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

Project Member

Comment 56 by bugdroid1@chromium.org, Aug 13

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

Blockedon: 882347
Cc: msi...@igalia.com
Project Member

Comment 59 by bugdroid1@chromium.org, Oct 8

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

Project Member

Comment 60 by bugdroid1@chromium.org, Oct 10

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

Project Member

Comment 61 by bugdroid1@chromium.org, Oct 10

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

Project Member

Comment 62 by bugdroid1@chromium.org, Oct 10

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

Project Member

Comment 63 by bugdroid1@chromium.org, Oct 10

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

Project Member

Comment 64 by bugdroid1@chromium.org, Oct 15

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

Project Member

Comment 65 by bugdroid1@chromium.org, Oct 25

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

Project Member

Comment 66 by bugdroid1@chromium.org, Oct 29

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

Project Member

Comment 67 by bugdroid1@chromium.org, Nov 27

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

Project Member

Comment 68 by bugdroid1@chromium.org, Nov 28

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

Project Member

Comment 69 by bugdroid1@chromium.org, Nov 28

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

Project Member

Comment 70 by bugdroid1@chromium.org, Nov 28

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

Project Member

Comment 71 by bugdroid1@chromium.org, Nov 28

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

Project Member

Comment 72 by bugdroid1@chromium.org, Nov 28

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

Project Member

Comment 73 by bugdroid1@chromium.org, Nov 29

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

Project Member

Comment 74 by bugdroid1@chromium.org, Dec 6

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

Project Member

Comment 75 by bugdroid1@chromium.org, Dec 12

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

Project Member

Comment 76 by bugdroid1@chromium.org, Dec 13

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

Project Member

Comment 77 by bugdroid1@chromium.org, Dec 14

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

Cc: -xingliu@chromium.org
Project Member

Comment 79 by bugdroid1@chromium.org, Dec 17

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

Project Member

Comment 80 by bugdroid1@chromium.org, Dec 20

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

Sign in to add a comment