New issue
Advanced search Search tips

Issue 746957 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jul 6
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 746956



Sign in to add a comment

Compile //chrome/browser/BUILD.gn with jumbo

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

Issue description

After Blink code in src/chrome is the code that takes the longest time to compile if you compile chrome and blink_tests. It's roughly 15% of the build time (150-200 CPU minutes) and maybe more if you include various tests.

Jumbifying src/chrome could make a real impact on compilation times.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Oct 10 2017

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

commit a413dfd0497feca9510b87984bc153d6b88c1a86
Author: Daniel Bratell <bratell@opera.com>
Date: Tue Oct 10 20:08:26 2017

Renamed g_factory in src/chrome/browser/extensions

This is a preparatory patch for jumbo[1] in src/chrome.
The chrome code is now, with Blink jumbified, the single largest time
consumer during compilations. chrome/browser/extensions needs
about 30 CPU minutes to compile on a reference machine and that
should be about 5-10 times faster with jumbo.

[1] https://chromium.googlesource.com/chromium/src/+/master/docs/jumbo.md

Bug:  746957 
Change-Id: I696dd1da7ca97e1773e4b0f2ab0714ab6a50021a
Reviewed-on: https://chromium-review.googlesource.com/708674
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#507750}
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/activity_log/activity_log.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/activity_log_private/activity_log_private_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/autotest_private/autotest_private_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/bookmarks/bookmarks_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/braille_display_private/braille_display_private_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/commands/command_service.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/cookies/cookies_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/developer_private/developer_private_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_connection.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/extension_action/extension_action_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/font_settings/font_settings_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/history/history_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/hotword_private/hotword_private_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/identity/identity_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/image_writer_private/operation_manager.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/input_ime/input_ime_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/launcher_page/launcher_page_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/mdns/mdns_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/media_galleries/media_galleries_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/messaging/incognito_connectability.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/omnibox/omnibox_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/platform_keys/verify_trust_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/preference/preference_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/screenlock_private/screenlock_private_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/sessions/sessions_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/settings_overrides/settings_overrides_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/signed_in_devices/signed_in_devices_manager.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/spellcheck/spellcheck_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/streams_private/streams_private_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/sync_file_system/extension_sync_event_observer.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/tab_capture/tab_capture_registry.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/tabs/tabs_windows_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/web_navigation/web_navigation_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/extension_commands_global_registry.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/extension_gcm_app_handler.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/extension_web_ui_override_registrar.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/plugin_manager.cc
[modify] https://crrev.com/a413dfd0497feca9510b87984bc153d6b88c1a86/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc

Project Member

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

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

commit 18b3e0d7c6e0048b3f64c98fb23696f804da02e3
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Jan 05 16:13:27 2018

Give each kPublicSHA256 variable a unique name

This patch is preparing for jumbo build support in
//chrome/browser. Since each component has its own
kPublicSHA256 variable with its own public key, and those
variables clash in jumbo builds where all installers are combined
in a single translation unit, they are here given unique and
descriptive names.

Bug:  746957 
Change-Id: I7fe1c927d58fd323e8a80897c45d639e24f8a38d
Reviewed-on: https://chromium-review.googlesource.com/850558
Reviewed-by: Joshua Pawlicki <waffles@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#527287}
[modify] https://crrev.com/18b3e0d7c6e0048b3f64c98fb23696f804da02e3/chrome/browser/component_updater/crl_set_component_installer.cc
[modify] https://crrev.com/18b3e0d7c6e0048b3f64c98fb23696f804da02e3/chrome/browser/component_updater/downloadable_strings_component_installer.cc
[modify] https://crrev.com/18b3e0d7c6e0048b3f64c98fb23696f804da02e3/chrome/browser/component_updater/file_type_policies_component_installer.cc
[modify] https://crrev.com/18b3e0d7c6e0048b3f64c98fb23696f804da02e3/chrome/browser/component_updater/mei_preload_component_installer.cc
[modify] https://crrev.com/18b3e0d7c6e0048b3f64c98fb23696f804da02e3/chrome/browser/component_updater/optimization_hints_component_installer.cc
[modify] https://crrev.com/18b3e0d7c6e0048b3f64c98fb23696f804da02e3/chrome/browser/component_updater/pnacl_component_installer.cc
[modify] https://crrev.com/18b3e0d7c6e0048b3f64c98fb23696f804da02e3/chrome/browser/component_updater/recovery_improved_component_installer.cc
[modify] https://crrev.com/18b3e0d7c6e0048b3f64c98fb23696f804da02e3/chrome/browser/component_updater/ssl_error_assistant_component_installer.cc
[modify] https://crrev.com/18b3e0d7c6e0048b3f64c98fb23696f804da02e3/chrome/browser/component_updater/sth_set_component_installer.cc
[modify] https://crrev.com/18b3e0d7c6e0048b3f64c98fb23696f804da02e3/chrome/browser/component_updater/subresource_filter_component_installer.cc
[modify] https://crrev.com/18b3e0d7c6e0048b3f64c98fb23696f804da02e3/chrome/browser/component_updater/third_party_module_list_component_installer_win.cc
[modify] https://crrev.com/18b3e0d7c6e0048b3f64c98fb23696f804da02e3/chrome/browser/component_updater/vr_assets_component_installer.cc

Project Member

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

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

commit 8e440aef3e2dc9a26660581f21d0c86e6d190cde
Author: Daniel Bratell <bratell@opera.com>
Date: Sat Jan 06 11:19:28 2018

Deduplicate some icon handling code and symbols in task_manager

Jumbo build experiments handled the multiple GetDefaultIcon
and g_default_icon pointers badly and since the code was more
or less identucal, this patch moves the code to a shared location
and leaves just the icon constant and the icon cache in
each task_manager Task class.

Bug:  746957 
Change-Id: Ib7dc221113b29b5e6d17c22539ccb47da1b6a5ce
Reviewed-on: https://chromium-review.googlesource.com/852216
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Ahmed Fakhry <afakhry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#527518}
[modify] https://crrev.com/8e440aef3e2dc9a26660581f21d0c86e6d190cde/chrome/browser/task_manager/providers/browser_process_task.cc
[modify] https://crrev.com/8e440aef3e2dc9a26660581f21d0c86e6d190cde/chrome/browser/task_manager/providers/browser_process_task.h
[modify] https://crrev.com/8e440aef3e2dc9a26660581f21d0c86e6d190cde/chrome/browser/task_manager/providers/child_process_task.cc
[modify] https://crrev.com/8e440aef3e2dc9a26660581f21d0c86e6d190cde/chrome/browser/task_manager/providers/child_process_task.h
[modify] https://crrev.com/8e440aef3e2dc9a26660581f21d0c86e6d190cde/chrome/browser/task_manager/providers/task.cc
[modify] https://crrev.com/8e440aef3e2dc9a26660581f21d0c86e6d190cde/chrome/browser/task_manager/providers/task.h
[modify] https://crrev.com/8e440aef3e2dc9a26660581f21d0c86e6d190cde/chrome/browser/task_manager/providers/web_contents/background_contents_task.cc
[modify] https://crrev.com/8e440aef3e2dc9a26660581f21d0c86e6d190cde/chrome/browser/task_manager/providers/web_contents/background_contents_task.h
[modify] https://crrev.com/8e440aef3e2dc9a26660581f21d0c86e6d190cde/chrome/browser/task_manager/providers/web_contents/extension_task.cc
[modify] https://crrev.com/8e440aef3e2dc9a26660581f21d0c86e6d190cde/chrome/browser/task_manager/providers/web_contents/extension_task.h

Project Member

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

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

commit 218704dd24fb77692c7215e198b4672bd64ea531
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Jan 08 14:36:27 2018

Deduplicate a CreateExtensionPrefStore helper function

Noticed while experimenting with jumbo in chrome/browser. Symbols
that are duplicated cause compilation problems if they end up
in the same translation unit.

Bug:  746957 
Change-Id: I07a5bcb690026359e7d74be81a0a26ce9f40958b
Reviewed-on: https://chromium-review.googlesource.com/846747
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Bernhard Bauer <bauerb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#527631}
[modify] https://crrev.com/218704dd24fb77692c7215e198b4672bd64ea531/chrome/browser/profiles/off_the_record_profile_impl.cc
[modify] https://crrev.com/218704dd24fb77692c7215e198b4672bd64ea531/chrome/browser/profiles/profile.cc
[modify] https://crrev.com/218704dd24fb77692c7215e198b4672bd64ea531/chrome/browser/profiles/profile.h
[modify] https://crrev.com/218704dd24fb77692c7215e198b4672bd64ea531/chrome/browser/profiles/profile_impl.cc

Components: Build
Project Member

Comment 6 by bugdroid1@chromium.org, Jan 9 2018

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

commit 230062bad12dcf14ff1c1592c67e9e620a62f19b
Author: Daniel Bratell <bratell@opera.com>
Date: Tue Jan 09 20:09:03 2018

Deduplicate printing HoldRefCallback helper

Both print_job.cc and print_job_worker.cc wanted a helper
function for certain callbacks. Rather than having two of them,
let us have one.

Bug:  746957 
Change-Id: If770b8f18479847489d9c2a28ba1b1d75bdc11e1
Reviewed-on: https://chromium-review.googlesource.com/857501
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#528083}
[modify] https://crrev.com/230062bad12dcf14ff1c1592c67e9e620a62f19b/chrome/browser/printing/print_job.cc
[modify] https://crrev.com/230062bad12dcf14ff1c1592c67e9e620a62f19b/chrome/browser/printing/print_job.h
[modify] https://crrev.com/230062bad12dcf14ff1c1592c67e9e620a62f19b/chrome/browser/printing/print_job_worker.cc

