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

Issue 752720 link

Starred by 34 users

Issue metadata

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


Sign in to add a comment

Evaluate c++17 readiness

Project Member Reported by thakis@chromium.org, Aug 5 2017

Issue description

c++17 was ratified jul 31 2017

I gave it a try here: https://chromium-review.googlesource.com/c/593214/

On Mac/iOS, open-vcdiff:

In file included from ../../sdch/open-vcdiff/src/decodetable.cc:19:
../../sdch/open-vcdiff/src/decodetable.h:136:8: error: no template named 'auto_ptr' in namespace 'std'
  std::auto_ptr<VCDiffCodeTableData> non_default_code_table_data_;
  ~~~~~^


On Win, MSVC's STL:

FAILED: obj/base/base/memory_win.obj 
E:\b\c\goma_client/gomacc.exe ../../third_party/llvm-build/Release+Asserts/bin/clang-cl.exe /nologo /showIncludes  @obj/base/base/memory_win.obj.rsp /c ../../base/process/memory_win.cc /Foobj/base/base/memory_win.obj /Fd"obj/base/base_cc.pdb"
In file included from ../../base/process/memory_win.cc:7:
e:\b\c\win_toolchain\vs_files\f53e4598951162bad6330f7a167486c7ae5db1e5\win_sdk\include\10.0.15063.0\ucrt\new.h(31,42):  error: conflicting types for 'set_new_handler'
            _CRTIMP2 new_handler __cdecl set_new_handler(_In_opt_ new_handler _NewHandler) throw();
                                         ^
e:\b\c\win_toolchain\vs_files\f53e4598951162bad6330f7a167486c7ae5db1e5\vc\include\new(26,30):  note: previous declaration is here
_CRTIMP2 new_handler __cdecl set_new_handler(_In_opt_ new_handler)
                             ^


On Linux, libc++:

In file included from ../../buildtools/third_party/libc++abi/trunk/src/cxa_unexpected.cpp:12:
../../buildtools/third_party/libc++abi/trunk/src/cxa_exception.hpp:39:10: error: no type named 'unexpected_handler' in namespace 'std'
    std::unexpected_handler unexpectedHandler;
    ~~~~~^
../../buildtools/third_party/libc++abi/trunk/src/cxa_exception.hpp:91:10: error: no type named 'unexpected_handler' in namespace 'std'
    std::unexpected_handler unexpectedHandler;
    ~~~~~^
2 errors generated.
 
Showing comments 7 - 106 of 106 Older

Comment 7 by re...@rezso.net, Nov 27 2017

On linux, without shipped libc++abi, with gcc 7.2:
- crc32c and leveldatabase requires c++17. I tried to add -std=gnu++17 to both, but this is not works.
- if I modify the cflagc_cc to -std=gnu++17 in build/config/compiler/BUILD.gn, the skia build fails:

FAILED: obj/skia/skia/SkTLS_pthread.o 
g++ -MMD -MF obj/skia/skia/SkTLS_pthread.o.d -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DNO_TCMALLOC -DDISABLE_NACL -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DSK_IGNORE_LINEONLY_AA_CONVEX_PATH_OPTS -DSK_HAS_PNG_LIBRARY -DSK_HAS_WEBP_LIBRARY -DSK_HAS_JPEG_LIBRARY -DSK_SUPPORT_GPU=1 -DSK_FREETYPE_MINIMUM_RUNTIME_VERSION=\(\(\(FREETYPE_MAJOR\)\ \*\ 0x01000000\)\ \|\ \(\(FREETYPE_MINOR\)\ \*\ 0x00010000\)\ \|\ \(\(FREETYPE_PATCH\)\ \*\ 0x00000100\)\) -DSK_GAMMA_EXPONENT=1.2 -DSK_GAMMA_CONTRAST=0.2 -DSK_DEFAULT_FONT_CACHE_LIMIT=20971520 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_54 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 -DUSE_LIBJPEG_TURBO=1 -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DUCHAR_TYPE=uint16_t -I../.. -Igen -I../../skia/config -I../../skia/ext -I../../third_party/skia/include/c -I../../third_party/skia/include/config -I../../third_party/skia/include/core -I../../third_party/skia/include/effects -I../../third_party/skia/include/encode -I../../third_party/skia/include/gpu -I../../third_party/skia/include/images -I../../third_party/skia/include/lazy -I../../third_party/skia/include/pathops -I../../third_party/skia/include/pdf -I../../third_party/skia/include/pipe -I../../third_party/skia/include/ports -I../../third_party/skia/include/utils -I../../third_party/skia/third_party/vulkan -I../../third_party/skia/include/codec -I../../third_party/skia/src/gpu -I../../third_party/skia/src/sksl -I../../third_party/skia/include/private -I../../third_party/skia/include/client/android -I../../third_party/skia/src/codec -I../../third_party/skia/src/core -I../../third_party/skia/src/image -I../../third_party/skia/src/images -I../../third_party/skia/src/opts -I../../third_party/skia/src/pdf -I../../third_party/skia/src/ports -I../../third_party/skia/src/shaders -I../../third_party/skia/src/shaders/gradients -I../../third_party/skia/src/sfnt -I../../third_party/skia/src/utils -I../../third_party/skia/src/lazy -I../../third_party/skia/third_party/gif -I../../third_party/skia/src/effects/gradients -I../../third_party/libpng -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/libdrm -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I../../third_party/libwebp/src -I../../third_party/freetype/include -I../../third_party/freetype/src/include -I../../third_party/libjpeg_turbo -I../../third_party/zlib -I../../third_party/icu/source/common -I../../third_party/icu/source/i18n -I../../third_party/sfntly/src/cpp/src -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -pthread -m32 -msse2 -mfpmath=sse -mmmx -fomit-frame-pointer -g0 -fvisibility=hidden -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-missing-field-initializers -Wno-unused-parameter -O2 -fno-ident -fdata-sections -ffunction-sections -std=gnu++17 -fno-rtti -fno-exceptions -fvisibility-inlines-hidden -Wno-narrowing -c ../../third_party/skia/src/ports/SkTLS_pthread.cpp -o obj/skia/skia/SkTLS_pthread.o
../../third_party/skia/src/ports/SkTLS_pthread.cpp: In static member function 'static void* SkTLS::PlatformGetSpecific(bool)':
../../third_party/skia/src/ports/SkTLS_pthread.cpp:19:59: error: no match for call to '(SkOnce) (int (&)(pthread_key_t*, void (*)(void*)) noexcept, pthread_key_t*, void (&)(void*))'
     once(pthread_key_create, &gSkTLSKey, SkTLS::Destructor);
                                                           ^
