Bug 780035 - Backout bug 590640 part 7 for beta; a=lsblakk
authorAryeh Gregor <ayg@aryeh.name>
Tue, 14 Aug 2012 17:58:48 +0300
changeset 100507 2b306c236558eaa97ad7c6718b1391876388c24f
parent 100506 aa331c131a658b69f42ec582461f643482f202cd
child 100508 a9b08621c0f30e498b5af6843e77b7295a7df1c5
push idunknown
push userunknown
push dateunknown
reviewerslsblakk
bugs780035, 590640
milestone15.0
Bug 780035 - Backout bug 590640 part 7 for beta; a=lsblakk
dom/imptests/failures/editing/conformancetest/test_runtest.html.json
editor/libeditor/html/nsHTMLEditRules.cpp
--- a/dom/imptests/failures/editing/conformancetest/test_runtest.html.json
+++ b/dom/imptests/failures/editing/conformancetest/test_runtest.html.json
@@ -12479,37 +12479,43 @@
   "[[\"defaultparagraphseparator\",\"<p>\"]] \"foo[bar]baz\" queryCommandValue(\"defaultparagraphseparator\") before":true,
   "[[\"defaultparagraphseparator\",\"<p>\"]] \"foo[bar]baz\" queryCommandValue(\"defaultparagraphseparator\") after":true,
   "[[\"defaultparagraphseparator\",\"li\"]] \"foo[bar]baz\" queryCommandValue(\"defaultparagraphseparator\") before":true,
   "[[\"defaultparagraphseparator\",\"li\"]] \"foo[bar]baz\" queryCommandValue(\"defaultparagraphseparator\") after":true,
   "[[\"defaultparagraphseparator\",\"blockquote\"]] \"foo[bar]baz\" queryCommandValue(\"defaultparagraphseparator\") before":true,
   "[[\"defaultparagraphseparator\",\"blockquote\"]] \"foo[bar]baz\" queryCommandValue(\"defaultparagraphseparator\") after":true,
   "[[\"bold\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"bold\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"bold\",\"\"],[\"delete\",\"\"]] \"foo[]bar\" queryCommandState(\"bold\") after":true,
   "[[\"bold\",\"\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"bold\",\"\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"bold\",\"\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"bold\") after":true,
   "[[\"bold\",\"\"],[\"formatblock\",\"<div>\"]] \"foo[]bar\" queryCommandValue(\"formatblock\") after":true,
   "[[\"bold\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"bold\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"bold\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"formatblock\") after":true,
   "[[\"bold\",\"\"],[\"forwarddelete\",\"\"]] \"foo[]bar\": execCommand(\"forwarddelete\", false, \"\") return value":true,
   "[[\"bold\",\"\"],[\"forwarddelete\",\"\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"bold\",\"\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"forwarddelete\", false, \"\") return value":true,
   "[[\"bold\",\"\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"bold\",\"\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"bold\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"bold\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"bold\",\"\"],[\"inserthorizontalrule\",\"\"]] \"foo[]bar\" queryCommandState(\"bold\") after":true,
   "[[\"bold\",\"\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"bold\",\"\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"bold\",\"\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"bold\") after":true,
   "[[\"bold\",\"\"],[\"inserthtml\",\"ab<b>c</b>d\"]] \"foo[]bar\" queryCommandState(\"bold\") after":true,
   "[[\"bold\",\"\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"bold\",\"\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"bold\",\"\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"bold\") after":true,
+  "[[\"bold\",\"\"],[\"insertimage\",\"/img/lion.svg\"]] \"foo[]bar\" queryCommandState(\"bold\") after":true,
   "[[\"bold\",\"\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"bold\",\"\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"bold\",\"\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"bold\") after":true,
   "[[\"bold\",\"\"],[\"insertlinebreak\",\"\"]] \"foo[]bar\": execCommand(\"insertlinebreak\", false, \"\") return value":true,
   "[[\"bold\",\"\"],[\"insertlinebreak\",\"\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"bold\",\"\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"insertlinebreak\", false, \"\") return value":true,
   "[[\"bold\",\"\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"bold\",\"\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"bold\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"bold\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"bold\",\"\"],[\"insertparagraph\",\"\"]] \"foo[]bar\" compare innerHTML":true,