Project Member

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

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

commit 26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b
Author: Daniel Bratell <bratell@opera.com>
Date: Wed Jan 10 23:47:18 2018

Changed g_instance and g_factory to more unique names

Jumbo, the Chromium unity build system, combines many cc files
in the same translation unity. Those cc files will share the
same anonymous namespace so there can be clashes if names
are not unique enough.

In //chrome there is a lot of variables named g_instance or
similar and in jumbo builds some of them collide. This patch
gives all of the g_instance* variables more specific names, in
a very similar fashion to what was done in //content.

Bug:  746957 
Change-Id: Idb2c64b2289aa0487fd62fd140498af909986079
Reviewed-on: https://chromium-review.googlesource.com/846769
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#528489}
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/android/vr_shell/vr_shell.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/chromeos/arc/voice_interaction/voice_interaction_controller_client.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/chromeos/first_run/first_run_controller.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/chromeos/lock_screen_apps/state_controller.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/chromeos/options/network_config_view.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/chromeos/system/input_device_settings_impl_ozone.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/conflicts/module_database_win.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/devtools/devtools_ui_bindings.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/devtools/devtools_window.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/devtools/devtools_window_testing.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/extensions/api/cloud_print_private/cloud_print_private_api.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/memory/memory_kills_monitor.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/memory/memory_kills_monitor_unittest.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/metrics/desktop_session_duration/desktop_session_duration_tracker.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/metrics/leak_detector/leak_detector_controller_unittest.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/metrics/renderer_uptime_tracker.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/metrics/tab_stats_tracker.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/profiles/profile.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/supervised_user/legacy/supervised_user_registration_utility.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/ui/ash/chrome_new_window_client.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/ui/ash/chrome_screenshot_grabber.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/ui/ash/chrome_shell_content_state.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/ui/ash/ime_controller_client.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/ui/ash/login_screen_client.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/ui/ash/multi_user/multi_user_window_manager.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/ui/ash/session_controller_client.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/ui/ash/system_tray_client.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/ui/ash/tablet_mode_client.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/ui/ash/wallpaper_controller_client.cc
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/ui/cocoa/hung_renderer_controller.mm
[modify] https://crrev.com/26e459ddfcdd4d27dbade0dd3eed8ebafc2e7d3b/chrome/browser/ui/uma_browsing_activity_observer.cc

Comment 8 by brat...@opera.com, Jan 11 2018

Summary: Compile //chrome/browser/BUILD.gn with jumbo (was: Compile src/chrome with jumbo)
Let's restrict this to //chrome/browser/BUILD.gn related targets for now and open other bugs for other parts of //chrome

Comment 9 by brat...@opera.com, Jan 11 2018

//chrome/browser:browser is about 96 CPU minutes, which is 12% of the time to build chrome+content_shell+blink_tests with use_jumbo_build=true.

