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

Issue 850484 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jul 16
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 746956



Sign in to add a comment

Support jumbo in chrome/browser/extensions

Project Member Reported by brat...@opera.com, Jun 7 2018

Issue description

chrome/browser/extensions currently use about 40 CPU minutes to compile, making it 5-10% of the total jumbo compile time when compiling chrome+blink_tests+content_shell (the reference compilation).

Supporting jumbo in chrome/browser/extensions can cut that down to 14 CPU minutes (quick and dirty hack) and maybe even less.

 

Comment 1 by brat...@opera.com, Jun 7 2018

Blocking: 746956

Comment 2 by brat...@opera.com, Jun 8 2018

Owner: osc...@opera.com
Project Member

Comment 3 by bugdroid1@chromium.org, Jun 11 2018

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

commit 7716401d9f3fe45aa9928105e2e6a0a288c059c1
Author: oscarjohansson <oscarj@opera.com>
Date: Mon Jun 11 07:00:11 2018

Remove conflicting namespace declarations

In Jumbo builds the namespace declarations such as "keys", "helpers" and
others conflict. The are named the same in multiple files since they
have the same purpose, but with Jumbo this is no longer appropriate.
The declarations that conflict are removed.

Bug:  850484 
Change-Id: I62246ebe303f1cdcabb2c21312eef4c6d4a7d92a
Reviewed-on: https://chromium-review.googlesource.com/1090916
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#565937}
[modify] https://crrev.com/7716401d9f3fe45aa9928105e2e6a0a288c059c1/chrome/browser/extensions/api/bookmarks/bookmark_api_helpers.cc
[modify] https://crrev.com/7716401d9f3fe45aa9928105e2e6a0a288c059c1/chrome/browser/extensions/api/bookmarks/bookmarks_api.cc
[modify] https://crrev.com/7716401d9f3fe45aa9928105e2e6a0a288c059c1/chrome/browser/extensions/api/content_settings/content_settings_api.cc
[modify] https://crrev.com/7716401d9f3fe45aa9928105e2e6a0a288c059c1/chrome/browser/extensions/api/content_settings/content_settings_store.cc
[modify] https://crrev.com/7716401d9f3fe45aa9928105e2e6a0a288c059c1/chrome/browser/extensions/api/context_menus/context_menus_api.cc
[modify] https://crrev.com/7716401d9f3fe45aa9928105e2e6a0a288c059c1/chrome/browser/extensions/api/cookies/cookies_api.cc
[modify] https://crrev.com/7716401d9f3fe45aa9928105e2e6a0a288c059c1/chrome/browser/extensions/api/cookies/cookies_helpers.cc
[modify] https://crrev.com/7716401d9f3fe45aa9928105e2e6a0a288c059c1/chrome/browser/extensions/api/debugger/debugger_api.cc
[modify] https://crrev.com/7716401d9f3fe45aa9928105e2e6a0a288c059c1/chrome/browser/extensions/api/declarative_content/content_action.cc
[modify] https://crrev.com/7716401d9f3fe45aa9928105e2e6a0a288c059c1/chrome/browser/extensions/api/permissions/permissions_api.cc
[modify] https://crrev.com/7716401d9f3fe45aa9928105e2e6a0a288c059c1/chrome/browser/extensions/api/preference/preference_api.cc
[modify] https://crrev.com/7716401d9f3fe45aa9928105e2e6a0a288c059c1/chrome/browser/extensions/api/proxy/proxy_api.cc
[modify] https://crrev.com/7716401d9f3fe45aa9928105e2e6a0a288c059c1/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc
[modify] https://crrev.com/7716401d9f3fe45aa9928105e2e6a0a288c059c1/chrome/browser/extensions/api/tabs/tabs_api.cc
[modify] https://crrev.com/7716401d9f3fe45aa9928105e2e6a0a288c059c1/chrome/browser/extensions/api/tabs/windows_event_router.cc
[modify] https://crrev.com/7716401d9f3fe45aa9928105e2e6a0a288c059c1/chrome/browser/extensions/api/web_navigation/web_navigation_api.cc
[modify] https://crrev.com/7716401d9f3fe45aa9928105e2e6a0a288c059c1/chrome/browser/extensions/api/web_navigation/web_navigation_api_helpers.cc
[modify] https://crrev.com/7716401d9f3fe45aa9928105e2e6a0a288c059c1/chrome/browser/extensions/api/web_view/chrome_web_view_internal_api.cc
[modify] https://crrev.com/7716401d9f3fe45aa9928105e2e6a0a288c059c1/chrome/browser/extensions/convert_user_script.cc
[modify] https://crrev.com/7716401d9f3fe45aa9928105e2e6a0a288c059c1/chrome/browser/extensions/extension_tab_util.cc

