TPE DOM/Pointer events
< TPE DOM
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
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, touch and pen 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
- Add PEv2 stylus attributes
- After fixing blocking issues reported by QA, we plan to invite community members to test the feature widely.
- Schedule - Target riding Firefox 53 Nightly (on track)
- NOTE - According to QA feedback, we may consider to ship only to Windows first if PE is going to be better than the current touch events.
- Open Questions: any concerns to ship this set of API to a certain platform first, instead of all the platforms? if there's no concern, we will merge two phases into one. (should wait for QA testing results first, then ask for Reviewer's comment)
- Acceptance criteria
- Milestone 3 - To enable PE on Linux on Nightly
- Acceptance criteria
- Web-platform-tests all pass
- No regression on existing mouse, touch and pen experiences
- To work with QA
- Tasks
- WidgetPointer arch proposal discussion - Investigate Linux, Fennec, Windows (confirmed with reviewer)
- Schedule: TBD
- Acceptance criteria
- Milestone 4 - Android
- Milestone 5 - MAC
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%);