(For other bugs:
//chrome/browser/ui is a further 78 CPU minutes, //chrome/browser/extensions is 35 CPU minutes, //chrome/browser/renderer is 19 CPU minutes and //chrome/browser/common is 10 CPU minutes - all in all about 30% of the remaining compile time but probably also 30% of the remaining symbol conflicts )
Project Member

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

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

commit ac0250057873372001eea25b8fbb258e8397c80a
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Jan 11 18:54:33 2018

Give two PrefixTitle functions more unique names

When experimenting with jumbo builds (Chromium unity builds) in
chrome, the compiler ended up with two PrefixTitle in the same
translation unit. By using more unique names, that is not a
problem anymore.

The methods are similar and there are other methods building
titles that share similar patterns but there does not seem
to be any useful refactoring that reduces the number of methods.

Bug:  746957 
Change-Id: I82f3ce3dd88ef024bb935d09895befda3e5bf76b
Reviewed-on: https://chromium-review.googlesource.com/860461
Reviewed-by: Ahmed Fakhry <afakhry@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#528688}
[modify] https://crrev.com/ac0250057873372001eea25b8fbb258e8397c80a/chrome/browser/task_manager/providers/web_contents/prerender_task.cc
[modify] https://crrev.com/ac0250057873372001eea25b8fbb258e8397c80a/chrome/browser/task_manager/providers/web_contents/printing_task.cc

Project Member

Comment 11 by bugdroid1@chromium.org, Jan 16 2018

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

commit 598892f9523b8193f7cc033bd4b1efc23bc2073e
Author: Daniel Bratell <bratell@opera.com>
Date: Tue Jan 16 15:29:38 2018

Give two GetAllOriginsInfoCallback methods unique names

In jumbo build experiments the two very similar files
browsing_data_cache_storage_helper.cc and
browsing_data_service_worker_helper.cc were compiled in the same
translation unit and then the methods with the same name
collided.

This gives the methods unique names to avoid that.

Bug:  746957 
Change-Id: I261c61fb178178c91d3a6aac8800e21510038ed8
Reviewed-on: https://chromium-review.googlesource.com/868333
Reviewed-by: Christian Dullweber <dullweber@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#529426}
[modify] https://crrev.com/598892f9523b8193f7cc033bd4b1efc23bc2073e/chrome/browser/browsing_data/browsing_data_cache_storage_helper.cc
[modify] https://crrev.com/598892f9523b8193f7cc033bd4b1efc23bc2073e/chrome/browser/browsing_data/browsing_data_service_worker_helper.cc

Project Member

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

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

commit f8589e89ed37bc1a807d3e88556a8bab4172859a
Author: Daniel Bratell <bratell@opera.com>
Date: Tue Jan 16 15:39:08 2018

Remove erroneous UsbDevice forward declaration

There is no ::UsbDevice so forward declaring such a class confused
other code trying to import ::device::UsbDevice into the global
scope with using device::UsbDevice. This happened in jumbo build
experiments.

Bug:  746957 
Change-Id: If1073d24b9e4c302b0873e91df386039c526c49f
Reviewed-on: https://chromium-review.googlesource.com/868331
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#529429}
[modify] https://crrev.com/f8589e89ed37bc1a807d3e88556a8bab4172859a/chrome/browser/usb/web_usb_detector.h

Project Member

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

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

commit 84928c59267546303e53d021031be8ea3b4ac6de
Author: Daniel Bratell <bratell@opera.com>
Date: Tue Jan 16 21:40:34 2018

Give each ShutdownNotifierFactory class its own class name

In jumbo builds many cc files are compiled in the same translation
unit and then classes with the same name, that are normally
shielded from each other, can start clashing and causing
compilation errors.

One observation is that there are many ShutdownNotifier classes and
this patch gives each a long and unique name following the typical
naming standard.

Bug:  746957 
Change-Id: I2bcca0ac41685fdf78c491ed969b91669e520772
Reviewed-on: https://chromium-review.googlesource.com/867919
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#529504}
[modify] https://crrev.com/84928c59267546303e53d021031be8ea3b4ac6de/chrome/browser/chromeos/login/signin/token_handle_fetcher.cc
[modify] https://crrev.com/84928c59267546303e53d021031be8ea3b4ac6de/chrome/browser/media_galleries/gallery_watch_manager.cc
[modify] https://crrev.com/84928c59267546303e53d021031be8ea3b4ac6de/chrome/browser/media_galleries/media_file_system_registry.cc
[modify] https://crrev.com/84928c59267546303e53d021031be8ea3b4ac6de/chrome/browser/plugins/plugin_info_host_impl.cc
[modify] https://crrev.com/84928c59267546303e53d021031be8ea3b4ac6de/chrome/browser/prerender/prerender_message_filter.cc
[modify] https://crrev.com/84928c59267546303e53d021031be8ea3b4ac6de/chrome/browser/printing/printing_message_filter.cc
[modify] https://crrev.com/84928c59267546303e53d021031be8ea3b4ac6de/chrome/browser/ui/views/profiles/avatar_button.cc

Project Member

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

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

commit 9177403233217081cf89a7510ffa67de1503a834
Author: Daniel Bratell <bratell@opera.com>
Date: Wed Jan 17 11:04:54 2018

Replacing custom http status constants with net::HTTP_*

A couple of places defined their own kHttpResponseOk which
is a bit unnecessary when there already is a net::HTTP_OK which
the rest of the code uses.

This was noticed in jumbo build experiments because two
kHttpResponseOk ended up in the same translation unit and caused
compilation errors.

Bug:  746957 
Change-Id: Ia5cf32636bbcf8e0e1d7b8e1c161c5b4a5cdcbdf
Reviewed-on: https://chromium-review.googlesource.com/868156
Reviewed-by: dsinclair <dsinclair@chromium.org>
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#529705}
[modify] https://crrev.com/9177403233217081cf89a7510ffa67de1503a834/chrome/browser/media/webrtc/webrtc_log_uploader.cc
[modify] https://crrev.com/9177403233217081cf89a7510ffa67de1503a834/chrome/browser/tracing/crash_service_uploader.cc

Project Member

Comment 15 by bugdroid1@chromium.org, Jan 17 2018

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

commit 4bd9c8e6e51dfe55296d4c30ea965fc6c3c7f7b5
Author: Daniel Bratell <bratell@opera.com>
Date: Wed Jan 17 11:08:05 2018

Gave three kDefaultUpdatePeriod variables unique name

This is a preparatory patch for adding jumbo support to
chrome/browser. If more than one kDefaultUpdatePeriod variable
ended up in the same translation unit, they would clash and
cause compilation errors.

Bug:  746957 
Change-Id: Iff2579b15fa00648823a4a3bf890b40252856028
Reviewed-on: https://chromium-review.googlesource.com/868155
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#529706}
[modify] https://crrev.com/4bd9c8e6e51dfe55296d4c30ea965fc6c3c7f7b5/chrome/browser/media/webrtc/desktop_media_list_ash.cc
[modify] https://crrev.com/4bd9c8e6e51dfe55296d4c30ea965fc6c3c7f7b5/chrome/browser/media/webrtc/native_desktop_media_list.cc
[modify] https://crrev.com/4bd9c8e6e51dfe55296d4c30ea965fc6c3c7f7b5/chrome/browser/media/webrtc/tab_desktop_media_list.cc

Project Member

Comment 16 by bugdroid1@chromium.org, Jan 17 2018

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

commit b5a3260a0597f1c7182a65466ef639dbe6c30460
Author: Daniel Bratell <bratell@opera.com>
Date: Wed Jan 17 11:29:33 2018

Gave kUploadContentType and kCrashMultipartBoundary unique names

crash_service_uploader.cc and webrtc_log_uploader.cc are similar
and use variables named the same. If those files end up in the
same translation unit in a jumbo build, they will clash and break
the compilation.

Since there is no good place to share the two strings, this patch
gives them unique names.

Bug:  746957 
Change-Id: Ic349606814cff229529b135f3c1da11ac2279158
Reviewed-on: https://chromium-review.googlesource.com/867918
Reviewed-by: dsinclair <dsinclair@chromium.org>
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#529710}
[modify] https://crrev.com/b5a3260a0597f1c7182a65466ef639dbe6c30460/chrome/browser/media/webrtc/webrtc_log_uploader.cc
[modify] https://crrev.com/b5a3260a0597f1c7182a65466ef639dbe6c30460/chrome/browser/tracing/crash_service_uploader.cc

Project Member

Comment 17 by bugdroid1@chromium.org, Jan 17 2018

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

commit 323ae75af76977111f43aeb22362bd01d4d98a8e
Author: Daniel Bratell <bratell@opera.com>
Date: Wed Jan 17 12:00:04 2018

Fix erroneous DictionaryValue forward declaration

Claiming that there is a ::DictionaryValue is not true and
it clashes with other code doing using base::DictionaryValue.

Fix is to do the forward decalaration in the right namespace.

Bug:  746957 
Change-Id: I777dd92baaec876cd2085911e00a96c74efe58f2
Reviewed-on: https://chromium-review.googlesource.com/866843
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Matt Giuca <mgiuca@chromium.org>
Cr-Commit-Position: refs/heads/master@{#529716}
[modify] https://crrev.com/323ae75af76977111f43aeb22362bd01d4d98a8e/chrome/browser/webshare/share_service_impl.h

Project Member

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

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

commit 9804881fc22deaf55d0ba3b95fd820b6db50fef5
Author: Daniel Bratell <bratell@opera.com>
Date: Wed Jan 17 16:05:52 2018

Removed "using namespace" from a password_manager file

"using namespace" is not allowed by the coding style, and also
it is not compatible with jumbo builds. This patch removes
using namespace and gives the three symbols namespace prefixes
instead.

Bug:  746957 
Change-Id: Ibf3810287deb370ad1ac90968ba0e24020f681fb
Reviewed-on: https://chromium-review.googlesource.com/868334
Reviewed-by: Maxim Kolosovskiy <kolos@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#529757}
[modify] https://crrev.com/9804881fc22deaf55d0ba3b95fd820b6db50fef5/chrome/browser/password_manager/native_backend_gnome_x.cc

Project Member

Comment 19 by bugdroid1@chromium.org, Jan 17 2018

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

commit 5a3bf1b325eef2c848ead4edfe8e3b626b505b6d
Author: Daniel Bratell <bratell@opera.com>
Date: Wed Jan 17 17:54:55 2018

Gave two OnFetchComplete methods more descriptive names

When experimenting with jumbo (unity) builds in Chromium
two overloaded OnFetchComplete ended up in the same
translation unit and then Bind() could not determine which
one to use.

This patch gives two OnFetchComplete methods more unique and
descriptive names: OnCookieFetchComplete and
OnAppCacheInfoFetchComplete.

Bug:  746957 
Change-Id: Ie165f6dd8365257181ba7f48b9b5809043ec25f3
Reviewed-on: https://chromium-review.googlesource.com/860462
Reviewed-by: Christian Dullweber <dullweber@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#529797}
[modify] https://crrev.com/5a3bf1b325eef2c848ead4edfe8e3b626b505b6d/chrome/browser/browsing_data/browsing_data_appcache_helper.cc
[modify] https://crrev.com/5a3bf1b325eef2c848ead4edfe8e3b626b505b6d/chrome/browser/browsing_data/browsing_data_cookie_helper.cc

Project Member

Comment 20 by bugdroid1@chromium.org, Jan 18 2018

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

commit 3928871885709e643f79479bb19147486a738642
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Jan 18 10:27:01 2018

Avoid "using base::Time;" since Time is an X11 typedef

X11 headers have an unavoidable typedef that creates the
type ::Time. "using base::Time" in the global scope will
clash with that one if X11 headers are included in the
translation unit.

A few files in the chrome/browser target has "using base::Time"
and those cause issues if you try to use jumbo (unity) compilation
for chrome/browser. This patch changes the code to be more
explicit.

Bug:  746957 
Change-Id: I619c589071a01302086d81fdce35e0c779b121a0
Reviewed-on: https://chromium-review.googlesource.com/866838
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#530109}
[modify] https://crrev.com/3928871885709e643f79479bb19147486a738642/chrome/browser/browser_shutdown.cc
[modify] https://crrev.com/3928871885709e643f79479bb19147486a738642/chrome/browser/net/url_info.cc
[modify] https://crrev.com/3928871885709e643f79479bb19147486a738642/chrome/browser/profiles/off_the_record_profile_impl.cc
[modify] https://crrev.com/3928871885709e643f79479bb19147486a738642/chrome/browser/profiles/off_the_record_profile_impl.h
[modify] https://crrev.com/3928871885709e643f79479bb19147486a738642/chrome/browser/profiles/profile.h
[modify] https://crrev.com/3928871885709e643f79479bb19147486a738642/chrome/browser/profiles/profile_impl.cc
[modify] https://crrev.com/3928871885709e643f79479bb19147486a738642/chrome/browser/supervised_user/legacy/supervised_user_refresh_token_fetcher.cc
[modify] https://crrev.com/3928871885709e643f79479bb19147486a738642/chrome/browser/supervised_user/supervised_user_navigation_observer.cc

Project Member

Comment 21 by bugdroid1@chromium.org, Jan 18 2018

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

commit d97aa46c576b8ce77e001cb42ed4474cdd2aad91
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Jan 18 23:44:40 2018

Deduplicated a usb helper function, GetBrowser()

Two files both used identical helper functions, GetBrowser(). This
patch moves that function to a common utility file so that
there is only one.

This was noticed while doing jumbo compilation experiments, where
the double GetBrowser() ended up in the same translation unit.

Bug:  746957 
Change-Id: I8ceaab0d4bd08395821b296dbd1bbda13c1aef78
Reviewed-on: https://chromium-review.googlesource.com/873921
Reviewed-by: Jun Cai <juncai@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#530344}
[modify] https://crrev.com/d97aa46c576b8ce77e001cb42ed4474cdd2aad91/chrome/browser/usb/usb_chooser_controller.cc
[modify] https://crrev.com/d97aa46c576b8ce77e001cb42ed4474cdd2aad91/chrome/browser/usb/usb_util.cc
[modify] https://crrev.com/d97aa46c576b8ce77e001cb42ed4474cdd2aad91/chrome/browser/usb/usb_util.h
[modify] https://crrev.com/d97aa46c576b8ce77e001cb42ed4474cdd2aad91/chrome/browser/usb/web_usb_detector.cc

Project Member

Comment 22 by bugdroid1@chromium.org, Jan 19 2018

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

commit 569336fe4a3abce27d544f3cfcbcb57ed2baa877
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Jan 19 00:26:00 2018

Inlined a GetLocalState() method

The GetLocalState() method in cryptauth clashes with another
GetLocalState() in jumbo builds, and since there is only one
caller off this one, it might as well be inlined.

Bug:  746957 
Change-Id: I63e33c5c94930cd0dfeaa27c1421ce81c9865feb
Reviewed-on: https://chromium-review.googlesource.com/873922
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#530357}
[modify] https://crrev.com/569336fe4a3abce27d544f3cfcbcb57ed2baa877/chrome/browser/cryptauth/chrome_cryptauth_service.cc

Project Member

Comment 23 by bugdroid1@chromium.org, Jan 22 2018

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

commit 1f65ad79494a05653e7478202e221ec229d9ed01
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Jan 22 16:12:38 2018

Move and deduplicate ProfileLoadedCallback

There were 4 identical ProfileLoadedCallback methods and a TODO
to move them somewhere. This makes it one shared method in
NotificationDisplayServiceImpl.

This change was triggered by a jumbo symbo collision between these
ProfileLoadedCallbacks and one in profiles/profile_window.cc

Bug:  746957 
Change-Id: Ic30c5883d9741b6cf5829ec4fe1481e7d32655dc
Reviewed-on: https://chromium-review.googlesource.com/878222
Reviewed-by: Peter Beverloo <peter@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#530875}
[modify] https://crrev.com/1f65ad79494a05653e7478202e221ec229d9ed01/chrome/browser/notifications/notification_display_service_impl.cc
[modify] https://crrev.com/1f65ad79494a05653e7478202e221ec229d9ed01/chrome/browser/notifications/notification_display_service_impl.h
[modify] https://crrev.com/1f65ad79494a05653e7478202e221ec229d9ed01/chrome/browser/notifications/notification_platform_bridge_android.cc
[modify] https://crrev.com/1f65ad79494a05653e7478202e221ec229d9ed01/chrome/browser/notifications/notification_platform_bridge_linux.cc
[modify] https://crrev.com/1f65ad79494a05653e7478202e221ec229d9ed01/chrome/browser/notifications/notification_platform_bridge_mac.mm
[modify] https://crrev.com/1f65ad79494a05653e7478202e221ec229d9ed01/chrome/browser/notifications/notification_platform_bridge_win.cc

Project Member

Comment 24 by bugdroid1@chromium.org, Jan 23 2018

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

commit c36e2eacf849db728537db91ed6165b7bf21d650
Author: Daniel Bratell <bratell@opera.com>
Date: Tue Jan 23 20:14:27 2018

Gave two kNotificationPrefix strings unique name

In jumbo build experiments, two kNotificationPrefix variables
ended up in the same translation unit and clashed. This patch
gives those two variables unique names.

Bug:  746957 
Change-Id: I200e9cb47129a1f20b8edec91ff0ff432a3c22d9
Reviewed-on: https://chromium-review.googlesource.com/874072
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Drew Wilson <atwilson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531324}
[modify] https://crrev.com/c36e2eacf849db728537db91ed6165b7bf21d650/chrome/browser/background/background_contents_service.cc
[modify] https://crrev.com/c36e2eacf849db728537db91ed6165b7bf21d650/chrome/browser/status_icons/desktop_notification_balloon.cc

Project Member

Comment 25 by bugdroid1@chromium.org, Jan 23 2018

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

commit ea629e7d8539feb27a9792a1d63452e7230dce3a
Author: Daniel Bratell <bratell@opera.com>
Date: Tue Jan 23 20:16:32 2018

Give some kFilteredMessageClasses variables unique names

In jumbo builds multiple cc files are compiled in the same
translation unit and then they will all share the
anonymous namespace which can cause collisions if
variables have the same name. That was the case for two
kFilteredMessageClasses variables.

This renames them to:
kExtensionFilteredMessageClasses
kRenderFilteredMessageClasses

This is a followup to an equivalent change done in //content
https://chromium-review.googlesource.com/721279

Bug:  746957 
Change-Id: I959600adcc81dbd6e405c25aa0272acefc0387d9
Reviewed-on: https://chromium-review.googlesource.com/878362
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#531325}
[modify] https://crrev.com/ea629e7d8539feb27a9792a1d63452e7230dce3a/chrome/browser/renderer_host/chrome_extension_message_filter.cc
[modify] https://crrev.com/ea629e7d8539feb27a9792a1d63452e7230dce3a/chrome/browser/renderer_host/chrome_render_message_filter.cc

Project Member

Comment 26 by bugdroid1@chromium.org, Jan 26 2018

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

commit c63308436b4e0452f00bcf94866f69439cf8a182
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Jan 26 23:41:14 2018

Allow error free multiple inclusion of print_messages.h

In jumbo builds, there is no careful inclusion of headers
so files that require very careful handling of when they are
included cause problems. One such file was print_messages.h
because of an undef it did of another include guard.

This patch moves the undef one layer out of print_messages.h
so that print_messages.h itself can be included many time.

Bug:  746957 
Change-Id: Ie44fe5dbd4665cc487788fe7b6e42ebcd20cc50f
Reviewed-on: https://chromium-review.googlesource.com/878325
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532092}
[modify] https://crrev.com/c63308436b4e0452f00bcf94866f69439cf8a182/components/printing/common/print_messages.cc
[modify] https://crrev.com/c63308436b4e0452f00bcf94866f69439cf8a182/components/printing/common/print_messages.h

