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 627902 Details for
Bug 757371
[patch]
Patch part 3, v1 -- Reuse existing style elements more aggressively
patch (text/plain), 77.44 KB, created by
Aryeh Gregor (:ayg) (no longer with Mozilla)
(
hide
)
Description:
Patch part 3, v1 -- Reuse existing style elements more aggressively
Filename:
MIME Type:
Creator:
Aryeh Gregor (:ayg) (no longer with Mozilla)
Size:
77.44 KB
patch
obsolete
># HG changeset patch ># User Aryeh Gregor <ayg@aryeh.name> ># Date 1338275571 -10800 ># Node ID 7172fdba388abdcfac0c4ec8a632e0eda9bfef60 ># Parent 1d26830b073c322fa92a9ae9813ca21ecaaa14d2 >Bug 757371 part 3 - Reuse existing style elements more aggressively > >diff --git a/dom/imptests/failures/editing/conformancetest/test_runtest.html.json b/dom/imptests/failures/editing/conformancetest/test_runtest.html.json >--- a/dom/imptests/failures/editing/conformancetest/test_runtest.html.json >+++ b/dom/imptests/failures/editing/conformancetest/test_runtest.html.json >@@ -27,23 +27,20 @@ > "[[\"stylewithcss\",\"true\"],[\"backcolor\",\"#00FFFF\"]] \"<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>\" queryCommandValue(\"backcolor\") after":true, > "[[\"stylewithcss\",\"false\"],[\"backcolor\",\"#00FFFF\"]] \"<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>\" queryCommandValue(\"backcolor\") after":true, > "[[\"stylewithcss\",\"true\"],[\"backcolor\",\"#00FFFF\"]] \"<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>\" queryCommandValue(\"backcolor\") after":true, > "[[\"stylewithcss\",\"false\"],[\"backcolor\",\"#00FFFF\"]] \"<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>\" queryCommandValue(\"backcolor\") after":true, > "[[\"stylewithcss\",\"true\"],[\"backcolor\",\"#00FFFF\"]] \"<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>\" queryCommandValue(\"backcolor\") after":true, > "[[\"stylewithcss\",\"false\"],[\"backcolor\",\"#00FFFF\"]] \"<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>\" queryCommandValue(\"backcolor\") after":true, > "[[\"stylewithcss\",\"true\"],[\"backcolor\",\"#00FFFF\"]] \"{<table><tr><td>foo<td>bar<td>baz</table>}\" queryCommandValue(\"backcolor\") after":true, > "[[\"stylewithcss\",\"false\"],[\"backcolor\",\"#00FFFF\"]] \"{<table><tr><td>foo<td>bar<td>baz</table>}\" queryCommandValue(\"backcolor\") after":true, >- "[[\"backcolor\",\"#00FFFF\"]] \"<p style=\\\"background-color: rgb(0, 255, 255)\\\">foo[bar]baz</p>\" compare innerHTML":true, > "[[\"backcolor\",\"#00FFFF\"]] \"<p style=\\\"background-color: rgb(0, 255, 255)\\\">foo[bar]baz</p>\" queryCommandValue(\"backcolor\") before":true, > "[[\"backcolor\",\"#00FFFF\"]] \"<p style=\\\"background-color: rgb(0, 255, 255)\\\">foo[bar]baz</p>\" queryCommandValue(\"backcolor\") after":true, >- "[[\"backcolor\",\"#00FFFF\"]] \"<p style=\\\"background-color: #00ffff\\\">foo[bar]baz</p>\" compare innerHTML":true, > "[[\"backcolor\",\"#00FFFF\"]] \"<p style=\\\"background-color: #00ffff\\\">foo[bar]baz</p>\" queryCommandValue(\"backcolor\") before":true, > "[[\"backcolor\",\"#00FFFF\"]] \"<p style=\\\"background-color: #00ffff\\\">foo[bar]baz</p>\" queryCommandValue(\"backcolor\") after":true, >- "[[\"backcolor\",\"#00FFFF\"]] \"<p style=\\\"background-color: aqua\\\">foo[bar]baz</p>\" compare innerHTML":true, > "[[\"backcolor\",\"#00FFFF\"]] \"<p style=\\\"background-color: aqua\\\">foo[bar]baz</p>\" queryCommandValue(\"backcolor\") before":true, > "[[\"backcolor\",\"#00FFFF\"]] \"<p style=\\\"background-color: aqua\\\">foo[bar]baz</p>\" queryCommandValue(\"backcolor\") after":true, > "[[\"stylewithcss\",\"true\"],[\"backcolor\",\"#00FFFF\"]] \"{<p style=\\\"background-color: aqua\\\">foo</p><p>bar</p>}\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"backcolor\",\"#00FFFF\"]] \"{<p style=\\\"background-color: aqua\\\">foo</p><p>bar</p>}\" queryCommandIndeterm(\"backcolor\") before":true, > "[[\"stylewithcss\",\"true\"],[\"backcolor\",\"#00FFFF\"]] \"{<p style=\\\"background-color: aqua\\\">foo</p><p>bar</p>}\" queryCommandValue(\"backcolor\") before":true, > "[[\"stylewithcss\",\"true\"],[\"backcolor\",\"#00FFFF\"]] \"{<p style=\\\"background-color: aqua\\\">foo</p><p>bar</p>}\" queryCommandValue(\"backcolor\") after":true, > "[[\"stylewithcss\",\"false\"],[\"backcolor\",\"#00FFFF\"]] \"{<p style=\\\"background-color: aqua\\\">foo</p><p>bar</p>}\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"backcolor\",\"#00FFFF\"]] \"{<p style=\\\"background-color: aqua\\\">foo</p><p>bar</p>}\" queryCommandIndeterm(\"backcolor\") before":true, >@@ -75,23 +72,21 @@ > "[[\"stylewithcss\",\"true\"],[\"backcolor\",\"#00FFFF\"]] \"<div style=\\\"background-color: aqua\\\"><p style=\\\"background-color: tan\\\">b[ar]</p></div>\" queryCommandValue(\"backcolor\") after":true, > "[[\"stylewithcss\",\"false\"],[\"backcolor\",\"#00FFFF\"]] \"<div style=\\\"background-color: aqua\\\"><p style=\\\"background-color: tan\\\">b[ar]</p></div>\" queryCommandValue(\"backcolor\") before":true, > "[[\"stylewithcss\",\"false\"],[\"backcolor\",\"#00FFFF\"]] \"<div style=\\\"background-color: aqua\\\"><p style=\\\"background-color: tan\\\">b[ar]</p></div>\" queryCommandValue(\"backcolor\") after":true, > "[[\"stylewithcss\",\"true\"],[\"backcolor\",\"#00FFFF\"]] \"<span style=\\\"display: block; background-color: aqua\\\"><span style=\\\"display: block; background-color: tan\\\">b[ar]</span></span>\" queryCommandValue(\"backcolor\") before":true, > "[[\"stylewithcss\",\"true\"],[\"backcolor\",\"#00FFFF\"]] \"<span style=\\\"display: block; background-color: aqua\\\"><span style=\\\"display: block; background-color: tan\\\">b[ar]</span></span>\" queryCommandValue(\"backcolor\") after":true, > "[[\"stylewithcss\",\"false\"],[\"backcolor\",\"#00FFFF\"]] \"<span style=\\\"display: block; background-color: aqua\\\"><span style=\\\"display: block; background-color: tan\\\">b[ar]</span></span>\" queryCommandValue(\"backcolor\") after":true, > "[[\"stylewithcss\",\"true\"],[\"backcolor\",\"#00FFFF\"]] \"fo[o<span style=background-color:tan>b]ar</span>baz\" queryCommandIndeterm(\"backcolor\") before":true, > "[[\"stylewithcss\",\"true\"],[\"backcolor\",\"#00FFFF\"]] \"fo[o<span style=background-color:tan>b]ar</span>baz\" queryCommandValue(\"backcolor\") after":true, >- "[[\"stylewithcss\",\"false\"],[\"backcolor\",\"#00FFFF\"]] \"fo[o<span style=background-color:tan>b]ar</span>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"backcolor\",\"#00FFFF\"]] \"fo[o<span style=background-color:tan>b]ar</span>baz\" queryCommandIndeterm(\"backcolor\") before":true, > "[[\"stylewithcss\",\"false\"],[\"backcolor\",\"#00FFFF\"]] \"fo[o<span style=background-color:tan>b]ar</span>baz\" queryCommandValue(\"backcolor\") after":true, > "[[\"stylewithcss\",\"true\"],[\"backcolor\",\"#00FFFF\"]] \"foo<span style=background-color:tan>ba[r</span>b]az\" queryCommandIndeterm(\"backcolor\") before":true, > "[[\"stylewithcss\",\"true\"],[\"backcolor\",\"#00FFFF\"]] \"foo<span style=background-color:tan>ba[r</span>b]az\" queryCommandValue(\"backcolor\") before":true, > "[[\"stylewithcss\",\"true\"],[\"backcolor\",\"#00FFFF\"]] \"foo<span style=background-color:tan>ba[r</span>b]az\" queryCommandValue(\"backcolor\") after":true, >- "[[\"stylewithcss\",\"false\"],[\"backcolor\",\"#00FFFF\"]] \"foo<span style=background-color:tan>ba[r</span>b]az\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"backcolor\",\"#00FFFF\"]] \"foo<span style=background-color:tan>ba[r</span>b]az\" queryCommandIndeterm(\"backcolor\") before":true, > "[[\"stylewithcss\",\"false\"],[\"backcolor\",\"#00FFFF\"]] \"foo<span style=background-color:tan>ba[r</span>b]az\" queryCommandValue(\"backcolor\") after":true, > "[[\"backcolor\",\"#00FFFF\"]] \"fo[o<span style=background-color:tan>bar</span>b]az\" queryCommandIndeterm(\"backcolor\") before":true, > "[[\"backcolor\",\"#00FFFF\"]] \"fo[o<span style=background-color:tan>bar</span>b]az\" queryCommandValue(\"backcolor\") after":true, > "[[\"stylewithcss\",\"true\"],[\"backcolor\",\"#00FFFF\"]] \"foo[<span style=background-color:tan>b]ar</span>baz\" queryCommandValue(\"backcolor\") before":true, > "[[\"stylewithcss\",\"true\"],[\"backcolor\",\"#00FFFF\"]] \"foo[<span style=background-color:tan>b]ar</span>baz\" queryCommandValue(\"backcolor\") after":true, > "[[\"stylewithcss\",\"false\"],[\"backcolor\",\"#00FFFF\"]] \"foo[<span style=background-color:tan>b]ar</span>baz\" queryCommandValue(\"backcolor\") before":true, > "[[\"stylewithcss\",\"false\"],[\"backcolor\",\"#00FFFF\"]] \"foo[<span style=background-color:tan>b]ar</span>baz\" queryCommandValue(\"backcolor\") after":true, >@@ -109,17 +104,16 @@ > "[[\"stylewithcss\",\"true\"],[\"backcolor\",\"#00FFFF\"]] \"<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>\" queryCommandValue(\"backcolor\") after":true, > "[[\"stylewithcss\",\"false\"],[\"backcolor\",\"#00FFFF\"]] \"<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>\" queryCommandIndeterm(\"backcolor\") before":true, > "[[\"stylewithcss\",\"false\"],[\"backcolor\",\"#00FFFF\"]] \"<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>\" queryCommandValue(\"backcolor\") after":true, > "[[\"stylewithcss\",\"true\"],[\"backcolor\",\"#00FFFF\"]] \"<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>\" queryCommandValue(\"backcolor\") before":true, > "[[\"stylewithcss\",\"true\"],[\"backcolor\",\"#00FFFF\"]] \"<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>\" queryCommandValue(\"backcolor\") after":true, > "[[\"stylewithcss\",\"false\"],[\"backcolor\",\"#00FFFF\"]] \"<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>\" queryCommandValue(\"backcolor\") after":true, > "[[\"stylewithcss\",\"true\"],[\"backcolor\",\"#00FFFF\"]] \"<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>\" queryCommandValue(\"backcolor\") before":true, > "[[\"stylewithcss\",\"true\"],[\"backcolor\",\"#00FFFF\"]] \"<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>\" queryCommandValue(\"backcolor\") after":true, >- "[[\"stylewithcss\",\"false\"],[\"backcolor\",\"#00FFFF\"]] \"<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"backcolor\",\"#00FFFF\"]] \"<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>\" queryCommandValue(\"backcolor\") after":true, > "[[\"stylewithcss\",\"true\"],[\"bold\",\"\"]] \"<span>[foo</span> <span>bar]</span>\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"bold\",\"\"]] \"<span>[foo</span> <span>bar]</span>\" queryCommandIndeterm(\"bold\") before":true, > "[[\"stylewithcss\",\"false\"],[\"bold\",\"\"]] \"<span>[foo</span> <span>bar]</span>\" queryCommandIndeterm(\"bold\") before":true, > "[[\"stylewithcss\",\"true\"],[\"bold\",\"\"]] \"<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"bold\",\"\"]] \"<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>\" queryCommandIndeterm(\"bold\") before":true, > "[[\"stylewithcss\",\"false\"],[\"bold\",\"\"]] \"<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>\" queryCommandIndeterm(\"bold\") before":true, > "[[\"bold\",\"\"]] \"<span>foo[</span><span>]bar</span>\" queryCommandState(\"bold\") after":true, >@@ -139,21 +133,16 @@ > "[[\"bold\",\"\"]] \"<span contenteditable=false>fo[o<span contenteditable=true>b]ar</span>baz</span>\": execCommand(\"bold\", false, \"\") return value":true, > "[[\"bold\",\"\"]] \"<span contenteditable=false>fo[<b>o<span contenteditable=true>bar</span>b</b>]az</span>\": execCommand(\"bold\", false, \"\") return value":true, > "[[\"stylewithcss\",\"true\"],[\"bold\",\"\"]] \"<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>\" queryCommandIndeterm(\"bold\") before":true, > "[[\"stylewithcss\",\"false\"],[\"bold\",\"\"]] \"<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>\" queryCommandIndeterm(\"bold\") before":true, > "[[\"stylewithcss\",\"true\"],[\"bold\",\"\"]] \"<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>\" queryCommandIndeterm(\"bold\") before":true, > "[[\"stylewithcss\",\"false\"],[\"bold\",\"\"]] \"<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>\" queryCommandIndeterm(\"bold\") before":true, > "[[\"stylewithcss\",\"true\"],[\"bold\",\"\"]] \"{<table><tr><td>foo<td>bar<td>baz</table>}\" queryCommandIndeterm(\"bold\") before":true, > "[[\"stylewithcss\",\"false\"],[\"bold\",\"\"]] \"{<table><tr><td>foo<td>bar<td>baz</table>}\" queryCommandIndeterm(\"bold\") before":true, >- "[[\"stylewithcss\",\"true\"],[\"bold\",\"\"]] \"<b>foo</b>[bar]<b>baz</b>\" compare innerHTML":true, >- "[[\"stylewithcss\",\"false\"],[\"bold\",\"\"]] \"<b>foo</b>[bar]<b>baz</b>\" compare innerHTML":true, >- "[[\"bold\",\"\"]] \"foo<strong>bar</strong>[baz]\" compare innerHTML":true, >- "[[\"bold\",\"\"]] \"[foo]<strong>bar</strong>baz\" compare innerHTML":true, >- "[[\"bold\",\"\"]] \"<strong>foo</strong>[bar]<strong>baz</strong>\" compare innerHTML":true, > "[[\"bold\",\"\"]] \"<b>foo</b>[bar]<strong>baz</strong>\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"bold\",\"\"]] \"<strong>foo</strong>[bar]<b>baz</b>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"bold\",\"\"]] \"<strong>foo</strong>[bar]<b>baz</b>\" compare innerHTML":true, > "[[\"bold\",\"\"]] \"foo{<b></b>}baz\" compare innerHTML":true, > "[[\"bold\",\"\"]] \"foo{<b></b>}baz\" queryCommandState(\"bold\") after":true, > "[[\"bold\",\"\"]] \"foo{<i></i>}baz\" compare innerHTML":true, > "[[\"bold\",\"\"]] \"foo{<i></i>}baz\" queryCommandState(\"bold\") after":true, > "[[\"bold\",\"\"]] \"foo{<b><i></i></b>}baz\" compare innerHTML":true, >@@ -265,49 +254,45 @@ > "[[\"stylewithcss\",\"false\"],[\"bold\",\"\"]] \"[foo<span class=notbold>bar</span>baz]\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"bold\",\"\"]] \"[foo<span class=notbold>bar</span>baz]\" queryCommandIndeterm(\"bold\") before":true, > "[[\"stylewithcss\",\"false\"],[\"bold\",\"\"]] \"[foo<span class=notbold>bar</span>baz]\" queryCommandIndeterm(\"bold\") after":true, > "[[\"stylewithcss\",\"false\"],[\"bold\",\"\"]] \"[foo<span class=notbold>bar</span>baz]\" queryCommandState(\"bold\") after":true, > "[[\"stylewithcss\",\"true\"],[\"bold\",\"\"]] \"<b><span class=notbold>[foo]</span></b>\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"bold\",\"\"]] \"<b><span class=notbold>[foo]</span></b>\" queryCommandState(\"bold\") after":true, > "[[\"stylewithcss\",\"false\"],[\"bold\",\"\"]] \"<b><span class=notbold>[foo]</span></b>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"bold\",\"\"]] \"<b><span class=notbold>[foo]</span></b>\" queryCommandState(\"bold\") after":true, >- "[[\"stylewithcss\",\"false\"],[\"bold\",\"\"]] \"<b><span class=notbold>foo[bar]baz</span></b>\" compare innerHTML":true, >- "[[\"stylewithcss\",\"false\"],[\"bold\",\"\"]] \"<b><span class=notbold>foo[bar]baz</span></b>\" queryCommandState(\"bold\") after":true, > "[[\"stylewithcss\",\"true\"],[\"bold\",\"\"]] \"<p style=\\\"font-weight: bold\\\">foo[bar]baz</p>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"bold\",\"\"]] \"<p style=\\\"font-weight: bold\\\">foo[bar]baz</p>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"bold\",\"\"]] \"<p style=\\\"font-weight: bold\\\">foo[bar]baz</p>\" queryCommandState(\"bold\") after":true, > "[[\"stylewithcss\",\"true\"],[\"bold\",\"\"]] \"foo[<b>b]ar</b>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"bold\",\"\"]] \"foo<b>ba[r</b>]baz\" compare innerHTML":true, >- "[[\"bold\",\"\"]] \"fo[o<span style=font-weight:bold>b]ar</span>baz\" compare innerHTML":true, > "[[\"bold\",\"\"]] \"<span style=font-weight:800>fo[o</span><span style=font-weight:900>b]ar</span>\" compare innerHTML":true, > "[[\"bold\",\"\"]] \"<span style=font-weight:800>fo[o</span><span style=font-weight:900>b]ar</span>\" queryCommandState(\"bold\") after":true, > "[[\"stylewithcss\",\"false\"],[\"bold\",\"\"]] \"<span style=font-weight:700>fo[o</span><span style=font-weight:800>b]ar</span>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"bold\",\"\"]] \"<span style=font-weight:700>fo[o</span><span style=font-weight:800>b]ar</span>\" queryCommandState(\"bold\") after":true, > "[[\"stylewithcss\",\"false\"],[\"bold\",\"\"]] \"<span style=font-weight:600>fo[o</span><span style=font-weight:700>b]ar</span>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"bold\",\"\"]] \"<span style=font-weight:600>fo[o</span><span style=font-weight:700>b]ar</span>\" queryCommandState(\"bold\") after":true, > "[[\"stylewithcss\",\"true\"],[\"bold\",\"\"]] \"<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"bold\",\"\"]] \"<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>\" queryCommandIndeterm(\"bold\") before":true, > "[[\"stylewithcss\",\"true\"],[\"bold\",\"\"]] \"<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>\" queryCommandState(\"bold\") before":true, > "[[\"stylewithcss\",\"true\"],[\"bold\",\"\"]] \"<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>\" queryCommandState(\"bold\") after":true, > "[[\"stylewithcss\",\"false\"],[\"bold\",\"\"]] \"<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"bold\",\"\"]] \"<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>\" queryCommandIndeterm(\"bold\") before":true, > "[[\"stylewithcss\",\"false\"],[\"bold\",\"\"]] \"<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>\" queryCommandState(\"bold\") before":true, > "[[\"stylewithcss\",\"true\"],[\"bold\",\"\"]] \"<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"bold\",\"\"]] \"<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>\" queryCommandIndeterm(\"bold\") before":true, >+ "[[\"stylewithcss\",\"false\"],[\"bold\",\"\"]] \"<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"bold\",\"\"]] \"<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>\" queryCommandIndeterm(\"bold\") before":true, > "[[\"createlink\",\"http://www.google.com/\"]] \"[foo]<a href=http://www.google.com/>bar</a>baz\" compare innerHTML":true, > "[[\"createlink\",\"http://www.google.com/\"]] \"foo<a href=http://www.google.com/>bar</a>[baz]\" compare innerHTML":true, > "[[\"createlink\",\"http://www.google.com/\"]] \"foo<a href=http://www.google.com/>[bar</a>baz]\" compare innerHTML":true, >- "[[\"createlink\",\"http://www.google.com/\"]] \"[foo<a href=http://www.google.com/>bar</a>baz]\" compare innerHTML":true, > "[[\"createlink\",\"http://www.google.com/\"]] \"<a href=otherurl>foo[bar]baz</a>\" compare innerHTML":true, > "[[\"createlink\",\"http://www.google.com/\"]] \"<a href=otherurl>foo[barbaz</a>}\" compare innerHTML":true, > "[[\"createlink\",\"http://www.google.com/\"]] \"{<a href=otherurl>foobar]baz</a>\" compare innerHTML":true, > "[[\"createlink\",\"http://www.google.com/\"]] \"foo<a href=otherurl>[bar</a>baz]\" compare innerHTML":true, >- "[[\"createlink\",\"http://www.google.com/\"]] \"[foo<a href=otherurl>bar</a>baz]\" compare innerHTML":true, > "[[\"createlink\",\"http://www.google.com/\"]] \"<a href=otherurl><b>foo[bar]baz</b></a>\" compare innerHTML":true, > "[[\"createlink\",\"http://www.google.com/\"]] \"<a href=otherurl><b>foo[barbaz</b></a>}\" compare innerHTML":true, > "[[\"createlink\",\"http://www.google.com/\"]] \"{<a href=otherurl><b>foobar]baz</b></a>\" compare innerHTML":true, > "[[\"createlink\",\"http://www.google.com/\"]] \"<a name=abc>foo[bar]baz</a>\" compare innerHTML":true, > "[[\"createlink\",\"http://www.google.com/\"]] \"<a name=abc><b>foo[bar]baz</b></a>\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"delete\",\"\"]] \"foo<span style=display:none>bar</span>[]baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"delete\",\"\"]] \"foo<span style=display:none>bar</span>[]baz\" compare innerHTML":true, > "[[\"delete\",\"\"]] \"foo<script>bar</script>[]baz\" compare innerHTML":true, >@@ -1352,17 +1337,16 @@ > "[[\"stylewithcss\",\"true\"],[\"fontname\",\"sans-serif\"]] \"foo<listing>b[ar</listing>baz]\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"fontname\",\"sans-serif\"]] \"foo<listing>b[ar</listing>baz]\" queryCommandIndeterm(\"fontname\") after":true, > "[[\"stylewithcss\",\"true\"],[\"fontname\",\"sans-serif\"]] \"foo<listing>b[ar</listing>baz]\" queryCommandValue(\"fontname\") after":true, > "[[\"stylewithcss\",\"false\"],[\"fontname\",\"sans-serif\"]] \"foo<listing>b[ar</listing>baz]\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"fontname\",\"sans-serif\"]] \"foo<listing>b[ar</listing>baz]\" queryCommandIndeterm(\"fontname\") after":true, > "[[\"stylewithcss\",\"false\"],[\"fontname\",\"sans-serif\"]] \"foo<listing>b[ar</listing>baz]\" queryCommandValue(\"fontname\") after":true, > "[[\"stylewithcss\",\"true\"],[\"fontname\",\"sans-serif\"]] \"foo<tt>b[ar</tt>baz]\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"fontname\",\"sans-serif\"]] \"foo<tt>b[ar</tt>baz]\" compare innerHTML":true, >- "[[\"fontname\",\"sans-serif\"]] \"foo<span style=\\\"font-family: sans-serif\\\">b[a]r</span>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"fontname\",\"sans-serif\"]] \"foo<span style=\\\"font-family: monospace\\\">[bar]</span>baz\" queryCommandValue(\"fontname\") before":true, > "[[\"stylewithcss\",\"false\"],[\"fontname\",\"sans-serif\"]] \"foo<span style=\\\"font-family: monospace\\\">[bar]</span>baz\" queryCommandValue(\"fontname\") before":true, > "[[\"stylewithcss\",\"true\"],[\"fontname\",\"sans-serif\"]] \"foo<span style=\\\"font-family: monospace\\\">b[a]r</span>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"fontname\",\"sans-serif\"]] \"foo<span style=\\\"font-family: monospace\\\">b[a]r</span>baz\" queryCommandValue(\"fontname\") before":true, > "[[\"stylewithcss\",\"false\"],[\"fontname\",\"sans-serif\"]] \"foo<span style=\\\"font-family: monospace\\\">b[a]r</span>baz\" queryCommandValue(\"fontname\") before":true, > "[[\"fontname\",\"sans-serif\"]] \"foo<tt contenteditable=false>ba[r</tt>b]az\": execCommand(\"fontname\", false, \"sans-serif\") return value":true, > "[[\"fontname\",\"sans-serif\"]] \"foo<tt contenteditable=false>ba[r</tt>b]az\" queryCommandValue(\"fontname\") before":true, > "[[\"fontname\",\"sans-serif\"]] \"foo<tt contenteditable=false>ba[r</tt>b]az\" queryCommandValue(\"fontname\") after":true, >@@ -1531,16 +1515,17 @@ > "[[\"stylewithcss\",\"true\"],[\"fontsize\",\"4\"]] \"{<table><tr><td>foo<td>bar<td>baz</table>}\" queryCommandValue(\"fontsize\") before":true, > "[[\"stylewithcss\",\"true\"],[\"fontsize\",\"4\"]] \"{<table><tr><td>foo<td>bar<td>baz</table>}\" queryCommandValue(\"fontsize\") after":true, > "[[\"stylewithcss\",\"false\"],[\"fontsize\",\"4\"]] \"{<table><tr><td>foo<td>bar<td>baz</table>}\" queryCommandValue(\"fontsize\") before":true, > "[[\"stylewithcss\",\"true\"],[\"fontsize\",\"4\"]] \"foo<font size=1>[bar]</font>baz\" queryCommandValue(\"fontsize\") after":true, > "[[\"stylewithcss\",\"true\"],[\"fontsize\",\"4\"]] \"<font size=1>foo[bar]baz</font>\" queryCommandValue(\"fontsize\") after":true, > "[[\"stylewithcss\",\"true\"],[\"fontsize\",\"4\"]] \"foo<font size=3>[bar]</font>baz\" queryCommandValue(\"fontsize\") after":true, > "[[\"stylewithcss\",\"true\"],[\"fontsize\",\"4\"]] \"<font size=3>foo[bar]baz</font>\" queryCommandValue(\"fontsize\") after":true, > "[[\"stylewithcss\",\"true\"],[\"fontsize\",\"4\"]] \"foo<font size=4>[bar]</font>baz\" queryCommandValue(\"fontsize\") after":true, >+ "[[\"fontsize\",\"4\"]] \"<font size=4>foo[bar]baz</font>\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"fontsize\",\"4\"]] \"foo<font size=+1>[bar]</font>baz\" queryCommandValue(\"fontsize\") before":true, > "[[\"stylewithcss\",\"true\"],[\"fontsize\",\"4\"]] \"foo<font size=+1>[bar]</font>baz\" queryCommandValue(\"fontsize\") after":true, > "[[\"stylewithcss\",\"false\"],[\"fontsize\",\"4\"]] \"foo<font size=+1>[bar]</font>baz\" queryCommandValue(\"fontsize\") before":true, > "[[\"fontsize\",\"4\"]] \"<font size=+1>foo[bar]baz</font>\" compare innerHTML":true, > "[[\"fontsize\",\"4\"]] \"<font size=+1>foo[bar]baz</font>\" queryCommandValue(\"fontsize\") before":true, > "[[\"stylewithcss\",\"true\"],[\"fontsize\",\"4\"]] \"<font size=4>foo<font size=1>b[a]r</font>baz</font>\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"fontsize\",\"4\"]] \"<font size=4>foo<font size=1>b[a]r</font>baz</font>\" queryCommandValue(\"fontsize\") after":true, > "[[\"stylewithcss\",\"false\"],[\"fontsize\",\"4\"]] \"<font size=4>foo<font size=1>b[a]r</font>baz</font>\" compare innerHTML":true, >@@ -1726,18 +1711,16 @@ > "[[\"stylewithcss\",\"true\"],[\"forecolor\",\"#0000FF\"]] \"<span style=\\\"color: rgb(0, 0, 255)\\\">foo<span style=\\\"color: brown\\\">[bar]</span>baz</span>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"forecolor\",\"#0000FF\"]] \"<span style=\\\"color: rgb(0, 0, 255)\\\">foo<span style=\\\"color: brown\\\">[bar]</span>baz</span>\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"forecolor\",\"#0000FF\"]] \"<font color=blue>foo<font color=brown>[bar]</font>baz</font>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"forecolor\",\"#0000FF\"]] \"<font color=blue>foo<font color=brown>[bar]</font>baz</font>\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"forecolor\",\"#0000FF\"]] \"<span style=\\\"color: rgb(0, 0, 255)\\\">foo<span style=\\\"color: brown\\\">b[ar]</span>baz</span>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"forecolor\",\"#0000FF\"]] \"<span style=\\\"color: rgb(0, 0, 255)\\\">foo<span style=\\\"color: brown\\\">b[ar]</span>baz</span>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"forecolor\",\"#0000FF\"]] \"foo<span id=purple>ba[r</span>ba]z\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"forecolor\",\"#0000FF\"]] \"<span style=\\\"color: rgb(0, 0, 255)\\\">foo<span id=purple>b[a]r</span>baz</span>\" compare innerHTML":true, >- "[[\"forecolor\",\"blue\"]] \"<a href=http://www.google.com>foo[bar]baz</a>\" compare innerHTML":true, >- "[[\"forecolor\",\"#0000ff\"]] \"<a href=http://www.google.com>foo[bar]baz</a>\" compare innerHTML":true, > "[[\"forecolor\",\"rgb(0,0,255)\"]] \"<a href=http://www.google.com>foo[bar]baz</a>\" compare innerHTML":true, > "[[\"forecolor\",\"rgb(0,0,255)\"]] \"<a href=http://www.google.com>foo[bar]baz</a>\" queryCommandValue(\"forecolor\") after":true, > "[[\"stylewithcss\",\"false\"],[\"forecolor\",\"#0000FF\"]] \"<font color=\\\"blue\\\">[foo]</font>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"forecolor\",\"#0000FF\"]] \"<font color=\\\"0000ff\\\">[foo]</font>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"forecolor\",\"#0000FF\"]] \"<font color=\\\"#0000ff\\\">[foo]</font>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"forecolor\",\"#0000FF\"]] \"<span style=\\\"color: blue\\\">[foo]</span>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"forecolor\",\"#0000FF\"]] \"<span style=\\\"color: #0000ff\\\">[foo]</span>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"forecolor\",\"#0000FF\"]] \"<span style=\\\"color: rgb(0, 0, 255)\\\">[foo]</span>\" compare innerHTML":true, >@@ -3765,23 +3748,20 @@ > "[[\"stylewithcss\",\"true\"],[\"hilitecolor\",\"#00FFFF\"]] \"<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"true\"],[\"hilitecolor\",\"#00FFFF\"]] \"<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"true\"],[\"hilitecolor\",\"#00FFFF\"]] \"<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"true\"],[\"hilitecolor\",\"#00FFFF\"]] \"{<table><tr><td>foo<td>bar<td>baz</table>}\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"{<table><tr><td>foo<td>bar<td>baz</table>}\" queryCommandValue(\"hilitecolor\") after":true, >- "[[\"hilitecolor\",\"#00FFFF\"]] \"<p style=\\\"background-color: rgb(0, 255, 255)\\\">foo[bar]baz</p>\" compare innerHTML":true, > "[[\"hilitecolor\",\"#00FFFF\"]] \"<p style=\\\"background-color: rgb(0, 255, 255)\\\">foo[bar]baz</p>\" queryCommandValue(\"hilitecolor\") before":true, > "[[\"hilitecolor\",\"#00FFFF\"]] \"<p style=\\\"background-color: rgb(0, 255, 255)\\\">foo[bar]baz</p>\" queryCommandValue(\"hilitecolor\") after":true, >- "[[\"hilitecolor\",\"#00FFFF\"]] \"<p style=\\\"background-color: #00ffff\\\">foo[bar]baz</p>\" compare innerHTML":true, > "[[\"hilitecolor\",\"#00FFFF\"]] \"<p style=\\\"background-color: #00ffff\\\">foo[bar]baz</p>\" queryCommandValue(\"hilitecolor\") before":true, > "[[\"hilitecolor\",\"#00FFFF\"]] \"<p style=\\\"background-color: #00ffff\\\">foo[bar]baz</p>\" queryCommandValue(\"hilitecolor\") after":true, >- "[[\"hilitecolor\",\"#00FFFF\"]] \"<p style=\\\"background-color: aqua\\\">foo[bar]baz</p>\" compare innerHTML":true, > "[[\"hilitecolor\",\"#00FFFF\"]] \"<p style=\\\"background-color: aqua\\\">foo[bar]baz</p>\" queryCommandValue(\"hilitecolor\") before":true, > "[[\"hilitecolor\",\"#00FFFF\"]] \"<p style=\\\"background-color: aqua\\\">foo[bar]baz</p>\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"true\"],[\"hilitecolor\",\"#00FFFF\"]] \"{<p style=\\\"background-color: aqua\\\">foo</p><p>bar</p>}\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"hilitecolor\",\"#00FFFF\"]] \"{<p style=\\\"background-color: aqua\\\">foo</p><p>bar</p>}\" queryCommandIndeterm(\"hilitecolor\") before":true, > "[[\"stylewithcss\",\"true\"],[\"hilitecolor\",\"#00FFFF\"]] \"{<p style=\\\"background-color: aqua\\\">foo</p><p>bar</p>}\" queryCommandValue(\"hilitecolor\") before":true, > "[[\"stylewithcss\",\"true\"],[\"hilitecolor\",\"#00FFFF\"]] \"{<p style=\\\"background-color: aqua\\\">foo</p><p>bar</p>}\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"{<p style=\\\"background-color: aqua\\\">foo</p><p>bar</p>}\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"{<p style=\\\"background-color: aqua\\\">foo</p><p>bar</p>}\" queryCommandIndeterm(\"hilitecolor\") before":true, >@@ -3813,23 +3793,21 @@ > "[[\"stylewithcss\",\"true\"],[\"hilitecolor\",\"#00FFFF\"]] \"<div style=\\\"background-color: aqua\\\"><p style=\\\"background-color: tan\\\">b[ar]</p></div>\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"<div style=\\\"background-color: aqua\\\"><p style=\\\"background-color: tan\\\">b[ar]</p></div>\" queryCommandValue(\"hilitecolor\") before":true, > "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"<div style=\\\"background-color: aqua\\\"><p style=\\\"background-color: tan\\\">b[ar]</p></div>\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"true\"],[\"hilitecolor\",\"#00FFFF\"]] \"<span style=\\\"display: block; background-color: aqua\\\"><span style=\\\"display: block; background-color: tan\\\">b[ar]</span></span>\" queryCommandValue(\"hilitecolor\") before":true, > "[[\"stylewithcss\",\"true\"],[\"hilitecolor\",\"#00FFFF\"]] \"<span style=\\\"display: block; background-color: aqua\\\"><span style=\\\"display: block; background-color: tan\\\">b[ar]</span></span>\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"<span style=\\\"display: block; background-color: aqua\\\"><span style=\\\"display: block; background-color: tan\\\">b[ar]</span></span>\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"true\"],[\"hilitecolor\",\"#00FFFF\"]] \"fo[o<span style=background-color:tan>b]ar</span>baz\" queryCommandIndeterm(\"hilitecolor\") before":true, > "[[\"stylewithcss\",\"true\"],[\"hilitecolor\",\"#00FFFF\"]] \"fo[o<span style=background-color:tan>b]ar</span>baz\" queryCommandValue(\"hilitecolor\") after":true, >- "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"fo[o<span style=background-color:tan>b]ar</span>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"fo[o<span style=background-color:tan>b]ar</span>baz\" queryCommandIndeterm(\"hilitecolor\") before":true, > "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"fo[o<span style=background-color:tan>b]ar</span>baz\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"true\"],[\"hilitecolor\",\"#00FFFF\"]] \"foo<span style=background-color:tan>ba[r</span>b]az\" queryCommandIndeterm(\"hilitecolor\") before":true, > "[[\"stylewithcss\",\"true\"],[\"hilitecolor\",\"#00FFFF\"]] \"foo<span style=background-color:tan>ba[r</span>b]az\" queryCommandValue(\"hilitecolor\") before":true, > "[[\"stylewithcss\",\"true\"],[\"hilitecolor\",\"#00FFFF\"]] \"foo<span style=background-color:tan>ba[r</span>b]az\" queryCommandValue(\"hilitecolor\") after":true, >- "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"foo<span style=background-color:tan>ba[r</span>b]az\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"foo<span style=background-color:tan>ba[r</span>b]az\" queryCommandIndeterm(\"hilitecolor\") before":true, > "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"foo<span style=background-color:tan>ba[r</span>b]az\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"hilitecolor\",\"#00FFFF\"]] \"fo[o<span style=background-color:tan>bar</span>b]az\" queryCommandIndeterm(\"hilitecolor\") before":true, > "[[\"hilitecolor\",\"#00FFFF\"]] \"fo[o<span style=background-color:tan>bar</span>b]az\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"true\"],[\"hilitecolor\",\"#00FFFF\"]] \"foo[<span style=background-color:tan>b]ar</span>baz\" queryCommandValue(\"hilitecolor\") before":true, > "[[\"stylewithcss\",\"true\"],[\"hilitecolor\",\"#00FFFF\"]] \"foo[<span style=background-color:tan>b]ar</span>baz\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"foo[<span style=background-color:tan>b]ar</span>baz\" queryCommandValue(\"hilitecolor\") before":true, > "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"foo[<span style=background-color:tan>b]ar</span>baz\" queryCommandValue(\"hilitecolor\") after":true, >@@ -3847,26 +3825,24 @@ > "[[\"stylewithcss\",\"true\"],[\"hilitecolor\",\"#00FFFF\"]] \"<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>\" queryCommandIndeterm(\"hilitecolor\") before":true, > "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"true\"],[\"hilitecolor\",\"#00FFFF\"]] \"<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>\" queryCommandValue(\"hilitecolor\") before":true, > "[[\"stylewithcss\",\"true\"],[\"hilitecolor\",\"#00FFFF\"]] \"<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"true\"],[\"hilitecolor\",\"#00FFFF\"]] \"<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>\" queryCommandValue(\"hilitecolor\") before":true, > "[[\"stylewithcss\",\"true\"],[\"hilitecolor\",\"#00FFFF\"]] \"<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>\" queryCommandValue(\"hilitecolor\") after":true, >- "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"<font size=6>[foo]</font>\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"<span style=font-size:xx-large>[foo]</span>\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"true\"],[\"hilitecolor\",\"#00FFFF\"]] \"<font size=6>foo[bar]baz</font>\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"<font size=6>foo[bar]baz</font>\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"true\"],[\"hilitecolor\",\"#00FFFF\"]] \"<span style=font-size:xx-large>foo[bar]baz</span>\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"<span style=font-size:xx-large>foo[bar]baz</span>\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"[foo<font size=6>bar</font>baz]\" queryCommandValue(\"hilitecolor\") after":true, >- "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"[foo<span style=font-size:xx-large>bar</span>baz]\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"hilitecolor\",\"#00FFFF\"]] \"[foo<span style=font-size:xx-large>bar</span>baz]\" queryCommandValue(\"hilitecolor\") after":true, > "[[\"indent\",\"\"]] \"{<p><p> <p>foo</p>}<p>extra\" compare innerHTML":true, > "[[\"indent\",\"\"]] \"<p>foo<br>{}</p><p>extra\" compare innerHTML":true, > "[[\"indent\",\"\"]] \"<span>foo<br>{}</span>bar<p>extra\" compare innerHTML":true, > "[[\"indent\",\"\"]] \"<p>foo</p>{}<p>bar</p>\" compare innerHTML":true, > "[[\"indent\",\"\"]] \"foo[bar]<br>baz<p>extra\" compare innerHTML":true, > "[[\"indent\",\"\"]] \"foo[bar]<br><br><br><br>baz<p>extra\" compare innerHTML":true, > "[[\"indent\",\"\"]] \"foobar<br>[ba]z<p>extra\" compare innerHTML":true, >@@ -6703,36 +6679,38 @@ > "[[\"stylewithcss\",\"true\"],[\"italic\",\"\"]] \"<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"italic\",\"\"]] \"<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"italic\",\"\"]] \"<i><p>foo[<b>bar</b>}</p><p>baz</p></i>\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"italic\",\"\"]] \"<i><p>foo[<b>bar</b>}</p><p>baz</p></i>\" queryCommandState(\"italic\") after":true, > "[[\"stylewithcss\",\"false\"],[\"italic\",\"\"]] \"<i><p>foo[<b>bar</b>}</p><p>baz</p></i>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"italic\",\"\"]] \"<i><p>foo[<b>bar</b>}</p><p>baz</p></i>\" queryCommandState(\"italic\") after":true, > "[[\"stylewithcss\",\"true\"],[\"italic\",\"\"]] \"foo[<i>b]ar</i>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"italic\",\"\"]] \"foo<i>ba[r</i>]baz\" compare innerHTML":true, >- "[[\"italic\",\"\"]] \"fo[o<span style=font-style:italic>b]ar</span>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"italic\",\"\"]] \"fo[o<span style=font-style:oblique>b]ar</span>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"italic\",\"\"]] \"fo[o<span style=font-style:oblique>b]ar</span>baz\" queryCommandIndeterm(\"italic\") after":true, > "[[\"stylewithcss\",\"true\"],[\"italic\",\"\"]] \"fo[o<span style=font-style:oblique>b]ar</span>baz\" queryCommandState(\"italic\") after":true, >+ "[[\"stylewithcss\",\"false\"],[\"italic\",\"\"]] \"fo[o<span style=font-style:oblique>b]ar</span>baz\" compare innerHTML":true, >+ "[[\"stylewithcss\",\"false\"],[\"italic\",\"\"]] \"fo[o<span style=font-style:oblique>b]ar</span>baz\" queryCommandIndeterm(\"italic\") after":true, >+ "[[\"stylewithcss\",\"false\"],[\"italic\",\"\"]] \"fo[o<span style=font-style:oblique>b]ar</span>baz\" queryCommandState(\"italic\") after":true, > "[[\"stylewithcss\",\"true\"],[\"italic\",\"\"]] \"<span style=font-style:italic>fo[o</span><span style=font-style:oblique>b]ar</span>\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"italic\",\"\"]] \"<span style=font-style:italic>fo[o</span><span style=font-style:oblique>b]ar</span>\" queryCommandIndeterm(\"italic\") before":true, > "[[\"stylewithcss\",\"true\"],[\"italic\",\"\"]] \"<span style=font-style:italic>fo[o</span><span style=font-style:oblique>b]ar</span>\" queryCommandState(\"italic\") before":true, > "[[\"stylewithcss\",\"true\"],[\"italic\",\"\"]] \"<span style=font-style:italic>fo[o</span><span style=font-style:oblique>b]ar</span>\" queryCommandIndeterm(\"italic\") after":true, > "[[\"stylewithcss\",\"false\"],[\"italic\",\"\"]] \"<span style=font-style:italic>fo[o</span><span style=font-style:oblique>b]ar</span>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"italic\",\"\"]] \"<span style=font-style:italic>fo[o</span><span style=font-style:oblique>b]ar</span>\" queryCommandIndeterm(\"italic\") before":true, > "[[\"stylewithcss\",\"false\"],[\"italic\",\"\"]] \"<span style=font-style:italic>fo[o</span><span style=font-style:oblique>b]ar</span>\" queryCommandState(\"italic\") before":true, >- "[[\"stylewithcss\",\"false\"],[\"italic\",\"\"]] \"<span style=font-style:italic>fo[o</span><span style=font-style:oblique>b]ar</span>\" queryCommandState(\"italic\") after":true, >+ "[[\"stylewithcss\",\"false\"],[\"italic\",\"\"]] \"<span style=font-style:italic>fo[o</span><span style=font-style:oblique>b]ar</span>\" queryCommandIndeterm(\"italic\") after":true, > "[[\"stylewithcss\",\"true\"],[\"italic\",\"\"]] \"<span style=font-style:oblique>fo[o</span><span style=font-style:italic>b]ar</span>\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"italic\",\"\"]] \"<span style=font-style:oblique>fo[o</span><span style=font-style:italic>b]ar</span>\" queryCommandIndeterm(\"italic\") before":true, > "[[\"stylewithcss\",\"true\"],[\"italic\",\"\"]] \"<span style=font-style:oblique>fo[o</span><span style=font-style:italic>b]ar</span>\" queryCommandState(\"italic\") before":true, > "[[\"stylewithcss\",\"true\"],[\"italic\",\"\"]] \"<span style=font-style:oblique>fo[o</span><span style=font-style:italic>b]ar</span>\" queryCommandIndeterm(\"italic\") after":true, > "[[\"stylewithcss\",\"false\"],[\"italic\",\"\"]] \"<span style=font-style:oblique>fo[o</span><span style=font-style:italic>b]ar</span>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"italic\",\"\"]] \"<span style=font-style:oblique>fo[o</span><span style=font-style:italic>b]ar</span>\" queryCommandIndeterm(\"italic\") before":true, > "[[\"stylewithcss\",\"false\"],[\"italic\",\"\"]] \"<span style=font-style:oblique>fo[o</span><span style=font-style:italic>b]ar</span>\" queryCommandState(\"italic\") before":true, >- "[[\"stylewithcss\",\"false\"],[\"italic\",\"\"]] \"<span style=font-style:oblique>fo[o</span><span style=font-style:italic>b]ar</span>\" queryCommandState(\"italic\") after":true, >+ "[[\"stylewithcss\",\"false\"],[\"italic\",\"\"]] \"<span style=font-style:oblique>fo[o</span><span style=font-style:italic>b]ar</span>\" queryCommandIndeterm(\"italic\") after":true, > "[[\"stylewithcss\",\"true\"],[\"italic\",\"\"]] \"<i>fo[o</i><address>b]ar</address>\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"italic\",\"\"]] \"<i>fo[o</i><address>b]ar</address>\" queryCommandIndeterm(\"italic\") after":true, > "[[\"stylewithcss\",\"false\"],[\"italic\",\"\"]] \"<i>fo[o</i><address>b]ar</address>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"italic\",\"\"]] \"<i>fo[o</i><address>b]ar</address>\" queryCommandIndeterm(\"italic\") after":true, > "[[\"stylewithcss\",\"true\"],[\"defaultparagraphseparator\",\"div\"],[\"justifycenter\",\"\"]] \"foo[]bar<p>extra\": execCommand(\"defaultparagraphseparator\", false, \"div\") return value":true, > "[[\"stylewithcss\",\"true\"],[\"defaultparagraphseparator\",\"div\"],[\"justifycenter\",\"\"]] \"foo[]bar<p>extra\" queryCommandValue(\"defaultparagraphseparator\") before":true, > "[[\"stylewithcss\",\"true\"],[\"defaultparagraphseparator\",\"div\"],[\"justifycenter\",\"\"]] \"foo[]bar<p>extra\" queryCommandValue(\"defaultparagraphseparator\") after":true, > "[[\"stylewithcss\",\"false\"],[\"defaultparagraphseparator\",\"div\"],[\"justifycenter\",\"\"]] \"foo[]bar<p>extra\": execCommand(\"defaultparagraphseparator\", false, \"div\") return value":true, >@@ -10834,23 +10812,20 @@ > "[[\"stylewithcss\",\"false\"],[\"strikethrough\",\"\"]] \"foo<u style=\\\"text-decoration: overline\\\">b[a]r</u>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"strikethrough\",\"\"]] \"<p style=\\\"text-decoration: line-through\\\">foo[bar]baz</p>\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"strikethrough\",\"\"]] \"<p style=\\\"text-decoration: line-through\\\">foo[bar]baz</p>\" queryCommandState(\"strikethrough\") after":true, > "[[\"stylewithcss\",\"false\"],[\"strikethrough\",\"\"]] \"<p style=\\\"text-decoration: line-through\\\">foo[bar]baz</p>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"strikethrough\",\"\"]] \"<p style=\\\"text-decoration: line-through\\\">foo[bar]baz</p>\" queryCommandState(\"strikethrough\") after":true, > "[[\"stylewithcss\",\"false\"],[\"strikethrough\",\"\"]] \"<p style=\\\"text-decoration: overline\\\">foo[bar]baz</p>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"strikethrough\",\"\"]] \"foo<span class=\\\"underline\\\">[bar]</span>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"strikethrough\",\"\"]] \"foo<span class=\\\"underline\\\">b[a]r</span>baz\" compare innerHTML":true, >- "[[\"strikethrough\",\"\"]] \"fo[o<s>b]ar</s>baz\" compare innerHTML":true, >- "[[\"strikethrough\",\"\"]] \"foo<s>ba[r</s>b]az\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"strikethrough\",\"\"]] \"fo[o<s>bar</s>b]az\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"strikethrough\",\"\"]] \"fo[o<s>bar</s>b]az\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"strikethrough\",\"\"]] \"foo[<s>b]ar</s>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"strikethrough\",\"\"]] \"foo<s>ba[r</s>]baz\" compare innerHTML":true, >- "[[\"strikethrough\",\"\"]] \"fo[o<span style=text-decoration:line-through>b]ar</span>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"strikethrough\",\"\"]] \"<strike>fo[o</strike><s>b]ar</s>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"strikethrough\",\"\"]] \"<strike>fo[o</strike><s>b]ar</s>\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"strikethrough\",\"\"]] \"<s>fo[o</s><del>b]ar</del>\" compare innerHTML":true, > "[[\"subscript\",\"\"]] \"<span>foo[</span><span>]bar</span>\" queryCommandState(\"subscript\") after":true, > "[[\"stylewithcss\",\"true\"],[\"subscript\",\"\"]] \"foo<sup>[bar]</sup>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"subscript\",\"\"]] \"foo<sup>[bar]</sup>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"subscript\",\"\"]] \"foo<sup>b[a]r</sup>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"subscript\",\"\"]] \"foo<sup>b[a]r</sup>baz\" compare innerHTML":true, >@@ -10904,17 +10879,16 @@ > "[[\"stylewithcss\",\"true\"],[\"subscript\",\"\"]] \"foo<sup>b<sub>[a]</sub>r</sup>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"subscript\",\"\"]] \"foo<sup>b<sub>[a]</sub>r</sup>baz\" queryCommandIndeterm(\"subscript\") before":true, > "[[\"stylewithcss\",\"true\"],[\"subscript\",\"\"]] \"foo<sup>b<sub>[a]</sub>r</sup>baz\" queryCommandState(\"subscript\") before":true, > "[[\"stylewithcss\",\"true\"],[\"subscript\",\"\"]] \"foo<sup>b<sub>[a]</sub>r</sup>baz\" queryCommandState(\"subscript\") after":true, > "[[\"stylewithcss\",\"false\"],[\"subscript\",\"\"]] \"foo<sup>b<sub>[a]</sub>r</sup>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"subscript\",\"\"]] \"foo<sup>b<sub>[a]</sub>r</sup>baz\" queryCommandIndeterm(\"subscript\") before":true, > "[[\"stylewithcss\",\"false\"],[\"subscript\",\"\"]] \"foo<sup>b<sub>[a]</sub>r</sup>baz\" queryCommandState(\"subscript\") before":true, > "[[\"stylewithcss\",\"false\"],[\"subscript\",\"\"]] \"foo<sup>b<sub>[a]</sub>r</sup>baz\" queryCommandState(\"subscript\") after":true, >- "[[\"subscript\",\"\"]] \"fo[o<sub>b]ar</sub>baz\" compare innerHTML":true, > "[[\"subscript\",\"\"]] \"<sub>fo[o</sub><sup>b]ar</sup>\" compare innerHTML":true, > "[[\"superscript\",\"\"]] \"<span>foo[</span><span>]bar</span>\" queryCommandState(\"superscript\") after":true, > "[[\"stylewithcss\",\"true\"],[\"superscript\",\"\"]] \"foo<sub>[bar]</sub>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"superscript\",\"\"]] \"foo<sub>[bar]</sub>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"superscript\",\"\"]] \"foo<sub>b[a]r</sub>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"superscript\",\"\"]] \"foo<sub>b[a]r</sub>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"superscript\",\"\"]] \"foo<sub><sub>[bar]</sub></sub>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"superscript\",\"\"]] \"foo<sub><sub>[bar]</sub></sub>baz\" compare innerHTML":true, >@@ -10966,17 +10940,16 @@ > "[[\"stylewithcss\",\"true\"],[\"superscript\",\"\"]] \"foo<sup>b<sub>[a]</sub>r</sup>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"superscript\",\"\"]] \"foo<sup>b<sub>[a]</sub>r</sup>baz\" queryCommandIndeterm(\"superscript\") before":true, > "[[\"stylewithcss\",\"true\"],[\"superscript\",\"\"]] \"foo<sup>b<sub>[a]</sub>r</sup>baz\" queryCommandState(\"superscript\") before":true, > "[[\"stylewithcss\",\"true\"],[\"superscript\",\"\"]] \"foo<sup>b<sub>[a]</sub>r</sup>baz\" queryCommandState(\"superscript\") after":true, > "[[\"stylewithcss\",\"false\"],[\"superscript\",\"\"]] \"foo<sup>b<sub>[a]</sub>r</sup>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"superscript\",\"\"]] \"foo<sup>b<sub>[a]</sub>r</sup>baz\" queryCommandIndeterm(\"superscript\") before":true, > "[[\"stylewithcss\",\"false\"],[\"superscript\",\"\"]] \"foo<sup>b<sub>[a]</sub>r</sup>baz\" queryCommandState(\"superscript\") before":true, > "[[\"stylewithcss\",\"false\"],[\"superscript\",\"\"]] \"foo<sup>b<sub>[a]</sub>r</sup>baz\" queryCommandState(\"superscript\") after":true, >- "[[\"superscript\",\"\"]] \"fo[o<sup>b]ar</sup>baz\" compare innerHTML":true, > "[[\"superscript\",\"\"]] \"<sup>fo[o</sup><sub>b]ar</sub>\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"superscript\",\"\"]] \"foo<sup>[bar]<br></sup>\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"superscript\",\"\"]] \"foo<sup>[bar]<br></sup>\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"underline\",\"\"]] \"<span>[foo</span> <span>bar]</span>\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"underline\",\"\"]] \"<span>[foo</span> <span>bar]</span>\" queryCommandIndeterm(\"underline\") before":true, > "[[\"stylewithcss\",\"false\"],[\"underline\",\"\"]] \"<span>[foo</span> <span>bar]</span>\" queryCommandIndeterm(\"underline\") before":true, > "[[\"stylewithcss\",\"true\"],[\"underline\",\"\"]] \"<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"underline\",\"\"]] \"<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>\" queryCommandIndeterm(\"underline\") before":true, >@@ -11006,25 +10979,20 @@ > "[[\"stylewithcss\",\"false\"],[\"underline\",\"\"]] \"foo<span style=\\\"text-decoration: underline line-through\\\">b[a]r</span>baz\" queryCommandState(\"underline\") after":true, > "[[\"stylewithcss\",\"true\"],[\"underline\",\"\"]] \"foo<s style=\\\"text-decoration: underline\\\">[bar]</s>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"underline\",\"\"]] \"foo<s style=\\\"text-decoration: underline\\\">[bar]</s>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"underline\",\"\"]] \"foo<s style=\\\"text-decoration: underline\\\">b[a]r</s>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"underline\",\"\"]] \"foo<s style=\\\"text-decoration: underline\\\">b[a]r</s>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"underline\",\"\"]] \"foo<s style=\\\"text-decoration: underline\\\">b[a]r</s>baz\" queryCommandState(\"underline\") after":true, > "[[\"stylewithcss\",\"true\"],[\"underline\",\"\"]] \"foo<u style=\\\"text-decoration: line-through\\\">[bar]</u>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"underline\",\"\"]] \"foo<u style=\\\"text-decoration: line-through\\\">[bar]</u>baz\" compare innerHTML":true, >- "[[\"stylewithcss\",\"false\"],[\"underline\",\"\"]] \"foo<u style=\\\"text-decoration: line-through\\\">b[a]r</u>baz\" compare innerHTML":true, >- "[[\"stylewithcss\",\"false\"],[\"underline\",\"\"]] \"foo<u style=\\\"text-decoration: line-through\\\">b[a]r</u>baz\" queryCommandState(\"underline\") after":true, > "[[\"stylewithcss\",\"true\"],[\"underline\",\"\"]] \"foo<u style=\\\"text-decoration: overline\\\">[bar]</u>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"false\"],[\"underline\",\"\"]] \"foo<u style=\\\"text-decoration: overline\\\">[bar]</u>baz\" compare innerHTML":true, >- "[[\"stylewithcss\",\"false\"],[\"underline\",\"\"]] \"foo<u style=\\\"text-decoration: overline\\\">b[a]r</u>baz\" compare innerHTML":true, >- "[[\"stylewithcss\",\"false\"],[\"underline\",\"\"]] \"foo<u style=\\\"text-decoration: overline\\\">b[a]r</u>baz\" queryCommandState(\"underline\") after":true, > "[[\"stylewithcss\",\"true\"],[\"underline\",\"\"]] \"foo[<u>b]ar</u>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"underline\",\"\"]] \"foo<u>ba[r</u>]baz\" compare innerHTML":true, >- "[[\"underline\",\"\"]] \"fo[o<span style=text-decoration:underline>b]ar</span>baz\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"underline\",\"\"]] \"<ins>fo[o</ins><u>b]ar</u>\" compare innerHTML":true, > "[[\"stylewithcss\",\"true\"],[\"underline\",\"\"]] \"<u>fo[o</u><ins>b]ar</ins>\" compare innerHTML":true, > "[[\"unlink\",\"\"]] \"<a href=http://www.google.com/>foo[bar]baz</a>\" compare innerHTML":true, > "[[\"unlink\",\"\"]] \"<a href=http://www.google.com/>foo[barbaz</a>}\" compare innerHTML":true, > "[[\"unlink\",\"\"]] \"{<a href=http://www.google.com/>foobar]baz</a>\" compare innerHTML":true, > "[[\"unlink\",\"\"]] \"foo<a href=http://www.google.com/>b[]ar</a>baz\" compare innerHTML":true, > "[[\"unlink\",\"\"]] \"<a id=foo href=http://www.google.com/>foobar[]baz</a>\" compare innerHTML":true, > "[[\"unlink\",\"\"]] \"<a id=foo href=http://www.google.com/>foo[bar]baz</a>\" compare innerHTML":true, >diff --git a/editor/libeditor/base/nsEditor.cpp b/editor/libeditor/base/nsEditor.cpp >--- a/editor/libeditor/base/nsEditor.cpp >+++ b/editor/libeditor/base/nsEditor.cpp >@@ -1441,16 +1441,27 @@ nsEditor::SplitNode(nsIDOMNode * aNode, > nsIDOMNode *ptr = *aNewLeftNode; > mActionListeners[i]->DidSplitNode(aNode, aOffset, ptr, result); > } > > return result; > } > > >+void >+nsEditor::JoinNodes(nsINode* aNodeToKeep, nsIContent* aNodeToMove) >+{ >+ // We don't really need aNodeToMove's parent to be non-null -- we could just >+ // skip adjusting any ranges in aNodeToMove's parent if there is none. But >+ // the current implementation requires it. >+ MOZ_ASSERT(aNodeToKeep && aNodeToMove && aNodeToMove->GetNodeParent()); >+ nsresult res = JoinNodes(aNodeToKeep->AsDOMNode(), aNodeToMove->AsDOMNode(), >+ aNodeToMove->GetNodeParent()->AsDOMNode()); >+ MOZ_ASSERT(NS_SUCCEEDED(res)); >+} > > NS_IMETHODIMP > nsEditor::JoinNodes(nsIDOMNode * aLeftNode, > nsIDOMNode * aRightNode, > nsIDOMNode * aParent) > { > PRInt32 i, offset; > nsAutoRules beginRulesSniffing(this, kOpJoinNode, nsIEditor::ePrevious); >@@ -1674,16 +1685,26 @@ nsEditor::InsertContainerAbove( nsIDOMNo > } > > // put new parent in doc > return InsertNode(*outNode, parent, offset); > } > > /////////////////////////////////////////////////////////////////////////// > // MoveNode: move aNode to {aParent,aOffset} >+void >+nsEditor::MoveNode(nsIContent* aNode, nsINode* aParent, PRInt32 aOffset) >+{ >+ MOZ_ASSERT(aNode && aParent); >+ MOZ_ASSERT(aOffset == -1 || (0 <= aOffset && >+ aOffset <= (PRInt32)aParent->Length())); >+ nsresult res = MoveNode(aNode->AsDOMNode(), aParent->AsDOMNode(), aOffset); >+ MOZ_ASSERT(NS_SUCCEEDED(res)); >+} >+ > nsresult > nsEditor::MoveNode(nsIDOMNode *aNode, nsIDOMNode *aParent, PRInt32 aOffset) > { > NS_ENSURE_TRUE(aNode && aParent, NS_ERROR_NULL_POINTER); > > nsCOMPtr<nsIDOMNode> oldParent; > PRInt32 oldOffset; > nsresult res = GetNodeLocation(aNode, address_of(oldParent), &oldOffset); >diff --git a/editor/libeditor/base/nsEditor.h b/editor/libeditor/base/nsEditor.h >--- a/editor/libeditor/base/nsEditor.h >+++ b/editor/libeditor/base/nsEditor.h >@@ -187,16 +187,18 @@ public: > > nsresult RemoveContainer(nsINode* aNode); > nsresult RemoveContainer(nsIDOMNode *inNode); > nsresult InsertContainerAbove(nsIDOMNode *inNode, > nsCOMPtr<nsIDOMNode> *outNode, > const nsAString &aNodeType, > const nsAString *aAttribute = nsnull, > const nsAString *aValue = nsnull); >+ void JoinNodes(nsINode* aNodeToKeep, nsIContent* aNodeToMove); >+ void MoveNode(nsIContent* aNode, nsINode* aParent, PRInt32 aOffset); > nsresult MoveNode(nsIDOMNode *aNode, nsIDOMNode *aParent, PRInt32 aOffset); > > /* Method to replace certain CreateElementNS() calls. > Arguments: > nsString& aTag - tag you want > nsIContent** aContent - returned Content that was created with above namespace. > */ > nsresult CreateHTMLContent(const nsAString& aTag, nsIContent** aContent); >diff --git a/editor/libeditor/html/nsHTMLCSSUtils.cpp b/editor/libeditor/html/nsHTMLCSSUtils.cpp >--- a/editor/libeditor/html/nsHTMLCSSUtils.cpp >+++ b/editor/libeditor/html/nsHTMLCSSUtils.cpp >@@ -935,18 +935,37 @@ nsHTMLCSSUtils::GenerateCSSDeclarationsF > } > } > if (equivTable) { > BuildCSSDeclarations(cssPropertyArray, cssValueArray, equivTable, > aValue, aGetOrRemoveRequest); > } > } > >-// Add to aNode the CSS inline style equivalent to HTMLProperty/aAttribute/aValue for the node, >-// and return in aCount the number of CSS properties set by the call >+// Add to aNode the CSS inline style equivalent to HTMLProperty/aAttribute/ >+// aValue for the node, and return in aCount the number of CSS properties set >+// by the call. The dom::Element version returns aCount instead. >+PRInt32 >+nsHTMLCSSUtils::SetCSSEquivalentToHTMLStyle(dom::Element* aElement, >+ nsIAtom* aProperty, >+ const nsAString* aAttribute, >+ const nsAString* aValue, >+ bool aSuppressTransaction) >+{ >+ MOZ_ASSERT(aElement && aProperty); >+ MOZ_ASSERT_IF(aAttribute, aValue); >+ PRInt32 count; >+ nsresult res = SetCSSEquivalentToHTMLStyle(aElement->AsDOMNode(), >+ aProperty, aAttribute, >+ aValue, &count, >+ aSuppressTransaction); >+ MOZ_ASSERT(NS_SUCCEEDED(res)); >+ return count; >+} >+ > nsresult > nsHTMLCSSUtils::SetCSSEquivalentToHTMLStyle(nsIDOMNode * aNode, > nsIAtom *aHTMLProperty, > const nsAString *aAttribute, > const nsAString *aValue, > PRInt32 * aCount, > bool aSuppressTransaction) > { >@@ -1266,16 +1285,24 @@ nsHTMLCSSUtils::IsCSSPrefChecked() > { > return mIsCSSPrefChecked ; > } > > // ElementsSameStyle compares two elements and checks if they have the same > // specified CSS declarations in the STYLE attribute > // The answer is always negative if at least one of them carries an ID or a class > bool >+nsHTMLCSSUtils::ElementsSameStyle(dom::Element* aFirstNode, >+ dom::Element* aSecondNode) >+{ >+ MOZ_ASSERT(aFirstNode && aSecondNode); >+ return ElementsSameStyle(aFirstNode->AsDOMNode(), aSecondNode->AsDOMNode()); >+} >+ >+bool > nsHTMLCSSUtils::ElementsSameStyle(nsIDOMNode *aFirstNode, nsIDOMNode *aSecondNode) > { > nsresult res; > nsCOMPtr<nsIDOMElement> firstElement = do_QueryInterface(aFirstNode); > nsCOMPtr<nsIDOMElement> secondElement = do_QueryInterface(aSecondNode); > > NS_ASSERTION((firstElement && secondElement), "Non element nodes passed to ElementsSameStyle."); > >diff --git a/editor/libeditor/html/nsHTMLCSSUtils.h b/editor/libeditor/html/nsHTMLCSSUtils.h >--- a/editor/libeditor/html/nsHTMLCSSUtils.h >+++ b/editor/libeditor/html/nsHTMLCSSUtils.h >@@ -207,17 +207,25 @@ public: > * > * @param aNode [IN] a DOM node > * @param aHTMLProperty [IN] an atom containing an HTML property > * @param aAttribute [IN] a pointer to an attribute name or nsnull if irrelevant > * @param aValue [IN] the attribute value > * @param aCount [OUT] the number of CSS properties set by the call > * @param aSuppressTransaction [IN] a boolean indicating, when true, > * that no transaction should be recorded >+ * >+ * aCount is returned by the dom::Element variant instead of being an out >+ * parameter. > */ >+ PRInt32 SetCSSEquivalentToHTMLStyle(mozilla::dom::Element* aElement, >+ nsIAtom* aProperty, >+ const nsAString* aAttribute, >+ const nsAString* aValue, >+ bool aSuppressTransaction); > nsresult SetCSSEquivalentToHTMLStyle(nsIDOMNode * aNode, > nsIAtom * aHTMLProperty, > const nsAString * aAttribute, > const nsAString * aValue, > PRInt32 * aCount, > bool aSuppressTransaction); > > /** removes from the node the CSS inline styles equivalent to the HTML style >@@ -262,16 +270,18 @@ public: > /** ElementsSameStyle compares two elements and checks if they have the same > * specified CSS declarations in the STYLE attribute > * The answer is always false if at least one of them carries an ID or a class > * > * @return true if the two elements are considered to have same styles > * @param aFirstNode [IN] a DOM node > * @param aSecondNode [IN] a DOM node > */ >+ bool ElementsSameStyle(mozilla::dom::Element* aFirstNode, >+ mozilla::dom::Element* aSecondNode); > bool ElementsSameStyle(nsIDOMNode *aFirstNode, nsIDOMNode *aSecondNode); > > /** get the specified inline styles (style attribute) for an element > * > * @param aElement [IN] the element node > * @param aCssDecl [OUT] the CSS declaration corresponding to the style attr > * @param aLength [OUT] the number of declarations in aCssDecl > */ >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 >@@ -666,18 +666,16 @@ protected: > nsresult RemoveStyleInside(nsIDOMNode *aNode, > nsIAtom *aProperty, > const nsAString *aAttribute, > const bool aChildrenOnly = false); > nsresult RemoveInlinePropertyImpl(nsIAtom *aProperty, const nsAString *aAttribute); > > bool NodeIsProperty(nsIDOMNode *aNode); > bool HasAttr(nsIDOMNode *aNode, const nsAString *aAttribute); >- bool HasAttrVal(const nsIContent* aNode, const nsAString* aAttribute, >- const nsAString& aValue); > bool IsAtFrontOfNode(nsIDOMNode *aNode, PRInt32 aOffset); > bool IsAtEndOfNode(nsIDOMNode *aNode, PRInt32 aOffset); > bool IsOnlyAttribute(nsIDOMNode *aElement, const nsAString *aAttribute); > bool IsOnlyAttribute(const nsIContent* aElement, const nsAString& aAttribute); > > nsresult RemoveBlockContainer(nsIDOMNode *inNode); > nsIContent* GetPriorHTMLSibling(nsINode* aNode); > nsresult GetPriorHTMLSibling(nsIDOMNode *inNode, nsCOMPtr<nsIDOMNode> *outNode); >@@ -930,17 +928,21 @@ public: > > // friends > friend class nsHTMLEditRules; > friend class nsTextEditRules; > friend class nsWSRunObject; > friend class nsHTMLEditorEventListener; > > private: >- // Helper >+ // Helpers >+ bool IsSimpleModifiableNode(nsIContent* aContent, >+ nsIAtom* aProperty, >+ const nsAString* aAttribute, >+ const nsAString* aValue); > nsresult SetInlinePropertyOnNodeImpl(nsIContent* aNode, > nsIAtom* aProperty, > const nsAString* aAttribute, > const nsAString* aValue); > > }; > #endif //nsHTMLEditor_h__ > >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 >@@ -220,16 +220,87 @@ nsHTMLEditor::SetInlineProperty(nsIAtom > // post-process > return mRules->DidDoAction(selection, &ruleInfo, res); > } > return NS_OK; > } > > > >+// Helper function for SetInlinePropertyOn*: is aNode a simple old <b>, <font>, >+// <span style="">, etc. that we can reuse instead of creating a new one? >+bool >+nsHTMLEditor::IsSimpleModifiableNode(nsIContent* aContent, >+ nsIAtom* aProperty, >+ const nsAString* aAttribute, >+ const nsAString* aValue) >+{ >+ // aContent can be null, in which case we'll return false in a few lines >+ MOZ_ASSERT(aProperty); >+ MOZ_ASSERT_IF(aAttribute, aValue); >+ >+ nsCOMPtr<dom::Element> element = do_QueryInterface(aContent); >+ if (!element) { >+ return false; >+ } >+ >+ // First check for <b>, <i>, etc. >+ if (element->IsHTML(aProperty) && !element->GetAttrCount() && >+ (!aAttribute || aAttribute->IsEmpty())) { >+ return true; >+ } >+ >+ // Special cases for various equivalencies: <strong>, <em>, <s> >+ if (!element->GetAttrCount() && >+ ((aProperty == nsGkAtoms::b && element->IsHTML(nsGkAtoms::strong)) || >+ (aProperty == nsGkAtoms::i && element->IsHTML(nsGkAtoms::em)) || >+ (aProperty == nsGkAtoms::strike && element->IsHTML(nsGkAtoms::s)))) { >+ return true; >+ } >+ >+ // Now look for things like <font> >+ if (aAttribute && !aAttribute->IsEmpty()) { >+ nsCOMPtr<nsIAtom> atom = do_GetAtom(*aAttribute); >+ MOZ_ASSERT(atom); >+ >+ if (element->IsHTML(aProperty) && IsOnlyAttribute(element, *aAttribute) && >+ element->AttrValueIs(kNameSpaceID_None, atom, *aValue, eIgnoreCase)) { >+ // This is not quite correct, because it excludes cases like >+ // <font face=000> being the same as <font face=#000000>. >+ // Property-specific handling is needed. >+ return true; >+ } >+ } >+ >+ // No luck so far. Now we check for a <span> with a single style="" >+ // attribute that sets only the style we're looking for, if this type of >+ // style supports it >+ if (!mHTMLCSSUtils->IsCSSEditableProperty(element, aProperty, >+ aAttribute, aValue) || >+ !element->IsHTML(nsGkAtoms::span) || element->GetAttrCount() != 1 || >+ !element->HasAttr(kNameSpaceID_None, nsGkAtoms::style)) { >+ return false; >+ } >+ >+ // Some CSS styles are not so simple. For instance, underline is >+ // "text-decoration: underline", which decomposes into four different text-* >+ // properties. So for now, we just create a span, add the desired style, and >+ // see if it matches. >+ nsCOMPtr<nsIContent> newSpan; >+ nsresult res = CreateHTMLContent(NS_LITERAL_STRING("span"), >+ getter_AddRefs(newSpan)); >+ MOZ_ASSERT(NS_SUCCEEDED(res)); >+ mHTMLCSSUtils->SetCSSEquivalentToHTMLStyle(newSpan->AsElement(), aProperty, >+ aAttribute, aValue, >+ /*suppress transaction*/ true); >+ >+ return mHTMLCSSUtils->ElementsSameStyle(newSpan->AsElement(), element); >+} >+ >+ > nsresult > nsHTMLEditor::SetInlinePropertyOnTextNode( nsIDOMCharacterData *aTextNode, > PRInt32 aStartOffset, > PRInt32 aEndOffset, > nsIAtom *aProperty, > const nsAString *aAttribute, > const nsAString *aValue) > { >@@ -245,18 +316,17 @@ nsHTMLEditor::SetInlinePropertyOnTextNod > > // don't need to do anything if no characters actually selected > if (aStartOffset == aEndOffset) return NS_OK; > > nsCOMPtr<nsIDOMNode> node = aTextNode; > > // don't need to do anything if property already set on node > bool bHasProp; >- if (IsCSSEnabled() && >- mHTMLCSSUtils->IsCSSEditableProperty(node, aProperty, >+ if (mHTMLCSSUtils->IsCSSEditableProperty(node, aProperty, > aAttribute, aValue)) { > // the HTML styles defined by aProperty/aAttribute has a CSS equivalence > // in this implementation for node; let's check if it carries those css styles > nsAutoString value(*aValue); > mHTMLCSSUtils->IsCSSEquivalentToHTMLInlineStyleSet(node, aProperty, aAttribute, > bHasProp, value, > COMPUTED_STYLE_TYPE); > } else { >@@ -285,26 +355,22 @@ nsHTMLEditor::SetInlinePropertyOnTextNod > } > > nsCOMPtr<nsIContent> content = do_QueryInterface(node); > NS_ENSURE_STATE(content); > > if (aAttribute) { > // look for siblings that are correct type of node > nsIContent* sibling = GetPriorHTMLSibling(content); >- if (sibling && sibling->Tag() == aProperty && >- HasAttrVal(sibling, aAttribute, *aValue) && >- IsOnlyAttribute(sibling, *aAttribute)) { >+ if (IsSimpleModifiableNode(sibling, aProperty, aAttribute, aValue)) { > // previous sib is already right kind of inline node; slide this over into it > return MoveNode(node, sibling->AsDOMNode(), -1); > } > sibling = GetNextHTMLSibling(content); >- if (sibling && sibling->Tag() == aProperty && >- HasAttrVal(sibling, aAttribute, *aValue) && >- IsOnlyAttribute(sibling, *aAttribute)) { >+ if (IsSimpleModifiableNode(sibling, aProperty, aAttribute, aValue)) { > // following sib is already right kind of inline node; slide this over into it > return MoveNode(node, sibling->AsDOMNode(), 0); > } > } > > // reparent the node inside inline node with appropriate {attribute,value} > return SetInlinePropertyOnNode(node, aProperty, aAttribute, aValue); > } >@@ -344,23 +410,38 @@ nsHTMLEditor::SetInlinePropertyOnNodeImp > nsresult rv = SetInlinePropertyOnNode(arrayOfNodes[j], aProperty, > aAttribute, aValue); > NS_ENSURE_SUCCESS(rv, rv); > } > } > return NS_OK; > } > >+ // First check if there's an adjacent sibling we can put our node into. >+ nsresult res; >+ nsCOMPtr<nsIContent> previousSibling = GetPriorHTMLSibling(aNode); >+ nsCOMPtr<nsIContent> nextSibling = GetNextHTMLSibling(aNode); >+ if (IsSimpleModifiableNode(previousSibling, aProperty, aAttribute, aValue)) { >+ MoveNode(aNode, previousSibling, -1); >+ if (IsSimpleModifiableNode(nextSibling, aProperty, aAttribute, aValue)) { >+ JoinNodes(previousSibling, nextSibling); >+ } >+ return NS_OK; >+ } >+ if (IsSimpleModifiableNode(nextSibling, aProperty, aAttribute, aValue)) { >+ MoveNode(aNode, nextSibling, 0); >+ return NS_OK; >+ } >+ > bool useCSS = (IsCSSEnabled() && > mHTMLCSSUtils->IsCSSEditableProperty(aNode, aProperty, > aAttribute, aValue)) || > // bgcolor is always done using CSS > aAttribute->EqualsLiteral("bgcolor"); > >- nsresult res; > if (useCSS) { > nsCOMPtr<nsIDOMNode> tmp = aNode->AsDOMNode(); > // We only add style="" to <span>s with no attributes (bug 746515). If we > // don't have one, we need to make one. > if (!aNode->IsElement() || !aNode->AsElement()->IsHTML(nsGkAtoms::span) || > aNode->AsElement()->GetAttrCount()) { > res = InsertContainerAbove(aNode->AsDOMNode(), address_of(tmp), > NS_LITERAL_STRING("span"), >@@ -368,67 +449,26 @@ nsHTMLEditor::SetInlinePropertyOnNodeImp > NS_ENSURE_SUCCESS(res, res); > } > // Add the CSS styles corresponding to the HTML style request > PRInt32 count; > res = mHTMLCSSUtils->SetCSSEquivalentToHTMLStyle(tmp, aProperty, > aAttribute, aValue, > &count, false); > NS_ENSURE_SUCCESS(res, res); >- >- nsCOMPtr<nsIDOMNode> nextSibling, previousSibling; >- GetNextHTMLSibling(tmp, address_of(nextSibling)); >- GetPriorHTMLSibling(tmp, address_of(previousSibling)); >- if (nextSibling || previousSibling) { >- nsCOMPtr<nsIDOMNode> mergeParent; >- res = tmp->GetParentNode(getter_AddRefs(mergeParent)); >- NS_ENSURE_SUCCESS(res, res); >- if (previousSibling && >- nsEditor::NodeIsType(previousSibling, nsEditProperty::span) && >- NodesSameType(tmp, previousSibling)) { >- res = JoinNodes(previousSibling, tmp, mergeParent); >- NS_ENSURE_SUCCESS(res, res); >- } >- if (nextSibling && >- nsEditor::NodeIsType(nextSibling, nsEditProperty::span) && >- NodesSameType(tmp, nextSibling)) { >- res = JoinNodes(tmp, nextSibling, mergeParent); >- NS_ENSURE_SUCCESS(res, res); >- } >- } > return NS_OK; > } > > // is it already the right kind of node, but with wrong attribute? > if (aNode->Tag() == aProperty) { > // Just set the attribute on it. > nsCOMPtr<nsIDOMElement> elem = do_QueryInterface(aNode); > return SetAttribute(elem, *aAttribute, *aValue); > } > >- // Either put it inside a neighboring node, or make a new one. >- // is either of its neighbors the right kind of node? >- if (aAttribute) { >- nsIContent* priorNode = GetPriorHTMLSibling(aNode); >- if (priorNode && priorNode->Tag() == aProperty && >- HasAttrVal(priorNode, aAttribute, *aValue) && >- IsOnlyAttribute(priorNode, *aAttribute)) { >- // previous sib is already right kind of inline node; slide this over into it >- return MoveNode(aNode->AsDOMNode(), priorNode->AsDOMNode(), -1); >- } >- >- nsIContent* nextNode = GetNextHTMLSibling(aNode); >- if (nextNode && nextNode->Tag() == aProperty && >- HasAttrVal(nextNode, aAttribute, *aValue) && >- IsOnlyAttribute(nextNode, *aAttribute)) { >- // following sib is already right kind of inline node; slide this over into it >- return MoveNode(aNode->AsDOMNode(), nextNode->AsDOMNode(), 0); >- } >- } >- > // ok, chuck it in its very own container > nsCOMPtr<nsIDOMNode> tmp; > return InsertContainerAbove(aNode->AsDOMNode(), address_of(tmp), tag, > aAttribute, aValue); > } > > > nsresult >@@ -853,33 +893,16 @@ bool nsHTMLEditor::HasAttr(nsIDOMNode* a > > nsCOMPtr<nsIAtom> atom = do_GetAtom(*aAttribute); > NS_ENSURE_TRUE(atom, false); > > return element->HasAttr(kNameSpaceID_None, atom); > } > > >-bool nsHTMLEditor::HasAttrVal(const nsIContent* aNode, >- const nsAString* aAttribute, >- const nsAString& aValue) >-{ >- MOZ_ASSERT(aNode); >- >- if (!aAttribute || aAttribute->IsEmpty()) { >- // everybody has the 'null' attribute >- return true; >- } >- >- nsCOMPtr<nsIAtom> atom = do_GetAtom(*aAttribute); >- NS_ENSURE_TRUE(atom, false); >- >- return aNode->AttrValueIs(kNameSpaceID_None, atom, aValue, eIgnoreCase); >-} >- > nsresult nsHTMLEditor::PromoteRangeIfStartsOrEndsInNamedAnchor(nsIDOMRange *inRange) > { > NS_ENSURE_TRUE(inRange, NS_ERROR_NULL_POINTER); > nsresult res; > nsCOMPtr<nsIDOMNode> startNode, endNode, parent, tmp; > PRInt32 startOffset, endOffset, tmpOffset; > > res = inRange->GetStartContainer(getter_AddRefs(startNode));
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 757371
:
627899
|
627901
|
627902
|
627906
|
629146
|
629148