Commit Graph

277 Commits

Author SHA1 Message Date
Alexandre Poirot
6141376ca9 Bug 1537768 - Override add_task to translate cdp exception from head.js. r=remote-protocol-reviewers,ato
This allows improving all tests exceptions without requiring
any specific to be done in each tests.
I'm also moving a few imports to head.js to share the most into head.js.

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

--HG--
extra : moz-landing-system : lando
2019-05-02 12:00:39 +00:00
Alexandre Poirot
b45bb32493 Bug 1537768 - Simplify RemoteAgent initialization. r=remote-protocol-reviewers,ato
Start the `TabObserver` from `RemoteAgent.listen` in order to prevent
having the tests to manually start it.
Start it from `listen` instead of `init` as we do stop the `TabObserver` from
`stop` and `stop` is the reverse of `listen`, not the reverse of `init`.

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

--HG--
extra : moz-landing-system : lando
2019-05-02 12:00:37 +00:00
Alexandre Poirot
fcb2aa8735 Bug 1543099 - Implement Runtime.evaluate. r=remote-protocol-reviewers,ato
Differential Revision: https://phabricator.services.mozilla.com/D27525

--HG--
extra : moz-landing-system : lando
2019-05-02 11:55:55 +00:00
Alexandre Poirot
2731109ae0 Bug 1543099 - Split browser_runtime_executionContext into multiple functions r=remote-protocol-reviewers,ato
Differential Revision: https://phabricator.services.mozilla.com/D29385

--HG--
extra : moz-landing-system : lando
2019-05-02 10:11:40 +00:00
Alexandre Poirot
4acc49f558 Bug 1543098 - Emit executionContextDestroyed and executionContextCreated when the page goes into/out of the BF Cache. r=ato
Differential Revision: https://phabricator.services.mozilla.com/D28959

--HG--
extra : moz-landing-system : lando
2019-05-02 10:22:13 +00:00
Alexandre Poirot
292f73b2d1 Bug 1543098 - Implement Runtime.executionContextDestroyed. r=ato
Differential Revision: https://phabricator.services.mozilla.com/D27524

--HG--
extra : moz-landing-system : lando
2019-05-02 10:22:06 +00:00
Alexandre Poirot
2e7bacc0d1 Bug 1543098 - Emit executionContextCreated for existing context when calling Runtime.enable. r=ato
Differential Revision: https://phabricator.services.mozilla.com/D28958

--HG--
extra : moz-landing-system : lando
2019-05-02 10:22:04 +00:00
Alexandre Poirot
308a953c12 Bug 1543098 - Implement Runtime.executionContextCreated. r=ato
Differential Revision: https://phabricator.services.mozilla.com/D27523

--HG--
extra : moz-landing-system : lando
2019-05-02 10:21:56 +00:00
Ciure Andrei
b63cc4d20a Backed out 4 changesets (bug 1543098) for high frequency browser_runtime_executionContext.js failures CLOSED TREE
Backed out changeset a414e99fbbc8 (bug 1543098)
Backed out changeset f5645934c8ec (bug 1543098)
Backed out changeset 142fc2db9173 (bug 1543098)
Backed out changeset 0a13ac4fa9d7 (bug 1543098)
2019-05-01 14:53:50 +03:00
Alexandre Poirot
b17e090d38 Bug 1543098 - Emit executionContextDestroyed and executionContextCreated when the page goes into/out of the BF Cache. r=ato
Differential Revision: https://phabricator.services.mozilla.com/D28959

--HG--
extra : moz-landing-system : lando
2019-04-29 14:59:07 +00:00
Alexandre Poirot
518602fb41 Bug 1543098 - Implement Runtime.executionContextDestroyed. r=ato
Differential Revision: https://phabricator.services.mozilla.com/D27524

--HG--
extra : moz-landing-system : lando
2019-04-29 14:58:59 +00:00
Alexandre Poirot
d19d0f5a17 Bug 1543098 - Emit executionContextCreated for existing context when calling Runtime.enable. r=ato
Differential Revision: https://phabricator.services.mozilla.com/D28958

--HG--
extra : moz-landing-system : lando
2019-04-29 14:58:57 +00:00
Alexandre Poirot
f0c55a6dc9 Bug 1543098 - Implement Runtime.executionContextCreated. r=ato
Differential Revision: https://phabricator.services.mozilla.com/D27523

--HG--
extra : moz-landing-system : lando
2019-04-29 14:58:55 +00:00
Alexandre Poirot
ff0fe13c9f Bug 1543095 - Pass frameId to all Page events. r=ato
Differential Revision: https://phabricator.services.mozilla.com/D28957

--HG--
extra : moz-landing-system : lando
2019-04-29 13:42:55 +00:00
Alexandre Poirot
5a549b8d58 Bug 1543095 - Implement Page.frameNavigated. r=ato
Differential Revision: https://phabricator.services.mozilla.com/D27522

--HG--
extra : moz-landing-system : lando
2019-04-30 11:09:30 +00:00
Andreas Tolfsen
19ce910c3c bug 1547679: remote: disable browser-chrome tests on asan; r=remote-protocol-reviewers,ochameau
We should also disable browser-chrome tests on ASan, as some of
the leaks reported were caught by LeakSanitizer, which is run as
part of AddressSanitizer.

Follow-up from https://bugzilla.mozilla.org/show_bug.cgi?id=1547679#c3.

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

