mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-11 05:39:41 +02:00
Currently, this bug does not occur actually because nobody has not accessed these command classes directly and they are registered only in command table for HTML editor. However, once rewriting `nsHTMLDocument::ExecCommand()` with these classes, its `IsCommandEnabled()` should return false if given editor is `TextEditor`. The reason why we need this fix is, when we make `ExecCommand()` call `IsCommandEnabled()` and it returns `true`, `ExecCommand()` needs to call `DoCommand()`. Then, it throws exception if given editor is not an `HTMLEditor` but the command class is only for `HTMLEditor`. This patch adds new WPT for testing whether `document.execCommand()` works with `<input>` and `<textarea>`. The behavior has not been standardized, but Chromium handles some commands even in it. So, I write the expectations from the point of view of web developers. (Chrome fails in "cut", "copy" and "removeformat" cases.) Differential Revision: https://phabricator.services.mozilla.com/D29473 --HG-- extra : moz-landing-system : lando |
||
|---|---|---|
| .. | ||
| data | ||
| include | ||
| manual | ||
| other | ||
| run | ||
| event.html | ||
| META.yml | ||
| README | ||
Most of this directory tests conformance to the editing spec written long ago by Aryeh Gregor. Nobody actually implements the spec, but the tests are still useful for regression testing. The files in data/ were generated from a JavaScript implementation of the specification using a complex procedure that can't actually be replicated right now as-is. Editing them manually is possible, but they're not really meant to be human-readable. If anyone is interested, it would be possible for Aryeh to get the test generation procedure working again. Or you could look into the repository history and figure out how to do it yourself, if you're brave. There is also a directory other/ that contains additional editor-related tests. They aren't necessarily based on any specification, but try to specify sensible behavior, and are meant to be helpful with regression testing for existing implementations and finding bugs in new implementations.