Project Member

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

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

commit 400d639754b70e1cf43099a779d2052781f0a853
Author: Oscar Johansson <oscarj@opera.com>
Date: Mon Jun 11 14:48:20 2018

Resolve conflict for namespace "errors"

In Jumbo build, the local redefinition of the namespace
errors, for example "namespace errors = manifest_errors",
causes conflicts between files. This is resolved by removing the local
redefinition and using the full name instead.

Bug:  850484 
Change-Id: I5b8aecd3dc5b7c922bef515b82f11c5bfdf19515
Reviewed-on: https://chromium-review.googlesource.com/1095075
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#565999}
[modify] https://crrev.com/400d639754b70e1cf43099a779d2052781f0a853/chrome/browser/extensions/api/downloads/downloads_api.cc
[modify] https://crrev.com/400d639754b70e1cf43099a779d2052781f0a853/chrome/browser/extensions/api/spellcheck/spellcheck_api.cc
[modify] https://crrev.com/400d639754b70e1cf43099a779d2052781f0a853/chrome/browser/extensions/installed_loader.cc

Project Member

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

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

commit 7f4c1b9343808ee336a011fe7122d0c898e3709c
Author: Oscar Johansson <oscarj@opera.com>
Date: Tue Jun 12 06:11:58 2018

Resolve namespace conflicts in Jumbo build

When using Jumbo build, local namespaces conflict with global
namespaces. The local redefinition of namespaces, for example
"namespace bookmarks = api::bookmarks" also causes conflicts
between files. This commit removes the local
redefinitions and adds the "::" prefix when necessary.

Bug:  850484 
Change-Id: Idd8b281a0e4999c27baffe326b5de33ba2247692
Reviewed-on: https://chromium-review.googlesource.com/1094636
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#566338}
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/api/bookmarks/bookmarks_api.cc
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/api/cryptotoken_private/cryptotoken_private_api.cc
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/api/desktop_capture/desktop_capture_api.cc
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/api/history/history_api.cc
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/api/identity/identity_api.cc
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/api/identity/identity_get_auth_token_function.cc
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/api/identity/identity_launch_web_auth_flow_function.cc
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/api/identity/identity_remove_cached_auth_token_function.cc
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/api/storage/managed_value_store_cache.cc
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/api/webrtc_desktop_capture_private/webrtc_desktop_capture_private_api.cc
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/bookmark_app_helper.cc
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/chrome_content_verifier_delegate.cc
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/chrome_extensions_browser_client.cc
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/chrome_process_manager_delegate.cc
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/component_loader.cc
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/context_menu_matcher.cc
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/extension_system_impl.cc
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/extension_util.cc
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/external_install_error.cc
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/external_provider_impl.cc
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/install_signer.cc
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/install_verifier.cc
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/ntp_overridden_bubble_delegate.cc
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/startup_helper.cc
[modify] https://crrev.com/7f4c1b9343808ee336a011fe7122d0c898e3709c/chrome/browser/extensions/webstore_installer.cc

Project Member

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

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

commit 817bf01e147d2fbdeeb44ea6ef4b2b06aedd2ff2
Author: oscarjohansson <oscarj@opera.com>
Date: Tue Jun 12 07:15:02 2018

Remove using declarations in browser/extensions

In Jumbo builds the declaration "using base::Time" (also
"using base::TimeDelta") conflicts with a typedef in X11 system header.
This commit will remove the declarations and use the namespace
prefix instead.

The function CalculatePingDays in
extension_updater.cc has been renamed since a function with
the same name exists in chrome_update_client_config.cc.

