Diff
Modified: trunk/Source/WebCore/ChangeLog (208903 => 208904)
--- trunk/Source/WebCore/ChangeLog 2016-11-18 23:33:05 UTC (rev 208903)
+++ trunk/Source/WebCore/ChangeLog 2016-11-18 23:35:28 UTC (rev 208904)
@@ -1,3 +1,45 @@
+2016-11-18 Enrica Casucci <[email protected]>
+
+ Refactor drag and drop for WebKit2 to encode DragData message exchange.
+ https://bugs.webkit.org/show_bug.cgi?id=164945
+
+ Reviewed by Tim Horton.
+
+ No new tests. No change in functionality.
+
+ * loader/EmptyClients.h:
+ * page/DragClient.h:
+ * page/DragController.cpp:
+ (WebCore::createMouseEvent):
+ (WebCore::documentFragmentFromDragData):
+ (WebCore::DragController::dragIsMove):
+ (WebCore::DragController::dragEntered):
+ (WebCore::DragController::dragExited):
+ (WebCore::DragController::dragUpdated):
+ (WebCore::DragController::performDragOperation):
+ (WebCore::DragController::dragEnteredOrUpdated):
+ (WebCore::DragController::tryDocumentDrag):
+ (WebCore::DragController::operationForLoad):
+ (WebCore::DragController::dispatchTextInputEventFor):
+ (WebCore::DragController::concludeEditDrag):
+ (WebCore::DragController::canProcessDrag):
+ (WebCore::DragController::tryDHTMLDrag):
+ * page/DragController.h:
+ * page/efl/DragControllerEfl.cpp:
+ (WebCore::DragController::isCopyKeyDown):
+ (WebCore::DragController::dragOperation):
+ * page/gtk/DragControllerGtk.cpp:
+ (WebCore::DragController::isCopyKeyDown):
+ (WebCore::DragController::dragOperation):
+ * page/mac/DragControllerMac.mm:
+ (WebCore::DragController::isCopyKeyDown):
+ (WebCore::DragController::dragOperation):
+ * page/win/DragControllerWin.cpp:
+ (WebCore::DragController::dragOperation):
+ (WebCore::DragController::isCopyKeyDown):
+ * platform/DragData.h:
+ (WebCore::DragData::DragData):
+
2016-11-18 Jeremy Jones <[email protected]>
Add runtime flag to enable pointer lock. Enable pointer lock feature for mac.
Modified: trunk/Source/WebCore/loader/EmptyClients.h (208903 => 208904)
--- trunk/Source/WebCore/loader/EmptyClients.h 2016-11-18 23:33:05 UTC (rev 208903)
+++ trunk/Source/WebCore/loader/EmptyClients.h 2016-11-18 23:35:28 UTC (rev 208904)
@@ -589,9 +589,9 @@
public:
EmptyDragClient() { }
virtual ~EmptyDragClient() {}
- void willPerformDragDestinationAction(DragDestinationAction, DragData&) override { }
+ void willPerformDragDestinationAction(DragDestinationAction, const DragData&) override { }
void willPerformDragSourceAction(DragSourceAction, const IntPoint&, DataTransfer&) override { }
- DragDestinationAction actionMaskForDrag(DragData&) override { return DragDestinationActionNone; }
+ DragDestinationAction actionMaskForDrag(const DragData&) override { return DragDestinationActionNone; }
DragSourceAction dragSourceActionMaskForPoint(const IntPoint&) override { return DragSourceActionNone; }
void startDrag(DragImageRef, const IntPoint&, const IntPoint&, DataTransfer&, Frame&, bool) override { }
void dragControllerDestroyed() override { }
Modified: trunk/Source/WebCore/page/DragClient.h (208903 => 208904)
--- trunk/Source/WebCore/page/DragClient.h 2016-11-18 23:33:05 UTC (rev 208903)
+++ trunk/Source/WebCore/page/DragClient.h 2016-11-18 23:35:28 UTC (rev 208904)
@@ -41,9 +41,9 @@
public:
virtual void dragControllerDestroyed() = 0;
- virtual void willPerformDragDestinationAction(DragDestinationAction, DragData&) = 0;
+ virtual void willPerformDragDestinationAction(DragDestinationAction, const DragData&) = 0;
virtual void willPerformDragSourceAction(DragSourceAction, const IntPoint&, DataTransfer&) = 0;
- virtual DragDestinationAction actionMaskForDrag(DragData&) = 0;
+ 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;
Modified: trunk/Source/WebCore/page/DragController.cpp (208903 => 208904)
--- trunk/Source/WebCore/page/DragController.cpp 2016-11-18 23:33:05 UTC (rev 208903)
+++ trunk/Source/WebCore/page/DragController.cpp 2016-11-18 23:35:28 UTC (rev 208904)
@@ -94,7 +94,7 @@
#if ENABLE(DRAG_SUPPORT)
-static PlatformMouseEvent createMouseEvent(DragData& dragData)
+static PlatformMouseEvent createMouseEvent(const DragData& dragData)
{
bool shiftKey = false;
bool ctrlKey = false;
@@ -125,7 +125,7 @@
m_client.dragControllerDestroyed();
}
-static RefPtr<DocumentFragment> documentFragmentFromDragData(DragData& dragData, Frame& frame, Range& context, bool allowPlainText, bool& chosePlainText)
+static RefPtr<DocumentFragment> documentFragmentFromDragData(const DragData& dragData, Frame& frame, Range& context, bool allowPlainText, bool& chosePlainText)
{
chosePlainText = false;
@@ -162,7 +162,7 @@
return nullptr;
}
-bool DragController::dragIsMove(FrameSelection& selection, DragData& dragData)
+bool DragController::dragIsMove(FrameSelection& selection, const DragData& dragData)
{
const VisibleSelection& visibleSelection = selection.selection();
return m_documentUnderMouse == m_dragInitiator && visibleSelection.isContentEditable() && visibleSelection.isRange() && !isCopyKeyDown(dragData);
@@ -182,12 +182,12 @@
m_client.dragEnded();
}
-DragOperation DragController::dragEntered(DragData& dragData)
+DragOperation DragController::dragEntered(const DragData& dragData)
{
return dragEnteredOrUpdated(dragData);
}
-void DragController::dragExited(DragData& dragData)
+void DragController::dragExited(const DragData& dragData)
{
if (RefPtr<FrameView> v = m_page.mainFrame().view()) {
#if ENABLE(DASHBOARD_SUPPORT)
@@ -207,12 +207,12 @@
m_fileInputElementUnderMouse = nullptr;
}
-DragOperation DragController::dragUpdated(DragData& dragData)
+DragOperation DragController::dragUpdated(const DragData& dragData)
{
return dragEnteredOrUpdated(dragData);
}
-bool DragController::performDragOperation(DragData& dragData)
+bool DragController::performDragOperation(const DragData& dragData)
{
m_documentUnderMouse = m_page.mainFrame().documentAtPoint(dragData.clientPosition());
@@ -264,7 +264,7 @@
m_documentUnderMouse = newDocument;
}
-DragOperation DragController::dragEnteredOrUpdated(DragData& dragData)
+DragOperation DragController::dragEnteredOrUpdated(const DragData& dragData)
{
mouseMovedIntoDocument(m_page.mainFrame().documentAtPoint(dragData.clientPosition()));
@@ -316,7 +316,7 @@
return downcast<Element>(node);
}
-bool DragController::tryDocumentDrag(DragData& dragData, DragDestinationAction actionMask, DragOperation& dragOperation)
+bool DragController::tryDocumentDrag(const DragData& dragData, DragDestinationAction actionMask, DragOperation& dragOperation)
{
if (!m_documentUnderMouse)
return false;
@@ -411,7 +411,7 @@
return m_dragSourceAction;
}
-DragOperation DragController::operationForLoad(DragData& dragData)
+DragOperation DragController::operationForLoad(const DragData& dragData)
{
Document* document = m_page.mainFrame().documentAtPoint(dragData.clientPosition());
@@ -442,7 +442,7 @@
return !frame->selection().isNone() && frame->selection().selection().isContentEditable();
}
-bool DragController::dispatchTextInputEventFor(Frame* innerFrame, DragData& dragData)
+bool DragController::dispatchTextInputEventFor(Frame* innerFrame, const DragData& dragData)
{
ASSERT(m_page.dragCaretController().hasCaret());
String text = m_page.dragCaretController().isContentRichlyEditable() ? emptyString() : dragData.asPlainText();
@@ -450,7 +450,7 @@
return target->dispatchEvent(TextEvent::createForDrop(innerFrame->document()->domWindow(), text));
}
-bool DragController::concludeEditDrag(DragData& dragData)
+bool DragController::concludeEditDrag(const DragData& dragData)
{
RefPtr<HTMLInputElement> fileInput = m_fileInputElementUnderMouse;
if (m_fileInputElementUnderMouse) {
@@ -554,7 +554,7 @@
return true;
}
-bool DragController::canProcessDrag(DragData& dragData)
+bool DragController::canProcessDrag(const DragData& dragData)
{
if (!dragData.containsCompatibleContent())
return false;
@@ -603,7 +603,7 @@
return DragOperationGeneric;
}
-bool DragController::tryDHTMLDrag(DragData& dragData, DragOperation& operation)
+bool DragController::tryDHTMLDrag(const DragData& dragData, DragOperation& operation)
{
ASSERT(m_documentUnderMouse);
Ref<MainFrame> mainFrame(m_page.mainFrame());
Modified: trunk/Source/WebCore/page/DragController.h (208903 => 208904)
--- trunk/Source/WebCore/page/DragController.h 2016-11-18 23:33:05 UTC (rev 208903)
+++ trunk/Source/WebCore/page/DragController.h 2016-11-18 23:35:28 UTC (rev 208904)
@@ -56,10 +56,10 @@
DragClient& client() const { return m_client; }
- WEBCORE_EXPORT DragOperation dragEntered(DragData&);
- WEBCORE_EXPORT void dragExited(DragData&);
- WEBCORE_EXPORT DragOperation dragUpdated(DragData&);
- WEBCORE_EXPORT bool performDragOperation(DragData&);
+ WEBCORE_EXPORT DragOperation dragEntered(const DragData&);
+ WEBCORE_EXPORT void dragExited(const DragData&);
+ WEBCORE_EXPORT DragOperation dragUpdated(const DragData&);
+ WEBCORE_EXPORT bool performDragOperation(const DragData&);
bool mouseIsOverFileInput() const { return m_fileInputElementUnderMouse; }
unsigned numberOfItemsToBeAccepted() const { return m_numberOfItemsToBeAccepted; }
@@ -96,17 +96,17 @@
static const float DragImageAlpha;
private:
- bool dispatchTextInputEventFor(Frame*, DragData&);
- bool canProcessDrag(DragData&);
- bool concludeEditDrag(DragData&);
- DragOperation dragEnteredOrUpdated(DragData&);
- DragOperation operationForLoad(DragData&);
- bool tryDocumentDrag(DragData&, DragDestinationAction, DragOperation&);
- bool tryDHTMLDrag(DragData&, DragOperation&);
- DragOperation dragOperation(DragData&);
+ bool dispatchTextInputEventFor(Frame*, const DragData&);
+ bool canProcessDrag(const DragData&);
+ bool concludeEditDrag(const DragData&);
+ DragOperation dragEnteredOrUpdated(const DragData&);
+ DragOperation operationForLoad(const DragData&);
+ bool tryDocumentDrag(const DragData&, DragDestinationAction, DragOperation&);
+ bool tryDHTMLDrag(const DragData&, DragOperation&);
+ DragOperation dragOperation(const DragData&);
void clearDragCaret();
- bool dragIsMove(FrameSelection&, DragData&);
- bool isCopyKeyDown(DragData&);
+ bool dragIsMove(FrameSelection&, const DragData&);
+ bool isCopyKeyDown(const DragData&);
void mouseMovedIntoDocument(Document*);
Modified: trunk/Source/WebCore/page/efl/DragControllerEfl.cpp (208903 => 208904)
--- trunk/Source/WebCore/page/efl/DragControllerEfl.cpp 2016-11-18 23:33:05 UTC (rev 208903)
+++ trunk/Source/WebCore/page/efl/DragControllerEfl.cpp 2016-11-18 23:35:28 UTC (rev 208904)
@@ -45,12 +45,12 @@
const float DragController::DragImageAlpha = 0.75f;
-bool DragController::isCopyKeyDown(DragData&)
+bool DragController::isCopyKeyDown(const DragData&)
{
return false;
}
-DragOperation DragController::dragOperation(DragData& dragData)
+DragOperation DragController::dragOperation(const DragData& dragData)
{
if (dragData.containsURL())
return DragOperationCopy;
Modified: trunk/Source/WebCore/page/gtk/DragControllerGtk.cpp (208903 => 208904)
--- trunk/Source/WebCore/page/gtk/DragControllerGtk.cpp 2016-11-18 23:33:05 UTC (rev 208903)
+++ trunk/Source/WebCore/page/gtk/DragControllerGtk.cpp 2016-11-18 23:35:28 UTC (rev 208904)
@@ -46,12 +46,12 @@
const float DragController::DragImageAlpha = 0.75f;
-bool DragController::isCopyKeyDown(DragData&)
+bool DragController::isCopyKeyDown(const DragData&)
{
return false;
}
-DragOperation DragController::dragOperation(DragData& dragData)
+DragOperation DragController::dragOperation(const DragData& dragData)
{
// FIXME: This logic is incomplete
if (dragData.containsURL())
Modified: trunk/Source/WebCore/page/mac/DragControllerMac.mm (208903 => 208904)
--- trunk/Source/WebCore/page/mac/DragControllerMac.mm 2016-11-18 23:33:05 UTC (rev 208903)
+++ trunk/Source/WebCore/page/mac/DragControllerMac.mm 2016-11-18 23:35:28 UTC (rev 208904)
@@ -54,12 +54,12 @@
const float DragController::DragImageAlpha = 0.75f;
-bool DragController::isCopyKeyDown(DragData& dragData)
+bool DragController::isCopyKeyDown(const DragData& dragData)
{
return dragData.flags() & DragApplicationIsCopyKeyDown;
}
-DragOperation DragController::dragOperation(DragData& dragData)
+DragOperation DragController::dragOperation(const DragData& dragData)
{
if ((dragData.flags() & DragApplicationIsModal) || !dragData.containsURL())
return DragOperationNone;
Modified: trunk/Source/WebCore/page/win/DragControllerWin.cpp (208903 => 208904)
--- trunk/Source/WebCore/page/win/DragControllerWin.cpp 2016-11-18 23:33:05 UTC (rev 208903)
+++ trunk/Source/WebCore/page/win/DragControllerWin.cpp 2016-11-18 23:35:28 UTC (rev 208904)
@@ -43,7 +43,7 @@
const float DragController::DragImageAlpha = 0.75f;
-DragOperation DragController::dragOperation(DragData& dragData)
+DragOperation DragController::dragOperation(const DragData& dragData)
{
//FIXME: to match the macos behaviour we should return DragOperationNone
//if we are a modal window, we are the drag source, or the window is an attached sheet
@@ -52,7 +52,7 @@
return dragData.containsURL() && !m_didInitiateDrag ? DragOperationCopy : DragOperationNone;
}
-bool DragController::isCopyKeyDown(DragData&)
+bool DragController::isCopyKeyDown(const DragData&)
{
return ::GetAsyncKeyState(VK_CONTROL);
}
Modified: trunk/Source/WebCore/platform/DragData.h (208903 => 208904)
--- trunk/Source/WebCore/platform/DragData.h 2016-11-18 23:33:05 UTC (rev 208903)
+++ trunk/Source/WebCore/platform/DragData.h 2016-11-18 23:35:28 UTC (rev 208904)
@@ -80,6 +80,9 @@
// clientPosition is taken to be the position of the drag event within the target window, with (0,0) at the top left
WEBCORE_EXPORT DragData(DragDataRef, const IntPoint& clientPosition, const IntPoint& globalPosition, DragOperation, DragApplicationFlags = DragApplicationNone);
WEBCORE_EXPORT DragData(const String& dragStorageName, const IntPoint& clientPosition, const IntPoint& globalPosition, DragOperation, DragApplicationFlags = DragApplicationNone);
+ // This constructor should used only by WebKit2 IPC because DragData
+ // is initialized by the decoder and not in the constructor.
+ DragData() { }
#if PLATFORM(WIN)
WEBCORE_EXPORT DragData(const DragDataMap&, const IntPoint& clientPosition, const IntPoint& globalPosition, DragOperation sourceOperationMask, DragApplicationFlags = DragApplicationNone);
const DragDataMap& dragDataMap();
@@ -107,9 +110,6 @@
#endif
#if PLATFORM(GTK)
- // This constructor should used only by WebKit2 IPC because DragData
- // is initialized by the decoder and not in the constructor.
- DragData() { }
DragData& operator =(const DragData& data)
{
Modified: trunk/Source/WebKit/mac/ChangeLog (208903 => 208904)
--- trunk/Source/WebKit/mac/ChangeLog 2016-11-18 23:33:05 UTC (rev 208903)
+++ trunk/Source/WebKit/mac/ChangeLog 2016-11-18 23:35:28 UTC (rev 208904)
@@ -1,3 +1,15 @@
+2016-11-18 Enrica Casucci <[email protected]>
+
+ Refactor drag and drop for WebKit2 to encode DragData message exchange.
+ https://bugs.webkit.org/show_bug.cgi?id=164945
+
+ Reviewed by Tim Horton.
+
+ * WebCoreSupport/WebDragClient.h:
+ * WebCoreSupport/WebDragClient.mm:
+ (WebDragClient::actionMaskForDrag):
+ (WebDragClient::willPerformDragDestinationAction):
+
2016-11-18 Jeremy Jones <[email protected]>
Add runtime flag to enable pointer lock. Enable pointer lock feature for mac.
Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebDragClient.h (208903 => 208904)
--- trunk/Source/WebKit/mac/WebCoreSupport/WebDragClient.h 2016-11-18 23:33:05 UTC (rev 208903)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebDragClient.h 2016-11-18 23:35:28 UTC (rev 208904)
@@ -32,9 +32,9 @@
class WebDragClient : public WebCore::DragClient {
public:
WebDragClient(WebView*);
- void willPerformDragDestinationAction(WebCore::DragDestinationAction, WebCore::DragData&) override;
+ void willPerformDragDestinationAction(WebCore::DragDestinationAction, const WebCore::DragData&) override;
void willPerformDragSourceAction(WebCore::DragSourceAction, const WebCore::IntPoint&, WebCore::DataTransfer&) override;
- WebCore::DragDestinationAction actionMaskForDrag(WebCore::DragData&) override;
+ 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;
Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebDragClient.mm (208903 => 208904)
--- trunk/Source/WebKit/mac/WebCoreSupport/WebDragClient.mm 2016-11-18 23:33:05 UTC (rev 208903)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebDragClient.mm 2016-11-18 23:35:28 UTC (rev 208904)
@@ -66,12 +66,12 @@
return (WebHTMLView*)[[kit(&frame->page()->mainFrame()) frameView] documentView];
}
-WebCore::DragDestinationAction WebDragClient::actionMaskForDrag(WebCore::DragData& dragData)
+WebCore::DragDestinationAction WebDragClient::actionMaskForDrag(const WebCore::DragData& dragData)
{
return (WebCore::DragDestinationAction)[[m_webView _UIDelegateForwarder] webView:m_webView dragDestinationActionMaskForDraggingInfo:dragData.platformData()];
}
-void WebDragClient::willPerformDragDestinationAction(WebCore::DragDestinationAction action, WebCore::DragData& dragData)
+void WebDragClient::willPerformDragDestinationAction(WebCore::DragDestinationAction action, const WebCore::DragData& dragData)
{
[[m_webView _UIDelegateForwarder] webView:m_webView willPerformDragDestinationAction:(WebDragDestinationAction)action forDraggingInfo:dragData.platformData()];
}
Modified: trunk/Source/WebKit/win/WebCoreSupport/WebDragClient.cpp (208903 => 208904)
--- trunk/Source/WebKit/win/WebCoreSupport/WebDragClient.cpp 2016-11-18 23:33:05 UTC (rev 208903)
+++ trunk/Source/WebKit/win/WebCoreSupport/WebDragClient.cpp 2016-11-18 23:35:28 UTC (rev 208904)
@@ -64,7 +64,7 @@
ASSERT(webView);
}
-DragDestinationAction WebDragClient::actionMaskForDrag(DragData& dragData)
+DragDestinationAction WebDragClient::actionMaskForDrag(const DragData& dragData)
{
COMPtr<IWebUIDelegate> delegateRef = 0;
//Default behaviour (eg. no delegate, or callback not implemented) is to allow
@@ -76,7 +76,7 @@
return (DragDestinationAction)mask;
}
-void WebDragClient::willPerformDragDestinationAction(DragDestinationAction action, DragData& dragData)
+void WebDragClient::willPerformDragDestinationAction(DragDestinationAction action, const DragData& dragData)
{
//Default delegate for willPerformDragDestinationAction has no side effects
//so we just call the delegate, and don't worry about whether it's implemented
Modified: trunk/Source/WebKit/win/WebCoreSupport/WebDragClient.h (208903 => 208904)
--- trunk/Source/WebKit/win/WebCoreSupport/WebDragClient.h 2016-11-18 23:33:05 UTC (rev 208903)
+++ trunk/Source/WebKit/win/WebCoreSupport/WebDragClient.h 2016-11-18 23:35:28 UTC (rev 208904)
@@ -35,9 +35,9 @@
WebDragClient(WebView*);
virtual void dragControllerDestroyed();
- virtual WebCore::DragDestinationAction actionMaskForDrag(WebCore::DragData&);
+ virtual WebCore::DragDestinationAction actionMaskForDrag(const WebCore::DragData&);
virtual WebCore::DragSourceAction dragSourceActionMaskForPoint(const WebCore::IntPoint&);
- virtual void willPerformDragDestinationAction(WebCore::DragDestinationAction, WebCore::DragData&);
+ 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);
Modified: trunk/Source/WebKit2/ChangeLog (208903 => 208904)
--- trunk/Source/WebKit2/ChangeLog 2016-11-18 23:33:05 UTC (rev 208903)
+++ trunk/Source/WebKit2/ChangeLog 2016-11-18 23:35:28 UTC (rev 208904)
@@ -1,3 +1,25 @@
+2016-11-18 Enrica Casucci <[email protected]>
+
+ Refactor drag and drop for WebKit2 to encode DragData message exchange.
+ https://bugs.webkit.org/show_bug.cgi?id=164945
+
+ Reviewed by Tim Horton.
+
+ * Shared/WebCoreArgumentCoders.cpp:
+ (IPC::ArgumentCoder<DragData>::encode):
+ (IPC::ArgumentCoder<DragData>::decode):
+ * Shared/WebCoreArgumentCoders.h:
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::performDragControllerAction):
+ * WebProcess/WebCoreSupport/WebDragClient.cpp:
+ (WebKit::WebDragClient::willPerformDragDestinationAction):
+ (WebKit::WebDragClient::actionMaskForDrag):
+ * WebProcess/WebCoreSupport/WebDragClient.h:
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::performDragControllerAction):
+ * WebProcess/WebPage/WebPage.h:
+ * WebProcess/WebPage/WebPage.messages.in:
+
2016-11-18 Jeremy Jones <[email protected]>
Add runtime flag to enable pointer lock. Enable pointer lock feature for mac.
Modified: trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp (208903 => 208904)
--- trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp 2016-11-18 23:33:05 UTC (rev 208903)
+++ trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp 2016-11-18 23:35:28 UTC (rev 208904)
@@ -37,6 +37,7 @@
#include <WebCore/DatabaseDetails.h>
#include <WebCore/DictationAlternative.h>
#include <WebCore/DictionaryPopupInfo.h>
+#include <WebCore/DragData.h>
#include <WebCore/Editor.h>
#include <WebCore/EventTrackingRegions.h>
#include <WebCore/FileChooser.h>
@@ -1183,7 +1184,48 @@
return true;
}
+#if ENABLE(DRAG_SUPPORT)
+void ArgumentCoder<DragData>::encode(Encoder& encoder, const DragData& dragData)
+{
+ encoder << dragData.clientPosition();
+ encoder << dragData.globalPosition();
+ encoder.encodeEnum(dragData.draggingSourceOperationMask());
+ encoder.encodeEnum(dragData.flags());
+#if PLATFORM(MAC)
+ encoder << dragData.pasteboardName();
+#endif
+}
+bool ArgumentCoder<DragData>::decode(Decoder& decoder, DragData& dragData)
+{
+ IntPoint clientPosition;
+ if (!decoder.decode(clientPosition))
+ return false;
+
+ IntPoint globalPosition;
+ if (!decoder.decode(globalPosition))
+ return false;
+
+ DragOperation draggingSourceOperationMask;
+ if (!decoder.decodeEnum(draggingSourceOperationMask))
+ return false;
+
+ DragApplicationFlags applicationFlags;
+ if (!decoder.decodeEnum(applicationFlags))
+ return false;
+
+ String pasteboardName;
+#if PLATFORM(MAC)
+ if (!decoder.decode(pasteboardName))
+ return false;
+#endif
+
+ dragData = DragData(pasteboardName, clientPosition, globalPosition, draggingSourceOperationMask, applicationFlags);
+
+ return true;
+}
+#endif
+
void ArgumentCoder<CompositionUnderline>::encode(Encoder& encoder, const CompositionUnderline& underline)
{
encoder << underline.startOffset;
Modified: trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h (208903 => 208904)
--- trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h 2016-11-18 23:33:05 UTC (rev 208903)
+++ trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h 2016-11-18 23:35:28 UTC (rev 208904)
@@ -41,6 +41,7 @@
class CubicBezierTimingFunction;
class Cursor;
class DatabaseDetails;
+class DragData;
class FilterOperation;
class FilterOperations;
class FloatPoint;
@@ -326,6 +327,13 @@
static bool decode(Decoder&, WebCore::Color&);
};
+#if ENABLE(DRAG_SUPPORT)
+template<> struct ArgumentCoder<WebCore::DragData> {
+ static void encode(Encoder&, const WebCore::DragData&);
+ static bool decode(Decoder&, WebCore::DragData&);
+};
+#endif
+
#if PLATFORM(COCOA)
template<> struct ArgumentCoder<WebCore::MachSendRight> {
static void encode(Encoder&, const WebCore::MachSendRight&);
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (208903 => 208904)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp 2016-11-18 23:33:05 UTC (rev 208903)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp 2016-11-18 23:35:28 UTC (rev 208904)
@@ -1809,7 +1809,7 @@
WebSelectionData selection(*dragData.platformData());
m_process->send(Messages::WebPage::PerformDragControllerAction(action, dragData.clientPosition(), dragData.globalPosition(), dragData.draggingSourceOperationMask(), selection, dragData.flags()), m_pageID);
#else
- m_process->send(Messages::WebPage::PerformDragControllerAction(action, dragData.clientPosition(), dragData.globalPosition(), dragData.draggingSourceOperationMask(), dragStorageName, dragData.flags(), sandboxExtensionHandle, sandboxExtensionsForUpload), m_pageID);
+ m_process->send(Messages::WebPage::PerformDragControllerAction(action, dragData, sandboxExtensionHandle, sandboxExtensionsForUpload), m_pageID);
#endif
}
Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebDragClient.cpp (208903 => 208904)
--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebDragClient.cpp 2016-11-18 23:33:05 UTC (rev 208903)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebDragClient.cpp 2016-11-18 23:35:28 UTC (rev 208904)
@@ -34,7 +34,7 @@
namespace WebKit {
-void WebDragClient::willPerformDragDestinationAction(DragDestinationAction action, DragData&)
+void WebDragClient::willPerformDragDestinationAction(DragDestinationAction action, const DragData&)
{
if (action == DragDestinationActionLoad)
m_page->willPerformLoadDragDestinationAction();
@@ -46,7 +46,7 @@
{
}
-DragDestinationAction WebDragClient::actionMaskForDrag(DragData&)
+DragDestinationAction WebDragClient::actionMaskForDrag(const DragData&)
{
return DragDestinationActionAny;
}
Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebDragClient.h (208903 => 208904)
--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebDragClient.h 2016-11-18 23:33:05 UTC (rev 208903)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebDragClient.h 2016-11-18 23:35:28 UTC (rev 208904)
@@ -42,9 +42,9 @@
}
private:
- void willPerformDragDestinationAction(WebCore::DragDestinationAction, WebCore::DragData&) override;
+ void willPerformDragDestinationAction(WebCore::DragDestinationAction, const WebCore::DragData&) override;
void willPerformDragSourceAction(WebCore::DragSourceAction, const WebCore::IntPoint&, WebCore::DataTransfer&) override;
- WebCore::DragDestinationAction actionMaskForDrag(WebCore::DragData&) override;
+ 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;
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (208903 => 208904)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2016-11-18 23:33:05 UTC (rev 208903)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2016-11-18 23:35:28 UTC (rev 208904)
@@ -3449,7 +3449,7 @@
}
}
#else
-void WebPage::performDragControllerAction(uint64_t action, WebCore::IntPoint clientPosition, WebCore::IntPoint globalPosition, uint64_t draggingSourceOperationMask, const String& dragStorageName, uint32_t flags, const SandboxExtension::Handle& sandboxExtensionHandle, const SandboxExtension::HandleArray& sandboxExtensionsHandleArray)
+void WebPage::performDragControllerAction(uint64_t action, const WebCore::DragData& dragData, const SandboxExtension::Handle& sandboxExtensionHandle, const SandboxExtension::HandleArray& sandboxExtensionsHandleArray)
{
if (!m_page) {
send(Messages::WebPageProxy::DidPerformDragControllerAction(DragOperationNone, false, 0));
@@ -3456,7 +3456,6 @@
return;
}
- DragData dragData(dragStorageName, clientPosition, globalPosition, static_cast<DragOperation>(draggingSourceOperationMask), static_cast<DragApplicationFlags>(flags));
switch (action) {
case DragControllerActionEntered: {
DragOperation resolvedDragOperation = m_page->dragController().dragEntered(dragData);
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h (208903 => 208904)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h 2016-11-18 23:33:05 UTC (rev 208903)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h 2016-11-18 23:35:28 UTC (rev 208904)
@@ -734,7 +734,7 @@
#if PLATFORM(GTK)
void performDragControllerAction(uint64_t action, const WebCore::IntPoint& clientPosition, const WebCore::IntPoint& globalPosition, uint64_t draggingSourceOperationMask, WebSelectionData&&, uint32_t flags);
#else
- void performDragControllerAction(uint64_t action, WebCore::IntPoint clientPosition, WebCore::IntPoint globalPosition, uint64_t draggingSourceOperationMask, const WTF::String& dragStorageName, uint32_t flags, const SandboxExtension::Handle&, const SandboxExtension::HandleArray&);
+ void performDragControllerAction(uint64_t action, const WebCore::DragData&, const SandboxExtension::Handle&, const SandboxExtension::HandleArray&);
#endif
void dragEnded(WebCore::IntPoint clientPosition, WebCore::IntPoint globalPosition, uint64_t operation);
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in (208903 => 208904)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in 2016-11-18 23:33:05 UTC (rev 208903)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in 2016-11-18 23:35:28 UTC (rev 208904)
@@ -238,7 +238,7 @@
PerformDragControllerAction(uint64_t action, WebCore::IntPoint clientPosition, WebCore::IntPoint globalPosition, uint64_t draggingSourceOperationMask, struct WebKit::WebSelectionData selection, uint32_t flags)
#endif
#if !PLATFORM(GTK) && ENABLE(DRAG_SUPPORT)
- PerformDragControllerAction(uint64_t action, WebCore::IntPoint clientPosition, WebCore::IntPoint globalPosition, uint64_t draggingSourceOperationMask, String dragStorageName, uint32_t flags, WebKit::SandboxExtension::Handle sandboxExtensionHandle, WebKit::SandboxExtension::HandleArray sandboxExtensionsForUpload)
+ PerformDragControllerAction(uint64_t action, WebCore::DragData dragData, WebKit::SandboxExtension::Handle sandboxExtensionHandle, WebKit::SandboxExtension::HandleArray sandboxExtensionsForUpload)
#endif
#if ENABLE(DRAG_SUPPORT)
DidStartDrag()