bug 1533831: remote: include remote agent in default build; r=firefox-build-system-reviewers,chmanchester

The previous commit disabled the remote agent by flipping the
remote.enabled preference to false.  That prevented the remote
agent from initialising or being included in the --help message.

This patch implies --enable-cdp in the default Firefox build on Firefox
Nightly.  Firefox for Android is not supported.  This will cause
builds to include the remote agent component that lives under remote/.

Since the remote agent is disabled by default, users will first
have to set the remote.enabled preference to true in order to use it.

If you wish to explicitly opt out of including the remote agent
when building Firefox, you may do so by using the --disable-cdp
build flag in your mozconfig:

	ac_add_options --disable-cdp

Differential Revision: https://phabricator.services.mozilla.com/D27540

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Andreas Tolfsen 2019-04-24 15:18:09 +00:00
parent e3303b3d92
commit 9eab4824cb
3 changed files with 45 additions and 21 deletions

View File

@ -12,12 +12,7 @@ layer.
See https://firefox-source-docs.mozilla.org/remote/ for documentation.
The remote agent is not by default included in Firefox builds. To
build it, put this in your mozconfig:
ac_add_options --enable-cdp
This exposes a --remote-debugger flag you can use to start the
remote agent:
The remote agent is disabled by default, but can be enabled by
setting a preference before running it:
% ./mach run --setpref "remote.enabled=true" --remote-debugger

View File

@ -1,25 +1,49 @@
Building
========
The remote agent is by default not included in Firefox builds.
To build it, put this in your [mozconfig]:
ac_add_options --enable-cdp
This exposes a `--remote-debugger` flag you can use to start the
remote agent:
The remote agent is included in the default Firefox build, but
disabled by default. To expose the remote agent you can set the
`remote.enabled` preference to true before running it:
% ./mach run --setpref="remote.enabled=true" --remote-debugger
When you make changes to the XPCOM component you need to rebuild
The source code is found under `$(topsrcdir)/remote`.
Full build mode
---------------
The remote agent supports only Firefox, and is included when you
build in the usual way:
% ./mach build
When you make changes to XPCOM component files you need to rebuild
in order for the changes to take effect. The most efficient way to
do this, provided you havent touched any compiled code (C++ or Rust):
% ./mach build faster
Component files include the likes of RemoteAgent.js, RemoteAgent.manifest,
moz.build files, prefs/remote.js, and jar.mn. All the JS modules
(files ending with `.jsm`) are symlinked into the build and can be
changed without rebuilding.
Component files include the likes of command-line-handler.js,
RemoteAgent.manifest, moz.build files, prefs/remote.js, and jar.mn.
All the JS modules (files ending with `.jsm`) are symlinked into
the build and can be changed without rebuilding.
You may also opt out of building the remote agent entirely by setting
the `--disable-cdp` build flag in your [mozconfig]:
ac_add_options --disable-cdp
Artifact mode
-------------
You may also use [artifact builds] when working on the remote agent.
This fast build mode downloads pre-built components from the Mozilla
build servers, rendering local compilation unnecessary. To use
them, place this in your [mozconfig]:
ac_add_options --enable-artifact-builds
[mozconfig]: ../build/buildsystem/mozconfigs.html
[artifact builds]: https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Artifact_builds

View File

@ -919,9 +919,14 @@ add_old_configure_assignment('FT2_CFLAGS',
# See https://firefox-source-docs.mozilla.org/remote/ for more.
# The source code lives under ../remote.
option('--enable-cdp', help='{Enable|Disable} remote agent')
@depends(target, milestone)
def remote_default(target, milestone):
return target.os != 'Android' and milestone.is_nightly
@depends('--enable-cdp')
option('--disable-cdp', default=remote_default,
help='{Enable|Disable} remote agent')
@depends('--disable-cdp')
def remote(value):
if value:
return True