Bug:  850484 
Change-Id: I67a2e6f8710f5c730344b8d47be742c72f1667c6
Reviewed-on: https://chromium-review.googlesource.com/1092693
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#566348}
[modify] https://crrev.com/817bf01e147d2fbdeeb44ea6ef4b2b06aedd2ff2/chrome/browser/extensions/activity_log/fullstream_ui_policy.cc
[modify] https://crrev.com/817bf01e147d2fbdeeb44ea6ef4b2b06aedd2ff2/chrome/browser/extensions/api/braille_display_private/braille_controller_brlapi.cc
[modify] https://crrev.com/817bf01e147d2fbdeeb44ea6ef4b2b06aedd2ff2/chrome/browser/extensions/convert_web_app.cc
[modify] https://crrev.com/817bf01e147d2fbdeeb44ea6ef4b2b06aedd2ff2/chrome/browser/extensions/updater/extension_updater.cc

Project Member

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

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

commit 9f482eae90a3ce05e36bf5e812794d05bb61c7d8
Author: Oscar Johansson <oscarj@opera.com>
Date: Tue Jun 12 22:09:48 2018

Rename constants with the same name

When building with Jumbo, unnamed namespaces gets merged.
Constants with the same name within those namespaces conflict.
This commit renames those constant to something more file
specific.

Bug:  850484 
Change-Id: If04a32cbf9ce544d852b1297f229d24d96845c59
Reviewed-on: https://chromium-review.googlesource.com/1096757
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566596}
[modify] https://crrev.com/9f482eae90a3ce05e36bf5e812794d05bb61c7d8/chrome/browser/extensions/api/dashboard_private/dashboard_private_api.cc
[modify] https://crrev.com/9f482eae90a3ce05e36bf5e812794d05bb61c7d8/chrome/browser/extensions/api/declarative_content/declarative_content_css_condition_tracker.cc
[modify] https://crrev.com/9f482eae90a3ce05e36bf5e812794d05bb61c7d8/chrome/browser/extensions/api/declarative_content/declarative_content_is_bookmarked_condition_tracker.cc
[modify] https://crrev.com/9f482eae90a3ce05e36bf5e812794d05bb61c7d8/chrome/browser/extensions/api/declarative_content/declarative_content_page_url_condition_tracker.cc
[modify] https://crrev.com/9f482eae90a3ce05e36bf5e812794d05bb61c7d8/chrome/browser/extensions/api/downloads/downloads_api.cc
[modify] https://crrev.com/9f482eae90a3ce05e36bf5e812794d05bb61c7d8/chrome/browser/extensions/api/gcm/gcm_api.cc
[modify] https://crrev.com/9f482eae90a3ce05e36bf5e812794d05bb61c7d8/chrome/browser/extensions/api/media_galleries/media_galleries_api.cc
[modify] https://crrev.com/9f482eae90a3ce05e36bf5e812794d05bb61c7d8/chrome/browser/extensions/api/messaging/native_message_process_host.cc
[modify] https://crrev.com/9f482eae90a3ce05e36bf5e812794d05bb61c7d8/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
[modify] https://crrev.com/9f482eae90a3ce05e36bf5e812794d05bb61c7d8/chrome/browser/extensions/menu_manager.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Jun 14 2018

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

commit fd130d18b177f83e04380f3c51cbf01626948cfd
Author: Oscar Johansson <oscarj@opera.com>
Date: Thu Jun 14 06:07:13 2018

Remove namespace alias (chrome/browser/extensions)

When using Jumbo build, the namespace alias Create in
/api/context_menus/context_menus_api.cc conflicts
with the function Create called from
api/desktop_capture/desktop_capture_base.cc.
This commits solves the issue by removing the namespace
alias. It also removes the namespace aliases
Update and Remove in the same file to avoid
this issue in the future.

Bug:  850484 
Change-Id: Ibdb940e153a89b7120c670e806be34fc4e95ab90
Reviewed-on: https://chromium-review.googlesource.com/1099062
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#567164}
[modify] https://crrev.com/fd130d18b177f83e04380f3c51cbf01626948cfd/chrome/browser/extensions/api/context_menus/context_menus_api.cc

Project Member

Comment 9 by bugdroid1@chromium.org, Jun 14 2018

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

