New issue
Advanced search Search tips

Issue 746953 link

Starred by 6 users

Issue metadata

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


Sign in to add a comment

Use jumbo compile in content

Project Member Reported by brat...@opera.com, Jul 20 2017

Issue description

After blink and chrome, content is the next slowest piece of code to compile (around 100 CPU minutes or 10% of the compilation time). Jumbo gets that down to 20 or lower (I might have missed things) but there are a couple of issue to handle:

1. IPC headers are without include guards and depend on users very carefully only including them once. Jumbo is not that careful.

My suggestion is to give them include guards and undef them when needed (i.e. in content_message_generator.h: https://codereview.chromium.org/2867693004/patch/260001/270089 ).
Since IPC is a deprecated system I don't see the need to make a cute solution here.

2. X11 headers use macros with common words such as None, Success, CurrentTime, Status and others. With jumbo these macros will get a wider spread.

My suggestion is to replace X11 header includes with an include of ui/base/x/x11_util_internal.h which undefs all dangerous macros and put constants in a wrapper X11Constants. As shown here:
https://codereview.chromium.org/2867693004/patch/260001/270217

Apart from those two it's mostly just symbol names that sometimes collide.
 

Comment 1 by brat...@opera.com, Jul 20 2017

I'm not in a hurry here since we should first gather some data from jumbo in blink, but if we proceed, a lot of jumbo is blocked on ipc headers not having include guards so it will become the first thing on the list regardless of whether you try to jumbify components, content, chrome or many other parts of the code.

Comment 2 by brat...@opera.com, Jul 20 2017

Blocking: 746956

Comment 3 by tsepez@chromium.org, Jul 20 2017

Re IPC: So ... are you concatenating headers or just .cpp files? In the later case, I'd expect things can be made to work by undefing stuff at strategic points in the .cpp file.

One complication is due to the, uh, clever way we generate IPC numbers, we're requiring __line__ to fit in a uint16_t.

Comment 4 by sadrul@chromium.org, Jul 20 2017

Who is jumbo?

Comment 5 by brat...@opera.com, Jul 21 2017

@sadrul: Jumbo is the chromium implementation of a unity build system, where many translation units (say "cc files") are compiled together. This drastically cuts down on compilation time, especially in cases where headers are complex (templates) and many. https://chromium.googlesource.com/chromium/src/+/master/docs/jumbo.md has some information, mailing lists and the linked Google Doc more.

@tsepez: The cc files are compiled together, though the current implementation is a master file which #include them so no code is actually moved and no __line__ should change. The problem appear when two .cc files include the same ipc message header. Without include guards that file is processed twice and you get duplicate declarations. I will see if I can make a PoC of the idea I have before my vacation. No promises.


Comment 6 by brat...@opera.com, Jul 21 2017

@tsepez: IPC headers like https://chromium-review.googlesource.com/c/580868/

I generated it with a script and it's not cleaned up (incorrect comments remain for instance) but it seems to work, and it's jumbo compatible.
Project Member

Comment 7 by bugdroid1@chromium.org, Sep 1 2017

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

commit bcbca5321782e576080f33ea4dbd0562e55194d0
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Sep 01 10:00:53 2017

Add include guards to ipc message headers

The solution without include guards isn't compatible with jumbo.

Bug: 746953
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Iaaea9654fa2c38c40ab458678693518abe555d34
Reviewed-on: https://chromium-review.googlesource.com/580868
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#499162}
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/components/tracing/common/OWNERS
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/components/tracing/common/tracing_messages.cc
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/components/tracing/common/tracing_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/accessibility_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/all_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/android/sync_compositor_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/appcache_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/browser_plugin/browser_plugin_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/cache_storage/cache_storage_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/child_process_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/clipboard_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/content_message_generator.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/database_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/devtools_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/dom_storage/dom_storage_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/drag_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/dwrite_font_proxy_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/file_utilities_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/fileapi/file_system_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/fileapi/webblob_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/frame_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/gin_java_bridge_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/input_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/media/aec_dump_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/media/audio_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/media/media_player_delegate_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/media/media_player_messages_android.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/media/media_stream_track_metrics_host_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/media/midi_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/media/peer_connection_tracker_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/media/surface_view_manager_messages_android.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/p2p_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/page_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/platform_notification_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/quota_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/render_process_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/resource_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/service_worker/embedded_worker_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/service_worker/service_worker_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/speech_recognition_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/text_input_client_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/view_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/common/worker_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/content/renderer/input/input_event_filter.cc
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/gpu/ipc/common/gpu_message_generator.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/gpu/ipc/common/gpu_messages.h
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/ppapi/proxy/OWNERS
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/ppapi/proxy/ppapi_messages.cc
[modify] https://crrev.com/bcbca5321782e576080f33ea4dbd0562e55194d0/ppapi/proxy/ppapi_messages.h

Project Member

Comment 8 by bugdroid1@chromium.org, Oct 2 2017

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

commit b7b9d272beaf43154bb4541c06200afec5d090fe
Author: Mostyn Bramley-Moore <mostynb@vewd.com>
Date: Mon Oct 02 15:59:11 2017

[jumbo]: avoid kPaymentApp* symbol clashes

payment_instrument_icon_fetcher.cc contains the same constant symbols.

Bug: 746953
Change-Id: Iba3fb9a059519994485ea6762154b3fae4e8744c
Reviewed-on: https://chromium-review.googlesource.com/694382
Reviewed-by: Rouslan Solomakhin <rouslan@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@vewd.com>
Cr-Commit-Position: refs/heads/master@{#505627}
[modify] https://crrev.com/b7b9d272beaf43154bb4541c06200afec5d090fe/content/browser/payments/payment_app_info_fetcher.cc

Project Member

Comment 9 by bugdroid1@chromium.org, Oct 2 2017

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

commit 264db5dfbbe6901f70ff7c211e4f6777a2fdffa8
Author: Mostyn Bramley-Moore <mostynb@vewd.com>
Date: Mon Oct 02 19:26:43 2017

[jumbo] remove using statements from content_browser_pepper_host_factory.cc

This is a prerequisite for jumbo builds.

Bug: 746953
Change-Id: I037ddc086d5d82d92e69c1087778fc49d3539cb5
Reviewed-on: https://chromium-review.googlesource.com/694481
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@vewd.com>
Cr-Commit-Position: refs/heads/master@{#505715}
[modify] https://crrev.com/264db5dfbbe6901f70ff7c211e4f6777a2fdffa8/content/browser/renderer_host/pepper/content_browser_pepper_host_factory.cc

Project Member

Comment 11 by bugdroid1@chromium.org, Oct 2 2017

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

commit c61bf647f03d5683cd5959295b8f72159a51b803
Author: Mostyn Bramley-Moore <mostynb@vewd.com>
Date: Mon Oct 02 21:10:29 2017

[jumbo] rename FontMessageFilter to avoid symbol clash

There is another FontMessageFilter in pepper_browser_font_singleton_host.cc

Bug: 746953
Change-Id: I2ee0188ac38637b94f9e9aa792dccd42be7d8e9a
Reviewed-on: https://chromium-review.googlesource.com/696101
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@vewd.com>
Cr-Commit-Position: refs/heads/master@{#505783}
[modify] https://crrev.com/c61bf647f03d5683cd5959295b8f72159a51b803/content/browser/renderer_host/pepper/pepper_truetype_font_list_host.cc

Project Member

Comment 12 by bugdroid1@chromium.org, Oct 2 2017

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

commit 9bbb6775bfb9acd68d46a3084a4f5b8f4536845c
Author: Mostyn Bramley-Moore <mostynb@vewd.com>
Date: Mon Oct 02 21:50:26 2017

[jumbo] avoid g_num_instances clash in pepper_*_socket_message_filter.cc

Bug: 746953
Change-Id: Id2bf0dbb4c4c67a5905586c3cee28290dfc00da2
Reviewed-on: https://chromium-review.googlesource.com/696082
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@vewd.com>
Cr-Commit-Position: refs/heads/master@{#505801}
[modify] https://crrev.com/9bbb6775bfb9acd68d46a3084a4f5b8f4536845c/content/browser/renderer_host/pepper/pepper_tcp_socket_message_filter.cc
[modify] https://crrev.com/9bbb6775bfb9acd68d46a3084a4f5b8f4536845c/content/browser/renderer_host/pepper/pepper_udp_socket_message_filter.cc

Project Member

Comment 13 by bugdroid1@chromium.org, Oct 8 2017

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

commit 8894ad409000536b75addef8dc17908107408c6b
Author: Mostyn Bramley-Moore <mostynb@vewd.com>
Date: Sun Oct 08 00:21:36 2017

remove unneeded Xlib.h include in gpu_internals_ui.cc

This is prep work for jumbo builds: X headers leak macros that conflict
with other types in jumbo builds.  By removing unneeded headers we hope
to minimise the cleanup/workarounds required for jumbo conflicts.

Bug: 746953
Change-Id: I8e5018eb2da03918647de802ef5e34978b6ade87
Reviewed-on: https://chromium-review.googlesource.com/704114
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@vewd.com>
Cr-Commit-Position: refs/heads/master@{#507301}
[modify] https://crrev.com/8894ad409000536b75addef8dc17908107408c6b/content/browser/gpu/gpu_internals_ui.cc

Comment 14 by brat...@opera.com, Oct 12 2017

Blockedon: 774117
Project Member

Comment 15 by bugdroid1@chromium.org, Oct 12 2017

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

commit 026dbae00747fe8d21f8b28cb3c0b17e29fa781d
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Oct 12 20:18:55 2017

Give g_controllers more distinct names in content tracing

The two different g_controllers clashed when I tried a
jumbo build in content/browser. This renames them with more
distinct names.

Bug: 746953
Change-Id: I06daeb3e2f129c093dadbe88a1bd972bfcf436b3
Reviewed-on: https://chromium-review.googlesource.com/716677
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#508437}
[modify] https://crrev.com/026dbae00747fe8d21f8b28cb3c0b17e29fa781d/content/browser/tracing/background_tracing_manager_impl.cc
[modify] https://crrev.com/026dbae00747fe8d21f8b28cb3c0b17e29fa781d/content/browser/tracing/tracing_controller_impl.cc

Project Member

Comment 16 by bugdroid1@chromium.org, Oct 13 2017

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

commit 1e811339f8555afe9caf6e89ec4f3f2d741e6374
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Oct 13 07:33:28 2017

Add include guards to content headers missing include guards

Headers without include guards can not be included more than once
and in jumbo builds there might easily be more than one include
of the same header.

Bug: 746953
Change-Id: I8c19cc0764b5c91dd1aa276ad1f17719b0a70bca
Reviewed-on: https://chromium-review.googlesource.com/716476
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#508637}
[modify] https://crrev.com/1e811339f8555afe9caf6e89ec4f3f2d741e6374/content/browser/accessibility/dump_accessibility_browsertest_base.h
[modify] https://crrev.com/1e811339f8555afe9caf6e89ec4f3f2d741e6374/content/browser/android/launcher_thread.h
[modify] https://crrev.com/1e811339f8555afe9caf6e89ec4f3f2d741e6374/content/browser/keyboard_lock/keyboard_lock_service_impl.h
[modify] https://crrev.com/1e811339f8555afe9caf6e89ec4f3f2d741e6374/content/browser/media/session/mock_media_session_observer.h
[modify] https://crrev.com/1e811339f8555afe9caf6e89ec4f3f2d741e6374/content/browser/media/session/mock_media_session_player_observer.h
[modify] https://crrev.com/1e811339f8555afe9caf6e89ec4f3f2d741e6374/content/browser/web_contents/web_drag_dest_mac.h
[modify] https://crrev.com/1e811339f8555afe9caf6e89ec4f3f2d741e6374/content/browser/web_contents/web_drag_source_mac.h
[modify] https://crrev.com/1e811339f8555afe9caf6e89ec4f3f2d741e6374/content/common/android/hash_set.h
[modify] https://crrev.com/1e811339f8555afe9caf6e89ec4f3f2d741e6374/content/public/test/web_contents_binding_set_test_binder.h
[modify] https://crrev.com/1e811339f8555afe9caf6e89ec4f3f2d741e6374/content/test/mock_leveldb_database.h

Project Member

Comment 17 by bugdroid1@chromium.org, Oct 13 2017

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

commit 89560a0d48528bd2cc0d997c28bb8b9bf1bd687d
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Oct 13 10:20:54 2017

Giving some g_factory objects more distinct names

In jumbo builds cc files are compiled together and then multiple
objects all named g_factory causes compilation errors. An easy
fix is to use more distinct names since that is good for other
reasons as well.

Bug: 746953
Change-Id: Ie6c221225721e230e8b973ab30c4907bc3713836
Reviewed-on: https://chromium-review.googlesource.com/716496
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508663}
[modify] https://crrev.com/89560a0d48528bd2cc0d997c28bb8b9bf1bd687d/content/browser/compositor/image_transport_factory.cc
[modify] https://crrev.com/89560a0d48528bd2cc0d997c28bb8b9bf1bd687d/content/browser/loader/navigation_url_loader.cc
[modify] https://crrev.com/89560a0d48528bd2cc0d997c28bb8b9bf1bd687d/content/browser/media/android/browser_media_player_manager.cc

Project Member

Comment 18 by bugdroid1@chromium.org, Oct 13 2017

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

commit 06ad55d5b54100383af9d96677d4243f39266a2a
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Oct 13 17:37:29 2017

Remove unused member LevelDBDatabase::lru_max_size_

Jumbo builds (builds where many cc files have been merged and
are compiled together) notices some more unused code than normal
builds and protested (warned) that LevelDBDatabase::lru_max_size_
was unused.

Simple fix: remove it.

Bug: 746953
Change-Id: Iaf58d87c4b962f671350984deaff0825b35e3ad8
Reviewed-on: https://chromium-review.googlesource.com/718857
Commit-Queue: Joshua Bell <jsbell@chromium.org>
Reviewed-by: Joshua Bell <jsbell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508743}
[modify] https://crrev.com/06ad55d5b54100383af9d96677d4243f39266a2a/content/browser/indexed_db/leveldb/leveldb_database.h

Project Member

Comment 19 by bugdroid1@chromium.org, Oct 13 2017

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

commit c2c3cdfcc68121becde093a244a5cdf89a552faf
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Oct 13 17:54:15 2017

Giving some g_factories objects more distinct names

In jumbo builds cc files are compiled together and then multiple
objects all named g_factory causes compilation errors. An easy
fix is to use more distinct names since that is good for other
reasons as well.

Bug: 746953
Change-Id: If91d9ec90f64c18083f60e0647ddebe86dbf42e9
Reviewed-on: https://chromium-review.googlesource.com/719006
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508752}
[modify] https://crrev.com/c2c3cdfcc68121becde093a244a5cdf89a552faf/content/browser/webui/web_ui_controller_factory_registry.cc
[modify] https://crrev.com/c2c3cdfcc68121becde093a244a5cdf89a552faf/content/browser/webui/web_ui_url_loader_factory.cc

Project Member

Comment 20 by bugdroid1@chromium.org, Oct 14 2017

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

commit c406d6e5780bccc964fadb96e0b30ff79a2d2c76
Author: Daniel Bratell <bratell@opera.com>
Date: Sat Oct 14 10:08:55 2017

Organize all ClearSessionOnlyOrigins functions the same

There are 4 different ClearSessionsOnlyOrigins functions in
content/browser and 2 of them collided in jumbo build experiments.

This makes all 4 members of their logical class:
AppCacheStorageImpl::ClearSessionsOnlyOrigins
DOMStorageContextImpl::ClearSessionOnlyOrigins
IndexedDBContextImpl::ClearSessionOnlyOrigins
ServiceWorkerStorage::ClearSessionOnlyOrigins

Two of them (AppCache and IndexedDB) had to move for that to be
accomplished.

Bug: 746953
Change-Id: I9c8931b909fc78292e892dcff07d213abde2d8d1
Reviewed-on: https://chromium-review.googlesource.com/718753
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#508935}
[modify] https://crrev.com/c406d6e5780bccc964fadb96e0b30ff79a2d2c76/content/browser/appcache/appcache_storage_impl.cc
[modify] https://crrev.com/c406d6e5780bccc964fadb96e0b30ff79a2d2c76/content/browser/appcache/appcache_storage_impl.h
[modify] https://crrev.com/c406d6e5780bccc964fadb96e0b30ff79a2d2c76/content/browser/indexed_db/indexed_db_context_impl.cc
[modify] https://crrev.com/c406d6e5780bccc964fadb96e0b30ff79a2d2c76/content/browser/indexed_db/indexed_db_context_impl.h

Project Member

Comment 21 by bugdroid1@chromium.org, Oct 16 2017

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

commit 16691bca6546cbcab5c2bbcffe40a7000e62d975
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Oct 16 14:28:31 2017

Rename CreateFileForProcess to be more unique.

There are two CreateFileForProcess functions (similar, both for webrtc
but not identical). This causes issues in jumbo builds since you
cannot easily take the address of an overloaded function.  The fix
here is to rename one of them to CreateEventLogFileForChildProcess
which is also more descriptive.

Bug: 746953
Change-Id: I8457adc2194fc24e191ed43e3fb78536c0bb87a3
Reviewed-on: https://chromium-review.googlesource.com/721022
Reviewed-by: Tommi <tommi@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#509040}
[modify] https://crrev.com/16691bca6546cbcab5c2bbcffe40a7000e62d975/content/browser/webrtc/webrtc_eventlog_host.cc

Project Member

Comment 22 by bugdroid1@chromium.org, Oct 17 2017

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

commit 1efe4d421bb7c2ac64833405fab1b273f4ab3b4e
Author: Daniel Bratell <bratell@opera.com>
Date: Tue Oct 17 08:15:48 2017

Give the different KDataFile variables unique prefixes

In the jumbo build experiment (chromium unity builds) there is a
collision between the two different kDataFile strings. This patch
renames them kNetworkErrorDataFile and kTargetsDataFile which also
matches their intended values.

Bug: 746953
Change-Id: Ib9f47fa4d358303c7cdbb65b54b40080521a915d
Reviewed-on: https://chromium-review.googlesource.com/721299
Reviewed-by: Bence Béky <bnc@chromium.org>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#509320}
[modify] https://crrev.com/1efe4d421bb7c2ac64833405fab1b273f4ab3b4e/content/browser/accessibility/accessibility_ui.cc
[modify] https://crrev.com/1efe4d421bb7c2ac64833405fab1b273f4ab3b4e/content/browser/net/network_errors_listing_ui.cc

Project Member

Comment 23 by bugdroid1@chromium.org, Oct 17 2017

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

commit ff18039bccd77df04cfa6d972a2689c83a2bfeb2
Author: Daniel Bratell <bratell@opera.com>
Date: Tue Oct 17 08:15:55 2017

Give all different kFilteredMessages unique prefixes

There are 5 different kFilteredMessages arrays in content/browser
and some of them collide in jumbo (chromium unity builds)
build experiments.

This patch renames them to:
kCacheFilteredMessageClasses
kFileApiFilteredMessageClasses
kPepperFilteredMessageClasses
kRenderFilteredMessageClasses
kServiceWorkerFilteredMessageClasses

Bug: 746953
Change-Id: I3fc1b6f6ea3d0e5ccbb2ff47d4d476e02f5c2344
Reviewed-on: https://chromium-review.googlesource.com/721279
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Reviewed-by: Michael Nordman <michaeln@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#509321}
[modify] https://crrev.com/ff18039bccd77df04cfa6d972a2689c83a2bfeb2/content/browser/cache_storage/cache_storage_dispatcher_host.cc
[modify] https://crrev.com/ff18039bccd77df04cfa6d972a2689c83a2bfeb2/content/browser/fileapi/fileapi_message_filter.cc
[modify] https://crrev.com/ff18039bccd77df04cfa6d972a2689c83a2bfeb2/content/browser/renderer_host/pepper/pepper_renderer_connection.cc
[modify] https://crrev.com/ff18039bccd77df04cfa6d972a2689c83a2bfeb2/content/browser/renderer_host/render_message_filter.cc
[modify] https://crrev.com/ff18039bccd77df04cfa6d972a2689c83a2bfeb2/content/browser/service_worker/service_worker_dispatcher_host.cc

Project Member

Comment 24 by bugdroid1@chromium.org, Oct 17 2017

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

commit deec29ca2951dd50c862d37ba56b470a62e60682
Author: Daniel Bratell <bratell@opera.com>
Date: Tue Oct 17 10:02:53 2017

Renamed some global cache size constants

There were several different k*Cache*Size variables controlling
different caches but with the same name. These collided in jumbo
builds but also made it harder to discuss them and their values
so renaming them seems like a good improvement.

Bug: 746953
Change-Id: I1e8dc4f687c7b1e3ca8a9f9a5e80409029f8c4b0
Reviewed-on: https://chromium-review.googlesource.com/721205
Reviewed-by: Michael Nordman <michaeln@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#509341}
[modify] https://crrev.com/deec29ca2951dd50c862d37ba56b470a62e60682/content/browser/appcache/appcache_storage_impl.cc
[modify] https://crrev.com/deec29ca2951dd50c862d37ba56b470a62e60682/content/browser/dom_storage/dom_storage_context_impl.cc
[modify] https://crrev.com/deec29ca2951dd50c862d37ba56b470a62e60682/content/browser/dom_storage/local_storage_context_mojo.cc
[modify] https://crrev.com/deec29ca2951dd50c862d37ba56b470a62e60682/content/browser/service_worker/service_worker_storage.cc

Project Member

Comment 25 by bugdroid1@chromium.org, Oct 17 2017

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

commit bfcfe22b37541627d5dbd26abf368317d015be5f
Author: Daniel Bratell <bratell@opera.com>
Date: Tue Oct 17 17:57:00 2017

Make different g_observers and g_instances have unique names

This is preporatory patch to make content/browser able to do
jumbo compiles, i.e. compilation with many cc files merged into
one translation unit. For that to compile, names need to be a bit
more unique than they are today.

Bug: 746953
Change-Id: Ie7cb7445d3662d47372bde78df705aec7b130ed5
Reviewed-on: https://chromium-review.googlesource.com/721021
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#509429}
[modify] https://crrev.com/bfcfe22b37541627d5dbd26abf368317d015be5f/content/browser/browser_child_process_host_impl.cc
[modify] https://crrev.com/bfcfe22b37541627d5dbd26abf368317d015be5f/content/browser/devtools/devtools_agent_host_impl.cc
[modify] https://crrev.com/bfcfe22b37541627d5dbd26abf368317d015be5f/content/browser/devtools/render_frame_devtools_agent_host.cc

Project Member

Comment 26 by bugdroid1@chromium.org, Oct 19 2017

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

commit f77777a51abc9ca0d374b71bd0d2e89160da969a
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Oct 19 09:12:06 2017

Refactored some buffer classes to avoid name collisions

There were three different DependentIOBuffer classes, three similar
kBufferSize constants, two similar InitializeResourceBufferConstants
functions and two identical GetNumericArg functions.

Besides being potentially confusing, it causes clashes in jumbo
build experiments (chromium unity build system in development).

This patch moves around GetNumericArg (to merge the two copies) and
InitializeResourceBufferConstants (to make them not clash).
It renames the DependentIOBuffer classes which are deceptively
similar as well as the kBufferSize contstants and some other
variables that were not actually constants.

Bug: 746953
Change-Id: Id7cfa4baac0aa67a7b086896701aeab931e23a96
Reviewed-on: https://chromium-review.googlesource.com/723302
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Reviewed-by: Charlie Harrison <csharrison@chromium.org>
Reviewed-by: Michael Nordman <michaeln@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#510042}
[modify] https://crrev.com/f77777a51abc9ca0d374b71bd0d2e89160da969a/content/browser/appcache/appcache_update_job.cc
[modify] https://crrev.com/f77777a51abc9ca0d374b71bd0d2e89160da969a/content/browser/devtools/protocol/tethering_handler.cc
[modify] https://crrev.com/f77777a51abc9ca0d374b71bd0d2e89160da969a/content/browser/loader/async_resource_handler.cc
[modify] https://crrev.com/f77777a51abc9ca0d374b71bd0d2e89160da969a/content/browser/loader/async_resource_handler.h
[modify] https://crrev.com/f77777a51abc9ca0d374b71bd0d2e89160da969a/content/browser/loader/mime_sniffing_resource_handler.cc
[modify] https://crrev.com/f77777a51abc9ca0d374b71bd0d2e89160da969a/content/browser/loader/mojo_async_resource_handler.cc
[modify] https://crrev.com/f77777a51abc9ca0d374b71bd0d2e89160da969a/content/browser/loader/mojo_async_resource_handler.h
[modify] https://crrev.com/f77777a51abc9ca0d374b71bd0d2e89160da969a/content/browser/loader/redirect_to_file_resource_handler.cc
[modify] https://crrev.com/f77777a51abc9ca0d374b71bd0d2e89160da969a/content/browser/loader/resource_handler.cc
[modify] https://crrev.com/f77777a51abc9ca0d374b71bd0d2e89160da969a/content/browser/loader/resource_handler.h

Project Member

Comment 27 by bugdroid1@chromium.org, Oct 19 2017

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

commit 44a616a0b77cf7fd72238f165bf1940589573d4d
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Oct 19 20:53:58 2017

Giving a couple of HandleRequestCallback functions unique names

The different HandleRequestCallback functions clashed in jumbo
builds so this patch renames them.

Jumbo builds are builds where cc files are merged for dramatically
higher build performance.

Bug: 746953
Change-Id: Ie854181f45d8b7d8684ed1da4c96b8ac1b644646
Reviewed-on: https://chromium-review.googlesource.com/725700
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: Bence Béky <bnc@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#510203}
[modify] https://crrev.com/44a616a0b77cf7fd72238f165bf1940589573d4d/content/browser/accessibility/accessibility_ui.cc
[modify] https://crrev.com/44a616a0b77cf7fd72238f165bf1940589573d4d/content/browser/net/network_errors_listing_ui.cc

Project Member

Comment 28 by bugdroid1@chromium.org, Oct 20 2017

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

commit 5e309c349a306c9660a9805abf29ea445baa92e9
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Oct 20 09:37:55 2017

Renames two RecordCancelled functions to have unique names

In jumbo builds where source files are merged before compiled for
dramatically faster builds, functions that are intended to be local
will have a wider visibility and can clash.

This patch renames two similar, but not quite identical
RecordCancelled functions so that there will be no compilation
problems.

Bug: 746953
Change-Id: Ib31e3db19070f6cbbe0b7c383fcc5372ec02b90b
Reviewed-on: https://chromium-review.googlesource.com/727987
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#510390}
[modify] https://crrev.com/5e309c349a306c9660a9805abf29ea445baa92e9/content/browser/web_contents/aura/gesture_nav_simple.cc
[modify] https://crrev.com/5e309c349a306c9660a9805abf29ea445baa92e9/content/browser/web_contents/aura/overscroll_navigation_overlay.cc

Project Member

Comment 29 by bugdroid1@chromium.org, Oct 21 2017

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

commit 023a4dc823efaabef80fafd7e39b2551af45fd25
Author: Daniel Bratell <bratell@opera.com>
Date: Sat Oct 21 00:32:23 2017

Deduplicate the ShouldDuckFlash function

Two files had identical ShouldDuckFlash functions which clashed
in jumbo builds (chromium unity build implementation where
source files are merged).

This patch moves the function to media_switches so it can be used by
all code.

Bug: 746953
Change-Id: I0665384f82e8bb3f0dfd6a536d1535b57c9bfe78
Reviewed-on: https://chromium-review.googlesource.com/723468
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Mounir Lamouri <mlamouri@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#510624}
[modify] https://crrev.com/023a4dc823efaabef80fafd7e39b2551af45fd25/content/browser/media/session/pepper_playback_observer.cc
[modify] https://crrev.com/023a4dc823efaabef80fafd7e39b2551af45fd25/content/browser/media/session/pepper_player_delegate.cc
[modify] https://crrev.com/023a4dc823efaabef80fafd7e39b2551af45fd25/media/base/media_switches.cc
[modify] https://crrev.com/023a4dc823efaabef80fafd7e39b2551af45fd25/media/base/media_switches.h

Project Member

Comment 30 by bugdroid1@chromium.org, Oct 24 2017

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

commit 194fbee63bb5bd8f9b2d756b95448d03194585f4
Author: Daniel Bratell <bratell@opera.com>
Date: Tue Oct 24 15:25:10 2017

Add include guards to message headers in chrome and extensions

The solution without include guards isn't compatible with jumbo
builds and this is in general easier for code to manage. Now
nobody needs to be careful about where they include a message header

This is a followup to a similar patch in content (
https://chromium-review.googlesource.com/580868 )

Bug: 746953
Change-Id: I3ce252d02b9fc916cc8a2ad039214b1da08676bb
Reviewed-on: https://chromium-review.googlesource.com/735480
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#511154}
[modify] https://crrev.com/194fbee63bb5bd8f9b2d756b95448d03194585f4/chrome/common/cast_messages.h
[modify] https://crrev.com/194fbee63bb5bd8f9b2d756b95448d03194585f4/chrome/common/chrome_utility_printing_messages.h
[modify] https://crrev.com/194fbee63bb5bd8f9b2d756b95448d03194585f4/chrome/common/common_message_generator.h
[modify] https://crrev.com/194fbee63bb5bd8f9b2d756b95448d03194585f4/chrome/common/extensions/chrome_extension_messages.h
[modify] https://crrev.com/194fbee63bb5bd8f9b2d756b95448d03194585f4/chrome/common/mac/OWNERS
[modify] https://crrev.com/194fbee63bb5bd8f9b2d756b95448d03194585f4/chrome/common/mac/app_shim_messages.h
[modify] https://crrev.com/194fbee63bb5bd8f9b2d756b95448d03194585f4/chrome/common/media/webrtc_logging_messages.h
[modify] https://crrev.com/194fbee63bb5bd8f9b2d756b95448d03194585f4/chrome/common/prerender_messages.h
[modify] https://crrev.com/194fbee63bb5bd8f9b2d756b95448d03194585f4/chrome/common/render_messages.h
[modify] https://crrev.com/194fbee63bb5bd8f9b2d756b95448d03194585f4/chrome/common/safe_browsing/ipc_protobuf_message_test_messages.h
[modify] https://crrev.com/194fbee63bb5bd8f9b2d756b95448d03194585f4/chrome/common/safe_browsing/ipc_protobuf_message_unittest.cc
[modify] https://crrev.com/194fbee63bb5bd8f9b2d756b95448d03194585f4/chrome/common/tts_messages.h
[modify] https://crrev.com/194fbee63bb5bd8f9b2d756b95448d03194585f4/components/guest_view/common/guest_view_messages.h
[modify] https://crrev.com/194fbee63bb5bd8f9b2d756b95448d03194585f4/extensions/common/extension_message_generator.h
[modify] https://crrev.com/194fbee63bb5bd8f9b2d756b95448d03194585f4/extensions/common/extension_messages.h
[modify] https://crrev.com/194fbee63bb5bd8f9b2d756b95448d03194585f4/extensions/common/guest_view/extensions_guest_view_messages.h

Project Member

Comment 31 by bugdroid1@chromium.org, Oct 24 2017

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

commit 364b9f391c28b0e2734b0b77338b606158710861
Author: Daniel Bratell <bratell@opera.com>
Date: Tue Oct 24 16:53:21 2017

Deduplicate GetEventAckName.

We had two GetEventAckName that both converted an
InputEventAckState to a string. This patch merges them and
moves them to input_event_ack_state.cc.

The two GetEventAckNames clashed in jumbo build experiments.

Bug: 746953
Change-Id: Ie07e8d500a0e3cfcc8a705300adc597760ea5751
Reviewed-on: https://chromium-review.googlesource.com/735155
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#511178}
[modify] https://crrev.com/364b9f391c28b0e2734b0b77338b606158710861/content/browser/renderer_host/input/input_router_impl.cc
[modify] https://crrev.com/364b9f391c28b0e2734b0b77338b606158710861/content/browser/renderer_host/input/legacy_input_router_impl.cc
[modify] https://crrev.com/364b9f391c28b0e2734b0b77338b606158710861/content/common/BUILD.gn
[add] https://crrev.com/364b9f391c28b0e2734b0b77338b606158710861/content/common/input/input_event_ack_state.cc
[modify] https://crrev.com/364b9f391c28b0e2734b0b77338b606158710861/content/public/common/input_event_ack_state.h

Project Member

Comment 32 by bugdroid1@chromium.org, Oct 24 2017

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

commit ddcf8b3e4f0d9cb703ca4116619df38ec28aa4f3
Author: Daniel Bratell <bratell@opera.com>
Date: Tue Oct 24 19:19:55 2017

Rename some socket buffer size constants with the same name

In jumbo builds, where cc files are merged before being compiled,
symbols that should be isolated can still clash and cause
compilation errors.

This patch renames
kReadBufferSize -> {kTcpReadBufferSize, kUdpReadBufferSize)
kRecvSocketBufferSize -> { kUdpRecvSocketBufferSize,
                           kTcpRecvSocketBufferSize}
kSendSocketBufferSize -> kTcpSendSocketBufferSize

Bug: 746953
Change-Id: I9fb6d06fa25e8a8ab02f922b247f1b76808daa94
Reviewed-on: https://chromium-review.googlesource.com/723305
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#511230}
[modify] https://crrev.com/ddcf8b3e4f0d9cb703ca4116619df38ec28aa4f3/content/browser/renderer_host/p2p/socket_host_tcp.cc
[modify] https://crrev.com/ddcf8b3e4f0d9cb703ca4116619df38ec28aa4f3/content/browser/renderer_host/p2p/socket_host_udp.cc

Comment 33 by brat...@opera.com, Oct 25 2017

Cc: brat...@opera.com
 Issue 709270  has been merged into this issue.
Project Member

Comment 34 by bugdroid1@chromium.org, Oct 25 2017

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

commit 839226052b486f1ad604f69b0d3d9b2aa0c7746d
Author: Daniel Bratell <bratell@opera.com>
Date: Wed Oct 25 16:08:29 2017

Give some storage size constants more unique name.

To avoid clashes in jumbo builds, let local_storage and
dom_storage use differently named constants for max area count
and max cache size.

Bug: 746953
Change-Id: I0acf3d02a938d670f67546830e3f17681b55bb0e
Reviewed-on: https://chromium-review.googlesource.com/735545
Reviewed-by: Michael Nordman <michaeln@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#511478}
[modify] https://crrev.com/839226052b486f1ad604f69b0d3d9b2aa0c7746d/content/browser/dom_storage/dom_storage_context_impl.cc
[modify] https://crrev.com/839226052b486f1ad604f69b0d3d9b2aa0c7746d/content/browser/dom_storage/local_storage_context_mojo.cc

Project Member

Comment 35 by bugdroid1@chromium.org, Oct 25 2017

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

commit 1f78712106b4bfc0a857b0620fcbff9e40a38a45
Author: Daniel Bratell <bratell@opera.com>
Date: Wed Oct 25 20:37:27 2017

Give two GetUniqueIdInConstructor() unique names

For jumbo builds where cc files are merged, function names need
to be a bit more unique for the code to compile. This patch chooses
two names: CreateUniqueEntryID() and CreateUniqueHandleID().

Bug: 746953
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_site_isolation
Change-Id: I7058575bece926071d2b086c959ee08cd8023b68
Reviewed-on: https://chromium-review.googlesource.com/738369
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#511574}
[modify] https://crrev.com/1f78712106b4bfc0a857b0620fcbff9e40a38a45/content/browser/frame_host/navigation_entry_impl.cc
[modify] https://crrev.com/1f78712106b4bfc0a857b0620fcbff9e40a38a45/content/browser/frame_host/navigation_handle_impl.cc

Project Member

Comment 36 by bugdroid1@chromium.org, Oct 25 2017

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

commit 68ee7ffea27c1ecee6293f1cbd903d24dfc4e7ef
Author: Daniel Bratell <bratell@opera.com>
Date: Wed Oct 25 22:06:56 2017

Deduplicate two constants kBlobStorageContextKeyName

We declared the key to lookup the chrome blob storage at
two places. This caused problems in jumbo builds where
cc files are merged and the symbols clashed.

Bug: 746953
Change-Id: Icc11b256026536983841b084f6d2a74358594a47
Reviewed-on: https://chromium-review.googlesource.com/738133
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Daniel Murphy <dmurph@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#511608}
[modify] https://crrev.com/68ee7ffea27c1ecee6293f1cbd903d24dfc4e7ef/content/browser/blob_storage/chrome_blob_storage_context.cc
[modify] https://crrev.com/68ee7ffea27c1ecee6293f1cbd903d24dfc4e7ef/content/browser/blob_storage/chrome_blob_storage_context.h
[modify] https://crrev.com/68ee7ffea27c1ecee6293f1cbd903d24dfc4e7ef/content/browser/resource_context_impl.cc

Project Member

Comment 37 by bugdroid1@chromium.org, Oct 26 2017

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

commit 0382aeb7db2513f910c9fac1599bae77d04b6889
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Oct 26 10:25:52 2017

Rename two constants with the same name kVerboseLevel

In jumbo builds where cc files are merged before being
compiled, the two different kVerboseLevel clashed.

This patch renames when kJobVerboseLevel and
kWorkerVerboseLevel.

Bug: 746953
Change-Id: Id9cf152e3b5d9aeaa41990fb3fa6908c60baf43a
Reviewed-on: https://chromium-review.googlesource.com/738135
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Min Qin <qinmin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#511783}
[modify] https://crrev.com/0382aeb7db2513f910c9fac1599bae77d04b6889/content/browser/download/download_worker.cc
[modify] https://crrev.com/0382aeb7db2513f910c9fac1599bae77d04b6889/content/browser/download/parallel_download_job.cc

Project Member

Comment 38 by bugdroid1@chromium.org, Oct 27 2017

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

commit ddcb22564788c32a4ef2e7eb4c5deda442960d8d
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Oct 27 08:31:36 2017

Deduplicate UMALogDeviceAuthorizationTime

There were two implementations of UMALogDeviceAuthorizationTime and
in jumbo builds those clashed. This makes it one implementation and
moves it to AudioOutputAuthorizationHandler since it also
has Authorization in the name.

Bug: 746953
Change-Id: I63159187bd81b355ad6c94398a44e2ce188464bb
Reviewed-on: https://chromium-review.googlesource.com/739901
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#512126}
[modify] https://crrev.com/ddcb22564788c32a4ef2e7eb4c5deda442960d8d/content/browser/renderer_host/media/audio_output_authorization_handler.cc
[modify] https://crrev.com/ddcb22564788c32a4ef2e7eb4c5deda442960d8d/content/browser/renderer_host/media/audio_output_authorization_handler.h
[modify] https://crrev.com/ddcb22564788c32a4ef2e7eb4c5deda442960d8d/content/browser/renderer_host/media/audio_renderer_host.cc
[modify] https://crrev.com/ddcb22564788c32a4ef2e7eb4c5deda442960d8d/content/browser/renderer_host/media/render_frame_audio_output_stream_factory.cc

Project Member

Comment 39 by bugdroid1@chromium.org, Oct 27 2017

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

commit 44e023ce5274db1a73e09c27b2c27adf0a56857d
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Oct 27 12:11:37 2017

Fix for reference counted variable being passed the wrong way

Passing pointers to reference counted variables as raw pointers in
bind is disallowed so this wraps it in base::Unretained like the
other types.

This was discovered while making the code able to be jumbo
compiled because in jumbo builds the type URLRequestContextGetter
was no longer a undefined forward declared type. As long as it
was a pointer to something "unknown" bind.h was fine with it.

Bug: 746953
Change-Id: I72a0d2c2957b885f967c246b1575f6609ae8c9c3
Reviewed-on: https://chromium-review.googlesource.com/739861
Reviewed-by: Charlie Harrison <csharrison@chromium.org>
Reviewed-by: Camille Lamy <clamy@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#512155}
[modify] https://crrev.com/44e023ce5274db1a73e09c27b2c27adf0a56857d/content/browser/loader/navigation_url_loader_impl.cc

Project Member

Comment 40 by bugdroid1@chromium.org, Oct 27 2017

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

commit b904e99561e159a2f801b311fb33f980d2a7caa2
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Oct 27 14:16:28 2017

Removed IsOriginSecure clone and removed "using namespace"

Importing namespaces with "using namespace" can have surprising
results (which is why the coding standard disallows them).

This patch's main motivation is to remove a "using namespace content"
which made indexed_db code unable to distinguish between ::indexed_db 
and ::content::indexed_db in jumbo builds, but in the process it
was realized that the local IsOriginSecure was only partly used
and also seemed to be close enough to content::IsOriginSecure that
one of them should suffice.

There were two IsOriginSecure(). One in {anon ns}::IsOriginSecure() and
one in content::IsOriginSecure(). In mixed_content_navigation_throttle.cc
there are two calls to unqualified "IsOriginSecure()". One was 
supposed to resolve to {anon ns}::IsOriginSecure() and
the other one to content::IsOriginSecure().

After this patch both calls will go to content::IsOriginSecure().

Bug: 629059, 746953
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_site_isolation
Change-Id: Id572c05707545e6303f63f2c4a18acf7fda2a4c4
Reviewed-on: https://chromium-review.googlesource.com/738175
Reviewed-by: Camille Lamy <clamy@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#512174}
[modify] https://crrev.com/b904e99561e159a2f801b311fb33f980d2a7caa2/content/browser/frame_host/mixed_content_navigation_throttle.cc

Comment 41 by brat...@opera.com, Oct 27 2017

Status: Started (was: Untriaged)
Project Member

Comment 42 by bugdroid1@chromium.org, Oct 30 2017

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

commit 2246b6b76a00d2b1d92d72fae418c1a42b5b715b
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Oct 30 18:48:46 2017

Rename an empty function to be more unique.

There were two empty functions named "IgnoreError" and this
caused clashes in jumbo build experiments. This patch renames
one of them "EmptyErrorHandler" which is also a good name.

There is no natural place to share the functions, and being empty
there is not that much value in sharing them either.

Bug: 746953
Change-Id: I7c7507cf485710159e64b3945eeea558e2e4f901
Reviewed-on: https://chromium-review.googlesource.com/743786
Reviewed-by: Dan Elphick <delphick@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#512555}
[modify] https://crrev.com/2246b6b76a00d2b1d92d72fae418c1a42b5b715b/content/browser/background_fetch/background_fetch_data_manager.cc

Project Member

Comment 43 by bugdroid1@chromium.org, Oct 31 2017

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

commit 3ccc88cbf338cd492e06c8d698530837f9e6d103
Author: Daniel Bratell <bratell@opera.com>
Date: Tue Oct 31 16:17:01 2017

Adding include guards for print_messages.h

We have had IPC headers where it was up to the user
to carefully only include them once. Jumbo builds where
cc files are compiled together are not that careful so they
need include guards.

This is a followup to equivalent work done in chrome and content.

Bug: 746953
Change-Id: I3dc4067e2c4e23ee41be0def78a34bf4f7cd4b96
Reviewed-on: https://chromium-review.googlesource.com/741597
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#512844}
[modify] https://crrev.com/3ccc88cbf338cd492e06c8d698530837f9e6d103/components/printing/common/print_messages.cc
[modify] https://crrev.com/3ccc88cbf338cd492e06c8d698530837f9e6d103/components/printing/common/print_messages.h

Project Member

Comment 44 by bugdroid1@chromium.org, Nov 3 2017

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

commit ad3315517933cec408a89208afce45ed855d5e7f
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Nov 03 10:00:48 2017

Avoid clashing two IsUsingMus() functions in jumbo builds

In some jumbo configurations the two IsUsingMus would end up
in the same compilation unit and cause compilation errors.
The function is small enough (barely) to have in two copies so
this patch moves them to a tighter namespace.

Bug: 746953
Change-Id: I08b67606fd6dc68ee5ae9a8c91c79386051f8976
Reviewed-on: https://chromium-review.googlesource.com/749386
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#513732}
[modify] https://crrev.com/ad3315517933cec408a89208afce45ed855d5e7f/content/browser/browser_main_loop.cc
[modify] https://crrev.com/ad3315517933cec408a89208afce45ed855d5e7f/content/browser/browser_main_loop.h
[modify] https://crrev.com/ad3315517933cec408a89208afce45ed855d5e7f/content/browser/renderer_host/render_widget_host_view_child_frame.cc
[modify] https://crrev.com/ad3315517933cec408a89208afce45ed855d5e7f/content/browser/renderer_host/render_widget_host_view_child_frame.h

Project Member

Comment 45 by bugdroid1@chromium.org, Nov 3 2017

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

commit a309b574099ec832c98a16686ac365173631fc60
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Nov 03 15:24:06 2017

Use PostMessageW instead of PostMessage to avoid undefs

There are code that does #undef PostMessage to avoid
the win32 defines and if such code/headers get included in
render_widget_host_view_event_handler.cc, then there won't be
a PostMessage to call.

The easiest solution is to call PostMessageW instead (the Unicode
version of the API) since that is the function we want to call
anyway.

Bug: 746953
Change-Id: I6bb61404e2685846b4298223fe588d51fa0704d5
Reviewed-on: https://chromium-review.googlesource.com/753582
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#513785}
[modify] https://crrev.com/a309b574099ec832c98a16686ac365173631fc60/content/browser/renderer_host/render_widget_host_view_event_handler.cc

Project Member

Comment 46 by bugdroid1@chromium.org, Nov 3 2017

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

commit be4ede2d1fd52d3b86fb98cfb39de6cd2a1d1933
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Nov 03 16:57:17 2017

Avoid importing base::Time into global scope

X11 headers add a Time typedef to global scope and in jumbo builds
(where files are merges so more code and headers become visible), that
Time typedef and the "using base::Time" clashed.

This patch imports the constant the code wanted directly, which is less
code (fewer characters) as well.

Bug: 746953
Change-Id: I130cd78080eda80ffaf75ef22afab5b9a68d4e59
Reviewed-on: https://chromium-review.googlesource.com/753447
Reviewed-by: Max Morin <maxmorin@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#513804}
[modify] https://crrev.com/be4ede2d1fd52d3b86fb98cfb39de6cd2a1d1933/content/browser/speech/endpointer/endpointer.cc

Project Member

Comment 47 by bugdroid1@chromium.org, Nov 6 2017

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

commit 9786ad0eecfab59367ad2c774a730870ab95b61a
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Nov 06 20:14:05 2017

Rename one of two different ClampToValidDimension

There are two ClampToValidDimension in content/render and in
jumbo builds where files are merged those functions clashed.

This patch renames one of them ClampToValidScreenCastDimension
which is a more unique, and descriptive, name.

Bug: 746953
Change-Id: Ib331422044e87b683dde1fb20cffd0395e79a6ea
Reviewed-on: https://chromium-review.googlesource.com/753369
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#514225}
[modify] https://crrev.com/9786ad0eecfab59367ad2c774a730870ab95b61a/content/renderer/media/media_stream_constraints_util_video_content.cc

Project Member

Comment 48 by bugdroid1@chromium.org, Nov 6 2017

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

commit 363e5ea977dba44f8c06e99b653471db4f83025f
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Nov 06 21:12:00 2017

Deduplicate InputEventDispositionToAck

There were two identical InputEventDispositionToAck in
input_handler_manager.cc and widget_input_handler_manager.cc and
in jumbo builds those clashed. This exports the function from
input_handler_manager.cc/.h so that it can be used in
widget_input_handler_manager.cc

Bug: 746953
Change-Id: I8c032a4f283b0eeb601b75e3d15efddbff360578
Reviewed-on: https://chromium-review.googlesource.com/753325
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#514239}
[modify] https://crrev.com/363e5ea977dba44f8c06e99b653471db4f83025f/content/renderer/input/input_handler_manager.cc
[modify] https://crrev.com/363e5ea977dba44f8c06e99b653471db4f83025f/content/renderer/input/input_handler_manager.h
[modify] https://crrev.com/363e5ea977dba44f8c06e99b653471db4f83025f/content/renderer/input/widget_input_handler_manager.cc

Comment 49 by brat...@opera.com, Nov 7 2017

Blockedon: 782184
Project Member

Comment 50 by bugdroid1@chromium.org, Nov 7 2017

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

commit 5589dede2f58b26066c2ad0051285ee9e8dbb7cc
Author: Mostyn Bramley-Moore <mostynb@vewd.com>
Date: Tue Nov 07 11:08:00 2017

[jumbo] inline RunSoon in service_worker_dispatcher_host.cc

service_worker_context_wrapper.cc also has a RunSoon function in the
anonymous namespace, which could conflict with this function in jumbo
builds (depending on the jumbo_file_merge_limit value).

Also dropped the non-null check, since the only callsite passes a
non-null closure.  And migrate from Bind to BindOnce.

Bug: 746953,714018
Change-Id: I514bcaeb1ce89ccfc0cfff8765a5998b50a7b261
Reviewed-on: https://chromium-review.googlesource.com/755715
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Matt Falkenhagen <falken@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@vewd.com>
Cr-Commit-Position: refs/heads/master@{#514443}
[modify] https://crrev.com/5589dede2f58b26066c2ad0051285ee9e8dbb7cc/content/browser/service_worker/service_worker_dispatcher_host.cc

Project Member

Comment 51 by bugdroid1@chromium.org, Nov 8 2017

Project Member

Comment 53 by bugdroid1@chromium.org, Nov 9 2017

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

commit cf0b485c5a055880eaec2f9c75363d00c2426f19
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Nov 09 22:42:50 2017

Rename two kTrafficAnnotation variables that clash in jumbo builds

In jumbo builds several cc files are merged into one
translation unit and then a variable that is intended to be local
can collide. That happened with kTrafficAnnotation.

This patch renames them
kTrafficAnnotation ->
  kAppCacheTrafficAnnotation
  kNavigationUrlLoaderTrafficAnnotation

Bug: 746953
Change-Id: Ia46c25b80956ed04aa081348167883264c57b894
Reviewed-on: https://chromium-review.googlesource.com/758782
Reviewed-by: Joshua Bell <jsbell@chromium.org>
Reviewed-by: Charlie Harrison <csharrison@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#515327}
[modify] https://crrev.com/cf0b485c5a055880eaec2f9c75363d00c2426f19/content/browser/appcache/appcache_update_request_base.cc
[modify] https://crrev.com/cf0b485c5a055880eaec2f9c75363d00c2426f19/content/browser/appcache/appcache_update_request_base.h
[modify] https://crrev.com/cf0b485c5a055880eaec2f9c75363d00c2426f19/content/browser/loader/navigation_url_loader_network_service.cc

Project Member

Comment 54 by bugdroid1@chromium.org, Nov 10 2017

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

commit 8ff492f3cc22fae666cc114b971c10036e2dcadc
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Nov 10 09:11:27 2017

Avoid clash between two NSAccessibilitySelectedTextMarkerRangeAttribute

There are two
NSString* const NSAccessibilitySelectedTextMarkerRangeAttribute =
    @"AXSelectedTextMarkerRange";
and in jumbo builds they will end up in the same translation unit
and trigger compilation errors.

This patch moves one of them to where its used which will prevent
the clash and let the compilation proceed.

Bug: 746953
Change-Id: Iaf440412f7780141f8d22f648dfef59358ef610c
Reviewed-on: https://chromium-review.googlesource.com/758845
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#515515}
[modify] https://crrev.com/8ff492f3cc22fae666cc114b971c10036e2dcadc/content/browser/accessibility/browser_accessibility_manager_mac.mm

Comment 55 by brat...@opera.com, Nov 10 2017

Blockedon: 783666
Project Member

Comment 56 by bugdroid1@chromium.org, Nov 10 2017

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

commit 13fa52bd63436b35ed17240aed914befcba7be73
Author: Mostyn Bramley-Moore <mostynb@vewd.com>
Date: Fri Nov 10 14:34:43 2017

[jumbo] replace GetWebContents with WebContentsImpl::FromRenderFrameHostID

Bug: 746953
Change-Id: I71549281aab655028381aeca9225182e7d7a76ea
Reviewed-on: https://chromium-review.googlesource.com/758844
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@vewd.com>
Cr-Commit-Position: refs/heads/master@{#515550}
[modify] https://crrev.com/13fa52bd63436b35ed17240aed914befcba7be73/content/browser/service_worker/service_worker_provider_host.cc
[modify] https://crrev.com/13fa52bd63436b35ed17240aed914befcba7be73/content/browser/service_worker/service_worker_registration_handle.cc

Components: Build
Project Member

Comment 58 by bugdroid1@chromium.org, Nov 10 2017

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

commit 9d330c265c5cfed3d3e4de0938ce969bb664d3c4
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Nov 10 18:19:19 2017

Made some constant names more unique for jumbo

In jumbo builds cc files are compiled together as one translation
unit to local constants need to not have the same names as other
local constants or there will be a compilation error.

This patch renames
kCurrentSchemaVersion ->
  kCurrentLocalStorageSchemaVersion
  kCurrentServiceWorkerSchemaVersion

kKeySeparator ->
  kNotificationKeySeparator
  kServiceWorkerKeySeparator

Bug: 746953
Change-Id: I1cc52eebe8979ea83746f4aad00c7dd063791b94
Reviewed-on: https://chromium-review.googlesource.com/758869
Reviewed-by: Camille Lamy <clamy@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#515604}
[modify] https://crrev.com/9d330c265c5cfed3d3e4de0938ce969bb664d3c4/content/browser/dom_storage/local_storage_context_mojo.cc
[modify] https://crrev.com/9d330c265c5cfed3d3e4de0938ce969bb664d3c4/content/browser/notifications/notification_database.cc
[modify] https://crrev.com/9d330c265c5cfed3d3e4de0938ce969bb664d3c4/content/browser/service_worker/service_worker_database.cc

Project Member

Comment 59 by bugdroid1@chromium.org, Nov 10 2017

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

commit a6ca1a9d49cb55e202df90118a43f9ee28063db3
Author: Mostyn Bramley-Moore <mostynb@vewd.com>
Date: Fri Nov 10 23:14:11 2017

[jumbo] inline more simple RunSoon calls in service worker

Avoid jumbo build symbol collisions due to this version of RunSoon
being defined in multiple source files.  We may as well just inline
these one-line function calls (and change from Bind to BindOnce
while we're at it).

Note that service_worker_storage.cc and service_worker_version.cc
both still have versions of RunSoon, but with different prototypes
so this is not a problem.

Bug: 746953,714018
Change-Id: I7c80e909b94b154d58d7f808078a367454bd9584
Reviewed-on: https://chromium-review.googlesource.com/760357
Commit-Queue: Mostyn Bramley-Moore <mostynb@vewd.com>
Reviewed-by: Matt Falkenhagen <falken@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#515732}
[modify] https://crrev.com/a6ca1a9d49cb55e202df90118a43f9ee28063db3/content/browser/service_worker/service_worker_context_wrapper.cc
[modify] https://crrev.com/a6ca1a9d49cb55e202df90118a43f9ee28063db3/content/browser/service_worker/service_worker_register_job.cc

Hi, jumbo build team,

I'm recently looking at patches to remove functions from anonymous namespace due to conflict of the symbols if we use the jumbo build.
I'm wondering if we should update the style guide regarding to that, or before patching to all of anonymous codes, should we think of adding some pre-processing like changing anonymous namespace to named namespace?

// Sorry if my question is what has already been discussed. I'm not quite familiar with the context, and I'm really happy if the build time would be faster:)

Project Member

Comment 61 by bugdroid1@chromium.org, Nov 13 2017

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

commit d80630e0dd04c3b1df49ba7afff1512b6e497852
Author: Mostyn Bramley-Moore <mostynb@vewd.com>
Date: Mon Nov 13 09:03:34 2017

[jumbo] avoid ForwardRequest symbol clash

content/browser/renderer_host/render_process_host_impl.cc also has a
ForwardRequest function in the anonymous namespace, which can collide
with the function in content/browser/renderer_interface_binders.cc

TBR=jam@chromium.org

Bug: 779444,746953
Change-Id: Iaa2c9f22ff0945b4a35fef689f2b60896d048fea
Reviewed-on: https://chromium-review.googlesource.com/765489
Commit-Queue: Mostyn Bramley-Moore <mostynb@vewd.com>
Reviewed-by: Sam McNally <sammc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#515901}
[modify] https://crrev.com/d80630e0dd04c3b1df49ba7afff1512b6e497852/content/browser/renderer_interface_binders.cc

Project Member

Comment 62 by bugdroid1@chromium.org, Nov 13 2017

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

commit fe8d90c5a007b5a7de7f6f8be78dabd4af28c2c2
Author: Matt Falkenhagen <falken@chromium.org>
Date: Mon Nov 13 11:05:45 2017

service worker: Add a namespace in service_worker_database.cc for Jumbo

This is a follow up to https://chromium-review.googlesource.com/c/chromium/src/+/758869,
which added "ServiceWorker" to some of the constants. That approach seems misleading
since it looks like "ServiceWorkerKey" is a type of key on the same level as a "RegKey"
or "ResKey". Really we want to add "ServiceWorker" to all the constants, which we
can accomplish by making a namespace.

Bug: 746953
Change-Id: I61dffdaecffbeb088906f67907fdc47f0f81a5e1
Reviewed-on: https://chromium-review.googlesource.com/765556
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Commit-Queue: Matt Falkenhagen <falken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#515920}
[modify] https://crrev.com/fe8d90c5a007b5a7de7f6f8be78dabd4af28c2c2/content/browser/service_worker/service_worker_database.cc

Comment 63 by brat...@opera.com, Nov 13 2017

@shimazu: I don't want jumbo to change how people write code and in most cases code in anonymous namespaces is perfectly fine, with one exception: tests.

Tests are often very repetitive and contain similar code in many files so they do collide with each other. There we have had great success with custom namespaces named from the file. Since tests don't (usually) export any symbols, it's 2 lines per file to solve a lot of problems.

I've been thinking about suggesting that as a general code change: Tests in their own non-anonymous namespace.

That is my current opinion, but I am not sure what is the smoothest way forward. We are almost finished with cleaning up content/browser and then might be a good time to do some analysis on how to proceed.

Comment 64 by brat...@opera.com, Nov 13 2017

Blockedon: 784443
Project Member

Comment 65 by bugdroid1@chromium.org, Nov 13 2017

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

commit f4d88d5866f89ef111233a3887f76a2de88b1b7a
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Nov 13 17:27:18 2017

Rename the different LevelDBStatusToStatus functions to help jumbo

In jumbo builds (use_jumbo_build=true) the two different
LevelDBStatusToStatus could end up in the same translation unit which
would then cause compilation errors since they only differed by return
value.

This CL gives them unique names, ToServiceWorkerStatus() and
ToNotificationDatabaseStatus().

Bug: 746953
Change-Id: Iceaf6facc3142990d62769f693eb57bfc5c5f143
Reviewed-on: https://chromium-review.googlesource.com/760358
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Peter Beverloo <peter@chromium.org>
Reviewed-by: Matt Falkenhagen <falken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#515974}
[modify] https://crrev.com/f4d88d5866f89ef111233a3887f76a2de88b1b7a/content/browser/notifications/notification_database.cc
[modify] https://crrev.com/f4d88d5866f89ef111233a3887f76a2de88b1b7a/content/browser/service_worker/service_worker_database.cc

Project Member

Comment 66 by bugdroid1@chromium.org, Nov 14 2017

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

commit 5de17f6e626523d646d85e41f4e3fec1f5942775
Author: Daniel Bratell <bratell@opera.com>
Date: Tue Nov 14 22:09:02 2017

Add jumbo support to //content/browser (-66 CPU minutes)

Enables support for jumbo in //content/browser so that if you build
with use_umbo_build=true, content/browser will jumbo compile. Jumbo is
Chromium's unity build implementation and is already supported in Blink
and v8.

Building content/browser with jumbo is 66 CPU minutes faster than
without jumbo. How that maps to wall time depends on the hardware. On
a 4 core/8 thread machine that is about 8-9 minutes.

It took 50 cleanup patches to get here, and there is 1 remaining issue
(see patch) that we will try to solve after this has landed.

Bug: 746953
Change-Id: I14f9d340abdba387e6520f8c255ebe7395565439
Reviewed-on: https://chromium-review.googlesource.com/768745
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#516450}
[modify] https://crrev.com/5de17f6e626523d646d85e41f4e3fec1f5942775/content/browser/BUILD.gn

Congrats for enabling the jumbo for //content/browser! 

re #63: Thanks, it sounds great that in most cases code in anonymous namespaces is perfectly fine. However, it's not *100%* code, and should we be careful with the name collision additionally?
I'm wondering if we can have (or have already had?) some documentation, plain compilation error or preprocessing mechanism to deal with the remaining small cases. I'm just worried that I'd be suffering from some weird errors, or I'd break the jumbo build sometime in the future.

Comment 69 by brat...@opera.com, Nov 15 2017

@shimazu: We don't have any automatic way of preventing that kind of accidents right now and I don't blame anyone for breaking jumbo. We detect breakage quite quickly but that is not a replacement for avoiding them in the first place which is why a CQ builder with jumbo is top of the "want/need" list.

There are some documentation for the kind of issues that can appear in the Google Doc linked from https://chromium.googlesource.com/chromium/src/+/master/docs/jumbo.md
Project Member

Comment 70 by bugdroid1@chromium.org, Nov 22 2017

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

commit 26ebf15fcb6f642fb7c0d19ceb3fd6df2918c7dd
Author: Daniel Bratell <bratell@opera.com>
Date: Wed Nov 22 20:27:51 2017

Remove jumbo_excludes triggered by too many Init()

The Android JNI generator generated code that cause there to be a
lot of Init() methods in Android code. The JNI generator has now
been changed to add a class name prefix to the function names
so these excludes are no longer needed.

This will speed up Android jumbo builds by a couple of seconds or so
(not measured).

Bug:  779013 ,746953
Change-Id: I24e550d6e493f87022e9887f7a957dc557233b20
Reviewed-on: https://chromium-review.googlesource.com/783212
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#518728}
[modify] https://crrev.com/26ebf15fcb6f642fb7c0d19ceb3fd6df2918c7dd/content/browser/BUILD.gn

Project Member

Comment 71 by bugdroid1@chromium.org, Dec 4 2017

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

commit b2123d44bdae5a2c22905c29307ff62c8cadc8c7
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Dec 04 11:59:51 2017

Support jumbo in content/{utility,public,gpu,network}

Jumbo is a unity build system aimed at dramatically reducing
compilation times by merging cc files into larger translation
units.

This change will remove about 6 CPU minutes from the effort to compile
chrome+content_shell+blink_tests on the reference hardware. This is
slightly less than 1% of the total effort in a jumbo build.

Bug: 746953
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: I19856815c50724004d11a7e5342e84bff802e6f4
Reviewed-on: https://chromium-review.googlesource.com/801013
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#521317}
[modify] https://crrev.com/b2123d44bdae5a2c22905c29307ff62c8cadc8c7/content/gpu/BUILD.gn
[modify] https://crrev.com/b2123d44bdae5a2c22905c29307ff62c8cadc8c7/content/network/BUILD.gn
[modify] https://crrev.com/b2123d44bdae5a2c22905c29307ff62c8cadc8c7/content/public/browser/BUILD.gn
[modify] https://crrev.com/b2123d44bdae5a2c22905c29307ff62c8cadc8c7/content/public/child/BUILD.gn
[modify] https://crrev.com/b2123d44bdae5a2c22905c29307ff62c8cadc8c7/content/public/common/BUILD.gn
[modify] https://crrev.com/b2123d44bdae5a2c22905c29307ff62c8cadc8c7/content/public/renderer/BUILD.gn
[modify] https://crrev.com/b2123d44bdae5a2c22905c29307ff62c8cadc8c7/content/utility/BUILD.gn

Project Member

Comment 72 by bugdroid1@chromium.org, Dec 7 2017

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

commit 590d6dc09ad2c77547b40de406c0036fb83ac819
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Dec 07 21:41:21 2017

Inline ConvertSyncSocketHandle to avoid duplicate symbols

The symbol name ConvertSyncSocketHandle is longer than the
code so inlining it makes the code shorter and possibly smaller.

This is primarily triggered by jumbo build errors.

Bug: 746953
Change-Id: I661209ae56c7c4605ed0ba7426d19eecc095f6e9
Reviewed-on: https://chromium-review.googlesource.com/814674
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#522558}
[modify] https://crrev.com/590d6dc09ad2c77547b40de406c0036fb83ac819/content/renderer/pepper/pepper_audio_input_host.cc
[modify] https://crrev.com/590d6dc09ad2c77547b40de406c0036fb83ac819/content/renderer/pepper/pepper_audio_output_host.cc

Project Member

Comment 73 by bugdroid1@chromium.org, Dec 11 2017

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

commit 9b55042d272ff0a2a6b5b59a0f4736d800d8cef7
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Dec 11 16:30:50 2017

Avoid using GetMessage in Windows since its a Win macro.

Depending on whether certain headers had been included,
GetMessage was a macro that expanded to GetMessageW. This
caused later linker errors in jumbo builds.

This patch renames the function GetIpcMessage to avoid any
confusion.
Alternatives are:
* #undef the macro (can cause problems with later code)
* Make sure that everyone that includes dwrite_font_fake_sender_win.h
also has Windows.h included so that the macro is always there.

Bug: 746953
Change-Id: Ia172ee74dc430c5fb25d676f018695dc001f3470
Reviewed-on: https://chromium-review.googlesource.com/819552
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523107}
[modify] https://crrev.com/9b55042d272ff0a2a6b5b59a0f4736d800d8cef7/content/child/dwrite_font_proxy/dwrite_font_proxy_win_unittest.cc
[modify] https://crrev.com/9b55042d272ff0a2a6b5b59a0f4736d800d8cef7/content/test/dwrite_font_fake_sender_win.cc
[modify] https://crrev.com/9b55042d272ff0a2a6b5b59a0f4736d800d8cef7/content/test/dwrite_font_fake_sender_win.h

Project Member

Comment 74 by bugdroid1@chromium.org, Dec 11 2017

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

commit 88357ad2bf3e33f1f7ae224027734815bfc560b3
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Dec 11 17:07:36 2017

[jumbo] undef STATIC_ASSERT_ENUM after use

Many files define their own STATIC_ASSERT_ENUM macro. When
those files, in a jumbo build, end up in the same translation
unit, there will be clashes.

For macros that clash, the simplest fix is to undef them after
use to reduce the scope where the symbol is available.

Bug: 746953
Change-Id: Id0d22ed46663c79ce5a43e5f09420b1758bf1d88
Reviewed-on: https://chromium-review.googlesource.com/819633
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523116}
[modify] https://crrev.com/88357ad2bf3e33f1f7ae224027734815bfc560b3/content/renderer/appcache/appcache_frontend_impl.cc
[modify] https://crrev.com/88357ad2bf3e33f1f7ae224027734815bfc560b3/content/renderer/effective_connection_type_helper.cc
[modify] https://crrev.com/88357ad2bf3e33f1f7ae224027734815bfc560b3/content/renderer/loader/web_url_request_util.cc
[modify] https://crrev.com/88357ad2bf3e33f1f7ae224027734815bfc560b3/content/renderer/pepper/pepper_plugin_instance_impl.cc
[modify] https://crrev.com/88357ad2bf3e33f1f7ae224027734815bfc560b3/content/renderer/render_frame_impl.cc

Project Member

Comment 75 by bugdroid1@chromium.org, Dec 11 2017

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

commit 1a86a6f74d489731eb72a52c0e4e152a3fcf186b
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Dec 11 18:21:26 2017

[jumbo] Avoid using the same kMaxNumberOfBuffer name everywhere

In jumbo many files compile together in the same translation
unit and then they share anonymous namespace so if they
use the same constant name, such as kMaxNumberOfBuffers or
kDefaultNumberOfBuffers, they will clash.

Bug: 746953
Change-Id: I0ce707eac13d4f928e482ee62f0d112c69900dae
Reviewed-on: https://chromium-review.googlesource.com/819830
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523142}
[modify] https://crrev.com/1a86a6f74d489731eb72a52c0e4e152a3fcf186b/content/renderer/media/webrtc_local_audio_source_provider.cc
[modify] https://crrev.com/1a86a6f74d489731eb72a52c0e4e152a3fcf186b/content/renderer/pepper/pepper_media_stream_audio_track_host.cc
[modify] https://crrev.com/1a86a6f74d489731eb72a52c0e4e152a3fcf186b/content/renderer/pepper/pepper_media_stream_video_track_host.cc

Project Member

Comment 76 by bugdroid1@chromium.org, Dec 11 2017

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

commit 30491e7f9051f0c1775d84fb343f787fc7087978
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Dec 11 19:05:55 2017

[jumbo] Too many CurrentWorkerId()

cache_storage and notifications both had "CurrentWorkerId()" with
the same (trivial) implementation but used differently. For
jumbo builds to not have those clash, this patch renames the
one in notifications -> NotificationWorkerId()

Bug: 746953
Change-Id: Ic00a4e23448bd2d50315a5561f798ed40be56fdc
Reviewed-on: https://chromium-review.googlesource.com/819558
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523146}
[modify] https://crrev.com/30491e7f9051f0c1775d84fb343f787fc7087978/content/renderer/indexed_db/indexed_db_dispatcher.h
[modify] https://crrev.com/30491e7f9051f0c1775d84fb343f787fc7087978/content/renderer/notifications/notification_manager.cc

Project Member

Comment 77 by bugdroid1@chromium.org, Dec 11 2017

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

commit 3468eea378284a9cc42d05532cf3e1ee1f716fa9
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Dec 11 21:26:12 2017

Rename two of the ReleaseOriginalFrame methods

In jumbo builds, the three different ReleaseOriginalFrame
methods in content/renderer/media ended up in the same
translation unit and then Bind() didn't know which one to use

Bug: 746953
Change-Id: I584df28230d29bbc80d9d6cd2884300b7a3d9409
Reviewed-on: https://chromium-review.googlesource.com/819611
Reviewed-by: Guido Urdaneta <guidou@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#523213}
[modify] https://crrev.com/3468eea378284a9cc42d05532cf3e1ee1f716fa9/content/renderer/media/media_stream_video_track.cc
[modify] https://crrev.com/3468eea378284a9cc42d05532cf3e1ee1f716fa9/content/renderer/media/video_track_adapter.cc
[modify] https://crrev.com/3468eea378284a9cc42d05532cf3e1ee1f716fa9/content/renderer/media/webrtc/webrtc_video_capturer_adapter.cc

Project Member

Comment 78 by bugdroid1@chromium.org, Dec 11 2017

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

commit 286f515e32fa20ac0076ebcafe5b27d9fa390a4a
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Dec 11 21:51:49 2017

Renamed two identical methods that checked hwacc state

There is two identical methods named
PP_HardwareAccelerationCompatible and I'm not sure what is
a good place to deduplicate them so this patch only renames
them to unblock jumbo work in content/renderer. The methods
with the same name clashes in jumbo builds where many
cc files are compiled in the same translation unit.

Bug: 746953
Change-Id: I12361f3226bdc7a3c6113201183ec26b263917f4
Reviewed-on: https://chromium-review.googlesource.com/819950
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#523221}
[modify] https://crrev.com/286f515e32fa20ac0076ebcafe5b27d9fa390a4a/content/renderer/pepper/pepper_audio_encoder_host.cc
[modify] https://crrev.com/286f515e32fa20ac0076ebcafe5b27d9fa390a4a/content/renderer/pepper/pepper_video_encoder_host.cc

Project Member

Comment 79 by bugdroid1@chromium.org, Dec 12 2017

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

commit 96041bc3ca77e9a2df5a0fc8e9845384168c2090
Author: Daniel Bratell <bratell@opera.com>
Date: Tue Dec 12 08:11:16 2017

Rename one of the FrameMaps to FrameProxyMap

There are two types named FrameMap, one in render_frame_impl.cc
and one in render_frame_proxy.cc. As long as the type isn't
exported that works, but in jumbo builds the cc files are
compiled in the same translation unit which causes collisions.

Bug: 746953
Change-Id: I582d7f032caba1a201ac72c8181eb4c2432cc5bf
Reviewed-on: https://chromium-review.googlesource.com/819636
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#523369}
[modify] https://crrev.com/96041bc3ca77e9a2df5a0fc8e9845384168c2090/content/renderer/render_frame_proxy.cc

Project Member

Comment 80 by bugdroid1@chromium.org, Dec 13 2017

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

commit 0cebd10994866474f3e078e5ddffeadd5d8034d4
Author: Daniel Bratell <bratell@opera.com>
Date: Wed Dec 13 08:52:06 2017

Renamed local BindInterface since it clashed with template

There is a template named BindInterface in
content/public/common/bind_interface_helpers.h so to avoid
compilation failures when that header is included directly
or indirectly (as in jumbo builds), it's better to call
local functions something else than BindInterface.

This renames BindInterface -> BindNamedInterface.

Bug: 746953
Change-Id: Ib595232b8c6c9ae58b5321ff58ad1c2927787631
Reviewed-on: https://chromium-review.googlesource.com/822433
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#523721}
[modify] https://crrev.com/0cebd10994866474f3e078e5ddffeadd5d8034d4/content/renderer/mojo/blink_interface_provider_impl.cc

Project Member

Comment 81 by bugdroid1@chromium.org, Dec 13 2017

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

commit 8620d3bffe046daee91a4ebb9fce3d372562010e
Author: Daniel Bratell <bratell@opera.com>
Date: Wed Dec 13 08:53:16 2017

Avoid importing the symbol name "Result"

There are many types in Chromium named Result. When importing
that name into the global (or content) namespace with a
using statement, you run the risk of clashing with another
Result type. That happened in jumbo builds where more code
is compiled per translation unit.

This patch uses the fully qualified name instead of just
Result instead.

Bug: 746953
Change-Id: I5ccfb5e6b70712372a764c89b40a2a9340cc33fb
Reviewed-on: https://chromium-review.googlesource.com/822335
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Takashi Toyoshima <toyoshim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523722}
[modify] https://crrev.com/8620d3bffe046daee91a4ebb9fce3d372562010e/content/renderer/media/midi_message_filter.cc

Project Member

Comment 82 by bugdroid1@chromium.org, Dec 13 2017

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

commit b702a6d87080798eaf5fb75ac3ba91c8a6f14bce
Author: Daniel Bratell <bratell@opera.com>
Date: Wed Dec 13 08:55:29 2017

Gave 3 kMaxMessageChunkSize constants unique names.

There are three very similar pieces of code with identical
constants controlling and this patch renames them so
that they don't clash in jumbo builds.

Jumbo builds compile multiple cc files in the same translation
unit which means that those cc files will share the same
anonymous namespace.

Bug: 746953
Change-Id: I85462687798819212b78926c92d3351f44039583
Reviewed-on: https://chromium-review.googlesource.com/822474
Reviewed-by: Tsuyoshi Horo <horo@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#523723}
[modify] https://crrev.com/b702a6d87080798eaf5fb75ac3ba91c8a6f14bce/content/renderer/devtools/devtools_agent.cc
[modify] https://crrev.com/b702a6d87080798eaf5fb75ac3ba91c8a6f14bce/content/renderer/service_worker/embedded_worker_devtools_agent.cc
[modify] https://crrev.com/b702a6d87080798eaf5fb75ac3ba91c8a6f14bce/content/renderer/shared_worker/shared_worker_devtools_agent.cc

Project Member

Comment 83 by bugdroid1@chromium.org, Dec 13 2017

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

commit 5ec1b52d881fa328f83e23055df256e03d017486
Author: Daniel Bratell <bratell@opera.com>
Date: Wed Dec 13 10:50:35 2017

Give some ServiceWorker and TLS related symbols more unique names

In jumbo builds more code compile in the same translation unit
so it's more important to keep the names unique to avoid
compilation clashes.

Bug: 746953
Change-Id: I649731d0725a9c5b5ab0ec72775cc81ea54434a9
Reviewed-on: https://chromium-review.googlesource.com/819556
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Tsuyoshi Horo <horo@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#523737}
[modify] https://crrev.com/5ec1b52d881fa328f83e23055df256e03d017486/content/renderer/cache_storage/cache_storage_dispatcher.cc
[modify] https://crrev.com/5ec1b52d881fa328f83e23055df256e03d017486/content/renderer/indexed_db/indexed_db_dispatcher.cc
[modify] https://crrev.com/5ec1b52d881fa328f83e23055df256e03d017486/content/renderer/service_worker/service_worker_dispatcher.cc
[modify] https://crrev.com/5ec1b52d881fa328f83e23055df256e03d017486/content/renderer/service_worker/web_service_worker_impl.cc
[modify] https://crrev.com/5ec1b52d881fa328f83e23055df256e03d017486/content/renderer/service_worker/web_service_worker_registration_impl.cc

Project Member

Comment 84 by bugdroid1@chromium.org, Dec 14 2017

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

commit d76cc88fb6ab1c36c87e2374ffb5b9d9714b66a9
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Dec 14 09:01:02 2017

Gave two kClassIdentifiers unique names

In jumbo builds several cc files are compiled in the same
translation unit and then the different kClassIdentifier
symbols clashed. This renames them to
kPeerConnectionRemoteTrackIdentifier
and
kProcessedLocalAudioSourceIdentifier

Bug: 746953
Change-Id: I7fe95ebbef69f4dd3b47258417cc917ba441dd91
Reviewed-on: https://chromium-review.googlesource.com/822191
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#524029}
[modify] https://crrev.com/d76cc88fb6ab1c36c87e2374ffb5b9d9714b66a9/content/renderer/media/webrtc/peer_connection_remote_audio_source.cc
[modify] https://crrev.com/d76cc88fb6ab1c36c87e2374ffb5b9d9714b66a9/content/renderer/media/webrtc/processed_local_audio_source.cc

Project Member

Comment 85 by bugdroid1@chromium.org, Dec 14 2017

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

commit 28d762e8a4868ee23cab78438b93b8a51d1d3a5a
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Dec 14 11:25:17 2017

Prepare appcache tests for jumbo compilation

To avoid clashes between test data variables and similar changes,
this patch puts tests that would collide in custom namespaces
following a pattern used successfully in Blink.

Bug: 746953
Change-Id: I49b9d127c513ead92c4743d6e5701b80a91db69e
Reviewed-on: https://chromium-review.googlesource.com/824268
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Joshua Bell <jsbell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524042}
[modify] https://crrev.com/28d762e8a4868ee23cab78438b93b8a51d1d3a5a/content/browser/appcache/appcache.h
[modify] https://crrev.com/28d762e8a4868ee23cab78438b93b8a51d1d3a5a/content/browser/appcache/appcache_group.h
[modify] https://crrev.com/28d762e8a4868ee23cab78438b93b8a51d1d3a5a/content/browser/appcache/appcache_host.h
[modify] https://crrev.com/28d762e8a4868ee23cab78438b93b8a51d1d3a5a/content/browser/appcache/appcache_storage.h
[modify] https://crrev.com/28d762e8a4868ee23cab78438b93b8a51d1d3a5a/content/browser/appcache/appcache_storage_unittest.cc
[modify] https://crrev.com/28d762e8a4868ee23cab78438b93b8a51d1d3a5a/content/browser/appcache/appcache_update_job.h
[modify] https://crrev.com/28d762e8a4868ee23cab78438b93b8a51d1d3a5a/content/browser/appcache/appcache_update_job_unittest.cc
[modify] https://crrev.com/28d762e8a4868ee23cab78438b93b8a51d1d3a5a/content/browser/appcache/appcache_url_request_job.h
[modify] https://crrev.com/28d762e8a4868ee23cab78438b93b8a51d1d3a5a/content/browser/appcache/appcache_url_request_job_unittest.cc
[modify] https://crrev.com/28d762e8a4868ee23cab78438b93b8a51d1d3a5a/content/browser/appcache/mock_appcache_storage.h

Project Member

Comment 86 by bugdroid1@chromium.org, Dec 14 2017

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

commit 8da2ab335438e7a3525efb843eac628c4249dc26
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Dec 14 14:20:51 2017

Add support for jumbo in content/renderer

Jumbo is a unity build system for Chromium, aimed at dramatically
reducing the compilation times.

So far support has been added to blink, v8, content/browser and
a few smaller targets, reducing the effort by about half. How
that maps to real time depends on hardware. It scales proportionally
for 4 core/8 thread machines, but not in 48 core machines or in
goma.

The effort to compile content/renderer in a use_jumbo_build=true
build is right now about 6% of the total effort when compiling
chrome+content_shell+blink_tests. That is about 51 CPU minutes
on the test hardware. With jumbo that can be brought down to 6-7
CPU minutes, saving about 5 minutes real time on a 4 core/8 thread
machine for every full compilation.

Part of the support is to split away IPC code generation since
its macro based design isn't compatible with jumbo. See
comment in the code for more information.

Bug: 746953
Change-Id: If0cfe05986cdfbdd4974f03119c46c3493f6c63e
Reviewed-on: https://chromium-review.googlesource.com/822417
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524063}
[modify] https://crrev.com/8da2ab335438e7a3525efb843eac628c4249dc26/content/renderer/BUILD.gn
[modify] https://crrev.com/8da2ab335438e7a3525efb843eac628c4249dc26/content/renderer/input/input_event_filter.cc
[add] https://crrev.com/8da2ab335438e7a3525efb843eac628c4249dc26/content/renderer/input/input_event_filter_ipc_names.cc

