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

23 Коммитов

Автор SHA1 Сообщение Дата
Henrik Skupin f18df4ec89 Bug 1593226 - [remote] Create a single context observer per content session. r=remote-protocol-reviewers,maja_zf
Domains would have created their own instance of the context observer,
which results in duplicated event listeners and observer notifications
to be registered.

This is still not ideal for the observer notifications, which should be
registered only once, but still an improvement for now. Bug 1635568 will
finally fix that.

Differential Revision: https://phabricator.services.mozilla.com/D74632
2020-05-14 14:55:36 +00:00
Henrik Skupin 06d9e227d0 Bug 1634029 - [remote] Re-organize observer modules into a single directory. r=remote-protocol-reviewers,maja_zf
To better keep track of available observer classes
it's better to have them all in the same folder.

While moving files around the patch also renames
the TabObserver module to TargetObserver, which
would allow us to add target observers for workers
in the future.

Differential Revision: https://phabricator.services.mozilla.com/D73042
2020-04-30 00:33:25 +00:00
Maja Frydrychowicz 79db5e93aa Bug 1599257 - [remote] Create one NetworkObserver per Session r=remote-protocol-reviewers,whimboo
NetworkObserver will be used by both Network and Page domains.

Differential Revision: https://phabricator.services.mozilla.com/D71655
2020-04-24 16:29:56 +00:00
Andreas Tolfsen 4ff0799afe bug 1565164: remote: rename Domains DomainCache r=remote-protocol-reviewers,whimboo
Differential Revision: https://phabricator.services.mozilla.com/D58610

--HG--
rename : remote/domains/Domains.jsm => remote/domains/DomainCache.jsm
rename : remote/test/unit/test_Domains.js => remote/test/unit/test_DomainCache.js
extra : moz-landing-system : lando
2020-01-06 09:32:11 +00:00
Alexandre Poirot f0a9475719 Bug 1563690 - Make Target class save a list of Connection rather than Session. r=remote-protocol-reviewers,jdescottes
Connection already saves the list of Session, so it is more natural
to save it only once there and instead directly close the connections
from Target. Each connection is going to cleanup all related sessions.

I also stop automatically registering the session to the connection from Session constructor,
it felt not explicit enough.

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

--HG--
extra : moz-landing-system : lando
2019-07-18 16:39:11 +00:00
Alexandre Poirot 370bc3f1f2 Bug 1563692 - Move all CDP's JSON packet handling to Connection. r=remote-protocol-reviewers,jdescottes,ato
This helps sharing a single implementation of how the JSON objects
are read and written from/to the WebSocket connection.
Also, by delegating the command calls to the Session via `Session.execute`
and expecting a promise with a resolution or rejection, we make error
handling of command calls clearer and unified.

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

--HG--
extra : moz-landing-system : lando
2019-07-11 17:45:29 +00:00
Alexandre Poirot c64c4d7ee4 Bug 1563687 - Renamed ContentProcessSession.destroy to destructor in order to match this project's conventions. r=remote-protocol-reviewers,jdescottes
Differential Revision: https://phabricator.services.mozilla.com/D37041

--HG--
extra : moz-landing-system : lando
2019-07-08 15:07:09 +00:00
Victor Porof 991b3c93c6 Bug 1561435 - Format remote/, a=automatic-formatting
# ignore-this-changeset

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

--HG--
extra : source : b793788d0f38244b33eb59ea36e2c6624dbd12c5
2019-07-05 10:56:48 +02:00
Andreas Tolfsen de8c9e85cf bug 1553317: remote: improve error message on missing method; r=remote-protocol-reviewers,ochameau CLOSED TREE
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
2019-05-27 11:39:16 +00:00
Brindusan Cristian 1f36d9b150 Backed out changeset f3d44dbce7e3 (bug 1553317) for bc failures at browser_parsable_css.js. CLOSED TREE 2019-05-27 17:51:56 +03:00
Andreas Tolfsen 26201b29a2 bug 1553317: remote: improve error message on missing method; r=remote-protocol-reviewers,ochameau
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
2019-05-27 11:39:16 +00:00
Julian Descottes 2456aa785c Bug 1535102 - Implement Page.bringToFront and introduce parent Page domain r=ato
Differential Revision: https://phabricator.services.mozilla.com/D32538

--HG--
extra : moz-landing-system : lando
2019-05-27 08:52:03 +00:00
Julian Descottes a1552ab73e Bug 1554374 - ContentProcess domains should call super.destructor r=ato
This should avoid the test failures in debug.

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

--HG--
extra : moz-landing-system : lando
2019-05-25 17:36:37 +00:00
Alexandre Poirot 25a90f109b Bug 1544445 - Implement Page.reload. r=remote-protocol-reviewers,ato
Differential Revision: https://phabricator.services.mozilla.com/D30189

--HG--
extra : moz-landing-system : lando
2019-05-07 12:52:49 +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 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
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 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 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