Commit Graph
86 Commits
Author SHA1 Message Date
Alexandre Poirot a7b0d37072 Bug 949595 - [devtools] Implement bulk requests in protocol.js. r=devtools-reviewers,nchevobbe
This mimic what was only supported via legacy DevToolsClient.request() method (bug 797639).

Differential Revision: https://phabricator.services.mozilla.com/D245922
2025-05-16 00:38:46 +00:00
Alexandre Poirot 44e5012d2c Bug 1813648 - [devtools] Remove ActorClassWithSpec and all its dependencies. r=devtools-reviewers,jdescottes
Some actors weren't using any specification. They now have to pass a bare minimal spec object.
Unifying them to the regular Actor interface helps merging constructor with initialize
and instantiate all the actors without any code branch.

Differential Revision: https://phabricator.services.mozilla.com/D169359
2023-02-14 10:34:19 +00:00
Alexandre Poirot 07e6ce0083 Bug 1792848 - [devtools] Use absolute URLs to import modules in devtools/shared. r=Honza,devtools-backward-compat-reviewers,bomsy
Differential Revision: https://phabricator.services.mozilla.com/D158643
2022-10-12 15:56:22 +00:00
Julian Descottes d41ff00be9 Bug 1676974 - [devtools] Remove unused protocol/utils.js method() helper r=ochameau
Current implementation
```lang=javascript
exports.method = function(fn, spec = {}) {
  fn._methodSpec = Object.freeze(spec);
  if (spec.request) {
    Object.freeze(spec.request);
  }
  if (spec.response) {
    Object.freeze(spec.response);
  }
  return fn;
};
```
https://searchfox.org/mozilla-central/rev/5a1a34953a26117f3be1a00db20c8bbdc03273d6/devtools/shared/protocol/utils.js#70-79

The helper method() in protocol/utils.js is only called from two methods:
- actorBridge (never used in the codebase)
- actorBridgeWithSpec (used by a few actors)

actorBridgeWithSpec doesn't pass the second argument, so in practice, this method could be reduced to:
```lang=javascript
exports.method = function(fn) {
  fn._methodSpec = Object.freeze({});
  return fn;
};
```

`_methodSpec` is only mentioned in one other spot: https://searchfox.org/mozilla-central/rev/5a1a34953a26117f3be1a00db20c8bbdc03273d6/devtools/shared/protocol/Actor/generateActorSpec.js#27-40

But based on our coverage tooling, we never actually have a `_methodSpec` when we run this code: https://coverage.moz.tools/#view=file&revision=latest&path=devtools/shared/protocol/Actor/generateActorSpec.js

To hit it, we would have to call `generateActorSpec` directly with an actor where we used `actorBridgeWithSpec`. But we never do that, we only use it with plain JS objects in the devtools/shared/specs folder.

Consequently, this helper can be removed.

Differential Revision: https://phabricator.services.mozilla.com/D96935
2020-11-13 09:49:53 +00:00
Julian Descottes 3302013720 Bug 1654763 - [devtools] Remove implementation, tests and documentation for actorHasMethod r=rcaliman,ochameau,devtools-backward-compat-reviewers
actorhasMethod had several technical limitations making it hard to use consistently. We now removed all the call sites for this method. This changeset removes the method and all its dependencies.

Differential Revision: https://phabricator.services.mozilla.com/D95861
2020-11-06 13:50:52 +00:00
Nicolas Chevobbe 3fb22af2db Bug 1622005 - Make RootFront more protocol.js-y .r=ochameau.
This patch make it so the RootFront is created from its spec file,
like any other front.

Protocol xpcshell tests are modified to take these changes into account.