@@ -12530,37 +12536,43 @@
   "[[\"bold\",\"\"],[\"justifyleft\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"bold\",\"\"],[\"justifyright\",\"\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"bold\",\"\"],[\"justifyright\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"bold\",\"\"],[\"justifyright\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"bold\",\"\"],[\"outdent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"bold\",\"\"],[\"outdent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"italic\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"italic\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"italic\",\"\"],[\"delete\",\"\"]] \"foo[]bar\" queryCommandState(\"italic\") after":true,
   "[[\"italic\",\"\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"italic\",\"\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"italic\",\"\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"italic\") after":true,
   "[[\"italic\",\"\"],[\"formatblock\",\"<div>\"]] \"foo[]bar\" queryCommandValue(\"formatblock\") after":true,
   "[[\"italic\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"italic\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"italic\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"formatblock\") after":true,
   "[[\"italic\",\"\"],[\"forwarddelete\",\"\"]] \"foo[]bar\": execCommand(\"forwarddelete\", false, \"\") return value":true,
   "[[\"italic\",\"\"],[\"forwarddelete\",\"\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"italic\",\"\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"forwarddelete\", false, \"\") return value":true,
   "[[\"italic\",\"\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"italic\",\"\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"italic\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"italic\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"italic\",\"\"],[\"inserthorizontalrule\",\"\"]] \"foo[]bar\" queryCommandState(\"italic\") after":true,
   "[[\"italic\",\"\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"italic\",\"\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"italic\",\"\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"italic\") after":true,
   "[[\"italic\",\"\"],[\"inserthtml\",\"ab<b>c</b>d\"]] \"foo[]bar\" queryCommandState(\"italic\") after":true,
   "[[\"italic\",\"\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"italic\",\"\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"italic\",\"\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"italic\") after":true,
+  "[[\"italic\",\"\"],[\"insertimage\",\"/img/lion.svg\"]] \"foo[]bar\" queryCommandState(\"italic\") after":true,
   "[[\"italic\",\"\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"italic\",\"\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"italic\",\"\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"italic\") after":true,
   "[[\"italic\",\"\"],[\"insertlinebreak\",\"\"]] \"foo[]bar\": execCommand(\"insertlinebreak\", false, \"\") return value":true,
   "[[\"italic\",\"\"],[\"insertlinebreak\",\"\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"italic\",\"\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"insertlinebreak\", false, \"\") return value":true,
   "[[\"italic\",\"\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"italic\",\"\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"italic\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"italic\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"italic\",\"\"],[\"insertparagraph\",\"\"]] \"foo[]bar\" compare innerHTML":true,
@@ -12581,37 +12593,43 @@
   "[[\"italic\",\"\"],[\"justifyleft\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"italic\",\"\"],[\"justifyright\",\"\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"italic\",\"\"],[\"justifyright\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"italic\",\"\"],[\"justifyright\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"italic\",\"\"],[\"outdent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"italic\",\"\"],[\"outdent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"strikethrough\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"strikethrough\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"strikethrough\",\"\"],[\"delete\",\"\"]] \"foo[]bar\" queryCommandState(\"strikethrough\") after":true,
   "[[\"strikethrough\",\"\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"strikethrough\",\"\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"strikethrough\",\"\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"strikethrough\") after":true,
   "[[\"strikethrough\",\"\"],[\"formatblock\",\"<div>\"]] \"foo[]bar\" queryCommandValue(\"formatblock\") after":true,
   "[[\"strikethrough\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"strikethrough\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"strikethrough\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"formatblock\") after":true,
   "[[\"strikethrough\",\"\"],[\"forwarddelete\",\"\"]] \"foo[]bar\": execCommand(\"forwarddelete\", false, \"\") return value":true,
   "[[\"strikethrough\",\"\"],[\"forwarddelete\",\"\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"strikethrough\",\"\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"forwarddelete\", false, \"\") return value":true,
   "[[\"strikethrough\",\"\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"strikethrough\",\"\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"strikethrough\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"strikethrough\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"strikethrough\",\"\"],[\"inserthorizontalrule\",\"\"]] \"foo[]bar\" queryCommandState(\"strikethrough\") after":true,
   "[[\"strikethrough\",\"\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"strikethrough\",\"\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"strikethrough\",\"\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"strikethrough\") after":true,
   "[[\"strikethrough\",\"\"],[\"inserthtml\",\"ab<b>c</b>d\"]] \"foo[]bar\" queryCommandState(\"strikethrough\") after":true,
   "[[\"strikethrough\",\"\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"strikethrough\",\"\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"strikethrough\",\"\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"strikethrough\") after":true,
+  "[[\"strikethrough\",\"\"],[\"insertimage\",\"/img/lion.svg\"]] \"foo[]bar\" queryCommandState(\"strikethrough\") after":true,
   "[[\"strikethrough\",\"\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"strikethrough\",\"\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"strikethrough\",\"\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"strikethrough\") after":true,
   "[[\"strikethrough\",\"\"],[\"insertlinebreak\",\"\"]] \"foo[]bar\": execCommand(\"insertlinebreak\", false, \"\") return value":true,
   "[[\"strikethrough\",\"\"],[\"insertlinebreak\",\"\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"strikethrough\",\"\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"insertlinebreak\", false, \"\") return value":true,
   "[[\"strikethrough\",\"\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"strikethrough\",\"\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"strikethrough\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"strikethrough\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"strikethrough\",\"\"],[\"insertparagraph\",\"\"]] \"foo[]bar\" compare innerHTML":true,