commit b24ba3c7fdd8dd81fbf8b4f114bea7ac03936a8c
Author: Oscar Johansson <oscarj@opera.com>
Date: Thu Jun 14 06:07:53 2018

Resolve function and variable conflict

When using Jumbo build, there are conflicts between
dashboard_private_api.cc and webstore_private_api.cc.
The conflicts are the variable kUserCancelledError
and the function WebstoreInstallHelperResultToApiResult.
This commit solve the issues by renaming the variable and
function to something more file specific.

Bug:  850484 
Change-Id: I600a036505ef731124ac6e4c3ea2f750a50ccad5
Reviewed-on: https://chromium-review.googlesource.com/1098958
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#567165}
[modify] https://crrev.com/b24ba3c7fdd8dd81fbf8b4f114bea7ac03936a8c/chrome/browser/extensions/api/dashboard_private/dashboard_private_api.cc
[modify] https://crrev.com/b24ba3c7fdd8dd81fbf8b4f114bea7ac03936a8c/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc

Project Member

Comment 10 by bugdroid1@chromium.org, Jun 14 2018

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

commit 1b0d907420be0b74caf4e731d8e5039294e14aac
Author: Oscar Johansson <oscarj@opera.com>
Date: Thu Jun 14 06:08:18 2018

Rename g_shown in bubble delegates for Jumbo build

The function g_shown is defined in every bubble delegate.
When building using Jumbo those functions conflict with
each other. This commit fixes this by renaming the functions
to something more file specific.

Bug:  850484 
Change-Id: I9df3a8e90ed77e95649cdb734cc4d7364b5fc310
Reviewed-on: https://chromium-review.googlesource.com/1096945
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#567166}
[modify] https://crrev.com/1b0d907420be0b74caf4e731d8e5039294e14aac/chrome/browser/extensions/dev_mode_bubble_delegate.cc
[modify] https://crrev.com/1b0d907420be0b74caf4e731d8e5039294e14aac/chrome/browser/extensions/ntp_overridden_bubble_delegate.cc
[modify] https://crrev.com/1b0d907420be0b74caf4e731d8e5039294e14aac/chrome/browser/extensions/proxy_overridden_bubble_delegate.cc
[modify] https://crrev.com/1b0d907420be0b74caf4e731d8e5039294e14aac/chrome/browser/extensions/settings_api_bubble_delegate.cc
[modify] https://crrev.com/1b0d907420be0b74caf4e731d8e5039294e14aac/chrome/browser/extensions/suspicious_extension_bubble_delegate.cc

Project Member

Comment 11 by bugdroid1@chromium.org, Jun 14 2018

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

commit 5afaa927ccd5e8769ab5b99c72cd3d894eb90573
Author: Oscar Johansson <oscarj@opera.com>
Date: Thu Jun 14 06:09:09 2018

Remove using-declaration to resolve conflict

When building using Jumbo, the using-declaration
of api::webrtc_logging_private::RequestInfo
results in a conflict, since a declaration of
RequestInfo exists in both api/webrtc_logging_private.h
and api/webrtc_audio_private.h. This commit solves the
conflict by removing the using-declaration.

Bug:  850484 
Change-Id: I9bc25994cccdfd2e9ae19ecdacde06ed7780b1b2
Reviewed-on: https://chromium-review.googlesource.com/1098658
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#567167}
[modify] https://crrev.com/5afaa927ccd5e8769ab5b99c72cd3d894eb90573/chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc

Project Member

Comment 12 by bugdroid1@chromium.org, Jun 14 2018

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

commit 8d6db7132904f9742a708cad5eaaeac1d6d5aeea
Author: Oscar Johansson <oscarj@opera.com>
Date: Thu Jun 14 06:09:26 2018

Resolve member conflict in enums

In Jumbo build, the member NONE in the enum
VerifyStatus in install_verifier.cc conflicts
with the same member in the enum
Transformation inactivity_log/activity_log.cc.
This commit solves the issues by defining
VerifyStatus as a strongly typed enum.

Bug:  850484 
Change-Id: Idc3cab01b96073b20adf6fcd87e01cdf9b02a739
Reviewed-on: https://chromium-review.googlesource.com/1098664
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#567168}
[modify] https://crrev.com/8d6db7132904f9742a708cad5eaaeac1d6d5aeea/chrome/browser/extensions/install_verifier.cc

