commit | b46280ea8ef618ab49b9ba4ffa6b4ad30de4712c | [log] [tgz] |
---|---|---|
author | Masayuki Nakano <masayuki@d-toybox.com> | Tue Mar 23 21:23:45 2021 |
committer | moz-wptsync-bot <wptsync@mozilla.com> | Fri Mar 26 01:14:41 2021 |
tree | 9a8b7ae5572dad544d1e9271bf695e65519f38ae | |
parent | ffeb8ba681ef558e98906fa6b426785a702c03b6 [diff] |
part 1: Move selection at middle button down rather than middle button up Chrome and Safari move selection at middle button down and does not modify the range at middle button up. However, they handle middle button down with `Shift` key is "continue selection". So, we should handle selection in nsIFrame when `mousedown` event for middle mouse button is fired, but ignore multiple selection, drag and drop and maintaining selection for aligning the behavior to the other browsers. This patch splits `nsIFrame::HandlePress()` and calls new method which moves selection from `nsIFrame::HandleEvent()` when middle button is pressed. (Note that this patch does not check whether middle click paste is enabled because Chrome moves selection even on Windows which Chrome always disable middle click paste on.) With this change, "paste" event target is changed. Previously, we used target of the preceding `mouseup` event, but we start to use the target of the preceding `mousedown` event. Note that even with this patch, we still behave differently from Chrome even in the following cases: - middle mouse button down in selected range, we collapse it, but Chrome keeps the selection. - middle mouse button click in selected range, we dispatch "paste" event, but Chrome collapse selection and not dispatch "paste" event. - middle mouse button down in selected range and up in different element, Chrome does not modify the range nor dispatch "paste" event. - Shift + middle mouse button in editable `<table>` works as non-editable in Chrome, but our editor handles it with special path. Therefore, we don't modify the range but dispatch "paste" event in the selected range. Changing them requires bigger change and probably requires some other features' behavior changes. Therefore, we shouldn't touch these issues until they are actually reported as web-compat issues. Differential Revision: https://phabricator.services.mozilla.com/D103997 bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1528289 gecko-commit: b537cd918f2d1f38c31dce93980a4c19c7c6b8d5 gecko-reviewers: edgar
The web-platform-tests Project is a cross-browser test suite for the Web-platform stack. Writing tests in a way that allows them to be run in all browsers gives browser projects confidence that they are shipping software that is compatible with other implementations, and that later implementations will be compatible with their implementations. This in turn gives Web authors/developers confidence that they can actually rely on the Web platform to deliver on the promise of working across browsers and devices without needing extra layers of abstraction to paper over the gaps left by specification editors and implementors.
The most important sources of information and activity are:
#testing
on irc.w3.org; includes participants located around the world, but busiest during the European working day; all discussion is archived hereIf you'd like clarification about anything, don't hesitate to ask in the chat room or on the mailing list.
Clone or otherwise get https://github.com/web-platform-tests/wpt.
Note: because of the frequent creation and deletion of branches in this repo, it is recommended to “prune” stale branches when fetching updates, i.e. use git pull --prune
(or git fetch -p && git merge
).
See the documentation website and in particular the system setup for running tests locally.
The wpt
command provides a frontend to a variety of tools for working with and running web-platform-tests. Some of the most useful commands are:
wpt serve
- For starting the wpt http serverwpt run
- For running tests in a browserwpt lint
- For running the lint against all testswpt manifest
- For updating or generating a MANIFEST.json
test manifestwpt install
- For installing the latest release of a browser or webdriver server on the local machine.wpt serve-wave
- For starting the wpt http server and the WAVE test runner. For more details on how to use the WAVE test runner see the documentation.On Windows wpt
commands must be prefixed with python
or the path to the python binary (if python
is not in your %PATH%
).
python wpt [command]
Alternatively, you may also use Bash on Ubuntu on Windows in the Windows 10 Anniversary Update build, then access your windows partition from there to launch wpt
commands.
Please make sure git and your text editor do not automatically convert line endings, as it will cause lint errors. For git, please set git config core.autocrlf false
in your working tree.
The master branch is automatically synced to http://w3c-test.org/.
Pull requests are automatically mirrored except those that modify sensitive resources (such as .py
). The latter require someone with merge access to comment with “LGTM” or “w3c-test:mirror” to indicate the pull request has been checked.
Save the Web, Write Some Tests!
Absolutely everyone is welcome to contribute to test development. No test is too small or too simple, especially if it corresponds to something for which you've noted an interoperability bug in a browser.
The way to contribute is just as usual:
git checkout -b topic
../wpt lint
as described above.If you spot an issue with a test and are not comfortable providing a pull request per above to fix it, please file a new issue. Thank you!