@@ -12632,37 +12650,43 @@
   "[[\"strikethrough\",\"\"],[\"justifyleft\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"strikethrough\",\"\"],[\"justifyright\",\"\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"strikethrough\",\"\"],[\"justifyright\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"strikethrough\",\"\"],[\"justifyright\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"strikethrough\",\"\"],[\"outdent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"strikethrough\",\"\"],[\"outdent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"subscript\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"subscript\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"subscript\",\"\"],[\"delete\",\"\"]] \"foo[]bar\" queryCommandState(\"subscript\") after":true,
   "[[\"subscript\",\"\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"subscript\",\"\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"subscript\",\"\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"subscript\") after":true,
   "[[\"subscript\",\"\"],[\"formatblock\",\"<div>\"]] \"foo[]bar\" queryCommandValue(\"formatblock\") after":true,
   "[[\"subscript\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"subscript\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"subscript\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"formatblock\") after":true,
   "[[\"subscript\",\"\"],[\"forwarddelete\",\"\"]] \"foo[]bar\": execCommand(\"forwarddelete\", false, \"\") return value":true,
   "[[\"subscript\",\"\"],[\"forwarddelete\",\"\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"subscript\",\"\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"forwarddelete\", false, \"\") return value":true,
   "[[\"subscript\",\"\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"subscript\",\"\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"subscript\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"subscript\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"subscript\",\"\"],[\"inserthorizontalrule\",\"\"]] \"foo[]bar\" queryCommandState(\"subscript\") after":true,
   "[[\"subscript\",\"\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"subscript\",\"\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"subscript\",\"\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"subscript\") after":true,
   "[[\"subscript\",\"\"],[\"inserthtml\",\"ab<b>c</b>d\"]] \"foo[]bar\" queryCommandState(\"subscript\") after":true,
   "[[\"subscript\",\"\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"subscript\",\"\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"subscript\",\"\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"subscript\") after":true,
+  "[[\"subscript\",\"\"],[\"insertimage\",\"/img/lion.svg\"]] \"foo[]bar\" queryCommandState(\"subscript\") after":true,
   "[[\"subscript\",\"\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"subscript\",\"\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"subscript\",\"\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"subscript\") after":true,
   "[[\"subscript\",\"\"],[\"insertlinebreak\",\"\"]] \"foo[]bar\": execCommand(\"insertlinebreak\", false, \"\") return value":true,
   "[[\"subscript\",\"\"],[\"insertlinebreak\",\"\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"subscript\",\"\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"insertlinebreak\", false, \"\") return value":true,
   "[[\"subscript\",\"\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"subscript\",\"\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"subscript\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"subscript\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"subscript\",\"\"],[\"insertparagraph\",\"\"]] \"foo[]bar\" compare innerHTML":true,
@@ -12683,37 +12707,43 @@
   "[[\"subscript\",\"\"],[\"justifyleft\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"subscript\",\"\"],[\"justifyright\",\"\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"subscript\",\"\"],[\"justifyright\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"subscript\",\"\"],[\"justifyright\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"subscript\",\"\"],[\"outdent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"subscript\",\"\"],[\"outdent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"superscript\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"superscript\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"superscript\",\"\"],[\"delete\",\"\"]] \"foo[]bar\" queryCommandState(\"superscript\") after":true,
   "[[\"superscript\",\"\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"superscript\",\"\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"superscript\",\"\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"superscript\") after":true,
   "[[\"superscript\",\"\"],[\"formatblock\",\"<div>\"]] \"foo[]bar\" queryCommandValue(\"formatblock\") after":true,
   "[[\"superscript\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"superscript\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"superscript\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"formatblock\") after":true,
   "[[\"superscript\",\"\"],[\"forwarddelete\",\"\"]] \"foo[]bar\": execCommand(\"forwarddelete\", false, \"\") return value":true,
   "[[\"superscript\",\"\"],[\"forwarddelete\",\"\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"superscript\",\"\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"forwarddelete\", false, \"\") return value":true,
   "[[\"superscript\",\"\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"superscript\",\"\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"superscript\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"superscript\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"superscript\",\"\"],[\"inserthorizontalrule\",\"\"]] \"foo[]bar\" queryCommandState(\"superscript\") after":true,
   "[[\"superscript\",\"\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"superscript\",\"\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"superscript\",\"\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"superscript\") after":true,
   "[[\"superscript\",\"\"],[\"inserthtml\",\"ab<b>c</b>d\"]] \"foo[]bar\" queryCommandState(\"superscript\") after":true,
   "[[\"superscript\",\"\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"superscript\",\"\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"superscript\",\"\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"superscript\") after":true,
