W3C home > Mailing lists > Public > public-pointer-events@w3.org > April to June 2014

RE: [polymer-dev] PSA: PointerEvents and PointerGestures are being replaced by polymer-gestures, breaking changes for pointer* events

From: Daniel Freedman <dfreedm@google.com>
Date: Mon, 14 Apr 2014 20:58:06 -0700
Message-ID: <CAAUAVAhW8uLURM13MegA2DVu=HS+TtUS-2jvxJMFRk_ypfWXCQ@mail.gmail.com>
To: Jacob Rossi <Jacob.Rossi@microsoft.com>
Cc: public-pointer-events@w3.org, Rick Byers <rbyers@google.com>, polymer-dev <polymer-dev@googlegroups.com>
Yes, there are no plans to move it anywhere else.
On Apr 14, 2014 8:18 PM, "Jacob Rossi" <Jacob.Rossi@microsoft.com> wrote:

>  Will the polyfill continue to live here:
> https://github.com/polymer/PointerEvents?
>
>
>
> *From:* Daniel Freedman [mailto:dfreedm@google.com]
> *Sent:* Monday, April 14, 2014 4:42 PM
> *To:* Rick Byers
> *Cc:* polymer-dev; public-pointer-events@w3.org
> *Subject:* Re: [polymer-dev] PSA: PointerEvents and PointerGestures are
> being replaced by polymer-gestures, breaking changes for pointer* events
>
>
>
> It is my hope that when PointerEvents has a few more native
> implementations, then polymer-gestures can transition to being a consumer
> of PointerEvents only, and we can reinstate the polyfill for other browers.
>
> To that end, I plan to maintain the PointerEvents polyfill to follow the
> spec as it evolves (thankfully there have been few breaking changes since
> the WG started).
>
>
>
> Unfortunately, the polyfill's performance penalty on mobile is an
> information problem, and not one I see workarounds for in the near to
> medium term.
>
> Target finding seems to be expensive no matter which way I try to slice
> it, and mobile already operates at a tremendous speed disadvantage.
>
>
>
> I do not intend this change to be negative signal on the part of
> PointerEvents, but an (unfortunate) acceptance of the practical realities
> of mobile devices and polyfill performance.
>
>
>
> On Mon, Apr 14, 2014 at 4:23 PM, Rick Byers <rbyers@google.com> wrote:
>
> +public-pointer-events
>
> What does this mean for other consumers of the PointerEvents polyfill?
> Will it be effectively orphaned?
>
> On Apr 14, 2014 7:15 PM, "Daniel Freedman" <dfreedm@google.com> wrote:
>
>   Hi Polymer users,
>
>
>
> We recently had a big perf investigation of mobile use cases and found
> that our gesture layer was not performant enough to get 60 FPS[1].
>
> For this reason, I have created the polymer-gestures library which gesture
> events in a mobile-performant way.
>
>
>
> In the next release, polymer-gestures will replace (the now deprecated)
> PointerGestures, and PointerEvents will be removed from the default build.
>
>
>
> These are the supported events of polymer-gestures:
>
>    - down
>    - up
>
>
>     - Same target as down, provides the element under the pointer with
>       the relatedTarget property
>
>
>    - trackstart
>    - track
>
>
>     - Same target as down
>
>
>    - trackend
>
>
>     - Same target as down, provides the element under the pointer with
>       the relatedTarget property
>
>
>    - tap
>
>
>     - Targets the nearest common ancestor of down and up.relatedTarget
>       - Can be prevented by calling any gesture event's preventTap
>       function
>
>
>    - flick *
>    - hold *
>    - holdpulse *
>    - release *
>    - pinchstart *
>    - pinch *
>    - pinchend *
>
> * = "Not yet implemented"
>
>
>
> If you listen for pointerdown, pointermove, pointerup, pointerover,
> pointerout, pointerenter or pointerleave, you will need to change your code.
>
> If you require an event for every movement of the pointer, you can use the
> "track" event.
>
>
>
> This change was not made lightly, but only after careful consideration of
> device constraints and lack of cross-browser PointerEvent implementations.
>
> The Polymer team still believes that PointerEvents are the best technical
> solution for handling user input, but mobile use cases are too important to
> be gated on native implementations.
>
>
>
> I apologize for the churn.
>
>
>
>
>
> [1]: The big culprit was the gymnastics the PointerEvents polyfill had to
> make to be spec compliant and target the correct elements with ShadowDOM.
>
> In particular, the encapsulation mechanics of ShadowDOM made target
> finding for pointermove very expensive, requiring recursive
> elementFromPoint calls.
>
> Another large chunk of time was wasted on having gesture recognizers
> listen for dispatched, normalized pointerevents.
>
> Polymer-gestures will use the lower-level events directly without spinning
> up the DOM event system N times each pointer movement.
>
> Follow Polymer on Google+: plus.google.com/107187849809354688692
> ---
> You received this message because you are subscribed to the Google Groups
> "Polymer" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to polymer-dev+unsubscribe@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/polymer-dev/CAAUAVAgorf1-V2iiB%3Dub02QiJtMd%2BE4cXPzGXK3LrQDCxFXNQQ%40mail.gmail.com<https://groups.google.com/d/msgid/polymer-dev/CAAUAVAgorf1-V2iiB%3Dub02QiJtMd%2BE4cXPzGXK3LrQDCxFXNQQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
>
>
> Follow Polymer on Google+: plus.google.com/107187849809354688692
> ---
> You received this message because you are subscribed to the Google Groups
> "Polymer" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to polymer-dev+unsubscribe@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/polymer-dev/a2f5ee249e5d4028862d8dd5998cac6a%40BY2PR03MB457.namprd03.prod.outlook.com<https://groups.google.com/d/msgid/polymer-dev/a2f5ee249e5d4028862d8dd5998cac6a%40BY2PR03MB457.namprd03.prod.outlook.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
Received on Tuesday, 15 April 2014 03:58:36 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:20:26 UTC