Open Bug 478107 Opened 15 years ago Updated 2 years ago

API for (de)serializing form state

Categories

(Core :: DOM: Core & HTML, enhancement, P5)

enhancement

Tracking

()

People

(Reporter: zeniko, Unassigned)

References

Details

As of Firefox 3.1 SessionStore currently creates for each form element an XPath query in order to be able to find that element again when restoring a page. This turns out to be fatally slow for huge forms (cf. bug 477564).

It should be significantly faster to use the same code paths that Gecko already uses to preserve form state through page reloads. AFAICT those aren't exposed through XPCOM or the DOM, though... yet?
This guys blocking state will depend on the blocking state for 477564
Flags: blocking1.9.1?
So we could probably create a way to serialize an nsLayoutHistoryState (worst-case via nsISerializable), yeah.  This wouldn't be a huge difficulty, as long as we also implement nsISerializable on all the various element-specific state objects (input, textarea, select, isindex).

We'd need an API for getting this state (easy).

We'd also need an API for taking the state and restoring from it (a bit harder; ideally we'd somehow set it up as the state in the history entry before doing the load or something... can session restore do that?).
(In reply to comment #2)
> ideally we'd somehow set it up as the state in the history entry before doing
> the load or something... can session restore do that?).

I guess that this would work similar to restoring a history entry's principal: <http://hg.mozilla.org/mozilla-central/annotate/85e381233997/browser/components/sessionstore/src/nsSessionStore.js#l1926>
Ah, yeah.  That would work, indeed.
As per comment 1 and bug 477564, this doesn't block.
Flags: blocking1.9.2?
Flags: blocking1.9.1?
Flags: blocking1.9.1-
Component: Content → DOM
QA Contact: content → general
Not blocking 1.9.2 on this.
Flags: wanted1.9.2-
Flags: wanted-next+
Flags: blocking1.9.2?
Flags: blocking1.9.2-
https://bugzilla.mozilla.org/show_bug.cgi?id=1472046

Move all DOM bugs that haven’t been updated in more than 3 years and has no one currently assigned to P5.

If you have questions, please contact :mdaly.
Priority: -- → P5
Component: DOM → DOM: Core & HTML
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.