hixie: Refactor the sandboxing flags further to make it even easier to hook into for CSP. (whatwg r7053)

hixie: Refactor the sandboxing flags further to make it even easier to
hook into for CSP. (whatwg r7053)

http://dev.w3.org/cvsweb/html5/spec/Overview.html?r1=1.5623&r2=1.5624&f=h
http://html5.org/tools/web-apps-tracker?from=7052&to=7053

===================================================================
RCS file: /sources/public/html5/spec/Overview.html,v
retrieving revision 1.5623
retrieving revision 1.5624
diff -u -d -r1.5623 -r1.5624
--- Overview.html 13 Apr 2012 22:55:52 -0000 1.5623
+++ Overview.html 13 Apr 2012 23:10:08 -0000 1.5624
@@ -24139,80 +24139,12 @@
   
 
   <p>While the <code title="attr-iframe-sandbox"><a href="#attr-iframe-sandbox">sandbox</a></code>
-  attribute is specified, the <code><a href="#the-iframe-element">iframe</a></code> element's
-  <a href="#nested-browsing-context">nested browsing context</a>'s <a href="#iframe-sandboxing-flag-set"><code>iframe</code>
-  sandboxing flag set</a> must have the flags given in the
-  following list set.</p>
-
-  <ul><li><p>The <a href="#sandboxed-navigation-browsing-context-flag">sandboxed navigation browsing context flag</a></li>
-
-   <li><p>The <a href="#sandboxed-top-level-navigation-browsing-context-flag">sandboxed top-level navigation browsing context
-   flag</a>, unless the <code title="attr-iframe-sandbox"><a href="#attr-iframe-sandbox">sandbox</a></code> attribute's value, when
-   <a href="#split-a-string-on-spaces" title="split a string on spaces">split on spaces</a>, is
-   found to have the <dfn id="attr-iframe-sandbox-allow-top-navigation" title="attr-iframe-sandbox-allow-top-navigation"><code>allow-top-navigation</code></dfn>
-   keyword set</li>
-
-   <li><p>The <a href="#sandboxed-plugins-browsing-context-flag">sandboxed plugins browsing context flag</a></li>
-
-   <li><p>The <a href="#sandboxed-seamless-iframes-flag">sandboxed seamless iframes flag</a></li>
-
-   <li>
-
-    <p>The <a href="#sandboxed-origin-browsing-context-flag">sandboxed origin browsing context flag</a>, unless
-    the <code title="attr-iframe-sandbox"><a href="#attr-iframe-sandbox">sandbox</a></code> attribute's
-    value, when <a href="#split-a-string-on-spaces" title="split a string on spaces">split on
-    spaces</a>, is found to have the <dfn id="attr-iframe-sandbox-allow-same-origin" title="attr-iframe-sandbox-allow-same-origin"><code>allow-same-origin</code></dfn>
-    keyword set</p>
-
-    <div class="note">
-
-     <p>The <code title="attr-iframe-sandbox-allow-same-origin"><a href="#attr-iframe-sandbox-allow-same-origin">allow-same-origin</a></code>
-     keyword is intended for two cases.</p>
-
-     <p>First, it can be used to allow content from the same site to
-     be sandboxed to disable scripting, while still allowing access to
-     the DOM of the sandboxed content.</p>
-
-     <p>Second, it can be used to embed content from a third-party
-     site, sandboxed to prevent that site from opening popup windows,
-     etc, without preventing the embedded page from communicating back
-     to its originating site, using the database APIs to store data,
-     etc.</p>
-
-    </div>
-
-   </li>
-
-   <li><p>The <a href="#sandboxed-forms-browsing-context-flag">sandboxed forms browsing context flag</a>, unless
-   the <code title="attr-iframe-sandbox"><a href="#attr-iframe-sandbox">sandbox</a></code> attribute's
-   value, when <a href="#split-a-string-on-spaces" title="split a string on spaces">split on
-   spaces</a>, is found to have the <dfn id="attr-iframe-sandbox-allow-forms" title="attr-iframe-sandbox-allow-forms"><code>allow-forms</code></dfn>
-   keyword set</li>
-
-   <li><p>The <a href="#sandboxed-scripts-browsing-context-flag">sandboxed scripts browsing context flag</a>, unless
-   the <code title="attr-iframe-sandbox"><a href="#attr-iframe-sandbox">sandbox</a></code> attribute's
-   value, when <a href="#split-a-string-on-spaces" title="split a string on spaces">split on
-   spaces</a>, is found to have the <dfn id="attr-iframe-sandbox-allow-scripts" title="attr-iframe-sandbox-allow-scripts"><code>allow-scripts</code></dfn>
-   keyword set</li>
-
-   <li>
-
-    <p>The <a href="#sandboxed-automatic-features-browsing-context-flag">sandboxed automatic features browsing context
-    flag</a>, unless the <code title="attr-iframe-sandbox"><a href="#attr-iframe-sandbox">sandbox</a></code> attribute's value, when
-    <a href="#split-a-string-on-spaces" title="split a string on spaces">split on spaces</a>, is
-    found to have the <code title="attr-iframe-sandbox-allow-scripts"><a href="#attr-iframe-sandbox-allow-scripts">allow-scripts</a></code>
-    keyword (defined above) set</p>
-
-    <p class="note">This flag is relaxed by the same flag as
-    scripts, because when scripts are enabled these features are
-    trivially possible anyway, and it would be unfortunate to force
-    authors to use script to do them when sandboxed rather than
-    allowing them to use the declarative features.</p>
-
-   </li>
-
-  </ul><p>These flags must not be set unless the conditions listed above
-  define them as being set.</p>
+  attribute is set or changed, the user agent must <a href="#parse-a-sandboxing-directive" title="parse
+  a sandboxing directive">parse the sandboxing directive</a> using
+  the attribute's value as the <var title="">input</var> and the
+  <code><a href="#the-iframe-element">iframe</a></code> element's <a href="#nested-browsing-context">nested browsing context</a>'s
+  <a href="#iframe-sandboxing-flag-set"><code>iframe</code> sandboxing flag set</a> as the
+  output.</p>
 
   <p class="warning">These flags only take effect when the
   <a href="#nested-browsing-context">nested browsing context</a> of the <code><a href="#the-iframe-element">iframe</a></code> is