Project Member

Comment 87 by bugdroid1@chromium.org, Dec 15 2017

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

commit 238244e1eee5e19fa708148538fab768a6f9ef5c
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Dec 15 01:06:06 2017

Prepare various storage tests in content for jumbo compilation

To avoid clashes between test data variables and similar changes,
this patch puts tests that would collide in custom namespaces
following a pattern used successfully in Blink.

Bug: 746953
Change-Id: I093f221ca2017c095f0751d52d70efa44e3fed31
Reviewed-on: https://chromium-review.googlesource.com/826636
Reviewed-by: Joshua Bell <jsbell@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#524271}
[modify] https://crrev.com/238244e1eee5e19fa708148538fab768a6f9ef5c/content/browser/cache_storage/cache_storage.h
[modify] https://crrev.com/238244e1eee5e19fa708148538fab768a6f9ef5c/content/browser/cache_storage/cache_storage_cache.h
[modify] https://crrev.com/238244e1eee5e19fa708148538fab768a6f9ef5c/content/browser/cache_storage/cache_storage_cache_unittest.cc
[modify] https://crrev.com/238244e1eee5e19fa708148538fab768a6f9ef5c/content/browser/cache_storage/cache_storage_manager.h
[modify] https://crrev.com/238244e1eee5e19fa708148538fab768a6f9ef5c/content/browser/cache_storage/cache_storage_manager_unittest.cc
[modify] https://crrev.com/238244e1eee5e19fa708148538fab768a6f9ef5c/content/browser/cache_storage/cache_storage_scheduler_unittest.cc
[modify] https://crrev.com/238244e1eee5e19fa708148538fab768a6f9ef5c/content/browser/fileapi/browser_file_system_helper_unittest.cc
[modify] https://crrev.com/238244e1eee5e19fa708148538fab768a6f9ef5c/content/browser/indexed_db/indexed_db_backing_store.h
[modify] https://crrev.com/238244e1eee5e19fa708148538fab768a6f9ef5c/content/browser/indexed_db/indexed_db_backing_store_unittest.cc
[modify] https://crrev.com/238244e1eee5e19fa708148538fab768a6f9ef5c/content/browser/indexed_db/indexed_db_tombstone_sweeper.h
[modify] https://crrev.com/238244e1eee5e19fa708148538fab768a6f9ef5c/content/browser/indexed_db/indexed_db_tombstone_sweeper_unittest.cc
[modify] https://crrev.com/238244e1eee5e19fa708148538fab768a6f9ef5c/content/browser/indexed_db/indexed_db_transaction.h
[modify] https://crrev.com/238244e1eee5e19fa708148538fab768a6f9ef5c/content/browser/indexed_db/indexed_db_transaction_unittest.cc
[modify] https://crrev.com/238244e1eee5e19fa708148538fab768a6f9ef5c/content/browser/indexed_db/leveldb/leveldb_unittest.cc