Project Member

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

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

commit 9f85aba0d1e4f2b7208dcac40903653c00d64622
Author: Daniel Bratell <bratell@opera.com>
Date: Sat Jan 27 07:16:26 2018

Gave two BindConnectorRequest methods unique names

In jumbo builds, many cc files share the same anonymous namespace
since they are compiled in the same translation unit. Then
methods that would otherwise not clash cause symbol collisions.

This patch renames two identical BindConnectorRequest methods.
A better fix may be to find a shared location but there is no
obvious shared location between media/casting and pepper/flash.

Bug:  746957 
Change-Id: I80b4806140720824fefd1d0019537b6fd89683da
Reviewed-on: https://chromium-review.googlesource.com/878363
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532181}
[modify] https://crrev.com/9f85aba0d1e4f2b7208dcac40903653c00d64622/chrome/browser/media/cast_transport_host_filter.cc
[modify] https://crrev.com/9f85aba0d1e4f2b7208dcac40903653c00d64622/chrome/browser/renderer_host/pepper/pepper_flash_browser_host.cc

Project Member

Comment 28 by bugdroid1@chromium.org, Jan 30 2018

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

commit 1fe0adbffa1b7b887938a0abd03dcfdec6a95e09
Author: Daniel Bratell <bratell@opera.com>
Date: Tue Jan 30 17:48:51 2018

There is both ::prefs and ::metrics::prefs so be explicit

When code inside metrics say "prefs" the default assumption is
that it means "::metrics::prefs", *if* the compiler knows that
::metrics::prefs exists. This code wants to use ::prefs which
failed in jumbo build experiments where the compiler knew
that ::metrics::prefs exists.

This patch makes the namespace lookup explicit by writing
::prefs instead of just prefs.

Higher level: The coding standard discourages sub namespaces with
the same name as a top level namespace so it is possible
::metrics::prefs should change name at some time.

Bug:  746957 
Change-Id: Ia68378e6a3e7937f5d1b2ebcc960b9111e426fe6
Reviewed-on: https://chromium-review.googlesource.com/890455
Reviewed-by: Gayane Petrosyan <gayane@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#532934}
[modify] https://crrev.com/1fe0adbffa1b7b887938a0abd03dcfdec6a95e09/chrome/browser/metrics/tab_stats_data_store.cc
[modify] https://crrev.com/1fe0adbffa1b7b887938a0abd03dcfdec6a95e09/chrome/browser/metrics/tab_stats_tracker.cc

Project Member

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

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

commit b1dd47924e6814df6f8c2986e6f9ef16a16ca0ad
Author: Daniel Bratell <bratell@opera.com>
Date: Wed Jan 31 20:53:41 2018

Gave two tracing OnUploadComplete methods unique names

In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. Having
two methods with the same name will then result in compilation
failures.

In preparation for jumbo in chrome/browser, this patch renames
two OnUploadComplete methods. They are identical so an alternative
is to find a common definition for them but they are also tiny,
really just 1-2 lines of code, so it is not a big thing to have
two of them.

Bug:  746957 
Change-Id: I39835ee002fb48216211c37c4c3d047c1dff2eaa
Reviewed-on: https://chromium-review.googlesource.com/895457
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#533398}
[modify] https://crrev.com/b1dd47924e6814df6f8c2986e6f9ef16a16ca0ad/chrome/browser/tracing/background_tracing_field_trial.cc
[modify] https://crrev.com/b1dd47924e6814df6f8c2986e6f9ef16a16ca0ad/chrome/browser/tracing/navigation_tracing.cc

Project Member

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

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

commit 980932f107a644a5e0bc041f9c1dbc0cb2d14a0d
Author: Daniel Bratell <bratell@opera.com>
Date: Wed Jan 31 21:50:04 2018

Use different names for different histogram constants

In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. Having
many variables with the same name will then result in compilation
failures.

In preparation for jumbo in chrome/browser, this patch renames
some page_load_metrics constants so that they have unique names.

Bug:  746957 
Change-Id: Ibfad7c1dbb7b193a2afca5998e5265ec7f8df896
Reviewed-on: https://chromium-review.googlesource.com/895455
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Josh Karlin <jkarlin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#533427}
[modify] https://crrev.com/980932f107a644a5e0bc041f9c1dbc0cb2d14a0d/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc
[modify] https://crrev.com/980932f107a644a5e0bc041f9c1dbc0cb2d14a0d/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.h
[modify] https://crrev.com/980932f107a644a5e0bc041f9c1dbc0cb2d14a0d/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer_unittest.cc
[modify] https://crrev.com/980932f107a644a5e0bc041f9c1dbc0cb2d14a0d/chrome/browser/page_load_metrics/observers/media_page_load_metrics_observer.cc
[modify] https://crrev.com/980932f107a644a5e0bc041f9c1dbc0cb2d14a0d/chrome/browser/page_load_metrics/observers/tab_restore_page_load_metrics_observer.cc
[modify] https://crrev.com/980932f107a644a5e0bc041f9c1dbc0cb2d14a0d/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc

Project Member

Comment 31 by bugdroid1@chromium.org, Feb 1 2018

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

commit 4c8d2945a01196b305bf173c537aab830d3d1429
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Feb 01 09:24:15 2018

Giving some ssl metrics functions unique names

In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. Having
two methods with the same name will then result in compilation
failures.

In preparation for jumbo in chrome/browser, this patch renames
some functions and metrics related to ssl interstitial pages.

Bug:  746957 
Change-Id: If8218168d38a7ddae9f2fcdb09b2956018aacd8f
Reviewed-on: https://chromium-review.googlesource.com/895370
Reviewed-by: Emily Stark <estark@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#533608}
[modify] https://crrev.com/4c8d2945a01196b305bf173c537aab830d3d1429/chrome/browser/ssl/bad_clock_blocking_page.cc
[modify] https://crrev.com/4c8d2945a01196b305bf173c537aab830d3d1429/chrome/browser/ssl/captive_portal_blocking_page.cc
[modify] https://crrev.com/4c8d2945a01196b305bf173c537aab830d3d1429/chrome/browser/ssl/mitm_software_blocking_page.cc
[modify] https://crrev.com/4c8d2945a01196b305bf173c537aab830d3d1429/chrome/browser/ssl/ssl_blocking_page.cc
[modify] https://crrev.com/4c8d2945a01196b305bf173c537aab830d3d1429/chrome/browser/ssl/ssl_error_tab_helper_unittest.cc

