Summary:
Gecko is the only browser engine which joins 2 nodes with deleting left
node at deleting an element boundary and creates left node at splitting
a node e.g., at inserting new paragraph. I.e., the other browser engines
(including Trident) join 2 nodes with deleting right node and create
right node at splitting a node. This may cause making web developers
need to create Firefox specific path in complicated editable
applications, and making it impossible to support Firefox in some cases.
Therefore, I've worked on fixing this over a year in over 40 bugs
<https://bugzilla.mozilla.org/showdependencytree.cgi?id=1735608&hide_resolved=0>,
with changing over 10,000 lines even only in |editor/libeditor|
(+18,711/-12,930, excluding some refactoring which do not directly
required).
Fortunately, there is no notable open issue even after Foxfooding.
Therefore, I'd like to enable this new behavior by default in the
Nightly channel and early beta builds to get feedback from wider
testers, especially about intranet applications which can be
instantiated in local web servers.
Additionally, I'll land new Gecko specific editing command for enabling
the new compatible behavior even before shipping it and for making it
can check whether it's the version of Firefox supports the new behavior.
(Note that the command cannot disable the new compatible behavior if
it's enabled by the pref, thus, I plan to remove the legacy behavior as
soon as possible after shipping it due to the maintenance cost.)
Bugs:
* Bug 1820116 - Enable new join/split direction by default in the
Nightly channel and early beta builds
<https://bugzilla.mozilla.org/show_bug.cgi?id=1820116><https://bugzilla.mozilla.org/show_bug.cgi?id=1820116>
* Bug 1810663 - Add new Gecko specific `execCommand` to opt-in to the
new split/join node direction
<https://bugzilla.mozilla.org/show_bug.cgi?id=1810663><https://bugzilla.mozilla.org/show_bug.cgi?id=1810663>
Standard:
Not defined in any specs, but some WPTs depend on the new behavior
Preferences:
* |editor.join_split_direction.compatible_with_the_other_browsers|
(enable/disable the new behavior)
* |editor.join_split_direction.force_use_traditional_direction|
(allowed list of the legacy behavior, currently empty)
* |editor.join_split_direction.force_use_compatible_direction|
(allowed list of the new behavior, currently empty)
DevTools:
N/A
Platform coverage:
All, and affecting Thunderbird
Other browsers:
Only supports the new behavior, and do not (and must be never) support
the command.
web-platform-tests:
https://searchfox.org/mozilla-central/source/testing/web-platform/tests/editing
(and see also new passing tests after enabling the pref
<https://phabricator.services.mozilla.com/D172092>)
--
Masayuki Nakano<[email protected]>
Working on DOM, Events, editor and IME handling for Gecko
--
You received this message because you are subscribed to the Google Groups
"[email protected]" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/a/mozilla.org/d/msgid/dev-platform/5c3b8e70-d50e-27aa-e300-0b34e9cc411b%40d-toybox.com.