RESOLVED WONTFIX 114379
Enable consumable user gestures for WebKit2 and Mac/Win ports
https://bugs.webkit.org/show_bug.cgi?id=114379
Summary Enable consumable user gestures for WebKit2 and Mac/Win ports
jochen
Reported 2013-04-10 13:42:42 PDT
Enable consumable user gestures for WebKit2 ports
Attachments
Patch (17.47 KB, patch)
2013-04-10 13:44 PDT, jochen
no flags
Archive of layout-test-results from webkit-ews-05 for mac-mountainlion (680.24 KB, application/zip)
2013-04-10 21:53 PDT, Build Bot
no flags
Patch (20.72 KB, patch)
2013-04-11 09:38 PDT, jochen
beidson: review-
jochen
Comment 1 2013-04-10 13:44:50 PDT
jochen
Comment 2 2013-04-10 13:46:27 PDT
I guess this will fail to compile on all but mac-wk2, but I first need to symbol names to add UserGestureIndicator::consumeUserGesture to all the export lists
Build Bot
Comment 3 2013-04-10 21:53:13 PDT
Comment on attachment 197398 [details] Patch Attachment 197398 [details] did not pass mac-ews (mac): Output: http://webkit-commit-queue.appspot.com/results/17590107 New failing tests: fast/events/popup-forwarded-gesture-blocked.html fast/events/popup-allowed-from-gesture-only-once-iframes.html fast/events/popup-allowed-from-gesture-only-once-two-events.html fast/events/popup-allowed-from-gesture-only-once.html
Build Bot
Comment 4 2013-04-10 21:53:14 PDT
Created attachment 197503 [details] Archive of layout-test-results from webkit-ews-05 for mac-mountainlion The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: webkit-ews-05 Port: mac-mountainlion Platform: Mac OS X 10.8.2
jochen
Comment 5 2013-04-11 09:38:31 PDT
jochen
Comment 6 2013-04-11 09:39:56 PDT
I guess we should ask on webkit-dev whether the other ports want this enabled or have the new tests skipped.
Brady Eidson
Comment 7 2013-04-12 13:42:26 PDT
Comment on attachment 197627 [details] Patch From the email thread on webkit-dev: "There are some gotchas: e.g. if your port is using out of process plugins, and the plugin wants to react to a user gesture, you're probably storing whether WebKit is processing a user gesture before calling out to the plugin, and restore a UserGestureIndicator once the plugin replies. To make sure a plugin cannot use this to generate additional user gestures (after the original user gesture was already consumed), you should store the UserGestureIndicator::currentToken() and use that to create the UserGestureIndicator (it's basically a ref-counted integer of how many gestures are left to consume)." If this patch is known to break out-of-process plugins, then this patch is known to break "must not break" ports.
jochen
Comment 8 2013-04-12 13:59:54 PDT
(In reply to comment #7) > (From update of attachment 197627 [details]) > From the email thread on webkit-dev: > > "There are some gotchas: e.g. if your port is using out of process plugins, and the plugin wants to react to a user gesture, you're probably storing whether WebKit is processing a user gesture before calling out to the plugin, and restore a UserGestureIndicator once the plugin replies. To make sure a plugin cannot use this to generate additional user gestures (after the original user gesture was already consumed), you should store the UserGestureIndicator::currentToken() and use that to create the UserGestureIndicator (it's basically a ref-counted integer of how many gestures are left to consume)." > > If this patch is known to break out-of-process plugins, then this patch is known to break "must not break" ports. I guess that paragraph was unclear: it does not break the port, it just doesn't fix all the ways a website could work around the check.
jochen
Comment 9 2013-07-01 13:00:34 PDT
As discussed on IRC, the concept of consumable user gestures doesn't quite match what seems desirable for current ports, so I'm closing this bug.
Note You need to log in before you can comment on or make changes to this bug.