--HG--
extra : moz-landing-system : lando
2019-04-30 10:00:35 +00:00
Cosmin Sabou
cefec2692f Merge mozilla-inbound to mozilla-central. a=merge 2019-04-29 19:02:11 +03:00
Andreas Tolfsen
16d0b89fc7 bug 1547700: remote: document headless mode for M-bc tests; r=me a=doc
DONTBUILD
2019-04-29 14:24:33 +01:00
Andreas Tolfsen
254c289d96 bug 1547700: remote: simplify mochitest command; r=me a=doc
DONTBUILD
2019-04-29 14:24:08 +01:00
Andreas Tolfsen
a73b899266 bug 1547679: remote: disable all browser-chrome tests on debug; r=remote-protocol-reviewers,ochameau
Before landing the remote agent in Firefox Nightly, we had to disable
remote/test/browser/browser_cdp.js because it caused a permafailure
on debug due to a memory leak.  We thought the problem was limited
to this specific test, but over the weekend two more intermittent
leaks were discovered:

  * https://bugzilla.mozilla.org/show_bug.cgi?id=1546850
  * https://bugzilla.mozilla.org/show_bug.cgi?id=1547303

Until we have had time to investigate and plug the leak, we will
disable all the browser-chrome tests on all debug platforms.

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

--HG--
extra : moz-landing-system : lando
2019-04-29 12:50:15 +00:00
Andreas Tolfsen
09e148f159 bug 1546945: remote: disable browser_cdp.js browser-chrome test on debug; r=ochameau
As detailed in https://bugzilla.mozilla.org/show_bug.cgi?id=1546945,
there is a memory leak in the remote agent that is triggered by
code paths in the remote/test/browser/browser_cdp.js browser-chrome test.

It is possible the memory leak is related to holding onto a reference
of the XPConnect C++ object nsSocketTransportService, but this has
yet to be confirmed.

This patch disables the test in question on debug builds, where
we run reference counting leakchecks, in order to get the remote
agent enabled in default Firefox Nightly builds.

Thanks-to: Alexandre Poirot <poirot.alex@gmail.com>

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

--HG--
extra : moz-landing-system : lando
2019-04-25 18:27:05 +00:00
Gurzau Raul
71e35400ef Merge mozilla-central to autoland. a=merge CLOSED TREE 2019-04-25 19:30:38 +03:00
Andreas Tolfsen
3c8ae0e869 bug 1546722: remote: print better errors in browser chrome tests; r=yulia
We can reconstruct the CDP error and print a better error message
using RemoteAgentError.  This is better than the current output,
which in a lot of cases will be "CDP Exception: [object Object]".

A possible future improvement to this involves extending the CDP
protocol to send the individual components of the error individually,
so that we don't have to parse the string.

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

--HG--
extra : moz-landing-system : lando
2019-04-25 15:16:46 +00:00
Andreas Tolfsen
8ccafe6392 bug 1546714: remote: fix bug component mapping for remote/targets/; r=ochameau
There are two concepts of targets in CDP: the target web document,
and the Target domain.  The remote/targets/ subfolder is related
to the first, which should have bugs filed under Remote Protocol ::
Agent, covered by the preceding rule.

DONTBUILD

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

--HG--
extra : moz-landing-system : lando
2019-04-25 13:49:57 +00:00
Andreas Tolfsen
d3121dd02c bug 1546714: remote: map Remote Protocol :: {DOM, Input} bug components; r=ochameau
Patch unfortunately has to add a few domain stubs so that mach does
not complain about not finding any files associated with these new
bug components.

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

--HG--
extra : moz-landing-system : lando
2019-04-25 14:27:15 +00:00
Andreas Tolfsen
9d9634b875 bug 1546935: remote: reflect that remote agent is disabled in usage docs; r=me a=doc
DONTBUILD
2019-04-25 12:01:12 +01:00
Andreas Tolfsen
0ec47f620a bug 1546933: remote: clarify that tests are run on try; r=me a=doc
DONTBUILD
2019-04-25 11:52:53 +01:00
Andreas Tolfsen
86da122b28 bug 1546933: remote: drop unnecessary flags for ./mach test; r=me a=doc
The tests are instrumented to automatically set the remote.enabled
preference as part of their manifests. In the case of xpcshell,
it is also technically not need it as they do not trigger the
command-line-handler.js code path.

DONTBUILD
2019-04-25 11:52:52 +01:00
Bogdan Tara
7b9699da3b Backed out 2 changesets (bug 1546714) for test_mozbuild_reading.py bustages CLOSED TREE
Backed out changeset 02a67f69acd2 (bug 1546714)
Backed out changeset c29a7a2c36d6 (bug 1546714)
2019-04-25 14:15:22 +03:00
Andreas Tolfsen
b5e28c3210 bug 1546714: remote: fix bug component mapping for remote/targets/; r=ochameau
There are two concepts of targets in CDP: the target web document,
and the Target domain.  The remote/targets/ subfolder is related
to the first, which should have bugs filed under Remote Protocol ::
Agent, covered by the preceding rule.

DONTBUILD

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

--HG--
extra : moz-landing-system : lando
2019-04-25 10:33:01 +00:00
Andreas Tolfsen
e40c27877d bug 1546714: remote: map Remote Protocol :: {DOM, Input} bug components; r=ochameau
DONTBUILD

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

--HG--
extra : moz-landing-system : lando
2019-04-24 17:35:38 +00:00
Andreas Tolfsen
5107d02ac8 bug 1533831: remote: remove test_FatalError; r=ochameau
FatalError uses Services.startup.quit and this is apparently fine
to run in an xpcshell test with an optimised build, but not with
debug builds where it causes MOZ_CRASH() to be hit.