Project Member

Comment 32 by bugdroid1@chromium.org, Feb 1 2018

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

commit fe14b0d36250eeb21b00fad4159015d2fc157118
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Feb 01 09:24:19 2018

Use different names for two settings lookup functions

In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. Having
many variables with the same name will then result in compilation
failures.

In preparation for jumbo in chrome/browser, this patch renames
two functions that fetch a DictionaryValue settings object so that
they have different names.

Bug:  746957 
Change-Id: I109751abd13397b61e2eceaccbd95decf493d0c4
Reviewed-on: https://chromium-review.googlesource.com/895368
Reviewed-by: Raymes Khoury <raymes@chromium.org>
Reviewed-by: Ben Wells <benwells@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#533609}
[modify] https://crrev.com/fe14b0d36250eeb21b00fad4159015d2fc157118/chrome/browser/banners/app_banner_settings_helper.cc
[modify] https://crrev.com/fe14b0d36250eeb21b00fad4159015d2fc157118/chrome/browser/permissions/permission_decision_auto_blocker.cc

Project Member

Comment 33 by bugdroid1@chromium.org, Feb 1 2018

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

commit 9e1ad2a7f125ca42fbca9374a6ce28c5196a2cf7
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Feb 01 09:25:21 2018

Give all the different kTrafficAnnotations unique names

In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. Having
many variables with the same name will then result in compilation
failures.

In preparation for jumbo in chrome/browser, this patch renames
all the chrome/browser kTrafficAnnotation variables so that they
don't share the same name. This is an equivalent change
to what was already done in //content a couple of months back.

Bug:  746957 
Change-Id: I4972cbb767720ac8114b9a01878df1f3ea32a735
Reviewed-on: https://chromium-review.googlesource.com/895369
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Ramin Halavati <rhalavati@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#533610}
[modify] https://crrev.com/9e1ad2a7f125ca42fbca9374a6ce28c5196a2cf7/chrome/browser/devtools/device/android_device_manager.cc
[modify] https://crrev.com/9e1ad2a7f125ca42fbca9374a6ce28c5196a2cf7/chrome/browser/devtools/device/android_web_socket.cc
[modify] https://crrev.com/9e1ad2a7f125ca42fbca9374a6ce28c5196a2cf7/chrome/browser/devtools/device/port_forwarding_controller.cc
[modify] https://crrev.com/9e1ad2a7f125ca42fbca9374a6ce28c5196a2cf7/chrome/browser/plugins/plugins_resource_service.cc
[modify] https://crrev.com/9e1ad2a7f125ca42fbca9374a6ce28c5196a2cf7/chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_fetcher_win.cc
[modify] https://crrev.com/9e1ad2a7f125ca42fbca9374a6ce28c5196a2cf7/chrome/browser/safe_browsing/incident_reporting/incident_report_uploader_impl.cc
[modify] https://crrev.com/9e1ad2a7f125ca42fbca9374a6ce28c5196a2cf7/chrome/browser/safe_browsing/notification_image_reporter.cc
[modify] https://crrev.com/9e1ad2a7f125ca42fbca9374a6ce28c5196a2cf7/chrome/browser/safe_browsing/permission_reporter.cc
[modify] https://crrev.com/9e1ad2a7f125ca42fbca9374a6ce28c5196a2cf7/chrome/browser/ssl/chrome_expect_ct_reporter.cc
[modify] https://crrev.com/9e1ad2a7f125ca42fbca9374a6ce28c5196a2cf7/chrome/browser/sync_file_system/drive_backend/sync_engine.cc
[modify] https://crrev.com/9e1ad2a7f125ca42fbca9374a6ce28c5196a2cf7/chrome/browser/ui/passwords/account_avatar_fetcher.cc

Project Member

Comment 34 by bugdroid1@chromium.org, Feb 1 2018

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

commit 7cf084df2bd4ca82ac885d4f3c021d638ff6151b
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Feb 01 18:03:46 2018

Gave three constants in feature_engagement unique names

In jumbo builds many cc files compile in the same translation
unit and then they all share the same anonymous namespace. If
two or more variables have the same name, they will cause
compilation errors and that happened with the three
kDefaultPromoShowTimeInHour constants.

As a preparatory patch to jumbo in chrome/browser this renames
those by adding a relevant prefix to each of them.

Bug:  746957 
Change-Id: If17d8103a6916c14b493e203e445208bb1b1b2d6
Reviewed-on: https://chromium-review.googlesource.com/893273
Reviewed-by: David Trainor <dtrainor@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#533728}
[modify] https://crrev.com/7cf084df2bd4ca82ac885d4f3c021d638ff6151b/chrome/browser/feature_engagement/bookmark/bookmark_tracker.cc
[modify] https://crrev.com/7cf084df2bd4ca82ac885d4f3c021d638ff6151b/chrome/browser/feature_engagement/feature_tracker.h
[modify] https://crrev.com/7cf084df2bd4ca82ac885d4f3c021d638ff6151b/chrome/browser/feature_engagement/incognito_window/incognito_window_tracker.cc
[modify] https://crrev.com/7cf084df2bd4ca82ac885d4f3c021d638ff6151b/chrome/browser/feature_engagement/new_tab/new_tab_tracker.cc

Project Member

Comment 35 by bugdroid1@chromium.org, Feb 1 2018

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

commit 257202a629efcd7ebd4da1ba0c62261fd4e0d509
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Feb 01 19:14:00 2018

Have one kMHTMLExtension constant instead of two

In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. Having
the same constant several times will then result in compilation
failures.

In preparation for jumbo in chrome/browser, this patch
deduplicates the kMHTMLExtension constant and puts it in the
utility class.

An alternative would be to use the literal string "mhtml" without
going through a constant at all.

Bug:  746957 
Change-Id: I869f15c17bcf14a633a3e0711c7e469159e3083f
Reviewed-on: https://chromium-review.googlesource.com/897944
Reviewed-by: Cathy Li <chili@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#533764}
[modify] https://crrev.com/257202a629efcd7ebd4da1ba0c62261fd4e0d509/chrome/browser/offline_pages/offline_page_mhtml_archiver.cc
[modify] https://crrev.com/257202a629efcd7ebd4da1ba0c62261fd4e0d509/chrome/browser/offline_pages/offline_page_utils.cc
[modify] https://crrev.com/257202a629efcd7ebd4da1ba0c62261fd4e0d509/chrome/browser/offline_pages/offline_page_utils.h
[modify] https://crrev.com/257202a629efcd7ebd4da1ba0c62261fd4e0d509/chrome/browser/offline_pages/prefetch/prefetch_importer_impl.cc

Project Member

Comment 36 by bugdroid1@chromium.org, Feb 1 2018

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

commit bad01d19b35ea7d11dc3e35428f071807013da08
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Feb 01 19:14:10 2018

Use different names for two offline_pages delegate classes

In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. Having
two classes with the same name will then result in compilation
failures.

In preparation for jumbo in chrome/browser, this patch renames
two classes named DefaultDelegate so that they have different names.

Bug:  746957 
Change-Id: I15cdab5fd9e51223a76d295991513e6e815e3c51
Reviewed-on: https://chromium-review.googlesource.com/897942
Reviewed-by: Cathy Li <chili@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#533765}
[modify] https://crrev.com/bad01d19b35ea7d11dc3e35428f071807013da08/chrome/browser/offline_pages/offline_page_request_job.cc
[modify] https://crrev.com/bad01d19b35ea7d11dc3e35428f071807013da08/chrome/browser/offline_pages/recent_tab_helper.cc

Project Member

Comment 37 by bugdroid1@chromium.org, Feb 1 2018

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

commit 1542245879b922323de4fdf1c2a77440dbcfab94
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Feb 01 22:46:48 2018

Use the right ref count macros for base::Bind call

chrome/browser/android/cdm/media_drm_credential_manager.cc sent
a g_browser_process->system_request_context() into a Bind call
without using any ref counting macros. That is prohibited by the
bind system but the code got away with it when the pointer
was just forward declared so that Bind didn't know that it was
a ref counted type.

In jumbo builds the compiler knew more about the return type of
g_browser_process->system_request_context() and failed to compile
because of static_asserts in bind_internal.h.

This patch adds base::Unretained() since that seems to be the
right macro for this type of value.

Bug:  746957 
Change-Id: Idfc3ad9bd6708dbc5ef4f295397d05d961595b4a
Reviewed-on: https://chromium-review.googlesource.com/897535
Reviewed-by: Chrome Cunningham <chcunningham@chromium.org>
Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#533839}
[modify] https://crrev.com/1542245879b922323de4fdf1c2a77440dbcfab94/chrome/browser/media/android/cdm/media_drm_credential_manager.cc

Project Member

Comment 38 by bugdroid1@chromium.org, Feb 1 2018

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

commit 693c0e858445f327884f76195ee2c6784bd76623
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Feb 01 23:00:43 2018

Rename some history_report functions to have unique names

In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. Having
the functions with the same names will then result in compilation
failures.

In preparation for jumbo in chrome/browser, this patch renames
a number of helper functions in chrome/browser/android/history_report
to have unique names.

An alternative would have been to make the functions static private
functions inside the classes.