+  "[[\"superscript\",\"\"],[\"insertimage\",\"/img/lion.svg\"]] \"foo[]bar\" queryCommandState(\"superscript\") after":true,
   "[[\"superscript\",\"\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"superscript\",\"\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"superscript\",\"\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"superscript\") after":true,
   "[[\"superscript\",\"\"],[\"insertlinebreak\",\"\"]] \"foo[]bar\": execCommand(\"insertlinebreak\", false, \"\") return value":true,
   "[[\"superscript\",\"\"],[\"insertlinebreak\",\"\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"superscript\",\"\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"insertlinebreak\", false, \"\") return value":true,
   "[[\"superscript\",\"\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"superscript\",\"\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"superscript\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"superscript\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"superscript\",\"\"],[\"insertparagraph\",\"\"]] \"foo[]bar\" compare innerHTML":true,
@@ -12734,37 +12764,43 @@
   "[[\"superscript\",\"\"],[\"justifyleft\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"superscript\",\"\"],[\"justifyright\",\"\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"superscript\",\"\"],[\"justifyright\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"superscript\",\"\"],[\"justifyright\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"superscript\",\"\"],[\"outdent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"superscript\",\"\"],[\"outdent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"underline\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"underline\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"underline\",\"\"],[\"delete\",\"\"]] \"foo[]bar\" queryCommandState(\"underline\") after":true,
   "[[\"underline\",\"\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"underline\",\"\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"underline\",\"\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"underline\") after":true,
   "[[\"underline\",\"\"],[\"formatblock\",\"<div>\"]] \"foo[]bar\" queryCommandValue(\"formatblock\") after":true,
   "[[\"underline\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"underline\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"underline\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"formatblock\") after":true,
   "[[\"underline\",\"\"],[\"forwarddelete\",\"\"]] \"foo[]bar\": execCommand(\"forwarddelete\", false, \"\") return value":true,
   "[[\"underline\",\"\"],[\"forwarddelete\",\"\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"underline\",\"\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"forwarddelete\", false, \"\") return value":true,
   "[[\"underline\",\"\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"underline\",\"\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"underline\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"underline\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"underline\",\"\"],[\"inserthorizontalrule\",\"\"]] \"foo[]bar\" queryCommandState(\"underline\") after":true,
   "[[\"underline\",\"\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"underline\",\"\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"underline\",\"\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"underline\") after":true,
   "[[\"underline\",\"\"],[\"inserthtml\",\"ab<b>c</b>d\"]] \"foo[]bar\" queryCommandState(\"underline\") after":true,
   "[[\"underline\",\"\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"underline\",\"\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"underline\",\"\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"underline\") after":true,
+  "[[\"underline\",\"\"],[\"insertimage\",\"/img/lion.svg\"]] \"foo[]bar\" queryCommandState(\"underline\") after":true,
   "[[\"underline\",\"\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"underline\",\"\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"underline\",\"\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"underline\") after":true,
   "[[\"underline\",\"\"],[\"insertlinebreak\",\"\"]] \"foo[]bar\": execCommand(\"insertlinebreak\", false, \"\") return value":true,
   "[[\"underline\",\"\"],[\"insertlinebreak\",\"\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"underline\",\"\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"insertlinebreak\", false, \"\") return value":true,
   "[[\"underline\",\"\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"underline\",\"\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"underline\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"underline\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"underline\",\"\"],[\"insertparagraph\",\"\"]] \"foo[]bar\" compare innerHTML":true,
@@ -12918,19 +12954,21 @@
   "[[\"createlink\",\"http://www.google.com/\"],[\"justifyright\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"createlink\",\"http://www.google.com/\"],[\"justifyright\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"createlink\",\"http://www.google.com/\"],[\"outdent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"createlink\",\"http://www.google.com/\"],[\"outdent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"fontname\",\"sans-serif\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"fontname\",\"sans-serif\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"fontname\",\"sans-serif\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontname\") before":true,
   "[[\"fontname\",\"sans-serif\"],[\"delete\",\"\"]] \"foo[]bar\" queryCommandValue(\"fontname\") before":true,
+  "[[\"fontname\",\"sans-serif\"],[\"delete\",\"\"]] \"foo[]bar\" queryCommandValue(\"fontname\") after":true,
   "[[\"fontname\",\"sans-serif\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"fontname\",\"sans-serif\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"fontname\",\"sans-serif\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontname\") before":true,
