Граф коммитов

202 Коммитов

Автор SHA1 Сообщение Дата
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
Andreas Tolfsen b53e3572d1 bug 1523104: remote: fix lint problems related to new browser-chrome tests; r=ochameau 2019-03-08 16:26:48 +00:00
Andreas Tolfsen 0da7f1e100 bug 1523104: remote: update testing documentation; r=ochameau 2019-03-08 16:26:45 +00:00
Andreas Tolfsen 6d5672ceb8 bug 1523104: remote: remove head.js support file to make it possible to execute browser_cdp.js; r=ochameau 2019-03-08 16:26:44 +00:00
Andreas Tolfsen e8cac8fd7c bug 1523104: remote: fix build by removing non-existent browser_tabs.js test; r=ochameau 2019-03-08 16:26:42 +00:00
Alexandre Poirot 6dcebbcdf6 bug 1523104: remote: wait for browser element init before creating Target; r=ato 2019-03-08 16:26:41 +00:00
Alexandre Poirot 0532cfcd0c bug 1523104: remote: add a workaround in chrome-remote-interface to support server; r=ato 2019-03-08 16:26:40 +00:00
Alexandre Poirot 78fd0df59a bug 1523104: remote: add browser mochitest to test the agent via chrome-remote-interface; r=ato 2019-03-08 16:26:39 +00:00
Alexandre Poirot 5e4abd9576 bug 1523104: remote: add missing Connection.close method called from TargetListener.close; r=ato 2019-03-08 16:26:38 +00:00
Alexandre Poirot c8bc5eb7c0 bug 1523104: remote: remove unused nsIRemoteAgent interface; r=ato 2019-03-08 16:26:37 +00:00
Alexandre Poirot c9dfbc96b8 bug 1523104: remote: remove unused modules; r=ato 2019-03-08 16:26:37 +00:00
Alexandre Poirot cbe8f61b5b bug 1523104: remote: fix eslint by removing unecessary commas; r=ato 2019-03-08 16:26:36 +00:00
Alexandre Poirot d0d3d40947 bug 1523104: remote: update the demo script to use a local page; r=ato 2019-03-08 16:26:35 +00:00
Alexandre Poirot abbacc3349 bug 1523104: remote: execute the domains in the content process by piping all WebSocket request, response and events via message manager API; r=ato 2019-03-08 16:26:34 +00:00
Alexandre Poirot 326eeff61c bug 1523104: remote: stop binding JSM exported globals on this; r=ato
This was breaking the constructor name, used in Domain.jsm.
As doing

	this.Foo = class extends Domain {

creates a class with undefined constructor name.
While

	class Foo extends Domain {

creates a class with "Foo" as domain name.
2019-03-08 16:26:33 +00:00
Alexandre Poirot c8e61d4d7e bug 1523104: remote: fix exporting formatError; r=ato 2019-03-08 16:26:32 +00:00
Alexandre Poirot fc7c554a83 bug 1523104: remote: fix TargetListener export; r=ato 2019-03-08 16:26:31 +00:00
Andreas Tolfsen 1c352d20b9 bug 1523104: remote: s/despatch/dispatcher/g; r=ochameau
For the record, this is not a typo.
2019-03-08 16:26:31 +00:00
Andreas Tolfsen 42e9f6cf8b bug 1523104: remote: remove unused ChildRemoteAgent; r=ochameau 2019-03-08 16:26:30 +00:00
Andreas Tolfsen a05be00937 bug 1523104: remote: document what a Target is; r=ochameau 2019-03-08 16:26:29 +00:00
Andreas Tolfsen fa3fdbd465 bug 1523104: remote: fix eslint error; r=ochameau 2019-03-08 16:26:28 +00:00
Andreas Tolfsen c3fbe68d29 bug 1523104: remote: rename Debugger to TargetListener; r=ochameau 2019-03-08 16:26:27 +00:00
Andreas Tolfsen 94c47a5946 bug 1523104: remote: fix links to mailing list; r=ochameau 2019-03-08 16:26:26 +00:00
Andreas Tolfsen 073f382148 bug 1523104: remote: refer to correct bugzilla product in documentation; r=ochameau 2019-03-08 16:26:25 +00:00
Andreas Tolfsen fbc7478218 bug 1523104: remote: remove unused index; r=ochameau 2019-03-08 16:26:24 +00:00
Andreas Tolfsen 83f187426e bug 1523104: remote: fix incorrect directory name for documentation; r=ochameau 2019-03-08 16:26:23 +00:00
Andreas Tolfsen 67ac644cdb bug 1523104: remote: identify firefox-source-docs.m.o location absolutely; r=ochameau 2019-03-08 16:26:23 +00:00
Andreas Tolfsen 06faaf9146 bug 1523104: remote: initial cdp prototype; r=ochameau 2019-03-08 16:26:22 +00:00