This removes test_FatalError so that we can run test_Error.js on try.

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

--HG--
extra : moz-landing-system : lando
2019-04-24 17:28:14 +00:00
Andreas Tolfsen
942eecb096 bug 1533831: remote: run bc tests as part of regular batch; r=ochameau
The remote debugger mochitest browser-chrome tests do not have to
be run in a separate subsuite.  Removing the subsuite condition
will make them appear as part of the normal M-bc* jobs on try.

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

--HG--
extra : moz-landing-system : lando
2019-04-24 17:18:14 +00:00
Andreas Tolfsen
b3dc3fc611 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
2019-04-24 17:18:22 +00:00
Andreas Tolfsen
a3273a8312 bug 1533831: remote: disable remote agent; r=ochameau
This disables the remote agent through flipping the remote.enabled
preference to false.  This will cause the help text to disappear from
--help and the RemoteAgent#init() (in remote/RemoteAgent.jsm) to fail.

We also change RemoteAgent.jsm to being loaded lazily so that it
isn't imported.

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

--HG--
extra : moz-landing-system : lando
2019-04-24 17:18:37 +00:00
Andreas Tolfsen
6625f0d1e9 bug 1533831: remote: remove browser.fission.simulate pref; r=ochameau,yulia
The browser.fission.simulate preference has been split
into two preferences: fission.frontend.simulate-events and
fission.frontend.simulate-messages.

The remote agent briefly used the child actor system from the
Firefox frontend code when we prototyped the initial remote agent,
but it no longer relies on it.  This means we can drop the reference
to browser.fission.simulate altogether.

DONTBUILD

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

--HG--
extra : moz-landing-system : lando
2019-04-24 17:18:44 +00:00
Cosmin Sabou
6e8934bb87 Backed out 4 changesets (bug 1533831) for xpcshell failures on remote/test/unit/test_Error.js. CLOSED TREE
Backed out changeset a3014b38cc5f (bug 1533831)
Backed out changeset 57a319eeed2d (bug 1533831)
Backed out changeset afcfdae88bf7 (bug 1533831)
Backed out changeset c03450df8660 (bug 1533831)
2019-04-24 19:55:51 +03:00
Andreas Tolfsen
28ce4058ed bug 1533831: remote: run bc tests as part of regular batch; r=ochameau
The remote debugger mochitest browser-chrome tests do not have to
be run in a separate subsuite.  Removing the subsuite condition
will make them appear as part of the normal M-bc* jobs on try.

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

--HG--
extra : moz-landing-system : lando
2019-04-24 15:18:28 +00:00
Andreas Tolfsen
9eab4824cb 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
2019-04-24 15:18:09 +00:00
Andreas Tolfsen
e3303b3d92 bug 1533831: remote: disable remote agent; r=ochameau
This disables the remote agent through flipping the remote.enabled
preference to false.  This will cause the help text to disappear from
--help and the RemoteAgent#init() (in remote/RemoteAgent.jsm) to fail.

We also change RemoteAgent.jsm to being loaded lazily so that it
isn't imported.

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

--HG--
extra : moz-landing-system : lando
2019-04-24 15:18:02 +00:00
Andreas Tolfsen
5d69ffdef8 bug 1533831: remote: remove browser.fission.simulate pref; r=ochameau,yulia
The browser.fission.simulate preference has been split
into two preferences: fission.frontend.simulate-events and
fission.frontend.simulate-messages.

The remote agent briefly used the child actor system from the
Firefox frontend code when we prototyped the initial remote agent,
but it no longer relies on it.  This means we can drop the reference
to browser.fission.simulate altogether.

DONTBUILD

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

--HG--
extra : moz-landing-system : lando
2019-04-24 15:17:50 +00:00
Andreas Tolfsen
888b647600 bug 1546385: remote: listen for target to connect sooner; r=ochameau
TabManager.addTab(), and consequently gBrowser.addTab(), causes
tabs to open before Target#createTarget() gets time to install an
listener for a new target.

Since targets are created on the TabOpen event, we must install the
listener before we open the tab.  This has the consequence that we
cannot reliably tell where the first target that connects comes from.
For this reason, this makes a functional change to return an error
if such an eventuality should arise.

This patch fixes the failing remote/test/browser/browser_target.js
browser-chrome test.

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

--HG--
extra : moz-landing-system : lando
2019-04-24 07:45:19 +00:00
Gurzau Raul
9b30abf7c9 Backed out 4 changesets (bug 1533831) for failing at /browser/browser_target.js on a CLOSED TREE.
Backed out changeset 94fd0790781a (bug 1533831)
Backed out changeset d32384388e3d (bug 1533831)
Backed out changeset bd363475667f (bug 1533831)
Backed out changeset b818d6ca606d (bug 1533831)
2019-04-18 05:35:54 +03:00
Andreas Tolfsen
77f0eda9ee bug 1533831: remote: run bc tests as part of regular batch; r=ochameau
The remote debugger mochitest browser-chrome tests do not have to
be run in a separate subsuite.  Removing the subsuite condition
will make them appear as part of the normal M-bc* jobs on try.

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

--HG--
extra : moz-landing-system : lando
2019-04-17 17:46:04 +00:00
Andreas Tolfsen
b864268d1a 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
2019-04-17 16:41:38 +00:00
Andreas Tolfsen
6d913ac017 bug 1533831: remote: disable remote agent; r=ochameau
This disables the remote agent through flipping the remote.enabled
preference to false.  This will cause the help text to disappear from
--help and the RemoteAgent#init() (in remote/RemoteAgent.jsm) to fail.

