This step removes all the dependencies of mach commands to
having a MachCommandBase as the `self` by using the `command_context`
argument instead. This also removes any remaining statefulness from those
classes that implement mach commands, ultimately making it easier to move
existing commands out of classes in a follow-up.
Differential Revision: https://phabricator.services.mozilla.com/D118058
Without explicitly setting the clipping rect to the specified page size, the
building rect of the display lists will be kept to the size of the nsPageFrame.
This means that any content in the nsPageContentFrame which is larger than the
physical paper size will be clipped.
The actual content frames are scaled down when this is too large, so no
overdraw will occur.
Differential Revision: https://phabricator.services.mozilla.com/D119459
Tooltool images are hard to update because we don't provide a script to
generate the image and documentation is often inaccurate.
This patch makes it so we generate the AVD in the android-sdk TL job instead.
Differential Revision: https://phabricator.services.mozilla.com/D119221
This step removes all the dependencies of mach commands to
having a MachCommandBase as the `self` by using the `command_context`
argument instead. This also removes any remaining statefulness from those
classes that implement mach commands, ultimately making it easier to move
existing commands out of classes in a follow-up.
Differential Revision: https://phabricator.services.mozilla.com/D118058
Tooltool images are hard to update because we don't provide a script to
generate the image and documentation is often inaccurate.
This patch makes it so we generate the AVD in the android-sdk TL job instead.
Differential Revision: https://phabricator.services.mozilla.com/D119221
This should silence a relatively high-frequency intermittent that seems to be
specific to Windows-with-WebRender, which fails with "max difference: 168,
number of differing pixels: 30", where the differing pixels are due to a subtle
positioning difference in the dropdown arrow on a select element (not
particularly interesting/worrisome).
Differential Revision: https://phabricator.services.mozilla.com/D119830
When opening a native context menu with ctrl+click, the mousedown initiates drag
tracking. Then the menu opens. Native menus consume all mouse events, including
the upcoming mouseup event. This means that Gecko never sees the mouseup event
for the ctrl+click, so drag tracking stays active. Once the menu closes, the
next mouse event can be a long distance away from the ctrl+click's mousedown
position, so Gecko may initiate an unintended drag.
So we manually cancel drag tracking before opening the menu.
Differential Revision: https://phabricator.services.mozilla.com/D114795
This is to allow "max difference: 1, number of differing pixels: 41". The
differing pixels are all antialiased fringe along the curved edges of the
test's radio-buttons.
Differential Revision: https://phabricator.services.mozilla.com/D119778
Its default value is `true` and it will never be reverted in release builds
by default. Therefore, we can get rid of it from the tests unless testing
non-default behavior.
Differential Revision: https://phabricator.services.mozilla.com/D119849
`EventStateManager` gives up to track gesture to start a drag if mouse down
content which is stored in `mGestureDownFrameOwner` gets lost its primary frame.
When user tries to start to drag selected text in `<input>` or `<textarea>`
element, mouse down content is an anonymous node in `TextControlElement`. So,
if a reflow occurs after `mousedown` event, the anonymous `<div>` element
is replaced with new one and `EventStateManager` gives up to track it.
Therefore, this patch makes `EventStateManager` do similar things as
`nsBaseDragService`. When `nsTextControlFrame` notifies of remove/add
the anonymous nodes, `EventStateManager` tries to keep tracking gesture with
a new anonymous node.
Differential Revision: https://phabricator.services.mozilla.com/D119488
When `nsTextControlFrame` is reframed, `TextEditor`, anonymous `<div>`, its
`Text` and the independent `Selection`s are deleted temporarily and recreated
them.
If users are dragging text in `<input>` or `<textarea>`, the drag session's
source node is set to the anonymous text node in the element and the selection
is set to the independent selection. So, if the element is reframed during a
drag, the source node is disconnected from the document and `EndDragSession`
failed to dispatch `eDragEnd` event.
Therefore, this patch makes `nsTextControlFrame` replaces the source node and
selection when it's recreated and only when the drag session's original source
node was in the text control element. For checking which text control had the
anonymous text node, this patch makes `nsTextControlFrame` replaces source
node with the `<input>` or `<textarea>` element when the frame is destroyed.
Differential Revision: https://phabricator.services.mozilla.com/D119487
If middle button click with `Shift` key occurs, Chrome and Safari extend the
selection in most cases. However, if the clicked position is in a link,
Chrome does:
* If editable, collapse selection into the link instead of extending selection.
* If not editable, not extending selection and open tabs.
We should follow this behavior for both backward compatibility and web-compat.
Differential Revision: https://phabricator.services.mozilla.com/D119252