Title: [211919] branches/safari-604.1.5-branch/Source
Revision
211919
Author
matthew_han...@apple.com
Date
2017-02-08 18:05:51 -0800 (Wed, 08 Feb 2017)

Log Message

Merge r211597. rdar://problem/30295261

Modified Paths

Diff

Modified: branches/safari-604.1.5-branch/Source/WebCore/ChangeLog (211918 => 211919)


--- branches/safari-604.1.5-branch/Source/WebCore/ChangeLog	2017-02-09 02:05:42 UTC (rev 211918)
+++ branches/safari-604.1.5-branch/Source/WebCore/ChangeLog	2017-02-09 02:05:51 UTC (rev 211919)
@@ -1,5 +1,30 @@
 2017-02-08  Matthew Hanson  <matt_han...@apple.com>
 
+        Merge r211597. rdar://problem/30295261
+
+    2017-02-02  Wenson Hsieh  <wenson_hs...@apple.com>
+
+            Drag images should be anchored to the mouse location
+            https://bugs.webkit.org/show_bug.cgi?id=167690
+            <rdar://problem/30295261>
+
+            Reviewed by Enrica Casucci.
+
+            Adds logic to compute the mouse anchor point. This is a point in the unit square indicating where the drag
+            origin is relative to the bounds of the drag image. There is no behavior change, since this anchor point is not
+            used by any client yet; this patch only computes and vends this information from WebCore.
+
+            * loader/EmptyClients.cpp:
+            * page/DragClient.h:
+            * page/DragController.cpp:
+            (WebCore::DragController::startDrag):
+            (WebCore::DragController::doImageDrag):
+            (WebCore::DragController::doSystemDrag):
+            * page/DragController.h:
+            * platform/DragImage.h:
+
+2017-02-08  Matthew Hanson  <matt_han...@apple.com>
+
         Merge r211453. rdar://problem/30294240
 
     2017-01-31  Wenson Hsieh  <wenson_hs...@apple.com>

Modified: branches/safari-604.1.5-branch/Source/WebCore/loader/EmptyClients.cpp (211918 => 211919)


--- branches/safari-604.1.5-branch/Source/WebCore/loader/EmptyClients.cpp	2017-02-09 02:05:42 UTC (rev 211918)
+++ branches/safari-604.1.5-branch/Source/WebCore/loader/EmptyClients.cpp	2017-02-09 02:05:51 UTC (rev 211919)
@@ -126,7 +126,7 @@
     void willPerformDragSourceAction(DragSourceAction, const IntPoint&, DataTransfer&) final { }
     DragDestinationAction actionMaskForDrag(const DragData&) final { return DragDestinationActionNone; }
     DragSourceAction dragSourceActionMaskForPoint(const IntPoint&) final { return DragSourceActionNone; }
-    void startDrag(DragImageRef, const IntPoint&, const IntPoint&, DataTransfer&, Frame&, bool) final { }
+    void startDrag(DragImageRef, const IntPoint&, const IntPoint&, const FloatPoint&, DataTransfer&, Frame&, bool) final { }
     void dragControllerDestroyed() final { }
 };
 

Modified: branches/safari-604.1.5-branch/Source/WebCore/page/DragClient.h (211918 => 211919)


--- branches/safari-604.1.5-branch/Source/WebCore/page/DragClient.h	2017-02-09 02:05:42 UTC (rev 211918)
+++ branches/safari-604.1.5-branch/Source/WebCore/page/DragClient.h	2017-02-09 02:05:51 UTC (rev 211919)
@@ -27,6 +27,7 @@
 
 #include "DragActions.h"
 #include "DragImage.h"