Bug:  746957 
Change-Id: I2df32461d170c5411418cab78abc3020dc0a8109
Reviewed-on: https://chromium-review.googlesource.com/897536
Reviewed-by: Wei-Yin Chen (陳威尹) <wychen@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#533841}
[modify] https://crrev.com/693c0e858445f327884f76195ee2c6784bd76623/chrome/browser/android/history_report/delta_file_service.cc
[modify] https://crrev.com/693c0e858445f327884f76195ee2c6784bd76623/chrome/browser/android/history_report/usage_reports_buffer_service.cc

Project Member

Comment 39 by bugdroid1@chromium.org, Feb 2 2018

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

commit d8bf984699025cba5ae5ade78c04907921010520
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Feb 02 17:39:18 2018

Deduplicated or renamed supervised_user variables

This is a preparatory patch for jumbo compilations where several
cc files are compiled in the same translation unit. Then you get
compilation errors if they all define their own kNumRetries and
kBackoffPolicy, kApiPath and so on.

This patch gives the 5 different kNumRetries variables and 3
different kBackoffPolicy variables in chrome/browser
their own name. It also renames kApiPath, kApiUrl and kApiScope.

It also deduplicates a kAuthorizationHeaderFormat string that had
4 different instances.

Bug:  746957 
Change-Id: Ib14ccaa372d3b28cd505b2e7cec519a5635e3173
Reviewed-on: https://chromium-review.googlesource.com/868335
Reviewed-by: David Roger <droger@chromium.org>
Reviewed-by: Paul Jensen <pauljensen@chromium.org>
Reviewed-by: Cathy Li <chili@chromium.org>
Reviewed-by: Marc Treib <treib@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#534084}
[modify] https://crrev.com/d8bf984699025cba5ae5ade78c04907921010520/chrome/browser/net/file_downloader.cc
[modify] https://crrev.com/d8bf984699025cba5ae5ade78c04907921010520/chrome/browser/offline_pages/prefetch/prefetch_background_task_handler_impl.cc
[modify] https://crrev.com/d8bf984699025cba5ae5ade78c04907921010520/chrome/browser/safe_search_api/safe_search_url_checker.cc
[modify] https://crrev.com/d8bf984699025cba5ae5ade78c04907921010520/chrome/browser/search/one_google_bar/one_google_bar_fetcher_impl.cc
[modify] https://crrev.com/d8bf984699025cba5ae5ade78c04907921010520/chrome/browser/signin/force_signin_verifier.cc
[modify] https://crrev.com/d8bf984699025cba5ae5ade78c04907921010520/chrome/browser/supervised_user/child_accounts/child_account_service.cc
[modify] https://crrev.com/d8bf984699025cba5ae5ade78c04907921010520/chrome/browser/supervised_user/child_accounts/family_info_fetcher.cc
[modify] https://crrev.com/d8bf984699025cba5ae5ade78c04907921010520/chrome/browser/supervised_user/child_accounts/permission_request_creator_apiary.cc
[modify] https://crrev.com/d8bf984699025cba5ae5ade78c04907921010520/chrome/browser/supervised_user/experimental/safe_search_url_reporter.cc
[modify] https://crrev.com/d8bf984699025cba5ae5ade78c04907921010520/chrome/browser/supervised_user/legacy/supervised_user_refresh_token_fetcher.cc
[modify] https://crrev.com/d8bf984699025cba5ae5ade78c04907921010520/chrome/browser/supervised_user/supervised_user_constants.cc
[modify] https://crrev.com/d8bf984699025cba5ae5ade78c04907921010520/chrome/browser/supervised_user/supervised_user_constants.h

Project Member

Comment 40 by bugdroid1@chromium.org, Feb 2 2018

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

commit 6b237bcf76d843f604c673b7fd4d531497eca791
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Feb 02 22:51:01 2018

Deduplicate some chrome/browser/android constants and helpers

In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. Having
the same constants and helper functions in several files will
then result in compilation failures.

In preparation for jumbo in chrome/browser, this patch
deduplicates the GetWebContents() helper function and the constants
kOMADrmMessageMimeType, kOMADrmContentMimeType,
kOMADrmRightsMimeType1, kOMADrmRightsMimeType2.

Bug:  746957 
Change-Id: Ie268f77c7a099a8de01ae08c70870306f38fc05a
Reviewed-on: https://chromium-review.googlesource.com/897612
Reviewed-by: David Trainor <dtrainor@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#534182}
[modify] https://crrev.com/6b237bcf76d843f604c673b7fd4d531497eca791/chrome/browser/android/download/download_controller.cc
[modify] https://crrev.com/6b237bcf76d843f604c673b7fd4d531497eca791/chrome/browser/android/download/download_controller_base.cc
[modify] https://crrev.com/6b237bcf76d843f604c673b7fd4d531497eca791/chrome/browser/android/download/download_controller_base.h
[modify] https://crrev.com/6b237bcf76d843f604c673b7fd4d531497eca791/chrome/browser/android/download/intercept_download_resource_throttle.cc
[modify] https://crrev.com/6b237bcf76d843f604c673b7fd4d531497eca791/chrome/browser/android/download/intercept_oma_download_navigation_throttle.cc

Project Member

Comment 41 by bugdroid1@chromium.org, Feb 2 2018

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

commit 915cbbca422fabeaab4829c46f23df29f24c67c9
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Feb 02 23:37:59 2018

Gave three OnAcquireFileAccessPermissionDone their own names

In jumbo builds many cc files compile in the same translation
unit and if that causes there to be overloaded functions,
the address operator won't know what function's address the
code refers to. This happens in base::Bind, and results
in compilation failures.

In preparation for jumbo in chrome/browser, this patch renames
the three OnAcquireFileAccessPermissionDone to
OnDownloadAcquireFileAccessPermissionDone
OnThrottleAcquireFileAccessPermissionDone
OnOfflinePageAcquireFileAccessPermissionDone

Bug:  746957 
Change-Id: I6bd1fa44e9cc1ab44d9bdb653dd8117280ff9325
Reviewed-on: https://chromium-review.googlesource.com/897943
Reviewed-by: Cathy Li <chili@chromium.org>
Reviewed-by: David Trainor <dtrainor@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#534197}
[modify] https://crrev.com/915cbbca422fabeaab4829c46f23df29f24c67c9/chrome/browser/download/chrome_download_manager_delegate.cc
[modify] https://crrev.com/915cbbca422fabeaab4829c46f23df29f24c67c9/chrome/browser/download/download_resource_throttle.cc
[modify] https://crrev.com/915cbbca422fabeaab4829c46f23df29f24c67c9/chrome/browser/offline_pages/android/downloads/offline_page_download_bridge.cc

Project Member

Comment 42 by bugdroid1@chromium.org, Feb 2 2018

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

commit b8b8e73e25a1f6bd43a5fcace16dbcceddd0bc07
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Feb 02 23:38:03 2018

Inlined some kZeroTime constants in metrics/desktop_session_duration

In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. Having
the same constant twice with the same name will then result
in compilation failures.

In preparation for jumbo in chrome/browser, this patch inlines
the constants in chrome_visibility_observer.cc and
desktop_session_duration_tracker.cc.

Bug:  746957 
Change-Id: I1b7d4b2f4a83a8a75c248f07199af6f4e72e87f5
Reviewed-on: https://chromium-review.googlesource.com/897533
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Gayane Petrosyan <gayane@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534198}
[modify] https://crrev.com/b8b8e73e25a1f6bd43a5fcace16dbcceddd0bc07/chrome/browser/metrics/desktop_session_duration/chrome_visibility_observer.cc
[modify] https://crrev.com/b8b8e73e25a1f6bd43a5fcace16dbcceddd0bc07/chrome/browser/metrics/desktop_session_duration/desktop_session_duration_tracker.cc

Project Member

Comment 43 by bugdroid1@chromium.org, Feb 3 2018

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

commit 4bb1b4ad17bd498b1652822cd99d800b7eb8d2ac
Author: Daniel Bratell <bratell@opera.com>
Date: Sat Feb 03 11:47:03 2018

Deduplicate a helper function in android/ntp

The function GetRemoteSuggestionsScheduler was defined
twice which caused some problems for jumbo build experiments.

In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. Having
a function twice (with the same name) will then result
in compilation failures.

In preparation for jumbo in chrome/browser, this patch moves the
helper function to its own file because no existing place seemed
to work fine.

Bug:  746957 
Change-Id: I581c5f3815949081989156701c3591bcbf866782
Reviewed-on: https://chromium-review.googlesource.com/897613
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Bernhard Bauer <bauerb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534269}
[modify] https://crrev.com/4bb1b4ad17bd498b1652822cd99d800b7eb8d2ac/chrome/browser/BUILD.gn
[add] https://crrev.com/4bb1b4ad17bd498b1652822cd99d800b7eb8d2ac/chrome/browser/android/ntp/get_remote_suggestions_scheduler.cc
[add] https://crrev.com/4bb1b4ad17bd498b1652822cd99d800b7eb8d2ac/chrome/browser/android/ntp/get_remote_suggestions_scheduler.h
[modify] https://crrev.com/4bb1b4ad17bd498b1652822cd99d800b7eb8d2ac/chrome/browser/android/ntp/ntp_snippets_bridge.cc
[modify] https://crrev.com/4bb1b4ad17bd498b1652822cd99d800b7eb8d2ac/chrome/browser/android/ntp/suggestions_event_reporter_bridge.cc

Project Member

Comment 44 by bugdroid1@chromium.org, Feb 5 2018

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

commit e3c10f34e94c0afa1a9cdbb1574085a94939aeca
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Feb 05 15:03:38 2018