Differential Revision: https://phabricator.services.mozilla.com/D66597
2020-03-16 17:29:25 +00:00
Julian Descottes 150349d1c5 Bug 1596686 - Use absolute paths for require calls r=gl
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D58243
2019-12-27 12:23:47 +00:00
Razvan Maries 0f5ce38e4c Backed out changeset 14698fa06ab8 (bug 1596686) for causing perma fails on browser_json_refresh.js. 2019-12-27 14:01:24 +02:00
Julian Descottes 3fa1b45876 Bug 1596686 - Use absolute paths for require calls r=gl
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D58243
2019-12-27 09:09:51 +00:00
Jason Laster 698c6ed151 Bug 1560445 - Extract classes from protocol.js. r=yulia
Differential Revision: https://phabricator.services.mozilla.com/D35502
2019-06-26 15:53:20 +00:00
Alexandre Poirot 90833a0490 Bug 1465635 - Merge all target fronts with Target class. r=yulia,jdescottes
This patch makes it so that all target fronts inherits from a Target class mixin.
We are using a mixin as fronts should inherit from a custom Front class,
which is augmented with its own RDP request and events defined in its spec.
(This is done via FrontClassWithSpec(spec))

Depends on D15830

Differential Revision: https://phabricator.services.mozilla.com/D15831
2019-02-02 11:24:32 +00:00
Bogdan Tara c0cfac2f78 Backed out 8 changesets (bug 1465635) for failures on browser_canvas-actor-test-10.js, browser_target_server_compartment.js CLOSED TREE
Backed out changeset e8e363f98525 (bug 1465635)
Backed out changeset 9ec017a91e78 (bug 1465635)
Backed out changeset 11413ebfbcaf (bug 1465635)
Backed out changeset 52728b761d5d (bug 1465635)
Backed out changeset 734646bf9829 (bug 1465635)
Backed out changeset d9ae7cd34c1a (bug 1465635)
Backed out changeset 00d325ab677a (bug 1465635)
Backed out changeset a9b181f32189 (bug 1465635)
2019-01-30 18:54:05 +02:00
Alexandre Poirot 9fef388534 Bug 1465635 - Merge all target fronts with Target class. r=yulia,jdescottes
This patch makes it so that all target fronts inherits from a Target class mixin.
We are using a mixin as fronts should inherit from a custom Front class,
which is augmented with its own RDP request and events defined in its spec.
(This is done via FrontClassWithSpec(spec))

Depends on D15830

Differential Revision: https://phabricator.services.mozilla.com/D15831
2019-01-30 13:28:23 +00:00
Alexandre Poirot b70758a509 Bug 1515862 - Remove Front's form argument. r=jdescottes
Now that form argument is no longer used by any front to set its actor ID,
we can remove this argument.

Have a particular look at:
* devtools/client/shared/test/test-actor-registry.js
which was the last Front to be manually instantiated and need some tweaks,
* canvas head.js to create canvas front via getFront,
* RDM manager.js, which requires the EmulationFront to be self managed.

Depends on D17615

Differential Revision: https://phabricator.services.mozilla.com/D17616
2019-01-28 18:42:52 +00:00
Alexandre Poirot bc54a2985c Bug 1515862 - Set global and target scope front IDs from getFront helper. r=jdescottes
Ideally, formAttributeName would be a field on the prototype of each front,
but unfortunately, Firefox doesn't support ES Class's fields yet. So it is
put as an instance attribute instead.

This patch streamline the manually set actorID and the retrieval of actor ID
from root or target front's form into `getFront` helper method.
So that all the specific related to the lazy actor is now inside of this helper.
It also moves the special "this.manage(this)" to this helper.
We might be able to followup on this one and finally have only the root front
being self managed. But the initialize method makes it hard.

Note the special tweak made to devtools/client/responsive.html/manager.js
Hopefully this can be removed once the target classes are merged.

Depends on D15832

Differential Revision: https://phabricator.services.mozilla.com/D17615
2019-01-28 18:42:50 +00:00
Alexandre Poirot f0519c4b9f Bug 1515862 - Remove form passed as Front constructor. r=jdescottes
Only a couple of special cases where expecting to pass a full form object
as Front's second constructor argument.
Refactor them to ensure calling Front's form method instead in order to align
with typical protocol.js's behavior.

