Skip to content

Commit

Permalink
[giow] (0) Add support for MutationObservers. (Also, add a minor inte…
Browse files Browse the repository at this point in the history
…rnal 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

git-svn-id: http://svn.whatwg.org/webapps@7009 340c8d12-0b0e-0410-8428-c7bf67bfef74
  • Loading branch information
Hixie committed Feb 29, 2012
1 parent ef639fa commit 01e1f33
Show file tree
Hide file tree
Showing 3 changed files with 162 additions and 16 deletions.
58 changes: 52 additions & 6 deletions complete.html
Expand Up @@ -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 &mdash; Last Updated 22 February 2012</h2>
<h2 class="no-num no-toc">Living Standard &mdash; 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>
Expand Down Expand Up @@ -3858,11 +3858,15 @@ <h4 id=dependencies><span class=secno>2.2.2 </span>Dependencies</h4>
<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
Expand Down Expand Up @@ -36608,6 +36612,7 @@ <h6 id=complex-shapes-(paths)><span class=secno>4.8.11.1.8 </span>Complex shapes
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
-->

Expand Down Expand Up @@ -61413,8 +61418,20 @@ <h4 id=groupings-of-browsing-contexts><span class=secno>6.1.5 </span>Groupings o
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>

Expand Down Expand Up @@ -67798,6 +67815,8 @@ <h5 id=calling-scripts><span class=secno>7.1.3.2 </span>Calling scripts</h5>
<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>
Expand Down Expand Up @@ -68156,6 +68175,8 @@ <h5 id=processing-model-2><span class=secno>7.1.4.2 </span>Processing model</h5>

<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
Expand All @@ -68165,6 +68186,32 @@ <h5 id=processing-model-2><span class=secno>7.1.4.2 </span>Processing model</h5>
<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
Expand Down Expand Up @@ -90393,7 +90440,6 @@ <h4 id=quotes><span class=secno>14.3.6 </span>Quotes</h4>
:root:lang(ebu), :not(:lang(ebu)) &gt; :lang(ebu) { quotes: '\201c' '\201d' '\2018' '\2019' } /* &ldquo; &rdquo; &lsquo; &rsquo; */
:root:lang(ee), :not(:lang(ee)) &gt; :lang(ee) { quotes: '\201c' '\201d' '\2018' '\2019' } /* &ldquo; &rdquo; &lsquo; &rsquo; */
:root:lang(el), :not(:lang(el)) &gt; :lang(el) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* &laquo; &raquo; &ldquo; &rdquo; */
:root:lang(el-POLYTON), :not(:lang(el-POLYTON)) &gt; :lang(el-POLYTON) { quotes: '\00ab' '\00bb' '\201b' '\201d' } /* &laquo; &raquo; &#8219; &rdquo; */
:root:lang(en), :not(:lang(en)) &gt; :lang(en) { quotes: '\201c' '\201d' '\2018' '\2019' } /* &ldquo; &rdquo; &lsquo; &rsquo; */
:root:lang(en-GB), :not(:lang(en-GB)) &gt; :lang(en-GB) { quotes: '\2018' '\2019' '\201c' '\201d' } /* &lsquo; &rsquo; &ldquo; &rdquo; */
:root:lang(es), :not(:lang(es)) &gt; :lang(es) { quotes: '\201c' '\201d' '\00ab' '\00bb' } /* &ldquo; &rdquo; &laquo; &raquo; */
Expand Down
58 changes: 52 additions & 6 deletions index
Expand Up @@ -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 &mdash; Last Updated 22 February 2012</h2>
<h2 class="no-num no-toc">Living Standard &mdash; 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>
Expand Down Expand Up @@ -3858,11 +3858,15 @@ a.setAttribute('href', 'http://example.com/'); // change the content attribute d
<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
Expand Down Expand Up @@ -36608,6 +36612,7 @@ hairline width with transform. ack Shaun Morris.
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
-->

Expand Down Expand Up @@ -61413,8 +61418,20 @@ END:VCARD</pre>
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>

Expand Down Expand Up @@ -67798,6 +67815,8 @@ interface <dfn id=navigatoronline>NavigatorOnLine</dfn> {
<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>
Expand Down Expand Up @@ -68156,6 +68175,8 @@ interface <dfn id=navigatoronline>NavigatorOnLine</dfn> {

<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
Expand All @@ -68165,6 +68186,32 @@ interface <dfn id=navigatoronline>NavigatorOnLine</dfn> {
<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
Expand Down Expand Up @@ -90393,7 +90440,6 @@ textarea[dir=auto i], pre[dir=auto i] { unicode-bidi: plaintext; }</pre>
:root:lang(ebu), :not(:lang(ebu)) &gt; :lang(ebu) { quotes: '\201c' '\201d' '\2018' '\2019' } /* &ldquo; &rdquo; &lsquo; &rsquo; */
:root:lang(ee), :not(:lang(ee)) &gt; :lang(ee) { quotes: '\201c' '\201d' '\2018' '\2019' } /* &ldquo; &rdquo; &lsquo; &rsquo; */
:root:lang(el), :not(:lang(el)) &gt; :lang(el) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* &laquo; &raquo; &ldquo; &rdquo; */
:root:lang(el-POLYTON), :not(:lang(el-POLYTON)) &gt; :lang(el-POLYTON) { quotes: '\00ab' '\00bb' '\201b' '\201d' } /* &laquo; &raquo; &#8219; &rdquo; */
:root:lang(en), :not(:lang(en)) &gt; :lang(en) { quotes: '\201c' '\201d' '\2018' '\2019' } /* &ldquo; &rdquo; &lsquo; &rsquo; */
:root:lang(en-GB), :not(:lang(en-GB)) &gt; :lang(en-GB) { quotes: '\2018' '\2019' '\201c' '\201d' } /* &lsquo; &rsquo; &ldquo; &rdquo; */
:root:lang(es), :not(:lang(es)) &gt; :lang(es) { quotes: '\201c' '\201d' '\00ab' '\00bb' } /* &ldquo; &rdquo; &laquo; &raquo; */
Expand Down

0 comments on commit 01e1f33

Please sign in to comment.