Contact emails
dtap...@chromium.org, rby...@chromium.org
Spec
https://dom.spec.whatwg.org/#dom-eventlisteneroptions-passive
Tag review not necessary; minor change to existing API.
Summary
Link to “Intent to Implement” blink-dev discussion
https://groups.google.com/a/chromium.org/d/msg/blink-dev/CuOrg2TrnDw/gTgLL59PAQAJ
Is this feature supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?
Yes; Touch Events are available today (with the experimental web platform features flag on).
Mouse wheel support for passive event listeners is blocked on using gesture scrolls events. This is enabled via the --enable-wheel-gestures command line flag; but this option should be enabled on Windows and Linux in the near future. Minor fixes need to be done on Android WebView and on Mac. But the benefits for touch should not be blocked on the implementation for the remaining wheel benefits.
Demo link
http://dtapuska.github.io/passive/wheel-passive.html
http://dtapuska.github.io/passive/touch-passive.html
Debuggability
Debuggability is the same as other EventListeners. Although areas that add passive listeners that don't block scroll will not be present in the "show scrolling perf issues" overlay.
Interoperability and Compatibility Risk
Low risk in terms of interoperability and compatibility; this is an opt in feature.
OWP launch tracking bug
Entry on the feature dashboard
https://www.chromestatus.com/features/5745543795965952
Contact emails
dtap...@chromium.org, rby...@chromium.org
Spec
https://dom.spec.whatwg.org/#dom-eventlisteneroptions-passive
Tag review not necessary; minor change to existing API.
Summary
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.
Compositor has been updated to recognize these regions and not block scroll when encountering these passive EventListeners for touch and mouse wheel.
Link to “Intent to Implement” blink-dev discussion
https://groups.google.com/a/chromium.org/d/msg/blink-dev/CuOrg2TrnDw/gTgLL59PAQAJ
Is this feature supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?
Yes; Touch Events are available today (with the experimental web platform features flag on).
Mouse wheel support for passive event listeners is blocked on using gesture scrolls events. This is enabled via the --enable-wheel-gestures command line flag; but this option should be enabled on Windows and Linux in the near future. Minor fixes need to be done on Android WebView and on Mac. But the benefits for touch should not be blocked on the implementation for the remaining wheel benefits.
Demo link
http://dtapuska.github.io/passive/wheel-passive.html
http://dtapuska.github.io/passive/touch-passive.html
Debuggability
Debuggability is the same as other EventListeners. Although areas that add passive listeners that don't block scroll will not be present in the "show scrolling perf issues" overlay.
Interoperability and Compatibility Risk
Low risk in terms of interoperability and compatibility; this is an opt in feature.
--
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.
Dave, Rick, do you know of any libraries or web properties that have already begun to experiment with this? https://www.chromestatus.com/metrics/feature/timeline/popularity/968 has begun to rise and if it isn't because of this it could be bad news.On Fri, Feb 19, 2016 at 4:54 AM, Rick Byers <rby...@chromium.org> wrote:On Thu, Feb 18, 2016 at 3:55 PM, Dave Tapuska <dtap...@chromium.org> wrote:Contact emails
dtap...@chromium.org, rby...@chromium.org
Spec
https://dom.spec.whatwg.org/#dom-eventlisteneroptions-passive
Tag review not necessary; minor change to existing API.
Summary
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.
Compositor has been updated to recognize these regions and not block scroll when encountering these passive EventListeners for touch and mouse wheel.Studying these histograms (sorry google-internal only), we can say that on Android roughly a third of all touch events are blocking scrolling unnecessarily, and in 10% of those cases we could save >100ms of latency by eliminating the need to block (and in 1% it's a whopping 500ms+). That's a HUGE potential scroll performance benefit - although (for now) it'll depend on getting authors to opt-in. I've done some outreach to popular libraries (eg. here) and have anecdotal evidence to suggest that getting even one of these libraries to use passive touch listeners may result in a non-trivial improvement in our overall scroll performance metrics.
A big +1 for doing this.pe 19. helmikuuta 2016 klo 6.19 Philip Jägenstedt <phi...@opera.com> kirjoitti:Dave, Rick, do you know of any libraries or web properties that have already begun to experiment with this? https://www.chromestatus.com/metrics/feature/timeline/popularity/968 has begun to rise and if it isn't because of this it could be bad news.On Fri, Feb 19, 2016 at 4:54 AM, Rick Byers <rby...@chromium.org> wrote:On Thu, Feb 18, 2016 at 3:55 PM, Dave Tapuska <dtap...@chromium.org> wrote:Contact emails
dtap...@chromium.org, rby...@chromium.org
Spec
https://dom.spec.whatwg.org/#dom-eventlisteneroptions-passive
Tag review not necessary; minor change to existing API.
Summary
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.
Compositor has been updated to recognize these regions and not block scroll when encountering these passive EventListeners for touch and mouse wheel.Studying these histograms (sorry google-internal only), we can say that on Android roughly a third of all touch events are blocking scrolling unnecessarily, and in 10% of those cases we could save >100ms of latency by eliminating the need to block (and in 1% it's a whopping 500ms+). That's a HUGE potential scroll performance benefit - although (for now) it'll depend on getting authors to opt-in. I've done some outreach to popular libraries (eg. here) and have anecdotal evidence to suggest that getting even one of these libraries to use passive touch listeners may result in a non-trivial improvement in our overall scroll performance metrics.That's a really interesting statistic. I wonder if we should be doing more to convince developers switch to passive listeners. Something like a devtools warning or a console message?
On Fri, Feb 19, 2016 at 3:00 AM, Sami Kyostila <skyo...@chromium.org> wrote:A big +1 for doing this.pe 19. helmikuuta 2016 klo 6.19 Philip Jägenstedt <phi...@opera.com> kirjoitti:Dave, Rick, do you know of any libraries or web properties that have already begun to experiment with this? https://www.chromestatus.com/metrics/feature/timeline/popularity/968 has begun to rise and if it isn't because of this it could be bad news.On Fri, Feb 19, 2016 at 4:54 AM, Rick Byers <rby...@chromium.org> wrote:On Thu, Feb 18, 2016 at 3:55 PM, Dave Tapuska <dtap...@chromium.org> wrote:Contact emails
dtap...@chromium.org, rby...@chromium.org
Spec
https://dom.spec.whatwg.org/#dom-eventlisteneroptions-passive
Tag review not necessary; minor change to existing API.
Summary
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.
Compositor has been updated to recognize these regions and not block scroll when encountering these passive EventListeners for touch and mouse wheel.Studying these histograms (sorry google-internal only), we can say that on Android roughly a third of all touch events are blocking scrolling unnecessarily, and in 10% of those cases we could save >100ms of latency by eliminating the need to block (and in 1% it's a whopping 500ms+). That's a HUGE potential scroll performance benefit - although (for now) it'll depend on getting authors to opt-in. I've done some outreach to popular libraries (eg. here) and have anecdotal evidence to suggest that getting even one of these libraries to use passive touch listeners may result in a non-trivial improvement in our overall scroll performance metrics.That's a really interesting statistic. I wonder if we should be doing more to convince developers switch to passive listeners. Something like a devtools warning or a console message?We could also write an in depth blog post or technical article describing the problem and why developers should adopt it.
Interoperability and Compatibility Risk
Low risk in terms of interoperability and compatibility; this is an opt in feature.
Note that there is some interop risk here. Believe WebKit may be interested in this feature, but no real strong public signals from Mozilla and Edge. From private conversations, I expect all the vendors to play a bit of a "wait and see" here (I've said we'll share some perf stats about the benefits pages are getting from this). In particular, there's an argument that says we should require web developers to switch to Pointer Events if they want this perf benefit for touch scrolling. Personally (although I believe in Pointer Events) I think it's desirable to separate those concerns.
--
Jacob, your discussion is most relevant to Intent to Ship EventListenerOptions where we added the dictionary item in M49.
Interoperability and Compatibility Risk
Low risk in terms of interoperability and compatibility; this is an opt in feature.
Note that there is some interop risk here. Believe WebKit may be interested in this feature, but no real strong public signals from Mozilla and Edge. From private conversations, I expect all the vendors to play a bit of a "wait and see" here (I've said we'll share some perf stats about the benefits pages are getting from this). In particular, there's an argument that says we should require web developers to switch to Pointer Events if they want this perf benefit for touch scrolling. Personally (although I believe in Pointer Events) I think it's desirable to separate those concerns.Forgive me, Rick, because I know we discussed this briefly before and I forget the outcome.But what about the compat implications that this feature is repurposes the useCapture argument already support in browsers? Developers that use this feature in Chrome, will write code like:element.addEventListener("touchstart", foo, {capture: false})In Chrome, this would mean "fire the event during the target/bubbling phase." In all other browsers, this will get interpreted as "fire the event during the capture phase." It seems to me this design won't gracefully fallback in older browsers because of this, raising a real compat risk.In Edge, Firefox: event is fired in capture phaseIn Chrome only: event is fired in bubble phase
We focused too much on backwards compatibility when spec'ing this, and not forwards compatibility.
I think I'm with jrossi here. The risk that pages start to target (even semi-accidentally via some script library updates) browsers which support the new syntax could mean web pages become broken when used with ESR-like or similar rarely updated browsers.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
Contact emails
dtap...@chromium.org, rby...@chromium.org
Spec
https://dom.spec.whatwg.org/#dom-eventlisteneroptions-passive
Tag review not necessary; minor change to existing API.
Summary
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.
Compositor has been updated to recognize these regions and not block scroll when encountering these passive EventListeners for touch and mouse wheel.
Link to “Intent to Implement” blink-dev discussion
https://groups.google.com/a/chromium.org/d/msg/blink-dev/CuOrg2TrnDw/gTgLL59PAQAJ
Is this feature supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?
Yes; Touch Events are available today (with the experimental web platform features flag on).
Mouse wheel support for passive event listeners is blocked on using gesture scrolls events. This is enabled via the --enable-wheel-gestures command line flag; but this option should be enabled on Windows and Linux in the near future. Minor fixes need to be done on Android WebView and on Mac. But the benefits for touch should not be blocked on the implementation for the remaining wheel benefits.
Demo link
http://dtapuska.github.io/passive/wheel-passive.html
http://dtapuska.github.io/passive/touch-passive.html
Debuggability
Debuggability is the same as other EventListeners. Although areas that add passive listeners that don't block scroll will not be present in the "show scrolling perf issues" overlay.
Interoperability and Compatibility Risk
Low risk in terms of interoperability and compatibility; this is an opt in feature.
OWP launch tracking bug
Entry on the feature dashboard
https://www.chromestatus.com/features/5745543795965952
On Fri, Feb 19, 2016 at 5:55 AM, Dave Tapuska <dtap...@chromium.org> wrote:Contact emails
dtap...@chromium.org, rby...@chromium.org
Spec
https://dom.spec.whatwg.org/#dom-eventlisteneroptions-passive
Tag review not necessary; minor change to existing API.
Summary
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.
Compositor has been updated to recognize these regions and not block scroll when encountering these passive EventListeners for touch and mouse wheel.Does it mean only specific input events support passive event listeners?
Thanks. Now I understand that 'passive' means just 'preventPreventDefault'. The benefit is obvious. LGTM3.
What about the original EventListenerOptions addition that landed in Chrome 49 (still in beta)? I think it should be reverted for now.
> So I believe we should go with option A for nowYou mean that you believe that we should go with option B, right?
Can a (100%? 80%?) field trial (on Chrome 49) be of assistance for testing the water? If so, consider this option E?
What worries me, is that the usage seems to already be rising even before this is shipped to stable, like (I think) Phillip pointed out at some point.
On Thu, Feb 25, 2016 at 3:44 PM, PhistucK <phis...@gmail.com> wrote:> So I believe we should go with option A for nowYou mean that you believe that we should go with option B, right?D'oh, yes - thanks.Can a (100%? 80%?) field trial (on Chrome 49) be of assistance for testing the water? If so, consider this option E?It's not a crazy idea, but I don't think it's appropriate here. We've generally avoided enabling web-exposed APIs via a field trial because it makes it a lot harder for developers to reason about behavior / regressions. Instead we rely on the staging of chromium's shipping process to manage the risk. Given that this particular feature has gotten all the way through beta without a single report of an issue, I think the compat risk is relatively low compared to other features.What worries me, is that the usage seems to already be rising even before this is shipped to stable, like (I think) Phillip pointed out at some point.Yeah that worries me too. But note that the trend is all in M48 before we had the feature, so whoever is newly passing objects to addEventListener is mostly doing so in browsers that coerce that to 'true'. It's possible (even likely?) that's a bug in some popular site / library that is completely unrelated to EventListenerOptions.
On Fri, Feb 26, 2016 at 4:22 AM, Rick Byers <rby...@chromium.org> wrote:On Thu, Feb 25, 2016 at 3:44 PM, PhistucK <phis...@gmail.com> wrote:> So I believe we should go with option A for nowYou mean that you believe that we should go with option B, right?D'oh, yes - thanks.Can a (100%? 80%?) field trial (on Chrome 49) be of assistance for testing the water? If so, consider this option E?It's not a crazy idea, but I don't think it's appropriate here. We've generally avoided enabling web-exposed APIs via a field trial because it makes it a lot harder for developers to reason about behavior / regressions. Instead we rely on the staging of chromium's shipping process to manage the risk. Given that this particular feature has gotten all the way through beta without a single report of an issue, I think the compat risk is relatively low compared to other features.What worries me, is that the usage seems to already be rising even before this is shipped to stable, like (I think) Phillip pointed out at some point.Yeah that worries me too. But note that the trend is all in M48 before we had the feature, so whoever is newly passing objects to addEventListener is mostly doing so in browsers that coerce that to 'true'. It's possible (even likely?) that's a bug in some popular site / library that is completely unrelated to EventListenerOptions.It's not necessarily a bug, it could be some code that wants capturing behavior and just happens to be using an object as the truthy value. If it's really just on M48 that would be hard to explain by something in the wild, though, an internal page seems more likely. How high is usage on M48? Is it the same for all platforms? Any weekend variability?
Concerning forward compat, there are two issues:
- The more verbose/ugly the feature detection, the less likely it is to be used.
- The more subtle the failure is in non-supporting browsers, the more likely it is to be unnoticed/ignored.
The current design isn't the best in these two regards, it's true. However, lacking an alternative that the people driving this feature (and Anne) think is an overall improvement, I think we should stay the course. In other words, leave EventListenersOptions support in M49, and ship EventListenerOptions.passive in M50, if possible, or M51.I don't think this is the only reasonable option, but we need to move forward somehow.
Philip
On Fri, Feb 26, 2016 at 12:37 AM, Philip Jägenstedt <phi...@opera.com> wrote:On Fri, Feb 26, 2016 at 4:22 AM, Rick Byers <rby...@chromium.org> wrote:On Thu, Feb 25, 2016 at 3:44 PM, PhistucK <phis...@gmail.com> wrote:> So I believe we should go with option A for nowYou mean that you believe that we should go with option B, right?D'oh, yes - thanks.Can a (100%? 80%?) field trial (on Chrome 49) be of assistance for testing the water? If so, consider this option E?It's not a crazy idea, but I don't think it's appropriate here. We've generally avoided enabling web-exposed APIs via a field trial because it makes it a lot harder for developers to reason about behavior / regressions. Instead we rely on the staging of chromium's shipping process to manage the risk. Given that this particular feature has gotten all the way through beta without a single report of an issue, I think the compat risk is relatively low compared to other features.What worries me, is that the usage seems to already be rising even before this is shipped to stable, like (I think) Phillip pointed out at some point.Yeah that worries me too. But note that the trend is all in M48 before we had the feature, so whoever is newly passing objects to addEventListener is mostly doing so in browsers that coerce that to 'true'. It's possible (even likely?) that's a bug in some popular site / library that is completely unrelated to EventListenerOptions.It's not necessarily a bug, it could be some code that wants capturing behavior and just happens to be using an object as the truthy value. If it's really just on M48 that would be hard to explain by something in the wild, though, an internal page seems more likely. How high is usage on M48? Is it the same for all platforms? Any weekend variability?Looking at this again, we were confused - sorry! This use counter was added in M48 which went stable around Jan 26 and didn't really get close to peak volume until around Feb 4. This bump we see in the graph is only because prior to Jan 26 we were looking at a metric only reported by beta channel while still using the total page loads from all channels in the denominator. The actual value has been holding quite steady over time and across milestones at around 0.02%-0.03% of page loads. Sorry for the confusion![For the pedantic, yes this graph is showing the proportion of FeatureObserver entries with the value in question, which isn't quite the same thing as the proportion of page loads with a particular value. We divide by the 'PageDestruction' bucket count to get the proportion of page loads, but I verified that PageDestruction holds steady (across this time and milestones) around 4% of all FeatureObserver entries. So although the absolute value is wrong (not that you can tell from the unhelpful y-axis scale), the representation of the relative change over time as a function of page loads is still valid].
Concerning forward compat, there are two issues:
- The more verbose/ugly the feature detection, the less likely it is to be used.
- The more subtle the failure is in non-supporting browsers, the more likely it is to be unnoticed/ignored.
The current design isn't the best in these two regards, it's true. However, lacking an alternative that the people driving this feature (and Anne) think is an overall improvement, I think we should stay the course. In other words, leave EventListenersOptions support in M49, and ship EventListenerOptions.passive in M50, if possible, or M51.I don't think this is the only reasonable option, but we need to move forward somehow.Agreed. However Jacob has been out on vacation for the past few days, I'd like to try a little more next week to see if we can come to some sort of compromise that he and Olli are OK with. So at this point we're definitely not shipping passive in M50, and there's still a chance we may want to change the API before shipping in M51. Given that, do you agree that leaving M49 as-is is still the best choice? We're nearly out of time to change anything in 49 here.
On Sat, Feb 27, 2016 at 2:14 AM, Rick Byers <rby...@chromium.org> wrote:On Fri, Feb 26, 2016 at 12:37 AM, Philip Jägenstedt <phi...@opera.com> wrote:On Fri, Feb 26, 2016 at 4:22 AM, Rick Byers <rby...@chromium.org> wrote:On Thu, Feb 25, 2016 at 3:44 PM, PhistucK <phis...@gmail.com> wrote:> So I believe we should go with option A for nowYou mean that you believe that we should go with option B, right?D'oh, yes - thanks.Can a (100%? 80%?) field trial (on Chrome 49) be of assistance for testing the water? If so, consider this option E?It's not a crazy idea, but I don't think it's appropriate here. We've generally avoided enabling web-exposed APIs via a field trial because it makes it a lot harder for developers to reason about behavior / regressions. Instead we rely on the staging of chromium's shipping process to manage the risk. Given that this particular feature has gotten all the way through beta without a single report of an issue, I think the compat risk is relatively low compared to other features.What worries me, is that the usage seems to already be rising even before this is shipped to stable, like (I think) Phillip pointed out at some point.Yeah that worries me too. But note that the trend is all in M48 before we had the feature, so whoever is newly passing objects to addEventListener is mostly doing so in browsers that coerce that to 'true'. It's possible (even likely?) that's a bug in some popular site / library that is completely unrelated to EventListenerOptions.It's not necessarily a bug, it could be some code that wants capturing behavior and just happens to be using an object as the truthy value. If it's really just on M48 that would be hard to explain by something in the wild, though, an internal page seems more likely. How high is usage on M48? Is it the same for all platforms? Any weekend variability?Looking at this again, we were confused - sorry! This use counter was added in M48 which went stable around Jan 26 and didn't really get close to peak volume until around Feb 4. This bump we see in the graph is only because prior to Jan 26 we were looking at a metric only reported by beta channel while still using the total page loads from all channels in the denominator. The actual value has been holding quite steady over time and across milestones at around 0.02%-0.03% of page loads. Sorry for the confusion![For the pedantic, yes this graph is showing the proportion of FeatureObserver entries with the value in question, which isn't quite the same thing as the proportion of page loads with a particular value. We divide by the 'PageDestruction' bucket count to get the proportion of page loads, but I verified that PageDestruction holds steady (across this time and milestones) around 4% of all FeatureObserver entries. So although the absolute value is wrong (not that you can tell from the unhelpful y-axis scale), the representation of the relative change over time as a function of page loads is still valid].So disclaimer aside, the value is 0.02%-0.03% if normalized in the same as the chromestatus.com is? That's actually a fairly big number. It's a safe bet that very few happen to be {capture:true}, so pretty much all of these will be a change in behavior from capturing to non-capturing.
Concerning forward compat, there are two issues:
- The more verbose/ugly the feature detection, the less likely it is to be used.
- The more subtle the failure is in non-supporting browsers, the more likely it is to be unnoticed/ignored.
The current design isn't the best in these two regards, it's true. However, lacking an alternative that the people driving this feature (and Anne) think is an overall improvement, I think we should stay the course. In other words, leave EventListenersOptions support in M49, and ship EventListenerOptions.passive in M50, if possible, or M51.I don't think this is the only reasonable option, but we need to move forward somehow.Agreed. However Jacob has been out on vacation for the past few days, I'd like to try a little more next week to see if we can come to some sort of compromise that he and Olli are OK with. So at this point we're definitely not shipping passive in M50, and there's still a chance we may want to change the API before shipping in M51. Given that, do you agree that leaving M49 as-is is still the best choice? We're nearly out of time to change anything in 49 here.I honestly wouldn't have expected such high usage, and if there's anything that could be done to learn something about it before the experiment reaches stable, that would be valuable. It could be a disaster, or it could all be due to a single site that actually works just the same with the inversion of capturing behavior. Would it make sense to let a custom build crawl the top million sites, does that infrastructure exist?
If there's nothing that can be learned before stable, then leaving EventListenersOptions in M49 is the only remaining way to test whether objects as the third argument in existing web content is a deal-breaker. If we don't learn that, in the worst case months could be lost somewhere down the line, so I'd lean towards keeping it in and being very quick to revert if necessary.
Philip
We appear to have reached an impasse in the forwards compatibility debate - basically agreeing that there's no design which satisfies both camps, and that there's no more data to bring that could convince one side of the other's opinion. In particular, Mozilla and Edge folks feel strongly that it's better to sacrifice some developer ergonomics in order to lower the forwards compatibility risk, while Google, Opera and Apple folks feel the compat risk is low enough that better developer ergonomics should win out.I'm personally content with either choice, but we can't afford to delay shipping by another milestone. It's clear that the majority opinion of the DOM spec community is that the risk is not high enough to justify this change to the spec. Since this feature is high-value and urgent, and there does not seem to be any path by which the DOM spec would change for this issue, and blink only ships APIs according to the specifications, I propose that we continue with our plans to ship with the spec'd API in M51.Chris, since you gave your LGTM before this concern was raised, I consider it stale. Can you please re-evaluate? Any other API owners want to weigh in again?If there's any bright side here it's that, if we proceed as planned, we're going to learn something new about the forwards compatibility risk of changing popular APIs in the platform which should help inform future such debates. Also the main lesson for me is that I should have brought the incubation for this design to the WICG early on to ensure there were no barriers to having early design discussion openly including Microsoft (even though the eventual spec would still be a WHATWG one). That's now been rectified, but I'll be sure to do that from the start for potentially contentious designs in the future.I'd love to hear feedback anyone has on how best to handle such disagreements in the future (but please fork this thread or reach out elsewhere to avoid polluting the intent discussion that is primary here).Thanks,Rick
On Mon, Feb 29, 2016 at 5:14 PM, Rick Byers <rby...@chromium.org> wrote:
On Sat, Feb 27, 2016 at 1:51 PM, Philip Jägenstedt <phi...@opera.com> wrote:
On Sat, Feb 27, 2016 at 2:14 AM, Rick Byers <rby...@chromium.org> wrote:
On Fri, Feb 26, 2016 at 12:37 AM, Philip Jägenstedt <phi...@opera.com> wrote:On Fri, Feb 26, 2016 at 4:22 AM, Rick Byers <rby...@chromium.org> wrote:On Thu, Feb 25, 2016 at 3:44 PM, PhistucK <phis...@gmail.com> wrote:> So I believe we should go with option A for nowYou mean that you believe that we should go with option B, right?D'oh, yes - thanks.Can a (100%? 80%?) field trial (on Chrome 49) be of assistance for testing the water? If so, consider this option E?It's not a crazy idea, but I don't think it's appropriate here. We've generally avoided enabling web-exposed APIs via a field trial because it makes it a lot harder for developers to reason about behavior / regressions. Instead we rely on the staging of chromium's shipping process to manage the risk. Given that this particular feature has gotten all the way through beta without a single report of an issue, I think the compat risk is relatively low compared to other features.What worries me, is that the usage seems to already be rising even before this is shipped to stable, like (I think) Phillip pointed out at some point.Yeah that worries me too. But note that the trend is all in M48 before we had the feature, so whoever is newly passing objects to addEventListener is mostly doing so in browsers that coerce that to 'true'. It's possible (even likely?) that's a bug in some popular site / library that is completely unrelated to EventListenerOptions.It's not necessarily a bug, it could be some code that wants capturing behavior and just happens to be using an object as the truthy value. If it's really just on M48 that would be hard to explain by something in the wild, though, an internal page seems more likely. How high is usage on M48? Is it the same for all platforms? Any weekend variability?Looking at this again, we were confused - sorry! This use counter was added in M48 which went stable around Jan 26 and didn't really get close to peak volume until around Feb 4. This bump we see in the graph is only because prior to Jan 26 we were looking at a metric only reported by beta channel while still using the total page loads from all channels in the denominator. The actual value has been holding quite steady over time and across milestones at around 0.02%-0.03% of page loads. Sorry for the confusion!
[For the pedantic, yes this graph is showing the proportion of FeatureObserver entries with the value in question, which isn't quite the same thing as the proportion of page loads with a particular value. We divide by the 'PageDestruction' bucket count to get the proportion of page loads, but I verified that PageDestruction holds steady (across this time and milestones) around 4% of all FeatureObserver entries. So although the absolute value is wrong (not that you can tell from the unhelpful y-axis scale), the representation of the relative change over time as a function of page loads is still valid].
So disclaimer aside, the value is 0.02%-0.03% if normalized in the same as the chromestatus.com is? That's actually a fairly big number. It's a safe bet that very few happen to be {capture:true}, so pretty much all of these will be a change in behavior from capturing to non-capturing.