@@ -54063,7 +53995,80 @@
 
    </dd>
 
-  </dl><p>Every <a href="#nested-browsing-context">nested browsing context</a> has an
+  </dl><p>When the user agent is to <dfn id="parse-a-sandboxing-directive">parse a sandboxing
+  directive</dfn>, given a string <var title="">input</var> and a
+  <a href="#sandboxing-flag-set">sandboxing flag set</a> <var title="">output</var>, it must
+  run the following steps:</p>
+
+  <ol><li><p><a href="#split-a-string-on-spaces" title="split a string on spaces">Split <var title="">input</var> on spaces</a>, to obtain <var title="">tokens</var>.</li>
+
+   <li><p>Let <var title="">output</var> be empty.</li>
+
+   <li>
+
+    <p>Add the following flags to <var title="">output</var>:</p>
+
+    <ul><li><p>The <a href="#sandboxed-navigation-browsing-context-flag">sandboxed navigation browsing context flag</a></li>
+
+     <li><p>The <a href="#sandboxed-top-level-navigation-browsing-context-flag">sandboxed top-level navigation browsing context
+     flag</a>, unless <var title="">tokens</var> contains the <dfn id="attr-iframe-sandbox-allow-top-navigation" title="attr-iframe-sandbox-allow-top-navigation"><code>allow-top-navigation</code></dfn>
+     keyword</li>
+
+     <li><p>The <a href="#sandboxed-plugins-browsing-context-flag">sandboxed plugins browsing context flag</a></li>
+
+     <li><p>The <a href="#sandboxed-seamless-iframes-flag">sandboxed seamless iframes flag</a></li>
+
+     <li>
+
+      <p>The <a href="#sandboxed-origin-browsing-context-flag">sandboxed origin browsing context flag</a>,
+      unless the <var title="">tokens</var> contains the <dfn id="attr-iframe-sandbox-allow-same-origin" title="attr-iframe-sandbox-allow-same-origin"><code>allow-same-origin</code></dfn>
+      keyword</p>
+
+      <div class="note">
+
+       <p>The <code title="attr-iframe-sandbox-allow-same-origin"><a href="#attr-iframe-sandbox-allow-same-origin">allow-same-origin</a></code>
+       keyword is intended for two cases.</p>
+
+       <p>First, it can be used to allow content from the same site to
+       be sandboxed to disable scripting, while still allowing access to
+       the DOM of the sandboxed content.</p>
+
+       <p>Second, it can be used to embed content from a third-party
+       site, sandboxed to prevent that site from opening popup windows,
+       etc, without preventing the embedded page from communicating back
+       to its originating site, using the database APIs to store data,
+       etc.</p>
+
+      </div>
+
+     </li>
+
+     <li><p>The <a href="#sandboxed-forms-browsing-context-flag">sandboxed forms browsing context flag</a>,
+     unless <var title="">tokens</var> contains the <dfn id="attr-iframe-sandbox-allow-forms" title="attr-iframe-sandbox-allow-forms"><code>allow-forms</code></dfn>
+     keyword</li>
+
+     <li><p>The <a href="#sandboxed-scripts-browsing-context-flag">sandboxed scripts browsing context flag</a>,
+     unless <var title="">tokens</var> contains the <dfn id="attr-iframe-sandbox-allow-scripts" title="attr-iframe-sandbox-allow-scripts"><code>allow-scripts</code></dfn>
+     keyword</li>
+
+     <li>
+
+      <p>The <a href="#sandboxed-automatic-features-browsing-context-flag">sandboxed automatic features browsing context
+      flag</a>, unless <var title="">tokens</var> contains the
+      <code title="attr-iframe-sandbox-allow-scripts"><a href="#attr-iframe-sandbox-allow-scripts">allow-scripts</a></code>
+      keyword (defined above)</p>
+
+      <p class="note">This flag is relaxed by the same keyword as
+      scripts, because when scripts are enabled these features are
+      trivially possible anyway, and it would be unfortunate to force
+      authors to use script to do them when sandboxed rather than
+      allowing them to use the declarative features.</p>
+
+     </li>
+
+    </ul></li>
+
+  </ol><hr><p>Every <a href="#nested-browsing-context">nested browsing context</a> has an
   <dfn id="iframe-sandboxing-flag-set"><code>iframe</code> sandboxing flag set</dfn>, which is a
   <a href="#sandboxing-flag-set">sandboxing flag set</a>. Which flags in a <a href="#nested-browsing-context">nested
   browsing context</a>'s <a href="#iframe-sandboxing-flag-set"><code>iframe</code> sandboxing flag

Received on Friday, 13 April 2012 23:10:28 UTC