Changeset 262190 in webkit


Ignore:
Timestamp:
May 27, 2020 3:23:17 AM (4 years ago)
Author:
ddkilzer@apple.com
Message:

Use OptionSet<DragDestinationAction> for mask values
<https://webkit.org/b/212115>
<rdar://problem/63423380>

Reviewed by Alex Christensen.

Source/WebCore:

DragDestinationAction is used as both individual values and as a
bit mask. This changes bit mask uses to OptionSet<> and renames
variables to denote masks.

  • page/DragActions.h:

(WebCore::DragDestinationAction):

  • Convert to enum class and remove *None and *Any values.

(WebCore::DragDestinationActionAny):

  • Add helper function to return OptionSet<DragDestinationAction> with all values set.
  • page/DragController.cpp:

(WebCore::DragController::performDragOperation):
(WebCore::DragController::dragEnteredOrUpdated):
(WebCore::DragController::tryDocumentDrag):
(WebCore::DragController::concludeEditDrag):

  • page/DragController.h:

(WebCore::DragController::dragDestinationAction const): Rename.
(WebCore::DragController::dragDestinationActionMask const):

  • Rename dragDestinationAction() to dragDestinationActionMask().
  • platform/DragData.cpp:

(WebCore::DragData::DragData):

  • platform/DragData.h:

(WebCore::DragData::DragData):

  • Use DragDestinationActionAny() in place of removed DragDestinationActionAny.

(WebCore::DragData::dragDestinationAction const): Rename.
(WebCore::DragData::dragDestinationActionMask const):

  • Rename dragDestinationAction() to dragDestinationActionMask().

(WebCore::DragData::operator =):

  • platform/cocoa/DragDataCocoa.mm:

(WebCore::DragData::DragData):

Source/WebKit:

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<DragData>::encode):
(IPC::ArgumentCoder<DragData>::decode):

  • Switch from decodeEnum() and encodeEnum() to modern equivalents that check for valid enum values.
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::draggingEntered):
(WebKit::WebViewImpl::draggingUpdated):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView dragDataForDropSession:dragDestinationAction:]):

  • WebProcess/WebCoreSupport/WebDragClient.cpp:

(WebKit::WebDragClient::willPerformDragDestinationAction):

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebDragClient.mm:

(WebDragClient::willPerformDragDestinationAction):

  • WebView/WebView.mm:

(-[WebView dragDataForSession:client:global:operation:]):
(-[WebView actionMaskForDraggingInfo:]):

