WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch v6
bug-212507-20200529162709.patch (text/plain), 32.12 KB, created by
David Kilzer (:ddkilzer)
on 2020-05-29 16:25:15 PDT
(
hide
)
Description:
Patch v6
Filename:
MIME Type:
Creator:
David Kilzer (:ddkilzer)
Created:
2020-05-29 16:25:15 PDT
Size:
32.12 KB
patch
obsolete
>Subversion Revision: 262321 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 363b9fea873d7d59582f214a752cf1d5aecebf20..151970bee4d0d72a8f93761d5ddf0c69c2edb72e 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,18 @@ >+2020-05-29 David Kilzer <ddkilzer@apple.com> >+ >+ Don't use casts to convert between WebCore types and {Web,WK}DragDestinationActionMask/NSDragOperation >+ <https://webkit.org/b/212507> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * page/DragActions.h: >+ (WebCore::anyDragDestinationAction): Add. >+ (WebCore::DragDestinationActionAny): Delete. >+ - Rename DragDestinationActionAny() to >+ anyDragDestinationAction() to match WebKit style. >+ * platform/DragData.h: >+ - Update to use anyDragDestinationAction(). >+ > 2020-05-29 Darin Adler <darin@apple.com> > > Remove things from FeatureDefines.xcconfig that are covered by PlatformEnableCocoa.h >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 3973a809d6c9c5ba58860a15e2e4a2ec0568fb35..44757cd6827108e589a6516b01133f6b5c37171f 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,26 @@ >+2020-05-29 David Kilzer <ddkilzer@apple.com> >+ >+ Don't use casts to convert between WebCore types and {Web,WK}DragDestinationActionMask/NSDragOperation >+ <https://webkit.org/b/212507> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * Shared/API/Cocoa/_WKDragActionsInternal.h: Add. >+ (WebKit::coreDragDestinationActionMask): >+ (WebKit::coreDragOperationMask): >+ - Add conversion functions to avoid casting. >+ * UIProcess/Cocoa/WebViewImpl.mm: >+ (WebKit::WebViewImpl::draggingEntered): >+ (WebKit::WebViewImpl::draggingUpdated): >+ (WebKit::WebViewImpl::draggingExited): >+ (WebKit::WebViewImpl::performDragOperation): >+ * UIProcess/ios/WKContentViewInteraction.mm: >+ (-[WKContentView dragDataForDropSession:dragDestinationAction:]): >+ - Make use of coreDragDestinationActionMask() and >+ coreDragOperationMask(). >+ * WebKit.xcodeproj/project.pbxproj: >+ - Add _WKDragActionsInternal.h to project. >+ > 2020-05-29 Jan-Michael Brummer <jan.brummer@tabos.org> > > [GTK][WPE] API for WebView audio mute support >diff --git a/Source/WebKitLegacy/mac/ChangeLog b/Source/WebKitLegacy/mac/ChangeLog >index 0793a42fd75c0247f3358e7fc7d1466ab111d2fa..a4a71c0e7f29f903adfaa3f4de13533650ef657f 100644 >--- a/Source/WebKitLegacy/mac/ChangeLog >+++ b/Source/WebKitLegacy/mac/ChangeLog >@@ -1,3 +1,31 @@ >+2020-05-29 David Kilzer <ddkilzer@apple.com> >+ >+ Don't use casts to convert between WebCore types and {Web,WK}DragDestinationActionMask/NSDragOperation >+ <https://webkit.org/b/212507> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * WebCoreSupport/WebDragClient.mm: >+ (kit): >+ - Add conversion function to avoid casting. >+ (WebDragClient::willPerformDragDestinationAction): >+ - Make use of kit() conversion function. >+ * WebView/WebView.mm: >+ (coreDragDestinationActionMask): >+ (coreDragOperationMask): >+ - Add conversion functions to avoid casting. >+ (-[WebView dragDataForSession:client:global:operation:]): >+ (-[WebView actionMaskForDraggingInfo:]): >+ (-[WebView draggingEntered:]): >+ (-[WebView draggingUpdated:]): >+ (-[WebView draggingExited:]): >+ (-[WebView performDragOperation:]): >+ - Make use of coreDragDestinationActionMask() and >+ coreDragOperationMask() conversion functions. >+ * WebView/WebViewInternal.h: >+ (coreDragOperationMask): Add declaration. >+ (coreOptions): Remove redundant parameter name. >+ > 2020-05-29 Darin Adler <darin@apple.com> > > Remove things from FeatureDefines.xcconfig that are covered by PlatformEnableCocoa.h >diff --git a/Source/WebKitLegacy/win/ChangeLog b/Source/WebKitLegacy/win/ChangeLog >index 33dec8d27d65cd0df9aa14bb5a93277c89ce3ce1..60acea5a0a4c90a270a5c71c3aeefe8a7517f1c6 100644 >--- a/Source/WebKitLegacy/win/ChangeLog >+++ b/Source/WebKitLegacy/win/ChangeLog >@@ -1,3 +1,16 @@ >+2020-05-29 David Kilzer <ddkilzer@apple.com> >+ >+ Don't use casts to convert between WebCore types and {Web,WK}DragDestinationActionMask/NSDragOperation >+ <https://webkit.org/b/212507> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * WebCoreSupport/WebDragClient.cpp: >+ (kit): >+ - Add conversion function to avoid casting. >+ (WebDragClient::willPerformDragDestinationAction): >+ - Make use of kit() conversion function. >+ > 2020-05-19 Fujii Hironori <Hironori.Fujii@sony.com> > > [WinCairo] ASSERT(m_eglDisplay == EGL_NO_DISPLAY) fails in ~PlatformDisplay() >diff --git a/Source/WebCore/page/DragActions.h b/Source/WebCore/page/DragActions.h >index c8177402f97c5083b75808100e3da78c208ffcb4..7799011fa98b8eba4d2d272fd625dff7b80cc1a9 100644 >--- a/Source/WebCore/page/DragActions.h >+++ b/Source/WebCore/page/DragActions.h >@@ -32,14 +32,14 @@ > > namespace WebCore { > >-// WebCore::DragDestinationAction must be kept in sync with WebDragDestinationAction and WKDragDestinationAction. >+// See WebDragDestinationAction and WKDragDestinationAction. > enum class DragDestinationAction : uint8_t { > DHTML = 1, > Edit = 2, > Load = 4 > }; > >-inline constexpr OptionSet<DragDestinationAction> DragDestinationActionAny() >+constexpr OptionSet<DragDestinationAction> anyDragDestinationAction() > { > return OptionSet<DragDestinationAction> { DragDestinationAction::DHTML, DragDestinationAction::Edit, DragDestinationAction::Load }; > } >@@ -60,7 +60,7 @@ typedef enum { > DragSourceActionAny = UINT_MAX > } DragSourceAction; > >-// Matches NSDragOperation. >+// See NSDragOperation. > typedef enum { > DragOperationNone = 0, > DragOperationCopy = 1, >diff --git a/Source/WebCore/platform/DragData.h b/Source/WebCore/platform/DragData.h >index 65101870c199aaabdf190d7d6b45e69438d9dbb2..421a29943b3d10d485da5ce9efd53e3fafbc0f0d 100644 >--- a/Source/WebCore/platform/DragData.h >+++ b/Source/WebCore/platform/DragData.h >@@ -75,8 +75,8 @@ public: > enum class DraggingPurpose { ForEditing, ForFileUpload, ForColorControl }; > > // clientPosition is taken to be the position of the drag event within the target window, with (0,0) at the top left >- WEBCORE_EXPORT DragData(DragDataRef, const IntPoint& clientPosition, const IntPoint& globalPosition, DragOperation, DragApplicationFlags = DragApplicationNone, OptionSet<DragDestinationAction> actionMask = DragDestinationActionAny()); >- WEBCORE_EXPORT DragData(const String& dragStorageName, const IntPoint& clientPosition, const IntPoint& globalPosition, DragOperation, DragApplicationFlags = DragApplicationNone, OptionSet<DragDestinationAction> actionMask = DragDestinationActionAny()); >+ WEBCORE_EXPORT DragData(DragDataRef, const IntPoint& clientPosition, const IntPoint& globalPosition, DragOperation, DragApplicationFlags = DragApplicationNone, OptionSet<DragDestinationAction> = anyDragDestinationAction()); >+ WEBCORE_EXPORT DragData(const String& dragStorageName, const IntPoint& clientPosition, const IntPoint& globalPosition, DragOperation, DragApplicationFlags = DragApplicationNone, OptionSet<DragDestinationAction> = anyDragDestinationAction()); > // This constructor should used only by WebKit2 IPC because DragData > // is initialized by the decoder and not in the constructor. > DragData() = default; >diff --git a/Source/WebKit/Shared/API/Cocoa/_WKDragActionsInternal.h b/Source/WebKit/Shared/API/Cocoa/_WKDragActionsInternal.h >new file mode 100644 >index 0000000000000000000000000000000000000000..b3afbf6ac3a599d40575e8833c34b17b32a73cea >--- /dev/null >+++ b/Source/WebKit/Shared/API/Cocoa/_WKDragActionsInternal.h >@@ -0,0 +1,63 @@ >+/* >+ * Copyright (C) 2020 Apple Inc. All rights reserved. >+ * >+ * Redistribution and use in source and binary forms, with or without >+ * modification, are permitted provided that the following conditions >+ * are met: >+ * 1. Redistributions of source code must retain the above copyright >+ * notice, this list of conditions and the following disclaimer. >+ * 2. Redistributions in binary form must reproduce the above copyright >+ * notice, this list of conditions and the following disclaimer in the >+ * documentation and/or other materials provided with the distribution. >+ * >+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' >+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, >+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS >+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR >+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF >+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS >+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN >+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) >+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF >+ * THE POSSIBILITY OF SUCH DAMAGE. >+ */ >+ >+#import <WebCore/DragActions.h> >+#import <WebKit/WKDragDestinationAction.h> >+ >+namespace WebKit { >+ >+inline OptionSet<WebCore::DragDestinationAction> coreDragDestinationActionMask(WKDragDestinationAction action) >+{ >+ OptionSet<WebCore::DragDestinationAction> result; >+ if (action & WKDragDestinationActionDHTML) >+ result.add(WebCore::DragDestinationAction::DHTML); >+ if (action & WKDragDestinationActionEdit) >+ result.add(WebCore::DragDestinationAction::Edit); >+ if (action & WKDragDestinationActionLoad) >+ result.add(WebCore::DragDestinationAction::Load); >+ return result; >+} >+ >+#if USE(APPKIT) >+inline WebCore::DragOperation coreDragOperationMask(NSDragOperation operation) >+{ >+ WebCore::DragOperation result = WebCore::DragOperationNone; >+ if (operation & NSDragOperationCopy) >+ result = static_cast<WebCore::DragOperation>(result & WebCore::DragOperationCopy); >+ if (operation & NSDragOperationLink) >+ result = static_cast<WebCore::DragOperation>(result & WebCore::DragOperationLink); >+ if (operation & NSDragOperationGeneric) >+ result = static_cast<WebCore::DragOperation>(result & WebCore::DragOperationGeneric); >+ if (operation & NSDragOperationPrivate) >+ result = static_cast<WebCore::DragOperation>(result & WebCore::DragOperationPrivate); >+ if (operation & NSDragOperationMove) >+ result = static_cast<WebCore::DragOperation>(result & WebCore::DragOperationMove); >+ if (operation & NSDragOperationDelete) >+ result = static_cast<WebCore::DragOperation>(result & WebCore::DragOperationDelete); >+ return result; >+} >+#endif // USE(APPKIT) >+ >+} // namespace WebKit >diff --git a/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm b/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm >index 2421ab823c6136e6c1766e6afd746c8ce73e879c..7dba4efddda431c103009306f525e28e0e016bb5 100644 >--- a/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm >+++ b/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm >@@ -76,6 +76,7 @@ > #import "WebPageProxy.h" > #import "WebProcessPool.h" > #import "WebProcessProxy.h" >+#import "_WKDragActionsInternal.h" > #import "_WKRemoteObjectRegistryInternal.h" > #import "_WKThumbnailViewInternal.h" > #import <Carbon/Carbon.h> >@@ -3945,8 +3946,9 @@ NSDragOperation WebViewImpl::draggingEntered(id <NSDraggingInfo> draggingInfo) > { > WebCore::IntPoint client([m_view convertPoint:draggingInfo.draggingLocation fromView:nil]); > WebCore::IntPoint global(WebCore::globalPoint(draggingInfo.draggingLocation, [m_view window])); >- auto dragDestinationActionMask = OptionSet<WebCore::DragDestinationAction>::fromRaw([m_view _web_dragDestinationActionForDraggingInfo:draggingInfo]); >- WebCore::DragData dragData(draggingInfo, client, global, static_cast<WebCore::DragOperation>(draggingInfo.draggingSourceOperationMask), applicationFlagsForDrag(m_view.getAutoreleased(), draggingInfo), dragDestinationActionMask); >+ auto dragDestinationActionMask = coreDragDestinationActionMask([m_view _web_dragDestinationActionForDraggingInfo:draggingInfo]); >+ auto dragOperation = coreDragOperationMask(draggingInfo.draggingSourceOperationMask); >+ WebCore::DragData dragData(draggingInfo, client, global, dragOperation, applicationFlagsForDrag(m_view.getAutoreleased(), draggingInfo), dragDestinationActionMask); > > m_page->resetCurrentDragInformation(); > m_page->dragEntered(dragData, draggingInfo.draggingPasteboard.name); >@@ -3958,8 +3960,9 @@ NSDragOperation WebViewImpl::draggingUpdated(id <NSDraggingInfo> draggingInfo) > { > WebCore::IntPoint client([m_view convertPoint:draggingInfo.draggingLocation fromView:nil]); > WebCore::IntPoint global(WebCore::globalPoint(draggingInfo.draggingLocation, [m_view window])); >- auto dragDestinationActionMask = OptionSet<WebCore::DragDestinationAction>::fromRaw([m_view _web_dragDestinationActionForDraggingInfo:draggingInfo]); >- WebCore::DragData dragData(draggingInfo, client, global, static_cast<WebCore::DragOperation>(draggingInfo.draggingSourceOperationMask), applicationFlagsForDrag(m_view.getAutoreleased(), draggingInfo), dragDestinationActionMask); >+ auto dragDestinationActionMask = coreDragDestinationActionMask([m_view _web_dragDestinationActionForDraggingInfo:draggingInfo]); >+ auto dragOperation = coreDragOperationMask(draggingInfo.draggingSourceOperationMask); >+ WebCore::DragData dragData(draggingInfo, client, global, dragOperation, applicationFlagsForDrag(m_view.getAutoreleased(), draggingInfo), dragDestinationActionMask); > m_page->dragUpdated(dragData, draggingInfo.draggingPasteboard.name); > > NSInteger numberOfValidItemsForDrop = m_page->currentDragNumberOfFilesToBeAccepted(); >@@ -3983,7 +3986,7 @@ void WebViewImpl::draggingExited(id <NSDraggingInfo> draggingInfo) > { > WebCore::IntPoint client([m_view convertPoint:draggingInfo.draggingLocation fromView:nil]); > WebCore::IntPoint global(WebCore::globalPoint(draggingInfo.draggingLocation, [m_view window])); >- WebCore::DragData dragData(draggingInfo, client, global, static_cast<WebCore::DragOperation>(draggingInfo.draggingSourceOperationMask), applicationFlagsForDrag(m_view.getAutoreleased(), draggingInfo)); >+ WebCore::DragData dragData(draggingInfo, client, global, coreDragOperationMask(draggingInfo.draggingSourceOperationMask), applicationFlagsForDrag(m_view.getAutoreleased(), draggingInfo)); > m_page->dragExited(dragData, draggingInfo.draggingPasteboard.name); > m_page->resetCurrentDragInformation(); > draggingInfo.numberOfValidItemsForDrop = m_initialNumberOfValidItemsForDrop; >@@ -3999,7 +4002,7 @@ bool WebViewImpl::performDragOperation(id <NSDraggingInfo> draggingInfo) > { > WebCore::IntPoint client([m_view convertPoint:draggingInfo.draggingLocation fromView:nil]); > WebCore::IntPoint global(WebCore::globalPoint(draggingInfo.draggingLocation, [m_view window])); >- WebCore::DragData *dragData = new WebCore::DragData(draggingInfo, client, global, static_cast<WebCore::DragOperation>(draggingInfo.draggingSourceOperationMask), applicationFlagsForDrag(m_view.getAutoreleased(), draggingInfo)); >+ WebCore::DragData *dragData = new WebCore::DragData(draggingInfo, client, global, coreDragOperationMask(draggingInfo.draggingSourceOperationMask), applicationFlagsForDrag(m_view.getAutoreleased(), draggingInfo)); > > NSArray *types = draggingInfo.draggingPasteboard.types; > SandboxExtension::Handle sandboxExtensionHandle; >diff --git a/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm b/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm >index a344cf5fbd60a54675ffd282fce006abcc6988d0..bd1bcd22a764a1609cd636b65340ee78ae28dae2 100644 >--- a/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm >+++ b/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm >@@ -86,6 +86,7 @@ > #import "WebPageProxyMessages.h" > #import "WebProcessProxy.h" > #import "_WKActivatedElementInfoInternal.h" >+#import "_WKDragActionsInternal.h" > #import "_WKElementAction.h" > #import "_WKElementActionInternal.h" > #import "_WKFocusedElementInfo.h" >@@ -7319,9 +7320,8 @@ - (WebCore::DragData)dragDataForDropSession:(id <UIDropSession>)session dragDest > CGPoint client; > [self computeClientAndGlobalPointsForDropSession:session outClientPoint:&client outGlobalPoint:&global]; > >- WebCore::DragOperation dragOperationMask = static_cast<WebCore::DragOperation>(session.allowsMoveOperation ? WebCore::DragOperationEvery : (WebCore::DragOperationEvery & ~WebCore::DragOperationMove)); >- auto dragDestinationActionMask = OptionSet<WebCore::DragDestinationAction>::fromRaw(dragDestinationAction); >- return { session, WebCore::roundedIntPoint(client), WebCore::roundedIntPoint(global), dragOperationMask, WebCore::DragApplicationNone, dragDestinationActionMask }; >+ WebCore::DragOperation dragOperationMask = coreDragOperationMask(session.allowsMoveOperation ? WebCore::DragOperationEvery : (WebCore::DragOperationEvery & ~WebCore::DragOperationMove)); >+ return { session, WebCore::roundedIntPoint(client), WebCore::roundedIntPoint(global), dragOperationMask, WebCore::DragApplicationNone, coreDragDestinationActionMask(dragDestinationAction) }; > } > > - (void)cleanUpDragSourceSessionState >diff --git a/Source/WebKit/WebKit.xcodeproj/project.pbxproj b/Source/WebKit/WebKit.xcodeproj/project.pbxproj >index dee34d20fae5145ef280e6576474eeb022f99664..e26b403f86d86070a77b7eae4f31f4cec618f508 100644 >--- a/Source/WebKit/WebKit.xcodeproj/project.pbxproj >+++ b/Source/WebKit/WebKit.xcodeproj/project.pbxproj >@@ -937,6 +937,7 @@ > 4482734724528F6000A95493 /* CocoaImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 4482734624528F6000A95493 /* CocoaImage.h */; }; > 449D90DA21FDC30B00F677C0 /* LocalAuthenticationSoftLink.mm in Sources */ = {isa = PBXBuildFile; fileRef = 449D90D821FD63FE00F677C0 /* LocalAuthenticationSoftLink.mm */; }; > 44E936FD2447C2D8009FA3E3 /* LegacyCustomProtocolID.h in Headers */ = {isa = PBXBuildFile; fileRef = 44E936FC2447C256009FA3E3 /* LegacyCustomProtocolID.h */; }; >+ 44EC3EA9247F5C090059489C /* _WKDragActionsInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 44EC3EA8247F5C080059489C /* _WKDragActionsInternal.h */; }; > 460F488F1F996F7100CF4B87 /* WebSWContextManagerConnectionMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 460F488D1F996F6C00CF4B87 /* WebSWContextManagerConnectionMessageReceiver.cpp */; }; > 460F48901F996F7100CF4B87 /* WebSWContextManagerConnectionMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 460F488E1F996F6C00CF4B87 /* WebSWContextManagerConnectionMessages.h */; }; > 461CCCA5231485A700B659B9 /* UIRemoteObjectRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = 463236852314833F00A48FA7 /* UIRemoteObjectRegistry.h */; }; >@@ -3536,6 +3537,7 @@ > 449D90D821FD63FE00F677C0 /* LocalAuthenticationSoftLink.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = LocalAuthenticationSoftLink.mm; sourceTree = "<group>"; }; > 44A481C621F2D27B00F2F919 /* ClientCertificateAuthenticationXPCConstants.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ClientCertificateAuthenticationXPCConstants.cpp; sourceTree = "<group>"; }; > 44E936FC2447C256009FA3E3 /* LegacyCustomProtocolID.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LegacyCustomProtocolID.h; sourceTree = "<group>"; }; >+ 44EC3EA8247F5C080059489C /* _WKDragActionsInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKDragActionsInternal.h; sourceTree = "<group>"; }; > 4603011A234BE31D009C8217 /* WebBackForwardCache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebBackForwardCache.cpp; sourceTree = "<group>"; }; > 4603011B234BE31E009C8217 /* WebBackForwardCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebBackForwardCache.h; sourceTree = "<group>"; }; > 460F488D1F996F6C00CF4B87 /* WebSWContextManagerConnectionMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebSWContextManagerConnectionMessageReceiver.cpp; path = DerivedSources/WebKit2/WebSWContextManagerConnectionMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; }; >@@ -7511,6 +7513,7 @@ > 37DFA6FE1810BB2D001F4A9F /* Cocoa */ = { > isa = PBXGroup; > children = ( >+ 44EC3EA8247F5C080059489C /* _WKDragActionsInternal.h */, > 373D122118A473010066D9CC /* _WKFrameHandle.h */, > 373D122018A473010066D9CC /* _WKFrameHandle.mm */, > 373D122618A473F60066D9CC /* _WKFrameHandleInternal.h */, >@@ -10527,6 +10530,7 @@ > A1A4FE5A18DCE9FA00B5EA8A /* _WKDownload.h in Headers */, > A1A4FE6118DD54A400B5EA8A /* _WKDownloadDelegate.h in Headers */, > A1A4FE5C18DCE9FA00B5EA8A /* _WKDownloadInternal.h in Headers */, >+ 44EC3EA9247F5C090059489C /* _WKDragActionsInternal.h in Headers */, > 379A873A18BBFE0F00588AF2 /* _WKElementAction.h in Headers */, > 379A873C18BBFF0700588AF2 /* _WKElementActionInternal.h in Headers */, > 1AD01BC91905D37E00C9C45F /* _WKErrorRecoveryAttempting.h in Headers */, >diff --git a/Source/WebKitLegacy/mac/WebCoreSupport/WebDragClient.mm b/Source/WebKitLegacy/mac/WebCoreSupport/WebDragClient.mm >index 4bbe817a1471ecbcec4b409bd628e8e653d66b15..3d1a0a35ff2521d194dee561ab89174dfe1ef43f 100644 >--- a/Source/WebKitLegacy/mac/WebCoreSupport/WebDragClient.mm >+++ b/Source/WebKitLegacy/mac/WebCoreSupport/WebDragClient.mm >@@ -68,6 +68,20 @@ WebDragClient::WebDragClient(WebView* webView) > > #if PLATFORM(MAC) > >+static WebDragDestinationAction kit(WebCore::DragDestinationAction action) >+{ >+ switch (action) { >+ case WebCore::DragDestinationAction::DHTML: >+ return WebDragDestinationActionDHTML; >+ case WebCore::DragDestinationAction::Edit: >+ return WebDragDestinationActionEdit; >+ case WebCore::DragDestinationAction::Load: >+ return WebDragDestinationActionLoad; >+ } >+ ASSERT_NOT_REACHED(); >+ return WebDragDestinationActionNone; >+} >+ > bool WebDragClient::useLegacyDragClient() > { > return false; >@@ -86,7 +100,7 @@ static WebHTMLView *getTopHTMLView(Frame* frame) > > void WebDragClient::willPerformDragDestinationAction(WebCore::DragDestinationAction action, const WebCore::DragData& dragData) > { >- [[m_webView _UIDelegateForwarder] webView:m_webView willPerformDragDestinationAction:static_cast<WebDragDestinationAction>(action) forDraggingInfo:dragData.platformData()]; >+ [[m_webView _UIDelegateForwarder] webView:m_webView willPerformDragDestinationAction:kit(action) forDraggingInfo:dragData.platformData()]; > } > > >diff --git a/Source/WebKitLegacy/mac/WebView/WebView.mm b/Source/WebKitLegacy/mac/WebView/WebView.mm >index 2fa71ea25a91511e0253124d6b36873772ce8568..222effb934ec8dfda840846cf3897ceee8709834 100644 >--- a/Source/WebKitLegacy/mac/WebView/WebView.mm >+++ b/Source/WebKitLegacy/mac/WebView/WebView.mm >@@ -112,7 +112,6 @@ > #import "WebStorageNamespaceProvider.h" > #import "WebTextCompletionController.h" > #import "WebTextIterator.h" >-#import "WebUIDelegate.h" > #import "WebUIDelegatePrivate.h" > #import "WebValidationMessageClient.h" > #import "WebViewGroup.h" >@@ -577,6 +576,40 @@ - (void)clearTarget; > #endif > @end > >+#if ENABLE(DRAG_SUPPORT) >+static OptionSet<WebCore::DragDestinationAction> coreDragDestinationActionMask(WebDragDestinationAction actionMask) >+{ >+ OptionSet<WebCore::DragDestinationAction> result; >+ if (actionMask & WebDragDestinationActionDHTML) >+ result.add(WebCore::DragDestinationAction::DHTML); >+ if (actionMask & WebDragDestinationActionEdit) >+ result.add(WebCore::DragDestinationAction::Edit); >+ if (actionMask & WebDragDestinationActionLoad) >+ result.add(WebCore::DragDestinationAction::Load); >+ return result; >+} >+ >+#if USE(APPKIT) >+WebCore::DragOperation coreDragOperationMask(NSDragOperation operation) >+{ >+ WebCore::DragOperation result = WebCore::DragOperationNone; >+ if (operation & NSDragOperationCopy) >+ result = static_cast<WebCore::DragOperation>(result & WebCore::DragOperationCopy); >+ if (operation & NSDragOperationLink) >+ result = static_cast<WebCore::DragOperation>(result & WebCore::DragOperationLink); >+ if (operation & NSDragOperationGeneric) >+ result = static_cast<WebCore::DragOperation>(result & WebCore::DragOperationGeneric); >+ if (operation & NSDragOperationPrivate) >+ result = static_cast<WebCore::DragOperation>(result & WebCore::DragOperationPrivate); >+ if (operation & NSDragOperationMove) >+ result = static_cast<WebCore::DragOperation>(result & WebCore::DragOperationMove); >+ if (operation & NSDragOperationDelete) >+ result = static_cast<WebCore::DragOperation>(result & WebCore::DragOperationDelete); >+ return result; >+} >+#endif // USE(APPKIT) >+#endif // ENABLE(DRAG_SUPPORT) >+ > WebCore::FindOptions coreOptions(WebFindOptions options) > { > WebCore::FindOptions findOptions; >@@ -1909,8 +1942,8 @@ - (WebDragDestinationAction)dragDestinationActionMaskForSession:(id <UIDropSessi > > - (WebCore::DragData)dragDataForSession:(id <UIDropSession>)session client:(CGPoint)clientPosition global:(CGPoint)globalPosition operation:(uint64_t)operation > { >- auto dragOperationMask = static_cast<WebCore::DragOperation>(operation); >- auto dragDestinationMask = OptionSet<WebCore::DragDestinationAction>::fromRaw([self dragDestinationActionMaskForSession:session]); >+ auto dragOperationMask = coreDragOperationMask(operation); >+ auto dragDestinationMask = coreDragDestinationActionMask([self dragDestinationActionMaskForSession:session]); > return { session, WebCore::roundedIntPoint(clientPosition), WebCore::roundedIntPoint(globalPosition), dragOperationMask, WebCore::DragApplicationNone, dragDestinationMask }; > } > >@@ -6724,7 +6757,7 @@ - (WebCore::DragApplicationFlags)applicationFlags:(id <NSDraggingInfo>)draggingI > > - (OptionSet<WebCore::DragDestinationAction>)actionMaskForDraggingInfo:(id <NSDraggingInfo>)draggingInfo > { >- return OptionSet<WebCore::DragDestinationAction>::fromRaw([[self _UIDelegateForwarder] webView:self dragDestinationActionMaskForDraggingInfo:draggingInfo]); >+ return coreDragDestinationActionMask([[self _UIDelegateForwarder] webView:self dragDestinationActionMaskForDraggingInfo:draggingInfo]); > } > > - (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)draggingInfo >@@ -6732,7 +6765,7 @@ - (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)draggingInfo > WebCore::IntPoint client([draggingInfo draggingLocation]); > WebCore::IntPoint global(WebCore::globalPoint([draggingInfo draggingLocation], [self window])); > >- WebCore::DragData dragData(draggingInfo, client, global, static_cast<WebCore::DragOperation>([draggingInfo draggingSourceOperationMask]), [self applicationFlags:draggingInfo], [self actionMaskForDraggingInfo:draggingInfo]); >+ WebCore::DragData dragData(draggingInfo, client, global, coreDragOperationMask([draggingInfo draggingSourceOperationMask]), [self applicationFlags:draggingInfo], [self actionMaskForDraggingInfo:draggingInfo]); > return core(self)->dragController().dragEntered(dragData); > } > >@@ -6745,7 +6778,7 @@ - (NSDragOperation)draggingUpdated:(id <NSDraggingInfo>)draggingInfo > WebCore::IntPoint client([draggingInfo draggingLocation]); > WebCore::IntPoint global(WebCore::globalPoint([draggingInfo draggingLocation], [self window])); > >- WebCore::DragData dragData(draggingInfo, client, global, static_cast<WebCore::DragOperation>([draggingInfo draggingSourceOperationMask]), [self applicationFlags:draggingInfo], [self actionMaskForDraggingInfo:draggingInfo]); >+ WebCore::DragData dragData(draggingInfo, client, global, coreDragOperationMask([draggingInfo draggingSourceOperationMask]), [self applicationFlags:draggingInfo], [self actionMaskForDraggingInfo:draggingInfo]); > return page->dragController().dragUpdated(dragData); > } > >@@ -6757,7 +6790,7 @@ - (void)draggingExited:(id <NSDraggingInfo>)draggingInfo > > WebCore::IntPoint client([draggingInfo draggingLocation]); > WebCore::IntPoint global(WebCore::globalPoint([draggingInfo draggingLocation], [self window])); >- WebCore::DragData dragData(draggingInfo, client, global, static_cast<WebCore::DragOperation>([draggingInfo draggingSourceOperationMask]), [self applicationFlags:draggingInfo]); >+ WebCore::DragData dragData(draggingInfo, client, global, coreDragOperationMask([draggingInfo draggingSourceOperationMask]), [self applicationFlags:draggingInfo]); > page->dragController().dragExited(dragData); > } > >@@ -6770,7 +6803,7 @@ - (BOOL)performDragOperation:(id <NSDraggingInfo>)draggingInfo > { > WebCore::IntPoint client([draggingInfo draggingLocation]); > WebCore::IntPoint global(WebCore::globalPoint([draggingInfo draggingLocation], [self window])); >- auto* dragData = new WebCore::DragData(draggingInfo, client, global, static_cast<WebCore::DragOperation>([draggingInfo draggingSourceOperationMask]), [self applicationFlags:draggingInfo]); >+ auto* dragData = new WebCore::DragData(draggingInfo, client, global, coreDragOperationMask([draggingInfo draggingSourceOperationMask]), [self applicationFlags:draggingInfo]); > > NSArray* types = draggingInfo.draggingPasteboard.types; > if (![types containsObject:WebArchivePboardType] && [types containsObject:WebCore::legacyFilesPromisePasteboardType()]) { >diff --git a/Source/WebKitLegacy/mac/WebView/WebViewInternal.h b/Source/WebKitLegacy/mac/WebView/WebViewInternal.h >index 576629aba69a6ca0bf56a5b9e69a3319127382c8..33b851e36716b2cc50a0fcedf5d5c7ec8e12c6ef 100644 >--- a/Source/WebKitLegacy/mac/WebView/WebViewInternal.h >+++ b/Source/WebKitLegacy/mac/WebView/WebViewInternal.h >@@ -1,5 +1,5 @@ > /* >- * Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. >+ * Copyright (C) 2005-2020 Apple Inc. All rights reserved. > * Copyright (C) 2010 Igalia S.L > * > * Redistribution and use in source and binary forms, with or without >@@ -36,6 +36,7 @@ > #ifdef __cplusplus > > #import <WebCore/AlternativeTextClient.h> >+#import <WebCore/DragActions.h> > #import <WebCore/FindOptions.h> > #import <WebCore/FloatRect.h> > #import <WebCore/HTMLMediaElementEnums.h> >@@ -89,7 +90,11 @@ class WebSelectionServiceController; > > #ifdef __cplusplus > >-WebCore::FindOptions coreOptions(WebFindOptions options); >+#if ENABLE(DRAG_SUPPORT) && USE(APPKIT) >+WebCore::DragOperation coreDragOperationMask(NSDragOperation); >+#endif >+ >+WebCore::FindOptions coreOptions(WebFindOptions); > > OptionSet<WebCore::LayoutMilestone> coreLayoutMilestones(WebLayoutMilestones); > WebLayoutMilestones kitLayoutMilestones(OptionSet<WebCore::LayoutMilestone>); >diff --git a/Source/WebKitLegacy/win/WebCoreSupport/WebDragClient.cpp b/Source/WebKitLegacy/win/WebCoreSupport/WebDragClient.cpp >index d43c2e44ec800cd5539a2d020c9dfa4a537d501b..31326036a8a412577ec1ca1917dc3ff86207e263 100644 >--- a/Source/WebKitLegacy/win/WebCoreSupport/WebDragClient.cpp >+++ b/Source/WebKitLegacy/win/WebCoreSupport/WebDragClient.cpp >@@ -1,5 +1,5 @@ > /* >- * Copyright (C) 2007 Apple Inc. All rights reserved. >+ * Copyright (C) 2007-2020 Apple Inc. All rights reserved. > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions >@@ -60,6 +60,20 @@ static DWORD draggingSourceOperationMaskToDragCursors(DragOperation op) > return result; > } > >+static WebDragDestinationAction kit(DragDestinationAction action) >+{ >+ switch (action) { >+ case DragDestinationAction::DHTML: >+ return WebDragDestinationActionDHTML; >+ case DragDestinationAction::Edit: >+ return WebDragDestinationActionEdit; >+ case DragDestinationAction::Load: >+ return WebDragDestinationActionLoad; >+ } >+ ASSERT_NOT_REACHED(); >+ return WebDragDestinationActionNone; >+} >+ > WebDragClient::WebDragClient(WebView* webView) > : m_webView(webView) > { >@@ -72,7 +86,7 @@ void WebDragClient::willPerformDragDestinationAction(DragDestinationAction actio > //so we just call the delegate, and don't worry about whether it's implemented > COMPtr<IWebUIDelegate> delegateRef = 0; > if (SUCCEEDED(m_webView->uiDelegate(&delegateRef))) >- delegateRef->willPerformDragDestinationAction(m_webView, (WebDragDestinationAction)action, dragData.platformData()); >+ delegateRef->willPerformDragDestinationAction(m_webView, kit(action), dragData.platformData()); > } > > DragSourceAction WebDragClient::dragSourceActionMaskForPoint(const IntPoint& windowPoint)
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 212507
:
400540
|
400541
|
400542
|
400544
|
400628
|
400631
|
400642
|
400647
|
400680
|
400748