dtap...@chromium.org,rby...@chromium.org https://dom.spec.whatwg.org/#dom-eventlisteneroptions-passive] Expose "passive" boolean in the EventListenerOptions dictionary. Implement the behaviour with respect to dispatching passive EventListeners so that calling preventDefault inside executing the passive registered callback only generates a warning to the console. Exposing this boolean will allow threaded rendering to possibly start scrolling without waiting for the main thread to execute the registered event listener since the event is just passive and won't preventDefault the action.
Firefox: No public signals
Edge: No public signals
Safari: No public signals
Web developers: PositiveEngaged web developers are excited by the cases of improving their scrolling performance while maintaining some of the data mining behaviour they are using their registered event listeners.Low compatibility risk.
None
On Fri, Jan 8, 2016 at 10:39 PM, Dave Tapuska <dtap...@chromium.org> wrote:dtap...@chromium.org,rby...@chromium.org https://dom.spec.whatwg.org/#dom-eventlisteneroptions-passive] Expose "passive" boolean in the EventListenerOptions dictionary. Implement the behaviour with respect to dispatching passive EventListeners so that calling preventDefault inside executing the passive registered callback only generates a warning to the console. Exposing this boolean will allow threaded rendering to possibly start scrolling without waiting for the main thread to execute the registered event listener since the event is just passive and won't preventDefault the action.Do you want to ship support for the 'passive' option ahead of implementing some actual perf optimization (which is really the hard part here)? Or would we hold off and ship both at the same time? I see arguments to both choices, not sure myself which is best (but we should probably agree one way or another as part of this intent). Getting the full performance benefit possible from this option is hard in our current architecture, so I definitely wouldn't want to block shipping the option on doing everything possible.Firefox: No public signalsOlli from Mozilla (cc'd) was heavily involved in the design (IIRC the basic idea of an option which signaled that listeners didn't intend to cancel the event was his). But this issue has a long and complex history (some in the links here). So I'll leave it to Olli to say whether or not he thinks where we ultimately landed is something supports adding to the web platform.Edge: No public signals/cc Jacob Rossi in case he wants to go on the record with any feedback (we've discussed it privately extensively).Safari: No public signalsNote that Simon Fraser has shown some support by filing a WebKit bug. But that in itself isn't necessarily a strong public signal.Web developers: PositiveEngaged web developers are excited by the cases of improving their scrolling performance while maintaining some of the data mining behaviour they are using their registered event listeners.Low compatibility risk.Note that current versions of the template (where did you get this one?) ask for "compatibility and interoperability risk". Without public support from other vendors, there's definitely interoperability risk :-).
The difficult technical problem here are all around implementing the perf optimization possible. Technically I think there's some risk that we'd ship that, and sites will come to depend on it further (such that scrolling on many websites can't be done smoothly without supporting this feature and underlying perf optimizations). Then we'd probably be locked into the resulting complex optimizations (eg. ability to hit-test for touch handlers and ultimately touch-action from the compositor thread). This is similar to the bigger picture issue of being locked into support threaded scrolling forever. I personally believe this is the right trade off, but it's certainly highly controversial.
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
+1 to holding on any shipping intent until there are actual benefits: I imagine that the communication around this feature will draw attention to it and it would be sad if developers were not able to observe any benefits while experimenting.
"It should be noted that even if an app registers passive listeners and another part of code registers blocking listeners the whole thing degrades to effectively blocking style."I'm worried about this aspect.
- RAIL wise, would this effectively be a status quo as long as one player (e.g. the first party with valid reasons) uses blocking listeners*?
- For use cases that neither need to interfere nor be notified in realtime, is there a better alternative that doesn't necessitate a 100% opt-in? I've heard discussions about an async batching of events which seems to fit the bill. Any thoughts on the need to pursue both approaches?