We also change RemoteAgent.jsm to being loaded lazily so that it
isn't imported.

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

--HG--
extra : moz-landing-system : lando
2019-04-17 16:41:52 +00:00
Andreas Tolfsen
fd5a1792d6 bug 1533831: remote: remove browser.fission.simulate pref; r=ochameau,yulia
The browser.fission.simulate preference has been split
into two preferences: fission.frontend.simulate-events and
fission.frontend.simulate-messages.

The remote agent briefly used the child actor system from the
Firefox frontend code when we prototyped the initial remote agent,
but it no longer relies on it.  This means we can drop the reference
to browser.fission.simulate altogether.

DONTBUILD

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

--HG--
extra : moz-landing-system : lando
2019-04-17 16:41:29 +00:00
Andreas Tolfsen
f7c6bb254b bug 1543676: remote: avoid Preferences.jsm before first paint; r=yulia
It is illegal for any code to depend on
Preferences.jsm before first paint.  This enforced by
browser/base/content/test/performance/browser_startup.js, so we
must change remote/RemoteAgent.jsm to use an alternate mechanism
for getting at the preferences it needs.

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

--HG--
extra : moz-landing-system : lando
2019-04-15 14:41:21 +00:00
Csoregi Natalia
9b4cbfd8ef Merge mozilla-central to autoland. CLOSED TREE 2019-04-15 18:27:25 +03:00
Csoregi Natalia
1e8b9b451b Backed out changeset bfaec0e9d5d8 (bug 1542198) as per request. a=backout 2019-04-15 18:14:54 +03:00
Andreas Tolfsen
6f0a882a05 bug 1543679: remote: remove unused server files; r=ochameau,yulia
These files became redundant after we started serving WebSocket
connections from the HTTPD.

This fixes the test
browser/base/content/test/static/browser_all_files_referenced.js,
which checks for unreferenced JSMs.

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

--HG--
extra : moz-landing-system : lando
2019-04-15 14:06:25 +00:00
Andreas Tolfsen
9c97965f1c bug 1542198: remote: build tests only on --enable-tests; r=ochameau
As we don't actually build anything inside remote/test, this
shouldn't make any functional difference at all.

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

--HG--
extra : moz-landing-system : lando
2019-04-09 14:45:58 +00:00
Andreas Tolfsen
874448b445 bug 1541834: remote: drop max-len lint rule; r=ochameau
The eslint max-len rule is not enforced in the top-level eslint
config, rendering this rule (and file) unnecessary.

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

--HG--
extra : moz-landing-system : lando
2019-04-05 11:46:08 +00:00
Andreas Tolfsen
ab0b38e5c0 bug 1537775: remote: move method sanity check into Domains.splitMethod; r=ochameau
This moves the assertions related to the well-formedness of the method
from the TabSession consumer to Domains.splitMethod.  Following the
introduction of TabSession, this was missing from the superclass Session.

This also fixes the "Foo.bar.baz" test case in
remote/test/unit/test_Domains.js by removing the split() function
and instead relying on String#split() inside Domains.splitMethod.

Thanks-to: Alexandre Poirot <ochameau@mozilla.com>

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

--HG--
extra : moz-landing-system : lando
2019-04-04 09:39:28 +00:00
Andreas Tolfsen
da5a13b347 bug 1537775: remote: clarify method/domain/command terminology; r=ochameau
The remote agent currently uses "method" interchangably for the
full method string as extracted from JSON input as well as for the
function part following the first dot after the method has been split.

To avoid namespace clashes, this patch makes a distinction between
method, being the input JSON field; the first substring prior to the
dot being the domain; and the rest that follows being called the command:

	method = "<domain>.<command>"

This naming seems to be supported by chrome-remote-interface:

	https://github.com/cyrus-and/chrome-remote-interface/blob/master/lib/api.js#L32

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

--HG--
extra : moz-landing-system : lando
2019-04-04 11:35:24 +00:00
Alexandre Poirot
2a852a9ba6 Bug 1539210 - Document TabSession and Session constructor arguments. r=ato
Depends on D25578

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

--HG--
extra : moz-landing-system : lando
2019-04-04 11:29:31 +00:00
Alexandre Poirot
d26882a9f4 Bug 1539210 - Do not destroy the content process session on page unload. r=ato
A session is bound to a browsing context, not just one document.
`unload` is fired when navigating to another document. The document goes
away, but not the browsing context. So, we should keep the session up and running
when the current document is destroyed and we navigate to another URL.

Depends on D25577

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

--HG--
extra : moz-landing-system : lando
2019-04-04 11:29:29 +00:00
Alexandre Poirot
a9c172506d Bug 1539210 - Add support for Target.sendMessageToTarget and Target.receivedMessageFromTarget. r=ato
Differential Revision: https://phabricator.services.mozilla.com/D25577

--HG--
extra : moz-landing-system : lando
2019-04-04 11:29:27 +00:00
Alexandre Poirot
5cae2c807d Bug 1539221 - Register main process target on server start. r=ato
Depends on D25556

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

--HG--
rename : remote/test/browser/browser_target.js => remote/test/browser/browser_main_target.js
extra : moz-landing-system : lando
2019-04-04 11:16:27 +00:00
Alexandre Poirot
969f088056 Bug 1539221 - Fix DOMContentLoadedPromise when the document is in a state between DOMContentLoaded and load event. r=ato
Depends on D25555

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