+  "[[\"fontname\",\"sans-serif\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontname\") after":true,
   "[[\"fontname\",\"sans-serif\"],[\"formatblock\",\"<div>\"]] \"foo[]bar\" queryCommandValue(\"fontname\") before":true,
   "[[\"fontname\",\"sans-serif\"],[\"formatblock\",\"<div>\"]] \"foo[]bar\" queryCommandValue(\"formatblock\") after":true,
   "[[\"fontname\",\"sans-serif\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"fontname\",\"sans-serif\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"fontname\",\"sans-serif\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontname\") before":true,
   "[[\"fontname\",\"sans-serif\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"formatblock\") after":true,
   "[[\"fontname\",\"sans-serif\"],[\"forwarddelete\",\"\"]] \"foo[]bar\": execCommand(\"forwarddelete\", false, \"\") return value":true,
   "[[\"fontname\",\"sans-serif\"],[\"forwarddelete\",\"\"]] \"foo[]bar\" compare innerHTML":true,
@@ -12939,29 +12977,33 @@
   "[[\"fontname\",\"sans-serif\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"fontname\",\"sans-serif\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"fontname\",\"sans-serif\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontname\") before":true,
   "[[\"fontname\",\"sans-serif\"],[\"indent\",\"\"]] \"foo[]bar\" queryCommandValue(\"fontname\") before":true,
   "[[\"fontname\",\"sans-serif\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"fontname\",\"sans-serif\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"fontname\",\"sans-serif\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontname\") before":true,
   "[[\"fontname\",\"sans-serif\"],[\"inserthorizontalrule\",\"\"]] \"foo[]bar\" queryCommandValue(\"fontname\") before":true,
+  "[[\"fontname\",\"sans-serif\"],[\"inserthorizontalrule\",\"\"]] \"foo[]bar\" queryCommandValue(\"fontname\") after":true,
   "[[\"fontname\",\"sans-serif\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"fontname\",\"sans-serif\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"fontname\",\"sans-serif\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontname\") before":true,
+  "[[\"fontname\",\"sans-serif\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontname\") after":true,
   "[[\"fontname\",\"sans-serif\"],[\"inserthtml\",\"ab<b>c</b>d\"]] \"foo[]bar\" queryCommandValue(\"fontname\") before":true,
   "[[\"fontname\",\"sans-serif\"],[\"inserthtml\",\"ab<b>c</b>d\"]] \"foo[]bar\" queryCommandValue(\"fontname\") after":true,
   "[[\"fontname\",\"sans-serif\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"fontname\",\"sans-serif\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"fontname\",\"sans-serif\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontname\") before":true,
   "[[\"fontname\",\"sans-serif\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontname\") after":true,
   "[[\"fontname\",\"sans-serif\"],[\"insertimage\",\"/img/lion.svg\"]] \"foo[]bar\" queryCommandValue(\"fontname\") before":true,
+  "[[\"fontname\",\"sans-serif\"],[\"insertimage\",\"/img/lion.svg\"]] \"foo[]bar\" queryCommandValue(\"fontname\") after":true,
   "[[\"fontname\",\"sans-serif\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"fontname\",\"sans-serif\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"fontname\",\"sans-serif\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontname\") before":true,
+  "[[\"fontname\",\"sans-serif\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontname\") after":true,
   "[[\"fontname\",\"sans-serif\"],[\"insertlinebreak\",\"\"]] \"foo[]bar\": execCommand(\"insertlinebreak\", false, \"\") return value":true,
   "[[\"fontname\",\"sans-serif\"],[\"insertlinebreak\",\"\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"fontname\",\"sans-serif\"],[\"insertlinebreak\",\"\"]] \"foo[]bar\" queryCommandValue(\"fontname\") before":true,
   "[[\"fontname\",\"sans-serif\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"insertlinebreak\", false, \"\") return value":true,
   "[[\"fontname\",\"sans-serif\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"fontname\",\"sans-serif\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"fontname\",\"sans-serif\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontname\") before":true,
   "[[\"fontname\",\"sans-serif\"],[\"insertorderedlist\",\"\"]] \"foo[]bar\" queryCommandValue(\"fontname\") before":true,
@@ -13002,19 +13044,21 @@
   "[[\"fontname\",\"sans-serif\"],[\"outdent\",\"\"]] \"foo[]bar\" queryCommandValue(\"fontname\") before":true,
   "[[\"fontname\",\"sans-serif\"],[\"outdent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"fontname\",\"sans-serif\"],[\"outdent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"fontname\",\"sans-serif\"],[\"outdent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontname\") before":true,
   "[[\"fontsize\",\"4\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"fontsize\",\"4\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"fontsize\",\"4\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") before":true,
   "[[\"fontsize\",\"4\"],[\"delete\",\"\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") before":true,
