We return with this rather omnious message when we are missing the
implementation of a CDP method:
Error: Protocol error (Target.createBrowserContext): TypeError: inst[command] is not a function:
This patch improves the error message so that debugging is not
necessary to find out which domain or command is missing.
Ideally Session.jsm and ContentProcessSession.jsm would share the
same execute() function (there's really not reason they don't),
but that involves more work.
Differential Revision: https://phabricator.services.mozilla.com/D32069
--HG--
extra : source : f3d44dbce7e3d1b529ce37b21a4d7471a918edd4
extra : histedit_source : df4d534565efb3e2babbc277a3aecce5d534ac39
We return with this rather omnious message when we are missing the
implementation of a CDP method:
Error: Protocol error (Target.createBrowserContext): TypeError: inst[command] is not a function:
This patch improves the error message so that debugging is not
necessary to find out which domain or command is missing.
Ideally Session.jsm and ContentProcessSession.jsm would share the
same execute() function (there's really not reason they don't),
but that involves more work.
Differential Revision: https://phabricator.services.mozilla.com/D32069
--HG--
extra : moz-landing-system : lando
Depends on D32538.
Not mandatory, but we have some duplicated code shared by several mochitests, maybe we could have a shared helper?
Differential Revision: https://phabricator.services.mozilla.com/D32539
--HG--
extra : moz-landing-system : lando
Debugger.Object's class isn't "Object" for DOM Elements.
Instead, it is specific to each element tag name.
Differential Revision: https://phabricator.services.mozilla.com/D31084
--HG--
extra : moz-landing-system : lando
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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