Depends on D17614

Differential Revision: https://phabricator.services.mozilla.com/D15832
2019-01-28 18:42:48 +00:00
Alexandre Poirot ada6cda619 Bug 1515862 - Remove detail feature from protocol.js. r=jdescottes
This feature is only used by node and domrulestyle actors and that, only for actor ID.
Instead of this, support this "pass only actor ID rather than full form" feature
in a more dedicated way.

We might followup on that to clarify/simplify doing this: passing only the actor ID
rather than its full form.

Depends on D17613

Differential Revision: https://phabricator.services.mozilla.com/D17614
2019-01-28 18:42:46 +00:00
Alexandre Poirot 9c8fe6f7ad Bug 1515862 - Remove unecessary usages of actorid checks in actor and front's form method. r=jdescottes
Remove all actorid checks in actors and fronts as we never pass a defined `detail` argument in them.
Only domstylerule and node are using detail and that, always with detail="actorid".
Also remove ctx and detail in Front constructor as that's not used by these two actors.

Depends on D17612

Differential Revision: https://phabricator.services.mozilla.com/D17613
2019-01-28 18:42:39 +00:00
Alexandre Poirot 08baddfa73 Bug 1515862 - Remove protocol.js's formType. r=jdescottes
None of our actor define a `formType` in its specification.
This feature has never been used, so remove it and its test.

Differential Revision: https://phabricator.services.mozilla.com/D17612
2019-01-28 18:42:33 +00:00
Alexandre Poirot 60db7a4c5d Bug 1512154 - Convert protocol.js to es classes. r=yulia
Differential Revision: https://phabricator.services.mozilla.com/D14840
2019-01-02 13:38:54 +00:00
Alexandre Poirot 6053d05fb6 Bug 1515116 - Let Front's constructor set the actorID instead of doing it manually. r=jdescottes
Depends on D14915

Differential Revision: https://phabricator.services.mozilla.com/D14916
2019-01-03 10:20:35 +00:00
yulia 7fe9bd2790 Bug 1514197 - add clearEvents method to the event emitter and call from Front.destroy; r=jdescottes
details about what is going on here is in the bug thread

Differential Revision: https://phabricator.services.mozilla.com/D14547
2018-12-14 17:34:53 +00:00
Alexandre Poirot 62db72cbb3 Bug 1510949 - Make protocol.js support es6 classes for fronts. r=yulia
MozReview-Commit-ID: JegR2JsyNrI

Differential Revision: https://phabricator.services.mozilla.com/D13780
2018-12-11 16:32:41 +00:00
Julian Descottes 39ae6278a9 Bug 1507125 - Protocol Front should throw when called after destroy;r=ochameau
Depends on D13137.

Differential Revision: https://phabricator.services.mozilla.com/D13138
2018-11-29 10:00:06 +00:00
Narcis Beleuzu 18748fd3fc Backed out 2 changesets (bug 1507125) for ESlint failure on runtimes.js . CLOSED TREE
Backed out changeset 2b9aaf2f3b58 (bug 1507125)
Backed out changeset 641de22d6480 (bug 1507125)
2018-11-28 19:58:15 +02:00
Julian Descottes 138914e6e3 Bug 1507125 - Front should throw when sending packet without actorID or destination;r=ochameau
Depends on D13137. I could use help to write the test in a better.
I believe there is a cleaner way to create the front here?
I also had other suggestions for making the fronts more robust in the bug.
Let me know if you think I should try to investigate them more.

Differential Revision: https://phabricator.services.mozilla.com/D13138
2018-11-28 17:36:25 +00:00
Alexandre Poirot a517296222 Bug 1506549 - Introduce API to listen for new child fronts of a given type. r=yulia
MozReview-Commit-ID: EKWTGhGo0VM

Depends on D11624

Differential Revision: https://phabricator.services.mozilla.com/D11625
2018-11-15 10:23:00 +00:00
Alexandre Poirot e9c1084d13 Bug 1506549 - Stop returning the actor from Pool.manage. r=yulia
This was only used by test and isn't much useful.

