This manual provides information on how to develop the Chromium Updater, including tips and tricks.
NOTE: Knowledge in this section may become out-of-date as LUCI evolves quickly.
testing/buildbot/chromium.updater.jsontesting/buildbot/waterfalls.pylinfra/config/subprojects/chromium/ci/chromium.updater.starlucicfg infra\config\main.star
Each builder has a configuration that governs the GN args. The mapping is defined in file tools/mb/mb_config.pyl. Steps to update the config:
tools/mb/mb_config.pyl../mb train to update the expectations.mb tool can upload your private build target (and all the dependencies, based on build rule) to swarming server and run the target on bots. The upload may take quite some time if the target changed a lot since the last upload and/or your network is slow.
.\tools\mb\mb.bat run -v --swarmed .\out\Default updater_tests -- --gtest_filter=*Integration*
-d. Remember --no-default-dimensions is necessary to avoid dimension value conflict. Example:.\tools\mb\mb.bat run --swarmed --no-default-dimensions -d pool chromium.win.uac -d os Windows-10 .\out\Default updater_tests_system -- --gtest_filter=*Install*
mb tool know so it can correctly figure out the dependency. Example: https://crrev.com/c/3470143.TODO(crbug.com/1327486): Document how to remote into bots for debugging.
Running ninja with t clean cleans the build out directory. For example:
ninja -C out\Default chrome/updater:all -t clean
UpdaterSetup.exe --install [--system]TIP: Debugger may have trouble to find the symbols at the service side even if you add your build output directory to the symbol paths. To workaournd the issue, you can copy
updater.exe*to the versioned installation directory.
update_service_proxy.*.--server (user-level server) or --system --windows-service (system-level server). Start another debugger and attach the server process. Then set a server-side breakpoint at the place you want to debug.