Bug 85215 - [chromium] DomStorage event handling needs TLC
Summary: [chromium] DomStorage event handling needs TLC
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit Misc. (show other bugs)
Version: 528+ (Nightly build)
Hardware: Other All
: P2 Normal
Assignee: Michael Nordman
URL:
Keywords:
Depends on: 84387 85221 87031
Blocks:
  Show dependency treegraph
 
Reported: 2012-04-30 11:20 PDT by Michael Nordman
Modified: 2012-06-14 20:27 PDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Nordman 2012-04-30 11:20:06 PDT
Events are handled inconsistently. The dispatch of some events are initiated from within webkit/webcore, the dispatch of other events are initiated from the outside via the WebKit::WebStorageEventDispatcher interface. The existing WebStorageEventDispatcher is not expressive enough to handle initiated all events from the outside. There's a chunk of nearly replicated code in there that shouldn't be. The existing code has several FIXMEs related to making this better.

It could use some TLC for those reasons alone, but the current state of things in webkit/webcore is also blocking development of some overall performance improvements to chromium's implemention of this feature (getting rid of sync ipcs for each access and adding a renderer-side caching layer). See http://code.google.com/p/chromium/issues/detail?id=94382 for more details on this aspect of things.

To facilitate the perf improvements, event dispatching needs to be initiated from the outside because there may be an async latency between setting an item and receiving the 'oldValue' from the main browser process which is needed to raise the mutation event.

This involves a multi-sided sequence of patches in webkit and chromium (and webkit and chromium), to define a new API while retaining the old API, start using the new API then come back to remove support for the old API (and so on).