RESOLVED FIXED138400
Disable interaction with action menu page previews
https://bugs.webkit.org/show_bug.cgi?id=138400
Summary Disable interaction with action menu page previews
Conrad Shultz
Reported 2014-11-04 18:53:41 PST
Previews should ignore all mouse events except scrolling.
Attachments
Patch (7.20 KB, patch)
2014-11-04 19:09 PST, Conrad Shultz
no flags
Patch (7.04 KB, patch)
2014-11-05 10:39 PST, Conrad Shultz
no flags
Patch (7.29 KB, patch)
2014-11-05 11:04 PST, Conrad Shultz
no flags
Radar WebKit Bug Importer
Comment 1 2014-11-04 18:55:07 PST
Conrad Shultz
Comment 2 2014-11-04 19:09:19 PST
Anders Carlsson
Comment 3 2014-11-05 08:44:39 PST
Comment on attachment 240996 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=240996&action=review > Source/WebKit2/UIProcess/API/mac/WKView.mm:1211 > - if ([self shouldIgnoreMouseEvents]) > + if ([self _shouldIgnoreWheelEvents]) What does this do if _ignoreNonWheelMouseEvents returns false but shouldIgnoreMouseEvents returns true?
Conrad Shultz
Comment 4 2014-11-05 08:54:47 PST
(In reply to comment #3) > Comment on attachment 240996 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=240996&action=review > > > Source/WebKit2/UIProcess/API/mac/WKView.mm:1211 > > - if ([self shouldIgnoreMouseEvents]) > > + if ([self _shouldIgnoreWheelEvents]) > > What does this do if _ignoreNonWheelMouseEvents returns false but > shouldIgnoreMouseEvents returns true? -_shouldIgnoreWheelEvents contains the same logic that used to be in -shouldIgnoreMouseEvents. In the new implementation, the only way the above condition can occur is if have a thumbnail view, in which case -_shouldIgnoreWheelEvents will also return true.
Anders Carlsson
Comment 5 2014-11-05 09:46:26 PST
(In reply to comment #4) > (In reply to comment #3) > > Comment on attachment 240996 [details] > > Patch > > > > View in context: > > https://bugs.webkit.org/attachment.cgi?id=240996&action=review > > > > > Source/WebKit2/UIProcess/API/mac/WKView.mm:1211 > > > - if ([self shouldIgnoreMouseEvents]) > > > + if ([self _shouldIgnoreWheelEvents]) > > > > What does this do if _ignoreNonWheelMouseEvents returns false but > > shouldIgnoreMouseEvents returns true? > > -_shouldIgnoreWheelEvents contains the same logic that used to be in > -shouldIgnoreMouseEvents. > > In the new implementation, the only way the above condition can occur is if > have a thumbnail view, in which case -_shouldIgnoreWheelEvents will also > return true. Does that mean that an existing WKView subclass who overrides shouldIgnoreMouseEvents and returns true will stop working?
Conrad Shultz
Comment 6 2014-11-05 10:05:16 PST
(In reply to comment #5) > (In reply to comment #4) > > (In reply to comment #3) > > > Comment on attachment 240996 [details] > > > Patch > > > > > > View in context: > > > https://bugs.webkit.org/attachment.cgi?id=240996&action=review > > > > > > > Source/WebKit2/UIProcess/API/mac/WKView.mm:1211 > > > > - if ([self shouldIgnoreMouseEvents]) > > > > + if ([self _shouldIgnoreWheelEvents]) > > > > > > What does this do if _ignoreNonWheelMouseEvents returns false but > > > shouldIgnoreMouseEvents returns true? > > > > -_shouldIgnoreWheelEvents contains the same logic that used to be in > > -shouldIgnoreMouseEvents. > > > > In the new implementation, the only way the above condition can occur is if > > have a thumbnail view, in which case -_shouldIgnoreWheelEvents will also > > return true. > > Does that mean that an existing WKView subclass who overrides > shouldIgnoreMouseEvents and returns true will stop working? In spite of the non-prefixed method name, -shouldIgnoreMouseEvents is purely internal and shouldn't be overridden by subclasses.
Anders Carlsson
Comment 7 2014-11-05 10:16:53 PST
Comment on attachment 240996 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=240996&action=review Patch looks good other than the declaration being in WKWebViewPrivate instead of WKWebViewinternal. > Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h:157 > +@property (nonatomic, setter=_setIgnoresNonWheelMouseEvents:) BOOL _ignoresNonWheelMouseEvents; If this is only used internally, it should go into WKWebViewInternal instead. >>>>> Source/WebKit2/UIProcess/API/mac/WKView.mm:1211 >>>>> + if ([self _shouldIgnoreWheelEvents]) >>>> >>>> What does this do if _ignoreNonWheelMouseEvents returns false but shouldIgnoreMouseEvents returns true? >>> >>> -_shouldIgnoreWheelEvents contains the same logic that used to be in -shouldIgnoreMouseEvents. >>> >>> In the new implementation, the only way the above condition can occur is if have a thumbnail view, in which case -_shouldIgnoreWheelEvents will also return true. >> >> Does that mean that an existing WKView subclass who overrides shouldIgnoreMouseEvents and returns true will stop working? > > In spite of the non-prefixed method name, -shouldIgnoreMouseEvents is purely internal and shouldn't be overridden by subclasses. Fair enough, let's hope nobody replies on it.
Conrad Shultz
Comment 8 2014-11-05 10:30:30 PST
(In reply to comment #7) > Comment on attachment 240996 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=240996&action=review > > Patch looks good other than the declaration being in WKWebViewPrivate > instead of WKWebViewinternal. > > > Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h:157 > > +@property (nonatomic, setter=_setIgnoresNonWheelMouseEvents:) BOOL _ignoresNonWheelMouseEvents; > > If this is only used internally, it should go into WKWebViewInternal instead. Thanks, will post a new patch that fixes this.
Conrad Shultz
Comment 9 2014-11-05 10:39:36 PST
Anders Carlsson
Comment 10 2014-11-05 10:51:54 PST
Comment on attachment 241040 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=241040&action=review > Source/WebKit2/UIProcess/mac/WKActionMenuController.mm:103 > + [webView _setIgnoresNonWheelMouseEvents:YES]; This should use property syntax.
Conrad Shultz
Comment 11 2014-11-05 11:01:42 PST
(In reply to comment #10) > Comment on attachment 241040 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=241040&action=review > > > Source/WebKit2/UIProcess/mac/WKActionMenuController.mm:103 > > + [webView _setIgnoresNonWheelMouseEvents:YES]; > > This should use property syntax. That should actually be using a RetainPtr; will post a patch that addresses this.
Conrad Shultz
Comment 12 2014-11-05 11:04:34 PST
WebKit Commit Bot
Comment 13 2014-11-05 12:09:26 PST
Comment on attachment 241043 [details] Patch Clearing flags on attachment: 241043 Committed r175630: <http://trac.webkit.org/changeset/175630>
WebKit Commit Bot
Comment 14 2014-11-05 12:09:30 PST
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.