--HG--
extra : moz-landing-system : lando
2019-04-04 11:16:25 +00:00
Alexandre Poirot
f0c68a2092 Bug 1539221 - Fix piping of errors back to the client due to missing formatError symbol. r=ato
Differential Revision: https://phabricator.services.mozilla.com/D25555

--HG--
extra : moz-landing-system : lando
2019-04-04 11:16:23 +00:00
Andreas Tolfsen
9936854ecf bug 1540684: remote: fix stray colons in error formatting; r=ochameau
Error messages contained extraneous colons that were inconsistent
with how JavaScript errors are usually formatted.

Examples of ill-formed formatting:

	FooError:

	FooError: bar:

The trailing colons should not be present in either of these cases.
Colons should only be printed when something follows.  For example:

	FooError

	FooError: bar

	FooError: bar:
		test.js:42

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

--HG--
extra : moz-landing-system : lando
2019-04-04 09:55:14 +00:00
Andreas Tolfsen
924a19a629 bug 1540684: remote: write tests for Error.jsm's current behaviour; r=ochameau
remote/Error.jsm is completely untested and that is suboptimal.
This commit adds tests for remote/Error.jsm's current behaviour.

Note that the subsequent commits make some changes to this behaviour,
but it's a conscious decision to have tests before making those
behavioural changes.

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

--HG--
extra : moz-landing-system : lando
2019-04-04 09:57:29 +00:00
Andreas Tolfsen
828d520cc2 bug 1537770: remote: default RemoteAgentError#notify() to print stack; r=ochameau
When remote/JSONHandler.jsm intercepts errors thrown during the
handling of an HTTP request, it is without except the underlying
cause of the problem you wish RemoteAgentError#notify() to give you.

Under no circumstances are you interested in where the error is re-thrown.

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

--HG--
extra : moz-landing-system : lando
2019-04-03 11:42:08 +00:00
Alexandre Poirot
0b2e8e6e9d Bug 1539213 - Emit Target.targetCreated for already-opened tabs. r=ato
When `Target.setDiscoverTargets` is called, one `Target.targetCreated` event
should be sent per already opened tab.

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

--HG--
extra : moz-landing-system : lando
2019-04-01 14:25:28 +00:00
Mark Banner
dba6983e75 Bug 1415265 - Remove now unnecessary .eslintrc.js files or entries. r=mossop
Differential Revision: https://phabricator.services.mozilla.com/D23850

--HG--
extra : moz-landing-system : lando
2019-03-28 09:38:14 +00:00
Andreas Tolfsen
818dbb7e8e bug 1553316: remote: update reference to sync communication; r=me a=doc
The remote protocol work has moved from IRC to Slack.

DONTBUILD
2019-05-21 22:48:45 +01:00
Andreea Pavel
a7cd412f0e Merge mozilla-central to mozilla-inbound. on a CLOSED TREE 2019-03-22 18:51:53 +02:00
Andreas Tolfsen
fe2449bf59 bug 1538187: remote: correct irc chatroom; r=me a=doc
DONTBUILD
2019-03-22 14:18:08 +00:00
Andreas Tolfsen
814d8ab46d bug 1538187: remote: fix hyperlinks in index; r=me a=doc
DONTBUILD
2019-03-22 14:18:07 +00:00
Andreas Tolfsen
d71a2b110c bug 1538187: remote: correct chapter title in docs; r=me a=doc
DONTBUILD
2019-03-22 14:18:07 +00:00
Alexandre Poirot
26d0c79caa Bug 1536888 - Move the remote agent to a JSM. r=ato
This will later help register the component statically in bug 1536862.
And already ease using the remote agent from other JSM files.

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

--HG--
rename : remote/RemoteAgent.js => remote/RemoteAgent.jsm
extra : moz-landing-system : lando
2019-03-22 09:46:50 +00:00
Alexandre Poirot
17165546af Bug 1536794 - Test Page.frameStoppedLoading and Page.navigatedWithinDocument. r=ato
Depends on D24222

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

--HG--
extra : moz-landing-system : lando
2019-03-21 14:23:20 +00:00
Alexandre Poirot
4decca62c1 Bug 1536794 - Add test to cover /json/version endpoint and Target domain. r=ato
Depends on D24221

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

--HG--
extra : moz-landing-system : lando
2019-03-21 14:18:03 +00:00
Alexandre Poirot
7d04b7c5e0 Bug 1536794 - Moving Target's path definition to a unique place, on Target class. r=ato
Doing this helps fixing the main target's path which is meant to be:
  /devtools/browser

Depends on D24220

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

--HG--
extra : moz-landing-system : lando
2019-03-21 14:17:30 +00:00
Alexandre Poirot
4c3f075b45 Bug 1536794 - Close httpd's Connection when closing the remote agent's server. r=ato
This fixes the browser mochitest which currently timesout when calling server.close()
It started to timeout when the patch related to websocket handshake landed.

Depends on D24219

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

--HG--
extra : moz-landing-system : lando
2019-03-21 14:17:36 +00:00
Alexandre Poirot
8f9717d1e8 Bug 1536794 - Implement a base Target class. r=ato
In this revision it only helps sharing `handle`.
But in a followup changeset, it will also help closing all the connections
and justify the `sessions` map we keep around.

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

--HG--
rename : remote/targets/MainProcessTarget.jsm => remote/targets/Target.jsm
extra : moz-landing-system : lando
2019-03-21 14:17:21 +00:00
Alexandre Poirot
17c4360455 Bug 1536890 - Remove the workaround in chrome-remote-interface now that remote agent supports websocket handshake. r=ato
Differential Revision: https://phabricator.services.mozilla.com/D24225