+  "[[\"fontsize\",\"4\"],[\"delete\",\"\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") after":true,
   "[[\"fontsize\",\"4\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"fontsize\",\"4\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"fontsize\",\"4\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") before":true,
+  "[[\"fontsize\",\"4\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") after":true,
   "[[\"fontsize\",\"4\"],[\"formatblock\",\"<div>\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") before":true,
   "[[\"fontsize\",\"4\"],[\"formatblock\",\"<div>\"]] \"foo[]bar\" queryCommandValue(\"formatblock\") after":true,
   "[[\"fontsize\",\"4\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"fontsize\",\"4\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"fontsize\",\"4\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") before":true,
   "[[\"fontsize\",\"4\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"formatblock\") after":true,
   "[[\"fontsize\",\"4\"],[\"forwarddelete\",\"\"]] \"foo[]bar\": execCommand(\"forwarddelete\", false, \"\") return value":true,
   "[[\"fontsize\",\"4\"],[\"forwarddelete\",\"\"]] \"foo[]bar\" compare innerHTML":true,
@@ -13023,29 +13067,33 @@
   "[[\"fontsize\",\"4\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"fontsize\",\"4\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"fontsize\",\"4\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") before":true,
   "[[\"fontsize\",\"4\"],[\"indent\",\"\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") before":true,
   "[[\"fontsize\",\"4\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"fontsize\",\"4\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"fontsize\",\"4\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") before":true,
   "[[\"fontsize\",\"4\"],[\"inserthorizontalrule\",\"\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") before":true,
+  "[[\"fontsize\",\"4\"],[\"inserthorizontalrule\",\"\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") after":true,
   "[[\"fontsize\",\"4\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"fontsize\",\"4\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"fontsize\",\"4\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") before":true,
+  "[[\"fontsize\",\"4\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") after":true,
   "[[\"fontsize\",\"4\"],[\"inserthtml\",\"ab<b>c</b>d\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") before":true,
   "[[\"fontsize\",\"4\"],[\"inserthtml\",\"ab<b>c</b>d\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") after":true,
   "[[\"fontsize\",\"4\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"fontsize\",\"4\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"fontsize\",\"4\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") before":true,
   "[[\"fontsize\",\"4\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") after":true,
   "[[\"fontsize\",\"4\"],[\"insertimage\",\"/img/lion.svg\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") before":true,
+  "[[\"fontsize\",\"4\"],[\"insertimage\",\"/img/lion.svg\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") after":true,
   "[[\"fontsize\",\"4\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"fontsize\",\"4\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"fontsize\",\"4\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") before":true,
+  "[[\"fontsize\",\"4\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") after":true,
   "[[\"fontsize\",\"4\"],[\"insertlinebreak\",\"\"]] \"foo[]bar\": execCommand(\"insertlinebreak\", false, \"\") return value":true,
   "[[\"fontsize\",\"4\"],[\"insertlinebreak\",\"\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"fontsize\",\"4\"],[\"insertlinebreak\",\"\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") before":true,
   "[[\"fontsize\",\"4\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"insertlinebreak\", false, \"\") return value":true,
   "[[\"fontsize\",\"4\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"fontsize\",\"4\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"fontsize\",\"4\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") before":true,
   "[[\"fontsize\",\"4\"],[\"insertorderedlist\",\"\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") before":true,
