Closed
Bug 1203140
Opened 9 years ago
Closed 9 years ago
touchstart / touchmove handlers delay wheel scrolling (for example on imgur)
Categories
(Core :: Panning and Zooming, defect)
Core
Panning and Zooming
Tracking
()
RESOLVED
FIXED
mozilla49
Tracking | Status | |
---|---|---|
firefox45 | --- | unaffected |
firefox46 | --- | wontfix |
firefox47 | --- | wontfix |
firefox48 | --- | fixed |
firefox49 | --- | fixed |
People
(Reporter: mstange, Assigned: kats)
References
(Depends on 1 open bug, Blocks 1 open bug)
Details
(Keywords: perf, Whiteboard: [gfx-noted])
Attachments
(3 files)
2.19 KB,
patch
|
smaug
:
review+
Sylvestre
:
approval-mozilla-beta+
|
Details | Diff | Splinter Review |
2.49 KB,
patch
|
smaug
:
review+
Sylvestre
:
approval-mozilla-beta+
|
Details | Diff | Splinter Review |
7.22 KB,
patch
|
smaug
:
review+
Sylvestre
:
approval-mozilla-beta+
|
Details | Diff | Splinter Review |
At the moment, nsLayoutUtils::HasApzAwareListeners just lumps all kinds of event handlers into one, and makes APZ wait for a content response if there's a listener for any of those event types, regardless of what kind of event is being processed by APZ.
There are sites (e.g. imgur) which have touch event listeners but no wheel event listeners. Those sites shouldn't be allowed to slow down wheel event processing.
I think there are two options here:
- Either create a separate dispatch-to-content region per event type, or
- check which event types are supported by APZ on the current platform, and don't
add listeners for unsupported events to the dispatch-to-content region.
The latter options sounds more attractive, until we start supporting both wheel and touch events on the same platform.
Assignee | ||
Comment 1•9 years ago
|
||
Doing this might also help reduce the performance impact of event regions.
Blocks: apz-talos
Assignee | ||
Updated•9 years ago
|
status-firefox43:
affected → ---
status-firefox45:
--- → unaffected
status-firefox46:
--- → affected
status-firefox47:
--- → affected
Keywords: perf
Whiteboard: [gfx-noted]
Assignee | ||
Updated•9 years ago
|
status-firefox48:
--- → affected
Assignee | ||
Comment 2•9 years ago
|
||
Not important enough to uplift.
Assignee | ||
Comment 3•9 years ago
|
||
I have patches for this, but the test needs bug 1274284 fixed first.
Assignee: nobody → bugmail.mozilla
Depends on: 1274284
Assignee | ||
Comment 4•9 years ago
|
||
Try push with bug 1273654 + bug 1274284 + this bug, for verification:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=4aca30e71385
Assignee | ||
Comment 5•9 years ago
|
||
I canceled the above try push because it had some bad patches from bug 1274284 included. Since then I rewrote the test to not require bug 1274284. New try push at https://treeherder.mozilla.org/#/jobs?repo=try&revision=211c68f276dc&group_state=expanded confirms it's good (the many starred windows failures are a pre-existing issue).
Assignee | ||
Comment 6•9 years ago
|
||
Attachment #8755092 -
Flags: review?(bugs)
Assignee | ||
Comment 7•9 years ago
|
||
Attachment #8755093 -
Flags: review?(bugs)
Assignee | ||
Comment 8•9 years ago
|
||
Attachment #8755094 -
Flags: review?(bugs)
Assignee | ||
Comment 9•9 years ago
|
||
Note that part 3 depends upon the patches in bug 1273654, although it can be rebased to not use those patches.
Updated•9 years ago
|
Attachment #8755092 -
Flags: review?(bugs) → review+
Updated•9 years ago
|
Attachment #8755093 -
Flags: review?(bugs) → review+
Comment 10•9 years ago
|
||
Comment on attachment 8755094 [details] [diff] [review]
Part 3 - Test
Don't you need some todo() or ok() in case isApzEnabled() returns false so that the test doesn't complain nothing was tested.
Attachment #8755094 -
Flags: review?(bugs) → review+
Assignee | ||
Comment 11•9 years ago
|
||
(In reply to Olli Pettay [:smaug] from comment #10)
> Don't you need some todo() or ok() in case isApzEnabled() returns false so
> that the test doesn't complain nothing was tested.
The isApzEnabled() function implementation does that internally. I figured it was nicer to do it that way so I didn't have to do it at every use-site.
Assignee | ||
Comment 12•9 years ago
|
||
I rebased the test to not depend on bug 1273654, so I can get it landed. I'll update it as part of the refactorings in bug 1273654 eventually.
Comment 13•9 years ago
|
||
Comment 14•9 years ago
|
||
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #12)
> I rebased the test to not depend on bug 1273654, so I can get it landed.
> I'll update it as part of the refactorings in bug 1273654 eventually.
Sorry for being away for so long and causing you to do things like this :/
Assignee | ||
Comment 15•9 years ago
|
||
No worries, it wasn't very hard to do. I do look forward to landing those refactoring patches though :)
Comment 16•9 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/d4ea3b7f6bac
https://hg.mozilla.org/mozilla-central/rev/1c1effae7146
https://hg.mozilla.org/mozilla-central/rev/7d77ceeacfa6
Status: NEW → RESOLVED
Closed: 9 years ago
status-firefox49:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla49
Updated•9 years ago
|
Flags: qe-verify-
Assignee | ||
Comment 17•9 years ago
|
||
Comment on attachment 8755092 [details] [diff] [review]
Part 1 - Add a pref cache
Approval Request Comment
[Feature/regressing bug #]: APZ
[User impact if declined]: Pages with touch listeners can slow down wheel scrolling even on devices where touch events aren't supported
[Describe test coverage new/current, TreeHerder]: patches include a test
[Risks and why]: pretty low risk, code has been on m-c for a bit and it's a fairly simple optimization
[String/UUID change made/needed]: none
Attachment #8755092 -
Flags: approval-mozilla-beta?
Assignee | ||
Updated•9 years ago
|
Attachment #8755093 -
Flags: approval-mozilla-beta?
Assignee | ||
Updated•9 years ago
|
Attachment #8755094 -
Flags: approval-mozilla-beta?
Comment 18•9 years ago
|
||
Comment on attachment 8755092 [details] [diff] [review]
Part 1 - Add a pref cache
Improve a feature, taking it.
Attachment #8755092 -
Flags: approval-mozilla-beta? → approval-mozilla-beta+
Updated•9 years ago
|
Attachment #8755093 -
Flags: approval-mozilla-beta? → approval-mozilla-beta+
Updated•9 years ago
|
Attachment #8755094 -
Flags: approval-mozilla-beta? → approval-mozilla-beta+
Comment 19•9 years ago
|
||
part 2 has problems to apply to beta :
grafting 346425:1c1effae7146 "Bug 1203140 - Don't add touch listener areas to dispatch-to-content regions unless touch events are enabled. r=smaug"
merging dom/events/EventListenerManager.cpp
warning: conflicts while merging dom/events/EventListenerManager.cpp! (edit, then use 'hg resolve --mark')
abort: unresolved conflicts, can't continue
(use 'hg resolve' and 'hg graft --continue')
can you take a look ?
Flags: needinfo?(bugmail.mozilla)
Comment 20•9 years ago
|
||
bugherder uplift |
Assignee | ||
Comment 21•9 years ago
|
||
Parts 2 and 3:
remote: https://hg.mozilla.org/releases/mozilla-beta/rev/4cec5ef7ea55
remote: https://hg.mozilla.org/releases/mozilla-beta/rev/2c5721ac42d7
Flags: needinfo?(bugmail.mozilla)
Assignee | ||
Comment 22•9 years ago
|
||
https://hg.mozilla.org/releases/mozilla-beta/rev/8a2842b342b5
I disabled the test on beta because it was permafailing. It requires passive event listener support to pass, and passive event listener support is only in 49 and up. The actual patches in this bug don't need passive event listener support so they are find to stay in 48.
You need to log in
before you can comment on or make changes to this bug.
Description
•