--HG--
extra : moz-landing-system : lando
2019-03-21 13:28:05 +00:00
Andreas Tolfsen
0d03682458 bug 1534827: remote: fix constants in transitionToLoadFlag; r=yulia
The transitionType is converted into undefined because there is a typo
in the constants.  These should be "FLAGS" rather than "FLAG".

Thanks-to: Mark Banner <standard8@mozilla.com>

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

--HG--
extra : moz-landing-system : lando
2019-03-13 14:35:57 +00:00
Andreas Tolfsen
d5fb86f134 bug 1534829: remote: map source code to bug components; r=yulia
DevTools :: Remote Agent was removed in favour of a new product,
Remote Protocol.  This corrects the file metadata mapping for the
agent.

The patch also adds mapping for new domains.  Not all of the
components exist yet, but this is tracked separately in
https://bugzilla.mozilla.org/show_bug.cgi?id=1534970.

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

--HG--
extra : moz-landing-system : lando
2019-03-13 14:03:16 +00:00
Andreas Tolfsen
8b16d7980d bug 1534247: remote: fix typos in usage docs; r=me a=doc 2019-03-12 14:30:06 +00:00
Alexandre Poirot
a7f9d31d4c Bug 1533682 - Implements empty domains used by puppeteer. r=ato
Puppetteer enable all these domains. Implement enable methods in order to prevent it from crashing on that.

Depends on D22695

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

--HG--
rename : remote/domains/ContentProcessDomains.jsm => remote/domains/content/Emulation.jsm
rename : remote/domains/ContentProcessDomains.jsm => remote/domains/content/Network.jsm
rename : remote/domains/ContentProcessDomains.jsm => remote/domains/content/Performance.jsm
rename : remote/domains/ContentProcessDomains.jsm => remote/domains/content/Runtime.jsm
rename : remote/domains/ContentProcessDomains.jsm => remote/domains/content/Security.jsm
extra : moz-landing-system : lando
2019-03-11 12:51:09 +00:00
Alexandre Poirot
2bdbc39239 Bug 1533682 - Implements more Target/Page methods/events to support puppeteer's browser.newPage. r=ato
Depends on D22694

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

--HG--
extra : moz-landing-system : lando
2019-03-11 12:50:26 +00:00
Alexandre Poirot
2e14b7808c Bug 1533682 - Implement sessions. r=ato
In order to be able to query/instantiate sub targets like remote frames, or tab targets from the MainProcessTarget,
we have to support session at the protocol layer.
This is all based on a `sessionId` attribute put on all inbound/outbound messages.

This patch will be later used, once we start instantiating sub targets.

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

--HG--
extra : moz-landing-system : lando
2019-03-11 12:48:05 +00:00
Alexandre Poirot
2d9789224a Bug 1533679 - Implement very first Target domains. r=ato
Empty methods that are necessary to make puppeteer.connect to pass without throwing.

Depends on D22692

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

--HG--
rename : remote/domains/ParentProcessDomains.jsm => remote/domains/parent/Target.jsm
extra : moz-landing-system : lando
2019-03-10 12:51:11 +00:00
Alexandre Poirot
416760c48b Bug 1533679 - Differentiate Sessions and Targets bound to a browser-element from the others. r=ato
The Session used by MainProcessTarget isn't bound to any browser-element
and so do not use any of the message manager to pipe message to the content process.
Same for Target, the MainProcessTarget doesn't expose any browsing-context-related attribute.

Depends on D22691

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

--HG--
rename : remote/sessions/Session.jsm => remote/sessions/TabSession.jsm
rename : remote/targets/Target.jsm => remote/targets/TabTarget.jsm
extra : moz-landing-system : lando
2019-03-10 12:51:09 +00:00
Alexandre Poirot
cf6ef6bab7 Bug 1533679 - Implement /json/version. r=ato
Introduces a new kind of target "main-process",
which is not bound to any particular browser-element/browsing-context.
This implements only a subtest of domains and typical won't support the "content" ones.

This will require some more work in order to acknowledge having multiple kinds of targets.
We will also have "worker", "addon" and remoted-frames which will be very similar to tabs.

Depends on D22690

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

--HG--
extra : moz-landing-system : lando
2019-03-10 12:51:49 +00:00
Alexandre Poirot
dbd2284055 Bug 1533679 - Implement Browser.close. r=ato
Depends on D22689

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

--HG--
extra : moz-landing-system : lando
2019-03-10 12:51:05 +00:00
Alexandre Poirot
5ae891545a Bug 1533679 - Print exceptions thrown by JSON handlers. r=ato
Without that, the exception is silented.

Depends on D22688

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

--HG--
extra : moz-landing-system : lando
2019-03-10 12:52:48 +00:00
Alexandre Poirot
e795d282ef Bug 1533679 - Make content process domains to inherit from specialized ContentProcessDomain class. r=ato
Remove content, docShell and chromeEventHandler attribute from base Domain class
as these fields only work for domains implemented in the content process and
attached to a browsing context/document.
For "global" domains like Target or Browser, that are not bound to any document,
these properties won't work.

Depends on D22687

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

--HG--
rename : remote/domains/Domain.jsm => remote/domains/ContentProcessDomain.jsm
extra : moz-landing-system : lando
2019-03-10 12:51:01 +00:00
Alexandre Poirot
2d957cfacd Bug 1533679 - Move session modules to a dedicated sessions folder. r=ato
This is going to help have different kind of session par target kind.

