TPE DOM/Pointer events
Introduction
This project is to support events and related interfaces for handling hardware pointer input from various devices including a mouse, pen, touchscreen, etc. There's implementation prefed-off on Nightly due to lack of stability. We will start from enabling the feature for Desktop again on Nightly then on Fennec.
References:
Main Members
Engineers: Stone Shih (main contact), Ben Hsu
QA contact: Alexandru Simonca (:asimonca)
Meeting Minutes & Project Status
Sync-up meeting gdoc or etherpad
Test plan and test cases
Roadmap
PHASE 1 - Enabling PE on Nightly
- Milestone 1 - support major Pointer events behaviors on Windows Desktop with Pref-off on Nightly 52
- Tasks
- Fix crashes and critical issues breaking existing mouse and touch experiences
- Automation test enhancement
- Schedule
- 2016 Q3
- Checking point: 2016 8E
- Tasks
- Milestone 2 - To enable PE on Windows on Nightly 53 <WE ARE HERE!>
- Acceptance criteria
- Web-platform-tests all pass
- No regression on existing mouse and touch experiences
- To work with QA
- Tasks
- QA perform manual tests upon major websites on Windows Desktop
- Fix blocking issues
- High-level click events
- Compatibility mouse events
- Implement pointer capture behaviors
- Fire boundary events
- After fixing blocking issues reported by QA, we plan to invite community members to test the feature widely.
- Schedule - Target riding Firefox 53 Nightly
- Acceptance criteria
- Milestone 3 - To enable PE on Linux & Android on Nightly
- Acceptance criteria
- Web-platform-tests all pass
- No regression on existing mouse and touch experiences
- To work with QA
- Tasks
- WidgetPointer arch proposal discussion - Investigate Linux, Fennec, Windows
- Fix mouse and touch integration bugs on Linux
- Fix mouse and touch integration bugs on Android
- Schedule
- Checking point: 2016 9E (proposal review)
- Acceptance criteria
- Milestone 4 - To support Pen features
- Acceptance criteria - TBD
- Tasks
- Integrate stylus on Windows, Linux, and Android
- Add PEv2 stylus attributes
- Schedule - TBD
PHASE 2 - Shipping PE to Desktop & Fennec release
- Acceptance criteria - to clarify
- Open questions ?
- Tasks
- Add Telemetry
- Target ship date: TBD (2017)
Project Dashboard
Meta Bugs
| ID | Summary | Priority | Status |
|---|---|---|---|
| 822898 | [meta] Implement pointer events | P3 | RESOLVED |
| 1166347 | Enabling pointer events in Nightly builds | P3 | RESOLVED |
2 Total; 0 Open (0%); 2 Resolved (100%); 0 Verified (0%);
Milestone_1 Bugs & Progress
Implementation part: Miscelleous & Crashes fixing - DONE
| ID | Summary | Status | Target milestone | Resolution | Assigned to | Depends on | Blocks |
|---|---|---|---|---|---|---|---|
| 1258808 | Pointer event ids are always 0 | RESOLVED | mozilla51 | FIXED | Ben Hsu [:HoPang] | 1166347 |
1 Total; 0 Open (0%); 1 Resolved (100%); 0 Verified (0%);
Testing refinement:
| ID | Summary | Status | Target milestone | Resolution | Assigned to | Depends on | Blocks |
|---|---|---|---|---|---|---|---|
| 1299199 | [Pointer Events] Replace all `sendPointerEvent()` with `sendMouseEvent()` in testcases. | RESOLVED | mozilla51 | FIXED | Ben Hsu [:HoPang] | 1302034, 1299024 | |
| 1299202 | [Pointer Events] Make sure only `mousemove`, `mousedown`, `mouseup` and `mousecancel` used in testcases | RESOLVED | --- | DUPLICATE | Ben Hsu [:HoPang] | 1299024 | |
| 1299209 | [Pointer Events] PointerId should be covered in PE test automation. | RESOLVED | mozilla53 | FIXED | Ben Hsu [:HoPang] | 1299024 | |
| 1299215 | [Pointer Events] Decouple `button` and `buttons` when synthesizing Widget Events. | RESOLVED | --- | DUPLICATE | Ben Hsu [:HoPang] | 1299024 | |
| 1302297 | [Pointer Events] Correct the `button` values used by current mochitest wrappers. | RESOLVED | mozilla53 | FIXED | Ben Hsu [:HoPang] | 1299024 |
5 Total; 0 Open (0%); 5 Resolved (100%); 0 Verified (0%);
Milestone_2 Bugs & Progress
| ID | Summary | Status | Target milestone | Resolution | Assigned to | Depends on | Blocks |
|---|---|---|---|---|---|---|---|
| 1258804 | FireFox crashes on a pointerevent capturing scenario | RESOLVED | mozilla51 | FIXED | Ming-Chou Shih [:stone] | 1166347, 1284185, 1292437, 1294335 | |
| 1290805 | Attributes of gotpointercapture and lostpointercapture should be the same as the pointer event that causes them | RESOLVED | --- | DUPLICATE | Ming-Chou Shih [:stone] | 1292437 | |
| 1293174 | [Pointer Event] Implement implicit pointer capture for touch | RESOLVED | mozilla52 | FIXED | Ming-Chou Shih [:stone] | 1292437, 1669729 | |
| 1293176 | [Pointer Event] Suppress boundary events when captured | RESOLVED | --- | DUPLICATE | Ming-Chou Shih [:stone] | 1292079 | |
| 1294335 | [Pointer Event] Refine setPointerCapture / releasePointerCapture to follow the algorithm defined in the spec | RESOLVED | mozilla51 | FIXED | Ming-Chou Shih [:stone] | 1258804 | 1292437 |
5 Total; 0 Open (0%); 5 Resolved (100%); 0 Verified (0%);