Bug 191446

Summary: [iOS] Mouse/Touch/Pointer events are missing modifier keys
Product: WebKit Reporter: Daniel Bates <dbates>
Component: WebKit Misc.Assignee: Daniel Bates <dbates>
Status: RESOLVED FIXED    
Severity: Normal CC: achristensen, commit-queue, ews-watchlist, megan_gardner, rniwa, thorton, webkit-bug-importer, wenson_hsieh
Priority: P2 Keywords: InRadar, PlatformOnly
Version: WebKit Local Build   
Hardware: iPhone / iPad   
OS: iOS 12   
URL: https://icloud.com
Bug Depends on: 194241, 194513, 194514    
Bug Blocks: 190571    
Attachments:
Description Flags
Work-in-progress patch
none
Now with an untested test!
none
Work-in-progress patch
none
Work-in-progress patch
none
Archive of layout-test-results from ews103 for mac-highsierra
none
Archive of layout-test-results from ews112 for mac-highsierra
none
Archive of layout-test-results from ews121 for ios-simulator-wk2
none
Archive of layout-test-results from ews107 for mac-highsierra-wk2
none
Patch and layout tests
none
Archive of layout-test-results from ews100 for mac-highsierra
none
Archive of layout-test-results from ews107 for mac-highsierra-wk2
none
Archive of layout-test-results from ews121 for ios-simulator-wk2
none
Archive of layout-test-results from ews113 for mac-highsierra
none
Patch and layout tests
none
Patch and layout tests
none
Archive of layout-test-results from ews107 for mac-highsierra-wk2
none
Archive of layout-test-results from ews124 for ios-simulator-wk2
none
Patch and layout tests
none
Cat for Tim thorton: review-

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>