@@ -13084,37 +13132,43 @@
   "[[\"fontsize\",\"4\"],[\"justifyright\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"fontsize\",\"4\"],[\"justifyright\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") before":true,
   "[[\"fontsize\",\"4\"],[\"outdent\",\"\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") before":true,
   "[[\"fontsize\",\"4\"],[\"outdent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"fontsize\",\"4\"],[\"outdent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"fontsize\",\"4\"],[\"outdent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") before":true,
   "[[\"forecolor\",\"#0000FF\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"forecolor\",\"#0000FF\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"forecolor\",\"#0000FF\"],[\"delete\",\"\"]] \"foo[]bar\" queryCommandValue(\"forecolor\") after":true,
   "[[\"forecolor\",\"#0000FF\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"forecolor\",\"#0000FF\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"forecolor\",\"#0000FF\"],[\"delete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"forecolor\") after":true,
   "[[\"forecolor\",\"#0000FF\"],[\"formatblock\",\"<div>\"]] \"foo[]bar\" queryCommandValue(\"formatblock\") after":true,
   "[[\"forecolor\",\"#0000FF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"forecolor\",\"#0000FF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"forecolor\",\"#0000FF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"formatblock\") after":true,
   "[[\"forecolor\",\"#0000FF\"],[\"forwarddelete\",\"\"]] \"foo[]bar\": execCommand(\"forwarddelete\", false, \"\") return value":true,
   "[[\"forecolor\",\"#0000FF\"],[\"forwarddelete\",\"\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"forecolor\",\"#0000FF\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"forwarddelete\", false, \"\") return value":true,
   "[[\"forecolor\",\"#0000FF\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"forecolor\",\"#0000FF\"],[\"forwarddelete\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"forecolor\",\"#0000FF\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"forecolor\",\"#0000FF\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"forecolor\",\"#0000FF\"],[\"inserthorizontalrule\",\"\"]] \"foo[]bar\" queryCommandValue(\"forecolor\") after":true,
   "[[\"forecolor\",\"#0000FF\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"forecolor\",\"#0000FF\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"forecolor\",\"#0000FF\"],[\"inserthorizontalrule\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"forecolor\") after":true,
   "[[\"forecolor\",\"#0000FF\"],[\"inserthtml\",\"ab<b>c</b>d\"]] \"foo[]bar\" queryCommandValue(\"forecolor\") after":true,
   "[[\"forecolor\",\"#0000FF\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"forecolor\",\"#0000FF\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"forecolor\",\"#0000FF\"],[\"inserthtml\",\"ab<b>c</b>d\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"forecolor\") after":true,
+  "[[\"forecolor\",\"#0000FF\"],[\"insertimage\",\"/img/lion.svg\"]] \"foo[]bar\" queryCommandValue(\"forecolor\") after":true,
   "[[\"forecolor\",\"#0000FF\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"forecolor\",\"#0000FF\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
+  "[[\"forecolor\",\"#0000FF\"],[\"insertimage\",\"/img/lion.svg\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"forecolor\") after":true,
   "[[\"forecolor\",\"#0000FF\"],[\"insertlinebreak\",\"\"]] \"foo[]bar\": execCommand(\"insertlinebreak\", false, \"\") return value":true,
   "[[\"forecolor\",\"#0000FF\"],[\"insertlinebreak\",\"\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"forecolor\",\"#0000FF\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"insertlinebreak\", false, \"\") return value":true,
   "[[\"forecolor\",\"#0000FF\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"forecolor\",\"#0000FF\"],[\"insertlinebreak\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"forecolor\",\"#0000FF\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true,
   "[[\"forecolor\",\"#0000FF\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true,
   "[[\"forecolor\",\"#0000FF\"],[\"insertparagraph\",\"\"]] \"foo[]bar\" compare innerHTML":true,
--- a/editor/libeditor/html/nsHTMLEditRules.cpp
+++ b/editor/libeditor/html/nsHTMLEditRules.cpp
@@ -68,32 +68,16 @@ static bool IsBlockNode(nsIDOMNode* node
   nsHTMLEditor::NodeIsBlockStatic(node, &isBlock);
   return isBlock;
 }
 
 static bool IsInlineNode(nsIDOMNode* node)
 {
   return !IsBlockNode(node);
 }
