[IPC] Adopt enum class for DragOperation
<https://webkit.org/b/212870>
<rdar://problem/64069940>
Reviewed by Darin Adler.
Source/WebCore:
* dom/DataTransfer.cpp:
(WebCore::dragOpFromIEOp):
(WebCore::IEOpFromDragOp):
(WebCore::DataTransfer::sourceOperationMask const):
(WebCore::DataTransfer::destinationOperationMask const):
(WebCore::DataTransfer::setSourceOperationMask):
(WebCore::DataTransfer::setDestinationOperationMask):
(WebCore::DataTransfer::setEffectAllowed):
* page/DragActions.h:
(WebCore::DragOperation):
- Convert to enum class.
(WebCore::anyDragOperation):
* page/DragController.cpp:
(WebCore::DragController::platformGenericDragOperation):
(WebCore::DragController::dragEnteredOrUpdated):
(WebCore::DragController::tryDocumentDrag):
(WebCore::defaultOperationForDrag):
(WebCore::DragController::startDrag):
* page/EventHandler.cpp:
(WebCore::convertDropZoneOperationToDragOperation):
(WebCore::convertDragOperationToDropZoneOperation):
* page/gtk/DragControllerGtk.cpp:
(WebCore::DragController::dragOperation):
* page/mac/DragControllerMac.mm:
(WebCore::DragController::dragOperation):
(WebCore::DragController::platformGenericDragOperation):
* page/win/DragControllerWin.cpp:
(WebCore::DragController::dragOperation):
* platform/gtk/GtkUtilities.cpp:
(WebCore::gdkDragActionToDragOperation):
(WebCore::dragOperationToGdkDragActions):
(WebCore::dragOperationToSingleGdkDragAction):
Source/WebKit:
* Scripts/webkit/messages.py:
- Remove FIXME now that it's not needed.
* Shared/API/Cocoa/_WKDragActionsInternal.h:
(WebKit::coreDragOperationMask):
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::kit):
* UIProcess/ios/WKContentViewInteraction.mm:
(dropOperationForWebCoreDragOperation):
(coreDragOperationForUIDropOperation):
(-[WKContentView dragDataForDropSession:dragDestinationAction:]):
Source/WebKitLegacy/mac:
* WebView/WebHTMLView.mm:
(kit):
* WebView/WebView.mm:
(coreDragOperationMask):
(kit):
Source/WebKitLegacy/win:
* WebCoreSupport/WebDragClient.cpp:
(draggingSourceOperationMaskToDragCursors):
(WebDragClient::startDrag):
* WebView.cpp:
(dragOperationToDragCursor):
(WebView::keyStateToDragOperation const):
Tools:
* Scripts/do-webcore-rename:
- Do DragOperation renames.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@262735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index d8d0115..a082496 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,44 @@
+2020-06-08 David Kilzer <ddkilzer@apple.com>
+
+ [IPC] Adopt enum class for DragOperation
+ <https://webkit.org/b/212870>
+ <rdar://problem/64069940>
+
+ Reviewed by Darin Adler.
+
+ * dom/DataTransfer.cpp:
+ (WebCore::dragOpFromIEOp):
+ (WebCore::IEOpFromDragOp):
+ (WebCore::DataTransfer::sourceOperationMask const):
+ (WebCore::DataTransfer::destinationOperationMask const):
+ (WebCore::DataTransfer::setSourceOperationMask):
+ (WebCore::DataTransfer::setDestinationOperationMask):
+ (WebCore::DataTransfer::setEffectAllowed):
+ * page/DragActions.h:
+ (WebCore::DragOperation):
+ - Convert to enum class.
+ (WebCore::anyDragOperation):
+ * page/DragController.cpp:
+ (WebCore::DragController::platformGenericDragOperation):
+ (WebCore::DragController::dragEnteredOrUpdated):
+ (WebCore::DragController::tryDocumentDrag):
+ (WebCore::defaultOperationForDrag):
+ (WebCore::DragController::startDrag):
+ * page/EventHandler.cpp:
+ (WebCore::convertDropZoneOperationToDragOperation):
+ (WebCore::convertDragOperationToDropZoneOperation):
+ * page/gtk/DragControllerGtk.cpp:
+ (WebCore::DragController::dragOperation):
+ * page/mac/DragControllerMac.mm:
+ (WebCore::DragController::dragOperation):
+ (WebCore::DragController::platformGenericDragOperation):
+ * page/win/DragControllerWin.cpp:
+ (WebCore::DragController::dragOperation):
+ * platform/gtk/GtkUtilities.cpp:
+ (WebCore::gdkDragActionToDragOperation):
+ (WebCore::dragOperationToGdkDragActions):
+ (WebCore::dragOperationToSingleGdkDragAction):
+
2020-06-08 Sam Weinig <weinig@apple.com>
Extended Color: Unify rounding / clamping conversions between 0-1 float components and 0-255 byte components
diff --git a/Source/WebCore/dom/DataTransfer.cpp b/Source/WebCore/dom/DataTransfer.cpp
index e6eb979..b45a13d 100644
--- a/Source/WebCore/dom/DataTransfer.cpp
+++ b/Source/WebCore/dom/DataTransfer.cpp
@@ -603,39 +603,39 @@
if (operation == "none")
return { };
if (operation == "copy")
- return { DragOperationCopy };
+ return { DragOperation::Copy };
if (operation == "link")
- return { DragOperationLink };
+ return { DragOperation::Link };
if (operation == "move")
- return { DragOperationGeneric, DragOperationMove };
+ return { DragOperation::Generic, DragOperation::Move };
if (operation == "copyLink")
- return { DragOperationCopy, DragOperationLink };
+ return { DragOperation::Copy, DragOperation::Link };
if (operation == "copyMove")
- return { DragOperationCopy, DragOperationGeneric, DragOperationMove };
+ return { DragOperation::Copy, DragOperation::Generic, DragOperation::Move };
if (operation == "linkMove")
- return { DragOperationLink, DragOperationGeneric, DragOperationMove };
+ return { DragOperation::Link, DragOperation::Generic, DragOperation::Move };
if (operation == "all")
return anyDragOperation();
- return { DragOperationPrivate }; // Really a marker for "no conversion".
+ return { DragOperation::Private }; // Really a marker for "no conversion".
}
static const char* IEOpFromDragOp(OptionSet<DragOperation> operationMask)
{
- bool isGenericMove = operationMask.containsAny({ DragOperationGeneric, DragOperationMove });
+ bool isGenericMove = operationMask.containsAny({ DragOperation::Generic, DragOperation::Move });
- if ((isGenericMove && operationMask.containsAll({ DragOperationCopy, DragOperationLink })) || operationMask.containsAll({ DragOperationCopy, DragOperationLink, DragOperationGeneric, DragOperationPrivate, DragOperationMove, DragOperationDelete }))
+ if ((isGenericMove && operationMask.containsAll({ DragOperation::Copy, DragOperation::Link })) || operationMask.containsAll({ DragOperation::Copy, DragOperation::Link, DragOperation::Generic, DragOperation::Private, DragOperation::Move, DragOperation::Delete }))
return "all";
- if (isGenericMove && operationMask.contains(DragOperationCopy))
+ if (isGenericMove && operationMask.contains(DragOperation::Copy))
return "copyMove";
- if (isGenericMove && operationMask.contains(DragOperationLink))
+ if (isGenericMove && operationMask.contains(DragOperation::Link))
return "linkMove";
- if (operationMask.containsAll({ DragOperationCopy, DragOperationLink }))
+ if (operationMask.containsAll({ DragOperation::Copy, DragOperation::Link }))
return "copyLink";
if (isGenericMove)
return "move";
- if (operationMask.contains(DragOperationCopy))
+ if (operationMask.contains(DragOperation::Copy))
return "copy";
- if (operationMask.contains(DragOperationLink))
+ if (operationMask.contains(DragOperation::Link))
return "link";
return "none";
}
@@ -643,26 +643,26 @@
OptionSet<DragOperation> DataTransfer::sourceOperationMask() const
{
auto operationMask = dragOpFromIEOp(m_effectAllowed);
- ASSERT(operationMask != DragOperationPrivate);
+ ASSERT(operationMask != DragOperation::Private);
return operationMask;
}
OptionSet<DragOperation> DataTransfer::destinationOperationMask() const
{
auto operationMask = dragOpFromIEOp(m_dropEffect);
- ASSERT(operationMask == DragOperationCopy || operationMask.isEmpty() || operationMask == DragOperationLink || operationMask == OptionSet<DragOperation>({ DragOperationGeneric, DragOperationMove }) || operationMask.containsAll({ DragOperationCopy, DragOperationLink, DragOperationGeneric, DragOperationPrivate, DragOperationMove, DragOperationDelete }));
+ ASSERT(operationMask == DragOperation::Copy || operationMask.isEmpty() || operationMask == DragOperation::Link || operationMask == OptionSet<DragOperation>({ DragOperation::Generic, DragOperation::Move }) || operationMask.containsAll({ DragOperation::Copy, DragOperation::Link, DragOperation::Generic, DragOperation::Private, DragOperation::Move, DragOperation::Delete }));
return operationMask;
}
void DataTransfer::setSourceOperationMask(OptionSet<DragOperation> operationMask)
{
- ASSERT_ARG(operationMask, operationMask != DragOperationPrivate);
+ ASSERT_ARG(operationMask, operationMask != DragOperation::Private);
m_effectAllowed = IEOpFromDragOp(operationMask);
}
void DataTransfer::setDestinationOperationMask(OptionSet<DragOperation> operationMask)
{
- ASSERT_ARG(operationMask, operationMask == DragOperationCopy || operationMask.isEmpty() || operationMask == DragOperationLink || operationMask == DragOperationGeneric || operationMask == DragOperationMove || operationMask == OptionSet<DragOperation>({ DragOperationGeneric, DragOperationMove }));
+ ASSERT_ARG(operationMask, operationMask == DragOperation::Copy || operationMask.isEmpty() || operationMask == DragOperation::Link || operationMask == DragOperation::Generic || operationMask == DragOperation::Move || operationMask == OptionSet<DragOperation>({ DragOperation::Generic, DragOperation::Move }));
m_dropEffect = IEOpFromDragOp(operationMask);
}
@@ -698,7 +698,7 @@
return;
// Ignore any attempts to set it to an unknown value.
- if (dragOpFromIEOp(effect) == DragOperationPrivate)
+ if (dragOpFromIEOp(effect) == DragOperation::Private)
return;
if (!canWriteData())
diff --git a/Source/WebCore/page/DragActions.h b/Source/WebCore/page/DragActions.h
index f3dd3e5..e745635 100644
--- a/Source/WebCore/page/DragActions.h
+++ b/Source/WebCore/page/DragActions.h
@@ -61,18 +61,18 @@
} DragSourceAction;
// See NSDragOperation, _UIDragOperation and UIDropOperation.
-enum DragOperation {
- DragOperationCopy = 1,
- DragOperationLink = 2,
- DragOperationGeneric = 4,
- DragOperationPrivate = 8,
- DragOperationMove = 16,
- DragOperationDelete = 32,
+enum class DragOperation : uint8_t {
+ Copy = 1,
+ Link = 2,
+ Generic = 4,
+ Private = 8,
+ Move = 16,
+ Delete = 32,
};
constexpr OptionSet<DragOperation> anyDragOperation()
{
- return { DragOperationCopy, DragOperationLink, DragOperationGeneric, DragOperationPrivate, DragOperationMove, DragOperationDelete };
+ return { DragOperation::Copy, DragOperation::Link, DragOperation::Generic, DragOperation::Private, DragOperation::Move, DragOperation::Delete };
}
enum class MayExtendDragSession : bool { No, Yes };
@@ -99,12 +99,12 @@
template<> struct EnumTraits<WebCore::DragOperation> {
using values = EnumValues<
WebCore::DragOperation,
- WebCore::DragOperationCopy,
- WebCore::DragOperationLink,
- WebCore::DragOperationGeneric,
- WebCore::DragOperationPrivate,
- WebCore::DragOperationMove,
- WebCore::DragOperationDelete
+ WebCore::DragOperation::Copy,
+ WebCore::DragOperation::Link,
+ WebCore::DragOperation::Generic,
+ WebCore::DragOperation::Private,
+ WebCore::DragOperation::Move,
+ WebCore::DragOperation::Delete
>;
};
@@ -120,12 +120,12 @@
template<> struct OptionSetTraits<WebCore::DragOperation> {
using values = OptionSetValues<
WebCore::DragOperation,
- WebCore::DragOperationCopy,
- WebCore::DragOperationLink,
- WebCore::DragOperationGeneric,
- WebCore::DragOperationPrivate,
- WebCore::DragOperationMove,
- WebCore::DragOperationDelete
+ WebCore::DragOperation::Copy,
+ WebCore::DragOperation::Link,
+ WebCore::DragOperation::Generic,
+ WebCore::DragOperation::Private,
+ WebCore::DragOperation::Move,
+ WebCore::DragOperation::Delete
>;
};
diff --git a/Source/WebCore/page/DragController.cpp b/Source/WebCore/page/DragController.cpp
index bfba908..2f30208 100644
--- a/Source/WebCore/page/DragController.cpp
+++ b/Source/WebCore/page/DragController.cpp
@@ -181,7 +181,7 @@
DragOperation DragController::platformGenericDragOperation()
{
- return DragOperationMove;
+ return DragOperation::Move;
}
#endif
@@ -321,7 +321,7 @@
if (dragOperation)
m_dragHandlingMethod = DragHandlingMethod::PageLoad;
} else if (m_dragHandlingMethod == DragHandlingMethod::SetColor)
- dragOperation = DragOperationCopy;
+ dragOperation = DragOperation::Copy;
updateSupportedTypeIdentifiersForDragHandlingMethod(m_dragHandlingMethod, dragData);
return dragOperation;
@@ -422,7 +422,7 @@
if (destinationActionMask.contains(DragDestinationAction::Edit) && canProcessDrag(dragData)) {
if (dragData.containsColor()) {
- dragOperation = DragOperationGeneric;
+ dragOperation = DragOperation::Generic;
return DragHandlingMethod::SetColor;
}
@@ -444,7 +444,7 @@
clearDragCaret();
Frame* innerFrame = element->document().frame();
- dragOperation = dragIsMove(innerFrame->selection(), dragData) ? DragOperationMove : DragOperationCopy;
+ dragOperation = dragIsMove(innerFrame->selection(), dragData) ? DragOperation::Move : DragOperation::Copy;
unsigned numberOfFiles = dragData.numberOfFiles();
if (m_fileInputElementUnderMouse) {
@@ -697,21 +697,21 @@
{
// This is designed to match IE's operation fallback for the case where
// the page calls preventDefault() in a drag event but doesn't set dropEffect.
- if (sourceOperationMask.containsAll({ DragOperationCopy, DragOperationLink, DragOperationGeneric, DragOperationPrivate, DragOperationMove, DragOperationDelete }))
- return DragOperationCopy;
+ if (sourceOperationMask.containsAll({ DragOperation::Copy, DragOperation::Link, DragOperation::Generic, DragOperation::Private, DragOperation::Move, DragOperation::Delete }))
+ return DragOperation::Copy;
if (sourceOperationMask.isEmpty())
return WTF::nullopt;
- if (sourceOperationMask.contains(DragOperationMove))
- return DragOperationMove;
- if (sourceOperationMask.contains(DragOperationGeneric))
+ if (sourceOperationMask.contains(DragOperation::Move))
+ return DragOperation::Move;
+ if (sourceOperationMask.contains(DragOperation::Generic))
return DragController::platformGenericDragOperation();
- if (sourceOperationMask.contains(DragOperationCopy))
- return DragOperationCopy;
- if (sourceOperationMask.contains(DragOperationLink))
- return DragOperationLink;
+ if (sourceOperationMask.contains(DragOperation::Copy))
+ return DragOperation::Copy;
+ if (sourceOperationMask.contains(DragOperation::Link))
+ return DragOperation::Link;
// FIXME: Does IE really return "generic" even if no operations were allowed by the source?
- return DragOperationGeneric;
+ return DragOperation::Generic;
}
bool DragController::tryDHTMLDrag(const DragData& dragData, Optional<DragOperation>& operation)
@@ -997,7 +997,7 @@
// Selection, image, and link drags receive a default set of allowed drag operations that
// follows from:
// http://trac.webkit.org/browser/trunk/WebKit/mac/WebView/WebHTMLView.mm?rev=48526#L3430
- m_sourceDragOperationMask.add({ DragOperationGeneric, DragOperationCopy });
+ m_sourceDragOperationMask.add({ DragOperation::Generic, DragOperation::Copy });
}
ASSERT(state.source);
diff --git a/Source/WebCore/page/EventHandler.cpp b/Source/WebCore/page/EventHandler.cpp
index 0e01345..14bcc5b 100644
--- a/Source/WebCore/page/EventHandler.cpp
+++ b/Source/WebCore/page/EventHandler.cpp
@@ -2337,11 +2337,11 @@
static Optional<DragOperation> convertDropZoneOperationToDragOperation(const String& dragOperation)
{
if (dragOperation == "copy")
- return DragOperationCopy;
+ return DragOperation::Copy;
if (dragOperation == "move")
- return DragOperationMove;
+ return DragOperation::Move;
if (dragOperation == "link")
- return DragOperationLink;
+ return DragOperation::Link;
return WTF::nullopt;
}
@@ -2349,9 +2349,9 @@
{
if (operation) {
switch (*operation) {
- case DragOperationMove:
+ case DragOperation::Move:
return "move"_s;
- case DragOperationLink:
+ case DragOperation::Link:
return "link"_s;
default:
break;
diff --git a/Source/WebCore/page/gtk/DragControllerGtk.cpp b/Source/WebCore/page/gtk/DragControllerGtk.cpp
index d71ab1d..660ba95 100644
--- a/Source/WebCore/page/gtk/DragControllerGtk.cpp
+++ b/Source/WebCore/page/gtk/DragControllerGtk.cpp
@@ -54,7 +54,7 @@
{
// FIXME: This logic is incomplete
if (dragData.containsURL())
- return DragOperationCopy;
+ return DragOperation::Copy;
return WTF::nullopt;
}
diff --git a/Source/WebCore/page/mac/DragControllerMac.mm b/Source/WebCore/page/mac/DragControllerMac.mm
index c603fbd..bd98507 100644
--- a/Source/WebCore/page/mac/DragControllerMac.mm
+++ b/Source/WebCore/page/mac/DragControllerMac.mm
@@ -79,7 +79,7 @@
return WTF::nullopt;
if (!m_documentUnderMouse || (!(dragData.flags() & (DragApplicationHasAttachedSheet | DragApplicationIsSource))))
- return DragOperationCopy;
+ return DragOperation::Copy;
return WTF::nullopt;
}
@@ -111,7 +111,7 @@
{
// On iOS, UIKit skips the -performDrop invocation altogether if MOVE is forbidden.
// Thus, if MOVE is not allowed in the drag source operation mask, fall back to only other allowable action, COPY.
- return DragOperationCopy;
+ return DragOperation::Copy;
}
void DragController::updateSupportedTypeIdentifiersForDragHandlingMethod(DragHandlingMethod dragHandlingMethod, const DragData& dragData) const
diff --git a/Source/WebCore/page/win/DragControllerWin.cpp b/Source/WebCore/page/win/DragControllerWin.cpp
index 8db8c9d..32f5b3ae 100644
--- a/Source/WebCore/page/win/DragControllerWin.cpp
+++ b/Source/WebCore/page/win/DragControllerWin.cpp
@@ -49,7 +49,7 @@
// If this can be determined from within WebCore operationForDrag can be pulled into
// WebCore itself.
if (dragData.containsURL() && !m_didInitiateDrag)
- return DragOperationCopy;
+ return DragOperation::Copy;
return WTF::nullopt;
}
diff --git a/Source/WebCore/platform/gtk/GtkUtilities.cpp b/Source/WebCore/platform/gtk/GtkUtilities.cpp
index 5e7f2f3..8160f63 100644
--- a/Source/WebCore/platform/gtk/GtkUtilities.cpp
+++ b/Source/WebCore/platform/gtk/GtkUtilities.cpp
@@ -153,11 +153,11 @@
{
OptionSet<DragOperation> action;
if (gdkAction & GDK_ACTION_COPY)
- action.add(DragOperationCopy);
+ action.add(DragOperation::Copy);
if (gdkAction & GDK_ACTION_MOVE)
- action.add(DragOperationMove);
+ action.add(DragOperation::Move);
if (gdkAction & GDK_ACTION_LINK)
- action.add(DragOperationLink);
+ action.add(DragOperation::Link);
return action;
}
@@ -166,11 +166,11 @@
{
unsigned gdkAction = 0;
- if (coreAction.contains(DragOperationCopy))
+ if (coreAction.contains(DragOperation::Copy))
gdkAction |= GDK_ACTION_COPY;
- if (coreAction.contains(DragOperationMove))
+ if (coreAction.contains(DragOperation::Move))
gdkAction |= GDK_ACTION_MOVE;
- if (coreAction.contains(DragOperationLink))
+ if (coreAction.contains(DragOperation::Link))
gdkAction |= GDK_ACTION_LINK;
return static_cast<GdkDragAction>(gdkAction);
@@ -178,11 +178,11 @@
GdkDragAction dragOperationToSingleGdkDragAction(OptionSet<DragOperation> coreAction)
{
- if (coreAction.contains(DragOperationCopy))
+ if (coreAction.contains(DragOperation::Copy))
return GDK_ACTION_COPY;
- if (coreAction.contains(DragOperationMove))
+ if (coreAction.contains(DragOperation::Move))
return GDK_ACTION_MOVE;
- if (coreAction.contains(DragOperationLink))
+ if (coreAction.contains(DragOperation::Link))
return GDK_ACTION_LINK;
return static_cast<GdkDragAction>(0);
}
diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog
index 01cf390..54e2d7c 100644
--- a/Source/WebKit/ChangeLog
+++ b/Source/WebKit/ChangeLog
@@ -1,3 +1,22 @@
+2020-06-08 David Kilzer <ddkilzer@apple.com>
+
+ [IPC] Adopt enum class for DragOperation
+ <https://webkit.org/b/212870>
+ <rdar://problem/64069940>
+
+ Reviewed by Darin Adler.
+
+ * Scripts/webkit/messages.py:
+ - Remove FIXME now that it's not needed.
+ * Shared/API/Cocoa/_WKDragActionsInternal.h:
+ (WebKit::coreDragOperationMask):
+ * UIProcess/Cocoa/WebViewImpl.mm:
+ (WebKit::kit):
+ * UIProcess/ios/WKContentViewInteraction.mm:
+ (dropOperationForWebCoreDragOperation):
+ (coreDragOperationForUIDropOperation):
+ (-[WKContentView dragDataForDropSession:dragDestinationAction:]):
+
2020-06-08 Commit Queue <commit-queue@webkit.org>
Unreviewed, reverting r262685.
diff --git a/Source/WebKit/Scripts/webkit/messages.py b/Source/WebKit/Scripts/webkit/messages.py
index f87bbff..1bfd282 100644
--- a/Source/WebKit/Scripts/webkit/messages.py
+++ b/Source/WebKit/Scripts/webkit/messages.py
@@ -209,7 +209,6 @@
'WebCore::DictationContext',
'WebCore::DocumentIdentifier',
'WebCore::DocumentOrWorkerIdentifier',
- 'WebCore::DragOperation', # FIXME: Remove after converting WebCore::DragOperation to enum class.
'WebCore::FetchIdentifier',
'WebCore::FrameIdentifier',
'WebCore::LibWebRTCSocketIdentifier',
diff --git a/Source/WebKit/Shared/API/Cocoa/_WKDragActionsInternal.h b/Source/WebKit/Shared/API/Cocoa/_WKDragActionsInternal.h
index 89789f3..d6d1a3b 100644
--- a/Source/WebKit/Shared/API/Cocoa/_WKDragActionsInternal.h
+++ b/Source/WebKit/Shared/API/Cocoa/_WKDragActionsInternal.h
@@ -45,17 +45,17 @@
{
OptionSet<WebCore::DragOperation> result;
if (operation & NSDragOperationCopy)
- result.add(WebCore::DragOperationCopy);
+ result.add(WebCore::DragOperation::Copy);
if (operation & NSDragOperationLink)
- result.add(WebCore::DragOperationLink);
+ result.add(WebCore::DragOperation::Link);
if (operation & NSDragOperationGeneric)
- result.add(WebCore::DragOperationGeneric);
+ result.add(WebCore::DragOperation::Generic);
if (operation & NSDragOperationPrivate)
- result.add(WebCore::DragOperationPrivate);
+ result.add(WebCore::DragOperation::Private);
if (operation & NSDragOperationMove)
- result.add(WebCore::DragOperationMove);
+ result.add(WebCore::DragOperation::Move);
if (operation & NSDragOperationDelete)
- result.add(WebCore::DragOperationDelete);
+ result.add(WebCore::DragOperation::Delete);
return result;
}
#endif // USE(APPKIT)
diff --git a/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm b/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm
index 69b62de..1145bd4 100644
--- a/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm
+++ b/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm
@@ -3962,17 +3962,17 @@
return NSDragOperationNone;
switch (*dragOperation) {
- case WebCore::DragOperationCopy:
+ case WebCore::DragOperation::Copy:
return NSDragOperationCopy;
- case WebCore::DragOperationLink:
+ case WebCore::DragOperation::Link:
return NSDragOperationLink;
- case WebCore::DragOperationGeneric:
+ case WebCore::DragOperation::Generic:
return NSDragOperationGeneric;
- case WebCore::DragOperationPrivate:
+ case WebCore::DragOperation::Private:
return NSDragOperationPrivate;
- case WebCore::DragOperationMove:
+ case WebCore::DragOperation::Move:
return NSDragOperationMove;
- case WebCore::DragOperationDelete:
+ case WebCore::DragOperation::Delete:
return NSDragOperationDelete;
}
diff --git a/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm b/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
index 292761c..d2b4f73 100644
--- a/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
+++ b/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
@@ -7310,9 +7310,9 @@
static UIDropOperation dropOperationForWebCoreDragOperation(Optional<WebCore::DragOperation> operation)
{
if (operation) {
- if (*operation == WebCore::DragOperationMove)
+ if (*operation == WebCore::DragOperation::Move)
return UIDropOperationMove;
- if (*operation == WebCore::DragOperationCopy)
+ if (*operation == WebCore::DragOperation::Copy)
return UIDropOperationCopy;
}
return UIDropOperationCancel;
@@ -7324,11 +7324,11 @@
case UIDropOperationCancel:
return WTF::nullopt;
case UIDropOperationForbidden:
- return WebCore::DragOperationPrivate;
+ return WebCore::DragOperation::Private;
case UIDropOperationCopy:
- return WebCore::DragOperationCopy;
+ return WebCore::DragOperation::Copy;
case UIDropOperationMove:
- return WebCore::DragOperationMove;
+ return WebCore::DragOperation::Move;
}
ASSERT_NOT_REACHED();
return WTF::nullopt;
@@ -7342,7 +7342,7 @@
auto dragOperationMask = WebCore::anyDragOperation();
if (!session.allowsMoveOperation)
- dragOperationMask.remove(WebCore::DragOperationMove);
+ dragOperationMask.remove(WebCore::DragOperation::Move);
return { session, WebCore::roundedIntPoint(client), WebCore::roundedIntPoint(global), dragOperationMask, WebCore::DragApplicationNone, WebKit::coreDragDestinationActionMask(dragDestinationAction) };
}
diff --git a/Source/WebKitLegacy/mac/ChangeLog b/Source/WebKitLegacy/mac/ChangeLog
index 8913b89..9bd7d3c 100644
--- a/Source/WebKitLegacy/mac/ChangeLog
+++ b/Source/WebKitLegacy/mac/ChangeLog
@@ -1,3 +1,17 @@
+2020-06-08 David Kilzer <ddkilzer@apple.com>
+
+ [IPC] Adopt enum class for DragOperation
+ <https://webkit.org/b/212870>
+ <rdar://problem/64069940>
+
+ Reviewed by Darin Adler.
+
+ * WebView/WebHTMLView.mm:
+ (kit):
+ * WebView/WebView.mm:
+ (coreDragOperationMask):
+ (kit):
+
2020-06-07 Philippe Normand <pnormand@igalia.com>
Remove ENABLE_VIDEO_TRACK ifdef guards
diff --git a/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm b/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm
index 38e7909..854c04f 100644
--- a/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm
+++ b/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm
@@ -4233,17 +4233,17 @@
static NSDragOperation kit(OptionSet<WebCore::DragOperation> operationMask)
{
NSDragOperation result = NSDragOperationNone;
- if (operationMask.contains(WebCore::DragOperationCopy))
+ if (operationMask.contains(WebCore::DragOperation::Copy))
result |= NSDragOperationCopy;
- if (operationMask.contains(WebCore::DragOperationLink))
+ if (operationMask.contains(WebCore::DragOperation::Link))
result |= NSDragOperationLink;
- if (operationMask.contains(WebCore::DragOperationGeneric))
+ if (operationMask.contains(WebCore::DragOperation::Generic))
result |= NSDragOperationGeneric;
- if (operationMask.contains(WebCore::DragOperationPrivate))
+ if (operationMask.contains(WebCore::DragOperation::Private))
result |= NSDragOperationPrivate;
- if (operationMask.contains(WebCore::DragOperationMove))
+ if (operationMask.contains(WebCore::DragOperation::Move))
result |= NSDragOperationMove;
- if (operationMask.contains(WebCore::DragOperationDelete))
+ if (operationMask.contains(WebCore::DragOperation::Delete))
result |= NSDragOperationDelete;
return result;
}
diff --git a/Source/WebKitLegacy/mac/WebView/WebView.mm b/Source/WebKitLegacy/mac/WebView/WebView.mm
index f8db8c8..db903e8 100644
--- a/Source/WebKitLegacy/mac/WebView/WebView.mm
+++ b/Source/WebKitLegacy/mac/WebView/WebView.mm
@@ -605,22 +605,22 @@
#if USE(APPKIT)
if (operation & NSDragOperationCopy)
- result.add(WebCore::DragOperationCopy);
+ result.add(WebCore::DragOperation::Copy);
if (operation & NSDragOperationLink)
- result.add(WebCore::DragOperationLink);
+ result.add(WebCore::DragOperation::Link);
if (operation & NSDragOperationGeneric)
- result.add(WebCore::DragOperationGeneric);
+ result.add(WebCore::DragOperation::Generic);
if (operation & NSDragOperationPrivate)
- result.add(WebCore::DragOperationPrivate);
+ result.add(WebCore::DragOperation::Private);
if (operation & NSDragOperationMove)
- result.add(WebCore::DragOperationMove);
+ result.add(WebCore::DragOperation::Move);
if (operation & NSDragOperationDelete)
- result.add(WebCore::DragOperationDelete);
+ result.add(WebCore::DragOperation::Delete);
#else
if (operation & _UIDragOperationCopy)
- result.add(WebCore::DragOperationCopy);
+ result.add(WebCore::DragOperation::Copy);
if (operation & _UIDragOperationMove)
- result.add(WebCore::DragOperationMove);
+ result.add(WebCore::DragOperation::Move);
#endif // USE(APPKIT)
return result;
@@ -633,17 +633,17 @@
return NSDragOperationNone;
switch (*dragOperation) {
- case WebCore::DragOperationCopy:
+ case WebCore::DragOperation::Copy:
return NSDragOperationCopy;
- case WebCore::DragOperationLink:
+ case WebCore::DragOperation::Link:
return NSDragOperationLink;
- case WebCore::DragOperationGeneric:
+ case WebCore::DragOperation::Generic:
return NSDragOperationGeneric;
- case WebCore::DragOperationPrivate:
+ case WebCore::DragOperation::Private:
return NSDragOperationPrivate;
- case WebCore::DragOperationMove:
+ case WebCore::DragOperation::Move:
return NSDragOperationMove;
- case WebCore::DragOperationDelete:
+ case WebCore::DragOperation::Delete:
return NSDragOperationDelete;
}
@@ -657,17 +657,17 @@
return _UIDragOperationNone;
switch (*dragOperation) {
- case WebCore::DragOperationCopy:
+ case WebCore::DragOperation::Copy:
return _UIDragOperationCopy;
- case WebCore::DragOperationLink:
+ case WebCore::DragOperation::Link:
return _UIDragOperationNone;
- case WebCore::DragOperationGeneric:
+ case WebCore::DragOperation::Generic:
return _UIDragOperationMove;
- case WebCore::DragOperationPrivate:
+ case WebCore::DragOperation::Private:
return _UIDragOperationNone;
- case WebCore::DragOperationMove:
+ case WebCore::DragOperation::Move:
return _UIDragOperationMove;
- case WebCore::DragOperationDelete:
+ case WebCore::DragOperation::Delete:
return _UIDragOperationNone;
}
diff --git a/Source/WebKitLegacy/win/ChangeLog b/Source/WebKitLegacy/win/ChangeLog
index f7ba1a5..3d0abfb 100644
--- a/Source/WebKitLegacy/win/ChangeLog
+++ b/Source/WebKitLegacy/win/ChangeLog
@@ -1,3 +1,18 @@
+2020-06-08 David Kilzer <ddkilzer@apple.com>
+
+ [IPC] Adopt enum class for DragOperation
+ <https://webkit.org/b/212870>
+ <rdar://problem/64069940>
+
+ Reviewed by Darin Adler.
+
+ * WebCoreSupport/WebDragClient.cpp:
+ (draggingSourceOperationMaskToDragCursors):
+ (WebDragClient::startDrag):
+ * WebView.cpp:
+ (dragOperationToDragCursor):
+ (WebView::keyStateToDragOperation const):
+
2020-06-07 Philippe Normand <pnormand@igalia.com>
Remove ENABLE_VIDEO_TRACK ifdef guards
diff --git a/Source/WebKitLegacy/win/WebCoreSupport/WebDragClient.cpp b/Source/WebKitLegacy/win/WebCoreSupport/WebDragClient.cpp
index e9b65fa..5b193a7 100644
--- a/Source/WebKitLegacy/win/WebCoreSupport/WebDragClient.cpp
+++ b/Source/WebKitLegacy/win/WebCoreSupport/WebDragClient.cpp
@@ -47,13 +47,13 @@
static DWORD draggingSourceOperationMaskToDragCursors(OptionSet<DragOperation> operationMask)
{
DWORD result = DROPEFFECT_NONE;
- if (operationMask.contains(DragOperationCopy))
+ if (operationMask.contains(DragOperation::Copy))
result |= DROPEFFECT_COPY;
- if (operationMask.contains(DragOperationLink))
+ if (operationMask.contains(DragOperation::Link))
result |= DROPEFFECT_LINK;
- if (operationMask.contains(DragOperationMove))
+ if (operationMask.contains(DragOperation::Move))
result |= DROPEFFECT_MOVE;
- if (operationMask.contains(DragOperationGeneric))
+ if (operationMask.contains(DragOperation::Generic))
result |= DROPEFFECT_MOVE;
return result;
}
@@ -165,11 +165,11 @@
OptionSet<DragOperation> operation;
if (hr == DRAGDROP_S_DROP) {
if (effect & DROPEFFECT_COPY)
- operation = DragOperationCopy;
+ operation = DragOperation::Copy;
else if (effect & DROPEFFECT_LINK)
- operation = DragOperationLink;
+ operation = DragOperation::Link;
else if (effect & DROPEFFECT_MOVE)
- operation = DragOperationMove;
+ operation = DragOperation::Move;
}
frame.eventHandler().dragSourceEndedAt(generateMouseEvent(m_webView, false), operation);
}
diff --git a/Source/WebKitLegacy/win/WebView.cpp b/Source/WebKitLegacy/win/WebView.cpp
index 33be657..74435bb 100644
--- a/Source/WebKitLegacy/win/WebView.cpp
+++ b/Source/WebKitLegacy/win/WebView.cpp
@@ -5848,13 +5848,13 @@
return DROPEFFECT_NONE;
DWORD result = DROPEFFECT_NONE;
- if (*operation == DragOperationCopy)
+ if (*operation == DragOperation::Copy)
result = DROPEFFECT_COPY;
- else if (*operation == DragOperationLink)
+ else if (*operation == DragOperation::Link)
result = DROPEFFECT_LINK;
- else if (*operation == DragOperationMove)
+ else if (*operation == DragOperation::Move)
result = DROPEFFECT_MOVE;
- else if (*operation == DragOperationGeneric)
+ else if (*operation == DragOperation::Generic)
result = DROPEFFECT_MOVE; // This appears to be the Firefox behaviour.
return result;
}
@@ -5871,11 +5871,11 @@
auto operationMask = m_page->dragController().sourceDragOperationMask();
if ((grfKeyState & (MK_CONTROL | MK_SHIFT)) == (MK_CONTROL | MK_SHIFT))
- operationMask = { DragOperationLink };
+ operationMask = { DragOperation::Link };
else if ((grfKeyState & MK_CONTROL) == MK_CONTROL)
- operationMask = { DragOperationCopy };
+ operationMask = { DragOperation::Copy };
else if ((grfKeyState & MK_SHIFT) == MK_SHIFT)
- operationMask = { DragOperationGeneric };
+ operationMask = { DragOperation::Generic };
return operationMask;
}
diff --git a/Tools/ChangeLog b/Tools/ChangeLog
index 4886c00..b14f336 100644
--- a/Tools/ChangeLog
+++ b/Tools/ChangeLog
@@ -1,3 +1,14 @@
+2020-06-08 David Kilzer <ddkilzer@apple.com>
+
+ [IPC] Adopt enum class for DragOperation
+ <https://webkit.org/b/212870>
+ <rdar://problem/64069940>
+
+ Reviewed by Darin Adler.
+
+ * Scripts/do-webcore-rename:
+ - Do DragOperation renames.
+
2020-06-08 Commit Queue <commit-queue@webkit.org>
Unreviewed, reverting r262685.
diff --git a/Tools/Scripts/do-webcore-rename b/Tools/Scripts/do-webcore-rename
index 0ccdda2..2a91e57 100755
--- a/Tools/Scripts/do-webcore-rename
+++ b/Tools/Scripts/do-webcore-rename
@@ -1,6 +1,6 @@
#!/usr/bin/env perl
-# Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
+# Copyright (C) 2006-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
@@ -102,7 +102,12 @@
my $isDOMTypeRename = 0;
my %renames = (
# Renames go here in the form of:
- "flagIsAtomic" => "flagIsAtom",
+ "DragOperationCopy" => "DragOperation::Copy",
+ "DragOperationLink" => "DragOperation::Link",
+ "DragOperationGeneric" => "DragOperation::Generic",
+ "DragOperationPrivate" => "DragOperation::Private",
+ "DragOperationMove" => "DragOperation::Move",
+ "DragOperationDelete" => "DragOperation::Delete",
);
my %renamesContemplatedForTheFuture = (