+#include "FloatPoint.h"
 #include "IntPoint.h"
 
 namespace WebCore {
@@ -46,7 +47,7 @@
     virtual DragDestinationAction actionMaskForDrag(const DragData&) = 0;
     virtual DragSourceAction dragSourceActionMaskForPoint(const IntPoint& rootViewPoint) = 0;
     
-    virtual void startDrag(DragImageRef, const IntPoint& dragImageOrigin, const IntPoint& eventPos, DataTransfer&, Frame&, bool linkDrag = false) = 0;
+    virtual void startDrag(DragImageRef, const IntPoint& dragImageOrigin, const IntPoint& eventPos, const FloatPoint& dragImageAnchor, DataTransfer&, Frame&, bool linkDrag = false) = 0;
     virtual void dragEnded() { }
 
 #if PLATFORM(COCOA)

Modified: branches/safari-604.1.5-branch/Source/WebCore/page/DragController.cpp (211918 => 211919)


--- branches/safari-604.1.5-branch/Source/WebCore/page/DragController.cpp	2017-02-09 02:05:42 UTC (rev 211918)
+++ branches/safari-604.1.5-branch/Source/WebCore/page/DragController.cpp	2017-02-09 02:05:51 UTC (rev 211919)
@@ -32,6 +32,7 @@
 #if ENABLE(DRAG_SUPPORT)
 #include "CachedImage.h"
 #include "CachedResourceLoader.h"
+#include "ClientRect.h"
 #include "DataTransfer.h"
 #include "Document.h"
 #include "DocumentFragment.h"
@@ -76,6 +77,11 @@
 #include "TextEvent.h"
 #include "htmlediting.h"
 #include "markup.h"
+
+#if ENABLE(DATA_INTERACTION)
+#include "SelectionRect.h"
+#endif
+
 #include <wtf/CurrentTime.h>
 #include <wtf/RefPtr.h>
 #endif
@@ -810,6 +816,7 @@
     ASSERT(state.source);
     Element& element = *state.source;
 
+    IntRect dragImageBounds;
     Image* image = getImage(element);
     if (state.type == DragSourceActionSelection) {
         if (!dataTransfer.pasteboard().hasData()) {
@@ -818,6 +825,14 @@
             RefPtr<Range> selectionRange = src.selection().toNormalizedRange();
             ASSERT(selectionRange);
 
+#if ENABLE(DATA_INTERACTION)
+            Vector<SelectionRect> selectionRects;
+            selectionRange->collectSelectionRects(selectionRects);
+            for (auto selectionRect : selectionRects)
+                dragImageBounds.unite(selectionRect.rect());
+            dragImageBounds.inflate(SelectionDragImagePadding);
+#endif
+
             src.editor().willWriteSelectionToPasteboard(selectionRange.get());
 
             if (enclosingTextFormControl(src.selection().selection().start()))
@@ -843,7 +858,7 @@
         if (!dragImage)
             return false;
 
-        doSystemDrag(dragImage, dragLoc, dragOrigin, dataTransfer, src, false);
+        doSystemDrag(dragImage, dragLoc, dragOrigin, dragImageBounds, dataTransfer, src, false);
     } else if (!src.document()->securityOrigin().canDisplay(linkURL)) {
         src.document()->addConsoleMessage(MessageSource::Security, MessageLevel::Error, "Not allowed to drag local resource: " + linkURL.stringCenterEllipsizedToLength());
         startedDrag = false;
@@ -866,7 +881,7 @@
             doImageDrag(element, dragOrigin, hitTestResult.imageRect(), dataTransfer, src, m_dragOffset);
         } else {
             // DHTML defined drag image
-            doSystemDrag(dragImage, dragLoc, dragOrigin, dataTransfer, src, false);
+            doSystemDrag(dragImage, dragLoc, dragOrigin, { }, dataTransfer, src, false);
         }
     } else if (!linkURL.isEmpty() && (m_dragSourceAction & DragSourceActionLink)) {
         if (!dataTransfer.pasteboard().hasData()) {
@@ -902,7 +917,7 @@
             // Later code expects the drag image to be scaled by device's scale factor.
             dragImage = scaleDragImage(dragImage, FloatSize(m_page.deviceScaleFactor(), m_page.deviceScaleFactor()));
         }
-        doSystemDrag(dragImage, dragLoc, mouseDraggedPoint, dataTransfer, src, true);
+        doSystemDrag(dragImage, dragLoc, mouseDraggedPoint, { }, dataTransfer, src, true);
 #if ENABLE(ATTACHMENT_ELEMENT)
     } else if (!attachmentURL.isEmpty() && (m_dragSourceAction & DragSourceActionAttachment)) {
         if (!dataTransfer.pasteboard().hasData()) {
@@ -918,13 +933,13 @@
             dragLoc = dragLocForSelectionDrag(src);
             m_dragOffset = IntPoint(dragOrigin.x() - dragLoc.x(), dragOrigin.y() - dragLoc.y());
         }
-        doSystemDrag(dragImage, dragLoc, dragOrigin, dataTransfer, src, false);
+        doSystemDrag(dragImage, dragLoc, dragOrigin, { }, dataTransfer, src, false);
 #endif
     } else if (state.type == DragSourceActionDHTML) {
         if (dragImage) {
             ASSERT(m_dragSourceAction & DragSourceActionDHTML);
             m_client.willPerformDragSourceAction(DragSourceActionDHTML, dragOrigin, dataTransfer);
-            doSystemDrag(dragImage, dragLoc, dragOrigin, dataTransfer, src, false);
+            doSystemDrag(dragImage, dragLoc, dragOrigin, { }, dataTransfer, src, false);
         } else
             startedDrag = false;
     } else {
@@ -981,20 +996,25 @@
         return;
 
     dragImageOffset = mouseDownPoint + scaledOrigin;
-    doSystemDrag(dragImage, dragImageOffset, dragOrigin, dataTransfer, frame, false);
+    doSystemDrag(dragImage, dragImageOffset, dragOrigin, element.boundsInRootViewSpace(), dataTransfer, frame, false);
 
     deleteDragImage(dragImage);
 }
 
-void DragController::doSystemDrag(DragImageRef image, const IntPoint& dragLoc, const IntPoint& eventPos, DataTransfer& dataTransfer, Frame& frame, bool forLink)
+void DragController::doSystemDrag(DragImageRef image, const IntPoint& dragLoc, const IntPoint& eventPos, const IntRect& dragImageBounds, DataTransfer& dataTransfer, Frame& frame, bool forLink)
 {
+    FloatPoint dragImageAnchor = { 0.5, 0.5 };
+    if (!dragImageBounds.isEmpty()) {
+        dragImageAnchor.setX((eventPos.x() - dragImageBounds.x()) / (float)dragImageBounds.width());
+        dragImageAnchor.setY((eventPos.y() - dragImageBounds.y()) / (float)dragImageBounds.height());
+    }
+
     m_didInitiateDrag = true;
     m_dragInitiator = frame.document();
     // Protect this frame and view, as a load may occur mid drag and attempt to unload this frame
     Ref<MainFrame> frameProtector(m_page.mainFrame());
     RefPtr<FrameView> viewProtector = frameProtector->view();
-    m_client.startDrag(image, viewProtector->rootViewToContents(frame.view()->contentsToRootView(dragLoc)),
-        viewProtector->rootViewToContents(frame.view()->contentsToRootView(eventPos)), dataTransfer, frameProtector.get(), forLink);
+    m_client.startDrag(image, viewProtector->rootViewToContents(frame.view()->contentsToRootView(dragLoc)), viewProtector->rootViewToContents(frame.view()->contentsToRootView(eventPos)), dragImageAnchor, dataTransfer, frameProtector.get(), forLink);
     // DragClient::startDrag can cause our Page to dispear, deallocating |this|.
     if (!frameProtector->page())
         return;

Modified: branches/safari-604.1.5-branch/Source/WebCore/page/DragController.h (211918 => 211919)


--- branches/safari-604.1.5-branch/Source/WebCore/page/DragController.h	2017-02-09 02:05:42 UTC (rev 211918)
+++ branches/safari-604.1.5-branch/Source/WebCore/page/DragController.h	2017-02-09 02:05:51 UTC (rev 211919)
@@ -28,6 +28,7 @@
 #include "DragActions.h"
 #include "DragImage.h"
 #include "IntPoint.h"
+#include "IntRect.h"
 #include "URL.h"
 
 namespace WebCore {
@@ -111,7 +112,7 @@
         void mouseMovedIntoDocument(Document*);
 
         void doImageDrag(Element&, const IntPoint&, const IntRect&, DataTransfer&, Frame&, IntPoint&);
-        void doSystemDrag(DragImageRef, const IntPoint&, const IntPoint&, DataTransfer&, Frame&, bool forLink);
+        void doSystemDrag(DragImageRef, const IntPoint&, const IntPoint&, const IntRect& dragImageBounds, DataTransfer&, Frame&, bool forLink);
         void cleanupAfterSystemDrag();
         void declareAndWriteDragImage(DataTransfer&, Element&, const URL&, const String& label);
 #if ENABLE(ATTACHMENT_ELEMENT)

Modified: branches/safari-604.1.5-branch/Source/WebCore/platform/DragImage.h (211918 => 211919)


--- branches/safari-604.1.5-branch/Source/WebCore/platform/DragImage.h	2017-02-09 02:05:42 UTC (rev 211918)
+++ branches/safari-604.1.5-branch/Source/WebCore/platform/DragImage.h	2017-02-09 02:05:51 UTC (rev 211919)
@@ -67,6 +67,10 @@
 typedef void* DragImageRef;
 #endif
 
+#if PLATFORM(COCOA)
+static const float SelectionDragImagePadding = 15;
+#endif
+
 IntSize dragImageSize(DragImageRef);
 
 // These functions should be memory neutral, eg. if they return a newly allocated image,

Modified: branches/safari-604.1.5-branch/Source/WebKit/mac/ChangeLog (211918 => 211919)


--- branches/safari-604.1.5-branch/Source/WebKit/mac/ChangeLog	2017-02-09 02:05:42 UTC (rev 211918)
+++ branches/safari-604.1.5-branch/Source/WebKit/mac/ChangeLog	2017-02-09 02:05:51 UTC (rev 211919)
@@ -1,3 +1,21 @@
+2017-02-08  Matthew Hanson  <matt_han...@apple.com>
+
+        Merge r211597. rdar://problem/30295261
+
+    2017-02-02  Wenson Hsieh  <wenson_hs...@apple.com>
+
+            Drag images should be anchored to the mouse location
+            https://bugs.webkit.org/show_bug.cgi?id=167690
+            <rdar://problem/30295261>
+
+            Reviewed by Enrica Casucci.
+
+            Adds some plumbing for the anchor point in the WK1 client layer.
+
+            * WebCoreSupport/WebDragClient.h:
+            * WebCoreSupport/WebDragClient.mm:
+            (WebDragClient::startDrag):
+
 2017-02-02  Matthew Hanson  <matt_han...@apple.com>
 
         Merge r211438.

Modified: branches/safari-604.1.5-branch/Source/WebKit/mac/WebCoreSupport/WebDragClient.h (211918 => 211919)


--- branches/safari-604.1.5-branch/Source/WebKit/mac/WebCoreSupport/WebDragClient.h	2017-02-09 02:05:42 UTC (rev 211918)
+++ branches/safari-604.1.5-branch/Source/WebKit/mac/WebCoreSupport/WebDragClient.h	2017-02-09 02:05:51 UTC (rev 211919)
@@ -37,7 +37,7 @@
     WebCore::DragDestinationAction actionMaskForDrag(const WebCore::DragData&) override;
     void dragControllerDestroyed() override;
     WebCore::DragSourceAction dragSourceActionMaskForPoint(const WebCore::IntPoint& windowPoint) override;
-    void startDrag(WebCore::DragImageRef, const WebCore::IntPoint& dragPos, const WebCore::IntPoint& eventPos, WebCore::DataTransfer&, WebCore::Frame&, bool linkDrag) override;
+    void startDrag(WebCore::DragImageRef, const WebCore::IntPoint& dragPos, const WebCore::IntPoint& eventPos, const WebCore::FloatPoint&, WebCore::DataTransfer&, WebCore::Frame&, bool linkDrag) override;
     void declareAndWriteDragImage(const String& pasteboardName, WebCore::Element&, const WebCore::URL&, const String&, WebCore::Frame*) override;
 #if ENABLE(ATTACHMENT_ELEMENT)
     void declareAndWriteAttachment(const String& pasteboardName, WebCore::Element&, const WebCore::URL&, const String& path, WebCore::Frame*) override;

Modified: branches/safari-604.1.5-branch/Source/WebKit/mac/WebCoreSupport/WebDragClient.mm (211918 => 211919)


--- branches/safari-604.1.5-branch/Source/WebKit/mac/WebCoreSupport/WebDragClient.mm	2017-02-09 02:05:42 UTC (rev 211918)
+++ branches/safari-604.1.5-branch/Source/WebKit/mac/WebCoreSupport/WebDragClient.mm	2017-02-09 02:05:51 UTC (rev 211919)
@@ -95,7 +95,7 @@
     [[m_webView _UIDelegateForwarder] webView:m_webView willPerformDragSourceAction:(WebDragSourceAction)action fromPoint:mouseDownPoint withPasteboard:[NSPasteboard pasteboardWithName:dataTransfer.pasteboard().name()]];
 }
 
-void WebDragClient::startDrag(DragImageRef dragImage, const IntPoint& at, const IntPoint& eventPos, DataTransfer& dataTransfer, Frame& frame, bool linkDrag)
+void WebDragClient::startDrag(DragImageRef dragImage, const IntPoint& at, const IntPoint& eventPos, const FloatPoint&, DataTransfer& dataTransfer, Frame& frame, bool linkDrag)
 {
     RetainPtr<WebHTMLView> htmlView = (WebHTMLView*)[[kit(&frame) frameView] documentView];
     if (![htmlView.get() isKindOfClass:[WebHTMLView class]])
@@ -165,7 +165,7 @@
 {
 }
 
-void WebDragClient::startDrag(DragImageRef, const IntPoint&, const IntPoint&, DataTransfer&, Frame&, bool)
+void WebDragClient::startDrag(DragImageRef, const IntPoint&, const IntPoint&, const FloatPoint&, DataTransfer&, Frame&, bool)
 {
 }
 

Modified: branches/safari-604.1.5-branch/Source/WebKit/win/ChangeLog (211918 => 211919)


--- branches/safari-604.1.5-branch/Source/WebKit/win/ChangeLog	2017-02-09 02:05:42 UTC (rev 211918)
+++ branches/safari-604.1.5-branch/Source/WebKit/win/ChangeLog	2017-02-09 02:05:51 UTC (rev 211919)
@@ -1,3 +1,21 @@
+2017-02-08  Matthew Hanson  <matt_han...@apple.com>
+
+        Merge r211597. rdar://problem/30295261
+
+    2017-02-02  Wenson Hsieh  <wenson_hs...@apple.com>
+
+            Drag images should be anchored to the mouse location
+            https://bugs.webkit.org/show_bug.cgi?id=167690
+            <rdar://problem/30295261>
+
+            Reviewed by Enrica Casucci.
+
+            Adds some plumbing for the anchor point in the WK1 client layer.
+
+            * WebCoreSupport/WebDragClient.cpp:
+            (WebDragClient::startDrag):
+            * WebCoreSupport/WebDragClient.h:
+
 2017-01-26  Chris Dumez  <cdu...@apple.com>
 
         Crash when navigating back to a page in PacheCache when one of its frames has been removed

Modified: branches/safari-604.1.5-branch/Source/WebKit/win/WebCoreSupport/WebDragClient.cpp (211918 => 211919)


--- branches/safari-604.1.5-branch/Source/WebKit/win/WebCoreSupport/WebDragClient.cpp	2017-02-09 02:05:42 UTC (rev 211918)
+++ branches/safari-604.1.5-branch/Source/WebKit/win/WebCoreSupport/WebDragClient.cpp	2017-02-09 02:05:51 UTC (rev 211919)
@@ -110,7 +110,7 @@
         const_cast<Pasteboard&>(dataTransfer.pasteboard()).setExternalDataObject(newDataObject.get());
 }
 
-void WebDragClient::startDrag(DragImageRef image, const IntPoint& imageOrigin, const IntPoint& dragPoint, DataTransfer& dataTransfer, Frame& frame, bool isLink)
+void WebDragClient::startDrag(DragImageRef image, const IntPoint& imageOrigin, const IntPoint& dragPoint, const FloatPoint&, DataTransfer& dataTransfer, Frame& frame, bool isLink)
 {
     //FIXME: Allow UIDelegate to override behaviour <rdar://problem/5015953>
 

Modified: branches/safari-604.1.5-branch/Source/WebKit/win/WebCoreSupport/WebDragClient.h (211918 => 211919)


--- branches/safari-604.1.5-branch/Source/WebKit/win/WebCoreSupport/WebDragClient.h	2017-02-09 02:05:42 UTC (rev 211918)
+++ branches/safari-604.1.5-branch/Source/WebKit/win/WebCoreSupport/WebDragClient.h	2017-02-09 02:05:51 UTC (rev 211919)
@@ -39,7 +39,7 @@
     virtual WebCore::DragSourceAction dragSourceActionMaskForPoint(const WebCore::IntPoint&);
     virtual void willPerformDragDestinationAction(WebCore::DragDestinationAction, const WebCore::DragData&);
     virtual void willPerformDragSourceAction(WebCore::DragSourceAction, const WebCore::IntPoint&, WebCore::DataTransfer&);
-    virtual void startDrag(WebCore::DragImageRef, const WebCore::IntPoint&, const WebCore::IntPoint&, WebCore::DataTransfer&, WebCore::Frame&, bool);
+    virtual void startDrag(WebCore::DragImageRef, const WebCore::IntPoint&, const WebCore::IntPoint&, const WebCore::FloatPoint&, WebCore::DataTransfer&, WebCore::Frame&, bool);
 
 private:
     WebView* m_webView;

Modified: branches/safari-604.1.5-branch/Source/WebKit2/ChangeLog (211918 => 211919)


--- branches/safari-604.1.5-branch/Source/WebKit2/ChangeLog	2017-02-09 02:05:42 UTC (rev 211918)
+++ branches/safari-604.1.5-branch/Source/WebKit2/ChangeLog	2017-02-09 02:05:51 UTC (rev 211919)
@@ -1,5 +1,38 @@
 2017-02-08  Matthew Hanson  <matt_han...@apple.com>
 
+        Merge r211597. rdar://problem/30295261
+
+    2017-02-02  Wenson Hsieh  <wenson_hs...@apple.com>
+
+            Drag images should be anchored to the mouse location
+            https://bugs.webkit.org/show_bug.cgi?id=167690
+            <rdar://problem/30295261>
+
+            Reviewed by Enrica Casucci.
+
+            Adds some plumbing for the mouse anchor point in the UI process. Additionally, refactors some unrelated code
+            for handling data interaction.
+
+            * UIProcess/PageClient.h:
+            * UIProcess/WebPageProxy.h:
+            * UIProcess/WebPageProxy.messages.in:
+            * UIProcess/ios/PageClientImplIOS.h:
+            * UIProcess/ios/PageClientImplIOS.mm:
+            (WebKit::PageClientImpl::startDataInteractionWithImage):
+            * UIProcess/ios/WKContentViewInteraction.h:
+            * UIProcess/mac/PageClientImpl.h:
+            * UIProcess/mac/PageClientImpl.mm:
+            (WebKit::PageClientImpl::startDataInteractionWithImage):
+            * UIProcess/mac/WebPageProxyMac.mm:
+            (WebKit::WebPageProxy::setDragImage):
+            * WebProcess/WebCoreSupport/WebDragClient.cpp:
+            (WebKit::WebDragClient::startDrag):
+            * WebProcess/WebCoreSupport/WebDragClient.h:
+            * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
+            (WebKit::WebDragClient::startDrag):
+
+2017-02-08  Matthew Hanson  <matt_han...@apple.com>
+
         Merge r211442. rdar://problem/30272380
 
     2017-01-31  Wenson Hsieh  <wenson_hs...@apple.com>

Modified: branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/PageClient.h (211918 => 211919)


--- branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/PageClient.h	2017-02-09 02:05:42 UTC (rev 211918)
+++ branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/PageClient.h	2017-02-09 02:05:51 UTC (rev 211919)
@@ -383,7 +383,7 @@
 
 #if ENABLE(DATA_INTERACTION)
     virtual void didPerformDataInteractionControllerOperation() = 0;
-    virtual void startDataInteractionWithImage(const WebCore::IntPoint& clientPosition, const ShareableBitmap::Handle& image, bool isLink) = 0;
+    virtual void startDataInteractionWithImage(const WebCore::IntPoint& clientPosition, const ShareableBitmap::Handle& image, const WebCore::FloatPoint& anchorPoint, bool isLink) = 0;
 #endif
 };
 

Modified: branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/WebPageProxy.h (211918 => 211919)


--- branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/WebPageProxy.h	2017-02-09 02:05:42 UTC (rev 211918)
+++ branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/WebPageProxy.h	2017-02-09 02:05:51 UTC (rev 211919)
@@ -829,7 +829,7 @@
     void didPerformDragControllerAction(uint64_t dragOperation, bool mouseIsOverFileInput, unsigned numberOfItemsToBeAccepted);
     void dragEnded(const WebCore::IntPoint& clientPosition, const WebCore::IntPoint& globalPosition, uint64_t operation);
 #if PLATFORM(COCOA)
-    void setDragImage(const WebCore::IntPoint& clientPosition, const ShareableBitmap::Handle& dragImageHandle, bool isLinkDrag);
+    void setDragImage(const WebCore::IntPoint& clientPosition, const ShareableBitmap::Handle& dragImageHandle, const WebCore::FloatPoint& dragImageAnchor, bool isLinkDrag);
     void setPromisedDataForImage(const String& pasteboardName, const SharedMemory::Handle& imageHandle, uint64_t imageSize, const String& filename, const String& extension,
                          const String& title, const String& url, const String& visibleURL, const SharedMemory::Handle& archiveHandle, uint64_t archiveSize);
 #if ENABLE(ATTACHMENT_ELEMENT)

Modified: branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/WebPageProxy.messages.in (211918 => 211919)


--- branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/WebPageProxy.messages.in	2017-02-09 02:05:42 UTC (rev 211918)
+++ branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/WebPageProxy.messages.in	2017-02-09 02:05:51 UTC (rev 211919)
@@ -306,7 +306,7 @@
     DidPerformDragControllerAction(uint64_t dragOperation, bool mouseIsOverFileInput, unsigned numberOfItemsToBeAccepted)
 #endif
 #if PLATFORM(COCOA) && ENABLE(DRAG_SUPPORT)
-    SetDragImage(WebCore::IntPoint clientPosition, WebKit::ShareableBitmap::Handle dragImage, bool linkDrag)
+    SetDragImage(WebCore::IntPoint clientPosition, WebKit::ShareableBitmap::Handle dragImage, WebCore::FloatPoint dragImageAnchor, bool linkDrag)
     SetPromisedDataForImage(String pasteboardName, WebKit::SharedMemory::Handle imageHandle, uint64_t imageSize, String filename, String extension, String title, String url, String visibleURL, WebKit::SharedMemory::Handle archiveHandle, uint64_t archiveSize)
 #if ENABLE(ATTACHMENT_ELEMENT)
     SetPromisedDataForAttachment(String pasteboardName, String filename, String extension, String title, String url, String visibleURL)

Modified: branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/ios/PageClientImplIOS.h (211918 => 211919)


--- branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/ios/PageClientImplIOS.h	2017-02-09 02:05:42 UTC (rev 211918)
+++ branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/ios/PageClientImplIOS.h	2017-02-09 02:05:51 UTC (rev 211919)
@@ -203,7 +203,7 @@
 
 #if ENABLE(DATA_INTERACTION)
     void didPerformDataInteractionControllerOperation() override;
-    void startDataInteractionWithImage(const WebCore::IntPoint& clientPosition, const ShareableBitmap::Handle& image, bool isLink) override;
+    void startDataInteractionWithImage(const WebCore::IntPoint& clientPosition, const ShareableBitmap::Handle& image, const WebCore::FloatPoint& anchorPoint, bool isLink) override;
 #endif
 
     WKContentView *m_contentView;

Modified: branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm (211918 => 211919)


--- branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm	2017-02-09 02:05:42 UTC (rev 211918)
+++ branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm	2017-02-09 02:05:51 UTC (rev 211919)
@@ -768,9 +768,9 @@
     [m_contentView _didPerformDataInteractionControllerOperation];
 }
 
-void PageClientImpl::startDataInteractionWithImage(const IntPoint& clientPosition, const ShareableBitmap::Handle& image, bool isLink)
+void PageClientImpl::startDataInteractionWithImage(const IntPoint& clientPosition, const ShareableBitmap::Handle& image, const FloatPoint& anchorPoint, bool isLink)
 {
-    [m_contentView _startDataInteractionWithImage:ShareableBitmap::create(image)->makeCGImageCopy() atClientPosition:CGPointMake(clientPosition.x(), clientPosition.y()) isLink:isLink];
+    [m_contentView _startDataInteractionWithImage:ShareableBitmap::create(image)->makeCGImageCopy() atClientPosition:CGPointMake(clientPosition.x(), clientPosition.y()) anchorPoint:anchorPoint isLink:isLink];
 }
 #endif
 

Modified: branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.h (211918 => 211919)


--- branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.h	2017-02-09 02:05:42 UTC (rev 211918)
+++ branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.h	2017-02-09 02:05:51 UTC (rev 211919)
@@ -250,7 +250,7 @@
 
 #if ENABLE(DATA_INTERACTION)
 - (void)_didPerformDataInteractionControllerOperation;
-- (void)_startDataInteractionWithImage:(RetainPtr<CGImageRef>)image atClientPosition:(CGPoint)clientPosition isLink:(BOOL)isLink;
+- (void)_startDataInteractionWithImage:(RetainPtr<CGImageRef>)image atClientPosition:(CGPoint)clientPosition anchorPoint:(CGPoint)anchorPoint isLink:(BOOL)isLink;
 #endif
 
 @end

Modified: branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/mac/PageClientImpl.h (211918 => 211919)


--- branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/mac/PageClientImpl.h	2017-02-09 02:05:42 UTC (rev 211918)
+++ branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/mac/PageClientImpl.h	2017-02-09 02:05:51 UTC (rev 211919)
@@ -234,7 +234,7 @@
 
 #if ENABLE(DATA_INTERACTION)
     void didPerformDataInteractionControllerOperation() override;
-    void startDataInteractionWithImage(const WebCore::IntPoint& clientPosition, const ShareableBitmap::Handle& image, bool isLink) override;
+    void startDataInteractionWithImage(const WebCore::IntPoint& clientPosition, const ShareableBitmap::Handle& image, const WebCore::FloatPoint& anchorPoint, bool isLink) override;
 #endif
 
     NSView *m_view;

Modified: branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/mac/PageClientImpl.mm (211918 => 211919)


--- branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/mac/PageClientImpl.mm	2017-02-09 02:05:42 UTC (rev 211918)
+++ branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/mac/PageClientImpl.mm	2017-02-09 02:05:51 UTC (rev 211919)
@@ -881,7 +881,7 @@
     // FIXME: Implement me.
 }
 
-void PageClientImpl::startDataInteractionWithImage(const IntPoint&, const ShareableBitmap::Handle&, bool)
+void PageClientImpl::startDataInteractionWithImage(const IntPoint&, const ShareableBitmap::Handle&, const FloatPoint&, bool)
 {
     // FIXME: Implement me.
 }

Modified: branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm (211918 => 211919)


--- branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm	2017-02-09 02:05:42 UTC (rev 211918)
+++ branches/safari-604.1.5-branch/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm	2017-02-09 02:05:51 UTC (rev 211919)
@@ -269,7 +269,7 @@
 #endif
 
 #if ENABLE(DRAG_SUPPORT)
-void WebPageProxy::setDragImage(const WebCore::IntPoint& clientPosition, const ShareableBitmap::Handle& dragImageHandle, bool isLinkDrag)
+void WebPageProxy::setDragImage(const WebCore::IntPoint& clientPosition, const ShareableBitmap::Handle& dragImageHandle, const FloatPoint&, bool isLinkDrag)
 {
     if (auto dragImage = ShareableBitmap::create(dragImageHandle))
         m_pageClient.setDragImage(clientPosition, WTFMove(dragImage), isLinkDrag);

Modified: branches/safari-604.1.5-branch/Source/WebKit2/WebProcess/WebCoreSupport/WebDragClient.cpp (211918 => 211919)


--- branches/safari-604.1.5-branch/Source/WebKit2/WebProcess/WebCoreSupport/WebDragClient.cpp	2017-02-09 02:05:42 UTC (rev 211918)
+++ branches/safari-604.1.5-branch/Source/WebKit2/WebProcess/WebCoreSupport/WebDragClient.cpp	2017-02-09 02:05:51 UTC (rev 211919)
@@ -57,7 +57,7 @@
 }
 
 #if !PLATFORM(COCOA) && !PLATFORM(GTK)
-void WebDragClient::startDrag(DragImageRef, const IntPoint&, const IntPoint&, DataTransfer&, Frame&, bool)
+void WebDragClient::startDrag(DragImageRef, const IntPoint&, const IntPoint&, const FloatPoint&, DataTransfer&, Frame&, bool)
 {
 }
 #endif

Modified: branches/safari-604.1.5-branch/Source/WebKit2/WebProcess/WebCoreSupport/WebDragClient.h (211918 => 211919)


--- branches/safari-604.1.5-branch/Source/WebKit2/WebProcess/WebCoreSupport/WebDragClient.h	2017-02-09 02:05:42 UTC (rev 211918)
+++ branches/safari-604.1.5-branch/Source/WebKit2/WebProcess/WebCoreSupport/WebDragClient.h	2017-02-09 02:05:51 UTC (rev 211919)
@@ -47,7 +47,7 @@
     WebCore::DragDestinationAction actionMaskForDrag(const WebCore::DragData&) override;
     WebCore::DragSourceAction dragSourceActionMaskForPoint(const WebCore::IntPoint& windowPoint) override;
 
-    void startDrag(WebCore::DragImageRef, const WebCore::IntPoint& dragImageOrigin, const WebCore::IntPoint& eventPos, WebCore::DataTransfer&, WebCore::Frame&, bool linkDrag = false) override;
+    void startDrag(WebCore::DragImageRef, const WebCore::IntPoint& dragImageOrigin, const WebCore::IntPoint& eventPos, const WebCore::FloatPoint& dragImageAnchor, WebCore::DataTransfer&, WebCore::Frame&, bool linkDrag = false) override;
 
 #if PLATFORM(COCOA)
     void declareAndWriteDragImage(const String& pasteboardName, WebCore::Element&, const WebCore::URL&, const String&, WebCore::Frame*) override;

Modified: branches/safari-604.1.5-branch/Source/WebKit2/WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp (211918 => 211919)


--- branches/safari-604.1.5-branch/Source/WebKit2/WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp	2017-02-09 02:05:42 UTC (rev 211918)
+++ branches/safari-604.1.5-branch/Source/WebKit2/WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp	2017-02-09 02:05:51 UTC (rev 211919)
@@ -56,7 +56,7 @@
     return bitmap;
 }
 
-void WebDragClient::startDrag(DragImageRef dragImage, const IntPoint& clientPosition, const IntPoint& globalPosition, DataTransfer& dataTransfer, Frame&, bool)
+void WebDragClient::startDrag(DragImageRef dragImage, const IntPoint& clientPosition, const IntPoint& globalPosition, const FloatPoint&, DataTransfer& dataTransfer, Frame&, bool)
 {
     RefPtr<ShareableBitmap> bitmap = convertCairoSurfaceToShareableBitmap(dragImage);
     ShareableBitmap::Handle handle;

Modified: branches/safari-604.1.5-branch/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebDragClientMac.mm (211918 => 211919)


--- branches/safari-604.1.5-branch/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebDragClientMac.mm	2017-02-09 02:05:42 UTC (rev 211918)
+++ branches/safari-604.1.5-branch/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebDragClientMac.mm	2017-02-09 02:05:51 UTC (rev 211919)
@@ -80,7 +80,7 @@
     return WTFMove(bitmap);
 }
 
-void WebDragClient::startDrag(RetainPtr<NSImage> image, const IntPoint& point, const IntPoint&, DataTransfer&, Frame& frame, bool linkDrag)
+void WebDragClient::startDrag(RetainPtr<NSImage> image, const IntPoint& point, const IntPoint&, const FloatPoint&, DataTransfer&, Frame& frame, bool linkDrag)
 {
     IntSize bitmapSize([image size]);
     RefPtr<ShareableBitmap> bitmap = convertImageToBitmap(image.get(), bitmapSize, frame);
@@ -91,7 +91,7 @@
     m_page->willStartDrag();
 
     // FIXME: Seems this message should be named StartDrag, not SetDragImage.
-    m_page->send(Messages::WebPageProxy::SetDragImage(frame.view()->contentsToWindow(point), handle, linkDrag));
+    m_page->send(Messages::WebPageProxy::SetDragImage(frame.view()->contentsToWindow(point), handle, { }, linkDrag));
 }
 
 static WebCore::CachedImage* cachedImage(Element& element)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to