Depends on D22686

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

--HG--
rename : remote/ContentProcessSession.jsm => remote/sessions/ContentProcessSession.jsm
rename : remote/Session.jsm => remote/sessions/Session.jsm
rename : remote/frame-script.js => remote/sessions/frame-script.js
extra : moz-landing-system : lando
2019-03-10 12:50:59 +00:00
Alexandre Poirot
b87adfb2ba Bug 1533679 - Move targets modules to a dedicated targets folder. r=ato
This is going to help introduce multiple kind of targets.

Depends on D22685

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

--HG--
rename : remote/Target.jsm => remote/targets/Target.jsm
rename : remote/Targets.jsm => remote/targets/Targets.jsm
extra : moz-landing-system : lando
2019-03-10 12:50:57 +00:00
Alexandre Poirot
0b0c48c862 Bug 1533679 - Remove unused target argument passed to Domain constructor. r=ato
Depends on D22684

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

--HG--
extra : moz-landing-system : lando
2019-03-10 12:50:55 +00:00
Alexandre Poirot
102ec6e125 Bug 1533679 - Document --remote-debugger-port in usage message. r=ato
Differential Revision: https://phabricator.services.mozilla.com/D22684

--HG--
extra : moz-landing-system : lando
2019-03-10 12:50:53 +00:00
Andreas Tolfsen
080b54a26d bug 1523104: remote: fix WindowManager docs; r=me a=docs 2019-03-08 16:28:21 +00:00
Andreas Tolfsen
1c377aa0d7 bug 1523104: remote: remove unused variables; r=ochameau 2019-03-08 16:28:20 +00:00
Andreas Tolfsen
7b68bf360f bug 1523104: remote: format; r=me a=docs 2019-03-08 16:28:17 +00:00
Andreas Tolfsen
19f467e2c1 bug 1523104: remote: sort imports; r=ochameau 2019-03-08 16:28:15 +00:00
Andreas Tolfsen
924042fad6 bug 1523104: remote: drop unused functions in Browser domain; r=ochameau 2019-03-08 16:28:12 +00:00
Andreas Tolfsen
5e0907c02b bug 1523104: remote: drop unused module imports; r=ochameau 2019-03-08 16:28:11 +00:00
Andreas Tolfsen
6d6918979b bug 1523104: remote: remove unused WindowManager.isWindowIncluded; r=ochameau 2019-03-08 16:28:09 +00:00
Andreas Tolfsen
230a0c4c97 bug 1523104: remote: remove unused BrowserObserver; r=ochameau 2019-03-08 16:28:08 +00:00
Andreas Tolfsen
c01f3dece0 bug 1523104: remote: upgrade to WebSocket on existing HTTPD; r=ochameau
Rather than spinning up a separate WebSocket listener for each target, this
enables us to serve WebSocket connections from the original HTTPD that we serve
the rest of the JSON API from.
2019-03-08 16:28:07 +00:00
Andreas Tolfsen
5466e2a7cf bug 1523104: remote: add WebSocketServer.upgrade for upgrading existing httpd.js requests; r=ochameau 2019-03-08 16:28:04 +00:00
Andreas Tolfsen
09aa28daaa bug 1523104: remote: drop outdated todos; r=me 2019-03-08 16:28:03 +00:00
Andreas Tolfsen
028b0ea0a5 bug 1523104: remote: signal that transport is ready when connection is created; r=ochameau 2019-03-08 16:28:01 +00:00
Andreas Tolfsen
c889849aa3 bug 1523104: remote: self-assign id to connection; r=ochameau 2019-03-08 16:28:00 +00:00
Andreas Tolfsen
47e6d0d14d bug 1523104: remote: clarify error message when unable to start HTTPD; r=ochameau 2019-03-08 16:27:59 +00:00
Andreas Tolfsen
48136e31bd bug 1523104: remote: use fatal error when unable to start HTTPD; r=ochameau 2019-03-08 16:27:58 +00:00
Andreas Tolfsen
1cdc94f9fd bug 1523104: remote: document Session class; r=ochameau 2019-03-08 16:27:57 +00:00
Andreas Tolfsen
3d0e2a846c bug 1523104: remote: emit events when targets connect and disconnect; r=ochameau 2019-03-08 16:27:55 +00:00
Andreas Tolfsen
38cb88984d bug 1523104: remote: add Log.verbose; r=ochameau 2019-03-08 16:27:53 +00:00
Andreas Tolfsen
ad6b527dfb bug 1523104: remote: associate formatting with error prototype; r=ochameau 2019-03-08 16:27:51 +00:00
Andreas Tolfsen
83b5921a45 bug 1523104: remote: remove unsupported feature in demo; r=ochameau 2019-03-08 16:27:49 +00:00
Alexandre Poirot
94f618dfa5 bug 1523104: remote: format error packets according to puppeteer expectations; r=ato 2019-03-08 16:27:48 +00:00
Alexandre Poirot
f49412cd87 bug 1523104: remote: remove unused Target symbol from RemoteAgent; r=ato 2019-03-08 16:27:47 +00:00
Alexandre Poirot
6f3411ace5 bug 1523104: remote: correctly unregister accepted listener in TargetListener; r=ato 2019-03-08 16:27:45 +00:00
Alexandre Poirot
5ac51764c5 bug 1523104: remote: destroy the related Session when the WebSocket connection drops; r=ato 2019-03-08 16:27:43 +00:00
Alexandre Poirot
ed8224a660 bug 1523104: remote: use toolkit's event emitter; r=ato 2019-03-08 16:27:41 +00:00
Alexandre Poirot
13b4c184aa bug 1523104: remote: remove unused EventEmitter interface from Target; r=ato 2019-03-08 16:27:40 +00:00
Alexandre Poirot
73a38c3179 bug 1523104: remote: remove unused listener argument passed to Connection; r=ato 2019-03-08 16:27:39 +00:00
Alexandre Poirot
f93f68ae7d bug 1523104: remote: rename Prefs.jsm to match its exported symbol; r=ato
--HG--
rename : remote/Prefs.jsm => remote/RecommendedPreferences.jsm
2019-03-08 16:27:38 +00:00
Alexandre Poirot
5bd791efe2 bug 1523104: remote: stop emitting unused connect/disconnect events; r=ato 2019-03-08 16:27:36 +00:00
Alexandre Poirot
f1759b3885 bug 1523104: remote: remove unused informative remote.httpd.* preferences; r=ato 2019-03-08 16:27:35 +00:00
Alexandre Poirot
636c17a22e bug 1523104: remote: merge Handler into JSONHandler as we only have JSONHandlers; r=ato 2019-03-08 16:27:32 +00:00
Alexandre Poirot
4c773c706e bug 1523104: remote: rename TargetListener.connected to listening; r=ato 2019-03-08 16:27:31 +00:00
Andreas Tolfsen
2434377fda bug 1523104: remote: propagate underlying cause to superclass; r=ochameau 2019-03-08 16:27:29 +00:00
Andreas Tolfsen
d491ec6f46 bug 1523104: remote: improve error legibility somewhat; r=ochameau 2019-03-08 16:27:28 +00:00
Andreas Tolfsen
3a35f84eb8 bug 1523104: remote: refactor Domains to not extend Map and wean us off custom EventEmitter; r=ochameau 2019-03-08 16:27:25 +00:00
Andreas Tolfsen
4fb35b3d0a bug 1523104: remote: refactor Session#dispatch; r=ochameau 2019-03-08 16:27:23 +00:00
Andreas Tolfsen
748084b37b bug 1523104: remote: destruct domain instances on closing session; r=ochameau 2019-03-08 16:27:22 +00:00
Andreas Tolfsen
bb0fed23eb bug 1523104: remote: s/remote-protocol/remote/g; r=ochameau 2019-03-08 16:27:21 +00:00
Andreas Tolfsen
a91a7da5b6 bug 1523104: remote: test that method own property on domain class is function; r=ochameau 2019-03-08 16:27:19 +00:00
Andreas Tolfsen
1601819536 bug 1523104: remote: introduce MessagePromise sync primitive; r=ochameau
Makes the code slightly more pleasant to read.
2019-03-08 16:27:17 +00:00
Alexandre Poirot
8a01f77453 bug 1523104: remote: allow Domains to be implemented in either parent or content processes; r=ato 2019-03-08 16:27:15 +00:00
Alexandre Poirot
dffc508f5d bug 1523104: remote: display error message and a stack in mochitest; r=ato 2019-03-08 16:27:13 +00:00
Alexandre Poirot
ee11408b81 bug 1523104: remote: remove reference to Network domain in the test; r=ato 2019-03-08 16:27:12 +00:00
Andreas Tolfsen
f2d9920130 bug 1523104: remote: make Session#receiveMessage slightly more succinct; r=ochameau 2019-03-08 16:27:11 +00:00
Andreas Tolfsen
9251c9d493 bug 1523104: remote: fix lint errors by removing unused variables; r=ochameau 2019-03-08 16:27:09 +00:00
Andreas Tolfsen
0431233f04 bug 1523104: remote: drop protocol schema validation; r=ochameau 2019-03-08 16:27:07 +00:00
Alexandre Poirot
d43ba5f39c bug 1523104: remote: re-add browser_tabs.js test and push head.js to fix the mochitests; r=ato 2019-03-08 16:27:06 +00:00
Andreas Tolfsen
6b1300177d bug 1523104: remote: respond with 500 Internal Server Error if unable to serialise JSON; r=ochameau 2019-03-08 16:27:03 +00:00
Andreas Tolfsen
132c5fec6f bug 1523104: remote: use application/json mime type for responses; r=ochameau 2019-03-08 16:27:01 +00:00
Andreas Tolfsen
70a142fc0f bug 1523104: remote: fix IPv6 loopback hostname; r=ochameau 2019-03-08 16:27:00 +00:00
Andreas Tolfsen
01e6c6d438 bug 1523104: remote: move Targets class to separate module; r=ochameau 2019-03-08 16:26:59 +00:00
Andreas Tolfsen
b85cdb8aa9 bug 1523104: remote: release test_Session.js under CC-0; r=ochameau 2019-03-08 16:26:57 +00:00
Andreas Tolfsen
e27f7a91e8 bug 1523104: remote: contribute usage instructions; r=me a=docs 2019-03-08 16:26:55 +00:00
Andreas Tolfsen
a6fad946e5 bug 1523104: remote: mention which host it binds to by default in help text; r=ochameau 2019-03-08 16:26:52 +00:00
Andreas Tolfsen
b41837916e bug 1523104: remote: change flag from --debug to --remote-debugger; r=ochameau
Also introduces a --remote-debugging-port <port> flag for compatibility
with Chrome and Opera.
2019-03-08 16:26:51 +00:00
Andreas Tolfsen
cc8d4e0778 bug 1523104: remote: salvage some code style documentation from Marionette; r=me 2019-03-08 16:26:50 +00:00