Bug 191446 - [iOS] Mouse/Touch/Pointer events are missing modifier keys
Summary: [iOS] Mouse/Touch/Pointer events are missing modifier keys
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit Misc. (show other bugs)
Version: WebKit Local Build
Hardware: iPhone / iPad iOS 12
: P2 Normal
Assignee: Daniel Bates
URL: https://icloud.com
Keywords: InRadar, PlatformOnly
Depends on: 194241 194513 194514
Blocks: 190571
  Show dependency treegraph
 
Reported: 2018-11-08 16:58 PST by Daniel Bates
Modified: 2019-02-11 15:24 PST (History)
8 users (show)

See Also:


Attachments
Work-in-progress patch (39.30 KB, patch)
2019-02-06 16:08 PST, Daniel Bates
no flags Details | Formatted Diff | Diff
Now with an untested test! (48.19 KB, patch)
2019-02-07 11:16 PST, Daniel Bates
no flags Details | Formatted Diff | Diff
Work-in-progress patch (49.71 KB, patch)
2019-02-07 12:23 PST, Daniel Bates
no flags Details | Formatted Diff | Diff
Work-in-progress patch (49.86 KB, patch)
2019-02-07 13:31 PST, Daniel Bates
no flags Details | Formatted Diff | Diff
Archive of layout-test-results from ews103 for mac-highsierra (2.42 MB, application/zip)
2019-02-07 14:31 PST, EWS Watchlist
no flags Details
Archive of layout-test-results from ews112 for mac-highsierra (2.28 MB, application/zip)
2019-02-07 15:01 PST, EWS Watchlist
no flags Details
Archive of layout-test-results from ews121 for ios-simulator-wk2 (1.19 MB, application/zip)
2019-02-07 15:02 PST, EWS Watchlist
no flags Details
Archive of layout-test-results from ews107 for mac-highsierra-wk2 (2.53 MB, application/zip)
2019-02-07 15:11 PST, EWS Watchlist
no flags Details
Patch and layout tests (103.41 KB, patch)
2019-02-08 14:51 PST, Daniel Bates
no flags Details | Formatted Diff | Diff
Archive of layout-test-results from ews100 for mac-highsierra (2.44 MB, application/zip)
2019-02-08 15:56 PST, EWS Watchlist
no flags Details
Archive of layout-test-results from ews107 for mac-highsierra-wk2 (2.73 MB, application/zip)
2019-02-08 16:02 PST, EWS Watchlist
no flags Details
Archive of layout-test-results from ews121 for ios-simulator-wk2 (737.19 KB, application/zip)
2019-02-08 16:23 PST, EWS Watchlist
no flags Details
Archive of layout-test-results from ews113 for mac-highsierra (2.05 MB, application/zip)
2019-02-08 18:15 PST, EWS Watchlist
no flags Details
Patch and layout tests (105.72 KB, patch)
2019-02-10 12:36 PST, Daniel Bates
no flags Details | Formatted Diff | Diff
Patch and layout tests (106.27 KB, patch)
2019-02-10 12:47 PST, Daniel Bates
no flags Details | Formatted Diff | Diff
Archive of layout-test-results from ews107 for mac-highsierra-wk2 (2.60 MB, application/zip)
2019-02-10 14:05 PST, EWS Watchlist
no flags Details
Archive of layout-test-results from ews124 for ios-simulator-wk2 (2.47 MB, application/zip)
2019-02-10 14:47 PST, EWS Watchlist
no flags Details
Patch and layout tests (111.11 KB, patch)
2019-02-10 15:09 PST, Daniel Bates
no flags Details | Formatted Diff | Diff
Cat for Tim (46.93 KB, patch)
2019-02-11 10:55 PST, Daniel Bates
thorton: review-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Daniel Bates 2018-11-08 16:58:30 PST
Seen on an iPad running iOS 12 with a hardware keyboard attached.

All modifier keys are false in a non-programmatically-generated mouse event regardless of whether a modifier key was held when the mouse event was created. I noticed this when using the Contact app on iCloud.com. You can observe this issue yourself by performing the following:

1. Visit <https://icloud.com> and sign in.
2. Tap Contacts.
3. Tap on some contact.
4. Hold down the Shift key on the keyboard and tap another contact.

Then all contacts between the first contact tapped in (3) and the last contact tapped in (4) should be selected. But only the last tapped contact in (4) is selected.
Comment 1 Radar WebKit Bug Importer 2018-11-08 16:58:49 PST
<rdar://problem/45929460>
Comment 2 Daniel Bates 2019-02-06 14:56:58 PST
(In reply to Daniel Bates from comment #0)
> Seen on an iPad running iOS 12 with a hardware keyboard attached.
> 
> All modifier keys are false in a non-programmatically-generated mouse event
> regardless of whether a modifier key was held when the mouse event was
> created. I noticed this when using the Contact app on iCloud.com. You can
> observe this issue yourself by performing the following:
> 
> 1. Visit <https://icloud.com> and sign in.
> 2. Tap Contacts.
> 3. Tap on some contact.
> 4. Hold down the Shift key on the keyboard and tap another contact.
> 
> Then all contacts between the first contact tapped in (3) and the last
> contact tapped in (4) should be selected. But only the last tapped contact
> in (4) is selected.

iCloud seems to use touch events on iOS and does not check for modifier flags. iCloud will address this in <rdar://problem/47856410>. Re-purposing this bug to wire up modifier keys for mouse, touch/pointer events.
Comment 3 Daniel Bates 2019-02-06 16:08:07 PST
Created attachment 361342 [details]
Work-in-progress patch
Comment 4 EWS Watchlist 2019-02-06 16:09:21 PST Comment hidden (obsolete)
Comment 5 Daniel Bates 2019-02-07 11:16:18 PST
Created attachment 361421 [details]
Now with an untested test!

Now packed with a build fix and fortified with an untested test!
Comment 6 EWS Watchlist 2019-02-07 11:20:04 PST Comment hidden (obsolete)
Comment 7 Daniel Bates 2019-02-07 12:23:00 PST
Created attachment 361427 [details]
Work-in-progress patch
Comment 8 EWS Watchlist 2019-02-07 12:25:06 PST Comment hidden (obsolete)
Comment 9 Daniel Bates 2019-02-07 13:31:57 PST
Created attachment 361435 [details]
Work-in-progress patch
Comment 10 EWS Watchlist 2019-02-07 13:34:48 PST Comment hidden (obsolete)
Comment 11 EWS Watchlist 2019-02-07 14:31:17 PST Comment hidden (obsolete)
Comment 12 EWS Watchlist 2019-02-07 14:31:19 PST Comment hidden (obsolete)
Comment 13 EWS Watchlist 2019-02-07 15:01:32 PST Comment hidden (obsolete)
Comment 14 EWS Watchlist 2019-02-07 15:01:33 PST Comment hidden (obsolete)
Comment 15 EWS Watchlist 2019-02-07 15:02:20 PST Comment hidden (obsolete)
Comment 16 EWS Watchlist 2019-02-07 15:02:21 PST Comment hidden (obsolete)
Comment 17 EWS Watchlist 2019-02-07 15:11:38 PST Comment hidden (obsolete)
Comment 18 EWS Watchlist 2019-02-07 15:11:39 PST Comment hidden (obsolete)
Comment 19 Daniel Bates 2019-02-08 14:51:25 PST
Created attachment 361538 [details]
Patch and layout tests
Comment 20 EWS Watchlist 2019-02-08 14:54:26 PST Comment hidden (obsolete)
Comment 21 EWS Watchlist 2019-02-08 15:56:54 PST Comment hidden (obsolete)
Comment 22 EWS Watchlist 2019-02-08 15:56:56 PST Comment hidden (obsolete)
Comment 23 EWS Watchlist 2019-02-08 16:02:03 PST Comment hidden (obsolete)
Comment 24 EWS Watchlist 2019-02-08 16:02:04 PST Comment hidden (obsolete)
Comment 25 EWS Watchlist 2019-02-08 16:23:28 PST Comment hidden (obsolete)
Comment 26 EWS Watchlist 2019-02-08 16:23:29 PST Comment hidden (obsolete)
Comment 27 EWS Watchlist 2019-02-08 18:15:42 PST Comment hidden (obsolete)
Comment 28 EWS Watchlist 2019-02-08 18:15:44 PST Comment hidden (obsolete)
Comment 29 Daniel Bates 2019-02-10 12:36:11 PST
Created attachment 361637 [details]
Patch and layout tests
Comment 30 EWS Watchlist 2019-02-10 12:38:52 PST
Attachment 361637 [details] did not pass style-queue:


ERROR: Source/WebKit/Shared/ios/NativeWebTouchEventIOS.mm:124:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
Total errors found: 1 in 35 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 31 Daniel Bates 2019-02-10 12:47:41 PST
Created attachment 361639 [details]
Patch and layout tests
Comment 32 EWS Watchlist 2019-02-10 12:52:12 PST
Attachment 361639 [details] did not pass style-queue:


ERROR: Source/WebKit/Shared/ios/NativeWebTouchEventIOS.mm:124:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
Total errors found: 1 in 35 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 33 EWS Watchlist 2019-02-10 14:05:23 PST
Comment on attachment 361639 [details]
Patch and layout tests

Attachment 361639 [details] did not pass mac-wk2-ews (mac-wk2):
Output: https://webkit-queues.webkit.org/results/11101945

New failing tests:
http/tests/security/anchor-download-block-crossorigin.html
Comment 34 EWS Watchlist 2019-02-10 14:05:25 PST
Created attachment 361641 [details]
Archive of layout-test-results from ews107 for mac-highsierra-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews107  Port: mac-highsierra-wk2  Platform: Mac OS X 10.13.6
Comment 35 EWS Watchlist 2019-02-10 14:47:15 PST
Comment on attachment 361639 [details]
Patch and layout tests

Attachment 361639 [details] did not pass ios-sim-ews (ios-simulator-wk2):
Output: https://webkit-queues.webkit.org/results/11102004

New failing tests:
imported/w3c/web-platform-tests/webrtc/simplecall-no-ssrcs.https.html
Comment 36 EWS Watchlist 2019-02-10 14:47:17 PST
Created attachment 361642 [details]
Archive of layout-test-results from ews124 for ios-simulator-wk2

The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews124  Port: ios-simulator-wk2  Platform: Mac OS X 10.13.6
Comment 37 Daniel Bates 2019-02-10 15:09:01 PST
Created attachment 361646 [details]
Patch and layout tests

Also patch up _hoverGestureRecognizerChanged
Comment 38 EWS Watchlist 2019-02-10 15:12:12 PST
Attachment 361646 [details] did not pass style-queue:


ERROR: Source/WebKit/Shared/ios/NativeWebTouchEventIOS.mm:124:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
Total errors found: 1 in 38 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 39 Tim Horton 2019-02-11 10:47:59 PST
Comment on attachment 361646 [details]
Patch and layout tests

View in context: https://bugs.webkit.org/attachment.cgi?id=361646&action=review

> LayoutTests/http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt:-2
> -CONSOLE MESSAGE: line 107: adcampaignid must have a non-negative value less than 64 for Ad Click Attribution.

We should really fix these
Comment 40 Daniel Bates 2019-02-11 10:55:46 PST
Created attachment 361696 [details]
Cat for Tim
Comment 41 Daniel Bates 2019-02-11 11:02:00 PST
Comment on attachment 361646 [details]
Patch and layout tests

Clearing flags on attachment: 361646

Committed r241272: <https://trac.webkit.org/changeset/241272>
Comment 42 Daniel Bates 2019-02-11 11:02:02 PST
All reviewed patches have been landed.  Closing bug.
Comment 43 Alex Christensen 2019-02-11 12:43:19 PST
Build fix in http://trac.webkit.org/r241276
Comment 44 WebKit Commit Bot 2019-02-11 13:48:41 PST
Re-opened since this is blocked by bug 194513
Comment 45 Daniel Bates 2019-02-11 15:24:32 PST
Committed r241282: <https://trac.webkit.org/changeset/241282>