From 5f8de423f190bbb79a62f804151bc24824fa32d8 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Fri, 2 Feb 2018 04:16:08 -0500 Subject: Add m-esr52 at 52.6.0 --- dom/events/AnimationEvent.cpp | 100 + dom/events/AnimationEvent.h | 60 + dom/events/AsyncEventDispatcher.cpp | 90 + dom/events/AsyncEventDispatcher.h | 107 + dom/events/BeforeAfterKeyboardEvent.cpp | 92 + dom/events/BeforeAfterKeyboardEvent.h | 51 + dom/events/BeforeUnloadEvent.cpp | 47 + dom/events/BeforeUnloadEvent.h | 55 + dom/events/ClipboardEvent.cpp | 134 + dom/events/ClipboardEvent.h | 63 + dom/events/CommandEvent.cpp | 76 + dom/events/CommandEvent.h | 59 + dom/events/CompositionEvent.cpp | 109 + dom/events/CompositionEvent.h | 62 + dom/events/ContentEventHandler.cpp | 3080 ++++++++++ dom/events/ContentEventHandler.h | 433 ++ dom/events/CustomEvent.cpp | 149 + dom/events/CustomEvent.h | 66 + dom/events/DOMEventTargetHelper.cpp | 409 ++ dom/events/DOMEventTargetHelper.h | 310 + dom/events/DataContainerEvent.cpp | 98 + dom/events/DataContainerEvent.h | 65 + dom/events/DataTransfer.cpp | 1565 +++++ dom/events/DataTransfer.h | 382 ++ dom/events/DataTransferItem.cpp | 556 ++ dom/events/DataTransferItem.h | 153 + dom/events/DataTransferItemList.cpp | 583 ++ dom/events/DataTransferItemList.h | 131 + dom/events/DeviceMotionEvent.cpp | 170 + dom/events/DeviceMotionEvent.h | 166 + dom/events/DragEvent.cpp | 134 + dom/events/DragEvent.h | 68 + dom/events/Event.cpp | 1305 +++++ dom/events/Event.h | 421 ++ dom/events/EventDispatcher.cpp | 1068 ++++ dom/events/EventDispatcher.h | 292 + dom/events/EventListenerManager.cpp | 1803 ++++++ dom/events/EventListenerManager.h | 658 +++ dom/events/EventListenerService.cpp | 412 ++ dom/events/EventListenerService.h | 112 + dom/events/EventNameList.h | 1108 ++++ dom/events/EventStateManager.cpp | 6002 ++++++++++++++++++++ dom/events/EventStateManager.h | 1051 ++++ dom/events/EventStates.h | 321 ++ dom/events/EventTarget.cpp | 78 + dom/events/EventTarget.h | 112 + dom/events/FocusEvent.cpp | 87 + dom/events/FocusEvent.h | 61 + dom/events/IMEContentObserver.cpp | 1869 ++++++ dom/events/IMEContentObserver.h | 352 ++ dom/events/IMEStateManager.cpp | 1781 ++++++ dom/events/IMEStateManager.h | 328 ++ dom/events/ImageCaptureError.cpp | 59 + dom/events/ImageCaptureError.h | 58 + dom/events/InputEvent.cpp | 76 + dom/events/InputEvent.h | 54 + dom/events/InternalMutationEvent.h | 71 + dom/events/JSEventHandler.cpp | 251 + dom/events/JSEventHandler.h | 281 + dom/events/KeyNameList.h | 442 ++ dom/events/KeyboardEvent.cpp | 365 ++ dom/events/KeyboardEvent.h | 101 + dom/events/MessageEvent.cpp | 181 + dom/events/MessageEvent.h | 86 + dom/events/MouseEvent.cpp | 542 ++ dom/events/MouseEvent.h | 126 + dom/events/MouseScrollEvent.cpp | 91 + dom/events/MouseScrollEvent.h | 56 + dom/events/MutationEvent.cpp | 130 + dom/events/MutationEvent.h | 73 + dom/events/NotifyPaintEvent.cpp | 191 + dom/events/NotifyPaintEvent.h | 85 + dom/events/PaintRequest.cpp | 81 + dom/events/PaintRequest.h | 108 + dom/events/PhysicalKeyCodeNameList.h | 235 + dom/events/PointerEvent.cpp | 179 + dom/events/PointerEvent.h | 63 + dom/events/ScrollAreaEvent.cpp | 93 + dom/events/ScrollAreaEvent.h | 85 + dom/events/SimpleGestureEvent.cpp | 156 + dom/events/SimpleGestureEvent.h | 77 + dom/events/SpeechRecognitionError.cpp | 51 + dom/events/SpeechRecognitionError.h | 62 + dom/events/StorageEvent.cpp | 114 + dom/events/StorageEvent.h | 91 + dom/events/TextClause.cpp | 50 + dom/events/TextClause.h | 57 + dom/events/TextComposition.cpp | 867 +++ dom/events/TextComposition.h | 490 ++ dom/events/Touch.cpp | 192 + dom/events/Touch.h | 101 + dom/events/TouchEvent.cpp | 303 + dom/events/TouchEvent.h | 145 + dom/events/TransitionEvent.cpp | 100 + dom/events/TransitionEvent.h | 60 + dom/events/UIEvent.cpp | 512 ++ dom/events/UIEvent.h | 147 + dom/events/VirtualKeyCodeList.h | 240 + dom/events/WheelEvent.cpp | 147 + dom/events/WheelEvent.h | 72 + dom/events/WheelHandlingHelper.cpp | 551 ++ dom/events/WheelHandlingHelper.h | 182 + dom/events/XULCommandEvent.cpp | 142 + dom/events/XULCommandEvent.h | 78 + dom/events/crashtests/1033343.html | 5 + dom/events/crashtests/1035654-1.html | 21 + dom/events/crashtests/1035654-2.html | 20 + dom/events/crashtests/104310-1.html | 22 + dom/events/crashtests/1072137-1.html | 18 + dom/events/crashtests/1143972-1.html | 12 + dom/events/crashtests/116206-1.html | 23 + dom/events/crashtests/1190036-1.html | 15 + dom/events/crashtests/135345-1.html | 14 + dom/events/crashtests/422009-1.xhtml | 31 + dom/events/crashtests/457776-1.html | 9 + dom/events/crashtests/496308-1.html | 3 + dom/events/crashtests/682637-1.html | 22 + dom/events/crashtests/938341.html | 7 + dom/events/crashtests/crashtests.list | 18 + .../crashtests/eventctor-nulldictionary.html | 4 + dom/events/crashtests/eventctor-nullstorage.html | 4 + .../crashtests/recursive-DOMNodeInserted.html | 17 + dom/events/crashtests/recursive-onload.html | 1 + dom/events/moz.build | 162 + dom/events/nsIEventListenerService.idl | 122 + dom/events/test/bug1017086_inner.html | 41 + dom/events/test/bug1096146_embedded.html | 16 + dom/events/test/bug226361_iframe.xhtml | 47 + dom/events/test/bug299673.js | 105 + dom/events/test/bug322588-popup.html | 1 + dom/events/test/bug415498-doc1.html | 15 + dom/events/test/bug415498-doc2.html | 15 + dom/events/test/bug418986-3.js | 69 + dom/events/test/bug426082.html | 165 + dom/events/test/bug591249_iframe.xul | 33 + dom/events/test/bug602962.xul | 8 + dom/events/test/bug656379-1.html | 185 + dom/events/test/bug989198_embedded.html | 20 + dom/events/test/bug989198_helper.js | 192 + dom/events/test/chrome.ini | 28 + dom/events/test/empty.js | 0 dom/events/test/error_event_worker.js | 15 + dom/events/test/file_bug679494.html | 8 + dom/events/test/marionette/head.js | 142 + dom/events/test/marionette/manifest.ini | 4 + .../test/marionette/test_sensor_orientation.js | 53 + dom/events/test/mochitest.ini | 186 + ...93174_implicit_pointer_capture_for_touch_1.html | 64 + ...93174_implicit_pointer_capture_for_touch_2.html | 65 + dom/events/test/pointerevents/mochitest.ini | 152 + .../pointerevents/mochitest_support_external.js | 123 + .../pointerevents/mochitest_support_internal.js | 31 + .../pointerevent_attributes_mouse-manual.html | 113 + .../pointerevent_capture_mouse-manual.html | 135 + ...nterevent_capture_suppressing_mouse-manual.html | 186 + ...ge-touch-action-onpointerdown_touch-manual.html | 138 + .../pointerevents/pointerevent_constructor.html | 101 + ...nterevent_element_haspointercapture-manual.html | 123 + ...ntercapture_release_pending_capture-manual.html | 76 + ...ercapture_before_first_pointerevent-manual.html | 100 + ...ointercapture_for_disconnected_node-manual.html | 81 + ...erevent_lostpointercapture_is_first-manual.html | 118 + ...le_primary_pointers_boundary_events-manual.html | 148 + .../pointerevent_pointerId_scope-manual.html | 85 + .../pointerevent_pointercancel_touch-manual.html | 80 + .../pointerevent_pointerdown-manual.html | 60 + .../pointerevent_pointerenter-manual.html | 53 + ...revent_pointerenter_does_not_bubble-manual.html | 91 + .../pointerevent_pointerenter_nohover-manual.html | 77 + ...nterleave_after_pointercancel_touch-manual.html | 67 + ...ointerleave_after_pointerup_nohover-manual.html | 68 + ...revent_pointerleave_descendant_over-manual.html | 64 + ...interevent_pointerleave_descendants-manual.html | 55 + ...revent_pointerleave_does_not_bubble-manual.html | 80 + .../pointerevent_pointerleave_mouse-manual.html | 56 + .../pointerevent_pointerleave_pen-manual.html | 59 + .../pointerevent_pointerleave_touch-manual.html | 54 + .../pointerevent_pointermove-manual.html | 45 + ...revent_pointermove-on-chorded-mouse-button.html | 77 + ...rmove_isprimary_same_as_pointerdown-manual.html | 73 + ...ointerevent_pointermove_pointertype-manual.html | 67 + .../pointerevent_pointerout-manual.html | 47 + ...ointerout_after_pointercancel_touch-manual.html | 68 + ..._pointerout_after_pointerup_nohover-manual.html | 68 + .../pointerevent_pointerout_pen-manual.html | 58 + ...interevent_pointerout_received_once-manual.html | 59 + .../pointerevent_pointerover-manual.html | 53 + .../pointerevent_pointertype_mouse-manual.html | 66 + .../pointerevent_pointertype_pen-manual.html | 64 + .../pointerevent_pointertype_touch-manual.html | 65 + .../pointerevent_pointerup-manual.html | 45 + ...terup_isprimary_same_as_pointerdown-manual.html | 66 + .../pointerevent_pointerup_pointertype-manual.html | 67 + ...ercapture_events_to_original_target-manual.html | 119 + ...asepointercapture_invalid_pointerid-manual.html | 79 + ...ointercapture_onpointercancel_touch-manual.html | 74 + ...asepointercapture_onpointerup_mouse-manual.html | 82 + ...capture_release_right_after_capture-manual.html | 64 + ...vent_setpointercapture_disconnected-manual.html | 58 + ...ointercapture_inactive_button_mouse-manual.html | 61 + ...setpointercapture_invalid_pointerid-manual.html | 68 + ...re_override_pending_capture_element-manual.html | 66 + ...ent_setpointercapture_relatedtarget-manual.html | 103 + ...ointercapture_to_same_element_twice-manual.html | 65 + .../test/pointerevents/pointerevent_styles.css | 93 + .../test/pointerevents/pointerevent_support.js | 185 + ...interevent_suppress_compat_events_on_click.html | 104 + ...event_suppress_compat_events_on_drag_mouse.html | 117 + ...erevent_touch-action-auto-css_touch-manual.html | 129 + ...vent_touch-action-button-test_touch-manual.html | 109 + .../pointerevent_touch-action-illegal.html | 67 + ...inherit_child-auto-child-none_touch-manual.html | 117 + ...uch-action-inherit_child-none_touch-manual.html | 112 + ...herit_child-pan-x-child-pan-x_touch-manual.html | 112 + ...herit_child-pan-x-child-pan-y_touch-manual.html | 117 + ...n-inherit_highest-parent-none_touch-manual.html | 133 + ...ch-action-inherit_parent-none_touch-manual.html | 112 + .../pointerevent_touch-action-keyboard-manual.html | 124 + .../pointerevent_touch-action-mouse-manual.html | 130 + ...erevent_touch-action-none-css_touch-manual.html | 111 + ...revent_touch-action-pan-x-css_touch-manual.html | 106 + ...ouch-action-pan-x-pan-y-pan-y_touch-manual.html | 111 + ...vent_touch-action-pan-x-pan-y_touch-manual.html | 126 + ...revent_touch-action-pan-y-css_touch-manual.html | 106 + ...revent_touch-action-span-test_touch-manual.html | 113 + ...erevent_touch-action-svg-test_touch-manual.html | 122 + ...event_touch-action-table-test_touch-manual.html | 141 + .../pointerevent_touch-action-verification.html | 101 + dom/events/test/pointerevents/readme.md | 5 + .../pointerevent_pointerId_scope-iframe.html | 37 + dom/events/test/pointerevents/test_bug1285128.html | 48 + ...93174_implicit_pointer_capture_for_touch_1.html | 30 + ...93174_implicit_pointer_capture_for_touch_2.html | 30 + dom/events/test/pointerevents/test_empty_file.html | 7 + .../test_pointerevent_attributes_mouse-manual.html | 33 + .../test_pointerevent_capture_mouse-manual.html | 32 + ...nterevent_capture_suppressing_mouse-manual.html | 33 + ...ge-touch-action-onpointerdown_touch-manual.html | 39 + .../test_pointerevent_constructor.html | 26 + ...nterevent_element_haspointercapture-manual.html | 32 + ...ntercapture_release_pending_capture-manual.html | 30 + ...ercapture_before_first_pointerevent-manual.html | 27 + ...ointercapture_for_disconnected_node-manual.html | 31 + ...erevent_lostpointercapture_is_first-manual.html | 28 + ...le_primary_pointers_boundary_events-manual.html | 31 + .../test_pointerevent_pointerId_scope-manual.html | 27 + ...st_pointerevent_pointercancel_touch-manual.html | 27 + .../test_pointerevent_pointerdown-manual.html | 28 + .../test_pointerevent_pointerenter-manual.html | 26 + ...revent_pointerenter_does_not_bubble-manual.html | 27 + ...t_pointerevent_pointerenter_nohover-manual.html | 28 + ...nterleave_after_pointercancel_touch-manual.html | 27 + ...ointerleave_after_pointerup_nohover-manual.html | 27 + ...revent_pointerleave_descendant_over-manual.html | 28 + ...interevent_pointerleave_descendants-manual.html | 27 + ...revent_pointerleave_does_not_bubble-manual.html | 27 + ...est_pointerevent_pointerleave_mouse-manual.html | 27 + .../test_pointerevent_pointerleave_pen-manual.html | 28 + ...est_pointerevent_pointerleave_touch-manual.html | 27 + .../test_pointerevent_pointermove-manual.html | 26 + ...revent_pointermove-on-chorded-mouse-button.html | 37 + ...rmove_isprimary_same_as_pointerdown-manual.html | 28 + ...ointerevent_pointermove_pointertype-manual.html | 27 + .../test_pointerevent_pointerout-manual.html | 27 + ...ointerout_after_pointercancel_touch-manual.html | 27 + ..._pointerout_after_pointerup_nohover-manual.html | 27 + .../test_pointerevent_pointerout_pen-manual.html | 28 + ...interevent_pointerout_received_once-manual.html | 27 + .../test_pointerevent_pointerover-manual.html | 26 + ...test_pointerevent_pointertype_mouse-manual.html | 27 + .../test_pointerevent_pointertype_pen-manual.html | 27 + ...test_pointerevent_pointertype_touch-manual.html | 27 + .../test_pointerevent_pointerup-manual.html | 27 + ...terup_isprimary_same_as_pointerdown-manual.html | 27 + ..._pointerevent_pointerup_pointertype-manual.html | 27 + ...ercapture_events_to_original_target-manual.html | 28 + ...asepointercapture_invalid_pointerid-manual.html | 27 + ...ointercapture_onpointercancel_touch-manual.html | 27 + ...asepointercapture_onpointerup_mouse-manual.html | 27 + ...capture_release_right_after_capture-manual.html | 30 + ...vent_setpointercapture_disconnected-manual.html | 27 + ...ointercapture_inactive_button_mouse-manual.html | 28 + ...setpointercapture_invalid_pointerid-manual.html | 26 + ...re_override_pending_capture_element-manual.html | 31 + ...ent_setpointercapture_relatedtarget-manual.html | 29 + ...ointercapture_to_same_element_twice-manual.html | 31 + ...interevent_suppress_compat_events_on_click.html | 31 + ...event_suppress_compat_events_on_drag_mouse.html | 33 + .../test/pointerevents/test_touch_action.html | 99 + .../test/pointerevents/touch_action_helpers.js | 206 + dom/events/test/test_DataTransferItemList.html | 232 + dom/events/test/test_accel_virtual_modifier.html | 90 + dom/events/test/test_addEventListenerExtraArg.html | 31 + dom/events/test/test_all_synthetic_events.html | 515 ++ dom/events/test/test_bug1003432.html | 45 + dom/events/test/test_bug1003432.js | 23 + dom/events/test/test_bug1013412.html | 110 + dom/events/test/test_bug1017086_disable.html | 41 + dom/events/test/test_bug1017086_enable.html | 43 + dom/events/test/test_bug1037990.html | 61 + dom/events/test/test_bug1079236.html | 60 + dom/events/test/test_bug1096146.html | 187 + dom/events/test/test_bug1128787-1.html | 54 + dom/events/test/test_bug1128787-2.html | 55 + dom/events/test/test_bug1128787-3.html | 54 + dom/events/test/test_bug1145910.html | 48 + dom/events/test/test_bug1150308.html | 41 + dom/events/test/test_bug1248459.html | 58 + dom/events/test/test_bug1264380.html | 54 + dom/events/test/test_bug1298970.html | 33 + dom/events/test/test_bug226361.xhtml | 82 + dom/events/test/test_bug238987.html | 282 + dom/events/test/test_bug288392.html | 97 + dom/events/test/test_bug299673-1.html | 61 + dom/events/test/test_bug299673-2.html | 60 + dom/events/test/test_bug322588.html | 62 + dom/events/test/test_bug328885.html | 134 + dom/events/test/test_bug336682.js | 94 + dom/events/test/test_bug336682_1.html | 68 + dom/events/test/test_bug336682_2.xul | 71 + dom/events/test/test_bug367781.html | 53 + dom/events/test/test_bug368835.html | 101 + dom/events/test/test_bug379120.html | 58 + dom/events/test/test_bug391568.xhtml | 77 + dom/events/test/test_bug402089.html | 67 + dom/events/test/test_bug405632.html | 34 + dom/events/test/test_bug409604.html | 382 ++ dom/events/test/test_bug412567.html | 47 + dom/events/test/test_bug415498.xul | 106 + dom/events/test/test_bug418986-3.html | 25 + dom/events/test/test_bug418986-3.xul | 27 + dom/events/test/test_bug422132.html | 124 + dom/events/test/test_bug426082.html | 30 + dom/events/test/test_bug427537.html | 61 + dom/events/test/test_bug428988.html | 44 + dom/events/test/test_bug432698.html | 223 + dom/events/test/test_bug443985.html | 76 + dom/events/test/test_bug447736.html | 47 + dom/events/test/test_bug448602.html | 220 + dom/events/test/test_bug450876.html | 41 + dom/events/test/test_bug456273.html | 41 + dom/events/test/test_bug457672.html | 55 + dom/events/test/test_bug489671.html | 55 + dom/events/test/test_bug493251.html | 194 + dom/events/test/test_bug502818.html | 54 + dom/events/test/test_bug508479.html | 103 + dom/events/test/test_bug517851.html | 112 + dom/events/test/test_bug524674.xul | 147 + dom/events/test/test_bug534833.html | 157 + dom/events/test/test_bug545268.html | 141 + dom/events/test/test_bug547996-1.html | 87 + dom/events/test/test_bug547996-2.xhtml | 125 + dom/events/test/test_bug556493.html | 74 + dom/events/test/test_bug563329.html | 82 + dom/events/test/test_bug574663.html | 170 + dom/events/test/test_bug586961.xul | 46 + dom/events/test/test_bug591249.xul | 75 + dom/events/test/test_bug591815.html | 68 + dom/events/test/test_bug593959.html | 60 + dom/events/test/test_bug602962.xul | 88 + dom/events/test/test_bug603008.html | 556 ++ dom/events/test/test_bug605242.html | 58 + dom/events/test/test_bug607464.html | 87 + dom/events/test/test_bug613634.html | 90 + dom/events/test/test_bug615597.html | 39 + dom/events/test/test_bug617528.xul | 95 + dom/events/test/test_bug624127.html | 35 + dom/events/test/test_bug635465.html | 90 + dom/events/test/test_bug641477.html | 37 + dom/events/test/test_bug648573.html | 109 + dom/events/test/test_bug650493.html | 215 + dom/events/test/test_bug656379-1.html | 30 + dom/events/test/test_bug656379-2.html | 83 + dom/events/test/test_bug656954.html | 42 + dom/events/test/test_bug659071.html | 39 + dom/events/test/test_bug659350.html | 111 + dom/events/test/test_bug662678.html | 153 + dom/events/test/test_bug667612.html | 39 + dom/events/test/test_bug667919-1.html | 41 + dom/events/test/test_bug679494.xul | 36 + dom/events/test/test_bug684208.html | 80 + dom/events/test/test_bug687787.html | 617 ++ dom/events/test/test_bug689564.html | 65 + dom/events/test/test_bug698929.html | 47 + dom/events/test/test_bug704423.html | 40 + dom/events/test/test_bug741666.html | 176 + dom/events/test/test_bug742376.html | 74 + dom/events/test/test_bug812744.html | 38 + dom/events/test/test_bug822898.html | 350 ++ dom/events/test/test_bug855741.html | 90 + dom/events/test/test_bug864040.html | 87 + dom/events/test/test_bug924087.html | 45 + dom/events/test/test_bug930374-chrome.html | 58 + dom/events/test/test_bug930374-content.html | 72 + dom/events/test/test_bug944011.html | 52 + dom/events/test/test_bug944847.html | 42 + dom/events/test/test_bug946632.html | 161 + dom/events/test/test_bug967796.html | 235 + dom/events/test/test_bug985988.html | 76 + dom/events/test/test_bug998809.html | 35 + dom/events/test/test_clickevent_on_input.html | 111 + dom/events/test/test_continuous_wheel_events.html | 3248 +++++++++++ .../test_dblclick_explicit_original_target.html | 33 + dom/events/test/test_dom_activate_event.html | 89 + .../test/test_dom_before_after_keyboard_event.html | 136 + ...est_dom_before_after_keyboard_event_remote.html | 195 + dom/events/test/test_dom_keyboard_event.html | 306 + dom/events/test/test_dom_mouse_event.html | 143 + dom/events/test/test_dom_storage_event.html | 62 + dom/events/test/test_dom_wheel_event.html | 811 +++ dom/events/test/test_draggableprop.html | 89 + dom/events/test/test_dragstart.html | 585 ++ dom/events/test/test_error_events.html | 72 + dom/events/test/test_eventTimeStamp.html | 121 + dom/events/test/test_eventctors.html | 953 ++++ dom/events/test/test_eventctors.xul | 49 + dom/events/test/test_eventhandler_scoping.html | 17 + dom/events/test/test_focus_disabled.html | 125 + dom/events/test/test_legacy_event.html | 304 + dom/events/test/test_messageEvent.html | 79 + dom/events/test/test_messageEvent_init.html | 25 + .../test/test_moz_mouse_pixel_scroll_event.html | 1363 +++++ dom/events/test/test_offsetxy.html | 98 + dom/events/test/test_onerror_handler_args.html | 36 + dom/events/test/test_passive_listeners.html | 118 + dom/events/test/test_paste_image.html | 196 + dom/events/test/test_wheel_default_action.html | 39 + dom/events/test/window_bug493251.html | 13 + dom/events/test/window_bug617528.xul | 9 + dom/events/test/window_bug659071.html | 69 + dom/events/test/window_wheel_default_action.html | 1848 ++++++ 431 files changed, 71612 insertions(+) create mode 100644 dom/events/AnimationEvent.cpp create mode 100644 dom/events/AnimationEvent.h create mode 100644 dom/events/AsyncEventDispatcher.cpp create mode 100644 dom/events/AsyncEventDispatcher.h create mode 100644 dom/events/BeforeAfterKeyboardEvent.cpp create mode 100644 dom/events/BeforeAfterKeyboardEvent.h create mode 100644 dom/events/BeforeUnloadEvent.cpp create mode 100644 dom/events/BeforeUnloadEvent.h create mode 100644 dom/events/ClipboardEvent.cpp create mode 100644 dom/events/ClipboardEvent.h create mode 100644 dom/events/CommandEvent.cpp create mode 100644 dom/events/CommandEvent.h create mode 100644 dom/events/CompositionEvent.cpp create mode 100644 dom/events/CompositionEvent.h create mode 100644 dom/events/ContentEventHandler.cpp create mode 100644 dom/events/ContentEventHandler.h create mode 100644 dom/events/CustomEvent.cpp create mode 100644 dom/events/CustomEvent.h create mode 100644 dom/events/DOMEventTargetHelper.cpp create mode 100644 dom/events/DOMEventTargetHelper.h create mode 100644 dom/events/DataContainerEvent.cpp create mode 100644 dom/events/DataContainerEvent.h create mode 100644 dom/events/DataTransfer.cpp create mode 100644 dom/events/DataTransfer.h create mode 100644 dom/events/DataTransferItem.cpp create mode 100644 dom/events/DataTransferItem.h create mode 100644 dom/events/DataTransferItemList.cpp create mode 100644 dom/events/DataTransferItemList.h create mode 100644 dom/events/DeviceMotionEvent.cpp create mode 100644 dom/events/DeviceMotionEvent.h create mode 100644 dom/events/DragEvent.cpp create mode 100644 dom/events/DragEvent.h create mode 100644 dom/events/Event.cpp create mode 100644 dom/events/Event.h create mode 100644 dom/events/EventDispatcher.cpp create mode 100644 dom/events/EventDispatcher.h create mode 100644 dom/events/EventListenerManager.cpp create mode 100644 dom/events/EventListenerManager.h create mode 100644 dom/events/EventListenerService.cpp create mode 100644 dom/events/EventListenerService.h create mode 100644 dom/events/EventNameList.h create mode 100644 dom/events/EventStateManager.cpp create mode 100644 dom/events/EventStateManager.h create mode 100644 dom/events/EventStates.h create mode 100644 dom/events/EventTarget.cpp create mode 100644 dom/events/EventTarget.h create mode 100644 dom/events/FocusEvent.cpp create mode 100644 dom/events/FocusEvent.h create mode 100644 dom/events/IMEContentObserver.cpp create mode 100644 dom/events/IMEContentObserver.h create mode 100644 dom/events/IMEStateManager.cpp create mode 100644 dom/events/IMEStateManager.h create mode 100644 dom/events/ImageCaptureError.cpp create mode 100644 dom/events/ImageCaptureError.h create mode 100644 dom/events/InputEvent.cpp create mode 100644 dom/events/InputEvent.h create mode 100644 dom/events/InternalMutationEvent.h create mode 100644 dom/events/JSEventHandler.cpp create mode 100644 dom/events/JSEventHandler.h create mode 100644 dom/events/KeyNameList.h create mode 100644 dom/events/KeyboardEvent.cpp create mode 100644 dom/events/KeyboardEvent.h create mode 100644 dom/events/MessageEvent.cpp create mode 100644 dom/events/MessageEvent.h create mode 100644 dom/events/MouseEvent.cpp create mode 100644 dom/events/MouseEvent.h create mode 100644 dom/events/MouseScrollEvent.cpp create mode 100644 dom/events/MouseScrollEvent.h create mode 100644 dom/events/MutationEvent.cpp create mode 100644 dom/events/MutationEvent.h create mode 100644 dom/events/NotifyPaintEvent.cpp create mode 100644 dom/events/NotifyPaintEvent.h create mode 100644 dom/events/PaintRequest.cpp create mode 100644 dom/events/PaintRequest.h create mode 100644 dom/events/PhysicalKeyCodeNameList.h create mode 100644 dom/events/PointerEvent.cpp create mode 100644 dom/events/PointerEvent.h create mode 100644 dom/events/ScrollAreaEvent.cpp create mode 100644 dom/events/ScrollAreaEvent.h create mode 100644 dom/events/SimpleGestureEvent.cpp create mode 100644 dom/events/SimpleGestureEvent.h create mode 100644 dom/events/SpeechRecognitionError.cpp create mode 100644 dom/events/SpeechRecognitionError.h create mode 100644 dom/events/StorageEvent.cpp create mode 100644 dom/events/StorageEvent.h create mode 100644 dom/events/TextClause.cpp create mode 100644 dom/events/TextClause.h create mode 100644 dom/events/TextComposition.cpp create mode 100644 dom/events/TextComposition.h create mode 100644 dom/events/Touch.cpp create mode 100644 dom/events/Touch.h create mode 100644 dom/events/TouchEvent.cpp create mode 100644 dom/events/TouchEvent.h create mode 100644 dom/events/TransitionEvent.cpp create mode 100644 dom/events/TransitionEvent.h create mode 100644 dom/events/UIEvent.cpp create mode 100644 dom/events/UIEvent.h create mode 100644 dom/events/VirtualKeyCodeList.h create mode 100644 dom/events/WheelEvent.cpp create mode 100644 dom/events/WheelEvent.h create mode 100644 dom/events/WheelHandlingHelper.cpp create mode 100644 dom/events/WheelHandlingHelper.h create mode 100644 dom/events/XULCommandEvent.cpp create mode 100644 dom/events/XULCommandEvent.h create mode 100644 dom/events/crashtests/1033343.html create mode 100644 dom/events/crashtests/1035654-1.html create mode 100644 dom/events/crashtests/1035654-2.html create mode 100644 dom/events/crashtests/104310-1.html create mode 100644 dom/events/crashtests/1072137-1.html create mode 100644 dom/events/crashtests/1143972-1.html create mode 100644 dom/events/crashtests/116206-1.html create mode 100644 dom/events/crashtests/1190036-1.html create mode 100644 dom/events/crashtests/135345-1.html create mode 100644 dom/events/crashtests/422009-1.xhtml create mode 100644 dom/events/crashtests/457776-1.html create mode 100644 dom/events/crashtests/496308-1.html create mode 100644 dom/events/crashtests/682637-1.html create mode 100644 dom/events/crashtests/938341.html create mode 100644 dom/events/crashtests/crashtests.list create mode 100644 dom/events/crashtests/eventctor-nulldictionary.html create mode 100644 dom/events/crashtests/eventctor-nullstorage.html create mode 100644 dom/events/crashtests/recursive-DOMNodeInserted.html create mode 100644 dom/events/crashtests/recursive-onload.html create mode 100644 dom/events/moz.build create mode 100644 dom/events/nsIEventListenerService.idl create mode 100644 dom/events/test/bug1017086_inner.html create mode 100644 dom/events/test/bug1096146_embedded.html create mode 100644 dom/events/test/bug226361_iframe.xhtml create mode 100644 dom/events/test/bug299673.js create mode 100644 dom/events/test/bug322588-popup.html create mode 100644 dom/events/test/bug415498-doc1.html create mode 100644 dom/events/test/bug415498-doc2.html create mode 100644 dom/events/test/bug418986-3.js create mode 100644 dom/events/test/bug426082.html create mode 100644 dom/events/test/bug591249_iframe.xul create mode 100644 dom/events/test/bug602962.xul create mode 100644 dom/events/test/bug656379-1.html create mode 100644 dom/events/test/bug989198_embedded.html create mode 100644 dom/events/test/bug989198_helper.js create mode 100644 dom/events/test/chrome.ini create mode 100644 dom/events/test/empty.js create mode 100644 dom/events/test/error_event_worker.js create mode 100644 dom/events/test/file_bug679494.html create mode 100644 dom/events/test/marionette/head.js create mode 100644 dom/events/test/marionette/manifest.ini create mode 100644 dom/events/test/marionette/test_sensor_orientation.js create mode 100644 dom/events/test/mochitest.ini create mode 100644 dom/events/test/pointerevents/bug1293174_implicit_pointer_capture_for_touch_1.html create mode 100644 dom/events/test/pointerevents/bug1293174_implicit_pointer_capture_for_touch_2.html create mode 100644 dom/events/test/pointerevents/mochitest.ini create mode 100644 dom/events/test/pointerevents/mochitest_support_external.js create mode 100644 dom/events/test/pointerevents/mochitest_support_internal.js create mode 100644 dom/events/test/pointerevents/pointerevent_attributes_mouse-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_capture_mouse-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_capture_suppressing_mouse-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_change-touch-action-onpointerdown_touch-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_constructor.html create mode 100644 dom/events/test/pointerevents/pointerevent_element_haspointercapture-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_element_haspointercapture_release_pending_capture-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_gotpointercapture_before_first_pointerevent-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_lostpointercapture_for_disconnected_node-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_lostpointercapture_is_first-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_multiple_primary_pointers_boundary_events-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointerId_scope-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointercancel_touch-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointerdown-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointerenter-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointerenter_does_not_bubble-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointerenter_nohover-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointerleave_after_pointercancel_touch-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointerleave_after_pointerup_nohover-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointerleave_descendant_over-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointerleave_descendants-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointerleave_does_not_bubble-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointerleave_mouse-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointerleave_pen-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointerleave_touch-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointermove-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointermove-on-chorded-mouse-button.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointermove_isprimary_same_as_pointerdown-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointermove_pointertype-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointerout-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointerout_after_pointercancel_touch-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointerout_after_pointerup_nohover-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointerout_pen-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointerout_received_once-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointerover-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointertype_mouse-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointertype_pen-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointertype_touch-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointerup-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointerup_isprimary_same_as_pointerdown-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_pointerup_pointertype-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_releasepointercapture_events_to_original_target-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_releasepointercapture_invalid_pointerid-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_releasepointercapture_onpointercancel_touch-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_releasepointercapture_onpointerup_mouse-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_releasepointercapture_release_right_after_capture-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_setpointercapture_disconnected-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_setpointercapture_inactive_button_mouse-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_setpointercapture_invalid_pointerid-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_setpointercapture_override_pending_capture_element-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_setpointercapture_relatedtarget-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_setpointercapture_to_same_element_twice-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_styles.css create mode 100644 dom/events/test/pointerevents/pointerevent_support.js create mode 100644 dom/events/test/pointerevents/pointerevent_suppress_compat_events_on_click.html create mode 100644 dom/events/test/pointerevents/pointerevent_suppress_compat_events_on_drag_mouse.html create mode 100644 dom/events/test/pointerevents/pointerevent_touch-action-auto-css_touch-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_touch-action-button-test_touch-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_touch-action-illegal.html create mode 100644 dom/events/test/pointerevents/pointerevent_touch-action-inherit_child-auto-child-none_touch-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_touch-action-inherit_child-none_touch-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_touch-action-inherit_child-pan-x-child-pan-x_touch-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_touch-action-inherit_child-pan-x-child-pan-y_touch-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_touch-action-inherit_highest-parent-none_touch-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_touch-action-inherit_parent-none_touch-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_touch-action-keyboard-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_touch-action-mouse-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_touch-action-none-css_touch-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_touch-action-pan-x-css_touch-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_touch-action-pan-x-pan-y-pan-y_touch-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_touch-action-pan-x-pan-y_touch-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_touch-action-pan-y-css_touch-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_touch-action-span-test_touch-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_touch-action-svg-test_touch-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_touch-action-table-test_touch-manual.html create mode 100644 dom/events/test/pointerevents/pointerevent_touch-action-verification.html create mode 100644 dom/events/test/pointerevents/readme.md create mode 100644 dom/events/test/pointerevents/resources/pointerevent_pointerId_scope-iframe.html create mode 100644 dom/events/test/pointerevents/test_bug1285128.html create mode 100644 dom/events/test/pointerevents/test_bug1293174_implicit_pointer_capture_for_touch_1.html create mode 100644 dom/events/test/pointerevents/test_bug1293174_implicit_pointer_capture_for_touch_2.html create mode 100644 dom/events/test/pointerevents/test_empty_file.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_attributes_mouse-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_capture_mouse-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_capture_suppressing_mouse-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_change-touch-action-onpointerdown_touch-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_constructor.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_element_haspointercapture-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_element_haspointercapture_release_pending_capture-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_gotpointercapture_before_first_pointerevent-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_lostpointercapture_for_disconnected_node-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_lostpointercapture_is_first-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_multiple_primary_pointers_boundary_events-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointerId_scope-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointercancel_touch-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointerdown-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointerenter-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointerenter_does_not_bubble-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointerenter_nohover-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointerleave_after_pointercancel_touch-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointerleave_after_pointerup_nohover-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointerleave_descendant_over-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointerleave_descendants-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointerleave_does_not_bubble-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointerleave_mouse-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointerleave_pen-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointerleave_touch-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointermove-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointermove-on-chorded-mouse-button.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointermove_isprimary_same_as_pointerdown-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointermove_pointertype-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointerout-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointerout_after_pointercancel_touch-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointerout_after_pointerup_nohover-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointerout_pen-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointerout_received_once-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointerover-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointertype_mouse-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointertype_pen-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointertype_touch-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointerup-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointerup_isprimary_same_as_pointerdown-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_pointerup_pointertype-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_releasepointercapture_events_to_original_target-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_releasepointercapture_invalid_pointerid-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_releasepointercapture_onpointercancel_touch-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_releasepointercapture_onpointerup_mouse-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_releasepointercapture_release_right_after_capture-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_setpointercapture_disconnected-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_setpointercapture_inactive_button_mouse-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_setpointercapture_invalid_pointerid-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_setpointercapture_override_pending_capture_element-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_setpointercapture_relatedtarget-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_setpointercapture_to_same_element_twice-manual.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_suppress_compat_events_on_click.html create mode 100644 dom/events/test/pointerevents/test_pointerevent_suppress_compat_events_on_drag_mouse.html create mode 100644 dom/events/test/pointerevents/test_touch_action.html create mode 100644 dom/events/test/pointerevents/touch_action_helpers.js create mode 100644 dom/events/test/test_DataTransferItemList.html create mode 100644 dom/events/test/test_accel_virtual_modifier.html create mode 100644 dom/events/test/test_addEventListenerExtraArg.html create mode 100644 dom/events/test/test_all_synthetic_events.html create mode 100644 dom/events/test/test_bug1003432.html create mode 100644 dom/events/test/test_bug1003432.js create mode 100644 dom/events/test/test_bug1013412.html create mode 100644 dom/events/test/test_bug1017086_disable.html create mode 100644 dom/events/test/test_bug1017086_enable.html create mode 100644 dom/events/test/test_bug1037990.html create mode 100644 dom/events/test/test_bug1079236.html create mode 100644 dom/events/test/test_bug1096146.html create mode 100644 dom/events/test/test_bug1128787-1.html create mode 100644 dom/events/test/test_bug1128787-2.html create mode 100644 dom/events/test/test_bug1128787-3.html create mode 100644 dom/events/test/test_bug1145910.html create mode 100644 dom/events/test/test_bug1150308.html create mode 100644 dom/events/test/test_bug1248459.html create mode 100644 dom/events/test/test_bug1264380.html create mode 100644 dom/events/test/test_bug1298970.html create mode 100644 dom/events/test/test_bug226361.xhtml create mode 100644 dom/events/test/test_bug238987.html create mode 100644 dom/events/test/test_bug288392.html create mode 100644 dom/events/test/test_bug299673-1.html create mode 100644 dom/events/test/test_bug299673-2.html create mode 100644 dom/events/test/test_bug322588.html create mode 100644 dom/events/test/test_bug328885.html create mode 100644 dom/events/test/test_bug336682.js create mode 100644 dom/events/test/test_bug336682_1.html create mode 100644 dom/events/test/test_bug336682_2.xul create mode 100644 dom/events/test/test_bug367781.html create mode 100644 dom/events/test/test_bug368835.html create mode 100644 dom/events/test/test_bug379120.html create mode 100644 dom/events/test/test_bug391568.xhtml create mode 100644 dom/events/test/test_bug402089.html create mode 100644 dom/events/test/test_bug405632.html create mode 100644 dom/events/test/test_bug409604.html create mode 100644 dom/events/test/test_bug412567.html create mode 100644 dom/events/test/test_bug415498.xul create mode 100644 dom/events/test/test_bug418986-3.html create mode 100644 dom/events/test/test_bug418986-3.xul create mode 100644 dom/events/test/test_bug422132.html create mode 100644 dom/events/test/test_bug426082.html create mode 100644 dom/events/test/test_bug427537.html create mode 100644 dom/events/test/test_bug428988.html create mode 100644 dom/events/test/test_bug432698.html create mode 100644 dom/events/test/test_bug443985.html create mode 100644 dom/events/test/test_bug447736.html create mode 100644 dom/events/test/test_bug448602.html create mode 100644 dom/events/test/test_bug450876.html create mode 100644 dom/events/test/test_bug456273.html create mode 100644 dom/events/test/test_bug457672.html create mode 100644 dom/events/test/test_bug489671.html create mode 100644 dom/events/test/test_bug493251.html create mode 100644 dom/events/test/test_bug502818.html create mode 100644 dom/events/test/test_bug508479.html create mode 100644 dom/events/test/test_bug517851.html create mode 100644 dom/events/test/test_bug524674.xul create mode 100644 dom/events/test/test_bug534833.html create mode 100644 dom/events/test/test_bug545268.html create mode 100644 dom/events/test/test_bug547996-1.html create mode 100644 dom/events/test/test_bug547996-2.xhtml create mode 100644 dom/events/test/test_bug556493.html create mode 100644 dom/events/test/test_bug563329.html create mode 100644 dom/events/test/test_bug574663.html create mode 100644 dom/events/test/test_bug586961.xul create mode 100644 dom/events/test/test_bug591249.xul create mode 100644 dom/events/test/test_bug591815.html create mode 100644 dom/events/test/test_bug593959.html create mode 100644 dom/events/test/test_bug602962.xul create mode 100644 dom/events/test/test_bug603008.html create mode 100644 dom/events/test/test_bug605242.html create mode 100644 dom/events/test/test_bug607464.html create mode 100644 dom/events/test/test_bug613634.html create mode 100644 dom/events/test/test_bug615597.html create mode 100644 dom/events/test/test_bug617528.xul create mode 100644 dom/events/test/test_bug624127.html create mode 100644 dom/events/test/test_bug635465.html create mode 100644 dom/events/test/test_bug641477.html create mode 100644 dom/events/test/test_bug648573.html create mode 100644 dom/events/test/test_bug650493.html create mode 100644 dom/events/test/test_bug656379-1.html create mode 100644 dom/events/test/test_bug656379-2.html create mode 100644 dom/events/test/test_bug656954.html create mode 100644 dom/events/test/test_bug659071.html create mode 100644 dom/events/test/test_bug659350.html create mode 100644 dom/events/test/test_bug662678.html create mode 100644 dom/events/test/test_bug667612.html create mode 100644 dom/events/test/test_bug667919-1.html create mode 100644 dom/events/test/test_bug679494.xul create mode 100644 dom/events/test/test_bug684208.html create mode 100644 dom/events/test/test_bug687787.html create mode 100644 dom/events/test/test_bug689564.html create mode 100644 dom/events/test/test_bug698929.html create mode 100644 dom/events/test/test_bug704423.html create mode 100644 dom/events/test/test_bug741666.html create mode 100644 dom/events/test/test_bug742376.html create mode 100644 dom/events/test/test_bug812744.html create mode 100644 dom/events/test/test_bug822898.html create mode 100644 dom/events/test/test_bug855741.html create mode 100644 dom/events/test/test_bug864040.html create mode 100644 dom/events/test/test_bug924087.html create mode 100644 dom/events/test/test_bug930374-chrome.html create mode 100644 dom/events/test/test_bug930374-content.html create mode 100644 dom/events/test/test_bug944011.html create mode 100644 dom/events/test/test_bug944847.html create mode 100644 dom/events/test/test_bug946632.html create mode 100644 dom/events/test/test_bug967796.html create mode 100644 dom/events/test/test_bug985988.html create mode 100644 dom/events/test/test_bug998809.html create mode 100644 dom/events/test/test_clickevent_on_input.html create mode 100644 dom/events/test/test_continuous_wheel_events.html create mode 100644 dom/events/test/test_dblclick_explicit_original_target.html create mode 100644 dom/events/test/test_dom_activate_event.html create mode 100644 dom/events/test/test_dom_before_after_keyboard_event.html create mode 100644 dom/events/test/test_dom_before_after_keyboard_event_remote.html create mode 100644 dom/events/test/test_dom_keyboard_event.html create mode 100644 dom/events/test/test_dom_mouse_event.html create mode 100644 dom/events/test/test_dom_storage_event.html create mode 100644 dom/events/test/test_dom_wheel_event.html create mode 100644 dom/events/test/test_draggableprop.html create mode 100644 dom/events/test/test_dragstart.html create mode 100644 dom/events/test/test_error_events.html create mode 100644 dom/events/test/test_eventTimeStamp.html create mode 100644 dom/events/test/test_eventctors.html create mode 100644 dom/events/test/test_eventctors.xul create mode 100644 dom/events/test/test_eventhandler_scoping.html create mode 100644 dom/events/test/test_focus_disabled.html create mode 100644 dom/events/test/test_legacy_event.html create mode 100644 dom/events/test/test_messageEvent.html create mode 100644 dom/events/test/test_messageEvent_init.html create mode 100644 dom/events/test/test_moz_mouse_pixel_scroll_event.html create mode 100644 dom/events/test/test_offsetxy.html create mode 100644 dom/events/test/test_onerror_handler_args.html create mode 100644 dom/events/test/test_passive_listeners.html create mode 100644 dom/events/test/test_paste_image.html create mode 100644 dom/events/test/test_wheel_default_action.html create mode 100644 dom/events/test/window_bug493251.html create mode 100644 dom/events/test/window_bug617528.xul create mode 100644 dom/events/test/window_bug659071.html create mode 100644 dom/events/test/window_wheel_default_action.html (limited to 'dom/events') diff --git a/dom/events/AnimationEvent.cpp b/dom/events/AnimationEvent.cpp new file mode 100644 index 000000000..970f95818 --- /dev/null +++ b/dom/events/AnimationEvent.cpp @@ -0,0 +1,100 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "mozilla/dom/AnimationEvent.h" +#include "mozilla/ContentEvents.h" +#include "prtime.h" + +namespace mozilla { +namespace dom { + +AnimationEvent::AnimationEvent(EventTarget* aOwner, + nsPresContext* aPresContext, + InternalAnimationEvent* aEvent) + : Event(aOwner, aPresContext, + aEvent ? aEvent : new InternalAnimationEvent(false, eVoidEvent)) +{ + if (aEvent) { + mEventIsInternal = false; + } + else { + mEventIsInternal = true; + mEvent->mTime = PR_Now(); + } +} + +NS_INTERFACE_MAP_BEGIN(AnimationEvent) + NS_INTERFACE_MAP_ENTRY(nsIDOMAnimationEvent) +NS_INTERFACE_MAP_END_INHERITING(Event) + +NS_IMPL_ADDREF_INHERITED(AnimationEvent, Event) +NS_IMPL_RELEASE_INHERITED(AnimationEvent, Event) + +//static +already_AddRefed +AnimationEvent::Constructor(const GlobalObject& aGlobal, + const nsAString& aType, + const AnimationEventInit& aParam, + ErrorResult& aRv) +{ + nsCOMPtr t = do_QueryInterface(aGlobal.GetAsSupports()); + RefPtr e = new AnimationEvent(t, nullptr, nullptr); + bool trusted = e->Init(t); + + e->InitEvent(aType, aParam.mBubbles, aParam.mCancelable); + + InternalAnimationEvent* internalEvent = e->mEvent->AsAnimationEvent(); + internalEvent->mAnimationName = aParam.mAnimationName; + internalEvent->mElapsedTime = aParam.mElapsedTime; + internalEvent->mPseudoElement = aParam.mPseudoElement; + + e->SetTrusted(trusted); + e->SetComposed(aParam.mComposed); + return e.forget(); +} + +NS_IMETHODIMP +AnimationEvent::GetAnimationName(nsAString& aAnimationName) +{ + aAnimationName = mEvent->AsAnimationEvent()->mAnimationName; + return NS_OK; +} + +NS_IMETHODIMP +AnimationEvent::GetElapsedTime(float* aElapsedTime) +{ + *aElapsedTime = ElapsedTime(); + return NS_OK; +} + +float +AnimationEvent::ElapsedTime() +{ + return mEvent->AsAnimationEvent()->mElapsedTime; +} + +NS_IMETHODIMP +AnimationEvent::GetPseudoElement(nsAString& aPseudoElement) +{ + aPseudoElement = mEvent->AsAnimationEvent()->mPseudoElement; + return NS_OK; +} + +} // namespace dom +} // namespace mozilla + +using namespace mozilla; +using namespace mozilla::dom; + +already_AddRefed +NS_NewDOMAnimationEvent(EventTarget* aOwner, + nsPresContext* aPresContext, + InternalAnimationEvent* aEvent) +{ + RefPtr it = + new AnimationEvent(aOwner, aPresContext, aEvent); + return it.forget(); +} diff --git a/dom/events/AnimationEvent.h b/dom/events/AnimationEvent.h new file mode 100644 index 000000000..23713a136 --- /dev/null +++ b/dom/events/AnimationEvent.h @@ -0,0 +1,60 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#ifndef mozilla_dom_AnimationEvent_h_ +#define mozilla_dom_AnimationEvent_h_ + +#include "mozilla/EventForwards.h" +#include "mozilla/dom/Event.h" +#include "mozilla/dom/AnimationEventBinding.h" +#include "nsIDOMAnimationEvent.h" + +class nsAString; + +namespace mozilla { +namespace dom { + +class AnimationEvent : public Event, + public nsIDOMAnimationEvent +{ +public: + AnimationEvent(EventTarget* aOwner, + nsPresContext* aPresContext, + InternalAnimationEvent* aEvent); + + NS_DECL_ISUPPORTS_INHERITED + NS_FORWARD_TO_EVENT + NS_DECL_NSIDOMANIMATIONEVENT + + static already_AddRefed + Constructor(const GlobalObject& aGlobal, + const nsAString& aType, + const AnimationEventInit& aParam, + ErrorResult& aRv); + + virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle aGivenProto) override + { + return AnimationEventBinding::Wrap(aCx, this, aGivenProto); + } + + // xpidl implementation + // GetAnimationName(nsAString& aAnimationName); + // GetPseudoElement(nsAString& aPseudoElement); + + float ElapsedTime(); + +protected: + ~AnimationEvent() {} +}; + +} // namespace dom +} // namespace mozilla + +already_AddRefed +NS_NewDOMAnimationEvent(mozilla::dom::EventTarget* aOwner, + nsPresContext* aPresContext, + mozilla::InternalAnimationEvent* aEvent); + +#endif // mozilla_dom_AnimationEvent_h_ diff --git a/dom/events/AsyncEventDispatcher.cpp b/dom/events/AsyncEventDispatcher.cpp new file mode 100644 index 000000000..da36f7993 --- /dev/null +++ b/dom/events/AsyncEventDispatcher.cpp @@ -0,0 +1,90 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "mozilla/AsyncEventDispatcher.h" +#include "mozilla/BasicEvents.h" +#include "mozilla/EventDispatcher.h" +#include "mozilla/dom/Event.h" // for nsIDOMEvent::InternalDOMEvent() +#include "mozilla/dom/EventTarget.h" +#include "nsContentUtils.h" +#include "nsIDOMEvent.h" + +namespace mozilla { + +using namespace dom; + +/****************************************************************************** + * mozilla::AsyncEventDispatcher + ******************************************************************************/ + +AsyncEventDispatcher::AsyncEventDispatcher(EventTarget* aTarget, + WidgetEvent& aEvent) + : mTarget(aTarget) +{ + MOZ_ASSERT(mTarget); + RefPtr event = + EventDispatcher::CreateEvent(aTarget, nullptr, &aEvent, EmptyString()); + mEvent = event.forget(); + NS_ASSERTION(mEvent, "Should never fail to create an event"); + mEvent->DuplicatePrivateData(); + mEvent->SetTrusted(aEvent.IsTrusted()); +} + +NS_IMETHODIMP +AsyncEventDispatcher::Run() +{ + if (mCanceled) { + return NS_OK; + } + mTarget->AsyncEventRunning(this); + RefPtr event = mEvent ? mEvent->InternalDOMEvent() : nullptr; + if (!event) { + event = NS_NewDOMEvent(mTarget, nullptr, nullptr); + event->InitEvent(mEventType, mBubbles, false); + event->SetTrusted(true); + } + if (mOnlyChromeDispatch) { + MOZ_ASSERT(event->IsTrusted()); + event->WidgetEventPtr()->mFlags.mOnlyChromeDispatch = true; + } + bool dummy; + mTarget->DispatchEvent(event, &dummy); + return NS_OK; +} + +nsresult +AsyncEventDispatcher::Cancel() +{ + mCanceled = true; + return NS_OK; +} + +nsresult +AsyncEventDispatcher::PostDOMEvent() +{ + RefPtr ensureDeletionWhenFailing = this; + return NS_DispatchToCurrentThread(this); +} + +void +AsyncEventDispatcher::RunDOMEventWhenSafe() +{ + RefPtr ensureDeletionWhenFailing = this; + nsContentUtils::AddScriptRunner(this); +} + +/****************************************************************************** + * mozilla::LoadBlockingAsyncEventDispatcher + ******************************************************************************/ + +LoadBlockingAsyncEventDispatcher::~LoadBlockingAsyncEventDispatcher() +{ + if (mBlockedDoc) { + mBlockedDoc->UnblockOnload(true); + } +} + +} // namespace mozilla diff --git a/dom/events/AsyncEventDispatcher.h b/dom/events/AsyncEventDispatcher.h new file mode 100644 index 000000000..094e764b6 --- /dev/null +++ b/dom/events/AsyncEventDispatcher.h @@ -0,0 +1,107 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef mozilla_AsyncEventDispatcher_h_ +#define mozilla_AsyncEventDispatcher_h_ + +#include "mozilla/Attributes.h" +#include "nsCOMPtr.h" +#include "nsIDocument.h" +#include "nsIDOMEvent.h" +#include "nsString.h" +#include "nsThreadUtils.h" + +class nsINode; + +namespace mozilla { + +/** + * Use AsyncEventDispatcher to fire a DOM event that requires safe a stable DOM. + * For example, you may need to fire an event from within layout, but + * want to ensure that the event handler doesn't mutate the DOM at + * the wrong time, in order to avoid resulting instability. + */ + +class AsyncEventDispatcher : public CancelableRunnable +{ +public: + /** + * If aOnlyChromeDispatch is true, the event is dispatched to only + * chrome node. In that case, if aTarget is already a chrome node, + * the event is dispatched to it, otherwise the dispatch path starts + * at the first chrome ancestor of that target. + */ + AsyncEventDispatcher(nsINode* aTarget, const nsAString& aEventType, + bool aBubbles, bool aOnlyChromeDispatch) + : mTarget(aTarget) + , mEventType(aEventType) + , mBubbles(aBubbles) + , mOnlyChromeDispatch(aOnlyChromeDispatch) + { + } + + AsyncEventDispatcher(dom::EventTarget* aTarget, const nsAString& aEventType, + bool aBubbles) + : mTarget(aTarget) + , mEventType(aEventType) + , mBubbles(aBubbles) + { + } + + AsyncEventDispatcher(dom::EventTarget* aTarget, nsIDOMEvent* aEvent) + : mTarget(aTarget) + , mEvent(aEvent) + { + } + + AsyncEventDispatcher(dom::EventTarget* aTarget, WidgetEvent& aEvent); + + NS_IMETHOD Run() override; + nsresult Cancel() override; + nsresult PostDOMEvent(); + void RunDOMEventWhenSafe(); + + nsCOMPtr mTarget; + nsCOMPtr mEvent; + nsString mEventType; + bool mBubbles = false; + bool mOnlyChromeDispatch = false; + bool mCanceled = false; +}; + +class LoadBlockingAsyncEventDispatcher final : public AsyncEventDispatcher +{ +public: + LoadBlockingAsyncEventDispatcher(nsINode* aEventNode, + const nsAString& aEventType, + bool aBubbles, bool aDispatchChromeOnly) + : AsyncEventDispatcher(aEventNode, aEventType, + aBubbles, aDispatchChromeOnly) + , mBlockedDoc(aEventNode->OwnerDoc()) + { + if (mBlockedDoc) { + mBlockedDoc->BlockOnload(); + } + } + + LoadBlockingAsyncEventDispatcher(nsINode* aEventNode, nsIDOMEvent* aEvent) + : AsyncEventDispatcher(aEventNode, aEvent) + , mBlockedDoc(aEventNode->OwnerDoc()) + { + if (mBlockedDoc) { + mBlockedDoc->BlockOnload(); + } + } + + ~LoadBlockingAsyncEventDispatcher(); + +private: + nsCOMPtr mBlockedDoc; +}; + +} // namespace mozilla + +#endif // mozilla_AsyncEventDispatcher_h_ diff --git a/dom/events/BeforeAfterKeyboardEvent.cpp b/dom/events/BeforeAfterKeyboardEvent.cpp new file mode 100644 index 000000000..c94227755 --- /dev/null +++ b/dom/events/BeforeAfterKeyboardEvent.cpp @@ -0,0 +1,92 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "mozilla/dom/BeforeAfterKeyboardEvent.h" +#include "mozilla/TextEvents.h" +#include "prtime.h" + +namespace mozilla { +namespace dom { + +BeforeAfterKeyboardEvent::BeforeAfterKeyboardEvent( + EventTarget* aOwner, + nsPresContext* aPresContext, + InternalBeforeAfterKeyboardEvent* aEvent) + : KeyboardEvent(aOwner, aPresContext, + aEvent ? aEvent : + new InternalBeforeAfterKeyboardEvent(false, + eVoidEvent, + nullptr)) +{ + MOZ_ASSERT(mEvent->mClass == eBeforeAfterKeyboardEventClass, + "event type mismatch eBeforeAfterKeyboardEventClass"); + + if (!aEvent) { + mEventIsInternal = true; + mEvent->mTime = PR_Now(); + } +} + +// static +already_AddRefed +BeforeAfterKeyboardEvent::Constructor( + EventTarget* aOwner, + const nsAString& aType, + const BeforeAfterKeyboardEventInit& aParam) +{ + RefPtr event = + new BeforeAfterKeyboardEvent(aOwner, nullptr, nullptr); + ErrorResult rv; + event->InitWithKeyboardEventInit(aOwner, aType, aParam, rv); + if (NS_WARN_IF(rv.Failed())) { + rv.SuppressException(); + } + + event->mEvent->AsBeforeAfterKeyboardEvent()->mEmbeddedCancelled = + aParam.mEmbeddedCancelled; + + return event.forget(); +} + +// static +already_AddRefed +BeforeAfterKeyboardEvent::Constructor( + const GlobalObject& aGlobal, + const nsAString& aType, + const BeforeAfterKeyboardEventInit& aParam, + ErrorResult& aRv) +{ + nsCOMPtr owner = do_QueryInterface(aGlobal.GetAsSupports()); + return Constructor(owner, aType, aParam); +} + +Nullable +BeforeAfterKeyboardEvent::GetEmbeddedCancelled() +{ + nsAutoString type; + GetType(type); + if (type.EqualsLiteral("mozbrowserafterkeydown") || + type.EqualsLiteral("mozbrowserafterkeyup")) { + return mEvent->AsBeforeAfterKeyboardEvent()->mEmbeddedCancelled; + } + return Nullable(); +} + +} // namespace dom +} // namespace mozilla + +using namespace mozilla; +using namespace mozilla::dom; + +already_AddRefed +NS_NewDOMBeforeAfterKeyboardEvent(EventTarget* aOwner, + nsPresContext* aPresContext, + InternalBeforeAfterKeyboardEvent* aEvent) +{ + RefPtr it = + new BeforeAfterKeyboardEvent(aOwner, aPresContext, aEvent); + return it.forget(); +} diff --git a/dom/events/BeforeAfterKeyboardEvent.h b/dom/events/BeforeAfterKeyboardEvent.h new file mode 100644 index 000000000..5ada2e861 --- /dev/null +++ b/dom/events/BeforeAfterKeyboardEvent.h @@ -0,0 +1,51 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef mozilla_dom_BeforeAfterKeyboardEvent_h_ +#define mozilla_dom_BeforeAfterKeyboardEvent_h_ + +#include "mozilla/dom/KeyboardEvent.h" +#include "mozilla/dom/BeforeAfterKeyboardEventBinding.h" + +namespace mozilla { +namespace dom { + +class BeforeAfterKeyboardEvent : public KeyboardEvent +{ +public: + BeforeAfterKeyboardEvent(EventTarget* aOwner, + nsPresContext* aPresContext, + InternalBeforeAfterKeyboardEvent* aEvent); + + virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle aGivenProto) override + { + return BeforeAfterKeyboardEventBinding::Wrap(aCx, this, aGivenProto); + } + + static already_AddRefed + Constructor(const GlobalObject& aGlobal, + const nsAString& aType, + const BeforeAfterKeyboardEventInit& aParam, + ErrorResult& aRv); + + static already_AddRefed + Constructor(EventTarget* aOwner, const nsAString& aType, + const BeforeAfterKeyboardEventInit& aEventInitDict); + + // This function returns a boolean value when event typs is either + // "mozbrowserafterkeydown" or "mozbrowserafterkeyup". + Nullable GetEmbeddedCancelled(); +}; + +} // namespace dom +} // namespace mozilla + +already_AddRefed +NS_NewDOMBeforeAfterKeyboardEvent(mozilla::dom::EventTarget* aOwner, + nsPresContext* aPresContext, + mozilla::InternalBeforeAfterKeyboardEvent* aEvent); + +#endif // mozilla_dom_BeforeAfterKeyboardEvent_h_ diff --git a/dom/events/BeforeUnloadEvent.cpp b/dom/events/BeforeUnloadEvent.cpp new file mode 100644 index 000000000..efcf8e205 --- /dev/null +++ b/dom/events/BeforeUnloadEvent.cpp @@ -0,0 +1,47 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "mozilla/dom/BeforeUnloadEvent.h" + +namespace mozilla { +namespace dom { + +NS_IMPL_ADDREF_INHERITED(BeforeUnloadEvent, Event) +NS_IMPL_RELEASE_INHERITED(BeforeUnloadEvent, Event) + +NS_INTERFACE_MAP_BEGIN(BeforeUnloadEvent) + NS_INTERFACE_MAP_ENTRY(nsIDOMBeforeUnloadEvent) +NS_INTERFACE_MAP_END_INHERITING(Event) + +NS_IMETHODIMP +BeforeUnloadEvent::SetReturnValue(const nsAString& aReturnValue) +{ + mText = aReturnValue; + return NS_OK; // Don't throw an exception +} + +NS_IMETHODIMP +BeforeUnloadEvent::GetReturnValue(nsAString& aReturnValue) +{ + aReturnValue = mText; + return NS_OK; // Don't throw an exception +} + +} // namespace dom +} // namespace mozilla + +using namespace mozilla; +using namespace mozilla::dom; + +already_AddRefed +NS_NewDOMBeforeUnloadEvent(EventTarget* aOwner, + nsPresContext* aPresContext, + WidgetEvent* aEvent) +{ + RefPtr it = + new BeforeUnloadEvent(aOwner, aPresContext, aEvent); + return it.forget(); +} diff --git a/dom/events/BeforeUnloadEvent.h b/dom/events/BeforeUnloadEvent.h new file mode 100644 index 000000000..781332c6a --- /dev/null +++ b/dom/events/BeforeUnloadEvent.h @@ -0,0 +1,55 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef mozilla_dom_BeforeUnloadEvent_h_ +#define mozilla_dom_BeforeUnloadEvent_h_ + +#include "mozilla/dom/BeforeUnloadEventBinding.h" +#include "mozilla/dom/Event.h" +#include "nsIDOMBeforeUnloadEvent.h" + +namespace mozilla { +namespace dom { + +class BeforeUnloadEvent : public Event, + public nsIDOMBeforeUnloadEvent +{ +public: + BeforeUnloadEvent(EventTarget* aOwner, + nsPresContext* aPresContext, + WidgetEvent* aEvent) + : Event(aOwner, aPresContext, aEvent) + { + } + + virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle aGivenProto) override + { + return BeforeUnloadEventBinding::Wrap(aCx, this, aGivenProto); + } + + NS_DECL_ISUPPORTS_INHERITED + + // Forward to Event + NS_FORWARD_TO_EVENT + + // nsIDOMBeforeUnloadEvent Interface + NS_DECL_NSIDOMBEFOREUNLOADEVENT + +protected: + ~BeforeUnloadEvent() {} + + nsString mText; +}; + +} // namespace dom +} // namespace mozilla + +already_AddRefed +NS_NewDOMBeforeUnloadEvent(mozilla::dom::EventTarget* aOwner, + nsPresContext* aPresContext, + mozilla::WidgetEvent* aEvent); + +#endif // mozilla_dom_BeforeUnloadEvent_h_ diff --git a/dom/events/ClipboardEvent.cpp b/dom/events/ClipboardEvent.cpp new file mode 100644 index 000000000..cff1eb621 --- /dev/null +++ b/dom/events/ClipboardEvent.cpp @@ -0,0 +1,134 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "mozilla/dom/ClipboardEvent.h" +#include "mozilla/ContentEvents.h" +#include "mozilla/dom/DataTransfer.h" +#include "nsIClipboard.h" + +namespace mozilla { +namespace dom { + +ClipboardEvent::ClipboardEvent(EventTarget* aOwner, + nsPresContext* aPresContext, + InternalClipboardEvent* aEvent) + : Event(aOwner, aPresContext, + aEvent ? aEvent : new InternalClipboardEvent(false, eVoidEvent)) +{ + if (aEvent) { + mEventIsInternal = false; + } else { + mEventIsInternal = true; + mEvent->mTime = PR_Now(); + } +} + +NS_INTERFACE_MAP_BEGIN(ClipboardEvent) + NS_INTERFACE_MAP_ENTRY(nsIDOMClipboardEvent) +NS_INTERFACE_MAP_END_INHERITING(Event) + +NS_IMPL_ADDREF_INHERITED(ClipboardEvent, Event) +NS_IMPL_RELEASE_INHERITED(ClipboardEvent, Event) + +nsresult +ClipboardEvent::InitClipboardEvent(const nsAString& aType, + bool aCanBubble, + bool aCancelable, + nsIDOMDataTransfer* aClipboardData) +{ + nsCOMPtr clipboardData = do_QueryInterface(aClipboardData); + // Null clipboardData is OK + + ErrorResult rv; + InitClipboardEvent(aType, aCanBubble, aCancelable, clipboardData); + + return rv.StealNSResult(); +} + +void +ClipboardEvent::InitClipboardEvent(const nsAString& aType, bool aCanBubble, + bool aCancelable, + DataTransfer* aClipboardData) +{ + NS_ENSURE_TRUE_VOID(!mEvent->mFlags.mIsBeingDispatched); + + Event::InitEvent(aType, aCanBubble, aCancelable); + mEvent->AsClipboardEvent()->mClipboardData = aClipboardData; +} + +already_AddRefed +ClipboardEvent::Constructor(const GlobalObject& aGlobal, + const nsAString& aType, + const ClipboardEventInit& aParam, + ErrorResult& aRv) +{ + nsCOMPtr t = do_QueryInterface(aGlobal.GetAsSupports()); + RefPtr e = new ClipboardEvent(t, nullptr, nullptr); + bool trusted = e->Init(t); + + RefPtr clipboardData; + if (e->mEventIsInternal) { + InternalClipboardEvent* event = e->mEvent->AsClipboardEvent(); + if (event) { + // Always create a clipboardData for the copy event. If this is changed to + // support other types of events, make sure that read/write privileges are + // checked properly within DataTransfer. + clipboardData = new DataTransfer(ToSupports(e), eCopy, false, -1); + clipboardData->SetData(aParam.mDataType, aParam.mData, + *aGlobal.GetSubjectPrincipal(), aRv); + NS_ENSURE_TRUE(!aRv.Failed(), nullptr); + } + } + + e->InitClipboardEvent(aType, aParam.mBubbles, aParam.mCancelable, + clipboardData); + e->SetTrusted(trusted); + e->SetComposed(aParam.mComposed); + return e.forget(); +} + +NS_IMETHODIMP +ClipboardEvent::GetClipboardData(nsIDOMDataTransfer** aClipboardData) +{ + NS_IF_ADDREF(*aClipboardData = GetClipboardData()); + return NS_OK; +} + +DataTransfer* +ClipboardEvent::GetClipboardData() +{ + InternalClipboardEvent* event = mEvent->AsClipboardEvent(); + + if (!event->mClipboardData) { + if (mEventIsInternal) { + event->mClipboardData = + new DataTransfer(ToSupports(this), eCopy, false, -1); + } else { + event->mClipboardData = + new DataTransfer(ToSupports(this), event->mMessage, + event->mMessage == ePaste, + nsIClipboard::kGlobalClipboard); + } + } + + return event->mClipboardData; +} + +} // namespace dom +} // namespace mozilla + +using namespace mozilla; +using namespace mozilla::dom; + +already_AddRefed +NS_NewDOMClipboardEvent(EventTarget* aOwner, + nsPresContext* aPresContext, + InternalClipboardEvent* aEvent) +{ + RefPtr it = + new ClipboardEvent(aOwner, aPresContext, aEvent); + return it.forget(); +} diff --git a/dom/events/ClipboardEvent.h b/dom/events/ClipboardEvent.h new file mode 100644 index 000000000..c3dcde8f2 --- /dev/null +++ b/dom/events/ClipboardEvent.h @@ -0,0 +1,63 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef mozilla_dom_ClipboardEvent_h_ +#define mozilla_dom_ClipboardEvent_h_ + +#include "mozilla/EventForwards.h" +#include "mozilla/dom/ClipboardEventBinding.h" +#include "mozilla/dom/Event.h" +#include "nsIDOMClipboardEvent.h" + +namespace mozilla { +namespace dom { +class DataTransfer; + +class ClipboardEvent : public Event, + public nsIDOMClipboardEvent +{ +public: + ClipboardEvent(EventTarget* aOwner, + nsPresContext* aPresContext, + InternalClipboardEvent* aEvent); + + NS_DECL_ISUPPORTS_INHERITED + + NS_DECL_NSIDOMCLIPBOARDEVENT + + // Forward to base class + NS_FORWARD_TO_EVENT + + virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle aGivenProto) override + { + return ClipboardEventBinding::Wrap(aCx, this, aGivenProto); + } + + static already_AddRefed + Constructor(const GlobalObject& aGlobal, + const nsAString& aType, + const ClipboardEventInit& aParam, + ErrorResult& aRv); + + DataTransfer* GetClipboardData(); + + void InitClipboardEvent(const nsAString& aType, bool aCanBubble, + bool aCancelable, + DataTransfer* aClipboardData); + +protected: + ~ClipboardEvent() {} +}; + +} // namespace dom +} // namespace mozilla + +already_AddRefed +NS_NewDOMClipboardEvent(mozilla::dom::EventTarget* aOwner, + nsPresContext* aPresContext, + mozilla::InternalClipboardEvent* aEvent); + +#endif // mozilla_dom_ClipboardEvent_h_ diff --git a/dom/events/CommandEvent.cpp b/dom/events/CommandEvent.cpp new file mode 100644 index 000000000..3506659db --- /dev/null +++ b/dom/events/CommandEvent.cpp @@ -0,0 +1,76 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "mozilla/dom/CommandEvent.h" +#include "mozilla/MiscEvents.h" +#include "prtime.h" + +namespace mozilla { +namespace dom { + +CommandEvent::CommandEvent(EventTarget* aOwner, + nsPresContext* aPresContext, + WidgetCommandEvent* aEvent) + : Event(aOwner, aPresContext, + aEvent ? aEvent : + new WidgetCommandEvent(false, nullptr, nullptr, nullptr)) +{ + mEvent->mTime = PR_Now(); + if (aEvent) { + mEventIsInternal = false; + } else { + mEventIsInternal = true; + } +} + +NS_INTERFACE_MAP_BEGIN(CommandEvent) + NS_INTERFACE_MAP_ENTRY(nsIDOMCommandEvent) +NS_INTERFACE_MAP_END_INHERITING(Event) + +NS_IMPL_ADDREF_INHERITED(CommandEvent, Event) +NS_IMPL_RELEASE_INHERITED(CommandEvent, Event) + +NS_IMETHODIMP +CommandEvent::GetCommand(nsAString& aCommand) +{ + nsIAtom* command = mEvent->AsCommandEvent()->mCommand; + if (command) { + command->ToString(aCommand); + } else { + aCommand.Truncate(); + } + return NS_OK; +} + +NS_IMETHODIMP +CommandEvent::InitCommandEvent(const nsAString& aTypeArg, + bool aCanBubbleArg, + bool aCancelableArg, + const nsAString& aCommand) +{ + NS_ENSURE_TRUE(!mEvent->mFlags.mIsBeingDispatched, NS_OK); + + Event::InitEvent(aTypeArg, aCanBubbleArg, aCancelableArg); + + mEvent->AsCommandEvent()->mCommand = NS_Atomize(aCommand); + return NS_OK; +} + +} // namespace dom +} // namespace mozilla + +using namespace mozilla; +using namespace mozilla::dom; + +already_AddRefed +NS_NewDOMCommandEvent(EventTarget* aOwner, + nsPresContext* aPresContext, + WidgetCommandEvent* aEvent) +{ + RefPtr it = + new CommandEvent(aOwner, aPresContext, aEvent); + return it.forget(); +} diff --git a/dom/events/CommandEvent.h b/dom/events/CommandEvent.h new file mode 100644 index 000000000..cb21c1d49 --- /dev/null +++ b/dom/events/CommandEvent.h @@ -0,0 +1,59 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef mozilla_dom_CommandEvent_h_ +#define mozilla_dom_CommandEvent_h_ + +#include "mozilla/EventForwards.h" +#include "mozilla/dom/CommandEventBinding.h" +#include "mozilla/dom/Event.h" +#include "nsIDOMCommandEvent.h" + +namespace mozilla { +namespace dom { + +class CommandEvent : public Event, + public nsIDOMCommandEvent +{ +public: + CommandEvent(EventTarget* aOwner, + nsPresContext* aPresContext, + WidgetCommandEvent* aEvent); + + NS_DECL_ISUPPORTS_INHERITED + + NS_DECL_NSIDOMCOMMANDEVENT + + // Forward to base class + NS_FORWARD_TO_EVENT + + virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle aGivenProto) override + { + return CommandEventBinding::Wrap(aCx, this, aGivenProto); + } + + void InitCommandEvent(const nsAString& aType, + bool aCanBubble, + bool aCancelable, + const nsAString& aCommand, + ErrorResult& aRv) + { + aRv = InitCommandEvent(aType, aCanBubble, aCancelable, aCommand); + } + +protected: + ~CommandEvent() {} +}; + +} // namespace dom +} // namespace mozilla + +already_AddRefed +NS_NewDOMCommandEvent(mozilla::dom::EventTarget* aOwner, + nsPresContext* aPresContext, + mozilla::WidgetCommandEvent* aEvent); + +#endif // mozilla_dom_CommandEvent_h_ diff --git a/dom/events/CompositionEvent.cpp b/dom/events/CompositionEvent.cpp new file mode 100644 index 000000000..1f3112e70 --- /dev/null +++ b/dom/events/CompositionEvent.cpp @@ -0,0 +1,109 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "mozilla/dom/CompositionEvent.h" +#include "mozilla/TextEvents.h" +#include "prtime.h" + +namespace mozilla { +namespace dom { + +CompositionEvent::CompositionEvent(EventTarget* aOwner, + nsPresContext* aPresContext, + WidgetCompositionEvent* aEvent) + : UIEvent(aOwner, aPresContext, + aEvent ? aEvent : + new WidgetCompositionEvent(false, eVoidEvent, nullptr)) +{ + NS_ASSERTION(mEvent->mClass == eCompositionEventClass, + "event type mismatch"); + + if (aEvent) { + mEventIsInternal = false; + } else { + mEventIsInternal = true; + mEvent->mTime = PR_Now(); + + // XXX compositionstart is cancelable in draft of DOM3 Events. + // However, it doesn't make sence for us, we cannot cancel composition + // when we sends compositionstart event. + mEvent->mFlags.mCancelable = false; + } + + // XXX Do we really need to duplicate the data value? + mData = mEvent->AsCompositionEvent()->mData; + // TODO: Native event should have locale information. +} + +NS_IMPL_ADDREF_INHERITED(CompositionEvent, UIEvent) +NS_IMPL_RELEASE_INHERITED(CompositionEvent, UIEvent) + +NS_INTERFACE_MAP_BEGIN(CompositionEvent) +NS_INTERFACE_MAP_END_INHERITING(UIEvent) + +void +CompositionEvent::GetData(nsAString& aData) const +{ + aData = mData; +} + +void +CompositionEvent::GetLocale(nsAString& aLocale) const +{ + aLocale = mLocale; +} + +void +CompositionEvent::InitCompositionEvent(const nsAString& aType, + bool aCanBubble, + bool aCancelable, + nsGlobalWindow* aView, + const nsAString& aData, + const nsAString& aLocale) +{ + NS_ENSURE_TRUE_VOID(!mEvent->mFlags.mIsBeingDispatched); + + UIEvent::InitUIEvent(aType, aCanBubble, aCancelable, aView, 0); + mData = aData; + mLocale = aLocale; +} + +void +CompositionEvent::GetRanges(TextClauseArray& aRanges) +{ + // If the mRanges is not empty, we return the cached value. + if (!mRanges.IsEmpty()) { + aRanges = mRanges; + return; + } + RefPtr textRangeArray = mEvent->AsCompositionEvent()->mRanges; + if (!textRangeArray) { + return; + } + nsCOMPtr window = do_QueryInterface(mOwner); + const TextRange* targetRange = textRangeArray->GetTargetClause(); + for (size_t i = 0; i < textRangeArray->Length(); i++) { + const TextRange& range = textRangeArray->ElementAt(i); + mRanges.AppendElement(new TextClause(window, range, targetRange)); + } + aRanges = mRanges; +} + +} // namespace dom +} // namespace mozilla + +using namespace mozilla; +using namespace mozilla::dom; + +already_AddRefed +NS_NewDOMCompositionEvent(EventTarget* aOwner, + nsPresContext* aPresContext, + WidgetCompositionEvent* aEvent) +{ + RefPtr event = + new CompositionEvent(aOwner, aPresContext, aEvent); + return event.forget(); +} diff --git a/dom/events/CompositionEvent.h b/dom/events/CompositionEvent.h new file mode 100644 index 000000000..ed2316caa --- /dev/null +++ b/dom/events/CompositionEvent.h @@ -0,0 +1,62 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef mozilla_dom_CompositionEvent_h_ +#define mozilla_dom_CompositionEvent_h_ + +#include "mozilla/dom/CompositionEventBinding.h" +#include "mozilla/dom/TextClause.h" +#include "mozilla/dom/TypedArray.h" +#include "mozilla/dom/UIEvent.h" +#include "mozilla/EventForwards.h" + +namespace mozilla { +namespace dom { + +typedef nsTArray> TextClauseArray; + +class CompositionEvent : public UIEvent +{ +public: + CompositionEvent(EventTarget* aOwner, + nsPresContext* aPresContext, + WidgetCompositionEvent* aEvent); + + NS_DECL_ISUPPORTS_INHERITED + NS_FORWARD_TO_UIEVENT + + virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle aGivenProto) override + { + return CompositionEventBinding::Wrap(aCx, this, aGivenProto); + } + + void InitCompositionEvent(const nsAString& aType, + bool aCanBubble, + bool aCancelable, + nsGlobalWindow* aView, + const nsAString& aData, + const nsAString& aLocale); + void GetData(nsAString&) const; + void GetLocale(nsAString&) const; + void GetRanges(TextClauseArray& aRanges); + +protected: + ~CompositionEvent() {} + + nsString mData; + nsString mLocale; + TextClauseArray mRanges; +}; + +} // namespace dom +} // namespace mozilla + +already_AddRefed +NS_NewDOMCompositionEvent(mozilla::dom::EventTarget* aOwner, + nsPresContext* aPresContext, + mozilla::WidgetCompositionEvent* aEvent); + +#endif // mozilla_dom_CompositionEvent_h_ diff --git a/dom/events/ContentEventHandler.cpp b/dom/events/ContentEventHandler.cpp new file mode 100644 index 000000000..935ade23f --- /dev/null +++ b/dom/events/ContentEventHandler.cpp @@ -0,0 +1,3080 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "ContentEventHandler.h" +#include "mozilla/IMEStateManager.h" +#include "mozilla/TextComposition.h" +#include "mozilla/TextEvents.h" +#include "mozilla/dom/Element.h" +#include "mozilla/dom/HTMLUnknownElement.h" +#include "mozilla/dom/Selection.h" +#include "nsCaret.h" +#include "nsCOMPtr.h" +#include "nsContentUtils.h" +#include "nsCopySupport.h" +#include "nsFocusManager.h" +#include "nsFontMetrics.h" +#include "nsFrameSelection.h" +#include "nsIContentIterator.h" +#include "nsIPresShell.h" +#include "nsISelection.h" +#include "nsIFrame.h" +#include "nsIObjectFrame.h" +#include "nsLayoutUtils.h" +#include "nsPresContext.h" +#include "nsQueryObject.h" +#include "nsRange.h" +#include "nsTextFragment.h" +#include "nsTextFrame.h" +#include "nsView.h" + +#include + +namespace mozilla { + +using namespace dom; +using namespace widget; + +/******************************************************************/ +/* ContentEventHandler */ +/******************************************************************/ + +// NOTE +// +// ContentEventHandler *creates* ranges as following rules: +// 1. Start of range: +// 1.1. Cases: [textNode or text[Node or textNode[ +// When text node is start of a range, start node is the text node and +// start offset is any number between 0 and the length of the text. +// 1.2. Case: [: +// When start of an element node is start of a range, start node is +// parent of the element and start offset is the element's index in the +// parent. +// 1.3. Case: [ +// When after an empty element node is start of a range, start node is +// parent of the element and start offset is the element's index in the +// parent + 1. +// 1.4. Case: [ +// When start of a non-empty element is start of a range, start node is +// the element and start offset is 0. +// 1.5. Case: [ +// When start of a range is 0 and there are no nodes causing text, +// start node is the root node and start offset is 0. +// 1.6. Case: [ +// When start of a range is out of bounds, start node is the root node +// and start offset is number of the children. +// 2. End of range: +// 2.1. Cases: ]textNode or text]Node or textNode] +// When a text node is end of a range, end node is the text node and +// end offset is any number between 0 and the length of the text. +// 2.2. Case: ] +// When before an element node (meaning before the open tag of the +// element) is end of a range, end node is previous node causing text. +// Note that this case shouldn't be handled directly. If rule 2.1 and +// 2.3 are handled correctly, the loop with nsContentIterator shouldn't +// reach the element node since the loop should've finished already at +// handling the last node which caused some text. +// 2.3. Case: ] +// When a line break is caused before a non-empty element node and it's +// end of a range, end node is the element and end offset is 0. +// (i.e., including open tag of the element) +// 2.4. Cases: ] +// When after an empty element node is end of a range, end node is +// parent of the element node and end offset is the element's index in +// the parent + 1. (i.e., including close tag of the element or empty +// element) +// 2.5. Case: ] +// When end of a range is out of bounds, end node is the root node and +// end offset is number of the children. +// +// ContentEventHandler *treats* ranges as following additional rules: +// 1. When the start node is an element node which doesn't have children, +// it includes a line break caused before itself (i.e., includes its open +// tag). For example, if start position is {
, 0 }, the line break +// caused by
should be included into the flatten text. +// 2. When the end node is an element node which doesn't have children, +// it includes the end (i.e., includes its close tag except empty element). +// Although, currently, any close tags don't cause line break, this also +// includes its open tag. For example, if end position is {
, 0 }, the +// line break caused by the
should be included into the flatten text. + +ContentEventHandler::ContentEventHandler(nsPresContext* aPresContext) + : mPresContext(aPresContext) + , mPresShell(aPresContext->GetPresShell()) + , mSelection(nullptr) + , mFirstSelectedRange(nullptr) + , mRootContent(nullptr) +{ +} + +nsresult +ContentEventHandler::InitBasic() +{ + NS_ENSURE_TRUE(mPresShell, NS_ERROR_NOT_AVAILABLE); + + // If text frame which has overflowing selection underline is dirty, + // we need to flush the pending reflow here. + mPresShell->FlushPendingNotifications(Flush_Layout); + + // Flushing notifications can cause mPresShell to be destroyed (bug 577963). + NS_ENSURE_TRUE(!mPresShell->IsDestroying(), NS_ERROR_FAILURE); + + return NS_OK; +} + +nsresult +ContentEventHandler::InitRootContent(Selection* aNormalSelection) +{ + MOZ_ASSERT(aNormalSelection); + + // Root content should be computed with normal selection because normal + // selection is typically has at least one range but the other selections + // not so. If there is a range, computing its root is easy, but if + // there are no ranges, we need to use ancestor limit instead. + MOZ_ASSERT(aNormalSelection->Type() == SelectionType::eNormal); + + if (!aNormalSelection->RangeCount()) { + // If there is no selection range, we should compute the selection root + // from ancestor limiter or root content of the document. + nsresult rv = + aNormalSelection->GetAncestorLimiter(getter_AddRefs(mRootContent)); + if (NS_WARN_IF(NS_FAILED(rv))) { + return NS_ERROR_FAILURE; + } + if (!mRootContent) { + mRootContent = mPresShell->GetDocument()->GetRootElement(); + if (NS_WARN_IF(!mRootContent)) { + return NS_ERROR_NOT_AVAILABLE; + } + } + return NS_OK; + } + + RefPtr range(aNormalSelection->GetRangeAt(0)); + if (NS_WARN_IF(!range)) { + return NS_ERROR_UNEXPECTED; + } + + // If there is a selection, we should retrieve the selection root from + // the range since when the window is inactivated, the ancestor limiter + // of selection was cleared by blur event handler of EditorBase but the + // selection range still keeps storing the nodes. If the active element of + // the deactive window is or + + + label (label invisible) + + + + label (control invisible) + + + + select + + + + + + object + + an object + + + + a without href + + an object + + + + disabled button + + + + + + disabled input + + + + + + hidden input + + disabled + + + + disabled select + + + + + + disabled textarea + + + + + + scrollable div(focusable) + +
+ The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy + + dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the + + lazy dog. The quick brown fox jumps over the lazy dog. + The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy + + dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the + + lazy dog. The quick brown fox jumps over the lazy dog. + The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy + + dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the + + lazy dog. The quick brown fox jumps over the lazy dog. +
+ + + + contenteditable div(focusable) + +
+ Test text..... +
+ + + + +
+
    +
      + + + diff --git a/dom/events/test/test_bug412567.html b/dom/events/test/test_bug412567.html new file mode 100644 index 000000000..08352366b --- /dev/null +++ b/dom/events/test/test_bug412567.html @@ -0,0 +1,47 @@ + + + + + Test for Bug 412567 + + + + +
      Mozilla Bug 412567 +

      + +
      +
      +
      + + + diff --git a/dom/events/test/test_bug415498.xul b/dom/events/test/test_bug415498.xul new file mode 100644 index 000000000..009431cb1 --- /dev/null +++ b/dom/events/test/test_bug415498.xul @@ -0,0 +1,106 @@ + + + + + + + + + + Mozilla Bug 415498 + +

      + +
      +  
      +  
      + + + + +
      diff --git a/dom/events/test/test_bug418986-3.html b/dom/events/test/test_bug418986-3.html new file mode 100644 index 000000000..a92b1e0f5 --- /dev/null +++ b/dom/events/test/test_bug418986-3.html @@ -0,0 +1,25 @@ + + + + + + Test 3/3 for Bug 418986 - Resist fingerprinting by preventing exposure of screen and system info + + + + + +Bug 418986 +

      +
      
      +
      +
      +
      +
      diff --git a/dom/events/test/test_bug418986-3.xul b/dom/events/test/test_bug418986-3.xul
      new file mode 100644
      index 000000000..574cda0ce
      --- /dev/null
      +++ b/dom/events/test/test_bug418986-3.xul
      @@ -0,0 +1,27 @@
      +
      +
      +
      +
      +
      +
      +        
      +  
      +
      +
      +
      +Mozilla Bug 418986
      +
      +
      +
      +  
      +
      +
      diff --git a/dom/events/test/test_bug422132.html b/dom/events/test/test_bug422132.html
      new file mode 100644
      index 000000000..bceeb79e8
      --- /dev/null
      +++ b/dom/events/test/test_bug422132.html
      @@ -0,0 +1,124 @@
      +
      +
      +
      +
      +  Test for Bug 422132
      +  
      +  
      +  
      +  
      +  
      +
      +
      +Mozilla Bug 422132
      +

      +
      +
      +
      + +
      +
      +
      + + diff --git a/dom/events/test/test_bug426082.html b/dom/events/test/test_bug426082.html new file mode 100644 index 000000000..d07559413 --- /dev/null +++ b/dom/events/test/test_bug426082.html @@ -0,0 +1,30 @@ + + + + + Test for Bug 426082 + + + + + + + +
      +
      +
      + + + diff --git a/dom/events/test/test_bug427537.html b/dom/events/test/test_bug427537.html new file mode 100644 index 000000000..060581f2f --- /dev/null +++ b/dom/events/test/test_bug427537.html @@ -0,0 +1,61 @@ + + + + + Test for Bug 427537 + + + + +Mozilla Bug 427537 +

      + +
      +
      +
      + + diff --git a/dom/events/test/test_bug428988.html b/dom/events/test/test_bug428988.html new file mode 100644 index 000000000..97a0069fd --- /dev/null +++ b/dom/events/test/test_bug428988.html @@ -0,0 +1,44 @@ + + + + + Test for Bug 428988 + + + + +Mozilla Bug 428988 +

      + +
      +
      +
      +testTarget + + diff --git a/dom/events/test/test_bug432698.html b/dom/events/test/test_bug432698.html new file mode 100644 index 000000000..335890b0a --- /dev/null +++ b/dom/events/test/test_bug432698.html @@ -0,0 +1,223 @@ + + + + + Test for Bug 432698 + + + + + +Mozilla Bug 432698 +

      + +
      +
      +
      +
      +
      foo
      +
      +
      +
      foo
      +
      +
      + +
      + +
      + + diff --git a/dom/events/test/test_bug443985.html b/dom/events/test/test_bug443985.html new file mode 100644 index 000000000..0ed4138be --- /dev/null +++ b/dom/events/test/test_bug443985.html @@ -0,0 +1,76 @@ + + + + + Test for Bug 443985 + + + + +Mozilla Bug 443985 +

      + +
      +
      +
      +
      +
      + testTarget +
      + + + diff --git a/dom/events/test/test_bug447736.html b/dom/events/test/test_bug447736.html new file mode 100644 index 000000000..fc696d5e9 --- /dev/null +++ b/dom/events/test/test_bug447736.html @@ -0,0 +1,47 @@ + + + + + Test for Bug 447736 + + + + +Mozilla Bug 447736 +

      + +
      +
      +
      +
      + + + diff --git a/dom/events/test/test_bug448602.html b/dom/events/test/test_bug448602.html new file mode 100644 index 000000000..0d2d8b580 --- /dev/null +++ b/dom/events/test/test_bug448602.html @@ -0,0 +1,220 @@ + + + + + Test for Bug 448602 + + + + +Mozilla Bug 448602 +

      + +
                
      +
      +
      +
      +
      +
      + Test +
      +
      +
      + + diff --git a/dom/events/test/test_bug450876.html b/dom/events/test/test_bug450876.html new file mode 100644 index 000000000..79efeda28 --- /dev/null +++ b/dom/events/test/test_bug450876.html @@ -0,0 +1,41 @@ + + + + Test for Bug 450876 - Crash [@ nsEventStateManager::GetNextTabbableMapArea] with img usemap and tabindex + + + + +Mozilla Bug 450876 +

      link to focus from

      + + +
      +
      +
      + + + diff --git a/dom/events/test/test_bug456273.html b/dom/events/test/test_bug456273.html new file mode 100644 index 000000000..ac7bd2bce --- /dev/null +++ b/dom/events/test/test_bug456273.html @@ -0,0 +1,41 @@ + + + + + Test for Bug 456273 + + + + +Mozilla Bug 456273 +

      PASS if Firefox does not crash.

      + + +
      text
      + +
      +
      +
      + + diff --git a/dom/events/test/test_bug457672.html b/dom/events/test/test_bug457672.html new file mode 100644 index 000000000..b3dc5bcb3 --- /dev/null +++ b/dom/events/test/test_bug457672.html @@ -0,0 +1,55 @@ + + + + + Test for Bug 457672 + + + + +Mozilla Bug 457672 +

      + +
      +
      +
      +
      +
      + + diff --git a/dom/events/test/test_bug489671.html b/dom/events/test/test_bug489671.html new file mode 100644 index 000000000..4def80cba --- /dev/null +++ b/dom/events/test/test_bug489671.html @@ -0,0 +1,55 @@ + + + + + + Test for Bug 489671 + + + + +Mozilla Bug 489671 +

      + + + diff --git a/dom/events/test/test_bug493251.html b/dom/events/test/test_bug493251.html new file mode 100644 index 000000000..d23045dee --- /dev/null +++ b/dom/events/test/test_bug493251.html @@ -0,0 +1,194 @@ + + + + + Test for Bug 493251 + + + + +Mozilla Bug 493251 +

      +

      + +
      +
      +
      + + diff --git a/dom/events/test/test_bug502818.html b/dom/events/test/test_bug502818.html new file mode 100644 index 000000000..699b312f3 --- /dev/null +++ b/dom/events/test/test_bug502818.html @@ -0,0 +1,54 @@ + + + + + Test for Bug 502818 + + + + +Mozilla Bug 502818 +

      + +
      +
      +
      + + diff --git a/dom/events/test/test_bug508479.html b/dom/events/test/test_bug508479.html new file mode 100644 index 000000000..9cf9e22b8 --- /dev/null +++ b/dom/events/test/test_bug508479.html @@ -0,0 +1,103 @@ + + + Tests for the dragstart event + + + + + + + + + + + + + + diff --git a/dom/events/test/test_bug517851.html b/dom/events/test/test_bug517851.html new file mode 100644 index 000000000..895c867a1 --- /dev/null +++ b/dom/events/test/test_bug517851.html @@ -0,0 +1,112 @@ + + + + + Test for Bug 517851 + + + + +Mozilla Bug 517851 +

      + +
      +
      +
      + + diff --git a/dom/events/test/test_bug524674.xul b/dom/events/test/test_bug524674.xul new file mode 100644 index 000000000..463d9269b --- /dev/null +++ b/dom/events/test/test_bug524674.xul @@ -0,0 +1,147 @@ + + + + + + + diff --git a/dom/events/test/test_bug534833.html b/dom/events/test/test_bug534833.html new file mode 100644 index 000000000..9d9a2eb1d --- /dev/null +++ b/dom/events/test/test_bug534833.html @@ -0,0 +1,157 @@ + + + + + Test for Bug 534833 + + + + + +Mozilla Bug 534833 +

      + +
      +
      +
      +
      +
      + +
      +
      + +
      click before or after |
      +
      click before or after |
      + + diff --git a/dom/events/test/test_bug545268.html b/dom/events/test/test_bug545268.html new file mode 100644 index 000000000..c2ad64780 --- /dev/null +++ b/dom/events/test/test_bug545268.html @@ -0,0 +1,141 @@ + + + + + Test for Bug 545268 + + + + +Mozilla Bug 545268 +

      +

      + +
      +
      +
      + + diff --git a/dom/events/test/test_bug547996-1.html b/dom/events/test/test_bug547996-1.html new file mode 100644 index 000000000..11944ec5d --- /dev/null +++ b/dom/events/test/test_bug547996-1.html @@ -0,0 +1,87 @@ + + + + + Test for Bug 547996 + + + + +Mozilla Bug 547996 +

      + +
      +
      +
      +testTarget + + diff --git a/dom/events/test/test_bug547996-2.xhtml b/dom/events/test/test_bug547996-2.xhtml new file mode 100644 index 000000000..52ee9a06e --- /dev/null +++ b/dom/events/test/test_bug547996-2.xhtml @@ -0,0 +1,125 @@ + + + + + Test for Bug 547996 + + + + + +Mozilla Bug 547996 +

      + +
      +
      +
      +Checkbox target + + +XUL Button +Anchor +Radio Target 1 +Radio Target 2 + + diff --git a/dom/events/test/test_bug556493.html b/dom/events/test/test_bug556493.html new file mode 100644 index 000000000..3a86ada65 --- /dev/null +++ b/dom/events/test/test_bug556493.html @@ -0,0 +1,74 @@ + + + + + Test for Bug 556493 + + + + + + +Mozilla Bug 556493 +

      + +
      +
      +
      +
      +Test divs -- +
      t
      t
      +-- +
      + + diff --git a/dom/events/test/test_bug563329.html b/dom/events/test/test_bug563329.html new file mode 100644 index 000000000..847c5b2a8 --- /dev/null +++ b/dom/events/test/test_bug563329.html @@ -0,0 +1,82 @@ + + + + + Test for Bug 563329 + + + + + +Mozilla Bug 563329 +

      + +
      +
      +
      +testTarget + + diff --git a/dom/events/test/test_bug574663.html b/dom/events/test/test_bug574663.html new file mode 100644 index 000000000..23c572590 --- /dev/null +++ b/dom/events/test/test_bug574663.html @@ -0,0 +1,170 @@ + + + + + Test for Bug 574663 + + + + + +Mozilla Bug 574663 +

      + +
      +
      +
      + + + diff --git a/dom/events/test/test_bug586961.xul b/dom/events/test/test_bug586961.xul new file mode 100644 index 000000000..43ad5fb9b --- /dev/null +++ b/dom/events/test/test_bug586961.xul @@ -0,0 +1,46 @@ + + + + + + + + + diff --git a/dom/events/test/test_bug591249.xul b/dom/events/test/test_bug591249.xul new file mode 100644 index 000000000..d57c02e66 --- /dev/null +++ b/dom/events/test/test_bug591249.xul @@ -0,0 +1,75 @@ + + + + + + + + + diff --git a/dom/events/test/test_bug591815.html b/dom/events/test/test_bug591815.html new file mode 100644 index 000000000..f7e5c5050 --- /dev/null +++ b/dom/events/test/test_bug591815.html @@ -0,0 +1,68 @@ + + + + + Test for Bug 591815 + + + + + +Mozilla Bug 591815 +

      +
      +
      + + +
      +
      +
      +
      +
      +
      + + + diff --git a/dom/events/test/test_bug593959.html b/dom/events/test/test_bug593959.html new file mode 100644 index 000000000..933616744 --- /dev/null +++ b/dom/events/test/test_bug593959.html @@ -0,0 +1,60 @@ + + + + + Test for Bug 593959 + + + + + + +Mozilla Bug 593959 +

      + +
      +
      +
      + + + diff --git a/dom/events/test/test_bug602962.xul b/dom/events/test/test_bug602962.xul new file mode 100644 index 000000000..cc500d132 --- /dev/null +++ b/dom/events/test/test_bug602962.xul @@ -0,0 +1,88 @@ + + + + + + + + + diff --git a/dom/events/test/test_bug603008.html b/dom/events/test/test_bug603008.html new file mode 100644 index 000000000..786f68412 --- /dev/null +++ b/dom/events/test/test_bug603008.html @@ -0,0 +1,556 @@ + + + + + Test for Bug 603008 + + + + +Mozilla Bug 603008 +

      + +
      +
      +
      +
      + testTarget + testTarget + +
      + + diff --git a/dom/events/test/test_bug605242.html b/dom/events/test/test_bug605242.html new file mode 100644 index 000000000..f8f9354d5 --- /dev/null +++ b/dom/events/test/test_bug605242.html @@ -0,0 +1,58 @@ + + + + + Test for Bug 605242 + + + + +Mozilla Bug 605242 +

      + +
      +
      +
      + +
      +
      + + diff --git a/dom/events/test/test_bug607464.html b/dom/events/test/test_bug607464.html new file mode 100644 index 000000000..ac8076bfd --- /dev/null +++ b/dom/events/test/test_bug607464.html @@ -0,0 +1,87 @@ + + + + + Test for Bug 607464 + + + + + + +Mozilla Bug 607464 +

      + +
      +
      +
      + + + diff --git a/dom/events/test/test_bug613634.html b/dom/events/test/test_bug613634.html new file mode 100644 index 000000000..540df5c90 --- /dev/null +++ b/dom/events/test/test_bug613634.html @@ -0,0 +1,90 @@ + + + + + Test for Bug 613634 + + + + +Mozilla Bug 613634 +

      + +
      +
      +
      + + diff --git a/dom/events/test/test_bug615597.html b/dom/events/test/test_bug615597.html new file mode 100644 index 000000000..4f0eaeecf --- /dev/null +++ b/dom/events/test/test_bug615597.html @@ -0,0 +1,39 @@ + + + + + Test for Bug 615597 + + + + +Mozilla Bug 615597 +

      + +
      +
      +
      + + diff --git a/dom/events/test/test_bug617528.xul b/dom/events/test/test_bug617528.xul new file mode 100644 index 000000000..83038b36b --- /dev/null +++ b/dom/events/test/test_bug617528.xul @@ -0,0 +1,95 @@ + + + + + + + + diff --git a/dom/events/test/test_bug624127.html b/dom/events/test/test_bug624127.html new file mode 100644 index 000000000..269e1f62d --- /dev/null +++ b/dom/events/test/test_bug624127.html @@ -0,0 +1,35 @@ + + + Test for Bug 624127 + + + + + +

      + +
      +
      +
      + +

      Normal text

      + +

      Normal text

      + + + diff --git a/dom/events/test/test_bug635465.html b/dom/events/test/test_bug635465.html new file mode 100644 index 000000000..7bd0db2be --- /dev/null +++ b/dom/events/test/test_bug635465.html @@ -0,0 +1,90 @@ + + + + + + Test for Bug 635465 + + + + + + +Mozilla Bug 635465 +
      + +
      + +
      +
      +
      + + diff --git a/dom/events/test/test_bug641477.html b/dom/events/test/test_bug641477.html new file mode 100644 index 000000000..2fdc43a5c --- /dev/null +++ b/dom/events/test/test_bug641477.html @@ -0,0 +1,37 @@ + + + + + Test for Bug 641477 + + + + +Mozilla Bug 641477 +

      + +
      +
      +
      + + diff --git a/dom/events/test/test_bug648573.html b/dom/events/test/test_bug648573.html new file mode 100644 index 000000000..0a4a9e7e3 --- /dev/null +++ b/dom/events/test/test_bug648573.html @@ -0,0 +1,109 @@ + + + + + + + Test for Bug 648573 + + + + + Mozilla Bug 648573 +

      + +
      +      
      +    
      + + diff --git a/dom/events/test/test_bug650493.html b/dom/events/test/test_bug650493.html new file mode 100644 index 000000000..60a32d56e --- /dev/null +++ b/dom/events/test/test_bug650493.html @@ -0,0 +1,215 @@ + + + + + Test for Bug 650493 + + + + +Mozilla Bug 650493 +

      + +
      +
      +
      +
      +
      diff --git a/dom/events/test/test_bug656379-1.html b/dom/events/test/test_bug656379-1.html
      new file mode 100644
      index 000000000..bc92189e2
      --- /dev/null
      +++ b/dom/events/test/test_bug656379-1.html
      @@ -0,0 +1,30 @@
      +
      +
      +
      +
      +  Test for Bug 656379
      +  
      +  
      +  
      +  
      +
      +
      +
      +
      +
      +
      + + + diff --git a/dom/events/test/test_bug656379-2.html b/dom/events/test/test_bug656379-2.html new file mode 100644 index 000000000..d53abce41 --- /dev/null +++ b/dom/events/test/test_bug656379-2.html @@ -0,0 +1,83 @@ + + + + + Test for Bug 656379 + + + + + + +Mozilla Bug 656379 +

      + + + +

      + +
      +
      +
      + + diff --git a/dom/events/test/test_bug656954.html b/dom/events/test/test_bug656954.html new file mode 100644 index 000000000..c4fd29e04 --- /dev/null +++ b/dom/events/test/test_bug656954.html @@ -0,0 +1,42 @@ + + + + + Test for Bug 656954 + + + + +Mozilla Bug 656954 +

      + +
      +
      +
      + + diff --git a/dom/events/test/test_bug659071.html b/dom/events/test/test_bug659071.html new file mode 100644 index 000000000..9a40c525c --- /dev/null +++ b/dom/events/test/test_bug659071.html @@ -0,0 +1,39 @@ + + + + + Test for Bug 659071 + + + + + + +Mozilla Bug 659071 +

      + +
      +
      +
      + + diff --git a/dom/events/test/test_bug659350.html b/dom/events/test/test_bug659350.html new file mode 100644 index 000000000..0d566c0b1 --- /dev/null +++ b/dom/events/test/test_bug659350.html @@ -0,0 +1,111 @@ + + + + + Test for Bug 659350 + + + + +Mozilla Bug 659350 +

      + +
      +
      +
      + + diff --git a/dom/events/test/test_bug662678.html b/dom/events/test/test_bug662678.html new file mode 100644 index 000000000..d543f9b96 --- /dev/null +++ b/dom/events/test/test_bug662678.html @@ -0,0 +1,153 @@ + + + + + Test for Bug 662678 + + + + +Mozilla Bug 662678 +

      + +
      +
      +
      + + diff --git a/dom/events/test/test_bug667612.html b/dom/events/test/test_bug667612.html new file mode 100644 index 000000000..b5d4fe88b --- /dev/null +++ b/dom/events/test/test_bug667612.html @@ -0,0 +1,39 @@ + + + + + Test for Bug 667612 + + + + + +Mozilla Bug 667612 +

      + +
      +
      +
      + + diff --git a/dom/events/test/test_bug667919-1.html b/dom/events/test/test_bug667919-1.html new file mode 100644 index 000000000..56643ae01 --- /dev/null +++ b/dom/events/test/test_bug667919-1.html @@ -0,0 +1,41 @@ + + + + + Test for Bug 615597 + + + + +Mozilla Bug 615597 +

      + +
      +
      +
      + + diff --git a/dom/events/test/test_bug679494.xul b/dom/events/test/test_bug679494.xul new file mode 100644 index 000000000..0239fbb02 --- /dev/null +++ b/dom/events/test/test_bug679494.xul @@ -0,0 +1,36 @@ + + + + + + + + + diff --git a/dom/events/test/test_bug684208.html b/dom/events/test/test_bug684208.html new file mode 100644 index 000000000..f8aa2f575 --- /dev/null +++ b/dom/events/test/test_bug684208.html @@ -0,0 +1,80 @@ + + + + + + Test for Bug 684208 + + + + + +Mozilla Bug 684208 +

      + +
      +
      + + diff --git a/dom/events/test/test_bug687787.html b/dom/events/test/test_bug687787.html new file mode 100644 index 000000000..137e2a1eb --- /dev/null +++ b/dom/events/test/test_bug687787.html @@ -0,0 +1,617 @@ + + + + + Test for Bug 687787 + + + + + +Mozilla Bug 687787 +

      + + +
      +
      +
      + + diff --git a/dom/events/test/test_bug689564.html b/dom/events/test/test_bug689564.html new file mode 100644 index 000000000..e6b4f3764 --- /dev/null +++ b/dom/events/test/test_bug689564.html @@ -0,0 +1,65 @@ + + + + + Test for Bug 689564 + + + + +Mozilla Bug 689564 +

      + +
      +
      +
      + + diff --git a/dom/events/test/test_bug698929.html b/dom/events/test/test_bug698929.html new file mode 100644 index 000000000..03c2ff081 --- /dev/null +++ b/dom/events/test/test_bug698929.html @@ -0,0 +1,47 @@ + + + + + Test for Bug 698929 + + + + +Mozilla Bug 698929 +

      + +
      +
      +
      + + diff --git a/dom/events/test/test_bug704423.html b/dom/events/test/test_bug704423.html new file mode 100644 index 000000000..282745477 --- /dev/null +++ b/dom/events/test/test_bug704423.html @@ -0,0 +1,40 @@ + + + + + Test for Bug 704423 + + + + + +Mozilla Bug 704423 +

      +
      +
      +
      + + diff --git a/dom/events/test/test_bug741666.html b/dom/events/test/test_bug741666.html new file mode 100644 index 000000000..41d6c8321 --- /dev/null +++ b/dom/events/test/test_bug741666.html @@ -0,0 +1,176 @@ + + + + + Test for Bug 741666 + + + + +Mozilla Bug 741666 +

      + +
      +
      +
      +
      + testTarget +
      + + diff --git a/dom/events/test/test_bug742376.html b/dom/events/test/test_bug742376.html new file mode 100644 index 000000000..7672ea014 --- /dev/null +++ b/dom/events/test/test_bug742376.html @@ -0,0 +1,74 @@ + + + + + Test for Bug 742376 + + + + + + +Mozilla Bug 742376 + +
      + + + diff --git a/dom/events/test/test_bug812744.html b/dom/events/test/test_bug812744.html new file mode 100644 index 000000000..aac2435f7 --- /dev/null +++ b/dom/events/test/test_bug812744.html @@ -0,0 +1,38 @@ + + + + + + Test for Bug 812744 + + + + +Mozilla Bug 812744 +

      + +
      +
      +
      + + diff --git a/dom/events/test/test_bug822898.html b/dom/events/test/test_bug822898.html new file mode 100644 index 000000000..2ac0a6572 --- /dev/null +++ b/dom/events/test/test_bug822898.html @@ -0,0 +1,350 @@ + + + + + Test for Bug 822898 + + + + +Mozilla Bug 822898 +

      + +
      +
      +
      +
      + testTarget +
      + + diff --git a/dom/events/test/test_bug855741.html b/dom/events/test/test_bug855741.html new file mode 100644 index 000000000..d7707e220 --- /dev/null +++ b/dom/events/test/test_bug855741.html @@ -0,0 +1,90 @@ + + + + + Test for Bug 855741 + + + + + +

      + + +
      +
      +
      + + diff --git a/dom/events/test/test_bug864040.html b/dom/events/test/test_bug864040.html new file mode 100644 index 000000000..774e1e3ca --- /dev/null +++ b/dom/events/test/test_bug864040.html @@ -0,0 +1,87 @@ + + + + + + Test for Bug 864040 + + + + + + +Mozilla Bug 864040 +
      + +
      +
      + +
      +  
      +
      + + diff --git a/dom/events/test/test_bug924087.html b/dom/events/test/test_bug924087.html new file mode 100644 index 000000000..59fc81f5d --- /dev/null +++ b/dom/events/test/test_bug924087.html @@ -0,0 +1,45 @@ + + + + + Test for Bug 924087 + + + + + + +non-editable link + + +
      +
      +
      + + + diff --git a/dom/events/test/test_bug930374-chrome.html b/dom/events/test/test_bug930374-chrome.html new file mode 100644 index 000000000..291a98ca1 --- /dev/null +++ b/dom/events/test/test_bug930374-chrome.html @@ -0,0 +1,58 @@ + + + + + + Test for Bug 930374 + + + + + +Mozilla Bug 930374 +
      + +
      + +
      +  
      +
      + + diff --git a/dom/events/test/test_bug930374-content.html b/dom/events/test/test_bug930374-content.html new file mode 100644 index 000000000..73654bf04 --- /dev/null +++ b/dom/events/test/test_bug930374-content.html @@ -0,0 +1,72 @@ + + + + + + Test for Bug 930374 + + + + + +Mozilla Bug 930374 +
      + +
      + +
      +  
      +
      + + diff --git a/dom/events/test/test_bug944011.html b/dom/events/test/test_bug944011.html new file mode 100644 index 000000000..eab74ee32 --- /dev/null +++ b/dom/events/test/test_bug944011.html @@ -0,0 +1,52 @@ + + + + + + Test for Bug 944011 + + + + + +Mozilla Bug 944011 +

      + +
      +
      + + diff --git a/dom/events/test/test_bug944847.html b/dom/events/test/test_bug944847.html new file mode 100644 index 000000000..105c0d5c9 --- /dev/null +++ b/dom/events/test/test_bug944847.html @@ -0,0 +1,42 @@ + + + + + + Test for Bug 944847 + + + + + +Mozilla Bug 944847 +

      + +
      +
      + + diff --git a/dom/events/test/test_bug946632.html b/dom/events/test/test_bug946632.html new file mode 100644 index 000000000..3ef7b815f --- /dev/null +++ b/dom/events/test/test_bug946632.html @@ -0,0 +1,161 @@ + + + + + Test for bug 946632 - propagate mouse-wheel vertical scroll events to container + + + + + + + +Mozilla Bug 946632 +

      +
      + + x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +
      + +
      +
      +
      + + diff --git a/dom/events/test/test_bug967796.html b/dom/events/test/test_bug967796.html new file mode 100644 index 000000000..cf1996a45 --- /dev/null +++ b/dom/events/test/test_bug967796.html @@ -0,0 +1,235 @@ + + + + + Test for Bug 967796 + + + + + +Mozilla Bug 967796 +

      + +
      +
      +
      +
      +
      foo
      +
      +
      +
      foo
      +
      +
      + +
      + +
      + + diff --git a/dom/events/test/test_bug985988.html b/dom/events/test/test_bug985988.html new file mode 100644 index 000000000..1939e52a6 --- /dev/null +++ b/dom/events/test/test_bug985988.html @@ -0,0 +1,76 @@ + + + + + + Test for Bug 985988 + + + + + +Mozilla Bug 985988 +

      + +test target +
      +
      + + diff --git a/dom/events/test/test_bug998809.html b/dom/events/test/test_bug998809.html new file mode 100644 index 000000000..08499d2c7 --- /dev/null +++ b/dom/events/test/test_bug998809.html @@ -0,0 +1,35 @@ + + + + + + Test for Bug 998809 + + + + + +Mozilla Bug 998809 +

      + +
      +
      + + diff --git a/dom/events/test/test_clickevent_on_input.html b/dom/events/test/test_clickevent_on_input.html new file mode 100644 index 000000000..07fe6ade6 --- /dev/null +++ b/dom/events/test/test_clickevent_on_input.html @@ -0,0 +1,111 @@ + + + + Test click event on input + + + + + +

      + +

      + +
      +
      +
      + + diff --git a/dom/events/test/test_continuous_wheel_events.html b/dom/events/test/test_continuous_wheel_events.html new file mode 100644 index 000000000..fc8c69390 --- /dev/null +++ b/dom/events/test/test_continuous_wheel_events.html @@ -0,0 +1,3248 @@ + + + + Test for D3E WheelEvent + + + + + + +

      +
      +
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      +
      +
      + +
      +
      +
      + + diff --git a/dom/events/test/test_dblclick_explicit_original_target.html b/dom/events/test/test_dblclick_explicit_original_target.html new file mode 100644 index 000000000..8aa5f5d4c --- /dev/null +++ b/dom/events/test/test_dblclick_explicit_original_target.html @@ -0,0 +1,33 @@ + + + + Test explicit original target of dblclick event + + + + + +

      Test explicit original target of dblclick event

      + +
      +
      +
      + + diff --git a/dom/events/test/test_dom_activate_event.html b/dom/events/test/test_dom_activate_event.html new file mode 100644 index 000000000..22e32d988 --- /dev/null +++ b/dom/events/test/test_dom_activate_event.html @@ -0,0 +1,89 @@ + + + + Test DOMActivate event + + + + + +

      +link + + + + + + +

      + +
      +
      +
      + + diff --git a/dom/events/test/test_dom_before_after_keyboard_event.html b/dom/events/test/test_dom_before_after_keyboard_event.html new file mode 100644 index 000000000..533a7e73a --- /dev/null +++ b/dom/events/test/test_dom_before_after_keyboard_event.html @@ -0,0 +1,136 @@ + + + + Test for Bug 989198 + + + + + + + +Mozilla Bug 989198 +

      +
      +
      +
      +
      diff --git a/dom/events/test/test_dom_before_after_keyboard_event_remote.html b/dom/events/test/test_dom_before_after_keyboard_event_remote.html
      new file mode 100644
      index 000000000..b82b102a9
      --- /dev/null
      +++ b/dom/events/test/test_dom_before_after_keyboard_event_remote.html
      @@ -0,0 +1,195 @@
      +
      +
      +
      +  Test for Bug 989198
      +  
      +  
      +  
      +  
      +  
      +
      +
      +Mozilla Bug 989198
      +

      +
      +
      +
      +
      +
      +
      diff --git a/dom/events/test/test_dom_keyboard_event.html b/dom/events/test/test_dom_keyboard_event.html
      new file mode 100644
      index 000000000..e85065904
      --- /dev/null
      +++ b/dom/events/test/test_dom_keyboard_event.html
      @@ -0,0 +1,306 @@
      +
      +
      +
      +  Test for DOM KeyboardEvent
      +  
      +  
      +  
      +
      +
      +

      + +
      +
      +
      + + diff --git a/dom/events/test/test_dom_mouse_event.html b/dom/events/test/test_dom_mouse_event.html new file mode 100644 index 000000000..d1433eb35 --- /dev/null +++ b/dom/events/test/test_dom_mouse_event.html @@ -0,0 +1,143 @@ + + + + Test for DOM MouseEvent + + + + +

      + +
      +
      +
      + + diff --git a/dom/events/test/test_dom_storage_event.html b/dom/events/test/test_dom_storage_event.html new file mode 100644 index 000000000..4ac967dfe --- /dev/null +++ b/dom/events/test/test_dom_storage_event.html @@ -0,0 +1,62 @@ + + + + Test for DOM StorageEvent + + + + +

      + +
      +
      +
      + + diff --git a/dom/events/test/test_dom_wheel_event.html b/dom/events/test/test_dom_wheel_event.html new file mode 100644 index 000000000..043eaa06c --- /dev/null +++ b/dom/events/test/test_dom_wheel_event.html @@ -0,0 +1,811 @@ + + + + Test for D3E WheelEvent + + + + + + +

      +
      +
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      +
      +
      + +
      +
      +
      + + diff --git a/dom/events/test/test_draggableprop.html b/dom/events/test/test_draggableprop.html new file mode 100644 index 000000000..7a5b5914d --- /dev/null +++ b/dom/events/test/test_draggableprop.html @@ -0,0 +1,89 @@ + + + Tests for the draggable property on HTML elements + + + + +

      + + +One +Two +Three +Four +Five + + + + + + + +One +Two +Three +Four +Five + +One +Two +Three +Four +Five + + + + + + + diff --git a/dom/events/test/test_dragstart.html b/dom/events/test/test_dragstart.html new file mode 100644 index 000000000..3c76d4f16 --- /dev/null +++ b/dom/events/test/test_dragstart.html @@ -0,0 +1,585 @@ + + + Tests for the dragstart event + + + + + + + + + + + + +
      This is a draggable bit of text.
      + +
      +mozilla.org +
      + + + + + +
      +
      + This is a draggable area. +
      +
      + This is a non-draggable area. +
      +
      + + + +
      Synthetic Event Dispatch
      +
      Synthetic Event Dispatch
      + + + diff --git a/dom/events/test/test_error_events.html b/dom/events/test/test_error_events.html new file mode 100644 index 000000000..62cbb68de --- /dev/null +++ b/dom/events/test/test_error_events.html @@ -0,0 +1,72 @@ + + +Test for error events being ErrorEvent + + +
      + + + diff --git a/dom/events/test/test_eventTimeStamp.html b/dom/events/test/test_eventTimeStamp.html new file mode 100644 index 000000000..a3d096432 --- /dev/null +++ b/dom/events/test/test_eventTimeStamp.html @@ -0,0 +1,121 @@ + + + + + + Test for Event.timeStamp (Bug 77992) + + + + +Mozilla Bug 77992 +

      +
      +
      +
      +
      +
      + + diff --git a/dom/events/test/test_eventctors.html b/dom/events/test/test_eventctors.html new file mode 100644 index 000000000..a18c2a5ed --- /dev/null +++ b/dom/events/test/test_eventctors.html @@ -0,0 +1,953 @@ + + + + + Test for Bug 675884 + + + + +Mozilla Bug 675884 +

      + +
      +
      +
      + + diff --git a/dom/events/test/test_eventctors.xul b/dom/events/test/test_eventctors.xul new file mode 100644 index 000000000..ba3c81c8a --- /dev/null +++ b/dom/events/test/test_eventctors.xul @@ -0,0 +1,49 @@ + + + + + + + diff --git a/dom/events/test/test_eventhandler_scoping.html b/dom/events/test/test_eventhandler_scoping.html new file mode 100644 index 000000000..f15238a0c --- /dev/null +++ b/dom/events/test/test_eventhandler_scoping.html @@ -0,0 +1,17 @@ + + +Test for event handler scoping + + +
      + diff --git a/dom/events/test/test_focus_disabled.html b/dom/events/test/test_focus_disabled.html new file mode 100644 index 000000000..52748226a --- /dev/null +++ b/dom/events/test/test_focus_disabled.html @@ -0,0 +1,125 @@ + + + + + + Test for Bug 375008 + + + + + +Mozilla Bug 375008 +

      +
      +
      + + + + + + + + +
      + +
      + + + + + + + + + +
      + + + + +
      + +
      + +
      +
      +
      +
      + + diff --git a/dom/events/test/test_legacy_event.html b/dom/events/test/test_legacy_event.html new file mode 100644 index 000000000..d772be106 --- /dev/null +++ b/dom/events/test/test_legacy_event.html @@ -0,0 +1,304 @@ + + + + + + Test for Bug 1236979 (events that have legacy alternative versions) + + + + + +Mozilla Bug 1236979 +

      + +
      +
      +
      + + diff --git a/dom/events/test/test_messageEvent.html b/dom/events/test/test_messageEvent.html new file mode 100644 index 000000000..0402649af --- /dev/null +++ b/dom/events/test/test_messageEvent.html @@ -0,0 +1,79 @@ + + + + + + Test for Bug 848294 + + + + + + + + + diff --git a/dom/events/test/test_messageEvent_init.html b/dom/events/test/test_messageEvent_init.html new file mode 100644 index 000000000..0e015b3be --- /dev/null +++ b/dom/events/test/test_messageEvent_init.html @@ -0,0 +1,25 @@ + +Test for bug 1308956 + + + + + + + + diff --git a/dom/events/test/test_moz_mouse_pixel_scroll_event.html b/dom/events/test/test_moz_mouse_pixel_scroll_event.html new file mode 100644 index 000000000..c2919ce44 --- /dev/null +++ b/dom/events/test/test_moz_mouse_pixel_scroll_event.html @@ -0,0 +1,1363 @@ + + + + Test for MozMousePixelScroll events + + + + + + + +

      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      + +
      +
      +
      + + diff --git a/dom/events/test/test_offsetxy.html b/dom/events/test/test_offsetxy.html new file mode 100644 index 000000000..849b1ea67 --- /dev/null +++ b/dom/events/test/test_offsetxy.html @@ -0,0 +1,98 @@ + + + + Test for DOM MouseEvent offsetX/Y + + + + +

      + +
      +
      + +
      + +
      +
      +
      + + diff --git a/dom/events/test/test_onerror_handler_args.html b/dom/events/test/test_onerror_handler_args.html new file mode 100644 index 000000000..629434814 --- /dev/null +++ b/dom/events/test/test_onerror_handler_args.html @@ -0,0 +1,36 @@ + + + + + + Test for Bug 1007790 + + + + + +Mozilla Bug 1007790 +

      + +
      +
      + + diff --git a/dom/events/test/test_passive_listeners.html b/dom/events/test/test_passive_listeners.html new file mode 100644 index 000000000..d55d16a5f --- /dev/null +++ b/dom/events/test/test_passive_listeners.html @@ -0,0 +1,118 @@ + + + Tests for passive event listeners + + + + +

      +
      +
      + + + + + + + diff --git a/dom/events/test/test_paste_image.html b/dom/events/test/test_paste_image.html new file mode 100644 index 000000000..716fafeaf --- /dev/null +++ b/dom/events/test/test_paste_image.html @@ -0,0 +1,196 @@ + +Test for bug 891247 + + + + + + + +
      + +
      + + diff --git a/dom/events/test/test_wheel_default_action.html b/dom/events/test/test_wheel_default_action.html new file mode 100644 index 000000000..5ead8be63 --- /dev/null +++ b/dom/events/test/test_wheel_default_action.html @@ -0,0 +1,39 @@ + + + + Test for default action of WheelEvent + + + + + +

      + +
      +
      +
      + + diff --git a/dom/events/test/window_bug493251.html b/dom/events/test/window_bug493251.html new file mode 100644 index 000000000..d2891a9ef --- /dev/null +++ b/dom/events/test/window_bug493251.html @@ -0,0 +1,13 @@ + + + + + + + + + + diff --git a/dom/events/test/window_bug617528.xul b/dom/events/test/window_bug617528.xul new file mode 100644 index 000000000..fc87f9d78 --- /dev/null +++ b/dom/events/test/window_bug617528.xul @@ -0,0 +1,9 @@ + + + + + + + diff --git a/dom/events/test/window_bug659071.html b/dom/events/test/window_bug659071.html new file mode 100644 index 000000000..5fb2efed4 --- /dev/null +++ b/dom/events/test/window_bug659071.html @@ -0,0 +1,69 @@ + + + + Test for Bug 659071 + + + + + + + + + diff --git a/dom/events/test/window_wheel_default_action.html b/dom/events/test/window_wheel_default_action.html new file mode 100644 index 000000000..fa6abf188 --- /dev/null +++ b/dom/events/test/window_wheel_default_action.html @@ -0,0 +1,1848 @@ + + + + Test for default action of WheelEvent + + + + + + +

      +
      +
      +
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      + Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.
      +
      +
      +
      +
      + +
      +
      +
      + + -- cgit v1.2.3