Project Member

Comment 88 by bugdroid1@chromium.org, Dec 15 2017

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

commit 811fc2300add55df6efc3367bc4e398433094b7c
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Dec 15 10:57:23 2017

Prepare service_worker tests for jumbo compilation

To avoid clashes between test data variables and similar changes,
this patch puts tests that would collide in custom namespaces
following a pattern used successfully in Blink.

content unittests needs about 60 CPU minutes to compile normally.
With jumbo that can be brought down to 4-6.

Bug: 746953
Change-Id: Ic573361fed81bbd46a97823e9761f94088d51814
Reviewed-on: https://chromium-review.googlesource.com/826637
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Tsuyoshi Horo <horo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524357}
[modify] https://crrev.com/811fc2300add55df6efc3367bc4e398433094b7c/content/browser/service_worker/service_worker_controllee_request_handler_unittest.cc
[modify] https://crrev.com/811fc2300add55df6efc3367bc4e398433094b7c/content/browser/service_worker/service_worker_dispatcher_host.h
[modify] https://crrev.com/811fc2300add55df6efc3367bc4e398433094b7c/content/browser/service_worker/service_worker_dispatcher_host_unittest.cc
[modify] https://crrev.com/811fc2300add55df6efc3367bc4e398433094b7c/content/browser/service_worker/service_worker_handle_unittest.cc
[modify] https://crrev.com/811fc2300add55df6efc3367bc4e398433094b7c/content/browser/service_worker/service_worker_provider_host.h
[modify] https://crrev.com/811fc2300add55df6efc3367bc4e398433094b7c/content/browser/service_worker/service_worker_registration.h
[modify] https://crrev.com/811fc2300add55df6efc3367bc4e398433094b7c/content/browser/service_worker/service_worker_registration_unittest.cc
[modify] https://crrev.com/811fc2300add55df6efc3367bc4e398433094b7c/content/browser/service_worker/service_worker_request_handler_unittest.cc
[modify] https://crrev.com/811fc2300add55df6efc3367bc4e398433094b7c/content/browser/service_worker/service_worker_storage.h
[modify] https://crrev.com/811fc2300add55df6efc3367bc4e398433094b7c/content/browser/service_worker/service_worker_storage_unittest.cc
[modify] https://crrev.com/811fc2300add55df6efc3367bc4e398433094b7c/content/browser/service_worker/service_worker_url_loader_job_unittest.cc
[modify] https://crrev.com/811fc2300add55df6efc3367bc4e398433094b7c/content/browser/service_worker/service_worker_url_request_job.h
[modify] https://crrev.com/811fc2300add55df6efc3367bc4e398433094b7c/content/browser/service_worker/service_worker_url_request_job_unittest.cc
[modify] https://crrev.com/811fc2300add55df6efc3367bc4e398433094b7c/content/browser/service_worker/service_worker_version.h
[modify] https://crrev.com/811fc2300add55df6efc3367bc4e398433094b7c/content/browser/service_worker/service_worker_version_unittest.cc
[modify] https://crrev.com/811fc2300add55df6efc3367bc4e398433094b7c/content/browser/service_worker/service_worker_write_to_cache_job_unittest.cc
[modify] https://crrev.com/811fc2300add55df6efc3367bc4e398433094b7c/content/renderer/service_worker/service_worker_provider_context.h
[modify] https://crrev.com/811fc2300add55df6efc3367bc4e398433094b7c/content/renderer/service_worker/service_worker_provider_context_unittest.cc