Project Member

Comment 13 by bugdroid1@chromium.org, Jun 18 2018

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

commit df0dd8fc66da30a0df6b3711097188993fa3dc42
Author: Oscar Johansson <oscarj@opera.com>
Date: Mon Jun 18 06:51:07 2018

Remove function (chrome/browser/extensions)

The function ProfileForWebContents is defined in both
extension_install_prompt_show_params.cc and
extension_install_prompt.cc. In Jumbo build this causes
a conflict. The function is replaced by a inline statement.

Bug:  850484 
Change-Id: I6e8da38fa7c90bc6b53d7c3f770daa3e158d16c2
Reviewed-on: https://chromium-review.googlesource.com/1100462
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#567940}
[modify] https://crrev.com/df0dd8fc66da30a0df6b3711097188993fa3dc42/chrome/browser/extensions/extension_install_prompt.cc
[modify] https://crrev.com/df0dd8fc66da30a0df6b3711097188993fa3dc42/chrome/browser/extensions/extension_install_prompt_show_params.cc

Project Member

Comment 14 by bugdroid1@chromium.org, Jun 18 2018

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

commit e31b7125fc82a7a199e6a3e5ea15e89e60d4418f
Author: Oscar Johansson <oscarj@opera.com>
Date: Mon Jun 18 11:13:46 2018

Enable Jumbo for chrome/browser/extension

This commit will enable Jumbo for chrome/browser/extensions.
By enabling and running Jumbo the effort of building is
reduced by 7 times (around 40 CPU minutes on the test computer).

Bug:  850484 
Change-Id: Icd42cbbf53dc58d64143c6979ba500d3ec9315c5
Reviewed-on: https://chromium-review.googlesource.com/1101017
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567971}
[modify] https://crrev.com/e31b7125fc82a7a199e6a3e5ea15e89e60d4418f/chrome/browser/extensions/BUILD.gn

Project Member

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

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

commit 852c070f1e5274146019671c150b9dc8885c99fe
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Jun 18 20:01:47 2018

Qualify |storage| namespace in some extensions code

There is both ::extensions::api::storage and ::storage so inside
extensions::api, unless you explicitly write ::storage it's unclear
what namespace is intended.

In jumbo builds, some code ended up in a translation unit where
both storage namespaces were known, so this patch adds ::
to storage to make the code explicit.

There is a code style guideline to not use namespace names that are
also top level namespace for this reason, but it's not easy to
change all extension api namespaces.

Bug:  850484 
Change-Id: I1c85fbc9dd3dc8be49d41be25f4886ec98c47926
Reviewed-on: https://chromium-review.googlesource.com/1104678
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568116}
[modify] https://crrev.com/852c070f1e5274146019671c150b9dc8885c99fe/chrome/browser/extensions/api/developer_private/developer_private_api.h

Project Member

Comment 16 by bugdroid1@chromium.org, Jun 19 2018

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

commit 0b5a207b36eec6590dca80640fabf6741ea86a60
Author: Daniel Bratell <bratell@opera.com>
Date: Tue Jun 19 16:50:12 2018

[jumbo] interface is a Windows API macro so avoid that name

interface is macro for struct in some Windows headers which
causes problems when Windows headers get exposed to code that
has named variables or functions interface. This happened
with the newly added jumbo support in chrome/browser/extensions.

Bug:  850484 
Change-Id: I5d838bad5658bfe97542b32647e182348f63c4cc
Reviewed-on: https://chromium-review.googlesource.com/1106339
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#568492}
[modify] https://crrev.com/0b5a207b36eec6590dca80640fabf6741ea86a60/chrome/browser/extensions/api/image_writer_private/image_writer_utility_client.cc
[modify] https://crrev.com/0b5a207b36eec6590dca80640fabf6741ea86a60/chrome/browser/extensions/api/media_galleries/blob_data_source_factory.cc
[modify] https://crrev.com/0b5a207b36eec6590dca80640fabf6741ea86a60/chrome/browser/extensions/api/messaging/native_messaging_host_manifest.h
[modify] https://crrev.com/0b5a207b36eec6590dca80640fabf6741ea86a60/chrome/browser/extensions/api/messaging/native_messaging_host_manifest_unittest.cc

