part 1: Update WPT in the case that an inline element becomes empty

Currently, Blink/WebKit strip an inline element becoming empty and its parents
which also becomes empty.  However, some tests in editing/run/delete.js and
editing/run/forwarddelete.js are not consistent with the fact.
* https://wpt.fyi/results/editing/run/forwarddelete.html%3F6001-last?run_id=5664920516427776&run_id=5754064710139904&run_id=5670287212281856&run_id=5157691455438848
* https://wpt.fyi/results/editing/run/delete.html%3F6001-7000?run_id=5664920516427776&run_id=5754064710139904&run_id=5670287212281856&run_id=5157691455438848

Additionally, even after deleting parent inline elements, the style should be
preserved for next edit, but there are no tests for it.  Therefore, this patch
adds tests for the case into multitest.js.

Differential Revision: https://phabricator.services.mozilla.com/D125368

bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1730429
gecko-commit: 53cd8ff916d5527f77ef6c42ddb535e6f950f55b
gecko-reviewers: m_kato
diff --git a/editing/data/delete.js b/editing/data/delete.js
index 5e36c55..183451e 100644
--- a/editing/data/delete.js
+++ b/editing/data/delete.js
@@ -2437,42 +2437,42 @@
     {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"delete":[false,false,"",false,false,""]}],
 ["<p><b>[foo]</b>",
     [["delete",""]],
-    "<p><b>{}<br></b></p>",
+    "<p>{}<br></p>",
     [true],
     {"delete":[false,false,"",false,false,""]}],
 ["<p><quasit>[foo]</quasit>",
     [["delete",""]],
-    "<p><quasit>{}<br></quasit></p>",
+    "<p>{}<br></p>",
     [true],
     {"delete":[false,false,"",false,false,""]}],
 ["<p><b><i>[foo]</i></b>",
     [["delete",""]],
-    "<p><b><i>{}<br></i></b></p>",
+    "<p>{}<br></p>",
     [true],
     {"delete":[false,false,"",false,false,""]}],
 ["<p><b>{foo}</b>",
     [["delete",""]],
-    "<p><b>{}<br></b></p>",
+    "<p>{}<br></p>",
     [true],
     {"delete":[false,false,"",false,false,""]}],
 ["<p>{<b>foo</b>}",
     [["delete",""]],
-    "<p><b>{}<br></b></p>",
+    "<p>{}<br></p>",
     [true],
     {"delete":[false,false,"",false,false,""]}],
 ["<p><b>f[]</b>",
     [["delete",""]],
-    "<p><b>{}<br></b></p>",
+    "<p>{}<br></p>",
     [true],
     {"delete":[false,false,"",false,false,""]}],
 ["<b>[foo]</b>",
     [["delete",""]],
-    "<b>{}<br></b>",
+    "{}<br>",
     [true],
     {"delete":[false,false,"",false,false,""]}],
 ["<div><b>[foo]</b></div>",
     [["delete",""]],
-    "<div><b>{}<br></b></div>",
+    "<div>{}<br></div>",
     [true],
     {"delete":[false,false,"",false,false,""]}],
 ["<div><div><p>foo</p></div></div><div></div><div><div>[]bar</div></div></div>",
diff --git a/editing/data/forwarddelete.js b/editing/data/forwarddelete.js
index ffd7dad..cc03bcd 100644
--- a/editing/data/forwarddelete.js
+++ b/editing/data/forwarddelete.js
@@ -2322,42 +2322,42 @@
     {"forwarddelete":[false,false,"",false,false,""]}],
 ["<p><b>[foo]</b>",
     [["forwarddelete",""]],
-    "<p><b>{}<br></b></p>",
+    "<p>{}<br></p>",
     [true],
     {"forwarddelete":[false,false,"",false,false,""]}],
 ["<p><quasit>[foo]</quasit>",
     [["forwarddelete",""]],
-    "<p><quasit>{}<br></quasit></p>",
+    "<p>{}<br></p>",
     [true],
     {"forwarddelete":[false,false,"",false,false,""]}],
 ["<p><b><i>[foo]</i></b>",
     [["forwarddelete",""]],
-    "<p><b><i>{}<br></i></b></p>",
+    "<p>{}<br></p>",
     [true],
     {"forwarddelete":[false,false,"",false,false,""]}],
 ["<p><b>{foo}</b>",
     [["forwarddelete",""]],
-    "<p><b>{}<br></b></p>",
+    "<p>{}<br></p>",
     [true],
     {"forwarddelete":[false,false,"",false,false,""]}],
 ["<p>{<b>foo</b>}",
     [["forwarddelete",""]],
-    "<p><b>{}<br></b></p>",
+    "<p>{}<br></p>",
     [true],
     {"forwarddelete":[false,false,"",false,false,""]}],
 ["<p><b>[]f</b>",
     [["forwarddelete",""]],
-    "<p><b>{}<br></b></p>",
+    "<p>{}<br></p>",
     [true],
     {"forwarddelete":[false,false,"",false,false,""]}],
 ["<b>[foo]</b>",
     [["forwarddelete",""]],
-    "<b>{}<br></b>",
+    "{}<br>",
     [true],
     {"forwarddelete":[false,false,"",false,false,""]}],
 ["<div><b>[foo]</b></div>",
     [["forwarddelete",""]],
-    "<div><b>{}<br></b></div>",
+    "<div>{}<br></div>",
     [true],
     {"forwarddelete":[false,false,"",false,false,""]}],
 ["<div><div><p>foo[]</p></div></div><div></div><div><div>bar</div></div></div>",
diff --git a/editing/data/multitest.js b/editing/data/multitest.js
index 338b9c9..47e5849 100644
--- a/editing/data/multitest.js
+++ b/editing/data/multitest.js
@@ -2414,5 +2414,45 @@
     [["delete",""],["inserttext","a"]],
     "<blockquote><font color=\"blue\">a[]</font></blockquote>",
     [true,true],
-    {"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}]
+    {"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["<div><b>[abc]</b></div>",
+    [["styleWithCSS", "false"],["delete",""],["inserttext","a"]],
+    ["<div><b>a</b></div>",
+     "<div><b>a</b><br></div>"],
+    [true,true,true],
+    {"bold":[false,true,"",false,true,""]}],
+["<div>abc<b>[def]</b></div>",
+    [["styleWithCSS", "false"],["delete",""],["inserttext","d"]],
+    ["<div>abc<b>d</b></div>",
+     "<div>abc<b>d</b><br></div>"],
+    [true,true,true],
+    {"bold":[false,true,"",false,true,""]}],
+["<div><b>[abc]</b></div>",
+    [["styleWithCSS", "false"],["delete",""],["insertparagraph",""],["inserttext","a"]],
+    ["<div><br></div><div><b>a</b></div>",
+     "<div><br></div><div><b>a</b><br></div>"],
+    [true,true,true,true],
+    {"bold":[false,true,"",false,true,""]}],
+["<div>abc<b>[def]</b></div>",
+    [["styleWithCSS", "false"], ["delete",""],["insertparagraph",""],["inserttext","d"]],
+    ["<div>abc</div><div><b>d</b></div>",
+     "<div>abc</div><div><b>d</b><br></div>",
+     "<div>abc<br></div><div><b>d</b></div>",
+     "<div>abc<br></div><div><b>d</b><br></div>"],
+    [true,true,true,true],
+    {"bold":[false,true,"",false,true,""]}],
+["<div><b>[abc]</b></div>",
+    [["styleWithCSS", "false"],["insertparagraph",""],["inserttext","a"]],
+    ["<div><br></div><div><b>a</b></div>",
+     "<div><br></div><div><b>a</b><br></div>"],
+    [true,true,true],
+    {"bold":[false,true,"",false,true,""]}],
+["<div>abc<b>[def]</b></div>",
+    [["styleWithCSS", "false"],["insertparagraph",""],["inserttext","d"]],
+    ["<div>abc</div><div><b>d</b></div>",
+     "<div>abc</div><div><b>d</b><br></div>",
+     "<div>abc<br></div><div><b>d</b></div>",
+     "<div>abc<br></div><div><b>d</b><br></div>"],
+    [true,true,true],
+    {"bold":[false,true,"",false,true,""]}],
 ]