[html5] r7009 - [giow] (0) Add support for MutationObservers. (Also, add a minor internal note i [...]
whatwg at whatwg.org
whatwg at whatwg.org
Wed Feb 29 13:24:44 PST 2012
Author: ianh
Date: 2012-02-29 13:24:40 -0800 (Wed, 29 Feb 2012)
New Revision: 7009
Modified:
complete.html
index
source
Log:
[giow] (0) Add support for MutationObservers. (Also, add a minor internal note in the canvas section unrelated to this.) (Also, automated update of the CLDR which resulted in removing separate support for el-POLYTON.)
Affected topics: Canvas, DOM APIs, HTML
Modified: complete.html
===================================================================
--- complete.html 2012-02-22 20:11:43 UTC (rev 7008)
+++ complete.html 2012-02-29 21:24:40 UTC (rev 7009)
@@ -240,7 +240,7 @@
<header class=head id=head><p><a class=logo href=http://www.whatwg.org/><img alt=WHATWG height=101 src=/images/logo width=101></a></p>
<hgroup><h1 class=allcaps>HTML</h1>
- <h2 class="no-num no-toc">Living Standard — Last Updated 22 February 2012</h2>
+ <h2 class="no-num no-toc">Living Standard — Last Updated 29 February 2012</h2>
</hgroup><dl><dt><strong>Web developer edition:</strong></dt>
<dd><strong><a href=http://developers.whatwg.org/>http://developers.whatwg.org/</a></strong></dd>
<dt>Multiple-page version:</dt>
@@ -3858,11 +3858,15 @@
<li>The distinction between <dfn id=xml-documents>XML documents</dfn> and <dfn id=html-documents>HTML documents</dfn></li>
<li>The terms <dfn id=quirks-mode>quirks mode</dfn>, <dfn id=limited-quirks-mode>limited-quirks mode</dfn>, and <dfn id=no-quirks-mode>no-quirks mode</dfn></li>
<li>The algorithm to <dfn id=concept-node-clone title=concept-node-clone>clone</dfn> a <code><a href=#node>Node</a></code>, and the concept of <dfn id=concept-node-clone-ext title=concept-node-clone-ext>cloning steps</dfn> used by that algorithm</li>
- <li>The concept of <dfn id=base-url-change-steps>base URL change steps</dfn> and the definition of what happens when an element is <dfn id=affected-by-a-base-url-change>affected by a base URL change</dfn>.</li>
- <li>The concept of an element's <dfn id=concept-id title=concept-id>unique identifier (ID)</dfn>.</li>
+ <li>The concept of <dfn id=base-url-change-steps>base URL change steps</dfn> and the definition of what happens when an element is <dfn id=affected-by-a-base-url-change>affected by a base URL change</dfn></li>
+ <li>The concept of an element's <dfn id=concept-id title=concept-id>unique identifier (ID)</dfn></li>
<li>The concept of a DOM <dfn id=concept-range title=concept-range>range</dfn>.</li>
+ <li><dfn id=mutationobserver><code>MutationObserver</code></dfn> interface</li>
+ <li>The <dfn id=mutationobserver-scripting-environment><code>MutationObserver</code> <var title="">scripting environment</var></dfn> concept</li>
+ <li>The <dfn id=concept-mo-invoke title=concept-mo-invoke>invoke <code>MutationObserver</code> objects</dfn> algorith,</li>
+
</ul><p>The term <dfn id=throw>throw</dfn> in this specification is used as
defined in the DOM Core specification. The following
<code><a href=#domexception>DOMException</a></code> types are defined in the DOM Core
@@ -36608,6 +36612,7 @@
Jordan OSETE suggests:
* support ways of extending the clipping region (union instead of intersection)
- also "add", "subtract", "replace", "intersect" and "xor"
+ - maybe just support creating unions, intersections, and other -ions of paths
* support ways of resetting the clipping region without save/restore
-->
@@ -61413,9 +61418,21 @@
is no <a href=#entry-script>entry script</a>. It is changed by the <a href=#jump-to-a-code-entry-point>jump to
a code entry-point</a> algorithm.</p>
- <p class=note>There is at most one <a href=#event-loop>event loop</a> per
- <a href=#unit-of-related-similar-origin-browsing-contexts>unit of related similar-origin browsing contexts</a>.</p>
+ <p>Each <a href=#unit-of-related-similar-origin-browsing-contexts>unit of related similar-origin browsing
+ contexts</a> also has a <dfn id=running-mutation-observers>running mutation observers</dfn>
+ flag, which must initially be false. It is used to prevent reentrant
+ invocation of the algorithm to <a href=#concept-mo-invoke title=concept-mo-invoke>invoke <code>MutationObserver</code>
+ objects</a>. For the purposes of <code><a href=#mutationobserver>MutationObserver</a></code>
+ objects, each <a href=#unit-of-related-similar-origin-browsing-contexts>unit of related similar-origin browsing
+ contexts</a> is a distinct <var title="MutationObserver scripting
+ environment"><a href=#mutationobserver-scripting-environment>scripting environment</a></var>.</p>
+ <p class=note>There is also at most one <a href=#event-loop>event loop</a>
+ per <a href=#unit-of-related-similar-origin-browsing-contexts>unit of related similar-origin browsing contexts</a>
+ (though several <a href=#unit-of-related-similar-origin-browsing-contexts title="unit of related similar-origin browsing
+ contexts">units of related similar-origin browsing contexts</a>
+ can have a shared <a href=#event-loop>event loop</a>).</p>
+
</div>
@@ -67798,6 +67815,8 @@
<li><p>Set the <a href=#entry-script>entry script</a> back to whatever it was
when this algorithm started.</li>
+ <li><p><a href=#perform-a-microtask-checkpoint>Perform a microtask checkpoint</a>.</li>
+
</ol><p>This algorithm is not invoked by one script calling another.</p>
</div>
@@ -68156,6 +68175,8 @@
<li><p>Remove that task from its <a href=#task-queue>task queue</a>.</li>
+ <li><p><a href=#perform-a-microtask-checkpoint>Perform a microtask checkpoint</a>.</li>
+
<li><p><a href=#provide-a-stable-state>Provide a stable state</a>.</li>
<li><p>If necessary, update the rendering or user interface of any
@@ -68165,6 +68186,32 @@
<li><p>Return to the first step of the <a href=#event-loop>event
loop</a>.</li>
+ </ol><hr><p>When a user agent is to <dfn id=perform-a-microtask-checkpoint>perform a microtask
+ checkpoint</dfn>, if the <var title="">running mutation
+ observers</var> flag is false, then the user agent must run the
+ following steps:</p>
+
+ <ol><li><p>Let <var title="">running mutation observers</var> be
+ true.</li>
+
+ <li>
+
+ <p><a href=#concept-mo-invoke title=concept-mo-invoke>Invoke
+ <code>MutationObserver</code> objects</a> for the <a href=#unit-of-related-similar-origin-browsing-contexts>unit
+ of related similar-origin browsing contexts</a> to which the
+ <a href="#script's-browsing-context">script's browsing context</a> belongs.</p>
+
+ <p class=note>This will typically fire scripted callbacks, which
+ calls the <a href=#jump-to-a-code-entry-point>jump to a code entry-point</a> algorithm, which
+ calls this <a href=#perform-a-microtask-checkpoint>perform a microtask checkpoint</a> algorithm
+ again, which is why we use the <var><a href=#running-mutation-observers>running mutation
+ observers</a></var> flag to avoid reentrancy.</p>
+
+ </li>
+
+ <li><p>Let <var title="">running mutation observers</var> be
+ false.</li>
+
</ol><hr><p>When the user agent is to <dfn id=provide-a-stable-state>provide a stable state</dfn>, if
any asynchronously-running algorithms are <dfn id=await-a-stable-state title="await a stable
state">awaiting a stable state</dfn>, then the user agent must run
@@ -90393,7 +90440,6 @@
:root:lang(ebu), :not(:lang(ebu)) > :lang(ebu) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */
:root:lang(ee), :not(:lang(ee)) > :lang(ee) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */
:root:lang(el), :not(:lang(el)) > :lang(el) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */
-:root:lang(el-POLYTON), :not(:lang(el-POLYTON)) > :lang(el-POLYTON) { quotes: '\00ab' '\00bb' '\201b' '\201d' } /* « » ‛ ” */
:root:lang(en), :not(:lang(en)) > :lang(en) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */
:root:lang(en-GB), :not(:lang(en-GB)) > :lang(en-GB) { quotes: '\2018' '\2019' '\201c' '\201d' } /* ‘ ’ “ ” */
:root:lang(es), :not(:lang(es)) > :lang(es) { quotes: '\201c' '\201d' '\00ab' '\00bb' } /* “ ” « » */
Modified: index
===================================================================
--- index 2012-02-22 20:11:43 UTC (rev 7008)
+++ index 2012-02-29 21:24:40 UTC (rev 7009)
@@ -240,7 +240,7 @@
<header class=head id=head><p><a class=logo href=http://www.whatwg.org/><img alt=WHATWG height=101 src=/images/logo width=101></a></p>
<hgroup><h1 class=allcaps>HTML</h1>
- <h2 class="no-num no-toc">Living Standard — Last Updated 22 February 2012</h2>
+ <h2 class="no-num no-toc">Living Standard — Last Updated 29 February 2012</h2>
</hgroup><dl><dt><strong>Web developer edition:</strong></dt>
<dd><strong><a href=http://developers.whatwg.org/>http://developers.whatwg.org/</a></strong></dd>
<dt>Multiple-page version:</dt>
@@ -3858,11 +3858,15 @@
<li>The distinction between <dfn id=xml-documents>XML documents</dfn> and <dfn id=html-documents>HTML documents</dfn></li>
<li>The terms <dfn id=quirks-mode>quirks mode</dfn>, <dfn id=limited-quirks-mode>limited-quirks mode</dfn>, and <dfn id=no-quirks-mode>no-quirks mode</dfn></li>
<li>The algorithm to <dfn id=concept-node-clone title=concept-node-clone>clone</dfn> a <code><a href=#node>Node</a></code>, and the concept of <dfn id=concept-node-clone-ext title=concept-node-clone-ext>cloning steps</dfn> used by that algorithm</li>
- <li>The concept of <dfn id=base-url-change-steps>base URL change steps</dfn> and the definition of what happens when an element is <dfn id=affected-by-a-base-url-change>affected by a base URL change</dfn>.</li>
- <li>The concept of an element's <dfn id=concept-id title=concept-id>unique identifier (ID)</dfn>.</li>
+ <li>The concept of <dfn id=base-url-change-steps>base URL change steps</dfn> and the definition of what happens when an element is <dfn id=affected-by-a-base-url-change>affected by a base URL change</dfn></li>
+ <li>The concept of an element's <dfn id=concept-id title=concept-id>unique identifier (ID)</dfn></li>
<li>The concept of a DOM <dfn id=concept-range title=concept-range>range</dfn>.</li>
+ <li><dfn id=mutationobserver><code>MutationObserver</code></dfn> interface</li>
+ <li>The <dfn id=mutationobserver-scripting-environment><code>MutationObserver</code> <var title="">scripting environment</var></dfn> concept</li>
+ <li>The <dfn id=concept-mo-invoke title=concept-mo-invoke>invoke <code>MutationObserver</code> objects</dfn> algorith,</li>
+
</ul><p>The term <dfn id=throw>throw</dfn> in this specification is used as
defined in the DOM Core specification. The following
<code><a href=#domexception>DOMException</a></code> types are defined in the DOM Core
@@ -36608,6 +36612,7 @@
Jordan OSETE suggests:
* support ways of extending the clipping region (union instead of intersection)
- also "add", "subtract", "replace", "intersect" and "xor"
+ - maybe just support creating unions, intersections, and other -ions of paths
* support ways of resetting the clipping region without save/restore
-->
@@ -61413,9 +61418,21 @@
is no <a href=#entry-script>entry script</a>. It is changed by the <a href=#jump-to-a-code-entry-point>jump to
a code entry-point</a> algorithm.</p>
- <p class=note>There is at most one <a href=#event-loop>event loop</a> per
- <a href=#unit-of-related-similar-origin-browsing-contexts>unit of related similar-origin browsing contexts</a>.</p>
+ <p>Each <a href=#unit-of-related-similar-origin-browsing-contexts>unit of related similar-origin browsing
+ contexts</a> also has a <dfn id=running-mutation-observers>running mutation observers</dfn>
+ flag, which must initially be false. It is used to prevent reentrant
+ invocation of the algorithm to <a href=#concept-mo-invoke title=concept-mo-invoke>invoke <code>MutationObserver</code>
+ objects</a>. For the purposes of <code><a href=#mutationobserver>MutationObserver</a></code>
+ objects, each <a href=#unit-of-related-similar-origin-browsing-contexts>unit of related similar-origin browsing
+ contexts</a> is a distinct <var title="MutationObserver scripting
+ environment"><a href=#mutationobserver-scripting-environment>scripting environment</a></var>.</p>
+ <p class=note>There is also at most one <a href=#event-loop>event loop</a>
+ per <a href=#unit-of-related-similar-origin-browsing-contexts>unit of related similar-origin browsing contexts</a>
+ (though several <a href=#unit-of-related-similar-origin-browsing-contexts title="unit of related similar-origin browsing
+ contexts">units of related similar-origin browsing contexts</a>
+ can have a shared <a href=#event-loop>event loop</a>).</p>
+
</div>
@@ -67798,6 +67815,8 @@
<li><p>Set the <a href=#entry-script>entry script</a> back to whatever it was
when this algorithm started.</li>
+ <li><p><a href=#perform-a-microtask-checkpoint>Perform a microtask checkpoint</a>.</li>
+
</ol><p>This algorithm is not invoked by one script calling another.</p>
</div>
@@ -68156,6 +68175,8 @@
<li><p>Remove that task from its <a href=#task-queue>task queue</a>.</li>
+ <li><p><a href=#perform-a-microtask-checkpoint>Perform a microtask checkpoint</a>.</li>
+
<li><p><a href=#provide-a-stable-state>Provide a stable state</a>.</li>
<li><p>If necessary, update the rendering or user interface of any
@@ -68165,6 +68186,32 @@
<li><p>Return to the first step of the <a href=#event-loop>event
loop</a>.</li>
+ </ol><hr><p>When a user agent is to <dfn id=perform-a-microtask-checkpoint>perform a microtask
+ checkpoint</dfn>, if the <var title="">running mutation
+ observers</var> flag is false, then the user agent must run the
+ following steps:</p>
+
+ <ol><li><p>Let <var title="">running mutation observers</var> be
+ true.</li>
+
+ <li>
+
+ <p><a href=#concept-mo-invoke title=concept-mo-invoke>Invoke
+ <code>MutationObserver</code> objects</a> for the <a href=#unit-of-related-similar-origin-browsing-contexts>unit
+ of related similar-origin browsing contexts</a> to which the
+ <a href="#script's-browsing-context">script's browsing context</a> belongs.</p>
+
+ <p class=note>This will typically fire scripted callbacks, which
+ calls the <a href=#jump-to-a-code-entry-point>jump to a code entry-point</a> algorithm, which
+ calls this <a href=#perform-a-microtask-checkpoint>perform a microtask checkpoint</a> algorithm
+ again, which is why we use the <var><a href=#running-mutation-observers>running mutation
+ observers</a></var> flag to avoid reentrancy.</p>
+
+ </li>
+
+ <li><p>Let <var title="">running mutation observers</var> be
+ false.</li>
+
</ol><hr><p>When the user agent is to <dfn id=provide-a-stable-state>provide a stable state</dfn>, if
any asynchronously-running algorithms are <dfn id=await-a-stable-state title="await a stable
state">awaiting a stable state</dfn>, then the user agent must run
@@ -90393,7 +90440,6 @@
:root:lang(ebu), :not(:lang(ebu)) > :lang(ebu) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */
:root:lang(ee), :not(:lang(ee)) > :lang(ee) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */
:root:lang(el), :not(:lang(el)) > :lang(el) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */
-:root:lang(el-POLYTON), :not(:lang(el-POLYTON)) > :lang(el-POLYTON) { quotes: '\00ab' '\00bb' '\201b' '\201d' } /* « » ‛ ” */
:root:lang(en), :not(:lang(en)) > :lang(en) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */
:root:lang(en-GB), :not(:lang(en-GB)) > :lang(en-GB) { quotes: '\2018' '\2019' '\201c' '\201d' } /* ‘ ’ “ ” */
:root:lang(es), :not(:lang(es)) > :lang(es) { quotes: '\201c' '\201d' '\00ab' '\00bb' } /* “ ” « » */
Modified: source
===================================================================
--- source 2012-02-22 20:11:43 UTC (rev 7008)
+++ source 2012-02-29 21:24:40 UTC (rev 7009)
@@ -2804,11 +2804,15 @@
<li>The distinction between <dfn>XML documents</dfn> and <dfn>HTML documents</dfn></li>
<li>The terms <dfn>quirks mode</dfn>, <dfn>limited-quirks mode</dfn>, and <dfn>no-quirks mode</dfn></li>
<li>The algorithm to <dfn title="concept-node-clone">clone</dfn> a <code>Node</code>, and the concept of <dfn title="concept-node-clone-ext">cloning steps</dfn> used by that algorithm</li>
- <li>The concept of <dfn>base URL change steps</dfn> and the definition of what happens when an element is <dfn>affected by a base URL change</dfn>.</li>
- <li>The concept of an element's <dfn title="concept-id">unique identifier (ID)</dfn>.</li>
+ <li>The concept of <dfn>base URL change steps</dfn> and the definition of what happens when an element is <dfn>affected by a base URL change</dfn></li>
+ <li>The concept of an element's <dfn title="concept-id">unique identifier (ID)</dfn></li>
<li>The concept of a DOM <dfn title="concept-range">range</dfn>.</li>
+ <li><dfn><code>MutationObserver</code></dfn> interface</li>
+ <li>The <dfn><code>MutationObserver</code> <var title="">scripting environment</var></dfn> concept</li>
+ <li>The <dfn title="concept-mo-invoke">invoke <code>MutationObserver</code> objects</dfn> algorith,</li>
+
</ul>
<p>The term <dfn>throw</dfn> in this specification is used as
@@ -42642,6 +42646,7 @@
Jordan OSETE suggests:
* support ways of extending the clipping region (union instead of intersection)
- also "add", "subtract", "replace", "intersect" and "xor"
+ - maybe just support creating unions, intersections, and other -ions of paths
* support ways of resetting the clipping region without save/restore
-->
@@ -71885,9 +71890,22 @@
is no <span>entry script</span>. It is changed by the <span>jump to
a code entry-point</span> algorithm.</p>
- <p class="note">There is at most one <span>event loop</span> per
- <span>unit of related similar-origin browsing contexts</span>.</p>
+ <p>Each <span>unit of related similar-origin browsing
+ contexts</span> also has a <dfn>running mutation observers</dfn>
+ flag, which must initially be false. It is used to prevent reentrant
+ invocation of the algorithm to <span
+ title="concept-mo-invoke">invoke <code>MutationObserver</code>
+ objects</span>. For the purposes of <code>MutationObserver</code>
+ objects, each <span>unit of related similar-origin browsing
+ contexts</span> is a distinct <var title="MutationObserver scripting
+ environment">scripting environment</var>.</p>
+ <p class="note">There is also at most one <span>event loop</span>
+ per <span>unit of related similar-origin browsing contexts</span>
+ (though several <span title="unit of related similar-origin browsing
+ contexts">units of related similar-origin browsing contexts</span>
+ can have a shared <span>event loop</span>).</p>
+
</div>
@@ -79247,6 +79265,8 @@
<li><p>Set the <span>entry script</span> back to whatever it was
when this algorithm started.</p></li>
+ <li><p><span>Perform a microtask checkpoint</span>.</p></li>
+
</ol>
<p>This algorithm is not invoked by one script calling another.</p>
@@ -79668,6 +79688,8 @@
<li><p>Remove that task from its <span>task queue</span>.</p></li>
+ <li><p><span>Perform a microtask checkpoint</span>.</p></li>
+
<li><p><span>Provide a stable state</span>.</p></li>
<li><p>If necessary, update the rendering or user interface of any
@@ -79681,6 +79703,38 @@
<hr>
+ <p>When a user agent is to <dfn>perform a microtask
+ checkpoint</dfn>, if the <var title="">running mutation
+ observers</var> flag is false, then the user agent must run the
+ following steps:</p>
+
+ <ol>
+
+ <li><p>Let <var title="">running mutation observers</var> be
+ true.</p></li>
+
+ <li>
+
+ <p><span title="concept-mo-invoke">Invoke
+ <code>MutationObserver</code> objects</span> for the <span>unit
+ of related similar-origin browsing contexts</span> to which the
+ <span>script's browsing context</span> belongs.</p>
+
+ <p class="note">This will typically fire scripted callbacks, which
+ calls the <span>jump to a code entry-point</span> algorithm, which
+ calls this <span>perform a microtask checkpoint</span> algorithm
+ again, which is why we use the <var>running mutation
+ observers</var> flag to avoid reentrancy.</p>
+
+ </li>
+
+ <li><p>Let <var title="">running mutation observers</var> be
+ false.</p></li>
+
+ </ol>
+
+ <hr>
+
<p>When the user agent is to <dfn>provide a stable state</dfn>, if
any asynchronously-running algorithms are <dfn title="await a stable
state">awaiting a stable state</dfn>, then the user agent must run
More information about the Commit-Watchers
mailing list