-
-static bool
-IsStyleCachePreservingAction(nsEditor::OperationID action)
-{
-  return action == nsEditor::kOpDeleteSelection ||
-         action == nsEditor::kOpInsertBreak ||
-         action == nsEditor::kOpMakeList ||
-         action == nsEditor::kOpIndent ||
-         action == nsEditor::kOpOutdent ||
-         action == nsEditor::kOpAlign ||
-         action == nsEditor::kOpMakeBasicBlock ||
-         action == nsEditor::kOpRemoveList ||
-         action == nsEditor::kOpMakeDefListItem ||
-         action == nsEditor::kOpInsertElement ||
-         action == nsEditor::kOpInsertQuotation;
-}
  
 class nsTableCellAndListItemFunctor : public nsBoolDomIterFunctor
 {
   public:
     virtual bool operator()(nsIDOMNode* aNode)  // used to build list of all li's, td's & th's iterator covers
     {
       if (nsHTMLEditUtils::IsTableCell(aNode)) return true;
       if (nsHTMLEditUtils::IsListItem(aNode)) return true;
@@ -311,20 +295,21 @@ nsHTMLEditRules::BeforeEdit(nsEditor::Op
     }
     if(mUtilRange)
     {
       // ditto for mUtilRange.
       mUtilRange->Reset(); 
     }
 
     // remember current inline styles for deletion and normal insertion operations
-    if (action == nsEditor::kOpInsertText ||
-        action == nsEditor::kOpInsertIMEText ||
-        action == nsEditor::kOpDeleteSelection ||
-        IsStyleCachePreservingAction(action)) {
+    if ((action == nsEditor::kOpInsertText)      || 
+        (action == nsEditor::kOpInsertIMEText)   ||
+        (action == nsEditor::kOpDeleteSelection) ||
+        (action == nsEditor::kOpInsertBreak))
+    {
       nsCOMPtr<nsIDOMNode> selNode = selStartNode;
       if (aDirection == nsIEditor::eNext)
         selNode = selEndNode;
       res = CacheInlineStyles(selNode);
       NS_ENSURE_SUCCESS(res, res);
     }
 
     // Stabilize the document against contenteditable count changes
@@ -479,20 +464,21 @@ nsHTMLEditRules::AfterEditInner(nsEditor
         (action == nsHTMLEditor::kOpHTMLPaste ||
         (action == nsHTMLEditor::kOpLoadHTML)))
     {
       res = AdjustSelection(selection, aDirection);
       NS_ENSURE_SUCCESS(res, res);
     }
 
     // check for any styles which were removed inappropriately
-    if (action == nsEditor::kOpInsertText ||
-        action == nsEditor::kOpInsertIMEText ||
-        action == nsEditor::kOpDeleteSelection ||
-        IsStyleCachePreservingAction(action)) {
+    if ((action == nsEditor::kOpInsertText)      || 
+        (action == nsEditor::kOpInsertIMEText)   ||
+        (action == nsEditor::kOpDeleteSelection) ||
+        (action == nsEditor::kOpInsertBreak))
+    {
       mHTMLEditor->mTypeInState->UpdateSelState(selection);
       res = ReapplyCachedStyles();
       NS_ENSURE_SUCCESS(res, res);
       res = ClearCachedStyles();
       NS_ENSURE_SUCCESS(res, res);
     }    
   }
 
@@ -1220,26 +1206,24 @@ nsHTMLEditRules::WillInsert(nsISelection
       res = aSelection->Collapse(selNode,selOffset);
       NS_ENSURE_SUCCESS(res, res);
     }
   }
 
   if (mDidDeleteSelection &&
       (mTheAction == nsEditor::kOpInsertText ||
        mTheAction == nsEditor::kOpInsertIMEText ||
+       mTheAction == nsEditor::kOpInsertBreak ||
        mTheAction == nsEditor::kOpDeleteSelection)) {
     res = ReapplyCachedStyles();
     NS_ENSURE_SUCCESS(res, res);
   }
-  // For most actions we want to clear the cached styles, but there are
-  // exceptions
-  if (!IsStyleCachePreservingAction(mTheAction)) {
-    res = ClearCachedStyles();
-    NS_ENSURE_SUCCESS(res, res);
-  }
+  // either way we clear the cached styles array
+  res = ClearCachedStyles();
+  NS_ENSURE_SUCCESS(res, res);
 
   return NS_OK;
 }    
 
 nsresult
 nsHTMLEditRules::WillInsertText(nsEditor::OperationID aAction,
                                 nsISelection *aSelection, 
                                 bool            *aCancel,
@@ -7215,16 +7199,20 @@ nsHTMLEditRules::CacheInlineStyles(nsIDO
 
 
 nsresult
 nsHTMLEditRules::ReapplyCachedStyles()
 {
   // The idea here is to examine our cached list of styles and see if any have
   // been removed.  If so, add typeinstate for them, so that they will be
   // reinserted when new content is added.
+  
+  // When we apply cached styles to TypeInState, we always want
+  // to blow away prior TypeInState:
+  mHTMLEditor->mTypeInState->Reset();
 
   // remember if we are in css mode
   bool useCSS = mHTMLEditor->IsCSSEnabled();
 
   // get selection point; if it doesn't exist, we have nothing to do
   nsRefPtr<nsTypedSelection> selection = mHTMLEditor->GetTypedSelection();
   MOZ_ASSERT(selection);
   if (!selection->GetRangeCount()) {
@@ -7255,17 +7243,17 @@ nsHTMLEditRules::ReapplyCachedStyles()
         nsresult res = mHTMLEditor->GetInlinePropertyBase(mCachedStyles[i].tag,
                                                      &(mCachedStyles[i].attr),
                                                      &(mCachedStyles[i].value),
                                                      &bFirst, &bAny, &bAll,
                                                      &curValue, false);
         NS_ENSURE_SUCCESS(res, res);
       }
       // this style has disappeared through deletion.  Add to our typeinstate:
-      if (!bAny || IsStyleCachePreservingAction(mTheAction)) {
+      if (!bAny) {
         mHTMLEditor->mTypeInState->SetProp(mCachedStyles[i].tag,
                                            mCachedStyles[i].attr,
                                            mCachedStyles[i].value);
       }
     }
   }
 
   return NS_OK;