Avoid using the Windows macro PLATFORM_UNKNOWN

windows.h defines a macro PLATFORM_UNKNOWN (value 0) which
means that if that word is used in a header, that header can't
be mixed with windows.h and still compile successfully.

This collision happened in jumbo experiment so to avoid that
this patch renames PLATFORM_UNKNOWN -> PLATFORM_UNSPECIFIED

Bug:  746957 
Change-Id: Id2045a7682d499181d5ea53c4ceb3ed98236005b
Reviewed-on: https://chromium-review.googlesource.com/901266
Reviewed-by: Peter Beverloo <peter@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#534382}
[modify] https://crrev.com/e3c10f34e94c0afa1a9cdbb1574085a94939aeca/components/gcm_driver/gcm_client.cc
[modify] https://crrev.com/e3c10f34e94c0afa1a9cdbb1574085a94939aeca/components/gcm_driver/gcm_client.h
[modify] https://crrev.com/e3c10f34e94c0afa1a9cdbb1574085a94939aeca/components/gcm_driver/gcm_client_impl.cc

Project Member

Comment 45 by bugdroid1@chromium.org, Feb 5 2018

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

commit 27676d54cbf2d49db76b9ae9cc024b12f84579f7
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Feb 05 15:27:53 2018

Renames two GetScoreDictForSettings methods

When building with jumbo many files are compiled in the
same compilation unit and then they will share the same
namespaces, including the anonymous namespace. If code
use the same names those will clash and cause compilation
errors.

There are two more or less identical GetScoreDictForSettings
methods, one in site_engagement_score.cc, one in
media_engagement_score.cc but since there is no
good place to merge them, this just renames them. These
files are now on a list to be refactored to solve the
code duplication.

Bug:  746957 
Change-Id: I8e853e761df1c8c0a31c7f2064c0d70f0610d5f8
Reviewed-on: https://chromium-review.googlesource.com/868438
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Reviewed-by: Mounir Lamouri (slow) <mlamouri@chromium.org>
Commit-Queue: Mounir Lamouri (slow) <mlamouri@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534386}
[modify] https://crrev.com/27676d54cbf2d49db76b9ae9cc024b12f84579f7/chrome/browser/engagement/site_engagement_score.cc
[modify] https://crrev.com/27676d54cbf2d49db76b9ae9cc024b12f84579f7/chrome/browser/media/media_engagement_score.cc

Project Member

Comment 46 by bugdroid1@chromium.org, Feb 5 2018

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

commit edff7d305f82de81cec263413897a7d126661da7
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Feb 05 16:08:48 2018

Remove dead enum BrowserProcess

Nobody is using the BrowserProcess enum in
chrome/browser/memory_details_win.cc and in jumbo builds
it clash with the BrowserProcess class in
chrome/browser/browser_process.h.

Bug:  746957 
Change-Id: Ib946dd4a05b36e99df070726e20672ca687393f2
Reviewed-on: https://chromium-review.googlesource.com/901602
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#534393}
[modify] https://crrev.com/edff7d305f82de81cec263413897a7d126661da7/chrome/browser/memory_details_win.cc

Project Member

Comment 47 by bugdroid1@chromium.org, Feb 5 2018

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

commit f7e931dfa16c3d945ac3f4224e18e1705439a3a9
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Feb 05 17:27:28 2018

Inlined a small media_galleries helper function

In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. With multiple
definitions of an albeit small helper function, you get collisions
and compilation errors.

In preparation for jumbo in chrome/browser, this patch inlines the
helper function GetMTPDeviceDelegate since it's small, and could be
made smaller

Bug:  746957 
Change-Id: I492606b21595c3ae5d961e260befdee2e0df0b5c
Reviewed-on: https://chromium-review.googlesource.com/901183
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#534408}
[modify] https://crrev.com/f7e931dfa16c3d945ac3f4224e18e1705439a3a9/chrome/browser/media_galleries/fileapi/device_media_async_file_util.cc
[modify] https://crrev.com/f7e931dfa16c3d945ac3f4224e18e1705439a3a9/chrome/browser/media_galleries/fileapi/mtp_device_map_service.cc
[modify] https://crrev.com/f7e931dfa16c3d945ac3f4224e18e1705439a3a9/chrome/browser/media_galleries/fileapi/mtp_device_map_service.h
[modify] https://crrev.com/f7e931dfa16c3d945ac3f4224e18e1705439a3a9/chrome/browser/media_galleries/fileapi/mtp_file_stream_reader.cc

Project Member

Comment 48 by bugdroid1@chromium.org, Feb 5 2018

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

commit 15cbb312cb2c450910ac47b878f0b15b81526a59
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Feb 05 18:01:59 2018

Deduplicate some lookup keys in the profile keys

Some lookup keys were defined multiple times which caused problems
for jumbo build experiments.

In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. Having
many variables with the same name will then result in compilation
failures.

In preparation for jumbo in chrome/browser, this patch moves the
common constants into ProfileAttributesEntry so they can be used
by all the callers.

Bug:  746957 
Change-Id: I58a4d4fb10834c50ec3dd0a6b03e10f284120bce
Reviewed-on: https://chromium-review.googlesource.com/895367
Reviewed-by: Bernhard Bauer <bauerb@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#534419}
[modify] https://crrev.com/15cbb312cb2c450910ac47b878f0b15b81526a59/chrome/browser/profiles/profile_attributes_entry.cc
[modify] https://crrev.com/15cbb312cb2c450910ac47b878f0b15b81526a59/chrome/browser/profiles/profile_attributes_entry.h
[modify] https://crrev.com/15cbb312cb2c450910ac47b878f0b15b81526a59/chrome/browser/profiles/profile_info_cache.cc

Project Member

Comment 49 by bugdroid1@chromium.org, Feb 5 2018

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

commit 880762a906ee85cbd2ca820aea15c16dd8082344
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Feb 05 18:11:08 2018

Only compile notification test code into tests

The file mock_itoastnotification.cc was compiled for the
chrome.dll binary instead of being in the test_support section
with the test-only code.

Noticed in jumbo build experiments since it ended up in a larger
obj file where the code was no longer ignored as before, ending
with a linker error because of inconsistent settings.

Bug:  746957 
Change-Id: Ibf259cb729889f26226ff87b068fa1051898b11d
Reviewed-on: https://chromium-review.googlesource.com/901627
Commit-Queue: Peter Beverloo <peter@chromium.org>
Reviewed-by: Peter Beverloo <peter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534425}
[modify] https://crrev.com/880762a906ee85cbd2ca820aea15c16dd8082344/chrome/browser/BUILD.gn

Project Member

Comment 50 by bugdroid1@chromium.org, Feb 5 2018

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

commit c64adae0b7de8cbf4b85b3b00557ddb0555ccf81
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Feb 05 18:56:08 2018

Moved some duplicate password_manager constants into shared code

chrome/browser/password_manager had a couple of trivial constants
and helper functiosn defined multiple times.

In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. With multiple
definitions of a constant, with the same name, you get compilation
errors.

In preparation for jumbo in chrome/browser, this patch moves the
constants into the shared file and it removes a random
constant for "". The code doesn't normally use constants
for "".

Bug:  746957 
Change-Id: I069e6c9e18b23ce4597c9f23aee829f85e2d17a1
Reviewed-on: https://chromium-review.googlesource.com/897814
Reviewed-by: Vadym Doroshenko <dvadym@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#534438}
[modify] https://crrev.com/c64adae0b7de8cbf4b85b3b00557ddb0555ccf81/chrome/browser/BUILD.gn
[modify] https://crrev.com/c64adae0b7de8cbf4b85b3b00557ddb0555ccf81/chrome/browser/password_manager/native_backend_gnome_x.cc
[modify] https://crrev.com/c64adae0b7de8cbf4b85b3b00557ddb0555ccf81/chrome/browser/password_manager/native_backend_libsecret.cc
[add] https://crrev.com/c64adae0b7de8cbf4b85b3b00557ddb0555ccf81/chrome/browser/password_manager/password_manager_util_linux.cc
[add] https://crrev.com/c64adae0b7de8cbf4b85b3b00557ddb0555ccf81/chrome/browser/password_manager/password_manager_util_linux.h

Project Member

Comment 51 by bugdroid1@chromium.org, Feb 6 2018

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

commit 4de2b6ed1a882c3e53a03ed05134b313f6caef83
Author: Daniel Bratell <bratell@opera.com>
Date: Tue Feb 06 17:47:19 2018

Avoid using the Windows type SpeechRecognizerState

SpeechRecognizerState is an enum in the Windows platform
API for speech so using that name for a Chrome internal
type means that you get compilation errors if the platform
headers and the internal headers end up in the same
translation unit.

In jumbo builds that could happen (and in general it can also
happen) so this renames
SpeechRecognizerState -> SpeechRecognizerStatus
to avoid that.

An alternative would be to move the enum to a different, more
limited, scope.

Bug:  746957 
Change-Id: I479470340ea2c582480b2692424a15bc6fb4581a
Reviewed-on: https://chromium-review.googlesource.com/901247
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: David Tseng <dtseng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#534709}
[modify] https://crrev.com/4de2b6ed1a882c3e53a03ed05134b313f6caef83/chrome/browser/chromeos/accessibility/dictation_chromeos.cc
[modify] https://crrev.com/4de2b6ed1a882c3e53a03ed05134b313f6caef83/chrome/browser/chromeos/accessibility/dictation_chromeos.h
[modify] https://crrev.com/4de2b6ed1a882c3e53a03ed05134b313f6caef83/chrome/browser/speech/speech_recognizer.cc
[modify] https://crrev.com/4de2b6ed1a882c3e53a03ed05134b313f6caef83/chrome/browser/speech/speech_recognizer_browsertest.cc
[modify] https://crrev.com/4de2b6ed1a882c3e53a03ed05134b313f6caef83/chrome/browser/speech/speech_recognizer_delegate.h