MozReview-Commit-ID: DeIimVmMOOs

Depends on D11623

Differential Revision: https://phabricator.services.mozilla.com/D11624
2018-11-15 10:22:58 +00:00
Andreea Pavel 9d41a0a2bf Backed out 5 changesets (bug 1506549) for failing devtools at devtools/client/aboutdebugging/test/browser_service_workers_status.js on a CLOSED TREE
Backed out changeset 6be66dea928c (bug 1506549)
Backed out changeset da0d76d0e8fc (bug 1506549)
Backed out changeset 490eeba8f9f7 (bug 1506549)
Backed out changeset 97554f465eca (bug 1506549)
Backed out changeset 4f259de6cce0 (bug 1506549)
2018-11-14 21:46:07 +02:00
Alexandre Poirot d11fed2899 Bug 1506549 - Introduce API to listen for new child fronts of a given type. r=yulia
MozReview-Commit-ID: EKWTGhGo0VM

Depends on D11624

Differential Revision: https://phabricator.services.mozilla.com/D11625
2018-11-14 16:20:57 +00:00
Alexandre Poirot b2d3c01b7c Bug 1506549 - Stop returning the actor from Pool.manage. r=yulia
This was only used by test and isn't much useful.

MozReview-Commit-ID: DeIimVmMOOs

Depends on D11623

Differential Revision: https://phabricator.services.mozilla.com/D11624
2018-11-14 15:48:20 +00:00
Alexandre Poirot 0ebd9905d3 Bug 1506545 - Stop overloading Pool.actor from Front class. r=yulia
Front.actor custom implementation is only used from Front class and doesn't match Pool's one behavior.
Front users would expect to see the one from Pool as it inherits from it.

MozReview-Commit-ID: 8plo2K5kEWq

Differential Revision: https://phabricator.services.mozilla.com/D11614
2018-11-13 14:22:24 +00:00
Mark Banner 3d6aaad3f5 Bug 1486741 - Enable ESLint rule comma-dangle for all of mozilla-central (automatic fixes). r=mossop
Differential Revision: https://phabricator.services.mozilla.com/D8389
2018-10-19 12:55:39 +00:00
yulia 88dccefa84 Bug 1495387 - introduce async front instantiation; r=ochameau
Depends on D8989

Differential Revision: https://phabricator.services.mozilla.com/D8990
2018-10-18 14:34:33 +00:00
Alexandre Poirot 5c243860e2 Bug 1485660 - Avoid exceptions when the connection is closed in middle of the actor's id retrieval. r=jdescottes
MozReview-Commit-ID: KvwkISz7OVe

Depends on D7456

Differential Revision: https://phabricator.services.mozilla.com/D7457
2018-10-15 08:36:05 +00:00
Brindusan Cristian dac48fe630 Backed out 8 changesets (bug 1485660) for damp failures on front.hasRequests. CLOSED TREE
Backed out changeset 7a2f29bbe2a8 (bug 1485660)
Backed out changeset 26e82fa62444 (bug 1485660)
Backed out changeset 9bb2f56f219d (bug 1485660)
Backed out changeset 40a3c2dd1b38 (bug 1485660)
Backed out changeset cfb160882db9 (bug 1485660)
Backed out changeset 3642f2d66777 (bug 1485660)
Backed out changeset 9026679753b2 (bug 1485660)
Backed out changeset dccca441b980 (bug 1485660)
2018-10-11 22:33:35 +03:00
Alexandre Poirot 02abc4f079 Bug 1485660 - Avoid exceptions when the connection is closed in middle of the actor's id retrieval. r=jdescottes
MozReview-Commit-ID: KvwkISz7OVe

Depends on D7456

Differential Revision: https://phabricator.services.mozilla.com/D7457
2018-10-11 15:46:24 +00:00
yulia 19e126155c Bug 1473513 - reduce number of poolFor calls; r=ochameau
Summary:
MozReview-Commit-ID: 9VqKPauAP9j