In file included from ../../third_party/skia/src/ports/SkTLS_pthread.cpp:9:0:
../../third_party/skia/include/private/SkOnce.h:25:10: note: candidate: void SkOnce::operator()(Fn&&, Args&& ...) [with Fn = int (&)(unsigned int*, void (*)(void*)) noexcept; Args = {unsigned int*, void (&)(void*)}]
     void operator()(Fn&& fn, Args&&... args) {
          ^~~~~~~~
../../third_party/skia/include/private/SkOnce.h:25:10: note:   no known conversion for argument 1 from 'int(pthread_key_t*, void (*)(void*)) noexcept {aka int(unsigned int*, void (*)(void*)) noexcept}' to 'int (&)(unsigned int*, void (*)(void*)) noexcept'

Comment 8 by dskiba@chromium.org, Dec 17 2017

Cc: dskiba@chromium.org
Cc: timbrown@chromium.org
Project Member

Comment 10 by bugdroid1@chromium.org, Jan 5 2018

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

commit 9f78c9314f583e92bba148549b3553699224c75c
Author: jdoerrie <jdoerrie@chromium.org>
Date: Fri Jan 05 12:21:25 2018

Return references from base::circular_deque::emplace_*

C++17 changes the return type of emplace{,_front,_back} from void to
reference for sequence containers [1]. This change updates
base::circular_deque to reflect this change and be compatible with
C++17. Note that this change has no effect on base::queue when using
C++14, as std::queue does not know yet about the changed return type.

[1] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0084r2.pdf

Bug: 752720
Change-Id: I163a6b60ade83ba135f429c8677fd60ab0bad451
Reviewed-on: https://chromium-review.googlesource.com/839773
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Reviewed-by: Brett Wilson <brettw@chromium.org>
Cr-Commit-Position: refs/heads/master@{#527259}
[modify] https://crrev.com/9f78c9314f583e92bba148549b3553699224c75c/base/containers/circular_deque.h
[modify] https://crrev.com/9f78c9314f583e92bba148549b3553699224c75c/base/containers/circular_deque_unittest.cc

Comment 11 by ebra...@gnu.org, Jan 8 2018

Cc: ebra...@gnu.org
Project Member

Comment 12 by bugdroid1@chromium.org, Jan 31 2018

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

commit 2f79d5432935b938db048a1899a0ba1150159397
Author: Nico Weber <thakis@chromium.org>
Date: Wed Jan 31 14:33:22 2018

various small tweaks to blink's gperf use

* make gperf.py call generate_gperf() both when it's invoked via
  use_jinja_gperf_template() as well as when it's called directly
  as a standalone script

* make generate_gperf() do massaging of gperf's output to remove
  uses of the `register` keyword (needed to build with -std=c++17)
  and replace `/*FALLTHROUGH*/` with real FALLTHROUGH statements
  (needed for -Wimplicit-fallthrough)

* remove now-unneeded suppressions for -Wdeprecated-register

* remove TODO about removing gperf.py; that's from a time when the
  script was 1 non-comment line long

* bump check_output() requirement in comment to 3.4 (since that added
  the input= parameter)

* add missing dependency on gperf.py to build steps calling it
  through the jinja interface, so that these edges rerun when
  gperf.py gets modified

* add a comment mentioning gperf.py at the start of the generated
  outputs

* make :character_data not call gperf.py since it doesn't use gperf,
  and make it use compiled_action() instead which is made for
  exactly character_data's use case

No intended behavior change.

Bug: 752720, 177475 
Change-Id: I56372729bb47787e2d41a5dff2f30804574770f0
Reviewed-on: https://chromium-review.googlesource.com/891141
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#533269}
[modify] https://crrev.com/2f79d5432935b938db048a1899a0ba1150159397/third_party/WebKit/Source/build/scripts/core/css/parser/templates/AtRuleDescriptors.cpp.tmpl
[modify] https://crrev.com/2f79d5432935b938db048a1899a0ba1150159397/third_party/WebKit/Source/build/scripts/core/css/templates/CSSValueKeywords.cpp.tmpl
[modify] https://crrev.com/2f79d5432935b938db048a1899a0ba1150159397/third_party/WebKit/Source/build/scripts/gperf.py
[modify] https://crrev.com/2f79d5432935b938db048a1899a0ba1150159397/third_party/WebKit/Source/build/scripts/templates/CSSPropertyNames.cpp.tmpl
[modify] https://crrev.com/2f79d5432935b938db048a1899a0ba1150159397/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/2f79d5432935b938db048a1899a0ba1150159397/third_party/WebKit/Source/platform/BUILD.gn
[modify] https://crrev.com/2f79d5432935b938db048a1899a0ba1150159397/third_party/WebKit/Source/platform/ColorData.gperf

Project Member

Comment 13 by bugdroid1@chromium.org, Jan 31 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/873601c652609d47e253c5e03672d80681be6fa7

commit 873601c652609d47e253c5e03672d80681be6fa7
Author: Rouslan Solomakhin <rouslan@chromium.org>
Date: Wed Jan 31 15:32:16 2018

Revert "various small tweaks to blink's gperf use"

This reverts commit 2f79d5432935b938db048a1899a0ba1150159397.

Reason for revert: Failed compile on https://ci.chromium.org/buildbot/chromium.win/WinMSVC64/1698

[74/5635] ACTION //third_party/WebKit/Source/platform:color_data(//build/toolchain/win:x64)
FAILED: gen/blink/platform/ColorData.cpp 
E:/b/depot_tools/win_tools-2_7_6_bin/python/bin/python.exe ../../third_party/WebKit/Source/build/scripts/gperf.py ../../third_party/gperf/bin/gperf.exe --key-positions=* -D -s 2 ../../third_party/WebKit/Source/platform/ColorData.gperf --output-file=gen/blink/platform/ColorData.cpp
Traceback (most recent call last):
  File "../../third_party/WebKit/Source/build/scripts/gperf.py", line 88, in <module>
    main()
  File "../../third_party/WebKit/Source/build/scripts/gperf.py", line 85, in main
    generate_gperf(gperf_path, open(infile).read(), gperf_args))
  File "../../third_party/WebKit/Source/build/scripts/gperf.py", line 30, in generate_gperf
    gperf_output = gperf.communicate(gperf_input)[0]
  File "E:\b\depot_tools\win_tools-2_7_6_bin\python\bin\lib\subprocess.py", line 798, in communicate
    return self._communicate(input)
  File "E:\b\depot_tools\win_tools-2_7_6_bin\python\bin\lib\subprocess.py", line 1035, in _communicate
    self.stdin.write(input)
IOError: [Errno 22] Invalid argument

Original change's description:
> various small tweaks to blink's gperf use
> 
> * make gperf.py call generate_gperf() both when it's invoked via
>   use_jinja_gperf_template() as well as when it's called directly
>   as a standalone script
> 
> * make generate_gperf() do massaging of gperf's output to remove
>   uses of the `register` keyword (needed to build with -std=c++17)
>   and replace `/*FALLTHROUGH*/` with real FALLTHROUGH statements
>   (needed for -Wimplicit-fallthrough)
> 
> * remove now-unneeded suppressions for -Wdeprecated-register
> 
> * remove TODO about removing gperf.py; that's from a time when the
>   script was 1 non-comment line long
> 
> * bump check_output() requirement in comment to 3.4 (since that added
>   the input= parameter)
> 
> * add missing dependency on gperf.py to build steps calling it
>   through the jinja interface, so that these edges rerun when
>   gperf.py gets modified
> 
> * add a comment mentioning gperf.py at the start of the generated
>   outputs
> 
> * make :character_data not call gperf.py since it doesn't use gperf,
>   and make it use compiled_action() instead which is made for
>   exactly character_data's use case
> 
> No intended behavior change.
> 
> Bug: 752720, 177475 
> Change-Id: I56372729bb47787e2d41a5dff2f30804574770f0
> Reviewed-on: https://chromium-review.googlesource.com/891141
> Commit-Queue: Nico Weber <thakis@chromium.org>
> Reviewed-by: Darren Shen <shend@chromium.org>
> Reviewed-by: Daniel Cheng <dcheng@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#533269}

TBR=dcheng@chromium.org,thakis@chromium.org,shend@chromium.org

Change-Id: Iddbf12ba341fa4ea456552f449154bc5d6328073
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 752720,  177475 
Reviewed-on: https://chromium-review.googlesource.com/895543
Reviewed-by: Rouslan Solomakhin <rouslan@chromium.org>
Commit-Queue: Rouslan Solomakhin <rouslan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#533276}
[modify] https://crrev.com/873601c652609d47e253c5e03672d80681be6fa7/third_party/WebKit/Source/build/scripts/core/css/parser/templates/AtRuleDescriptors.cpp.tmpl
[modify] https://crrev.com/873601c652609d47e253c5e03672d80681be6fa7/third_party/WebKit/Source/build/scripts/core/css/templates/CSSValueKeywords.cpp.tmpl
[modify] https://crrev.com/873601c652609d47e253c5e03672d80681be6fa7/third_party/WebKit/Source/build/scripts/gperf.py
[modify] https://crrev.com/873601c652609d47e253c5e03672d80681be6fa7/third_party/WebKit/Source/build/scripts/templates/CSSPropertyNames.cpp.tmpl
[modify] https://crrev.com/873601c652609d47e253c5e03672d80681be6fa7/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/873601c652609d47e253c5e03672d80681be6fa7/third_party/WebKit/Source/platform/BUILD.gn
[modify] https://crrev.com/873601c652609d47e253c5e03672d80681be6fa7/third_party/WebKit/Source/platform/ColorData.gperf

Project Member

Comment 14 by bugdroid1@chromium.org, Jan 31 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/26af1d326eec9759c01552d85b3f60927c7d8135

commit 26af1d326eec9759c01552d85b3f60927c7d8135
Author: Nico Weber <thakis@chromium.org>
Date: Wed Jan 31 19:53:11 2018

Reland: various small tweaks to blink's gperf use

* make gperf.py call generate_gperf() both when it's invoked via
  use_jinja_gperf_template() as well as when it's called directly
  as a standalone script

* make generate_gperf() do massaging of gperf's output to remove
  uses of the `register` keyword (needed to build with -std=c++17)
  and replace `/*FALLTHROUGH*/` with real FALLTHROUGH statements
  (needed for -Wimplicit-fallthrough)

* remove now-unneeded suppressions for -Wdeprecated-register

* remove TODO about removing gperf.py; that's from a time when the
  script was 1 non-comment line long

* bump check_output() requirement in comment to 3.4 (since that added
  the input= parameter)

* add missing dependency on gperf.py to build steps calling it
  through the jinja interface, so that these edges rerun when
  gperf.py gets modified

* add a comment mentioning gperf.py at the start of the generated
  outputs

* make :character_data not call gperf.py since it doesn't use gperf,
  and make it use compiled_action() instead which is made for
  exactly character_data's use case

No intended behavior change.

Originally reviewed at https://chromium-review.googlesource.com/c/chromium/src/+/891141
Attempt to fix WinMSVC64 by not passing input both on stdin and as arg.

TBR=dcheng

Bug: 752720, 177475 
Change-Id: I8ef306cd0c943f06fc3538b58cf0bc086cd391dc
Reviewed-on: https://chromium-review.googlesource.com/895668
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#533364}
[modify] https://crrev.com/26af1d326eec9759c01552d85b3f60927c7d8135/third_party/WebKit/Source/build/scripts/core/css/parser/templates/AtRuleDescriptors.cpp.tmpl
[modify] https://crrev.com/26af1d326eec9759c01552d85b3f60927c7d8135/third_party/WebKit/Source/build/scripts/core/css/templates/CSSValueKeywords.cpp.tmpl
[modify] https://crrev.com/26af1d326eec9759c01552d85b3f60927c7d8135/third_party/WebKit/Source/build/scripts/gperf.py
[modify] https://crrev.com/26af1d326eec9759c01552d85b3f60927c7d8135/third_party/WebKit/Source/build/scripts/templates/CSSPropertyNames.cpp.tmpl
[modify] https://crrev.com/26af1d326eec9759c01552d85b3f60927c7d8135/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/26af1d326eec9759c01552d85b3f60927c7d8135/third_party/WebKit/Source/platform/BUILD.gn
[modify] https://crrev.com/26af1d326eec9759c01552d85b3f60927c7d8135/third_party/WebKit/Source/platform/ColorData.gperf

Comment 15 by tzik@chromium.org, Apr 20 2018

Cc: tzik@chromium.org alexclarke@chromium.org
Project Member

Comment 16 by bugdroid1@chromium.org, Apr 24 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/99c0d03b9424ec1f31512bfe80f2dd01566c3924

commit 99c0d03b9424ec1f31512bfe80f2dd01566c3924
Author: Oystein Eftevaag <oysteine@chromium.org>
Date: Tue Apr 24 00:25:56 2018

Rolled //third_party/perfetto to e62bd2ba4fb9e814d832cc313f9181b998cf7144 (ToT)

R=primiano@chromium.org
CC=tzik@chromium.org
PRESUBMIT=TRUE
BUG=752720

Change-Id: I0f4c5540fb58b1df000e2fcbe75a93f110cef39e
Reviewed-on: https://chromium-review.googlesource.com/1024398
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Commit-Queue: oysteine <oysteine@chromium.org>
Cr-Commit-Position: refs/heads/master@{#552921}
[modify] https://crrev.com/99c0d03b9424ec1f31512bfe80f2dd01566c3924/DEPS

The Skia issue in comment #7 appears to be a result of https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82406 . In any event I have locally confirmed that this no longer happens with gcc 7.3.

Comment 18 by tzik@chromium.org, Apr 25 2018

Blockedon: 836706

Comment 19 by tzik@chromium.org, Apr 25 2018

On my attempt remaining issues are:
 * `register` keyword used in mesa gets unavailable.
   - http://crrev.com/c/1027451
 * std::random_shuffle gets unavailable.
   - http://crrev.com/c/1023495
   - A fix for crashpad is pending.
 * Return type update on emplace_back
   - Fixed and rolled as #c16
 * Distinct type for noexcept functions
   - http://crrev.com/c/1027530
 * Deprecated <functional> adapters get unavailable.
   - http://crrev.com/c/1025541
   - https://webrtc-review.googlesource.com/c/src/+/72360. Plus, needs roll.
 * std::auto_ptr gets unavailable.
   - Already fixed in upstream. Needs roll.
   - http://crrev.com/c/1027561
 * libc++abi needs to stick to C++14.
   - Needs configurable -std=*. http://crrev.com/c/1027600
Thanks for looking at this!
Project Member

Comment 21 by bugdroid1@chromium.org, Apr 25 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/22ae932e849e899e818ac3a28f060f7d19b76a42

commit 22ae932e849e899e818ac3a28f060f7d19b76a42
Author: tzik <tzik@chromium.org>
Date: Wed Apr 25 16:22:12 2018

Remove deprecated std::ptr_fun and std::bind2nd

std::ptr_fun and std::bind2nd are deprecated in C++11, and removed in
C++17. This CL removes their usage, so that the code base is ready for
C++17.

Bug: 752720
Change-Id: I5a33143768a32864367f6889c4d1dbd0a26ee9e2
Reviewed-on: https://chromium-review.googlesource.com/1025541
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Sorin Jianu <sorin@chromium.org>
Reviewed-by: Maksim Ivanov <emaxx@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#553595}
[modify] https://crrev.com/22ae932e849e899e818ac3a28f060f7d19b76a42/components/policy/core/common/preg_parser.cc
[modify] https://crrev.com/22ae932e849e899e818ac3a28f060f7d19b76a42/components/update_client/background_downloader_win.cc

Project Member

Comment 22 by bugdroid1@chromium.org, Apr 26 2018

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

commit d58a892381cec4d6b19f0f0333964621bee1a901
Author: tzik <tzik@chromium.org>
Date: Thu Apr 26 04:29:53 2018

Support C++17 noexcept function type in base::Bind

In C++17, noexcept keyword is a part of the function type, and that
causes a pattern match failure on base::Bind implementation.
This CL fixes the failure by falling it back to bare function cases.

Bug: 752720
Change-Id: I98c71977fa3fd759956c86e394fb9e30179c951c
Reviewed-on: https://chromium-review.googlesource.com/1027530
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#553913}
[modify] https://crrev.com/d58a892381cec4d6b19f0f0333964621bee1a901/base/bind_internal.h
[modify] https://crrev.com/d58a892381cec4d6b19f0f0333964621bee1a901/base/bind_unittest.cc

Project Member

Comment 23 by bugdroid1@chromium.org, Apr 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/buildtools/+/b7d53a93026d04002ca0705b5bf002de79c72165

commit b7d53a93026d04002ca0705b5bf002de79c72165
Author: tzik <tzik@chromium.org>
Date: Thu Apr 26 09:05:03 2018

Make libc++abi C++17 ready

libc++abi used to fail to compile in C++17 mode, as it touches
std::unexpected, which is removed in C++17.

This CL adds _LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS macro
to all libc++abi files, so that libc++ provides missing std::unexpected
even in C++17.

Bug: 752720
Change-Id: Ib7cc2e350ae9bcd373cd9b4ea91ee4dcb85a0b6a

[modify] https://crrev.com/b7d53a93026d04002ca0705b5bf002de79c72165/third_party/libc++abi/BUILD.gn

Project Member

Comment 24 by bugdroid1@chromium.org, Apr 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/deps/mesa/+/9d9b0710470f581cb5485b02b6acd8415cc093e8

commit 9d9b0710470f581cb5485b02b6acd8415cc093e8
Author: tzik <tzik@chromium.org>
Date: Thu Apr 26 11:36:47 2018

Regenerate chromium_gensrc with newer flex and bison

This CL updates chremium_gensrc/ with the regenerated sources.
----
cd third_party/mesa/src
touch src/mapi/glapi/gen/glapi_gen.mk
./autogen.sh
./configure
make -k -j$(nproc)
cd src/glsl
cp -t ../../chromium_gensrc \
  glcpp/glcpp-lex.c \
  glcpp/glcpp-parse.{h,c} \
  glsl_lexer.cc \
  glsl_parser.{h,cc} \
  program/lex.yy.c
cp -t ../../chromium_gensrc/program \
  program/program_parse.tab.{h,c}
sed -i 's/\(yylex.*\)scanner/\1YYLEX_PARAM/g' \
  glsl_parser.cc program/program_parse.tab.c
sed -i 's/YYID//g' program/program_parse.tab.c

Bug: chromium:752720
Change-Id: I28286d7f9581b2ba2c0d10cee273eb7fd3354dbe

[modify] https://crrev.com/9d9b0710470f581cb5485b02b6acd8415cc093e8/chromium_gensrc/mesa/glcpp-parse.c
[modify] https://crrev.com/9d9b0710470f581cb5485b02b6acd8415cc093e8/chromium_gensrc/mesa/glsl_lexer.cc
[modify] https://crrev.com/9d9b0710470f581cb5485b02b6acd8415cc093e8/chromium_gensrc/mesa/program/program_parse.tab.c
[modify] https://crrev.com/9d9b0710470f581cb5485b02b6acd8415cc093e8/chromium_gensrc/mesa/program/program_parse.tab.h
[modify] https://crrev.com/9d9b0710470f581cb5485b02b6acd8415cc093e8/chromium_gensrc/mesa/glcpp-lex.c
[modify] https://crrev.com/9d9b0710470f581cb5485b02b6acd8415cc093e8/chromium_gensrc/mesa/lex.yy.c
[modify] https://crrev.com/9d9b0710470f581cb5485b02b6acd8415cc093e8/chromium_gensrc/mesa/glsl_parser.h
[modify] https://crrev.com/9d9b0710470f581cb5485b02b6acd8415cc093e8/chromium_gensrc/mesa/glsl_parser.cc
[modify] https://crrev.com/9d9b0710470f581cb5485b02b6acd8415cc093e8/chromium_gensrc/mesa/glcpp-parse.h

Project Member

Comment 25 by bugdroid1@chromium.org, Apr 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/697e66a731ddf3da1e8704d7002646c1350f872e

commit 697e66a731ddf3da1e8704d7002646c1350f872e
Author: tzik <tzik@chromium.org>
Date: Fri Apr 27 05:04:17 2018

Replace std::mem_fun with std::mem_fn in //chromeos/dbus

As std::mem_fun is deprecated in C++11 and removed in C++17, we need to
update it to compile the code in C++17.

Bug: 752720
Change-Id: I8f1c6bb8d6b302ec20799b6d2d636f7ac4d62e2b
Reviewed-on: https://chromium-review.googlesource.com/1032111
Reviewed-by: Ryo Hashimoto <hashimoto@chromium.org>
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#554312}
[modify] https://crrev.com/697e66a731ddf3da1e8704d7002646c1350f872e/chromeos/dbus/services/service_provider_test_helper.cc

Comment 26 by tzik@chromium.org, Apr 27 2018

Reporting updates before leaving for OOO. Remaining issues on Linux C++17 are:
 1. std::random_shuffle:
   - still under review. I'll probably wait for farahcharab's thread-local PRNG.
   - http://crrev.com/c/1023495
 2. webrtc:
   - an upstream change is under review
   - https://webrtc-review.googlesource.com/c/src/+/72360
 3. libaddressinput:
   - an upstream change is under review
   - https://github.com/googlei18n/libaddressinput/pull/159
 4. libc++abi:
   - local workaround is in.
   - needs clean up after upstream change lands
   - https://reviews.llvm.org/D46056

After (2) is resolved, we'll be able to try it on the bot for other platforms.
Project Member

Comment 27 by bugdroid1@chromium.org, Apr 27 2018

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

commit 6ba36e49a0c26c53bf7e4507707f84f7a20e2205
Author: tzik <tzik@chromium.org>
Date: Fri Apr 27 12:30:49 2018

Roll src/buildtools/ ab7b6a7b3..b7d53a930 (1 commit)

https://chromium.googlesource.com/chromium/buildtools.git/+log/ab7b6a7b350d..b7d53a93026d

$ git log ab7b6a7b3..b7d53a930 --date=short --no-merges --format='%ad %ae %s'
2018-04-26 tzik Make libc++abi C++17 ready

Created with:
  roll-dep src/buildtools
BUG=752720

Change-Id: I225dd038f21b49d34bdf48bfd3fddaf40c1b2fea
Reviewed-on: https://chromium-review.googlesource.com/1032130
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#554362}
[modify] https://crrev.com/6ba36e49a0c26c53bf7e4507707f84f7a20e2205/DEPS

Project Member

Comment 28 by bugdroid1@chromium.org, Apr 29 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/51556bb7b468ff3bb5e998f69388b82a3633798f

commit 51556bb7b468ff3bb5e998f69388b82a3633798f
Author: tzik <tzik@chromium.org>
Date: Sun Apr 29 09:48:22 2018

Roll src/third_party/mesa/src/ 803b11320..9d9b07104 (1 commit)

https://chromium.googlesource.com/chromium/deps/mesa.git/+log/803b11320967..9d9b0710470f

$ git log 803b11320..9d9b07104 --date=short --no-merges --format='%ad %ae %s'
2018-04-26 tzik Regenerate chromium_gensrc with newer flex and bison

Created with:
  roll-dep src/third_party/mesa/src
BUG=752720

Change-Id: I29ff738aab99fb36f8a89ea0b3732ad5cba29ec0
Reviewed-on: https://chromium-review.googlesource.com/1032132
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#554669}
[modify] https://crrev.com/51556bb7b468ff3bb5e998f69388b82a3633798f/DEPS
[modify] https://crrev.com/51556bb7b468ff3bb5e998f69388b82a3633798f/third_party/mesa/BUILD.gn
[modify] https://crrev.com/51556bb7b468ff3bb5e998f69388b82a3633798f/third_party/mesa/README.chromium

Project Member

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

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/2199580590342381d07b215613be82964ab44871

commit 2199580590342381d07b215613be82964ab44871
Author: tzik <tzik@chromium.org>
Date: Wed May 02 19:51:17 2018

Remove deprecated std::bind2nd and std::ptr_fun

std::bind2nd and std::ptr_fun are deprecated in C++11 and removed in
C++17. This CL removes their usage, so that the code base is ready for
C++17.

Bug: chromium:752720
Change-Id: I6ec0b596202ebf84cf7b8744f516a76ac8328ccd
Reviewed-on: https://webrtc-review.googlesource.com/72360
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#23083}
[modify] https://crrev.com/2199580590342381d07b215613be82964ab44871/pc/mediasession.cc

Project Member

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

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/29f0d0af0615e8ba6c45ccd715f0886ce6b2d068

commit 29f0d0af0615e8ba6c45ccd715f0886ce6b2d068
Author: webrtc-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com <webrtc-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Wed May 02 23:40:25 2018

Roll src/third_party/webrtc/ c3d8bb1c5..219958059 (4 commits)

https://webrtc.googlesource.com/src.git/+log/c3d8bb1c522d..219958059034

$ git log c3d8bb1c5..219958059 --date=short --no-merges --format='%ad %ae %s'

Created with:
  roll-dep src/third_party/webrtc
BUG=chromium:752720


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=master.tryserver.chromium.linux:linux_chromium_archive_rel_ng;master.tryserver.chromium.mac:mac_chromium_archive_rel_ng
TBR=webrtc-chromium-sheriffs-robots@google.com

Change-Id: Ib4c32b2a27f0c4f4effd47b6b14888408b2973c6
Reviewed-on: https://chromium-review.googlesource.com/1040740
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@{#555611}
[modify] https://crrev.com/29f0d0af0615e8ba6c45ccd715f0886ce6b2d068/DEPS

Project Member

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

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/buildtools/+/292896eef97e4c9af9bc1ae96e83779d7cceb24b

commit 292896eef97e4c9af9bc1ae96e83779d7cceb24b
Author: tzik <tzik@chromium.org>
Date: Mon May 07 04:57:14 2018

Roll libc++abi 52c7a376..05a73941

This rolls libc++abi to grab 934e061, and removes an unneeded warning
suppression for it.

05a7394 Fix test failure for missing _LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS
934e061 Move _LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS macro to build system
b95ff2d [libc++abi] Replace __sync_* functions with __libcpp_atomic_* functions.
0df654b [demangler] NFC: Some refactoring to support partial demangling.

Bug: 752720
Change-Id: I311f5de4677d551d245549db84dbd82acb6dddf4

[modify] https://crrev.com/292896eef97e4c9af9bc1ae96e83779d7cceb24b/deps_revisions.gni
[modify] https://crrev.com/292896eef97e4c9af9bc1ae96e83779d7cceb24b/third_party/libc++abi/BUILD.gn
[modify] https://crrev.com/292896eef97e4c9af9bc1ae96e83779d7cceb24b/DEPS

Project Member

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

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

commit ef1f9c4bfd76361fe6739c2de3e848b5cae0858f
Author: tzik <tzik@chromium.org>
Date: Mon May 07 22:56:20 2018

Remove an unneeded warning suppression in //third_party/libwebm

-Wno-deprecated-declarations is no longer needed after
http://crrev.com/689599319903ef86.

Bug: 752720
Change-Id: Ief8b8d62b9d503c597e05534009ca728786e764d
Reviewed-on: https://chromium-review.googlesource.com/1046405
Reviewed-by: Miguel Casas <mcasas@chromium.org>
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#556592}
[modify] https://crrev.com/ef1f9c4bfd76361fe6739c2de3e848b5cae0858f/third_party/libwebm/BUILD.gn

Project Member

Comment 33 by bugdroid1@chromium.org, May 8 2018

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

commit 5de2157f1e7fb9b16f92472fcdf635911f478495
Author: tzik <tzik@chromium.org>
Date: Tue May 08 03:42:47 2018

Add base::RandomShuffle as a replacement of deprecated std::random_shuffle

As std::random_shuffle is deprecated in C++14, and removed in C++17,
its usage blocks the transition to C++17.

This CL adds base::RandomShuffle as the replacement, updates all users,
and adds a presubmit check to ban std::random_shuffle.

Bug: 752720
Change-Id: I99a9dd267e56c04176cf3dc1f6bb7025cdb1deb6
Reviewed-on: https://chromium-review.googlesource.com/1023495
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Reviewed-by: Gabriel Charette <gab@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Jeffrey Yasskin <jyasskin@chromium.org>
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#556680}
[modify] https://crrev.com/5de2157f1e7fb9b16f92472fcdf635911f478495/PRESUBMIT.py
[modify] https://crrev.com/5de2157f1e7fb9b16f92472fcdf635911f478495/base/rand_util.h
[modify] https://crrev.com/5de2157f1e7fb9b16f92472fcdf635911f478495/chrome/browser/android/thumbnail/scoped_ptr_expiring_cache_unittest.cc
[modify] https://crrev.com/5de2157f1e7fb9b16f92472fcdf635911f478495/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
[modify] https://crrev.com/5de2157f1e7fb9b16f92472fcdf635911f478495/components/autofill/core/browser/personal_data_manager_unittest.cc
[modify] https://crrev.com/5de2157f1e7fb9b16f92472fcdf635911f478495/components/sync/base/ordinal_unittest.cc
[modify] https://crrev.com/5de2157f1e7fb9b16f92472fcdf635911f478495/components/url_pattern_index/url_pattern_index_unittest.cc
[modify] https://crrev.com/5de2157f1e7fb9b16f92472fcdf635911f478495/net/proxy_resolution/dhcp_pac_file_fetcher_win_unittest.cc
[modify] https://crrev.com/5de2157f1e7fb9b16f92472fcdf635911f478495/net/third_party/http2/hpack/decoder/hpack_block_collector.cc
[modify] https://crrev.com/5de2157f1e7fb9b16f92472fcdf635911f478495/third_party/crashpad/README.chromium
[modify] https://crrev.com/5de2157f1e7fb9b16f92472fcdf635911f478495/third_party/crashpad/crashpad/client/prune_crash_reports_test.cc
[modify] https://crrev.com/5de2157f1e7fb9b16f92472fcdf635911f478495/tools/ipc_fuzzer/fuzzer/fuzzer_main.cc

Comment 34 by tzik@chromium.org, May 8 2018

Cc: hidehiko@chromium.org
Here is an update after an attempt on bots: https://chromium-review.googlesource.com/c/chromium/src/+/1032317/11
 1. libaddressinput. A google3 CL is under review. cr/195613391
 2. mac link failed due to the old libc++. A workaround is pending. http://crrev.com/c/1049186
 3. ios. Simple glitch? http://crrev.com/c/1049089
 4. fuchsia needs SDK roll for https://fuchsia-review.googlesource.com/c/zircon/+/151136
 5. win is TBD. Probably we need to migrate to libc++ from MSVC STL first?
 6. nacl. nacl-clang is too old to use C++17.

I think nacl-clang is a hard blocker, as it will not be updated to a newer clang. I don't know the deprecation timeline of NaCl, but it probably doesn't happen anytime soon.
Also, there seem some out-of-tree components that use Chromium around Android and ChromeOS.
We should probably care them too?

Comment 35 by tzik@chromium.org, May 9 2018

Blockedon: 841122
Project Member

Comment 36 by bugdroid1@chromium.org, May 9 2018

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

commit a1f0022e74bb529dffd6648ee28373a226759dae
Author: tzik <tzik@chromium.org>
Date: Wed May 09 10:16:11 2018

Disable C++17 aligned memory allocation on Mac

libc++ starts using aligned new operator when it's in C++17 mode, but
system libc++ on Mac doesn't have it, and that causes a link error.

This CL turn on _LIBCPP_HAS_NO_ALIGNED_ALLOCATION to avoid using
the unavailable aligned allocation.

Bug: 752720
Change-Id: I89be50bcc26d23a43da3b807109a1271fcf141f0
Reviewed-on: https://chromium-review.googlesource.com/1049186
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#557133}
[modify] https://crrev.com/a1f0022e74bb529dffd6648ee28373a226759dae/build/config/compiler/BUILD.gn

Re 5 above: CEF says it wants to keep supporting building with the MSVC STL even if we switch, and it'd be nice for clang-cl if it worked with the MSVC STL in c++17 mode. So we should probably try and fix things there. Maybe you can make a dedicated blocking bug for that and list issues there. (The constexpr thing is already fixed upstream and just needs a clang roll.)
Project Member

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

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5793a94f8e085fdec7b2277fbccfe7813bd73683

commit 5793a94f8e085fdec7b2277fbccfe7813bd73683
Author: tzik <tzik@chromium.org>
Date: Fri May 11 04:18:40 2018

Roll src/third_party/crc32c/src/ 0f771ed5e..f8925d027 (8 commits)

This grabs f8925d027884dde9, that fixes a compile failure of crc32c on C++17 mode.

https://chromium.googlesource.com/external/github.com/google/crc32c.git/+log/0f771ed5ef83..f8925d027884

$ git log 0f771ed5e..f8925d027 --date=short --no-merges --format='%ad %ae %s'
2018-05-10 tzik Move string_view inclusion out of crc32c namespace (#19)
2018-04-23 costan Bump third-party dependencies and fix MSVC compile warning. (#18)
2018-03-15 costan Improved configuration for YouCompleteMe, Travis and AppVeyor. (#16)
2018-03-15 costan Disable exceptions on Visual Studio. (#17)
2018-02-23 costan Replace preprocessor macros with Google Test's Type-Parameterized Tests. (#15)
2017-11-30 costan Update dependencies. (#14)
2017-11-27 costan Remove unofficial product notice from README. (#13)
2017-10-05 costan CMake: fix include install path. (#12)

Created with:
  roll-dep src/third_party/crc32c/src
BUG=752720

Change-Id: I6b5b7f101b830fa0c7c5df6bfd6d201e01a9a358
Reviewed-on: https://chromium-review.googlesource.com/1053848
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Reviewed-by: Victor Costan <pwnall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#557793}
[modify] https://crrev.com/5793a94f8e085fdec7b2277fbccfe7813bd73683/DEPS

Comment 39 by tzik@chromium.org, May 11 2018

Blockedon: 842118

Comment 40 by tzik@chromium.org, May 15 2018

Blockedon: 842996

Comment 41 by tzik@chromium.org, May 16 2018

We are almost there. After resolving a few clang-cl issues (https://reviews.llvm.org/D46820 for  http://crbug.com/842118 , and https://reviews.llvm.org/D46929 for  http://crbug.com/842996 ), we'll be able to build everything but NaCl in C++17.
Great progress! Is there any word on the timeline for NaCl depreciation?
Cc: roc...@chromium.org lhchavez@chromium.org satorux@chromium.org
Re #34.

FYI: As of now, enabling C++17 would block updating libchrome,
i.e., would block to update Mojo in several branches for ARC, too.
It may also affect to Mojo's "building c library" plan, too, as toolchain is not available for ARC branches now.

Re 43: Can you expand on that? Why wasn't libchrome a problem for the C++11 and C++14 switches?
Re #44:

My understanding is...

The transition plan for C++14 was not so aggressive.
So, at least toolchain was available in Android branches.

For historical reason, libchrome was left very old in AOSP.
It is problematic for Mojo maintenance, and it is necessary to keep it updated.

Can you explain what exactly is problematic? Do we build parts of chrome with other compilers? Which parts? Which mojo files?
rockot@, could you share the Mojo plan, and what exactly will be broken if we keep using older Mojo?

Why would we have to keep using an older Mojo? Please explain what dependencies exist as if I had no idea at all about libchrome and ARC++, and please answer the questions in comment 46 :-)
I assume the issue would be whatever toolchain is used to build stuff in
AOSP, and it's not specific to Mojo really (i.e. //base is built there as
well).
BTW libchrome is a repo in AOSP which is a fork of a subset of the chromium
tree. hidehiko@ and ecaruso@ have been working to uprev it, but it's
severely out-of-date. It's a fairly important goal for this to be uprevved
more often, and as soon as possible.

I don't understand exactly where outdated toolchains are used though. I'm
assuming AOSP, but maybe Chrome OS system repos also use an older toolchain
than chromium?
Do you have more details on this? base is explicitly not meant to be used anywhere outside src (see e.g.  issue 472900 ). What exactly is built by the AOSP toolchain? Mojo compiler output? Code in src?

(i.e. someone please answer the questions in comment 46 :-))
There's a long history:
https://www.chromium.org/chromium-os/packages/libchrome

I don't know what all is built against base etc, but it is *a lot of stuff*
and it's been going on for years.
Ok, thanks, it sounds like libchrome is a copy of chrome code, so changes in chrome code itself doesn't immediately affect it and just makes it harder to update it. Worst case, I'm guessing AOSP could use chromium's clang to build these parts.

Chrome OS uses a fairly recent clang managed by the chromeos toolchain team.
> Why would we have to keep using an older Mojo?

Current ARC++ is based on Android N, whose toolchain does not support C++17 AFAIK.
With keeping the current structure, if C++17 is enabled, we have no way to roll it to N.
Note that Mojo team is changing the roll mechanism, but I don't know the detailed plan.

> libchrome and ARC++

libchrome is a library used in Chrome OS and Android to provide Chrome's functionality, including Mojo support. ARC++ uses it.

> please answer the questions in comment 46 :-)

Oh, I meant, Mojo team should know "what exactly is problematic" better,
so, rockot@, could you share it? What'll happen if we keep using old Mojo?
We are not changing the roll mechanism. We're merely reducing what parts of Mojo will be rolled vs being shipped as a shared library with the cros system.

It doesn't really matter though, what matters is that libchrome needs to keep uprevving.
So to elaborate a bit: we're stabilizing a minimal ABI for Mojo, and that will ship as a shared library on cros systems.

Separately, the mojo/public APIs are being refactored to use that shared library if initialized appropriately. This will allow all components across the system (including in ARC++) to use the same core Mojo implementation without needing to be built against the same version of the public library.

Once that work is fully landed, libchrome will need to uprev at least beyond that revision.

Beyond that point it doesn't really matter (for Mojo) if libchrome is ever uprevved again. But that hasn't landed yet and is probably still several weeks away, and I assume the corresponding uprev will be months away.
Please run the "stable ABI" parts by us compiler folks, this is something we have opinions about :-)

Does using chromium's clang for building libchrome sound ok? It can target Android fine, and the assumption of chrome code is that it's built by that toolchain.
Mojo core is strictly a C ABI, so probably nothing to worry about from your perspective. :)

And we do use chromium's clang to build the shared library even for ARC++.

The issue is going to random AOSP projects which depend on libchrome, because I don't know how much control we have over what toolchains they use.
> so changes in chrome code itself doesn't immediately affect it and just makes it harder to update it.

Exactly. At the same time, though, I'm worrying about it conflict with Mojo team's request to keep libchrome uprevved.

Because of toolchain unavailability, I'm thinking it makes much harder to uprev libchrome in Android N.
Meanwhile, we have to keep old libchrome/Mojo in the branch at least, when C++17 actually starts to be used.

> We're merely reducing what parts of Mojo will be rolled vs being shipped as a shared library with the cros system.

In case if we couldn't roll it, can older rolled lib talk to the shared lib?
> C ABI

Cool, no concerns then. (This implies no dependencies on libc++ or libc++abi or similar, right?)

> The issue is going to random AOSP projects which depend on libchrome

...why are there  random AOSP projects depending on libchrome? I had expected this to be a very small list necessary for ARC++.

Does libchrome have a well-defined public interface, or does it expose chromium headers to the world more or less? That's kind of what it sounds like.

Promising to not change chromium headers because it might break unknown projects far away does not at all seem reasonable to me, if that's the request. I hope I'm misunderstanding it though!
No. The older public library doesn't even know the shared library exists. We have to roll at least to the revision where the public library knows about the shared library and some of its newer APIs (which haven't landed yet).

Correct, no dependencies on any C++ ABI of any kind.

As for libchrome... Not only are random projects building against it in Chrome OS and AOSP, but it even builds shared libraries for base and other parts, and things link against those shared libraries (yes with an unstable C++ ABI). So every project in the system which depends on libchrome (AFAIK there are dozens) must be uprevved in tandem with libchrome. It is a phenomenally bad situation.

We obviously cannot be asked to stop changing chromium headers indefinitely, but I think we need to do ... something. If could defer C++17 allowances for a quarter -- which I would hate to do on account of only Android N ARC++ libchrome usage -- that would probably be a sufficient window to land what needs to be landed and uprevved, and then Android N ARC++ can commit itself to never uprevving libchrome again.

Or we could find a way to make AOSP require a newer toolchain, which does not seem unreasonable to me at all. Is that not an option, hidehiko@?
> ...why are there  random AOSP projects depending on libchrome? I had expected this to be a very small list necessary for ARC++.

libchrome is not only for ARC++, but also other projects. It has existed in AOSP since much before ARC++ starts.
# I'm relatively new here, so I don't much know about its history well.

libchrome exposes Chromium headers to projects depending on the lib,
and each projects catch up to the latest Chrome API on update, so it hasn't been problem and libchrome didn't request to keep Chromium header files in ToT just because of libchrome.

It works well in most cases. C++17 is a kind of edge case, IMHO, because it depends on toolchain burden, so I'd appreciate for exceptional consideration in this case.

Re #61: Then, if;
Once shared lib work is done, and rolled to ARC++ at least once.
Then, the rolled Mojo can be kept for a while, even shared lib is updated?

AOSP already has C++17-compliant toolchains. Android's init has been using C++17 features for a while now.
Re #63 - yes, once rolled past the introduction of working shared library support in mojo/public, it doesn't matter how old libchrome gets.

Alas... comment #64 is promising. :)
Re #62: If that works, I'm ok from ARC++ point of view.
So the plan is;
- We can probably keep tracking ToT Chrome in libchrome in AOSP master (and probably ARC P, too).
- For ARC N, we need at least one libchrome/Mojo roll supporting C library which is C++14 compatible, then, we can leave it for a while (at least it wouldn't break the product).

Is my understanding correct?
That all sounds correct, but ideally even ARC N could be built with newer toolchains. Is that really not feasible?

Otherwise we will still have to ask for C++17 adoption to be deferred until the aforementioned libchrome uprev lands.
> ideally even ARC N could be built with newer toolchains. Is that really not feasible?

that's a consideration and what I asked tzik@ to check, actually.
According to my personal experience, updating toolchain always hits mysterious issues, and takes longer time than expected even if it is really feasible.

Personally, I'm slightly optimistic in this specific case, because newer Android already has newer toolchain, and they should have hit and have solved that "mysterious issues" already, so we may be able to borrow the fixes.
Though, anyway, because it is not available now, unfortunately, I don't think it can be quickly done.

Comment 69 by tzik@chromium.org, May 17 2018

As another proposal, can we move to C++17 mode anyway, but keep components C++14 compatible as needed?
That is, as NaCl, libchrome and remoting use existing //base, //ipc, //net, //ppapi, and some other components, we may have to keep them in C++14 compatible, but other components don't matter to that.
So, we can probably allow C++17 features on other components (e.g. //chrome, //content and Blink), then, maintain //base and others in C++14 compatible by hiding C++17 features behind the flag or excluding new files from the source set.
I think that's very confusing, and we need to resolve the nacl stuff anyhow. Let's try to do that first for a bit.
Project Member

Comment 71 by bugdroid1@chromium.org, May 22 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/00dbee10ee92b27a7d7ea989fd0a4f635527a90d

commit 00dbee10ee92b27a7d7ea989fd0a4f635527a90d
Author: tzik <tzik@chromium.org>
Date: Tue May 22 08:31:25 2018

Add noexcept to logo_common.cc stuff to align its declarations

Move ctors and assigns in logo_common.h have noexcept now, but its impls
don't have noexcept. That causes a compile failure on C++17 mode.

Bug: 752720
Change-Id: Ied88e8fc5a0c4e3519fe65b3139aa366440af448
Reviewed-on: https://chromium-review.googlesource.com/1068627
Reviewed-by: Marc Treib <treib@chromium.org>
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#560514}
[modify] https://crrev.com/00dbee10ee92b27a7d7ea989fd0a4f635527a90d/components/search_provider_logos/logo_common.cc

Project Member

Comment 72 by bugdroid1@chromium.org, May 22 2018

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

commit ff3f45c5118d6d9123570bc4edc65f037ce5c5a6
Author: tzik <tzik@chromium.org>
Date: Tue May 22 08:53:26 2018

Remove unneeded std::move() in service_worker_version_unittest.cc

The results of std::move() there are unused, and C++17 mode of clang on
Windows starts warning for that.

This CL just removes them as they are just nop.

Bug: 752720
Change-Id: If3b82659b6a27a4231943fd0244f1d86a7672dac
Reviewed-on: https://chromium-review.googlesource.com/1068774
Reviewed-by: Matt Falkenhagen <falken@chromium.org>
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#560516}
[modify] https://crrev.com/ff3f45c5118d6d9123570bc4edc65f037ce5c5a6/content/browser/service_worker/service_worker_version_unittest.cc

Project Member

Comment 73 by bugdroid1@chromium.org, May 22 2018

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

commit f75b341d492b9870cdd4c32df89d8b4e240c089d
Author: tzik <tzik@chromium.org>
Date: Tue May 22 11:40:15 2018

Remove stray std::move()s in gzip_source_stream.cc

Some of std::move()s around replay_data_ in gzip_source_stream.cc are
warned for their ignored result by C++17 mode of clang.

Bug: 752720
Change-Id: I8e3f799ec523114e9c5b01ea57b028c2db997485
Reviewed-on: https://chromium-review.googlesource.com/1067559
Reviewed-by: Matt Menke <mmenke@chromium.org>
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#560536}
[modify] https://crrev.com/f75b341d492b9870cdd4c32df89d8b4e240c089d/net/filter/gzip_source_stream.cc

Project Member

Comment 74 by bugdroid1@chromium.org, May 22 2018

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

commit a6538e3e625da325aa892ec4f2d4e0888d3aec41
Author: tzik <tzik@chromium.org>
Date: Tue May 22 18:15:46 2018

Remove stray std::move()s from reporter_runner_win.cc

This CL replaces std::move()s whose result is not used, as clang starts
warning that on C++17 mode.

Bug: 752720
Change-Id: I843ba7d9356fdb14fe5cc0c258018fae201a32c6
Reviewed-on: https://chromium-review.googlesource.com/1068639
Reviewed-by: Joe Mason <joenotcharles@chromium.org>
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#560708}
[modify] https://crrev.com/a6538e3e625da325aa892ec4f2d4e0888d3aec41/chrome/browser/safe_browsing/chrome_cleaner/reporter_runner_win.cc

Comment 75 by tzik@chromium.org, May 25 2018

Blockedon: 702997
Project Member

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

The following revision refers to this bug:
  https://skia.googlesource.com/skia/+/bdb49569f4db3b5c0c69d024b774a3345b5713ef

commit bdb49569f4db3b5c0c69d024b774a3345b5713ef
Author: tzik <tzik@chromium.org>
Date: Tue May 29 11:35:35 2018

Drop unneeded .get() in GrCoverageCountingPathRenderer.cpp

MSVC's std::unique_ptr<>::get() is marked as NODISCARD, and the .get()
call here causes a warning.

Bug: chromium:752720
Change-Id: Iadc217247533b6148285f7a81c982527d98c86f9
Reviewed-on: https://skia-review.googlesource.com/130360
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>

[modify] https://crrev.com/bdb49569f4db3b5c0c69d024b774a3345b5713ef/src/gpu/ccpr/GrCoverageCountingPathRenderer.cpp

Project Member

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

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/99f974bfc5dd953eca10fbb3d083628e91ce1685

commit 99f974bfc5dd953eca10fbb3d083628e91ce1685
Author: skia-chromium-autoroll <skia-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Tue May 29 15:23:13 2018

Roll src/third_party/skia 8e200f3..1d1edc1 (2 commits)

https://skia.googlesource.com/skia.git/+log/8e200f3..1d1edc1


git log 8e200f3..1d1edc1 --date=short --no-merges --format='%ad %ae %s'
2018-05-29 jcgregorio@google.com Upgrade node to 8.11.2
2018-05-28 tzik@chromium.org Drop unneeded .get() in GrCoverageCountingPathRenderer.cpp

Created with:
  gclient setdep -r src/third_party/skia@1d1edc1

The AutoRoll server is located here: https://autoroll.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=master.tryserver.blink:linux_trusty_blink_rel;luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel

BUG=chromium:752720

TBR=rmistry@chromium.org

Change-Id: I52f71bc9d34dfd1351dab70215c242e8bc5bae9c
Reviewed-on: https://chromium-review.googlesource.com/1076367
Reviewed-by: skia-chromium-autoroll <skia-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: skia-chromium-autoroll <skia-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#562431}
[modify] https://crrev.com/99f974bfc5dd953eca10fbb3d083628e91ce1685/DEPS

The blocking bug suggests pnacl won't go away till ~2020. I don't want to wait that long :)  What would it take to update the pnacl toolchain?
Right now the (half-baked) plan is to fork the bits of chromium that nacl builds for its runtime into the nacl repo and then no longer update it. That way, we can do to the chromium bits what we want. Let me know if you (or anyone) have time to help with this, then I add you to the discussions.
On the face of it that seems like a reasonable plan to me.  I'll have to chat with Sami but I may be able to help out a bit.
Blocking: 855773
> Let me know if you (or anyone) have time to help with this, then I add you to the discussions.

I'm interested in this.  thakis@ could you update me on the current plan for nacl?

Comment 83 Deleted

Comment 84 Deleted

Blockedon: 856628

Comment 86 by tzik@chromium.org, Jun 27 2018

Blockedon: 855772
Project Member

Comment 87 by bugdroid1@chromium.org, Aug 15

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

commit cdb87f1a65b2dd5d22b2dfab80d606197ec2626f
Author: tzik <tzik@chromium.org>
Date: Wed Aug 15 15:19:07 2018

Add a missing #include from jsepicecandidate.cc to absl/memory/memory.h

jsepicecandidate.cc uses absl::make_unique without including
absl/memory/memory.h. This happens to work in C++14 due to a transitive
#include, but doesn't work in C++17.

Bug: chromium:752720
Change-Id: I995496f452b9eaa2e70b82cd3b7926b936d7dac0
Reviewed-on: https://webrtc-review.googlesource.com/94340
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24294}
[modify] https://crrev.com/cdb87f1a65b2dd5d22b2dfab80d606197ec2626f/pc/jsepicecandidate.cc

Project Member

Comment 88 by bugdroid1@chromium.org, Aug 15

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4746202fcadfc786143b685b789dd3c7bcd05892

commit 4746202fcadfc786143b685b789dd3c7bcd05892
Author: tzik <tzik@chromium.org>
Date: Wed Aug 15 18:00:37 2018

Add missing noexcept specifiers to move ctors and assigns

The declarations of move ctors and assigns of
DisjointRangeLockManager::LockRequest, ScopesLockManager::ScopeLock and
ResolveProxyMsgHelper::PendingRequest have `noexcept` specifier, but
their implementations don't. This is OK in C++14, but causes compile
errors in C++17.

This CL adds missing `noexcept` for them.

Bug: 752720
Change-Id: I849f613c63c990afd23c590a9567069b772146d1
Reviewed-on: https://chromium-review.googlesource.com/1175656
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#583319}
[modify] https://crrev.com/4746202fcadfc786143b685b789dd3c7bcd05892/content/browser/indexed_db/scopes/disjoint_range_lock_manager.cc
[modify] https://crrev.com/4746202fcadfc786143b685b789dd3c7bcd05892/content/browser/indexed_db/scopes/scopes_lock_manager.cc
[modify] https://crrev.com/4746202fcadfc786143b685b789dd3c7bcd05892/content/browser/resolve_proxy_msg_helper.cc

Project Member

Comment 89 by bugdroid1@chromium.org, Aug 16

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

commit fc9f94af07b9165de597a8a50428f19e933786d4
Author: webrtc-chromium-autoroll <webrtc-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Thu Aug 16 12:17:25 2018

Roll src/third_party/webrtc b336c2784f5e..4eb4b05556ff (33 commits)

https://webrtc.googlesource.com/src.git/+log/b336c2784f5e..4eb4b05556ff


git log b336c2784f5e..4eb4b05556ff --date=short --no-merges --format='%ad %ae %s'
2018-08-16 nisse@webrtc.org Delete unused method VideoReceiver::SetMinReceiverDelay
2018-08-16 tzik@chromium.org Remove a static initializer in default_temporal_layers.cc
2018-08-16 kthelgason@webrtc.org Activate initial framedrop when first BW estimate arrives
2018-08-16 kthelgason@webrtc.org Add RTCCertificate to framework headers.
2018-08-16 peah@webrtc.org Hooks up more AEC3 parameters to be read by the AEC3 configuration file
2018-08-16 asapersson@webrtc.org Remove unused members in rtp_rtcp tests and make some members const.
2018-08-16 mbonadei@webrtc.org Change the default behaviour rtc_builtin_ssl_root_certificates.
2018-08-16 oprypin@webrtc.org Revert "Remove linux_internal_compile_lite from CQ."
2018-08-16 buildbot@webrtc.org Roll chromium_revision 636e4e8cc4..7e9f692ee3 (583445:583557)
2018-08-16 buildbot@webrtc.org Roll chromium_revision 858c0de5ad..636e4e8cc4 (583305:583445)
2018-08-15 lliuu@webrtc.org Revert "Optimize execution time of RTPSender::UpdateDelayStatistics"
2018-08-15 tarekh@google.com Update multiplex encoder to support having augmenting data attached to the video
2018-08-15 buildbot@webrtc.org Roll chromium_revision 60eb76e65c..858c0de5ad (583181:583305)
2018-08-15 terelius@webrtc.org Optimize execution time of RTPSender::UpdateDelayStatistics
2018-08-15 tzik@chromium.org Add a missing #include from jsepicecandidate.cc to absl/memory/memory.h
2018-08-15 nisse@webrtc.org In (new) estimator of encoder cpu load, count max per input frame.
2018-08-15 saza@webrtc.org Add APM config flag for legacy moderate suppression level in AEC2
2018-08-15 srte@webrtc.org Makes treatment of received reports of packets lost signed.
2018-08-15 aleloi@webrtc.org Gain metrics for digital adaptive AGC.
2018-08-15 titovartem@webrtc.org Use NetworkSimulationInterface instead of SimulatedNetwork.
2018-08-15 sprang@webrtc.org Refactor vp8 temporal layers with inferred sync and search order
2018-08-15 nisse@webrtc.org Delete class voe::RtcEventLogProxy
2018-08-15 danilchap@webrtc.org Inline one-line RtpPacket getters
2018-08-15 asapersson@webrtc.org Clear encoded frame map on gap in timestamp.
2018-08-15 aleloi@webrtc.org Fine-grained limiter metrics.
2018-08-15 aleloi@webrtc.org Atomically increment GainControl instance counter.
2018-08-15 nisse@webrtc.org Delete unneeded forward declares of vcm::VideoReceiver.
2018-08-15 buildbot@webrtc.org Roll chromium_revision 5edb31a0cd..60eb76e65c (582911:583181)
2018-08-14 benwright@webrtc.org Adds the custom TLS certificate verifier pointer to the reconfigure option as
2018-08-14 ouj@fb.com Video bitrate allocator factory interface for custom video bitrate allocator
2018-08-14 buildbot@webrtc.org Roll chromium_revision 690394a8a7..5edb31a0cd (582511:582911)
2018-08-14 mbonadei@webrtc.org Revert "Add initial support for RtpEncodingParameters max_framerate."
2018-08-13 michael@kapsulate.com Add certificate generate/set functionality to bring iOS closer to JS API


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

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:None,chromium:None,chromium:None,chromium:752720,chromium:None,chromium:None,chromium:816819,chromium:None,chromium:None,chromium:None,chromium:None
TBR=webrtc-chromium-sheriffs-robots@google.com

Change-Id: Id37f277d7a7f512b4b141eca2821f14d0294fd4c
Reviewed-on: https://chromium-review.googlesource.com/1177581
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@{#583609}
[modify] https://crrev.com/fc9f94af07b9165de597a8a50428f19e933786d4/DEPS

Project Member

Comment 90 by bugdroid1@chromium.org, Aug 30

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

commit ddec5810ee47dfaa70c01fe931b22c985ef615ec
Author: tzik <tzik@chromium.org>
Date: Thu Aug 30 03:15:26 2018

Drop support of the specialized std::swap on immutable_unittest.cc

ImmutableTest.SpecializationToken uses a specialized std::swap to test
if Immutable successfully find this pattern of `swap` implementation.
However, it's not preferred way to implement `swap`, no one in Chromium
doesn't implement `swap` in this manner, and this depends on the
implementation details of std::swap.
E.g. its return type may be std::enable_if with a complex condition
instead of void, and its noexcept may contain a complex condition that
needs to match the specialization.

This CL removes the test for the std::swap specialization, and
updates the comment for it.

Bug: 752720
Change-Id: I30c3929b889bfb278e4f4ba94432faa6967df3a8
Reviewed-on: https://chromium-review.googlesource.com/1179485
Reviewed-by: Marc Treib <treib@chromium.org>
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#587432}
[modify] https://crrev.com/ddec5810ee47dfaa70c01fe931b22c985ef615ec/components/sync/base/immutable.h
[modify] https://crrev.com/ddec5810ee47dfaa70c01fe931b22c985ef615ec/components/sync/base/immutable_unittest.cc

Blockedon: 881453
Project Member

Comment 92 by bugdroid1@chromium.org, Sep 10

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

commit dae1b7479a7dbed41abdbe27b90cc4a54f4dd5c7
Author: tzik <tzik@chromium.org>
Date: Mon Sep 10 11:12:54 2018

Disallow DOMWrapperMap copy explicitly

v8::PersistentValueMapBase<> is an old style non-copyable type. It has
private declaration-only copy ctor and assignment. That is inherited
to v8::GlobalValueMap<>, and brought to DOMWrapperMap<>.

That implies, DOMWrapperMap is a non-copyable type, but detected as
copyable type by a defaulted copy constructor. That confuses
std::optional and causes a build error on C++17 mode of Chromium.

This mark DOMWrapperMap as non-copyable explicitly to fix the build
error.

Bug: 752720
Change-Id: Iff22df3cd108475ece9ba0c7cc4878a30d3bcb43
Reviewed-on: https://chromium-review.googlesource.com/1214908
Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589883}
[modify] https://crrev.com/dae1b7479a7dbed41abdbe27b90cc4a54f4dd5c7/third_party/blink/renderer/platform/bindings/dom_wrapper_map.h

Project Member

Comment 93 by bugdroid1@chromium.org, Oct 16

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

commit f0e926fbdd8fcf9ca46d073ff375bb7169b6aaec
Author: tzik <tzik@chromium.org>
Date: Tue Oct 16 04:13:49 2018

Add missing #include and deps to absl/memory

These files uses absl::WrapUnique or absl::make_unique without including
absl/memory/memory.h. They used to include it indirectly via some other
headers, but in C++17 mode, we need to include it explicitly.

Bug: chromium:752720
Change-Id: Ic9a85a4844a71f8b8786c071f18d5b9cc301c26b
Reviewed-on: https://webrtc-review.googlesource.com/c/105880
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Yves Gerey <yvesg@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#25192}
[modify] https://crrev.com/f0e926fbdd8fcf9ca46d073ff375bb7169b6aaec/api/BUILD.gn
[modify] https://crrev.com/f0e926fbdd8fcf9ca46d073ff375bb7169b6aaec/api/test/test_dependency_factory.cc
[modify] https://crrev.com/f0e926fbdd8fcf9ca46d073ff375bb7169b6aaec/p2p/base/relayport.h
[modify] https://crrev.com/f0e926fbdd8fcf9ca46d073ff375bb7169b6aaec/p2p/base/stunport.h
[modify] https://crrev.com/f0e926fbdd8fcf9ca46d073ff375bb7169b6aaec/p2p/base/tcpport.h
[modify] https://crrev.com/f0e926fbdd8fcf9ca46d073ff375bb7169b6aaec/p2p/base/turnport.h

Project Member

Comment 94 by bugdroid1@chromium.org, Oct 16

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6823ef31dad35092537505af58c2e78fcc1282fc

commit 6823ef31dad35092537505af58c2e78fcc1282fc
Author: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Date: Tue Oct 16 09:46:29 2018

Roll src/third_party/webrtc c9e6b969a452..f0e926fbdd8f (4 commits)

https://webrtc.googlesource.com/src.git/+log/c9e6b969a452..f0e926fbdd8f


git log c9e6b969a452..f0e926fbdd8f --date=short --no-merges --format='%ad %ae %s'
2018-10-16 tzik@chromium.org Add missing #include and deps to absl/memory
2018-10-16 chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com Roll chromium_revision 0e821c2fa2..0cecb6ce10 (599702:599821)
2018-10-15 srte@webrtc.org Reland "Deprecates legacy transport feedback adapter."
2018-10-15 chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com Roll chromium_revision 0df2607f98..0e821c2fa2 (599562:599702)


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

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

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

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

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

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

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

Cc: -roc...@chromium.org rockot@google.com
Project Member

Comment 96 by bugdroid1@chromium.org, Oct 18

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

commit d0be002ececb4f821a3485e0cb768de8601d72b7
Author: tzik <tzik@chromium.org>
Date: Thu Oct 18 08:55:54 2018

Add missing #include to absl/memory/memory.h

This is needed for absl::make_unique. absl/memory/memory.h is included
through absl/types/optional.h on C++14 mode, but is not on C++17 mode.

Bug: chromium:752720
Change-Id: I28c0dfc9c37910bcb8f0c0bbe40cdd47f2105e50
Reviewed-on: https://webrtc-review.googlesource.com/c/106760
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25247}
[modify] https://crrev.com/d0be002ececb4f821a3485e0cb768de8601d72b7/rtc_base/sslfingerprint.cc

Project Member

Comment 97 by bugdroid1@chromium.org, Oct 18

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/83a9525bd0a6a0d732539f76ffb4972574dadea7

commit 83a9525bd0a6a0d732539f76ffb4972574dadea7
Author: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Date: Thu Oct 18 17:15:02 2018

Roll src/third_party/webrtc 09beff2cfd84..78416b6e1851 (19 commits)

https://webrtc.googlesource.com/src.git/+log/09beff2cfd84..78416b6e1851


git log 09beff2cfd84..78416b6e1851 --date=short --no-merges --format='%ad %ae %s'
2018-10-18 srte@webrtc.org Adds time to initial config in analyzer code.
2018-10-18 ilnik@webrtc.org Correctly slice MediaBitrateRecieved on content type in ReceiveStatisticsProxy
2018-10-18 srte@webrtc.org Adds field trial to AudioPriorityBitrateAllocationStrategy.
2018-10-18 peah@webrtc.org AEC3: Introduce partial adaptive filter resets at echo path changes
2018-10-18 peah@webrtc.org AEC3: Remove ERLE uncertainty code that has no effect
2018-10-18 kwiberg@webrtc.org Relieve perkj@ of some OWNER duties
2018-10-18 mbonadei@webrtc.org Remove expat from generate_licenses.py.
2018-10-18 tzik@chromium.org Add missing #include to absl/memory/memory.h
2018-10-18 mbonadei@webrtc.org Export symbols needed by the Chromium component build (part 4).
2018-10-18 kwiberg@webrtc.org rtc::ZeroOnFreeBuffer: Don't forget to zero memory we free in operator=
2018-10-18 titovartem@webrtc.org Fix: Argv may be corrupted after InitGoogleMock found any related flags
2018-10-18 chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com Roll chromium_revision c926d3bb2f..fc405b495a (600547:600654)
2018-10-17 chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com Roll chromium_revision 8bef2e268b..c926d3bb2f (600433:600547)
2018-10-17 shampson@webrtc.org Adds support for "-" to a=ssrc msid lines.
2018-10-17 sukhanov@webrtc.org Reland "Reland "Propagate media transport to media channel.""
2018-10-17 chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com Roll chromium_revision c5242283d9..8bef2e268b (600305:600433)
2018-10-17 benwright@webrtc.org Adds new CryptoOption crypto_options.frame.require_frame_encryption.
2018-10-17 terelius@webrtc.org Track padding and header size in log event.
2018-10-17 srte@webrtc.org Adds AudioNetworkAdaptation support to Scenario tests.


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

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

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

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

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

BUG=chromium:none,chromium:895838,chromium:none,chromium:896154,chromium:752720,chromium:None,chromium:None,chromium:None
TBR=webrtc-chromium-sheriffs-robots@google.com

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

Project Member

Comment 98 by bugdroid1@chromium.org, Nov 6

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/254d3db59ad963f347ebc3123fbb564d2d894af1

commit 254d3db59ad963f347ebc3123fbb564d2d894af1
Author: tzik <tzik@chromium.org>
Date: Tue Nov 06 10:57:47 2018

Add missing #include to absl/memory/memory.h from audio_encoder_cng.cc

absl::make_unique is used in this file without absl/memory/memory.h
#include, that causes a build error on C++17 build of Chromium.

Bug: chromium:752720
Change-Id: I78fe9f76a6ea670a4250b4cf25c3c02cf4c4beb6
Reviewed-on: https://webrtc-review.googlesource.com/c/109540
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25514}
[modify] https://crrev.com/254d3db59ad963f347ebc3123fbb564d2d894af1/modules/audio_coding/BUILD.gn
[modify] https://crrev.com/254d3db59ad963f347ebc3123fbb564d2d894af1/modules/audio_coding/codecs/cng/audio_encoder_cng.cc

Project Member

Comment 99 by bugdroid1@chromium.org, Nov 6

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

commit e22b4b7de868ded70c41d8fb78a93097d587e740
Author: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Date: Tue Nov 06 14:14:47 2018

Roll src/third_party/webrtc 63ada787b5bc..254d3db59ad9 (3 commits)

https://webrtc.googlesource.com/src.git/+log/63ada787b5bc..254d3db59ad9


git log 63ada787b5bc..254d3db59ad9 --date=short --no-merges --format='%ad %ae %s'
2018-11-06 tzik@chromium.org Add missing #include to absl/memory/memory.h from audio_encoder_cng.cc
2018-11-06 kron@webrtc.org Add HdrMetadata to VideoFrame
2018-11-06 eladalon@webrtc.org Remove unused member variable - RTCPSender::using_nack_


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

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

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

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

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

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

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

Project Member

Comment 100 by bugdroid1@chromium.org, Nov 15

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

commit a06bf8506fdfc0aff1098831bfc49bff4436399d
Author: tzik <tzik@chromium.org>
Date: Thu Nov 15 12:15:40 2018

Add a presubmit check for absl/memory/memory.h inclusion

This adds a presubmit check that warns missing memory.h inclusion
when a source file use absl::make_unique. That header tends to be
included transitively on pre-C++17 mode, but doesn't on C++17 mode.

Bug: chromium:752720
Change-Id: I235287f4f7407d48bfad35da86da47bc602f03ce
Reviewed-on: https://webrtc-review.googlesource.com/c/111040
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25655}
[modify] https://crrev.com/a06bf8506fdfc0aff1098831bfc49bff4436399d/PRESUBMIT.py

Project Member

Comment 101 by bugdroid1@chromium.org, Nov 15

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

commit e409d21b7a1ed490c90681d64db8e34cf1126017
Author: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Date: Thu Nov 15 15:36:37 2018

Roll src/third_party/webrtc 95140715009f..a06bf8506fdf (1 commits)

https://webrtc.googlesource.com/src.git/+log/95140715009f..a06bf8506fdf


git log 95140715009f..a06bf8506fdf --date=short --no-merges --format='%ad %ae %s'
2018-11-15 tzik@chromium.org Add a presubmit check for absl/memory/memory.h inclusion


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

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

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

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

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

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

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

Cc: -lhchavez@chromium.org
Project Member

Comment 103 by bugdroid1@chromium.org, Jan 8

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/2bcbeeb87d3bf8d9ca989e1206c30aabfdd53d4d

commit 2bcbeeb87d3bf8d9ca989e1206c30aabfdd53d4d
Author: tzik <tzik@chromium.org>
Date: Tue Jan 08 04:36:18 2019

Use V8_NOEXCEPT consistently between decls and impls

noexcept keyword needs to be consistent between the declaration and
implementation in C++17.

Bug: v8:8616, chromium:752720
Change-Id: Iff4022c8c4b861ebdbe8e08995af1bc4da866dae
Reviewed-on: https://chromium-review.googlesource.com/c/1396459
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58609}
[modify] https://crrev.com/2bcbeeb87d3bf8d9ca989e1206c30aabfdd53d4d/src/heap/heap.cc
[modify] https://crrev.com/2bcbeeb87d3bf8d9ca989e1206c30aabfdd53d4d/src/heap/spaces.cc