Location:
trunk/Source
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r262189 r262190  
     12020-05-27  David Kilzer  <ddkilzer@apple.com>
     2
     3        Use OptionSet<DragDestinationAction> for mask values
     4        <https://webkit.org/b/212115>
     5        <rdar://problem/63423380>
     6
     7        Reviewed by Alex Christensen.
     8
     9        DragDestinationAction is used as both individual values and as a
     10        bit mask. This changes bit mask uses to OptionSet<> and renames
     11        variables to denote masks.
     12
     13        * page/DragActions.h:
     14        (WebCore::DragDestinationAction):
     15        - Convert to enum class and remove *None and *Any values.
     16        (WebCore::DragDestinationActionAny):
     17        - Add helper function to return OptionSet<DragDestinationAction>
     18          with all values set.
     19        * page/DragController.cpp:
     20        (WebCore::DragController::performDragOperation):
     21        (WebCore::DragController::dragEnteredOrUpdated):
     22        (WebCore::DragController::tryDocumentDrag):
     23        (WebCore::DragController::concludeEditDrag):
     24        * page/DragController.h:
     25        (WebCore::DragController::dragDestinationAction const): Rename.
     26        (WebCore::DragController::dragDestinationActionMask const):
     27        - Rename dragDestinationAction() to dragDestinationActionMask().
     28        * platform/DragData.cpp:
     29        (WebCore::DragData::DragData):
     30        * platform/DragData.h:
     31        (WebCore::DragData::DragData):
     32        - Use DragDestinationActionAny() in place of removed
     33          DragDestinationActionAny.
     34        (WebCore::DragData::dragDestinationAction const): Rename.
     35        (WebCore::DragData::dragDestinationActionMask const):
     36        - Rename dragDestinationAction() to dragDestinationActionMask().
     37        (WebCore::DragData::operator =):
     38        * platform/cocoa/DragDataCocoa.mm:
     39        (WebCore::DragData::DragData):
     40
    1412020-05-27  Youenn Fablet  <youenn@apple.com>
    242
  • trunk/Source/WebCore/page/DragActions.h

    r239039 r262190  
    11/*
    2  * Copyright (C) 2007-2018 Apple Inc. All rights reserved.
     2 * Copyright (C) 2007-2020 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2727
    2828#include <limits.h>
     29#include <wtf/EnumTraits.h>
    2930#include <wtf/Forward.h>
     31#include <wtf/OptionSet.h>
    3032
    3133namespace WebCore {
    3234
    33 // WebCoreDragDestinationAction should be kept in sync with WebDragDestinationAction.
    34 typedef enum {
    35     DragDestinationActionNone    = 0,
    36     DragDestinationActionDHTML   = 1,
    37     DragDestinationActionEdit    = 2,
    38     DragDestinationActionLoad    = 4,
    39     DragDestinationActionAny     = UINT_MAX
    40 } DragDestinationAction;
     35// WebCore::DragDestinationAction must be kept in sync with WebDragDestinationAction and WKDragDestinationAction.
     36enum class DragDestinationAction : uint8_t {
     37    DHTML = 1,
     38    Edit  = 2,
     39    Load  = 4
     40};
     41
     42inline constexpr OptionSet<DragDestinationAction> DragDestinationActionAny()
     43{
     44    return OptionSet<DragDestinationAction> { DragDestinationAction::DHTML, DragDestinationAction::Edit, DragDestinationAction::Load };
     45}
    4146
    4247// WebCoreDragSourceAction should be kept in sync with WebDragSourceAction.
  • trunk/Source/WebCore/page/DragController.cpp

    r261776 r262190  
    256256        shouldOpenExternalURLsPolicy = m_documentUnderMouse->shouldOpenExternalURLsPolicyToPropagate();
    257257
    258     if ((m_dragDestinationAction & DragDestinationActionDHTML) && dragIsHandledByDocument(m_dragHandlingMethod)) {
    259         client().willPerformDragDestinationAction(DragDestinationActionDHTML, dragData);
     258    if ((m_dragDestinationActionMask.contains(DragDestinationAction::DHTML)) && dragIsHandledByDocument(m_dragHandlingMethod)) {
     259        client().willPerformDragDestinationAction(DragDestinationAction::DHTML, dragData);
    260260        Ref<Frame> mainFrame(m_page.mainFrame());
    261261        bool preventedDefault = false;
     
    269269    }
    270270
    271     if ((m_dragDestinationAction & DragDestinationActionEdit) && concludeEditDrag(dragData)) {
     271    if ((m_dragDestinationActionMask.contains(DragDestinationAction::Edit)) && concludeEditDrag(dragData)) {
    272272        client().didConcludeEditDrag();
    273273        m_documentUnderMouse = nullptr;
     
    286286        return false;
    287287
    288     client().willPerformDragDestinationAction(DragDestinationActionLoad, dragData);
     288    client().willPerformDragDestinationAction(DragDestinationAction::Load, dragData);
    289289    FrameLoadRequest frameLoadRequest { m_page.mainFrame(), ResourceRequest { urlString } };
    290290    frameLoadRequest.setShouldOpenExternalURLsPolicy(shouldOpenExternalURLsPolicy);
     
    309309    mouseMovedIntoDocument(m_page.mainFrame().documentAtPoint(dragData.clientPosition()));
    310310
    311     m_dragDestinationAction = dragData.dragDestinationAction();
    312     if (m_dragDestinationAction == DragDestinationActionNone) {
     311    m_dragDestinationActionMask = dragData.dragDestinationActionMask();
     312    if (m_dragDestinationActionMask.isEmpty()) {
    313313        clearDragCaret(); // FIXME: Why not call mouseMovedIntoDocument(nullptr)?
    314314        return DragOperationNone;
     
    316316
    317317    DragOperation dragOperation = DragOperationNone;
    318     m_dragHandlingMethod = tryDocumentDrag(dragData, m_dragDestinationAction, dragOperation);
    319     if (m_dragHandlingMethod == DragHandlingMethod::None && (m_dragDestinationAction & DragDestinationActionLoad)) {
     318    m_dragHandlingMethod = tryDocumentDrag(dragData, m_dragDestinationActionMask, dragOperation);
     319    if (m_dragHandlingMethod == DragHandlingMethod::None && (m_dragDestinationActionMask.contains(DragDestinationAction::Load))) {
    320320        dragOperation = operationForLoad(dragData);
    321321        if (dragOperation != DragOperationNone)
     
    389389#endif
    390390
    391 DragHandlingMethod DragController::tryDocumentDrag(const DragData& dragData, DragDestinationAction actionMask, DragOperation& dragOperation)
     391DragHandlingMethod DragController::tryDocumentDrag(const DragData& dragData, OptionSet<DragDestinationAction> destinationActionMask, DragOperation& dragOperation)
    392392{
    393393    if (!m_documentUnderMouse)
     
    398398
    399399    bool isHandlingDrag = false;
    400     if (actionMask & DragDestinationActionDHTML) {
     400    if (destinationActionMask.contains(DragDestinationAction::DHTML)) {
    401401        isHandlingDrag = tryDHTMLDrag(dragData, dragOperation);
    402402        // Do not continue if m_documentUnderMouse has been reset by tryDHTMLDrag.
     
    421421    }
    422422
    423     if ((actionMask & DragDestinationActionEdit) && canProcessDrag(dragData)) {
     423    if (destinationActionMask.contains(DragDestinationAction::Edit) && canProcessDrag(dragData)) {
    424424        if (dragData.containsColor()) {
    425425            dragOperation = DragOperationGeneric;
     
    570570        if (!innerFrame->editor().shouldApplyStyle(style.ptr(), createLiveRange(innerRange).get()))
    571571            return false;
    572         client().willPerformDragDestinationAction(DragDestinationActionEdit, dragData);
     572        client().willPerformDragDestinationAction(DragDestinationAction::Edit, dragData);
    573573        innerFrame->editor().applyStyle(style.ptr(), EditAction::SetColor);
    574574        return true;
     
    606606            return false;
    607607
    608         client().willPerformDragDestinationAction(DragDestinationActionEdit, dragData);
     608        client().willPerformDragDestinationAction(DragDestinationAction::Edit, dragData);
    609609
    610610        if (editor.client() && editor.client()->performTwoStepDrop(*fragment, createLiveRange(*range), isMove))
     
    632632            return false;
    633633
    634         client().willPerformDragDestinationAction(DragDestinationActionEdit, dragData);
     634        client().willPerformDragDestinationAction(DragDestinationAction::Edit, dragData);
    635635        auto fragment = createFragmentFromText(createLiveRange(*range), text);
    636636        if (editor.client() && editor.client()->performTwoStepDrop(fragment.get(), createLiveRange(*range), isMove))
  • trunk/Source/WebCore/page/DragController.h

    r261638 r262190  
    11/*
    2  * Copyright (C) 2007, 2009 Apple Inc. All rights reserved.
     2 * Copyright (C) 2007-2020 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    8080
    8181        Document* documentUnderMouse() const { return m_documentUnderMouse.get(); }
    82         DragDestinationAction dragDestinationAction() const { return m_dragDestinationAction; }
     82        OptionSet<DragDestinationAction> dragDestinationActionMask() const { return m_dragDestinationActionMask; }
    8383        DragSourceAction delegateDragSourceAction(const IntPoint& rootViewPoint);
    8484       
     
    109109        DragOperation dragEnteredOrUpdated(const DragData&);
    110110        DragOperation operationForLoad(const DragData&);
    111         DragHandlingMethod tryDocumentDrag(const DragData&, DragDestinationAction, DragOperation&);
     111        DragHandlingMethod tryDocumentDrag(const DragData&, OptionSet<DragDestinationAction>, DragOperation&);
    112112        bool tryDHTMLDrag(const DragData&, DragOperation&);
    113113        DragOperation dragOperation(const DragData&);
     
    150150        DragHandlingMethod m_dragHandlingMethod { DragHandlingMethod::None };
    151151
    152         DragDestinationAction m_dragDestinationAction { DragDestinationActionNone };
     152        OptionSet<DragDestinationAction> m_dragDestinationActionMask;
    153153        DragSourceAction m_dragSourceAction { DragSourceActionNone };
    154154        bool m_didInitiateDrag { false };
  • trunk/Source/WebCore/platform/DragData.cpp

    r214403 r262190  
    11/*
    2  * Copyright (C) 2007 Apple Inc. All rights reserved.
     2 * Copyright (C) 2007-2020 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    3333
    3434#if !PLATFORM(COCOA)
    35 DragData::DragData(DragDataRef data, const IntPoint& clientPosition, const IntPoint& globalPosition, DragOperation sourceOperationMask, DragApplicationFlags flags, DragDestinationAction destinationAction)
     35DragData::DragData(DragDataRef data, const IntPoint& clientPosition, const IntPoint& globalPosition, DragOperation sourceOperationMask, DragApplicationFlags flags, OptionSet<DragDestinationAction> destinationActionMask)
    3636    : m_clientPosition(clientPosition)
    3737    , m_globalPosition(globalPosition)
     
    3939    , m_draggingSourceOperationMask(sourceOperationMask)
    4040    , m_applicationFlags(flags)
    41     , m_dragDestinationAction(destinationAction)
     41    , m_dragDestinationActionMask(destinationActionMask)
    4242
    4343}
    4444
    45 DragData::DragData(const String&, const IntPoint& clientPosition, const IntPoint& globalPosition, DragOperation sourceOperationMask, DragApplicationFlags flags, DragDestinationAction destinationAction)
     45DragData::DragData(const String&, const IntPoint& clientPosition, const IntPoint& globalPosition, DragOperation sourceOperationMask, DragApplicationFlags flags, OptionSet<DragDestinationAction> destinationActionMask)
    4646    : m_clientPosition(clientPosition)
    4747    , m_globalPosition(globalPosition)
     
    4949    , m_draggingSourceOperationMask(sourceOperationMask)
    5050    , m_applicationFlags(flags)
    51     , m_dragDestinationAction(destinationAction)
     51    , m_dragDestinationActionMask(destinationActionMask)
    5252{
    5353}
  • trunk/Source/WebCore/platform/DragData.h

    r238771 r262190  
    11/*
    2  * Copyright (C) 2007 Apple Inc. All rights reserved.
     2 * Copyright (C) 2007-2020 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    3131#include <wtf/Forward.h>
    3232#include <wtf/HashMap.h>
     33#include <wtf/OptionSet.h>
    3334#include <wtf/Vector.h>
    3435#include <wtf/text/WTFString.h>
     
    7576
    7677    // clientPosition is taken to be the position of the drag event within the target window, with (0,0) at the top left
    77     WEBCORE_EXPORT DragData(DragDataRef, const IntPoint& clientPosition, const IntPoint& globalPosition, DragOperation, DragApplicationFlags = DragApplicationNone, DragDestinationAction actions = DragDestinationActionAny);
    78     WEBCORE_EXPORT DragData(const String& dragStorageName, const IntPoint& clientPosition, const IntPoint& globalPosition, DragOperation, DragApplicationFlags = DragApplicationNone, DragDestinationAction actions = DragDestinationActionAny);
     78    WEBCORE_EXPORT DragData(DragDataRef, const IntPoint& clientPosition, const IntPoint& globalPosition, DragOperation, DragApplicationFlags = DragApplicationNone, OptionSet<DragDestinationAction> actionMask = DragDestinationActionAny());
     79    WEBCORE_EXPORT DragData(const String& dragStorageName, const IntPoint& clientPosition, const IntPoint& globalPosition, DragOperation, DragApplicationFlags = DragApplicationNone, OptionSet<DragDestinationAction> actionMask = DragDestinationActionAny());
    7980    // This constructor should used only by WebKit2 IPC because DragData
    8081    // is initialized by the decoder and not in the constructor.
    81     DragData() { }
     82    DragData() = default;
    8283#if PLATFORM(WIN)
    8384    WEBCORE_EXPORT DragData(const DragDataMap&, const IntPoint& clientPosition, const IntPoint& globalPosition, DragOperation sourceOperationMask, DragApplicationFlags = DragApplicationNone);
     
    102103    bool containsFiles() const;
    103104    unsigned numberOfFiles() const;
    104     DragDestinationAction dragDestinationAction() const { return m_dragDestinationAction; }
     105    OptionSet<DragDestinationAction> dragDestinationActionMask() const { return m_dragDestinationActionMask; }
    105106    void setFileNames(Vector<String>& fileNames) { m_fileNames = WTFMove(fileNames); }
    106107    const Vector<String>& fileNames() const { return m_fileNames; }
     
    120121        m_draggingSourceOperationMask = data.m_draggingSourceOperationMask;
    121122        m_applicationFlags = data.m_applicationFlags;
    122         m_dragDestinationAction = data.m_dragDestinationAction;
     123        m_dragDestinationActionMask = data.m_dragDestinationActionMask;
    123124        return *this;
    124125    }
     
    132133    DragApplicationFlags m_applicationFlags;
    133134    Vector<String> m_fileNames;
    134     DragDestinationAction m_dragDestinationAction;
     135    OptionSet<DragDestinationAction> m_dragDestinationActionMask;
    135136#if PLATFORM(COCOA)
    136137    String m_pasteboardName;
  • trunk/Source/WebCore/platform/cocoa/DragDataCocoa.mm

    r259124 r262190  
    11/*
    2  * Copyright (C) 2007-2020 Apple Inc.  All rights reserved.
     2 * Copyright (C) 2007-2020 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    117117}
    118118
    119 DragData::DragData(DragDataRef data, const IntPoint& clientPosition, const IntPoint& globalPosition, DragOperation sourceOperationMask, DragApplicationFlags flags, DragDestinationAction destinationAction)
     119DragData::DragData(DragDataRef data, const IntPoint& clientPosition, const IntPoint& globalPosition, DragOperation sourceOperationMask, DragApplicationFlags flags, OptionSet<DragDestinationAction> destinationActionMask)
    120120    : m_clientPosition(clientPosition)
    121121    , m_globalPosition(globalPosition)
     
    123123    , m_draggingSourceOperationMask(sourceOperationMask)
    124124    , m_applicationFlags(flags)
    125     , m_dragDestinationAction(destinationAction)
     125    , m_dragDestinationActionMask(destinationActionMask)
    126126#if PLATFORM(MAC)
    127127    , m_pasteboardName([[m_platformDragData draggingPasteboard] name])
     
    132132}
    133133
    134 DragData::DragData(const String& dragStorageName, const IntPoint& clientPosition, const IntPoint& globalPosition, DragOperation sourceOperationMask, DragApplicationFlags flags, DragDestinationAction destinationAction)
     134DragData::DragData(const String& dragStorageName, const IntPoint& clientPosition, const IntPoint& globalPosition, DragOperation sourceOperationMask, DragApplicationFlags flags, OptionSet<DragDestinationAction> destinationActionMask)
    135135    : m_clientPosition(clientPosition)
    136136    , m_globalPosition(globalPosition)
     
    138138    , m_draggingSourceOperationMask(sourceOperationMask)
    139139    , m_applicationFlags(flags)
    140     , m_dragDestinationAction(destinationAction)
     140    , m_dragDestinationActionMask(destinationActionMask)
    141141    , m_pasteboardName(dragStorageName)
    142142{
  • trunk/Source/WebKit/ChangeLog

    r262187 r262190  
     12020-05-27  David Kilzer  <ddkilzer@apple.com>
     2
     3        Use OptionSet<DragDestinationAction> for mask values
     4        <https://webkit.org/b/212115>
     5        <rdar://problem/63423380>
     6
     7        Reviewed by Alex Christensen.
     8
     9        * Shared/WebCoreArgumentCoders.cpp:
     10        (IPC::ArgumentCoder<DragData>::encode):
     11        (IPC::ArgumentCoder<DragData>::decode):
     12        - Switch from decodeEnum() and encodeEnum() to modern
     13          equivalents that check for valid enum values.
     14        * UIProcess/Cocoa/WebViewImpl.mm:
     15        (WebKit::WebViewImpl::draggingEntered):
     16        (WebKit::WebViewImpl::draggingUpdated):
     17        * UIProcess/ios/WKContentViewInteraction.mm:
     18        (-[WKContentView dragDataForDropSession:dragDestinationAction:]):
     19        * WebProcess/WebCoreSupport/WebDragClient.cpp:
     20        (WebKit::WebDragClient::willPerformDragDestinationAction):
     21
    1222020-05-27  Carlos Garcia Campos  <cgarcia@igalia.com>
    223
  • trunk/Source/WebKit/Shared/WebCoreArgumentCoders.cpp

    r262045 r262190  
    15381538    encoder << dragData.fileNames();
    15391539#endif
    1540     encoder.encodeEnum(dragData.dragDestinationAction());
     1540    encoder << dragData.dragDestinationActionMask();
    15411541}
    15421542
     
    15691569#endif
    15701570
    1571     DragDestinationAction destinationAction;
    1572     if (!decoder.decodeEnum(destinationAction))
    1573         return false;
    1574 
    1575     dragData = DragData(pasteboardName, clientPosition, globalPosition, draggingSourceOperationMask, applicationFlags, destinationAction);
     1571    OptionSet<DragDestinationAction> dragDestinationActionMask;
     1572    if (!decoder.decode(dragDestinationActionMask))
     1573        return false;
     1574
     1575    dragData = DragData(pasteboardName, clientPosition, globalPosition, draggingSourceOperationMask, applicationFlags, dragDestinationActionMask);
    15761576    dragData.setFileNames(fileNames);
    15771577
  • trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm

    r261948 r262190  
    11/*
    2  * Copyright (C) 2015-2019 Apple Inc. All rights reserved.
     2 * Copyright (C) 2015-2020 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    39463946    WebCore::IntPoint client([m_view convertPoint:draggingInfo.draggingLocation fromView:nil]);
    39473947    WebCore::IntPoint global(WebCore::globalPoint(draggingInfo.draggingLocation, [m_view window]));
    3948     auto dragDestinationAction = static_cast<WebCore::DragDestinationAction>([m_view _web_dragDestinationActionForDraggingInfo:draggingInfo]);
    3949     WebCore::DragData dragData(draggingInfo, client, global, static_cast<WebCore::DragOperation>(draggingInfo.draggingSourceOperationMask), applicationFlagsForDrag(m_view.getAutoreleased(), draggingInfo), dragDestinationAction);
     3948    auto dragDestinationActionMask = OptionSet<WebCore::DragDestinationAction>::fromRaw([m_view _web_dragDestinationActionForDraggingInfo:draggingInfo]);
     3949    WebCore::DragData dragData(draggingInfo, client, global, static_cast<WebCore::DragOperation>(draggingInfo.draggingSourceOperationMask), applicationFlagsForDrag(m_view.getAutoreleased(), draggingInfo), dragDestinationActionMask);
    39503950
    39513951    m_page->resetCurrentDragInformation();
     
    39593959    WebCore::IntPoint client([m_view convertPoint:draggingInfo.draggingLocation fromView:nil]);
    39603960    WebCore::IntPoint global(WebCore::globalPoint(draggingInfo.draggingLocation, [m_view window]));
    3961     auto dragDestinationAction = static_cast<WebCore::DragDestinationAction>([m_view _web_dragDestinationActionForDraggingInfo:draggingInfo]);
    3962     WebCore::DragData dragData(draggingInfo, client, global, static_cast<WebCore::DragOperation>(draggingInfo.draggingSourceOperationMask), applicationFlagsForDrag(m_view.getAutoreleased(), draggingInfo), dragDestinationAction);
     3961    auto dragDestinationActionMask = OptionSet<WebCore::DragDestinationAction>::fromRaw([m_view _web_dragDestinationActionForDraggingInfo:draggingInfo]);
     3962    WebCore::DragData dragData(draggingInfo, client, global, static_cast<WebCore::DragOperation>(draggingInfo.draggingSourceOperationMask), applicationFlagsForDrag(m_view.getAutoreleased(), draggingInfo), dragDestinationActionMask);
    39633963    m_page->dragUpdated(dragData, draggingInfo.draggingPasteboard.name);
    39643964
  • trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm

    r262128 r262190  
    11/*
    2  * Copyright (C) 2012-2019 Apple Inc. All rights reserved.
     2 * Copyright (C) 2012-2020 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    73127312
    73137313    WebCore::DragOperation dragOperationMask = static_cast<WebCore::DragOperation>(session.allowsMoveOperation ? WebCore::DragOperationEvery : (WebCore::DragOperationEvery & ~WebCore::DragOperationMove));
    7314     return { session, WebCore::roundedIntPoint(client), WebCore::roundedIntPoint(global), dragOperationMask, WebCore::DragApplicationNone, static_cast<WebCore::DragDestinationAction>(dragDestinationAction) };
     7314    auto dragDestinationActionMask = OptionSet<WebCore::DragDestinationAction>::fromRaw(dragDestinationAction);
     7315    return { session, WebCore::roundedIntPoint(client), WebCore::roundedIntPoint(global), dragOperationMask, WebCore::DragApplicationNone, dragDestinationActionMask };
    73157316}
    73167317
  • trunk/Source/WebKit/WebProcess/WebCoreSupport/WebDragClient.cpp

    r253182 r262190  
    11/*
    2  * Copyright (C) 2010 Apple Inc. All rights reserved.
     2 * Copyright (C) 2010-2020 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    3636void WebDragClient::willPerformDragDestinationAction(DragDestinationAction action, const DragData&)
    3737{
    38     if (action == DragDestinationActionLoad)
     38    if (action == DragDestinationAction::Load)
    3939        m_page->willPerformLoadDragDestinationAction();
    4040    else
  • trunk/Source/WebKitLegacy/mac/ChangeLog

    r262147 r262190  
     12020-05-27  David Kilzer  <ddkilzer@apple.com>
     2
     3        Use OptionSet<DragDestinationAction> for mask values
     4        <https://webkit.org/b/212115>
     5        <rdar://problem/63423380>
     6
     7        Reviewed by Alex Christensen.
     8
     9        * WebCoreSupport/WebDragClient.mm:
     10        (WebDragClient::willPerformDragDestinationAction):
     11        * WebView/WebView.mm:
     12        (-[WebView dragDataForSession:client:global:operation:]):
     13        (-[WebView actionMaskForDraggingInfo:]):
     14
    1152020-05-26  Keith Rollin  <krollin@apple.com>
    216
  • trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebDragClient.mm

    r253182 r262190  
    11/*
    2  * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
     2 * Copyright (C) 2007-2020 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    8787void WebDragClient::willPerformDragDestinationAction(WebCore::DragDestinationAction action, const WebCore::DragData& dragData)
    8888{
    89     [[m_webView _UIDelegateForwarder] webView:m_webView willPerformDragDestinationAction:(WebDragDestinationAction)action forDraggingInfo:dragData.platformData()];
     89    [[m_webView _UIDelegateForwarder] webView:m_webView willPerformDragDestinationAction:static_cast<WebDragDestinationAction>(action) forDraggingInfo:dragData.platformData()];
    9090}
    9191
     
    215215}
    216216
    217 void WebDragClient::willPerformDragDestinationAction(DragDestinationAction, const DragData&)
     217void WebDragClient::willPerformDragDestinationAction(WebCore::DragDestinationAction, const DragData&)
    218218{
    219219}
  • trunk/Source/WebKitLegacy/mac/WebView/WebView.mm

    r261981 r262190  
    19131913{
    19141914    auto dragOperationMask = static_cast<WebCore::DragOperation>(operation);
    1915     auto dragDestinationMask = static_cast<WebCore::DragDestinationAction>([self dragDestinationActionMaskForSession:session]);
     1915    auto dragDestinationMask = OptionSet<WebCore::DragDestinationAction>::fromRaw([self dragDestinationActionMaskForSession:session]);
    19161916    return { session, WebCore::roundedIntPoint(clientPosition), WebCore::roundedIntPoint(globalPosition), dragOperationMask, WebCore::DragApplicationNone, dragDestinationMask };
    19171917}
     
    67256725}
    67266726
    6727 - (WebCore::DragDestinationAction)actionMaskForDraggingInfo:(id <NSDraggingInfo>)draggingInfo
    6728 {
    6729     return (WebCore::DragDestinationAction)[[self _UIDelegateForwarder] webView:self dragDestinationActionMaskForDraggingInfo:draggingInfo];
     6727- (OptionSet<WebCore::DragDestinationAction>)actionMaskForDraggingInfo:(id <NSDraggingInfo>)draggingInfo
     6728{
     6729    return OptionSet<WebCore::DragDestinationAction>::fromRaw([[self _UIDelegateForwarder] webView:self dragDestinationActionMaskForDraggingInfo:draggingInfo]);
    67306730}
    67316731
Note: See TracChangeset for help on using the changeset viewer.