Project Member

Comment 17 by bugdroid1@chromium.org, Jun 21 2018

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

commit 722186b0936111e2a03372dbe30847c1ea167ab9
Author: Oscar Johansson <oscarj@opera.com>
Date: Thu Jun 21 15:25:20 2018

Remove "using" to avoid namespace conflict

When building using Jumbo namespace aliases with the same
name may end up in the same unit, causing a conflict at
compilation. This commit removes "using windows" and
"using tabs" and instead call the namespace by its full
name. This is done to increase the robustness of the code.

std::unique_ptr<T>() are removed because of presubmit check
errors.

Bug:  850484 
Change-Id: I91f44728d4b54dd15213bac602176ca8736bb3cd
Reviewed-on: https://chromium-review.googlesource.com/1107633
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#569267}
[modify] https://crrev.com/722186b0936111e2a03372dbe30847c1ea167ab9/chrome/browser/extensions/api/sessions/sessions_api.cc
[modify] https://crrev.com/722186b0936111e2a03372dbe30847c1ea167ab9/chrome/browser/extensions/api/tabs/tabs_event_router.cc

Project Member

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

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

commit 64590e32a8c9d188534b4a2afd6932b77c926c04
Author: Oscar Johansson <oscarj@opera.com>
Date: Wed Jun 27 07:01:14 2018

Remove conflicting namespace declarations (jumbo)

In jumbo builds, on chrome os, the namespace redeclarations
of media_perception in:
chrome/browser/extensions/api/media_perception_private/media_perception_api_delegate_chromeos.cc
extensions/browser/api/media_perception_private/media_perception_api_manager.cc
extensions/browser/api/media_perception_private/media_perception_private_api.cc
conflict with the declaration in:
third_party/cros_system_api/dbus/service_constants.h

This commit solves the issue by removing the redeclaration of
media_perception and instead use the full name
extensions::api::media_perception_private.

Bug:  850484 
Change-Id: I5a6363ca7e305d1bd7929555f60f9e1bd3322bfc
Reviewed-on: https://chromium-review.googlesource.com/1114852
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#570680}
[modify] https://crrev.com/64590e32a8c9d188534b4a2afd6932b77c926c04/chrome/browser/extensions/api/media_perception_private/media_perception_api_delegate_chromeos.cc
[modify] https://crrev.com/64590e32a8c9d188534b4a2afd6932b77c926c04/extensions/browser/api/media_perception_private/media_perception_api_manager.cc
[modify] https://crrev.com/64590e32a8c9d188534b4a2afd6932b77c926c04/extensions/browser/api/media_perception_private/media_perception_private_api.cc

Project Member

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

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

commit 04a621ecafd3114442d3abb1f2ad07c47bf9d506
Author: Oscar Johansson <oscarj@opera.com>
Date: Wed Jun 27 07:03:17 2018

Rename local k<name> constants to be unique

When building using Jumbo unnamed namespaces gets merged
and variables with the same name conflict. This happens
when building in Chrome OS for the variables
kErrorInvalidX509Cert in:
chrome/browser/extensions/api/certificate_provider/certificate_provider_api.cc
chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.cc

This commit solves the issue by renaming the variables to
something more file specific. It also renames other variables
in the same namespace, so the naming is locally consistent.

Bug:  850484 
Change-Id: I67fc4d43785460ea5aa8fd1a08a2fd1985569117
Reviewed-on: https://chromium-review.googlesource.com/1114963
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#570682}
[modify] https://crrev.com/04a621ecafd3114442d3abb1f2ad07c47bf9d506/chrome/browser/extensions/api/certificate_provider/certificate_provider_api.cc
[modify] https://crrev.com/04a621ecafd3114442d3abb1f2ad07c47bf9d506/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.cc

Project Member

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

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

commit 75fc4425c61d981e0f000b4522125041a013f2d9
Author: Oscar Johansson <oscarj@opera.com>
Date: Thu Jun 28 07:38:31 2018

Rename local kError constants to be unique