Comment 89 by brat...@opera.com, Dec 18 2017

Status update
=============
Supported on mainline:
----------------------
96 CPU minutes, content/browser -> 6.0x faster, saved 80 CPU minutes
53 CPU minutes, content/renderer -> 7.7x faster, saved 45 CPU minutes

In progress to land:
--------------------
67 CPU minutes, content/test -> 7-8x faster, will save ~55 CPU minutes

Only in Proof of Concept:
-------------------------
12 CPU minutes content/common -> 5-10x faster
 8 CPU minutes content/shell -> 5-10x faster
 8 CPU minutes content/public -> 5-10x faster

Not looked at:
--------------
 1-5 CPU minutes content/{other_stuff}

For reference, the total time to build chrome+content_shell+blink_tests with use_jumbo_build (which doesn't include content/tests) on mainline is 804 CPU minutes.
Running jumbo on Windows after #86 generates compile errors due to the Windows SDK:

FAILED: obj/content/renderer/renderer/renderer_jumbo_4.obj
../../third_party/llvm-build/Release+Asserts/bin/clang-cl.exe /nologo /showIncludes  @obj/content/renderer/renderer/renderer_jumbo_4.obj.rsp /c gen/content/renderer/renderer_jumbo_4.cc /Foobj/content/renderer/renderer/renderer_jumbo_4.obj /Fd"obj/content/renderer/renderer_cc.pdb"
In file included from gen/content/renderer/renderer_jumbo_4.cc:36:
In file included from .\../../content/renderer/service_worker/service_worker_context_client.cc:52:
../..\content/renderer/service_worker/web_service_worker_impl.h(53,61):  error: only virtual member functions can be marked 'override'
      blink::WebVector<blink::MessagePortChannel> channels) override;
                                                            ^~~~~~~~
