Mozilla Home
Privacy
Cookies
Legal
Bugzilla
Browse
Advanced Search
New Bug
Reports
Documentation
Log In
Log In with GitHub
or
Remember me
Browse
Advanced Search
New Bug
Reports
Documentation
Attachment 623609 Details for
Bug 590640
[patch]
Patch part 6, v1 -- Don't create empty style tags unless we're about to insert text in them
patch (text/plain), 84.26 KB, created by
Aryeh Gregor (:ayg) (no longer with Mozilla)
(
hide
)
Description:
Patch part 6, v1 -- Don't create empty style tags unless we're about to insert text in them
Filename:
MIME Type:
Creator:
Aryeh Gregor (:ayg) (no longer with Mozilla)
Size:
84.26 KB
patch
obsolete
># HG changeset patch ># User Aryeh Gregor <ayg@aryeh.name> ># Date 1336651214 -10800 ># Node ID 43dbb3e187af4ee1bcbfcd0339a16e287d5eb35b ># Parent 1c724d7b544406219fcdee8df88e440c7cb8a4ee >Bug 590640 part 6 - Don't create empty style tags unless we're about to insert text in them > >diff --git a/dom/imptests/editing.json b/dom/imptests/editing.json >--- a/dom/imptests/editing.json >+++ b/dom/imptests/editing.json >@@ -26338,50 +26338,44 @@ > "[[\"bold\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"bold\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"bold\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"bold\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"bold\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"bold\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"bold\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"bold\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"bold\",\"\"],[\"formatblock\",\"<div>\"]] \"foo[]bar\" compare innerHTML":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\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"bold\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"bold\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"bold\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"bold\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"bold\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"bold\",\"\"],[\"indent\",\"\"]] \"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\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"bold\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"bold\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"bold\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"bold\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"bold\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"bold\",\"\"],[\"insertorderedlist\",\"\"]] \"foo[]bar\" queryCommandState(\"bold\") after":true, > "[[\"bold\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"bold\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, >- "[[\"bold\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"bold\") after":true, > "[[\"bold\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"bold\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"bold\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"bold\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"bold\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"bold\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"bold\",\"\"],[\"insertunorderedlist\",\"\"]] \"foo[]bar\" queryCommandState(\"bold\") after":true, > "[[\"bold\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"bold\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, >- "[[\"bold\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"bold\") after":true, > "[[\"bold\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"bold\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"bold\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"bold\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"bold\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"bold\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, > "[[\"bold\",\"\"],[\"justifycenter\",\"\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"bold\",\"\"],[\"justifycenter\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, >@@ -26430,50 +26424,44 @@ > "[[\"italic\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"italic\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"italic\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"italic\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"italic\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"italic\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"italic\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"italic\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"italic\",\"\"],[\"formatblock\",\"<div>\"]] \"foo[]bar\" compare innerHTML":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\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"italic\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"italic\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"italic\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"italic\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"italic\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"italic\",\"\"],[\"indent\",\"\"]] \"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\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"italic\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"italic\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"italic\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"italic\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"italic\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"italic\",\"\"],[\"insertorderedlist\",\"\"]] \"foo[]bar\" queryCommandState(\"italic\") after":true, > "[[\"italic\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"italic\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, >- "[[\"italic\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"italic\") after":true, > "[[\"italic\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"italic\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"italic\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"italic\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"italic\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"italic\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"italic\",\"\"],[\"insertunorderedlist\",\"\"]] \"foo[]bar\" queryCommandState(\"italic\") after":true, > "[[\"italic\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"italic\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, >- "[[\"italic\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"italic\") after":true, > "[[\"italic\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"italic\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"italic\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"italic\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"italic\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"italic\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, > "[[\"italic\",\"\"],[\"justifycenter\",\"\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"italic\",\"\"],[\"justifycenter\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, >@@ -26522,50 +26510,44 @@ > "[[\"strikethrough\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"strikethrough\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"strikethrough\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"strikethrough\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"strikethrough\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"strikethrough\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"strikethrough\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"strikethrough\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"strikethrough\",\"\"],[\"formatblock\",\"<div>\"]] \"foo[]bar\" compare innerHTML":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\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"strikethrough\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"strikethrough\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"strikethrough\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"strikethrough\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"strikethrough\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"strikethrough\",\"\"],[\"indent\",\"\"]] \"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\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"strikethrough\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"strikethrough\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"strikethrough\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"strikethrough\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"strikethrough\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"strikethrough\",\"\"],[\"insertorderedlist\",\"\"]] \"foo[]bar\" queryCommandState(\"strikethrough\") after":true, > "[[\"strikethrough\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"strikethrough\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, >- "[[\"strikethrough\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"strikethrough\") after":true, > "[[\"strikethrough\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"strikethrough\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"strikethrough\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"strikethrough\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"strikethrough\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"strikethrough\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"strikethrough\",\"\"],[\"insertunorderedlist\",\"\"]] \"foo[]bar\" queryCommandState(\"strikethrough\") after":true, > "[[\"strikethrough\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"strikethrough\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, >- "[[\"strikethrough\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"strikethrough\") after":true, > "[[\"strikethrough\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"strikethrough\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"strikethrough\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"strikethrough\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"strikethrough\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"strikethrough\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, > "[[\"strikethrough\",\"\"],[\"justifycenter\",\"\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"strikethrough\",\"\"],[\"justifycenter\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, >@@ -26614,50 +26596,44 @@ > "[[\"subscript\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"subscript\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"subscript\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"subscript\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"subscript\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"subscript\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"subscript\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"subscript\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"subscript\",\"\"],[\"formatblock\",\"<div>\"]] \"foo[]bar\" compare innerHTML":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\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"subscript\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"subscript\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"subscript\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"subscript\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"subscript\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"subscript\",\"\"],[\"indent\",\"\"]] \"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\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"subscript\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"subscript\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"subscript\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"subscript\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"subscript\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"subscript\",\"\"],[\"insertorderedlist\",\"\"]] \"foo[]bar\" queryCommandState(\"subscript\") after":true, > "[[\"subscript\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"subscript\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, >- "[[\"subscript\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"subscript\") after":true, > "[[\"subscript\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"subscript\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"subscript\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"subscript\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"subscript\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"subscript\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"subscript\",\"\"],[\"insertunorderedlist\",\"\"]] \"foo[]bar\" queryCommandState(\"subscript\") after":true, > "[[\"subscript\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"subscript\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, >- "[[\"subscript\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"subscript\") after":true, > "[[\"subscript\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"subscript\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"subscript\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"subscript\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"subscript\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"subscript\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, > "[[\"subscript\",\"\"],[\"justifycenter\",\"\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"subscript\",\"\"],[\"justifycenter\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, >@@ -26706,50 +26682,44 @@ > "[[\"superscript\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"superscript\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"superscript\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"superscript\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"superscript\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"superscript\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"superscript\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"superscript\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"superscript\",\"\"],[\"formatblock\",\"<div>\"]] \"foo[]bar\" compare innerHTML":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\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"superscript\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"superscript\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"superscript\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"superscript\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"superscript\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"superscript\",\"\"],[\"indent\",\"\"]] \"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\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"superscript\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"superscript\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"superscript\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"superscript\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"superscript\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"superscript\",\"\"],[\"insertorderedlist\",\"\"]] \"foo[]bar\" queryCommandState(\"superscript\") after":true, > "[[\"superscript\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"superscript\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, >- "[[\"superscript\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"superscript\") after":true, > "[[\"superscript\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"superscript\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"superscript\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"superscript\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"superscript\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"superscript\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"superscript\",\"\"],[\"insertunorderedlist\",\"\"]] \"foo[]bar\" queryCommandState(\"superscript\") after":true, > "[[\"superscript\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"superscript\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, >- "[[\"superscript\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"superscript\") after":true, > "[[\"superscript\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"superscript\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"superscript\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"superscript\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"superscript\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"superscript\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, > "[[\"superscript\",\"\"],[\"justifycenter\",\"\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"superscript\",\"\"],[\"justifycenter\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, >@@ -26798,50 +26768,44 @@ > "[[\"underline\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"underline\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"underline\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"underline\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"underline\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"underline\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"underline\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"underline\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"underline\",\"\"],[\"formatblock\",\"<div>\"]] \"foo[]bar\" compare innerHTML":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\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"underline\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"underline\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"underline\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"underline\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"underline\",\"\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"underline\",\"\"],[\"indent\",\"\"]] \"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\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"underline\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"underline\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"underline\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"underline\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"underline\",\"\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"underline\",\"\"],[\"insertorderedlist\",\"\"]] \"foo[]bar\" queryCommandState(\"underline\") after":true, > "[[\"underline\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"underline\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, >- "[[\"underline\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"underline\") after":true, > "[[\"underline\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"underline\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"underline\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"underline\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"underline\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"underline\",\"\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"underline\",\"\"],[\"insertunorderedlist\",\"\"]] \"foo[]bar\" queryCommandState(\"underline\") after":true, > "[[\"underline\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"underline\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, >- "[[\"underline\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"underline\") after":true, > "[[\"underline\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"underline\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"underline\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"underline\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"underline\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"underline\",\"\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, > "[[\"underline\",\"\"],[\"justifycenter\",\"\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"underline\",\"\"],[\"justifycenter\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, >@@ -26891,30 +26855,28 @@ > "[[\"backcolor\",\"#00FFFF\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"backcolor\",\"#00FFFF\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"backcolor\") after":true, > "[[\"backcolor\",\"#00FFFF\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"backcolor\",\"#00FFFF\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"backcolor\",\"#00FFFF\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"backcolor\",\"#00FFFF\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"backcolor\",\"#00FFFF\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"backcolor\",\"#00FFFF\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"backcolor\",\"#00FFFF\"],[\"formatblock\",\"<div>\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"backcolor\",\"#00FFFF\"],[\"formatblock\",\"<div>\"]] \"foo[]bar\" queryCommandValue(\"backcolor\") after":true, > "[[\"backcolor\",\"#00FFFF\"],[\"formatblock\",\"<div>\"]] \"foo[]bar\" queryCommandValue(\"formatblock\") after":true, > "[[\"backcolor\",\"#00FFFF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"backcolor\",\"#00FFFF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"backcolor\",\"#00FFFF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"backcolor\") after":true, > "[[\"backcolor\",\"#00FFFF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"formatblock\") after":true, > "[[\"backcolor\",\"#00FFFF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"backcolor\",\"#00FFFF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"backcolor\",\"#00FFFF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"backcolor\",\"#00FFFF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"backcolor\",\"#00FFFF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"backcolor\",\"#00FFFF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"backcolor\",\"#00FFFF\"],[\"indent\",\"\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"backcolor\",\"#00FFFF\"],[\"indent\",\"\"]] \"foo[]bar\" queryCommandValue(\"backcolor\") after":true, > "[[\"backcolor\",\"#00FFFF\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"backcolor\",\"#00FFFF\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"backcolor\",\"#00FFFF\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"backcolor\") after":true, > "[[\"backcolor\",\"#00FFFF\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"backcolor\",\"#00FFFF\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"backcolor\",\"#00FFFF\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"backcolor\",\"#00FFFF\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, >@@ -27084,58 +27046,52 @@ > "[[\"fontname\",\"sans-serif\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"fontname\",\"sans-serif\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontname\") before":true, > "[[\"fontname\",\"sans-serif\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"fontname\",\"sans-serif\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"fontname\",\"sans-serif\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"fontname\",\"sans-serif\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"fontname\",\"sans-serif\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"fontname\",\"sans-serif\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"fontname\",\"sans-serif\"],[\"formatblock\",\"<div>\"]] \"foo[]bar\" compare innerHTML":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\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"fontname\",\"sans-serif\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"fontname\",\"sans-serif\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"fontname\",\"sans-serif\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"fontname\",\"sans-serif\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"fontname\",\"sans-serif\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"fontname\",\"sans-serif\"],[\"indent\",\"\"]] \"foo[]bar\" compare innerHTML":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\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"fontname\",\"sans-serif\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"fontname\",\"sans-serif\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"fontname\",\"sans-serif\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"fontname\",\"sans-serif\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"fontname\",\"sans-serif\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, > "[[\"fontname\",\"sans-serif\"],[\"insertorderedlist\",\"\"]] \"foo[]bar\" queryCommandValue(\"fontname\") before":true, >- "[[\"fontname\",\"sans-serif\"],[\"insertorderedlist\",\"\"]] \"foo[]bar\" queryCommandValue(\"fontname\") after":true, > "[[\"fontname\",\"sans-serif\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"fontname\",\"sans-serif\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"fontname\",\"sans-serif\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontname\") before":true, >- "[[\"fontname\",\"sans-serif\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontname\") after":true, > "[[\"fontname\",\"sans-serif\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"fontname\",\"sans-serif\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"fontname\",\"sans-serif\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"fontname\",\"sans-serif\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"fontname\",\"sans-serif\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"fontname\",\"sans-serif\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, > "[[\"fontname\",\"sans-serif\"],[\"insertunorderedlist\",\"\"]] \"foo[]bar\" queryCommandValue(\"fontname\") before":true, >- "[[\"fontname\",\"sans-serif\"],[\"insertunorderedlist\",\"\"]] \"foo[]bar\" queryCommandValue(\"fontname\") after":true, > "[[\"fontname\",\"sans-serif\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"fontname\",\"sans-serif\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"fontname\",\"sans-serif\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontname\") before":true, >- "[[\"fontname\",\"sans-serif\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontname\") after":true, > "[[\"fontname\",\"sans-serif\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"fontname\",\"sans-serif\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"fontname\",\"sans-serif\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"fontname\",\"sans-serif\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"fontname\",\"sans-serif\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"fontname\",\"sans-serif\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, > "[[\"fontname\",\"sans-serif\"],[\"justifycenter\",\"\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"fontname\",\"sans-serif\"],[\"justifycenter\",\"\"]] \"foo[]bar\" queryCommandValue(\"fontname\") before":true, >@@ -27195,58 +27151,52 @@ > "[[\"fontsize\",\"4\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"fontsize\",\"4\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") before":true, > "[[\"fontsize\",\"4\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"fontsize\",\"4\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"fontsize\",\"4\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"fontsize\",\"4\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"fontsize\",\"4\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"fontsize\",\"4\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"fontsize\",\"4\"],[\"formatblock\",\"<div>\"]] \"foo[]bar\" compare innerHTML":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\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"fontsize\",\"4\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"fontsize\",\"4\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"fontsize\",\"4\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"fontsize\",\"4\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"fontsize\",\"4\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"fontsize\",\"4\"],[\"indent\",\"\"]] \"foo[]bar\" compare innerHTML":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\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"fontsize\",\"4\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"fontsize\",\"4\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"fontsize\",\"4\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"fontsize\",\"4\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"fontsize\",\"4\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, > "[[\"fontsize\",\"4\"],[\"insertorderedlist\",\"\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") before":true, >- "[[\"fontsize\",\"4\"],[\"insertorderedlist\",\"\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") after":true, > "[[\"fontsize\",\"4\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"fontsize\",\"4\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"fontsize\",\"4\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") before":true, >- "[[\"fontsize\",\"4\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") after":true, > "[[\"fontsize\",\"4\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"fontsize\",\"4\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"fontsize\",\"4\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"fontsize\",\"4\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"fontsize\",\"4\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"fontsize\",\"4\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, > "[[\"fontsize\",\"4\"],[\"insertunorderedlist\",\"\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") before":true, >- "[[\"fontsize\",\"4\"],[\"insertunorderedlist\",\"\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") after":true, > "[[\"fontsize\",\"4\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"fontsize\",\"4\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"fontsize\",\"4\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") before":true, >- "[[\"fontsize\",\"4\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") after":true, > "[[\"fontsize\",\"4\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"fontsize\",\"4\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"fontsize\",\"4\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"fontsize\",\"4\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"fontsize\",\"4\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"fontsize\",\"4\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, > "[[\"fontsize\",\"4\"],[\"justifycenter\",\"\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"fontsize\",\"4\"],[\"justifycenter\",\"\"]] \"foo[]bar\" queryCommandValue(\"fontsize\") before":true, >@@ -27305,50 +27255,44 @@ > "[[\"forecolor\",\"#0000FF\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"forecolor\",\"#0000FF\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"forecolor\",\"#0000FF\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"forecolor\",\"#0000FF\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"forecolor\",\"#0000FF\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"forecolor\",\"#0000FF\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"forecolor\",\"#0000FF\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"forecolor\",\"#0000FF\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"forecolor\",\"#0000FF\"],[\"formatblock\",\"<div>\"]] \"foo[]bar\" compare innerHTML":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\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"forecolor\",\"#0000FF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"forecolor\",\"#0000FF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"forecolor\",\"#0000FF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"forecolor\",\"#0000FF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"forecolor\",\"#0000FF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"forecolor\",\"#0000FF\"],[\"indent\",\"\"]] \"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\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"forecolor\",\"#0000FF\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"forecolor\",\"#0000FF\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"forecolor\",\"#0000FF\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"forecolor\",\"#0000FF\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"forecolor\",\"#0000FF\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"forecolor\",\"#0000FF\"],[\"insertorderedlist\",\"\"]] \"foo[]bar\" queryCommandValue(\"forecolor\") after":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\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"forecolor\") after":true, > "[[\"forecolor\",\"#0000FF\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"forecolor\",\"#0000FF\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"forecolor\",\"#0000FF\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"forecolor\",\"#0000FF\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"forecolor\",\"#0000FF\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"forecolor\",\"#0000FF\"],[\"insertorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"forecolor\",\"#0000FF\"],[\"insertunorderedlist\",\"\"]] \"foo[]bar\" queryCommandValue(\"forecolor\") after":true, > "[[\"forecolor\",\"#0000FF\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"forecolor\",\"#0000FF\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, >- "[[\"forecolor\",\"#0000FF\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"forecolor\") after":true, > "[[\"forecolor\",\"#0000FF\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"forecolor\",\"#0000FF\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"forecolor\",\"#0000FF\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"forecolor\",\"#0000FF\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"forecolor\",\"#0000FF\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"forecolor\",\"#0000FF\"],[\"insertunorderedlist\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, > "[[\"forecolor\",\"#0000FF\"],[\"justifycenter\",\"\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"forecolor\",\"#0000FF\"],[\"justifycenter\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, >@@ -27398,30 +27342,28 @@ > "[[\"hilitecolor\",\"#00FFFF\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"hilitecolor\",\"#00FFFF\"],[\"formatblock\",\"<div>\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"formatblock\",\"<div>\"]] \"foo[]bar\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"formatblock\",\"<div>\"]] \"foo[]bar\" queryCommandValue(\"formatblock\") after":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"formatblock\") after":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") after":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"formatblock\",\"<div>\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") after":true, >- "[[\"hilitecolor\",\"#00FFFF\"],[\"indent\",\"\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"indent\",\"\"]] \"foo[]bar\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\": execCommand(\"inserttext\", false, \"a\") return value":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" compare innerHTML":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") before":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandState(\"inserttext\") before":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandValue(\"inserttext\") before":true, > "[[\"hilitecolor\",\"#00FFFF\"],[\"indent\",\"\"],[\"inserttext\",\"a\"]] \"foo[]bar\" queryCommandIndeterm(\"inserttext\") after":true, >diff --git a/editor/libeditor/html/nsHTMLDataTransfer.cpp b/editor/libeditor/html/nsHTMLDataTransfer.cpp >--- a/editor/libeditor/html/nsHTMLDataTransfer.cpp >+++ b/editor/libeditor/html/nsHTMLDataTransfer.cpp >@@ -283,31 +283,30 @@ nsHTMLEditor::DoInsertHTMLWithContext(co > NS_ENSURE_TRUE(mRules, NS_ERROR_NOT_INITIALIZED); > > // force IME commit; set up rules sniffing and batching > ForceCompositionEnd(); > nsAutoEditBatch beginBatching(this); > nsAutoRules beginRulesSniffing(this, kOpHTMLPaste, nsIEditor::eNext); > > // Get selection >- nsCOMPtr<nsISelection>selection; >- nsresult rv = GetSelection(getter_AddRefs(selection)); >- NS_ENSURE_SUCCESS(rv, rv); >+ nsRefPtr<nsTypedSelection> selection = GetTypedSelection(); >+ NS_ENSURE_STATE(selection); > > // create a dom document fragment that represents the structure to paste > nsCOMPtr<nsIDOMNode> fragmentAsNode, streamStartParent, streamEndParent; > PRInt32 streamStartOffset = 0, streamEndOffset = 0; > >- rv = CreateDOMFragmentFromPaste(aInputString, aContextStr, aInfoStr, >- address_of(fragmentAsNode), >- address_of(streamStartParent), >- address_of(streamEndParent), >- &streamStartOffset, >- &streamEndOffset, >- aTrustedInput); >+ nsresult rv = CreateDOMFragmentFromPaste(aInputString, aContextStr, aInfoStr, >+ address_of(fragmentAsNode), >+ address_of(streamStartParent), >+ address_of(streamEndParent), >+ &streamStartOffset, >+ &streamEndOffset, >+ aTrustedInput); > NS_ENSURE_SUCCESS(rv, rv); > > nsCOMPtr<nsIDOMNode> targetNode, tempNode; > PRInt32 targetOffset=0; > > if (!aDestNode) > { > // if caller didn't provide the destination/target node, >@@ -400,17 +399,20 @@ nsHTMLEditor::DoInsertHTMLWithContext(co > } > > if (!cellSelectionMode) > { > rv = DeleteSelectionAndPrepareToCreateNode(parentNode, offsetOfNewNode); > NS_ENSURE_SUCCESS(rv, rv); > > // pasting does not inherit local inline styles >- rv = RemoveAllInlineProperties(); >+ nsCOMPtr<nsIDOMNode> tmpNode = >+ do_QueryInterface(selection->GetAnchorNode()); >+ PRInt32 tmpOffset = selection->GetAnchorOffset(); >+ rv = ClearStyle(address_of(tmpNode), &tmpOffset, nsnull, nsnull); > NS_ENSURE_SUCCESS(rv, rv); > } > else > { > // delete whole cells: we will replace with new table content > { // Braces for artificial block to scope nsAutoSelectionReset. > // Save current selection since DeleteTableCell perturbs it > nsAutoSelectionReset selectionResetter(selection, this); >diff --git a/editor/libeditor/html/nsHTMLEditRules.cpp b/editor/libeditor/html/nsHTMLEditRules.cpp >--- a/editor/libeditor/html/nsHTMLEditRules.cpp >+++ b/editor/libeditor/html/nsHTMLEditRules.cpp >@@ -1259,22 +1259,30 @@ nsHTMLEditRules::WillInsert(nsISelection > // the selection start to be before the mozBR. > res = nsEditor::GetNodeLocation(priorNode, address_of(selNode), &selOffset); > NS_ENSURE_SUCCESS(res, res); > res = aSelection->Collapse(selNode,selOffset); > NS_ENSURE_SUCCESS(res, res); > } > } > >- // we need to get the doc >- nsCOMPtr<nsIDOMDocument> doc = mHTMLEditor->GetDOMDocument(); >- NS_ENSURE_TRUE(doc, NS_ERROR_NOT_INITIALIZED); >- >- // for every property that is set, insert a new inline style node >- return CreateStyleForInsertText(aSelection, doc); >+ // if we deleted selection then also for cached styles >+ if (mDidDeleteSelection && >+ (mTheAction == nsEditor::kOpInsertText || >+ mTheAction == nsEditor::kOpInsertIMEText || >+ mTheAction == nsEditor::kOpInsertBreak || >+ mTheAction == nsEditor::kOpDeleteSelection)) { >+ res = ReapplyCachedStyles(); >+ 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, > bool *aHandled, > const nsAString *inString, >@@ -1311,30 +1319,34 @@ nsHTMLEditRules::WillInsertText(nsEditor > NS_ENSURE_SUCCESS(res, res); > } > > res = WillInsert(aSelection, aCancel); > NS_ENSURE_SUCCESS(res, res); > // initialize out param > // we want to ignore result of WillInsert() > *aCancel = false; >+ >+ // we need to get the doc >+ nsCOMPtr<nsIDOMDocument> doc = mHTMLEditor->GetDOMDocument(); >+ NS_ENSURE_TRUE(doc, NS_ERROR_NOT_INITIALIZED); >+ >+ // for every property that is set, insert a new inline style node >+ res = CreateStyleForInsertText(aSelection, doc); >+ NS_ENSURE_SUCCESS(res, res); > > // get the (collapsed) selection location > res = mHTMLEditor->GetStartNodeAndOffset(aSelection, getter_AddRefs(selNode), &selOffset); > NS_ENSURE_SUCCESS(res, res); > > // dont put text in places that can't have it > if (!mHTMLEditor->IsTextNode(selNode) && > !mHTMLEditor->CanContainTag(selNode, nsGkAtoms::textTagName)) { > return NS_ERROR_FAILURE; > } >- >- // we need to get the doc >- nsCOMPtr<nsIDOMDocument> doc = mHTMLEditor->GetDOMDocument(); >- NS_ENSURE_TRUE(doc, NS_ERROR_NOT_INITIALIZED); > > if (aAction == nsEditor::kOpInsertIMEText) { > // Right now the nsWSRunObject code bails on empty strings, but IME needs > // the InsertTextImpl() call to still happen since empty strings are meaningful there. > if (inString->IsEmpty()) > { > res = mHTMLEditor->InsertTextImpl(*inString, address_of(selNode), &selOffset, doc); > } >@@ -4358,29 +4370,16 @@ nsHTMLEditRules::CreateStyleForInsertTex > bool weDidSomething = false; > nsCOMPtr<nsIDOMNode> node, tmp; > PRInt32 offset; > nsresult res = mHTMLEditor->GetStartNodeAndOffset(aSelection, > getter_AddRefs(node), > &offset); > NS_ENSURE_SUCCESS(res, res); > >- // if we deleted selection then also for cached styles >- if (mDidDeleteSelection && >- (mTheAction == nsEditor::kOpInsertText || >- mTheAction == nsEditor::kOpInsertIMEText || >- mTheAction == nsEditor::kOpInsertBreak || >- mTheAction == nsEditor::kOpDeleteSelection)) { >- res = ReapplyCachedStyles(); >- NS_ENSURE_SUCCESS(res, res); >- } >- // either way we clear the cached styles array >- res = ClearCachedStyles(); >- NS_ENSURE_SUCCESS(res, res); >- > // next examine our present style and make sure default styles are either > // present or explicitly overridden. If neither, add the default style to > // the TypeInState > PRInt32 length = mHTMLEditor->mDefaultStyles.Length(); > for (PRInt32 j = 0; j < length; j++) { > PropItem* propItem = mHTMLEditor->mDefaultStyles[j]; > MOZ_ASSERT(propItem); > bool bFirst, bAny, bAll; >@@ -4408,92 +4407,19 @@ nsHTMLEditRules::CreateStyleForInsertTex > > nsCOMPtr<nsIDOMElement> rootElement; > res = aDoc->GetDocumentElement(getter_AddRefs(rootElement)); > NS_ENSURE_SUCCESS(res, res); > > // process clearing any styles first > nsAutoPtr<PropItem> item(mHTMLEditor->mTypeInState->TakeClearProperty()); > while (item && node != rootElement) { >- nsCOMPtr<nsIDOMNode> leftNode, rightNode; >- res = mHTMLEditor->SplitStyleAbovePoint(address_of(node), &offset, >- item->tag, &item->attr, >- address_of(leftNode), >- address_of(rightNode)); >- NS_ENSURE_SUCCESS(res, res); >- bool bIsEmptyNode; >- if (leftNode) { >- mHTMLEditor->IsEmptyNode(leftNode, &bIsEmptyNode, false, true); >- if (bIsEmptyNode) { >- // delete leftNode if it became empty >- res = mEditor->DeleteNode(leftNode); >- NS_ENSURE_SUCCESS(res, res); >- } >- } >- if (rightNode) { >- nsCOMPtr<nsIDOMNode> secondSplitParent = >- mHTMLEditor->GetLeftmostChild(rightNode); >- // don't try to split non-containers (br's, images, hr's, etc) >- if (!secondSplitParent) { >- secondSplitParent = rightNode; >- } >- nsCOMPtr<nsIDOMNode> savedBR; >- if (!mHTMLEditor->IsContainer(secondSplitParent)) { >- if (nsTextEditUtils::IsBreak(secondSplitParent)) { >- savedBR = secondSplitParent; >- } >- >- secondSplitParent->GetParentNode(getter_AddRefs(tmp)); >- secondSplitParent = tmp; >- } >- offset = 0; >- res = mHTMLEditor->SplitStyleAbovePoint(address_of(secondSplitParent), >- &offset, item->tag, >- &item->attr, >- address_of(leftNode), >- address_of(rightNode)); >- NS_ENSURE_SUCCESS(res, res); >- // should be impossible to not get a new leftnode here >- NS_ENSURE_TRUE(leftNode, NS_ERROR_FAILURE); >- nsCOMPtr<nsIDOMNode> newSelParent = >- mHTMLEditor->GetLeftmostChild(leftNode); >- if (!newSelParent) { >- newSelParent = leftNode; >- } >- // If rightNode starts with a br, suck it out of right node and into >- // leftNode. This is so we you don't revert back to the previous style >- // if you happen to click at the end of a line. >- if (savedBR) { >- res = mEditor->MoveNode(savedBR, newSelParent, 0); >- NS_ENSURE_SUCCESS(res, res); >- } >- mHTMLEditor->IsEmptyNode(rightNode, &bIsEmptyNode, false, true); >- if (bIsEmptyNode) { >- // delete rightNode if it became empty >- res = mEditor->DeleteNode(rightNode); >- NS_ENSURE_SUCCESS(res, res); >- } >- // remove the style on this new hierarchy >- PRInt32 newSelOffset = 0; >- { >- // Track the point at the new hierarchy. This is so we can know where >- // to put the selection after we call RemoveStyleInside(). >- // RemoveStyleInside() could remove any and all of those nodes, so I >- // have to use the range tracking system to find the right spot to put >- // selection. >- nsAutoTrackDOMPoint tracker(mHTMLEditor->mRangeUpdater, >- address_of(newSelParent), &newSelOffset); >- res = mHTMLEditor->RemoveStyleInside(leftNode, item->tag, >- &(item->attr)); >- NS_ENSURE_SUCCESS(res, res); >- } >- // reset our node offset values to the resulting new sel point >- node = newSelParent; >- offset = newSelOffset; >- } >+ res = mHTMLEditor->ClearStyle(address_of(node), &offset, >+ item->tag, &item->attr); >+ NS_ENSURE_SUCCESS(res, res); > item = mHTMLEditor->mTypeInState->TakeClearProperty(); > weDidSomething = true; > } > > // then process setting any styles > PRInt32 relFontSize = mHTMLEditor->mTypeInState->TakeRelativeFontSize(); > item = mHTMLEditor->mTypeInState->TakeSetProperty(); > >diff --git a/editor/libeditor/html/nsHTMLEditor.h b/editor/libeditor/html/nsHTMLEditor.h >--- a/editor/libeditor/html/nsHTMLEditor.h >+++ b/editor/libeditor/html/nsHTMLEditor.h >@@ -759,16 +759,19 @@ protected: > const nsAString& aInfoStr, > const nsAString& aFlavor, > nsIDOMDocument* aSourceDoc, > nsIDOMNode* aDestNode, > PRInt32 aDestOffset, > bool aDeleteSelection, > bool aTrustedInput); > >+ nsresult ClearStyle(nsCOMPtr<nsIDOMNode>* aNode, PRInt32* aOffset, >+ nsIAtom* aProperty, const nsAString* aAttribute); >+ > // Data members > protected: > > nsCOMArray<nsIContentFilter> mContentFilters; > > nsRefPtr<TypeInState> mTypeInState; > > bool mCRInParagraphCreatesParagraph; >diff --git a/editor/libeditor/html/nsHTMLEditorStyle.cpp b/editor/libeditor/html/nsHTMLEditorStyle.cpp >--- a/editor/libeditor/html/nsHTMLEditorStyle.cpp >+++ b/editor/libeditor/html/nsHTMLEditorStyle.cpp >@@ -621,16 +621,94 @@ nsresult nsHTMLEditor::SplitStyleAbovePo > *aOffset = offset; > } > tmp->GetParentNode(getter_AddRefs(parent)); > tmp = parent; > } > return NS_OK; > } > >+nsresult >+nsHTMLEditor::ClearStyle(nsCOMPtr<nsIDOMNode>* aNode, PRInt32* aOffset, >+ nsIAtom* aProperty, const nsAString* aAttribute) >+{ >+ nsCOMPtr<nsIDOMNode> leftNode, rightNode, tmp; >+ nsresult res = SplitStyleAbovePoint(aNode, aOffset, aProperty, aAttribute, >+ address_of(leftNode), >+ address_of(rightNode)); >+ NS_ENSURE_SUCCESS(res, res); >+ bool bIsEmptyNode; >+ if (leftNode) { >+ IsEmptyNode(leftNode, &bIsEmptyNode, false, true); >+ if (bIsEmptyNode) { >+ // delete leftNode if it became empty >+ res = DeleteNode(leftNode); >+ NS_ENSURE_SUCCESS(res, res); >+ } >+ } >+ if (rightNode) { >+ nsCOMPtr<nsIDOMNode> secondSplitParent = GetLeftmostChild(rightNode); >+ // don't try to split non-containers (br's, images, hr's, etc) >+ if (!secondSplitParent) { >+ secondSplitParent = rightNode; >+ } >+ nsCOMPtr<nsIDOMNode> savedBR; >+ if (!IsContainer(secondSplitParent)) { >+ if (nsTextEditUtils::IsBreak(secondSplitParent)) { >+ savedBR = secondSplitParent; >+ } >+ >+ secondSplitParent->GetParentNode(getter_AddRefs(tmp)); >+ secondSplitParent = tmp; >+ } >+ *aOffset = 0; >+ res = SplitStyleAbovePoint(address_of(secondSplitParent), >+ aOffset, aProperty, aAttribute, >+ address_of(leftNode), address_of(rightNode)); >+ NS_ENSURE_SUCCESS(res, res); >+ // should be impossible to not get a new leftnode here >+ NS_ENSURE_TRUE(leftNode, NS_ERROR_FAILURE); >+ nsCOMPtr<nsIDOMNode> newSelParent = GetLeftmostChild(leftNode); >+ if (!newSelParent) { >+ newSelParent = leftNode; >+ } >+ // If rightNode starts with a br, suck it out of right node and into >+ // leftNode. This is so we you don't revert back to the previous style >+ // if you happen to click at the end of a line. >+ if (savedBR) { >+ res = MoveNode(savedBR, newSelParent, 0); >+ NS_ENSURE_SUCCESS(res, res); >+ } >+ IsEmptyNode(rightNode, &bIsEmptyNode, false, true); >+ if (bIsEmptyNode) { >+ // delete rightNode if it became empty >+ res = DeleteNode(rightNode); >+ NS_ENSURE_SUCCESS(res, res); >+ } >+ // remove the style on this new hierarchy >+ PRInt32 newSelOffset = 0; >+ { >+ // Track the point at the new hierarchy. This is so we can know where >+ // to put the selection after we call RemoveStyleInside(). >+ // RemoveStyleInside() could remove any and all of those nodes, so I >+ // have to use the range tracking system to find the right spot to put >+ // selection. >+ nsAutoTrackDOMPoint tracker(mRangeUpdater, >+ address_of(newSelParent), &newSelOffset); >+ res = RemoveStyleInside(leftNode, aProperty, aAttribute); >+ NS_ENSURE_SUCCESS(res, res); >+ } >+ // reset our node offset values to the resulting new sel point >+ *aNode = newSelParent; >+ *aOffset = newSelOffset; >+ } >+ >+ return NS_OK; >+} >+ > bool nsHTMLEditor::NodeIsProperty(nsIDOMNode *aNode) > { > NS_ENSURE_TRUE(aNode, false); > if (!IsContainer(aNode)) return false; > if (!IsEditable(aNode)) return false; > if (IsBlockNode(aNode)) return false; > if (NodeIsType(aNode, nsEditProperty::a)) return false; > return true;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
Flags:
ehsan.akhgari
: review+
Actions:
View
|
Diff
|
Review
Attachments on
bug 590640
:
471667
|
504055
|
623485
|
623486
|
623487
|
623488
|
623489
| 623609 |
623610
|
624737
|
624810