[css-regions] circular dependency section

Thu, 11 Oct 2012 12:34:11 -0700

author
Alan Stearns <stearns@adobe.com>
date
Thu, 11 Oct 2012 12:34:11 -0700
changeset 6840
ecbb7d03d800
parent 6839
a48d53959b0a
child 6841
d99a9a222d1d

[css-regions] circular dependency section

css3-regions/Overview.html file | annotate | diff | comparison | revisions
css3-regions/Overview.src.html file | annotate | diff | comparison | revisions
     1.1 --- a/css3-regions/Overview.html	Wed Oct 10 16:53:50 2012 -0700
     1.2 +++ b/css3-regions/Overview.html	Thu Oct 11 12:34:11 2012 -0700
     1.3 @@ -12,12 +12,12 @@
     1.4     rel=dcterms.rights>
     1.5    <meta content="CSS Regions Module Level 3" name=dcterms.title>
     1.6    <meta content=text name=dcterms.type>
     1.7 -  <meta content=2012-10-09 name=dcterms.issued>
     1.8 +  <meta content=2012-10-11 name=dcterms.issued>
     1.9    <meta content="Vincent Hardy" name=dcterms.creator>
    1.10    <meta content="Alex Mogilevsky" name=dcterms.creator>
    1.11    <meta content="Alan Stearns" name=dcterms.creator>
    1.12    <meta content=W3C name=dcterms.publisher>
    1.13 -  <meta content="http://www.w3.org/TR/2012/ED-css3-regions-20121009/"
    1.14 +  <meta content="http://www.w3.org/TR/2012/ED-css3-regions-20121011/"
    1.15     name=dcterms.identifier>
    1.16    <link href="../shared/style/default.css" rel=stylesheet type="text/css">
    1.17    <script defer=defer
    1.18 @@ -50,13 +50,14 @@
    1.19  
    1.20     <h1 id=css-regions-module>CSS Regions Module Level 3</h1>
    1.21  
    1.22 -   <h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 9 October 2012</h2>
    1.23 +   <h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 11 October
    1.24 +    2012</h2>
    1.25  
    1.26     <dl>
    1.27      <dt>This version:
    1.28  
    1.29      <dd><a
    1.30 -     href="http://www.w3.org/TR/2012/ED-css3-regions-20121009/">http://www.w3.org/csswg/css3-regions</a>
    1.31 +     href="http://www.w3.org/TR/2012/ED-css3-regions-20121011/">http://www.w3.org/csswg/css3-regions</a>
    1.32  
    1.33      <dt>Latest version:
    1.34  
    1.35 @@ -208,6 +209,10 @@
    1.36  
    1.37       <li><a href="#the-flow-from-property"><span class=secno>3.2. </span>The
    1.38        ‘<code class=property>flow-from</code>’ property</a>
    1.39 +      <ul class=toc>
    1.40 +       <li><a href="#circular-dependencies"><span class=secno>3.2.1.
    1.41 +        </span>Cycle Detection</a>
    1.42 +      </ul>
    1.43  
    1.44       <li><a href="#region-flow-break"><span class=secno>3.3. </span>Region
    1.45        flow break properties: ‘<code class=property>break-before</code>’,
    1.46 @@ -719,9 +724,10 @@
    1.47      href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier">&lt;ident&gt;</a>
    1.48  
    1.49     <dd>The element is taken out of its parent's flow and placed into the flow
    1.50 -    with the name ‘<code class=css>&lt;ident&gt;</code>’. The element is
    1.51 -    said to have a <dfn id=specified-flow>specified flow</dfn>. The values
    1.52 -    ‘<code class=property>none</code>’, ‘<code
    1.53 +    with the name ‘<code class=css><a
    1.54 +    href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier">&lt;ident&gt;</a></code>’.
    1.55 +    The element is said to have a <dfn id=specified-flow>specified
    1.56 +    flow</dfn>. The values ‘<code class=property>none</code>’, ‘<code
    1.57      class=property>inherit</code>’, ‘<code
    1.58      class=property>default</code>’, ‘<code class=property>auto</code>’
    1.59      and ‘<code class=property>initial</code>’ are invalid flow names.
    1.60 @@ -889,7 +895,8 @@
    1.61     <dd>The block container is not a <a href="#css-region"
    1.62      title=region>region</a>.
    1.63  
    1.64 -   <dt><strong>&lt;ident&gt;</strong>
    1.65 +   <dt><strong><a
    1.66 +    href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier">&lt;ident&gt;</a></strong>
    1.67  
    1.68     <dd> If the ‘<code class=property>content</code>’ property computes to
    1.69      something else than ‘<code class=property>normal</code>’ (or ‘<code
    1.70 @@ -907,22 +914,11 @@
    1.71      href="http://www.w3.org/TR/CSS21/visuren.html#principal-box">principal
    1.72      boxes</a> of the <a href="#css-region">regions</a> in the <a
    1.73      href="#region-chain0">region chain</a>. <br>
    1.74 -    If there is no flow with name &lt;ident&gt;, then the block container
    1.75 -    does not format any content visually. <br>
    1.76 -    Likewise, if the block container is part of the flow with name
    1.77 -    &lt;ident&gt;, then the block container does not format any content
    1.78 -    visually.
    1.79 +    If there is no flow with name <a
    1.80 +    href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier">&lt;ident&gt;</a>,
    1.81 +    then the block container does not format any content visually.
    1.82    </dl>
    1.83  
    1.84 -  <div class=issue-marker data-bug_id=16819 data-bug_status=ASSIGNED> <a
    1.85 -   href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=16819">Issue-16819</a>
    1.86 -
    1.87 -   <div class=issue-details>
    1.88 -    <p class=short-desc>No display when combining flow-from and flow-into is
    1.89 -     bad
    1.90 -   </div>
    1.91 -  </div>
    1.92 -
    1.93    <p>A <span>CSS Region</span>‘<code class=css>s document children are not
    1.94     visually formatted unless they are directed to a <a
    1.95     href="#named-flow0">named flow</a> with an associated <a
    1.96 @@ -930,8 +926,10 @@
    1.97  
    1.98    <div class=note><span class=note-prefix>Note </span>
    1.99     <p>An block container becomes a <span>CSS Region</span> when its
   1.100 -    ’flow-from' property is set to a valid &lt;ident&gt; value, even if
   1.101 -    there is no content contributing to the referenced flow. For example:
   1.102 +    ’flow-from' property is set to a valid <a
   1.103 +    href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier">&lt;ident&gt;</a>
   1.104 +    value, even if there is no content contributing to the referenced flow.
   1.105 +    For example:
   1.106  
   1.107     <pre>
   1.108  &lt;style&gt;
   1.109 @@ -1019,6 +1017,43 @@
   1.110     class=property>height</code>’ values are resolved for <span>CSS
   1.111     Region</span> boxes.
   1.112  
   1.113 +  <h4 id=circular-dependencies><span class=secno>3.2.1. </span>Cycle
   1.114 +   Detection</h4>
   1.115 +
   1.116 +  <p><a href="#named-flow0">Named flows</a> containing elements where the
   1.117 +   value of ‘<a href="#flow-from"><code
   1.118 +   class=property>flow-from</code></a>’ computes to an <a
   1.119 +   href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier">&lt;ident&gt;</a>
   1.120 +   can produce nonsensical circular relationships, such as a <a
   1.121 +   href="#named-flow0">named flow</a> containing <span>CSS Regions</span> in
   1.122 +   its own <a href="#region-chain0">region chain</a>. These relationships can
   1.123 +   be easily and reliably detected and resolved, however, by keeping track of
   1.124 +   a dependency graph and using common cycle-detection algorithms.
   1.125 +
   1.126 +  <p>The dependency graph consists of edges such that:
   1.127 +
   1.128 +  <ul>
   1.129 +   <li>Every <a href="#named-flow0">named flow</a> depends on its elements
   1.130 +    where the value of ‘<a href="#flow-from"><code
   1.131 +    class=property>flow-from</code></a>’ computes to an <a
   1.132 +    href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier">&lt;ident&gt;</a>
   1.133 +    .
   1.134 +
   1.135 +   <li>Every element in a <a href="#named-flow0">named flow</a> where the
   1.136 +    value of ‘<a href="#flow-from"><code
   1.137 +    class=property>flow-from</code></a>’ computes to an <a
   1.138 +    href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier">&lt;ident&gt;</a>
   1.139 +    depends on the <a href="#named-flow0">named flow</a> with the <a
   1.140 +    href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier">&lt;ident&gt;</a>
   1.141 +    name.
   1.142 +  </ul>
   1.143 +
   1.144 +  <p>If the graph contains a cycle, any elements where the value of ‘<a
   1.145 +   href="#flow-from"><code class=property>flow-from</code></a>’ computes to
   1.146 +   an <a
   1.147 +   href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier">&lt;ident&gt;</a>
   1.148 +   participating in the cycle do not become <span>CSS Regions</span>.
   1.149 +
   1.150    <h3 id=region-flow-break><span class=secno>3.3. </span>Region flow break
   1.151     properties: ‘<a href="#break-before"><code
   1.152     class=property>break-before</code></a>’, ‘<a href="#break-after"><code
   1.153 @@ -2769,6 +2804,8 @@
   1.154     28<sup>th</sup> 2012</a> version</h3>
   1.155  
   1.156    <ul>
   1.157 +   <li>Added section on handling circular flow-from and flow-into situations
   1.158 +
   1.159     <li>Added alignment and justification to region styling properties
   1.160  
   1.161     <li>Added timing for regionLayoutUpdate event
   1.162 @@ -3320,14 +3357,6 @@
   1.163    <h2 class=no-num id=references>References</h2>
   1.164  
   1.165    <div class="issue-marker wrapper">
   1.166 -   <div class=issue-marker data-bug_id=16404 data-bug_status=ASSIGNED> <a
   1.167 -    href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=16404">Issue-16404</a>
   1.168 -
   1.169 -    <div class=issue-details>
   1.170 -     <p class=short-desc>Fix specification dependencies
   1.171 -    </div>
   1.172 -   </div>
   1.173 -
   1.174     <div class=issue-marker data-bug_id=18767 data-bug_status=NEW> <a
   1.175      href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=18767">Issue-18767</a>
   1.176  
     2.1 --- a/css3-regions/Overview.src.html	Wed Oct 10 16:53:50 2012 -0700
     2.2 +++ b/css3-regions/Overview.src.html	Thu Oct 11 12:34:11 2012 -0700
     2.3 @@ -502,7 +502,7 @@
     2.4          <dd>The element is taken out 
     2.5            of its parent's flow 
     2.6            and placed into the flow 
     2.7 -          with the name '&lt;ident&gt;'. 
     2.8 +          with the name '<a href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier">&lt;ident&gt;</a>'. 
     2.9            The element is said to have 
    2.10            a <dfn id="specified-flow">specified flow</dfn>. 
    2.11            The values 'none', 'inherit', 'default', 'auto' and 'initial' 
    2.12 @@ -701,7 +701,7 @@
    2.13  
    2.14          <dd>The block container is not a <span title="region">region</span>.</dd>
    2.15  
    2.16 -        <dt><strong>&lt;ident&gt;</strong></dt>
    2.17 +        <dt><strong><a href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier">&lt;ident&gt;</a></strong></dt>
    2.18  
    2.19          <dd>
    2.20              If the 'content' property computes 
    2.21 @@ -721,24 +721,13 @@
    2.22              of the <span>regions</span> 
    2.23              in the <span>region chain</span>. 
    2.24              <br/>
    2.25 -            If there is no flow with name &lt;ident&gt;, 
    2.26 +            If there is no flow with name 
    2.27 +            <a href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier">&lt;ident&gt;</a>, 
    2.28              then the block container does not 
    2.29              format any content visually. 
    2.30 -            <br/>
    2.31 -            Likewise, if the block container is part 
    2.32 -            of the flow with name &lt;ident&gt;, 
    2.33 -            then the block container does not 
    2.34 -            format any content visually.
    2.35          </dd>
    2.36      </dl>
    2.37  
    2.38 -    <div class="issue-marker" data-bug_id="16819" data-bug_status="ASSIGNED">
    2.39 -    <a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=16819">Issue-16819</a>
    2.40 -    <div class="issue-details">
    2.41 -        <p class="short-desc">No display when combining flow-from and flow-into is bad</p>
    2.42 -    </div>  
    2.43 -    </div>
    2.44 -
    2.45      <p>A <span>CSS Region</span>'s document children 
    2.46        are not visually formatted 
    2.47        unless they are directed 
    2.48 @@ -748,7 +737,7 @@
    2.49      <div class="note"><span class="note-prefix">Note </span>
    2.50        <p>An block container becomes a <span>CSS Region</span> 
    2.51          when its 'flow-from' property is set 
    2.52 -        to a valid &lt;ident&gt; value, 
    2.53 +        to a valid <a href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier">&lt;ident&gt;</a> value, 
    2.54          even if there is no content contributing 
    2.55          to the referenced flow.
    2.56          For example:</p>
    2.57 @@ -855,6 +844,41 @@
    2.58        'width' and 'height' values are resolved 
    2.59        for <span>CSS Region</span> boxes.</p>
    2.60  
    2.61 +    <h4 id="circular-dependencies">Cycle Detection</h4>
    2.62 +
    2.63 +    <p><span>Named flows</span> containing elements 
    2.64 +      where the value of 'flow-from' computes to an 
    2.65 +      <a href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier">&lt;ident&gt;</a> 
    2.66 +      can produce nonsensical circular relationships,
    2.67 +      such as a <span>named flow</span> containing <span>CSS Regions</span> 
    2.68 +      in its own <span>region chain</span>. 
    2.69 +      These relationships can be easily 
    2.70 +      and reliably detected and resolved, however, 
    2.71 +      by keeping track of a dependency graph 
    2.72 +      and using common cycle-detection algorithms.</p>
    2.73 +
    2.74 +    <p>The dependency graph consists of edges such that:</p>
    2.75 +
    2.76 +    <ul>
    2.77 +      <li>Every <span>named flow</span> depends on its elements 
    2.78 +        where the value of 'flow-from' computes to an 
    2.79 +        <a href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier">&lt;ident&gt;</a>
    2.80 +        .</li>
    2.81 +      <li>Every element in a <span>named flow</span> 
    2.82 +        where the value of 'flow-from' computes to an 
    2.83 +        <a href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier">&lt;ident&gt;</a> 
    2.84 +        depends on the <span>named flow</span> with the 
    2.85 +        <a href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier">&lt;ident&gt;</a> 
    2.86 +        name.</li>
    2.87 +    </ul>
    2.88 +
    2.89 +    <p>If the graph contains a cycle, 
    2.90 +      any elements where the value of 'flow-from' 
    2.91 +      computes to an 
    2.92 +      <a href="http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-identifier">&lt;ident&gt;</a> 
    2.93 +      participating in the cycle 
    2.94 +      do not become <span>CSS Regions</span>.</p>
    2.95 +
    2.96      <h3 id=
    2.97      "region-flow-break">Region
    2.98      flow break properties: 'break-before', 'break-after', 'break-inside'</h3>
    2.99 @@ -2416,6 +2440,7 @@
   2.100      <h3 id="changes_from_Aug_28_2012">Changes from <a href="http://www.w3.org/TR/2012/WD-css3-regions-20120823/">August 28<sup>th</sup> 2012</a> version</h3>
   2.101  
   2.102      <ul>
   2.103 +      <li>Added section on handling circular flow-from and flow-into situations</li>
   2.104        <li>Added alignment and justification to region styling properties</li>
   2.105        <li>Added timing for regionLayoutUpdate event</li>
   2.106        <li>Clarified interaction between content and flow-from for pseudo-elements</li>
   2.107 @@ -2762,12 +2787,6 @@
   2.108      <h2 class="no-num" id="references">References</h2>
   2.109  
   2.110      <div class="issue-marker wrapper">
   2.111 -    <div class="issue-marker" data-bug_id="16404" data-bug_status="ASSIGNED">
   2.112 -    <a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=16404">Issue-16404</a>
   2.113 -    <div class="issue-details">
   2.114 -        <p class="short-desc">Fix specification dependencies</p>
   2.115 -    </div>  
   2.116 -    </div>
   2.117      <div class="issue-marker" data-bug_id="18767" data-bug_status="NEW">
   2.118          <a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=18767">Issue-18767</a>
   2.119          <div class="issue-details">

mercurial