Re: [w3c/pointerlock] Add lock options to requestPointerLock (#49)

marcoscaceres commented on this pull request.

Quick review and a couple of nits. Will try to get someone with knowledge in this area from Mozilla to let us know if this is something we want to add to Firefox. Will need a few days to get back to you. 

> -        <a>User agents</a> must deliver these events by <a data-lt=
-        "queue a task">queuing a task</a> to <a>fire an event</a> of the
-        appropriate name with its <code>bubbles</code> attribute [[DOM]] set to
-        false to the pointer lock <a>target</a> element's <a>node document</a>.
-      </p>
-      <p class="note">
-        Magnification software increases the size of content on the screen. It
-        uses the mouse to move the magnified point of focus around. When a
-        pointer lock is initiated, the magnification software needs to switch
-        to using the keyboard to move the magnified point of focus around
-        instead. When a pointerlockchange event is fired, web browsers
-        therefore need to make sure the event is communicated to assistive
-        technologies like screen magnifiers.
-      </p>
+      <section>
+        <h3><code>PointerLockOptions</code>

```suggestion
        <h3>`PointerLockOptions` dictionary
```

> -      </p>
+      <section>
+        <h3><code>PointerLockOptions</code>
+        </h3>
+        <pre class="idl">
+          dictionary PointerLockOptions {
+            boolean unadjustedMovement = false;
+          };
+        </pre>
+ <dl>
+          <dt>
+              <dfn>PointerLockOptions</dfn> dictionary
+          </dt>
+          <dd>
+            <p>
+              The options dictionary to customize how the pointer should behave in

```suggestion
              The options dictionary to customize how the pointer behaves in
```

> +          dictionary PointerLockOptions {
+            boolean unadjustedMovement = false;
+          };
+        </pre>
+ <dl>
+          <dt>
+              <dfn>PointerLockOptions</dfn> dictionary
+          </dt>
+          <dd>
+            <p>
+              The options dictionary to customize how the pointer should behave in
+              the locked mode.
+            </p>
+          </dd>
+          <dt>
+              <dfn><code>unadjustedMovement</code></dfn> attribute

```suggestion
              <dfn>unadjustedMovement</dfn> member
```

> -        uses the mouse to move the magnified point of focus around. When a
-        pointer lock is initiated, the magnification software needs to switch
-        to using the keyboard to move the magnified point of focus around
-        instead. When a pointerlockchange event is fired, web browsers
-        therefore need to make sure the event is communicated to assistive
-        technologies like screen magnifiers.
-      </p>
+      <section>
+        <h3><code>PointerLockOptions</code>
+        </h3>
+        <pre class="idl">
+          dictionary PointerLockOptions {
+            boolean unadjustedMovement = false;
+          };
+        </pre>
+ <dl>

```suggestion
 <dl data-dfn-for="PointerLockOptions" data-link-for="PointerLockOptions">
```

> + <dl>
+          <dt>
+              <dfn>PointerLockOptions</dfn> dictionary
+          </dt>
+          <dd>
+            <p>
+              The options dictionary to customize how the pointer should behave in
+              the locked mode.
+            </p>
+          </dd>
+          <dt>
+              <dfn><code>unadjustedMovement</code></dfn> attribute
+          </dt>
+          <dd>
+            <p>
+              If this value is set to true the pointer movements will not be effected

```suggestion
              If this value is set to `true`, then the pointer movements will not be effected
```

> +            </p>
+          </dd>
+          <dt>
+              <dfn><code>unadjustedMovement</code></dfn> attribute
+          </dt>
+          <dd>
+            <p>
+              If this value is set to true the pointer movements will not be effected
+              by the underlying platform modications such as mouse accelaration.
+            </p>
+          </dd>
+        </dl>
+      </section>
+      <section>
+        <h3>
+          <code>pointerlockchange</code> and <code>pointerlockerror</code> Events

```suggestion
          `"pointerlockchange"` and `"pointerlockerror"` Events
```

> +          </dt>
+          <dd>
+            <p>
+              If this value is set to true the pointer movements will not be effected
+              by the underlying platform modications such as mouse accelaration.
+            </p>
+          </dd>
+        </dl>
+      </section>
+      <section>
+        <h3>
+          <code>pointerlockchange</code> and <code>pointerlockerror</code> Events
+        </h3>
+        <p>
+          Two events are used to communicate pointer lock state change or an
+          error in changing state. They are named <dfn>pointerlockchange</dfn>

```suggestion
          error in changing state. They are named <dfn>"pointerlockchange"</dfn>
```

> +          <dd>
+            <p>
+              If this value is set to true the pointer movements will not be effected
+              by the underlying platform modications such as mouse accelaration.
+            </p>
+          </dd>
+        </dl>
+      </section>
+      <section>
+        <h3>
+          <code>pointerlockchange</code> and <code>pointerlockerror</code> Events
+        </h3>
+        <p>
+          Two events are used to communicate pointer lock state change or an
+          error in changing state. They are named <dfn>pointerlockchange</dfn>
+          and <dfn>pointerlockerror</dfn>. If pointer lock is entered or exited

```suggestion
          and <code><dfn>"pointerlockerror"</dfn></code>. If pointer lock is entered or exited
```

> +            <p>
+              If this value is set to true the pointer movements will not be effected
+              by the underlying platform modications such as mouse accelaration.
+            </p>
+          </dd>
+        </dl>
+      </section>
+      <section>
+        <h3>
+          <code>pointerlockchange</code> and <code>pointerlockerror</code> Events
+        </h3>
+        <p>
+          Two events are used to communicate pointer lock state change or an
+          error in changing state. They are named <dfn>pointerlockchange</dfn>
+          and <dfn>pointerlockerror</dfn>. If pointer lock is entered or exited
+          for any reason a <a>pointerlockchange</a> event must be sent.

```suggestion
          for any reason a <a>"pointerlockchange"</a> even is dispatched.
```

> +            </p>
+          </dd>
+        </dl>
+      </section>
+      <section>
+        <h3>
+          <code>pointerlockchange</code> and <code>pointerlockerror</code> Events
+        </h3>
+        <p>
+          Two events are used to communicate pointer lock state change or an
+          error in changing state. They are named <dfn>pointerlockchange</dfn>
+          and <dfn>pointerlockerror</dfn>. If pointer lock is entered or exited
+          for any reason a <a>pointerlockchange</a> event must be sent.
+        </p>
+        <p>
+          <a>User agents</a> must deliver these events by <a data-lt=

```suggestion
          Using the <a>user interaction task source</a>, a <a>user agent</a> MUST deliver these events by <a data-lt=
```

> +            </p>
+          </dd>
+        </dl>
+      </section>
+      <section>
+        <h3>
+          <code>pointerlockchange</code> and <code>pointerlockerror</code> Events
+        </h3>
+        <p>
+          Two events are used to communicate pointer lock state change or an
+          error in changing state. They are named <dfn>pointerlockchange</dfn>
+          and <dfn>pointerlockerror</dfn>. If pointer lock is entered or exited
+          for any reason a <a>pointerlockchange</a> event must be sent.
+        </p>
+        <p>
+          <a>User agents</a> must deliver these events by <a data-lt=

Generally, we might want to rewrite this as an algorithm and more closely follow the DOM spec. 

> +          error in changing state. They are named <dfn>pointerlockchange</dfn>
+          and <dfn>pointerlockerror</dfn>. If pointer lock is entered or exited
+          for any reason a <a>pointerlockchange</a> event must be sent.
+        </p>
+        <p>
+          <a>User agents</a> must deliver these events by <a data-lt=
+          "queue a task">queuing a task</a> to <a>fire an event</a> of the
+          appropriate name with its <code>bubbles</code> attribute [[DOM]] set to
+          false to the pointer lock <a>target</a> element's <a>node document</a>.
+        </p>
+        <p class="note">
+          Magnification software increases the size of content on the screen. It
+          uses the mouse to move the magnified point of focus around. When a
+          pointer lock is initiated, the magnification software needs to switch
+          to using the keyboard to move the magnified point of focus around
+          instead. When a pointerlockchange event is fired, web browsers

This seems kind critical... this should probably be normative. 

> @@ -216,17 +250,20 @@ <h2>
         </dt>
         <dd>
           <p>
-            Requests that the pointer be locked to a DOM element
+            The <code>requestPointerLock(<var data-type="PointerLockOptions">options</var>)</code>

```suggestion
            The `requestPointerLock(<var data-type="PointerLockOptions">options</var>)`
```

> @@ -216,17 +250,20 @@ <h2>
         </dt>
         <dd>
           <p>
-            Requests that the pointer be locked to a DOM element
+            The <code>requestPointerLock(<var data-type="PointerLockOptions">options</var>)</code>
+            requests that the pointer be locked to a DOM element
             <dfn>target</dfn>. The <a>user agent</a> determines if pointer lock

I don't think we want to redefine target... just link to it in the DOM spec:
 
```suggestion
            <a>potential event target</a>. The <a>user agent</a> determines if pointer lock
```

>              <dfn>target</dfn>. The <a>user agent</a> determines if pointer lock
             state will be entered and upon lock state change or error must send
             either a <a>pointerlockchange</a> or <a>pointerlockerror</a> event
-            respectively.
+            respectively. Let <var>unmodifiedMovement</var> be the result of getting

This looks like it needs to be an algorithm. 

>              <dfn>target</dfn>. The <a>user agent</a> determines if pointer lock
             state will be entered and upon lock state change or error must send
             either a <a>pointerlockchange</a> or <a>pointerlockerror</a> event
-            respectively.
+            respectively. Let <var>unmodifiedMovement</var> be the result of getting
+            the property <code>unmodifiedMovement</code> from <var>options</var>.

```suggestion
            the member `unmodifiedMovement` from <var>options</var>.
```

>              <dfn>target</dfn>. The <a>user agent</a> determines if pointer lock
             state will be entered and upon lock state change or error must send
             either a <a>pointerlockchange</a> or <a>pointerlockerror</a> event
-            respectively.
+            respectively. Let <var>unmodifiedMovement</var> be the result of getting
+            the property <code>unmodifiedMovement</code> from <var>options</var>.

Is unmodifiedMovement an (interface) attribute or a (dictionary) member? ... avoid "property", as that's not a thing in WebIDL land :)  

>            </p>
           <p>
             Pointer lock must not succeed if the document object's
             <a data-cite="html/origin.html#active-sandboxing-flag-set">active
             sandboxing flag set</a> has the <a>sandboxed pointer lock browsing
-            context flag</a> set.
+            context flag</a> set. It must also not succceed if the lock <var>options</var>

```suggestion
            context flag</a> set. It MUST also not succceed if the lock <var>options</var>
```

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/pointerlock/pull/49#pullrequestreview-263413507

Received on Thursday, 18 July 2019 15:05:55 UTC