WebKit Bugzilla
Attachment 361320 Details for
Bug 194321
: Move toNSEventModifierFlags() and toNSButtonNumber() to WebEventFactory.mm
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-194321-20190206131941.patch (text/plain), 8.93 KB, created by
Daniel Bates
on 2019-02-06 13:19:42 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Daniel Bates
Created:
2019-02-06 13:19:42 PST
Size:
8.93 KB
patch
obsolete
>Subversion Revision: 241028 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 21410d87caf3b1bff6270e6279089b7194cb14fe..19a4c162e8d18cd9790ec07e91d7d1d63839ccdd 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,26 @@ >+2019-02-06 Daniel Bates <dabates@apple.com> >+ >+ Move toNSEventModifierFlags() and toNSButtonNumber() to WebEventFactory.mm >+ https://bugs.webkit.org/show_bug.cgi?id=194321 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Move some code to WebEventFactory so that it can be shared by both WKNavigationAction.mm >+ and UIDelegate.mm among other benefits. >+ >+ * Shared/mac/WebEventFactory.h: >+ * Shared/mac/WebEventFactory.mm: >+ (WebKit::WebEventFactory::toNSEventModifierFlags): >+ (WebKit::WebEventFactory::toNSButtonNumber): >+ * UIProcess/API/Cocoa/WKNavigationAction.mm: >+ (-[WKNavigationAction modifierFlags]): >+ (-[WKNavigationAction buttonNumber]): >+ (toNSEventModifierFlags): Deleted. >+ (toNSButtonNumber): Deleted. >+ * UIProcess/Cocoa/UIDelegate.mm: >+ (WebKit::UIDelegate::UIClient::mouseDidMoveOverElement): >+ (WebKit::toNSEventModifierFlags): Deleted. >+ > 2019-02-06 Per Arne Vollan <pvollan@apple.com> > > Roll out parts of r238819 since it is a PLT performance regression. >diff --git a/Source/WebKit/Shared/mac/WebEventFactory.h b/Source/WebKit/Shared/mac/WebEventFactory.h >index be872ceb68a5accf7bc6bfabd21d234ddd96426c..caf1b66c76b2674b494a4a50c1c305aaa4252932 100644 >--- a/Source/WebKit/Shared/mac/WebEventFactory.h >+++ b/Source/WebKit/Shared/mac/WebEventFactory.h >@@ -46,6 +46,9 @@ public: > static WebWheelEvent createWebWheelEvent(NSEvent *, NSView *windowView); > static WebKeyboardEvent createWebKeyboardEvent(NSEvent *, bool handledByInputMethod, bool replacesSoftSpace, const Vector<WebCore::KeypressCommand>&); > static bool shouldBeHandledAsContextClick(const WebCore::PlatformMouseEvent&); >+ >+ static NSEventModifierFlags toNSEventModifierFlags(OptionSet<WebKit::WebEvent::Modifier>); >+ static NSInteger toNSButtonNumber(WebKit::WebMouseEvent::Button); > #endif // USE(APPKIT) > }; > >diff --git a/Source/WebKit/Shared/mac/WebEventFactory.mm b/Source/WebKit/Shared/mac/WebEventFactory.mm >index e43115e9e90808b67292a08dad1056e62bdf652e..2d6539f7eecd49f390c9cfc4ff04250766e170e9 100644 >--- a/Source/WebKit/Shared/mac/WebEventFactory.mm >+++ b/Source/WebKit/Shared/mac/WebEventFactory.mm >@@ -462,6 +462,38 @@ WebKeyboardEvent WebEventFactory::createWebKeyboardEvent(NSEvent *event, bool ha > return WebKeyboardEvent(type, text, unmodifiedText, key, code, keyIdentifier, windowsVirtualKeyCode, nativeVirtualKeyCode, macCharCode, handledByInputMethod, commands, autoRepeat, isKeypad, isSystemKey, modifiers, timestamp); > } > >+NSEventModifierFlags WebEventFactory::toNSEventModifierFlags(OptionSet<WebKit::WebEvent::Modifier> modifiers) >+{ >+ NSEventModifierFlags modifierFlags = 0; >+ if (modifiers.contains(WebKit::WebEvent::Modifier::CapsLockKey)) >+ modifierFlags |= NSEventModifierFlagCapsLock; >+ if (modifiers.contains(WebKit::WebEvent::Modifier::ShiftKey)) >+ modifierFlags |= NSEventModifierFlagShift; >+ if (modifiers.contains(WebKit::WebEvent::Modifier::ControlKey)) >+ modifierFlags |= NSEventModifierFlagControl; >+ if (modifiers.contains(WebKit::WebEvent::Modifier::AltKey)) >+ modifierFlags |= NSEventModifierFlagOption; >+ if (modifiers.contains(WebKit::WebEvent::Modifier::MetaKey)) >+ modifierFlags |= NSEventModifierFlagCommand; >+ return modifierFlags; >+} >+ >+NSInteger WebEventFactory::toNSButtonNumber(WebKit::WebMouseEvent::Button mouseButton) >+{ >+ switch (mouseButton) { >+ case WebKit::WebMouseEvent::NoButton: >+ return 0; >+ case WebKit::WebMouseEvent::LeftButton: >+ return 1 << 0; >+ case WebKit::WebMouseEvent::RightButton: >+ return 1 << 1; >+ case WebKit::WebMouseEvent::MiddleButton: >+ return 1 << 2; >+ } >+ ASSERT_NOT_REACHED(); >+ return 0; >+} >+ > } // namespace WebKit > > #endif // USE(APPKIT) >diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKNavigationAction.mm b/Source/WebKit/UIProcess/API/Cocoa/WKNavigationAction.mm >index 0cfdecdda661d2038b3dafdf052e95def14d13cc..44c8bb6092edaa12ca3ecc9c47de510d6cfb6d73 100644 >--- a/Source/WebKit/UIProcess/API/Cocoa/WKNavigationAction.mm >+++ b/Source/WebKit/UIProcess/API/Cocoa/WKNavigationAction.mm >@@ -31,6 +31,7 @@ > #import "NavigationActionData.h" > #import "WKFrameInfoInternal.h" > #import "WKNavigationInternal.h" >+#import "WebEventFactory.h" > #import "_WKUserInitiatedActionInternal.h" > #import <WebCore/FloatPoint.h> > #import <wtf/RetainPtr.h> >@@ -74,46 +75,6 @@ static WKSyntheticClickType toWKSyntheticClickType(WebKit::WebMouseEvent::Synthe > } > #endif > >-#if PLATFORM(MAC) >- >-// FIXME: This really belongs in WebEventFactory. >-static NSEventModifierFlags toNSEventModifierFlags(OptionSet<WebKit::WebEvent::Modifier> modifiers) >-{ >- NSEventModifierFlags modifierFlags = 0; >- if (modifiers.contains(WebKit::WebEvent::Modifier::CapsLockKey)) >- modifierFlags |= NSEventModifierFlagCapsLock; >- if (modifiers.contains(WebKit::WebEvent::Modifier::ShiftKey)) >- modifierFlags |= NSEventModifierFlagShift; >- if (modifiers.contains(WebKit::WebEvent::Modifier::ControlKey)) >- modifierFlags |= NSEventModifierFlagControl; >- if (modifiers.contains(WebKit::WebEvent::Modifier::AltKey)) >- modifierFlags |= NSEventModifierFlagOption; >- if (modifiers.contains(WebKit::WebEvent::Modifier::MetaKey)) >- modifierFlags |= NSEventModifierFlagCommand; >- return modifierFlags; >-} >- >-static NSInteger toNSButtonNumber(WebKit::WebMouseEvent::Button mouseButton) >-{ >- switch (mouseButton) { >- case WebKit::WebMouseEvent::NoButton: >- return 0; >- >- case WebKit::WebMouseEvent::LeftButton: >- return 1 << 0; >- >- case WebKit::WebMouseEvent::RightButton: >- return 1 << 1; >- >- case WebKit::WebMouseEvent::MiddleButton: >- return 1 << 2; >- >- default: >- return 0; >- } >-} >-#endif >- > - (void)dealloc > { > _navigationAction->~NavigationAction(); >@@ -168,12 +129,12 @@ - (CGPoint)_clickLocationInRootViewCoordinates > #if PLATFORM(MAC) > - (NSEventModifierFlags)modifierFlags > { >- return toNSEventModifierFlags(_navigationAction->modifiers()); >+ return WebKit::WebEventFactory::toNSEventModifierFlags(_navigationAction->modifiers()); > } > > - (NSInteger)buttonNumber > { >- return toNSButtonNumber(_navigationAction->mouseButton()); >+ return WebKit::WebEventFactory::toNSButtonNumber(_navigationAction->mouseButton()); > } > #endif > >diff --git a/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm b/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm >index e15cefa7349dd9669861409d5b32774d22e579a2..3ff0b284c7fe2b602209d8aa471151cabe02cd42 100644 >--- a/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm >+++ b/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm >@@ -46,6 +46,7 @@ > #import "WKWebViewConfigurationInternal.h" > #import "WKWebViewInternal.h" > #import "WKWindowFeaturesInternal.h" >+#import "WebEventFactory.h" > #import "WebOpenPanelResultListenerProxy.h" > #import "WebProcessProxy.h" > #import "_WKContextMenuElementInfo.h" >@@ -687,22 +688,6 @@ void UIDelegate::UIClient::windowFrame(WebKit::WebPageProxy&, Function<void(WebC > }).get()]; > } > >-static NSEventModifierFlags toNSEventModifierFlags(OptionSet<WebEvent::Modifier> modifiers) >-{ >- NSEventModifierFlags flags = 0; >- if (modifiers.contains(WebEvent::Modifier::ShiftKey)) >- flags |= NSEventModifierFlagShift; >- if (modifiers.contains(WebEvent::Modifier::ControlKey)) >- flags |= NSEventModifierFlagControl; >- if (modifiers.contains(WebEvent::Modifier::AltKey)) >- flags |= NSEventModifierFlagOption; >- if (modifiers.contains(WebEvent::Modifier::MetaKey)) >- flags |= NSEventModifierFlagCommand; >- if (modifiers.contains(WebEvent::Modifier::CapsLockKey)) >- flags |= NSEventModifierFlagCapsLock; >- return flags; >-} >- > void UIDelegate::UIClient::mouseDidMoveOverElement(WebPageProxy&, const WebHitTestResultData& data, OptionSet<WebEvent::Modifier> modifiers, API::Object* userInfo) > { > if (!m_uiDelegate.m_delegateMethods.webViewMouseDidMoveOverElementWithFlagsUserInfo) >@@ -713,7 +698,7 @@ void UIDelegate::UIClient::mouseDidMoveOverElement(WebPageProxy&, const WebHitTe > return; > > auto apiHitTestResult = API::HitTestResult::create(data); >- [(id <WKUIDelegatePrivate>)delegate _webView:m_uiDelegate.m_webView mouseDidMoveOverElement:wrapper(apiHitTestResult.get()) withFlags:toNSEventModifierFlags(modifiers) userInfo:userInfo ? static_cast<id <NSSecureCoding>>(userInfo->wrapper()) : nil]; >+ [(id <WKUIDelegatePrivate>)delegate _webView:m_uiDelegate.m_webView mouseDidMoveOverElement:wrapper(apiHitTestResult.get()) withFlags:WebEventFactory::toNSEventModifierFlags(modifiers) userInfo:userInfo ? static_cast<id <NSSecureCoding>>(userInfo->wrapper()) : nil]; > } > > static _WKAutoplayEventFlags toWKAutoplayEventFlags(OptionSet<WebCore::AutoplayEventFlags> flags)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 194321
:
361259
|
361311
|
361320
|
361322
|
361332