In file included from gen/content/renderer/renderer_jumbo_4.cc:38:
.\../../content/renderer/service_worker/service_worker_dispatcher.cc(124,14):  error: allocating an object of abstract class type 'content::WebServiceWorkerImpl'
  return new WebServiceWorkerImpl(std::move(handle_ref),
             ^
../..\third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorker.h(75,16):  note: unimplemented pure virtual method 'PostMessageW' in 'WebServiceWorkerImpl'
  virtual void PostMessage(WebServiceWorkerProvider*,
               ^
c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\winuser.h(3971,22):  note: expanded from macro 'PostMessage'
#define PostMessage  PostMessageW
                     ^
2 errors generated.

I saw https://chromium-review.googlesource.com/c/chromium/src/+/835492 attempted to fix this but that approach was abandoned.
I'm working on a fix - renaming the PostMessage member functions. You can temporarily avoid the problem by disabling jumbo or by setting jumbo_file_merge_limit=8.

I also filed crbug.com/796644 to try to avoid this issue in the future (and improve build speeds).
crrev.com/c/837655 (may need a final rename, I don't know) resolves the Windows jumbo build issue with PostMessage. Patch it in locally for a temporary fix.
Project Member

Comment 93 by bugdroid1@chromium.org, Dec 21 2017

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

commit 608f59c4bfc2d161fe74e30803642d97e5d4eed8
Author: Bruce Dawson <brucedawson@chromium.org>
Date: Thu Dec 21 20:14:48 2017

Avoid using PostMessage to avoid Windows SDK conflicts

The Windows SDK insists on defining PostMessage to PostMessageW. Working
with this requires a delicate and fragile dance that was recently broken
on jumbo builds with some settings (prior to April 2017,
crrev.com/c/472192, we avoided this issue by using the name
postMessage).

While the long-term fix is to reduce how frequently we include Windows.h
the pragmatic short-term fix is to rename the virtual functions.

Bug: 746953, 796644
Change-Id: I9c8a46d34fa19b35ca065cc27cae0b40b936510a
Reviewed-on: https://chromium-review.googlesource.com/837655
Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Marijn Kruisselbrink <mek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525782}
[modify] https://crrev.com/608f59c4bfc2d161fe74e30803642d97e5d4eed8/content/renderer/service_worker/web_service_worker_impl.cc
[modify] https://crrev.com/608f59c4bfc2d161fe74e30803642d97e5d4eed8/content/renderer/service_worker/web_service_worker_impl.h
[modify] https://crrev.com/608f59c4bfc2d161fe74e30803642d97e5d4eed8/extensions/renderer/guest_view/mime_handler_view/mime_handler_view_container.cc
[modify] https://crrev.com/608f59c4bfc2d161fe74e30803642d97e5d4eed8/extensions/renderer/guest_view/mime_handler_view/mime_handler_view_container.h
[modify] https://crrev.com/608f59c4bfc2d161fe74e30803642d97e5d4eed8/third_party/WebKit/Source/core/exported/WebPagePopupImpl.cpp
[modify] https://crrev.com/608f59c4bfc2d161fe74e30803642d97e5d4eed8/third_party/WebKit/Source/core/exported/WebPagePopupImpl.h
[modify] https://crrev.com/608f59c4bfc2d161fe74e30803642d97e5d4eed8/third_party/WebKit/Source/core/html/forms/InternalPopupMenu.cpp
[modify] https://crrev.com/608f59c4bfc2d161fe74e30803642d97e5d4eed8/third_party/WebKit/Source/core/page/PagePopup.h
[modify] https://crrev.com/608f59c4bfc2d161fe74e30803642d97e5d4eed8/third_party/WebKit/Source/modules/serviceworkers/ServiceWorker.cpp
[modify] https://crrev.com/608f59c4bfc2d161fe74e30803642d97e5d4eed8/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorker.h

Project Member

Comment 94 by bugdroid1@chromium.org, Jan 3 2018

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

commit b8d076c100148d0933c2ca6aef52b88944371781
Author: Daniel Bratell <bratell@opera.com>
Date: Wed Jan 03 17:55:59 2018

Avoid importing base::Time into the global scope because X11

base::Time in the global scope collides with X11 headers which
have a global typedef of Time to int. This patch moves the code so
that the symbols are imported into the local namespace (content)
instead.

X11 headers appear in some non-standard jumbo configurations
(extremely large jumbo chunks) but could happen at any time
otherwise as well.

Bug: 746953
Change-Id: Iadc929ca4eb7d556490d58c791bbe8b2ef119726
Reviewed-on: https://chromium-review.googlesource.com/848916
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#526731}
[modify] https://crrev.com/b8d076c100148d0933c2ca6aef52b88944371781/content/browser/histogram_synchronizer.cc
[modify] https://crrev.com/b8d076c100148d0933c2ca6aef52b88944371781/content/browser/loader/resource_dispatcher_host_impl.cc
[modify] https://crrev.com/b8d076c100148d0933c2ca6aef52b88944371781/content/browser/renderer_host/input/input_router_impl.cc

Project Member

Comment 95 by bugdroid1@chromium.org, Jan 3 2018

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

commit 60854de15bfeef95cb803aaab521f89352c07c3d
Author: Daniel Bratell <bratell@opera.com>
Date: Wed Jan 03 18:57:47 2018

Rename GetRestrictedCookieManager for more uniqueness

There are two overloaded GetRestrictedCookieManager functions in
different files which in certain non-standard jumbo configurations
end up in the same translation unit. When that happens,
base::Bind doesn't know which one to use and there is a compilation
error.

This patch renames one of them
GetRestrictedCookieManagerForWorker so that there will never be
any confusion.

Bug: 746953
Change-Id: I7b3e6ba32aed44e575ee108111871e45b5e2689c
Reviewed-on: https://chromium-review.googlesource.com/847010
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Sam McNally <sammc@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#526754}
[modify] https://crrev.com/60854de15bfeef95cb803aaab521f89352c07c3d/content/browser/renderer_interface_binders.cc

Project Member

Comment 96 by bugdroid1@chromium.org, Jan 4 2018

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

commit 062856d52b303372979a38051c39af3677433b8a
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Jan 04 20:17:12 2018

Renamed one of the HeaderFlattener classes

There are two HeaderFlattener classes that do similar things
but not identical things. If they end up in the same
translation unit (can happen in some extreme jumbo configurations)
there will be a clash so this patch renames one of them to
HeaderToString.

Bug: 746953
Change-Id: I1fa37f86bcf13487fd8b18da766f440b3ad85545
Reviewed-on: https://chromium-review.googlesource.com/848915
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#527078}
[modify] https://crrev.com/062856d52b303372979a38051c39af3677433b8a/content/renderer/pepper/url_response_info_util.cc

Blockedon: 886902
Project Member

Comment 98 by bugdroid1@chromium.org, Sep 28

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

commit db70928281bc0bbe825e5b15fb7df8d1825adf8c
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Sep 28 15:24:42 2018

Give two g_lazy_tls global variables unique names

In content/child there were two g_lazy_tls global variables
in two different anonymous namespaces. In jumbo build experiments,
where many files compile together and share anonymous namespace,
those globals collided. This patch gives them more distinct names.

Bug: 746953
Change-Id: Icac936f2092d1c8b1bc5de38d443d71cb8955045
Reviewed-on: https://chromium-review.googlesource.com/1251605
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#595100}
[modify] https://crrev.com/db70928281bc0bbe825e5b15fb7df8d1825adf8c/content/child/child_process.cc
[modify] https://crrev.com/db70928281bc0bbe825e5b15fb7df8d1825adf8c/content/child/child_thread_impl.cc

Project Member

Comment 99 by bugdroid1@chromium.org, Oct 4

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

commit 05c98d06d24cd1f37821b52c4efe229f067034fc
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Oct 04 14:47:06 2018

Avoid creating a local mojom namespace that confuses symbol lookup

A local mojom namespace meant that it became ambigious inside the
content namespace whether "mojom" meant "::mojom" or
"::content::mojom". This problem surfaced in jumbo build experiments
where the compiler knew about the ::content::mojom namespace. In
most builds the compiler only knows about ::mojom and then it
compiles.

Bug: 746953
Change-Id: Ifec37f45009693d7e41eb393ca9bbea136f884b2
Reviewed-on: https://chromium-review.googlesource.com/c/1256926
Reviewed-by: Camille Lamy <clamy@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#596665}
[modify] https://crrev.com/05c98d06d24cd1f37821b52c4efe229f067034fc/content/common/page_state_serialization.cc

Status: Available (was: Started)
This issue has been marked as started, but has no owner. Making available.

Sign in to add a comment