- From: Olli Pettay <Olli.Pettay@helsinki.fi>
- Date: Fri, 16 Dec 2011 01:49:19 +0200
- To: Darin Fisher <darin@chromium.org>
- CC: Vincent Scheib <scheib@google.com>, Webapps WG <public-webapps@w3.org>
On 12/16/2011 01:04 AM, Darin Fisher wrote:
>
>
> On Thu, Dec 15, 2011 at 1:39 PM, Olli Pettay <Olli.Pettay@helsinki.fi
> <mailto:Olli.Pettay@helsinki.fi>> wrote:
>
> On 12/15/2011 11:27 PM, Vincent Scheib wrote:
>
>
>
> On Thu, Dec 15, 2011 at 6:16 AM, Olli Pettay
> <Olli.Pettay@helsinki.fi <mailto:Olli.Pettay@helsinki.fi>
> <mailto:Olli.Pettay@helsinki.__fi
> <mailto:Olli.Pettay@helsinki.fi>>> wrote:
>
> Hi all,
>
> few comments about the API
>
> (1)
> currently
> http://dvcs.w3.org/hg/____webevents/raw-file/default/____mouse-lock.html
> <http://dvcs.w3.org/hg/__webevents/raw-file/default/__mouse-lock.html>
>
> <http://dvcs.w3.org/hg/__webevents/raw-file/default/__mouse-lock.html
> <http://dvcs.w3.org/hg/webevents/raw-file/default/mouse-lock.html>>
> uses VoidCallback which isn't defined anywhere.
>
> I guess there should be something like
>
> void lock (in Element target,
> optional in LockSuccessCallback successCallback,
> optional in LockErrorCallback failureCallback);
>
>
> [Callback,NoInterfaceObject]
> interface LockSuccessCallback {
> void pointerLockSuccess();
> };
>
> [Callback,NoInterfaceObject]
> interface LockErrorCallback {
> void pointerLockFailure();
> };
>
> Or if the new proposed callback syntax is used:
> callback LockSuccessCallback = void pointerLockSuccess();
> callback LockErrorCallback = void pointerLockFailure();
>
>
> I used the concept of VoidCallback from other implemented specs. Are
> there any issues with it other than that the spec should define
> VoidCallback? e.g.
> http://www.w3.org/TR/file-__system-api/#the-voidcallback-__interface
> <http://www.w3.org/TR/file-system-api/#the-voidcallback-interface>
> http://www.w3.org/TR/2009/WD-__DataCache-20091029/#__VoidCallback <http://www.w3.org/TR/2009/WD-DataCache-20091029/#VoidCallback>
>
>
> well, in those specs VoidCallback is FunctionOnly= which it probably
> shouldn't be.
> But there is ongoing discussion about removing FunctionOnly= from
> WebIDL
>
>
>
>
>
> (2)
> "If another element is locked a user agent must transfer the mouse
> lock to the new target and call the pointerlocklost callback
> for the
> previous target."
> There is no such thing as 'pointerlocklost callback'
>
>
> Spec typo, it should read "pointerlocklost event".
>
>
> dispatch pointerlocklost event...
>
>
>
>
>
> (3)
> "Mouse lock must succeed only if the window is in focus and the
> user-agent is the active application of the operating system"
> What window? window object as in web page? Or OS level window?
> What if lock is called in some iframe?
>
>
> The intent is the user-agent window and tab (if tabbed UA).
> Other than
> UA security considerations, I propose there be no difference between
> lock calls from a top level document or an iframe. Suggestions
> welcome
> for a way to make this more clear than rewriting to be, "... succeed
> only if the user-agent window (and tab, if a tabbed browser) is
> in focus
> ..."
>
>
> I'm just worried about iframes being able to lock mouse.
> But perhaps that should be allowed only if the iframe is in
> the same domain as the top level document.
>
>
> The fullscreen API requires that the IFRAME tag have an
> "allowfullscreen" attribute:
> http://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html#security-and-privacy-considerations
The spec is quite vague, but yes, something similar could work.
I wonder if we're going to have more this kinds of features. If so,
perhaps the attribute should be changed.
Something like
allow="fullscreen pointerlock"
>
> Perhaps a similar approach would work for pointer lock?
>
> -Darin
>
>
>
>
>
> (4)
> "If the target is removed from the DOM tree after mouse lock is
> entered then mouse lock will be lost."
> Should 'pointerlocklost' event be dispatched?
>
>
> I'm not yet certain about the implementation practicalities, and
> need to
> research more, but is seems we have these options:
> a- don't send the event
>
> A bit strange
>
>
>
> b- send to the element after it has been detached
>
> I would assume this. At least it would be consistent.
>
>
>
> c- send to the nearest ancestor of the element that remains in
> the tree
>
> Or perhaps send to the document. Should pointerlocklost always be
> dispatched to the document? If really needed, the event could have
> property .unlockedElement or some such.
>
>
>
> d- send to the element before it is detached
>
> this is not possible. Well, possible, but would bring in all the
> problems there are with mutation events
>
>
> -Olli
>
>
>
Received on Thursday, 15 December 2011 23:49:54 UTC