[webkit-dev] DeviceOrientation/Motion on Document rather than Page
dino at apple.com
Mon Aug 16 21:43:36 PDT 2010
I've been looking into implementing the clients for DeviceOrientation/Motion Events. Currently, the controllers for these events are members of Page. I think they are better suited on Document.
Here are a few reasons:
- Page isn't tied to any actual web page or document. Would we want to share the same controller and client across multiple web pages? I don't think so.
- Document is already the place that is listening for these events
- It's easy to suspend and resume the client from the Document-level when the user navigates to another page, or the document enters the cache, or a platform needs to temporarily suspend events for some reason.
- When the API is on Page, it is hidden in the WebView, from where it is difficult to access.
- it would allow the client to live in WebCore. This avoids tweaking the WebView implementations for all platforms to pass messages back and forth
I assume one of the advantages of having them on Page is that it allows a Mock Controller to be easily created for testing from Dump Render Tree. Am I right? Is this that important?
FWIW, Geolocation seems to take both approaches. One implementation is down in Navigator/Document/DOMWindow, but the mock controller is on Page. I've found the low-level approach much easier to implement.
More information about the webkit-dev