Closed Bug 1265724 Opened 8 years ago Closed 8 years ago

Decouple TimelineFront from TimelineActor

Categories

(DevTools :: Netmonitor, enhancement, P1)

enhancement

Tracking

(firefox50 fixed)

RESOLVED FIXED
Firefox 50
Iteration:
50.1 - Jun 20
Tracking Status
firefox50 --- fixed

People

(Reporter: ejpbruel, Assigned: ejpbruel)

References

Details

Attachments

(1 file, 1 obsolete file)

      No description provided.
Depends on: 1265429
Blocks: 1263289
Severity: normal → enhancement
Whiteboard: [devtools-html]
Flags: qe-verify-
Priority: -- → P2
Assignee: nobody → nfitzgerald
Status: NEW → ASSIGNED
Iteration: --- → 49.1 - May 9
Priority: P2 → P1
Depends on bug 1265722 for the introduction of the fronts and specs directories and moz.builds, etc.
Depends on: 1265722
Network monitor only uses the timeline actor.
Summary: Decouple fronts from actors in netmonitor. → Decouple TimelineFront from TimelineActor
This is still a WIP. Seeing "too much recursion" errors in sdk events emitting
things and then (I think) the event listener emitting the same event again on
the same object. I think it is related to this actor bridge crap.
Alright got the tests working. Again this will need to be rebased on moving fronts to shared.
Attachment #8749899 - Flags: review?(ejpbruel)
Attachment #8749890 - Attachment is obsolete: true
Comment on attachment 8749899 [details] [diff] [review]
Decouple TimelineFront from TimelineActor

Review of attachment 8749899 [details] [diff] [review]:
-----------------------------------------------------------------

r+ with comments addressed.

::: devtools/server/actors/common.js
@@ +509,5 @@
>  }
>  exports.actorBridge = actorBridge;
> +
> +/**
> + * Like `actorBridge`, but without a spec definition, for when the actor is

The methods is called actorBridgeWithSpec, but the comment explains that this should be used without a spec definition. I found this somewhat confusing. Perhaps a better name for this would be either 'actorWithSpecBridge' or 'actorWithoutSpec'?

::: devtools/server/actors/timeline.js
@@ -22,2 @@
>  const { Timeline } = require("devtools/server/performance/timeline");
> -const { actorBridge } = require("devtools/server/actors/common");

Is actorBridge still used anywhere? If not, can we remove it? Or even better, simply replace actorBridge with actorBridgeWithSpec?

::: devtools/shared/specs/array-of-numbers-as-strings.js
@@ +12,5 @@
> + * XXX: It would be nice if on local connections (only), we could just *give*
> + * the array directly to the front, instead of going through all this
> + * serialization redundancy.
> + */
> +types.addType("array-of-numbers-as-strings", {

I would just put this in /devtools/shared/specs/timeline.js
Attachment #8749899 - Flags: review?(ejpbruel) → review+
(In reply to Eddy Bruel [:ejpbruel] from comment #5)
> @@ +509,5 @@
> >  }
> >  exports.actorBridge = actorBridge;
> > +
> > +/**
> > + * Like `actorBridge`, but without a spec definition, for when the actor is
> 
> The methods is called actorBridgeWithSpec, but the comment explains that
> this should be used without a spec definition. I found this somewhat
> confusing. Perhaps a better name for this would be either
> 'actorWithSpecBridge' or 'actorWithoutSpec'?

I like "actorWithSpecBridge".

> ::: devtools/server/actors/timeline.js
> @@ -22,2 @@
> >  const { Timeline } = require("devtools/server/performance/timeline");
> > -const { actorBridge } = require("devtools/server/actors/common");
> 
> Is actorBridge still used anywhere? If not, can we remove it? Or even
> better, simply replace actorBridge with actorBridgeWithSpec?

It is still used in the memory actor.

> ::: devtools/shared/specs/array-of-numbers-as-strings.js
> @@ +12,5 @@
> > + * XXX: It would be nice if on local connections (only), we could just *give*
> > + * the array directly to the front, instead of going through all this
> > + * serialization redundancy.
> > + */
> > +types.addType("array-of-numbers-as-strings", {
> 
> I would just put this in /devtools/shared/specs/timeline.js

I like splitting the types out so that they re reusable and we don't get into situations where we're requiring one actor's spec just to get type definitions.
Iteration: 49.1 - May 9 → 49.2 - May 23
Removing from release - blocked on dependency.
Assignee: nfitzgerald → nobody
Status: ASSIGNED → NEW
Iteration: 49.2 - May 23 → ---
Priority: P1 → P2
Assignee: nobody → ejpbruel
Status: NEW → ASSIGNED
Iteration: --- → 49.3 - Jun 6
Priority: P2 → P1
Blocks: 1277706
No longer blocks: 1263289
Blocks: 1263289
Try push failed due to TBPL failures. New try push:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=9b9d4ef77f5a
Second try push also failed due to TBPL failures. Yet another try push:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=43d3c85d7693
Try failures due to path errors. New try push with issues addressed:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=21d3b6488e3f
Iteration: 49.3 - Jun 6 → 50.1
Pushed by ejpbruel@mozilla.com:
https://hg.mozilla.org/integration/fx-team/rev/6dbe97bc9112
Decouple TimelineFront from TimelineActor; r=ejpbruel
https://hg.mozilla.org/mozilla-central/rev/6dbe97bc9112
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 50
Whiteboard: [devtools-html]
Product: Firefox → DevTools
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: