Changeset 64082 in webkit
- Timestamp:
- Jul 26, 2010 3:34:49 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 9 added
- 1 deleted
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r64081 r64082 1 2010-07-26 Martin Robinson <mrobinson@igalia.com> 2 3 Reviewed by Gustavo Noronha Silva. 4 5 [GTK] The EventSender should support simulating drop events 6 https://bugs.webkit.org/show_bug.cgi?id=39844 7 8 Unskip tests that are now passing and add baselines for new tests. Re-organize 9 remaining failures so they can be unskipped more easily in the future. 10 11 * platform/gtk/Skipped: 12 * platform/gtk/editing/pasteboard/dataTransfer-setData-getData-expected.txt: Added. 13 * platform/gtk/editing/pasteboard/drag-drop-dead-frame-expected.txt: Added. 14 * platform/gtk/editing/pasteboard/drag-drop-modifies-page-expected.txt: Added. 15 * platform/gtk/editing/pasteboard/drop-text-without-selection-expected.txt: Added. 16 * platform/gtk/editing/pasteboard/subframe-dragndrop-1-expected.txt: Added. 17 * platform/gtk/editing/selection/drag-select-1-expected.txt: Added. 18 * platform/gtk/editing/selection/drag-text-delay-expected.txt: Added. 19 * platform/gtk/fast/events/bogus-dropEffect-effectAllowed-expected.txt: Removed. 20 * platform/gtk/fast/forms/input-text-drag-down-expected.txt: Added. 21 * platform/gtk/fast/lists/drag-into-marker-expected.txt: Added. 22 1 23 2010-07-26 Victor Wang <victorw@chromium.org> 2 24 -
trunk/LayoutTests/platform/gtk/Skipped
r64032 r64082 630 630 editing/pasteboard/5368833.html 631 631 editing/pasteboard/5780697-2.html 632 editing/pasteboard/drag-drop-input-textarea.html633 editing/pasteboard/drag-drop-url-text.html634 632 editing/pasteboard/copy-in-password-field.html 635 editing/pasteboard/drag-image-in-about-blank-frame.html636 editing/pasteboard/file-drag-to-editable.html637 633 editing/pasteboard/file-input-files-access.html 638 editing/pasteboard/get-data-text-plain-drop.html639 634 editing/pasteboard/paste-into-anchor-text.html 640 635 editing/pasteboard/paste-plaintext-user-select-none.html … … 649 644 editing/selection/click-in-padding-with-multiple-line-boxes.html 650 645 editing/selection/doubleclick-whitespace.html 651 editing/selection/drag-start-event-client-x-y.html652 editing/selection/drag-text-delay.html653 646 editing/selection/extend-selection-bidi.html 654 647 editing/selection/getRangeAt.html … … 856 849 editing/pasteboard/displaced-placeholder.html 857 850 editing/pasteboard/display-block-on-spans.html 858 editing/pasteboard/drag-drop-dead-frame.html859 editing/pasteboard/drag-drop-modifies-page.html860 editing/pasteboard/drag-image-to-contenteditable-in-iframe.html861 editing/pasteboard/drag-selected-image-to-contenteditable.html862 editing/pasteboard/drop-link.html863 editing/pasteboard/drop-text-without-selection.html864 851 editing/pasteboard/emacs-cntl-y-001.html 865 852 editing/pasteboard/emacs-ctrl-a-k-y.html … … 933 920 editing/pasteboard/smart-paste-008.html 934 921 editing/pasteboard/styled-element-markup.html 935 editing/pasteboard/subframe-dragndrop-1.html936 922 editing/pasteboard/testcase-9507.html 937 923 editing/pasteboard/undoable-fragment-removes.html … … 969 955 editing/selection/display-table-text.html 970 956 editing/selection/doubleclick-crash.html 971 editing/selection/drag-select-1.html972 editing/selection/drag-to-contenteditable-iframe.html973 957 editing/selection/editable-html-element.html 974 958 editing/selection/editable-links.html … … 1156 1140 fast/events/autoscroll-with-non-scrollable-parent.html 1157 1141 fast/events/blur-focus-window-should-blur-focus-element.html 1158 fast/events/content-changed-during-drop.html1159 fast/events/crash-on-mutate-during-drop.html1160 fast/events/drag-in-frames.html1161 1142 fast/events/frame-tab-focus.html 1162 1143 fast/events/js-keyboard-event-creation.html … … 1166 1147 fast/events/onchange-searchfield.html 1167 1148 fast/events/onchange-textfield.html 1168 fast/events/ondragenter.html1169 1149 fast/events/onsearch-enter.html 1170 1150 fast/events/onunload-clears-onbeforeunload.html … … 1181 1161 fast/events/tabindex-focus-chain.html 1182 1162 fast/forms/button-state-restore.html 1183 fast/forms/drag-into-textarea.html1184 fast/forms/drag-out-of-textarea.html1185 1163 fast/forms/focus2.html 1186 1164 fast/forms/focus-control-to-page.html … … 1288 1266 # Possible bug in eventSender.zoomPageOut() ? https://bugs.webkit.org/show_bug.cgi?id=30575 1289 1267 fast/dom/elementFromPoint-relative-to-viewport.html 1290 1291 # DnD failures https://bugs.webkit.org/show_bug.cgi?id=305761292 editing/pasteboard/drop-inputtext-acquires-style.html1293 fast/events/drag-and-drop-dataTransfer-types-nocrash.html1294 fast/events/drag-and-drop-fire-drag-dragover.html1295 fast/events/drag-and-drop.html1296 fast/events/drag-parent-node.html1297 fast/dom/Window/window-postmessage-clone.html1298 http/tests/misc/bubble-drag-events.html1299 1268 1300 1269 # Tests generating new results … … 2035 2004 fast/events/onloadFrameCrash.html 2036 2005 fast/events/reveal-link-when-focused.html 2037 fast/events/standalone-image-drag-to-editable.html2038 2006 fast/events/updateLayoutForHitTest.html 2039 2007 fast/flexbox/001.html … … 2144 2112 fast/forms/input-text-click-outside.html 2145 2113 fast/forms/input-text-double-click.html 2146 fast/forms/input-text-drag-down.html2147 2114 fast/forms/input-text-maxlength.html 2148 2115 fast/forms/input-text-option-delete.html … … 2387 2354 fast/lists/big-list-marker.html 2388 2355 fast/lists/decimal-leading-zero.html 2389 fast/lists/drag-into-marker.html2390 2356 fast/lists/dynamic-marker-crash.html 2391 2357 fast/lists/inlineBoxWrapperNullCheck.html … … 3190 3156 http/tests/loading/slow-parsing-subframe.html 3191 3157 http/tests/loading/text-content-type-with-binary-extension.html 3192 http/tests/local/send-dragged-file.html3193 http/tests/local/send-sliced-dragged-file.html3194 3158 http/tests/local/blob/send-hybrid-blob.html 3195 3159 http/tests/local/blob/send-sliced-data-blob.html … … 3214 3178 http/tests/security/credentials-in-referer.html 3215 3179 http/tests/security/cross-frame-access-put.html 3216 http/tests/security/dataTransfer-set-data-file-url.html3217 3180 http/tests/security/feed-urls-from-remote.html 3218 3181 http/tests/security/local-video-source-from-remote.html … … 5068 5031 # Tests that failed because we don't have an eventSender implementation 5069 5032 editing/input/scroll-viewport-page-up-down.html 5070 editing/pasteboard/dataTransfer-setData-getData.html5071 editing/pasteboard/files-during-page-drags.html5072 fast/events/drag-to-navigate.html5073 fast/events/ondrop-text-html.html5074 5033 fast/events/popup-when-select-change.html 5075 fast/events/prevent-drag-to-navigate.html5076 5034 fast/events/tab-focus-anchor.html 5077 http/tests/local/drag-over-remote-content.html5078 5035 http/tests/misc/slow-loading-mask.html 5079 5036 http/tests/plugins/plugin-document-has-focus.html 5080 http/tests/security/drag-over-remote-content-iframe.html5081 http/tests/security/clipboard/clipboard-file-access.html5082 5037 5083 5038 # Tests that require editing callbacks (and possibly Glib DOM bindings) … … 5502 5457 5503 5458 editing/deleting/non-smart-delete.html 5504 editing/pasteboard/smart-drag-drop.html5505 5459 fast/repaint/no-caret-repaint-in-non-content-editable-element.html 5506 5460 fast/runin/generated2.html … … 5876 5830 # different DOM to be created. 5877 5831 html5lib/runner.html 5832 5833 #Tests failing because beginDragWithFiles is unimplemented 5834 editing/pasteboard/file-drag-to-editable.html 5835 http/tests/local/send-dragged-file.html 5836 http/tests/local/send-sliced-dragged-file.html 5837 editing/pasteboard/files-during-page-drags.html 5838 fast/events/drag-to-navigate.html 5839 fast/events/prevent-drag-to-navigate.html 5840 fast/dom/Window/window-postmessage-clone.html 5841 http/tests/security/clipboard/clipboard-file-access.html 5842 5843 # Tests that fail because image dragging does not yet work 5844 editing/pasteboard/drag-image-in-about-blank-frame.html 5845 editing/pasteboard/drag-image-to-contenteditable-in-iframe.html 5846 editing/pasteboard/drag-selected-image-to-contenteditable.html 5847 editing/selection/drag-to-contenteditable-iframe.html 5848 fast/events/standalone-image-drag-to-editable.html 5849 editing/pasteboard/drag-drop-iframe-refresh-crash.html 5850 fast/css/user-drag-none.html 5851 5852 # Tests that fail because they assume a certain number of mouse 5853 # movements during drags or fail only in Xvfb 5854 http/tests/local/drag-over-remote-content.html 5855 http/tests/security/drag-over-remote-content-iframe.html 5856 fast/events/drag-in-frames.html 5857 http/tests/misc/bubble-drag-events.html 5858 fast/events/content-changed-during-drop.html 5859 5860 # Tests that seem to be Mac only, assume that smart drag-and-drop 5861 # is enabled or assume platform-dependent sizing. 5862 http/tests/security/dataTransfer-set-data-file-url.html 5863 fast/events/ondragenter.html 5864 editing/pasteboard/smart-drag-drop.html 5865 editing/selection/drag-start-event-client-x-y.html 5866 5867 # Tests that require editing delegate dumps. 5868 editing/pasteboard/drop-link.html 5869 media 5870 http/tests/media -
trunk/WebKitTools/ChangeLog
r64072 r64082 1 2010-07-26 Martin Robinson <mrobinson@igalia.com> 2 3 Reviewed by Gustavo Noronha Silva. 4 5 [GTK] The EventSender should support simulating drop events 6 https://bugs.webkit.org/show_bug.cgi?id=39844 7 8 Add initial dropping support to the GTK+ EventSender. 9 10 * DumpRenderTree/gtk/DumpRenderTree.cpp: 11 (createWebView): Listen for some new drag-and-drop signals. 12 * DumpRenderTree/gtk/EventSender.cpp: Add currentDragSourceContext. 13 (dispatchEvent): 14 Detect situations where a drag is either starting or ending and massage 15 GTK+ into sending the appropriate signals to the WebView. 16 (replaySavedEvents): Remove comment. 17 (makeEventSender): Clear the currentDragSourceContext when creating a new EventSender. 18 (dragBeginCallback): Capture the new currentDragSourceContext when a drag begins. 19 (dragEndCallback): Clear the currentDragSourceContext when a drag ends. 20 (dragFailedCallback): Disable the GTK+ drag failed animation. 21 * DumpRenderTree/gtk/EventSender.h: Add declarations for new signal callbacks. 22 1 23 2010-07-26 Daniel Bates <dbates@rim.com> 2 24 -
trunk/WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp
r63536 r64082 887 887 "signal::geolocation-policy-decision-requested", geolocationPolicyDecisionRequested, 0, 888 888 "signal::onload-event", webViewOnloadEvent, 0, 889 "signal::drag-begin", dragBeginCallback, 0, 890 "signal::drag-end", dragEndCallback, 0, 891 "signal::drag-failed", dragFailedCallback, 0, 892 889 893 NULL); 890 894 -
trunk/WebKitTools/DumpRenderTree/gtk/EventSender.cpp
r62002 r64082 46 46 #include <string.h> 47 47 48 // FIXME: Implement support for synthesizing drop events.49 50 48 extern "C" { 51 49 extern void webkit_web_frame_layout(WebKitWebFrame* frame); … … 63 61 static int buttonCurrentlyDown; 64 62 static int clickCount; 63 GdkDragContext* currentDragSourceContext; 65 64 66 65 struct DelayedMessage { … … 360 359 361 360 gtk_main_do_event(&event); 361 362 if (!currentDragSourceContext) 363 return; 364 365 if (event.type == GDK_MOTION_NOTIFY) { 366 // WebKit has called gtk_drag_start(), but because the main loop isn't 367 // running GDK internals don't know that the drag has started yet. Pump 368 // the main loop a little bit so that GDK is in the correct state. 369 while (gtk_events_pending()) 370 gtk_main_iteration(); 371 372 // Simulate a drag motion on the top-level GDK window. 373 GtkWidget* parentWidget = gtk_widget_get_parent(GTK_WIDGET(view)); 374 GdkWindow* parentWidgetWindow = parentWidget->window; 375 gdk_drag_motion(currentDragSourceContext, parentWidgetWindow, GDK_DRAG_PROTO_XDND, 376 event.motion.x_root, event.motion.y_root, 377 currentDragSourceContext->action, currentDragSourceContext->actions, GDK_CURRENT_TIME); 378 379 } else if (currentDragSourceContext && event.type == GDK_BUTTON_RELEASE) { 380 // We've released the mouse button, we should just be able to spin the 381 // event loop here and have GTK+ send the appropriate notifications for 382 // the end of the drag. 383 while (gtk_events_pending()) 384 gtk_main_iteration(); 385 } 386 362 387 } 363 388 364 389 void replaySavedEvents() 365 390 { 366 // FIXME: Eventually we may need to have more sophisticated logic to367 // track drag-and-drop operations.368 369 391 // First send all the events that are ready to be sent 370 392 while (startOfQueue < endOfQueue) { … … 632 654 endOfQueue = 0; 633 655 startOfQueue = 0; 656 657 currentDragSourceContext = 0; 634 658 } 635 659 636 660 return JSObjectMake(context, getClass(context), 0); 637 661 } 662 663 void dragBeginCallback(GtkWidget*, GdkDragContext* context, gpointer) 664 { 665 currentDragSourceContext = context; 666 } 667 668 void dragEndCallback(GtkWidget*, GdkDragContext* context, gpointer) 669 { 670 currentDragSourceContext = 0; 671 } 672 673 gboolean dragFailedCallback(GtkWidget*, GdkDragContext* context, gpointer) 674 { 675 // Return TRUE here to disable the stupid GTK+ drag failed animation, 676 // which introduces asynchronous behavior into our drags. 677 return TRUE; 678 } -
trunk/WebKitTools/DumpRenderTree/gtk/EventSender.h
r60478 r64082 33 33 typedef const struct OpaqueJSContext* JSContextRef; 34 34 typedef struct OpaqueJSValue* JSObjectRef; 35 typedef struct _GtkWidget GtkWidget; 36 typedef struct _GdkDragContext GdkDragContext; 37 typedef void* gpointer; 38 typedef int gboolean; 35 39 36 40 JSObjectRef makeEventSender(JSContextRef context, bool isTopFrame); 37 41 void replaySavedEvents(); 42 void dragBeginCallback(GtkWidget*, GdkDragContext*, gpointer); 43 void dragEndCallback(GtkWidget*, GdkDragContext*, gpointer); 44 gboolean dragFailedCallback(GtkWidget*, GdkDragContext*, gpointer); 38 45 39 46 #endif
Note: See TracChangeset
for help on using the changeset viewer.