Comment 52 by brat...@opera.com, Feb 8 2018

Owner: brat...@opera.com
Status: Started (was: Untriaged)
Nearly done now. 3 patches to go.
Project Member

Comment 53 by bugdroid1@chromium.org, Feb 9 2018

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

commit 9a3a753efa64db4beecf5007e7253e0d909b9202
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Feb 09 12:38:50 2018

Added base::TimeToISO8601 and deleted all other instances

It is not uncommon to want to convert from base::Time to an
ISO-8601 string so instead of having half a dozen implementations,
it's better to have one implementation.

This was noticed in the jumbo project because two of
the implementations ended up in the same translation unit.

Bug:  746957 
Change-Id: Ib88832c53930aff7a6c24a0df81afc28cbbecc35
Reviewed-on: https://chromium-review.googlesource.com/895456
Reviewed-by: Yuri Wiitala <miu@chromium.org>
Reviewed-by: Yoshiki Iguchi <yoshiki@chromium.org>
Reviewed-by: Josh Karlin <jkarlin@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#535691}
[modify] https://crrev.com/9a3a753efa64db4beecf5007e7253e0d909b9202/base/BUILD.gn
[add] https://crrev.com/9a3a753efa64db4beecf5007e7253e0d909b9202/base/time/time_to_iso8601.cc
[add] https://crrev.com/9a3a753efa64db4beecf5007e7253e0d909b9202/base/time/time_to_iso8601.h
[modify] https://crrev.com/9a3a753efa64db4beecf5007e7253e0d909b9202/chrome/browser/download/download_query.cc
[modify] https://crrev.com/9a3a753efa64db4beecf5007e7253e0d909b9202/chrome/browser/extensions/api/downloads/downloads_api.cc
[modify] https://crrev.com/9a3a753efa64db4beecf5007e7253e0d909b9202/chrome/browser/ssl/chrome_expect_ct_reporter.cc
[modify] https://crrev.com/9a3a753efa64db4beecf5007e7253e0d909b9202/chrome/browser/ui/webui/snippets_internals_message_handler.cc
[modify] https://crrev.com/9a3a753efa64db4beecf5007e7253e0d909b9202/google_apis/drive/time_util.cc
[modify] https://crrev.com/9a3a753efa64db4beecf5007e7253e0d909b9202/net/http/transport_security_state.cc

Project Member

Comment 54 by bugdroid1@chromium.org, Feb 13 2018

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

commit eecc399ea2271020f2e25a8125b5ca99ff588244
Author: Daniel Bratell <bratell@opera.com>
Date: Tue Feb 13 10:31:19 2018

Renamed an enum value DEBUG->DEVTOOLS to avoid a Windows macro

Windows's ATL headers (atldef.h) does
#ifdef _DEBUG
#define DEBUG
#endif

which makes it hard to also use the word DEBUG in code that might
intentionally or accidentally be compiled with that header. This
happened in jumbo build experiments where many cc files are compiled
in the same translation unit for dramatically faster compilation.

This preparatory patch for jumbo in chrome/browser renames an
enum value from WebappInstallSource::DEBUG to
WebappInstallSource::DEVTOOLS.

Bug:  746957 
Change-Id: I128018246b94310c0cee67eaa404ab7749bd3ae0
Reviewed-on: https://chromium-review.googlesource.com/902042
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#536325}
[modify] https://crrev.com/eecc399ea2271020f2e25a8125b5ca99ff588244/chrome/browser/android/webapk/webapk_metrics.cc
[modify] https://crrev.com/eecc399ea2271020f2e25a8125b5ca99ff588244/chrome/browser/banners/app_banner_manager.cc
[modify] https://crrev.com/eecc399ea2271020f2e25a8125b5ca99ff588244/chrome/browser/banners/app_banner_manager_browsertest.cc
[modify] https://crrev.com/eecc399ea2271020f2e25a8125b5ca99ff588244/chrome/browser/installable/installable_metrics.cc
[modify] https://crrev.com/eecc399ea2271020f2e25a8125b5ca99ff588244/chrome/browser/installable/installable_metrics.h

Project Member

Comment 55 by bugdroid1@chromium.org, Feb 16 2018

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

commit 9fd722779b85240c87158efa38aba9b08c10272c
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Feb 16 11:14:15 2018

Support jumbo in chrome/browser, saving another 10% compile time

Of the code pieces left to add jumbo support to, the one which benefit
the most from jumbo is //chrome/browser:browser which goes from 90 to
10 CPU minutes, a reduction of more than a CPU hour. This is about 10%
of the total effort compiling chrome+content_shell+blink_tests.

In jumbo builds many cc files compile in the same translation unit
which reduces the time spent generating debug data and machine code
for headers, as well as the time to actually process the headers.

Bug:  746957 
Change-Id: I856f3fca1f16fa2b0738678444c455c303985962
Reviewed-on: https://chromium-review.googlesource.com/899368
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#537284}
[modify] https://crrev.com/9fd722779b85240c87158efa38aba9b08c10272c/chrome/browser/BUILD.gn

Project Member

Comment 56 by bugdroid1@chromium.org, Feb 16 2018

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

commit d84a393e71f7ddcdd99e5949eb5fc0de5765b7b2
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Feb 16 14:42:07 2018

Prevent OpenSSL and msi.h clashes by setting _MSI_NO_CRYPTO

third_party/OpenSSL and msi.h both indirectly define X509_NAME so
to have avoid them clashing, tell msi.h to not include wincypt.h where
X509_NAME is set.

This became a problem in jumbo builds where msi_util_win.cc was grouped
with code using browser_process.h which includes openssl headers.

Bug:  746957 
Change-Id: Ibaaf60ab6b5b46f9a86e90e0f5a7de9d4ecd57d7
Reviewed-on: https://chromium-review.googlesource.com/924072
Reviewed-by: Patrick Monette <pmonette@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#537304}
[modify] https://crrev.com/d84a393e71f7ddcdd99e5949eb5fc0de5765b7b2/chrome/browser/conflicts/msi_util_win.cc

Project Member

Comment 57 by bugdroid1@chromium.org, Feb 19 2018

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

commit 275d72627281b2bce6f701591ce426515b62f087
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Feb 19 11:24:01 2018

Remove unused includes that collide with OpenSSL includes.

wincrypt.h and OpenSSL can't be in the same translation unit
since both define X509_NAME. There is a crypto/wincrypt_shim.h
to use instead of wincrypt.h but in this case the includes were
left by mistake when code moved elsewhere and can be removed.

This fixes jumbo build in Windows.

TBR=pmonette@chromium.org

Bug:  746957 
Change-Id: I3fa0dadaf8e423302c353bfb7bc7e5484b58ff68
Reviewed-on: https://chromium-review.googlesource.com/924223
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#537625}
[modify] https://crrev.com/275d72627281b2bce6f701591ce426515b62f087/chrome/browser/win/enumerate_modules_model.cc

Project Member

Comment 59 by bugdroid1@chromium.org, Feb 28 2018

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

commit 0fbbdbb4a1907c279e4af7dfb428f0fbd4b86cb6
Author: Daniel Bratell <bratell@opera.com>
Date: Wed Feb 28 11:43:31 2018

Jumbo build fix: wincrypt.h and openssl clash

wincrypt.h and OpenSSL headers define the same macros (until
a later version of OpenSSL at least) so therefore we need to
include crypto/wincrypt_shim.h instead which hides the clashing
macros.

TBR=pmonette@chromium.org

Bug:  746957 
Change-Id: I629859f8e381ccadfdf9b6d811330bd8fc35be95
Reviewed-on: https://chromium-review.googlesource.com/940225
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#539791}
[modify] https://crrev.com/0fbbdbb4a1907c279e4af7dfb428f0fbd4b86cb6/chrome/browser/conflicts/module_info_util_win.cc

Project Member

Comment 60 by bugdroid1@chromium.org, Mar 13 2018

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

commit af82221aab71bdca0362815c6fb7223bcb36c9df
Author: Daniel Bratell <bratell@opera.com>
Date: Tue Mar 13 11:15:06 2018

Give some g_delegate variables unique names

In jumbo builds, many files share the same anonymous namespace
so having a file local symbol name might still clash with other
files having the same file local name.

This patch renames a couple of g_delegate variables that caused
clashes in some (non-default) jumbo configurations.

Bug:  746957 
Change-Id: I732d7223be88d4871a4ae7294377bc558a2ac2ca
Reviewed-on: https://chromium-review.googlesource.com/957727
Reviewed-by: Joshua Pawlicki <waffles@chromium.org>
Reviewed-by: Ben Wells <benwells@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#542767}
[modify] https://crrev.com/af82221aab71bdca0362815c6fb7223bcb36c9df/chrome/browser/extensions/active_tab_permission_granter.cc
[modify] https://crrev.com/af82221aab71bdca0362815c6fb7223bcb36c9df/chrome/browser/extensions/extension_tab_util.cc
[modify] https://crrev.com/af82221aab71bdca0362815c6fb7223bcb36c9df/chrome/browser/external_protocol/external_protocol_handler.cc
[modify] https://crrev.com/af82221aab71bdca0362815c6fb7223bcb36c9df/chrome/browser/update_client/chrome_update_query_params_delegate.cc

Status: Fixed (was: Started)
This was activated last year, bug left open by mistake.

Sign in to add a comment