When building using Jumbo unnamed namespaces gets merged
and variables with the same name conflict. This happens
when building in Chrome OS for the variables
kErrorNotAvailable in:
chrome/browser/extensions/api/input_ime/input_ime_api.cc
chrome/browser/extensions/api/input_ime/input_ime_api_chromeos.cc

This commit solves the issue by renaming the variables to
something more file specific. It also renames other variables
in the same namespace, so the naming is locally consistent.

Bug:  850484 
Change-Id: Id2282be73d75c76bb820c0946fc1caf09aeca8a4
Reviewed-on: https://chromium-review.googlesource.com/1116698
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#571043}
[modify] https://crrev.com/75fc4425c61d981e0f000b4522125041a013f2d9/chrome/browser/extensions/api/input_ime/input_ime_api.cc
[modify] https://crrev.com/75fc4425c61d981e0f000b4522125041a013f2d9/chrome/browser/extensions/api/input_ime/input_ime_api_chromeos.cc

Project Member

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

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

commit 1622b557ca0a80752d61490e784c2138f1518a74
Author: Oscar Johansson <oscarj@opera.com>
Date: Fri Jun 29 10:34:39 2018

Resolve LogSeverity macro/typedef conflict (browser/extensions)

LogSeverity is a typedef in base/logging.h and a macro
in the Windows header setupapi.h. When building using jumbo
this causes a conflict.

This commit solves the issue by undefining LogSeverity after importing
setupapi.h.

Bug:  850484 ,856964
Change-Id: I3e56c1a06357d8e03dbc98e01e51b18ae05e94dc
Reviewed-on: https://chromium-review.googlesource.com/1116790
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#571436}
[modify] https://crrev.com/1622b557ca0a80752d61490e784c2138f1518a74/chrome/browser/extensions/api/image_writer_private/removable_storage_provider_win.cc

Project Member

Comment 22 by bugdroid1@chromium.org, Jul 6

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

commit 50a3c7c7319a436e0acd9cf808823857bc343a39
Author: Oscar Johansson <oscarj@opera.com>
Date: Fri Jul 06 16:59:00 2018

Resolve namespace scope issue for "switches"

When building using Jumbo files gets merged.
This results in a conflict with the namespace switches in:
chrome/browser/extensions/bookmark_app_helper.cc
chrome/browser/extensions/extension_util.cc

This commit solves this by specifying that the global
namespace should be used, by adding the "::" prefix.

Bug:  850484 ,856964, 860646 
Change-Id: I6b7b8343bb66ea5c8a5796f77b85c882085f5d93
Reviewed-on: https://chromium-review.googlesource.com/1127661
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#573000}
[modify] https://crrev.com/50a3c7c7319a436e0acd9cf808823857bc343a39/chrome/browser/extensions/bookmark_app_helper.cc
[modify] https://crrev.com/50a3c7c7319a436e0acd9cf808823857bc343a39/chrome/browser/extensions/extension_util.cc

Status: Fixed (was: Untriaged)
It is now enabled and works.
Project Member

Comment 24 by bugdroid1@chromium.org, Jul 25

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

commit 456f9594fbd184f3c963dbfc8499fd874a7231ac
Author: Daniel Bratell <bratell@opera.com>
Date: Wed Jul 25 21:05:42 2018

[jumbo] Declare a template specialization before using it

A quirk in C++ is that you can't specialize a template after it
has been "used" unspecialized in a translation unit. This would
happen in jumbo builds with
ApiResourceManager<EasyUnlockPrivateConnection>::GetFactoryInstance()
which is defined in easy_unlock_private_connection.cc but used
undeclared in easy_unlock_private_api.cc.

The fix is simple, just declare the specialization before it's used
and this patch adds that declaration to
easy_unlock_private_connection.h.

Bug:  850484 
Change-Id: If5c12b67c92889a5c986b6a571d9895dea03cb6e
Reviewed-on: https://chromium-review.googlesource.com/1149860
Reviewed-by: Toni Barzic <tbarzic@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#578061}
[modify] https://crrev.com/456f9594fbd184f3c963dbfc8499fd874a7231ac/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_api.cc
[modify] https://crrev.com/456f9594fbd184f3c963dbfc8499fd874a7231ac/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_connection.h

Sign in to add a comment