Open Bug 894561 Opened 11 years ago Updated 2 years ago

[Session Restore] Async APIs for session restore

Categories

(Firefox :: Session Restore, task)

task

Tracking

()

People

(Reporter: Yoric, Unassigned)

References

(Blocks 1 open bug)

Details

(Whiteboard: [e10s][fxperf:p5])

Bug 838577 introduces async APIs for session restore. For the moment, these APIs can be used only by tests. With e10s, we need to offer only async APIs. We need to: - either publish these async APIs or some better-designed APIs; - convert clients to these new APIs.
No longer depends on: 838577
Whiteboard: [e10s][Async] → [e10s]
Flags: firefox-backlog?
The current approach is to support the old API and yet having an asynchronous sessionstore that is e10s compatible. Some of the existing methods are already async in that you will have to wait for an event or a notification to know when we're done. While this is certainly not ideal I don't think changing this and breaking tons of add-ons is worth investing time currently or in the near future. There are lots of other bigger sessionstore rewrites that would actually affect users and we should concentrate on those :)
Flags: firefox-backlog? → firefox-backlog-
I believe it would be interesting to expose an async "wait()" API that only resolves once all ongoing messages have been treated. For the rest, we can keep the current API for the time being.
(In reply to David Rajchenbach Teller [:Yoric] (please use "needinfo?" - I'll be away on April 9th-16th) from comment #2) > I believe it would be interesting to expose an async "wait()" API that only > resolves once all ongoing messages have been treated. For the rest, we can > keep the current API for the time being. Which messages exactly are you referring to?
For the moment, I mean doing something equivalent to `SyncHandlers.get(browser).flush()` (for all browsers).
Oh, yeah. We want to get rid of that in the future but I'm not sure that's an API we want to expose. We also have bugs open for all those places that call .flush().
I believe that the following is a useful pattern: 1. Programmatically cause some change in a tab. 2. ? 3. Get some part of the state of the browser. Since 3. is synchronous, the best we can do for the moment is to make it blocking. If we could have a step 2. that returns a promise once 3. is available without blocking, this would be nice. Not a priority, though.
Whiteboard: [e10s] → [e10s][fxperf]
If I'm understanding this bug correctly, there's no direct performance consequences to keeping things as they are. It can just be cumbersome to use the APIs. If I'm misunderstanding this and thus incorrectly triaging the bug for fxperf, please let me know.
Whiteboard: [e10s][fxperf] → [e10s][fxperf:p5]
Severity: normal → S3

The severity field for this bug is relatively low, S3. However, the bug has 13 votes.
:dao, could you consider increasing the bug severity?

For more information, please visit auto_nag documentation.

Flags: needinfo?(dao+bmo)
Severity: S3 → --
Type: defect → task
Flags: needinfo?(dao+bmo)
You need to log in before you can comment on or make changes to this bug.