Project Member

Comment 104 by bugdroid1@chromium.org, Jan 9

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/d65de040189be8d21be0c7dc7b833f59027df096

commit d65de040189be8d21be0c7dc7b833f59027df096
Author: tzik <tzik@chromium.org>
Date: Wed Jan 09 12:39:46 2019

Use V8_NOEXCEPT consistently between decls and impls

This is a leftover of the previous CL.
https://chromium-review.googlesource.com/c/v8/v8/+/1402305.

noexcept keyword needs to be consistent between the declaration and
implementation in C++17.

Bug: v8:8616, chromium:752720
Change-Id: I8a21426e550d666bd84c1a6e7bc36d1eec495333
Reviewed-on: https://chromium-review.googlesource.com/c/1402305
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58665}
[modify] https://crrev.com/d65de040189be8d21be0c7dc7b833f59027df096/src/heap/spaces.cc

Blockedon: 920467
Project Member

Comment 106 by bugdroid1@chromium.org, Jan 14

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

commit b49e373c0b37240294bb692c9d5b31f358818d22
Author: jdoerrie <jdoerrie@chromium.org>
Date: Mon Jan 14 12:51:25 2019

[base] Templatize StringPiece's comparison operators

In order to be more compliant with C++17's std::basic_string_view,
this change modifies base::BasicStringPiece's comparison operators
to be templates, take their arguments by value, and be constexpr
and noexcept. Appropriate overloads are introduced to further support
implicit conversions to StringPieces, e.g. comparing a raw string
literal with a StringPiece continues to work. A side effect of this
change is supporting the comparison of WStringPieces on platforms where
wchar_t is not 16 bits.

Bug: 752720
Change-Id: Ia2a80cf1d9eddb7064601d3e832303f97aed9a9e
Reviewed-on: https://chromium-review.googlesource.com/c/1403654
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Reviewed-by: kylechar <kylechar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622432}
[modify] https://crrev.com/b49e373c0b37240294bb692c9d5b31f358818d22/base/strings/string_piece.cc
[modify] https://crrev.com/b49e373c0b37240294bb692c9d5b31f358818d22/base/strings/string_piece.h
[modify] https://crrev.com/b49e373c0b37240294bb692c9d5b31f358818d22/base/strings/string_piece_unittest.cc

Showing comments 7 - 106 of 106 Older

Sign in to add a comment