Depends on D6475

Reviewers: ochameau

Reviewed By: ochameau

Bug #: 1473513

Differential Revision: https://phabricator.services.mozilla.com/D6476
2018-09-26 10:08:10 +02:00
yulia e2298cb0fa Bug 1473513 - create LazyActorClass based off ObservedActorFactory and RegisterdFactory classes for use in RootActor and BrowsingContextActor; r=ochameau
Summary:
create LazyActorClass based off ObservedActorFactory and RegisterdFactory classes for use in RootActor and BrowsingContextActor;

Depends on D6468

Reviewers: ochameau

Reviewed By: ochameau

Bug #: 1473513

Differential Revision: https://phabricator.services.mozilla.com/D6470
2018-09-26 10:03:33 +02:00
yulia c161f03267 Bug 1473513 - use Protocol.js pools for workerTargetActorPool in Target Actors; r=ochameau
Summary: MozReview-Commit-ID: 5uIWwOR7CHp

Reviewers: ochameau

Reviewed By: ochameau

Bug #: 1473513

Differential Revision: https://phabricator.services.mozilla.com/D6468
2018-09-26 10:02:54 +02:00
Alexandre Poirot a2c6859b00 Bug 1026583 - Avoid sending events for already destroyed actors. r=yulia
Reviewers: yulia!

Tags: #secure-revision

Bug #: 1026583

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

MozReview-Commit-ID: 3485VTbMRqO
2018-08-28 05:42:32 -07:00
Alexandre Poirot 14e115ac28 Bug 1222047 - Expose helper to easily instanciate global and target scoped fronts. r=yulia
Summary: Depends On D3314

Tags: #secure-revision

Bug #: 1222047

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

MozReview-Commit-ID: fqlHCkOtIB
2018-08-23 03:51:39 -07:00
Nicolas Chevobbe f4cb8c45de Bug 1450944 - Throw in actor methods instead of returning an error packet; r=ochameau.
Since protocol.js catches exceptions and returns an appropriate
packet as a result, we can use this instead of returning manually
an error packet.

MozReview-Commit-ID: 6lREam5sEVs
2018-05-17 15:04:24 +02:00
J. Ryan Stinnett c6fd8c950e Bug 1172897 - Rename TabActor to BrowsingContextTargetActor. r=ochameau
MozReview-Commit-ID: LPTEx2h4F1o
2018-05-25 18:20:28 -05:00
Julian Descottes 82711b9a8f Bug 1454696 - Run eslint --fix for prefer-const;r=yulia
MozReview-Commit-ID: F6xUXCgdRE4
2018-06-01 12:36:09 +02:00
Alexandre Poirot afce6f9c37 Bug 1458731 - Print actor's typeName and name of the throwing method when an exception is thrown by a protocol.js's actor. r=jlast,jryans
MozReview-Commit-ID: 5poQ0F1dJVu
2018-05-09 03:44:54 -07:00
Alexandre Poirot 24ee363f7d Bug 1460229 - Throw an explicit error message when a method specified in a spec is missing in the actor. r=jryans
MozReview-Commit-ID: JdsCMh93xZE
2018-03-28 01:08:06 -07:00
Alexandre Poirot 71157b13ca Bug 1459205 - Speed up dict type by preventing duplicated calls to getType from its write method. r=jryans
MozReview-Commit-ID: Dn37LGEpB6q
2018-05-03 12:47:27 -07:00
Alexandre Poirot 231d0b4128 Bug 1454899 - Prevent request arguments duplication on each request call. r=jryans
MozReview-Commit-ID: GaLM6LsCoWp
2018-04-05 10:00:02 -07:00
yulia 3cd3db0e76 Bug 1450948 - collect actorSpecs in a weakmap. r=ochameau
MozReview-Commit-ID: 7O4edWRb7cF
2018-04-25 14:46:44 +02:00