[html5] r7828 - [e] (0) Try to clarify browsing context rules Fixing https://www.w3.org/Bugs/Pub [...]

whatwg at whatwg.org whatwg at whatwg.org
Sat Apr 13 09:18:36 PDT 2013


Author: ianh
Date: 2013-04-13 09:18:34 -0700 (Sat, 13 Apr 2013)
New Revision: 7828

Modified:
   complete.html
   index
   source
Log:
[e] (0) Try to clarify browsing context rules
Fixing https://www.w3.org/Bugs/Public/show_bug.cgi?id=20939
Affected topics: HTML, Security, Video and Audio

Modified: complete.html
===================================================================
--- complete.html	2013-04-12 23:30:29 UTC (rev 7827)
+++ complete.html	2013-04-13 16:18:34 UTC (rev 7828)
@@ -248,7 +248,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 12 April 2013</h2>
+    <h2 class="no-num no-toc">Living Standard — Last Updated 13 April 2013</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>
@@ -27138,6 +27138,7 @@
 
   </dl><div class=impl>
 
+<!--CLEANUP-->
   <p>The <dfn id=dom-navigator-canplaytype title=dom-navigator-canPlayType><code>canPlayType(<var title="">type</var>)</code></dfn> method must return <dfn id=dom-canplaytypeenum-nil title=dom-CanPlayTypeEnum-nil>the empty string</dfn> if <var title="">type</var>
   is <a href=#a-type-that-the-user-agent-knows-it-cannot-render>a type that the user agent knows it cannot render</a> or is the type
   "<code>application/octet-stream</code>"; it must return "<dfn id=dom-canplaytypeenum-probably title=dom-CanPlayTypeEnum-probably><code>probably</code></dfn>" if the
@@ -64137,7 +64138,10 @@
    <a href=#active-document>active document</a> has the <a href=#same-origin title="same origin">same</a> <a href=#origin>origin</a> as
    the <a href=#active-document>active document</a> of <var title="">A</var> (possibly in fact being <var title="">A</var> itself).</li>
 
-  </ul><hr><p>An element has a <dfn id=browsing-context-scope-origin>browsing context scope origin</dfn> if its <code><a href=#document>Document</a></code>'s
+  </ul><p class=note>Sandboxing (in particular the <a href=#sandboxed-navigation-browsing-context-flag>sandboxed navigation browsing context
+  flag</a>) can further restrict the above in certain cases.</p>
+
+  <hr><p>An element has a <dfn id=browsing-context-scope-origin>browsing context scope origin</dfn> if its <code><a href=#document>Document</a></code>'s
   <a href=#browsing-context>browsing context</a> is a <a href=#top-level-browsing-context>top-level browsing context</a> or if all of its
   <code><a href=#document>Document</a></code>'s <a href=#ancestor-browsing-context title="ancestor browsing context">ancestor browsing contexts</a>
   all have <a href=#active-document title="active document">active documents</a> whose <a href=#origin>origin</a> are the
@@ -64241,10 +64245,10 @@
     <tr><td><code title="">_blank</code>
      <td>new
      <td>new
-     <td>maybe new†
-     <td>maybe new†
-     <td>maybe new†
-     <td>maybe new†
+     <td>maybe new
+     <td>maybe new
+     <td>maybe new
+     <td>maybe new
 
     <tr><td><code title="">_self</code>
      <td>current
@@ -64334,8 +64338,42 @@
      <td>none
      <td>none
 
-  </table><p class=tablenote><small>† This case is only possible if the <code title=attr-iframe-sandbox><a href=#attr-iframe-sandbox>sandbox</a></code> attribute also allows scripts.</small></p>
+    <tr><td>other name that exists with common top
+     <td>specified
+     <td>specified
+     <td>none
+     <td>none
+     <td>none
+     <td>none
 
+    <tr><td>other name that exists, if <a href=#allowed-to-navigate>allowed to navigate</a> and <a href=#one-permitted-sandboxed-navigator>one permitted sandboxed navigator</a>
+     <td>specified
+     <td>specified
+     <td>specified
+     <td>specified
+     <td>specified
+     <td>specified
+
+    <tr><td>other name that exists, if <a href=#allowed-to-navigate>allowed to navigate</a> but not <a href=#one-permitted-sandboxed-navigator>one permitted sandboxed navigator</a>
+     <td>specified
+     <td>specified
+     <td>none
+     <td>none
+     <td>none
+     <td>none
+
+    <tr><td>other name that exists, not <a href=#allowed-to-navigate>allowed to navigate</a>
+     <td>new
+     <td>new
+     <td>maybe new
+     <td>maybe new
+     <td>maybe new
+     <td>maybe new
+
+  </table><p class=tablenote><small>Most of the restrictions on sandboxed browsing contexts are applied by
+  other algorithms, e.g. the <a href=#navigate title=navigate>navigation</a> algorithm, not <a href=#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>the rules
+  for choosing a browsing context given a browsing context name</a> given below.</small></p>
+
   <div class=impl>
 
   <hr><p>An algorithm is <dfn id=allowed-to-show-a-popup>allowed to show a popup</dfn> if, in the <a href=#concept-task title=concept-task>task</a> in which the algorithm is running, either:</p>
@@ -77876,7 +77914,7 @@
    // CONFIGURATION
    function configure(event) {
      if (event.data.substr(0, 4) != 'cfg ') return;
-     var name = event.data.substr(4).split(' ', 1);
+     var name = event.data.substr(4).split(' ', 1)[0];
      // update display to mention our name is name
      document.getElementsByTagName('h1')[0].textContent += ' ' + name;
      // no longer need this listener
@@ -77898,7 +77936,7 @@
            context.fillStyle = 'green';
          else 
            context.fillStyle = 'maroon';
-         fillRect(x * 50, y * 50, 50, 50);
+         context.fillRect(x * 50, y * 50, 50, 50);
        }
      }
    }
@@ -77907,23 +77945,26 @@
    // PUBLIC CHAT
    function updatePublicChat(event) {
      if (event.data.substr(0, 4) != 'txt ') return;
-     var name = event.data.substr(4).split(' ', 1);
-     var message = event.data.substr(4 + length(name) + 1);
+     var name = event.data.substr(4).split(' ', 1)[0];
+     var message = event.data.substr(4 + name.length + 1);
      // display "<name> message" in public chat
-     var dialog = document.getElementById('public');
-     var dt = document.createElement('dt');
-     dt.textContent = name;
-     dialog.appendChild(dt);
-     var dd = document.createElement('dd');
-     dd.textContent = message;
-     dialog.appendChild(dd);
+     var public = document.getElementById('public');
+     var p = document.createElement('p');
+     var n = document.createElement('button');
+     n.textContent = '<' + name + '> ';
+     n.onclick = function () { worker.port.postMessage('msg ' + name); };
+     p.appendChild(n);
+     var m = document.createElement('span');
+     m.textContent = message;
+     p.appendChild(m);
+     public.appendChild(p);
    }
    worker.port.addEventListener('message', updatePublicChat, false);
 
    // PRIVATE CHAT
    function startPrivateChat(event) {
      if (event.data.substr(0, 4) != 'msg ') return;
-     var name = event.data.substr(4).split(' ', 1);
+     var name = event.data.substr(4).split(' ', 1)[0];
      var port = event.ports[0];
      // display a private chat UI
      var ul = document.getElementById('private');
@@ -77931,19 +77972,21 @@
      var h3 = document.createElement('h3');
      h3.textContent = 'Private chat with ' + name;
      li.appendChild(h3);
-     var dialog = document.createElement('dialog');
+     var div = document.createElement('div');
      var addMessage = function(name, message) {
-       var dt = document.createElement('dt');
-       dt.textContent = name;
-       dialog.appendChild(dt);
-       var dd = document.createElement('dd');
-       dd.textContent = message;
-       dialog.appendChild(dd);
+       var p = document.createElement('p');
+       var n = document.createElement('strong');
+       n.textContent = '<' + name + '> ';
+       p.appendChild(n);
+       var t = document.createElement('span');
+       t.textContent = message;
+       p.appendChild(t);
+       div.appendChild(p);
      };
      port.onmessage = function (event) {
        addMessage(name, event.data);
      };
-     li.appendChild(dialog);
+     li.appendChild(div);
      var form = document.createElement('form');
      var p = document.createElement('p');
      var input = document.createElement('input');
@@ -77961,6 +78004,7 @@
      };
      form.appendChild(p);
      li.appendChild(form);
+     ul.appendChild(li);
    }
    worker.port.addEventListener('message', startPrivateChat, false);
 
@@ -77980,7 +78024,7 @@
    <button type=button onclick="worker.port.postMessage('set 1')">Set 1</button>
   </p>
   <h2>Public Chat</h2>
-  <dialog id="public"></dialog>
+  <div id="public"></div>
   <form onsubmit="worker.port.postMessage('txt ' + message.value); message.value = ''; return false;">
    <p>
     <input type="text" name="message" size="50">
@@ -78042,26 +78086,34 @@
   return y;
 }
 
-function sendMapData(callback) {
+function wrap(val, min, max) {
+  if (val < min)
+    return val + (max-min)+1;
+  if (val > max)
+    return val - (max-min)-1;
+  return val;
+}
+
+function sendMapData(viewer) {
   var data = '';
   for (var y = viewer.y-1; y <= viewer.y+1; y += 1) {
     for (var x = viewer.x-1; x <= viewer.x+1; x += 1) {
       if (data != '')
         data += ',';
-      data += map[y][x];
+      data += map[wrap(y, 0, map[0].length-1)][wrap(x, 0, map.length-1)];
     }
   }
-  callback('map ' + data);
+  viewer.port.postMessage('map ' + data);
 }
 
 var viewers = {};
 onconnect = function (event) {
-  event.ports[0]._name = getNextName();
-  event.ports[0]._data = { port: event.port, x: 0, y: 0, };
-  viewers[event.ports[0]._name] = event.port._data;
+  var name = getNextName();
+  event.ports[0]._data = { port: event.ports[0], name: name, x: 0, y: 0, };
+  viewers[name] = event.ports[0]._data;
   event.ports[0].postMessage('cfg ' + name);
   event.ports[0].onmessage = getMessage;
-  sendMapData(event.ports[0].postMessage);
+  sendMapData(event.ports[0]._data);
 };
 
 function getMessage(event) {
@@ -78078,23 +78130,23 @@
       }
       event.target._data.x = wrapX(event.target._data.x + dx);
       event.target._data.y = wrapY(event.target._data.y + dy);
-      sendMapData(event.target.postMessage);
+      sendMapData(event.target._data);
       break;
     case 'set ':
       var value = event.data.substr(4);
       map[event.target._data.y][event.target._data.x] = value;
       for (var viewer in viewers)
-        sendMapData(viewers[viewer].port.postMessage);
+        sendMapData(viewers[viewer]._data);
       break;
     case 'txt ':
-      var name = event.target._name;
+      var name = event.target._data.name;
       var message = event.data.substr(4);
       for (var viewer in viewers)
         viewers[viewer].port.postMessage('txt ' + name + ' ' + message);
       break;
     case 'msg ':
-      var party1 = event._data;
-      var party2 = viewers[event.data.substr(4).split(' ', 1)];
+      var party1 = event.target._data;
+      var party2 = viewers[event.data.substr(4).split(' ', 1)[0]];
       if (party2) {
         var channel = new MessageChannel();
         party1.port.postMessage('msg ' + party2.name, [channel.port1]);
@@ -101101,6 +101153,7 @@
   Björn Höhrmann,
   Blake Frantz,
   Bob Lund,
+  Bob Owen,
   Boris Zbarsky,
   Brad Fults,
   Brad Neuberg,

Modified: index
===================================================================
--- index	2013-04-12 23:30:29 UTC (rev 7827)
+++ index	2013-04-13 16:18:34 UTC (rev 7828)
@@ -248,7 +248,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 12 April 2013</h2>
+    <h2 class="no-num no-toc">Living Standard — Last Updated 13 April 2013</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>
@@ -27138,6 +27138,7 @@
 
   </dl><div class=impl>
 
+<!--CLEANUP-->
   <p>The <dfn id=dom-navigator-canplaytype title=dom-navigator-canPlayType><code>canPlayType(<var title="">type</var>)</code></dfn> method must return <dfn id=dom-canplaytypeenum-nil title=dom-CanPlayTypeEnum-nil>the empty string</dfn> if <var title="">type</var>
   is <a href=#a-type-that-the-user-agent-knows-it-cannot-render>a type that the user agent knows it cannot render</a> or is the type
   "<code>application/octet-stream</code>"; it must return "<dfn id=dom-canplaytypeenum-probably title=dom-CanPlayTypeEnum-probably><code>probably</code></dfn>" if the
@@ -64137,7 +64138,10 @@
    <a href=#active-document>active document</a> has the <a href=#same-origin title="same origin">same</a> <a href=#origin>origin</a> as
    the <a href=#active-document>active document</a> of <var title="">A</var> (possibly in fact being <var title="">A</var> itself).</li>
 
-  </ul><hr><p>An element has a <dfn id=browsing-context-scope-origin>browsing context scope origin</dfn> if its <code><a href=#document>Document</a></code>'s
+  </ul><p class=note>Sandboxing (in particular the <a href=#sandboxed-navigation-browsing-context-flag>sandboxed navigation browsing context
+  flag</a>) can further restrict the above in certain cases.</p>
+
+  <hr><p>An element has a <dfn id=browsing-context-scope-origin>browsing context scope origin</dfn> if its <code><a href=#document>Document</a></code>'s
   <a href=#browsing-context>browsing context</a> is a <a href=#top-level-browsing-context>top-level browsing context</a> or if all of its
   <code><a href=#document>Document</a></code>'s <a href=#ancestor-browsing-context title="ancestor browsing context">ancestor browsing contexts</a>
   all have <a href=#active-document title="active document">active documents</a> whose <a href=#origin>origin</a> are the
@@ -64241,10 +64245,10 @@
     <tr><td><code title="">_blank</code>
      <td>new
      <td>new
-     <td>maybe new†
-     <td>maybe new†
-     <td>maybe new†
-     <td>maybe new†
+     <td>maybe new
+     <td>maybe new
+     <td>maybe new
+     <td>maybe new
 
     <tr><td><code title="">_self</code>
      <td>current
@@ -64334,8 +64338,42 @@
      <td>none
      <td>none
 
-  </table><p class=tablenote><small>† This case is only possible if the <code title=attr-iframe-sandbox><a href=#attr-iframe-sandbox>sandbox</a></code> attribute also allows scripts.</small></p>
+    <tr><td>other name that exists with common top
+     <td>specified
+     <td>specified
+     <td>none
+     <td>none
+     <td>none
+     <td>none
 
+    <tr><td>other name that exists, if <a href=#allowed-to-navigate>allowed to navigate</a> and <a href=#one-permitted-sandboxed-navigator>one permitted sandboxed navigator</a>
+     <td>specified
+     <td>specified
+     <td>specified
+     <td>specified
+     <td>specified
+     <td>specified
+
+    <tr><td>other name that exists, if <a href=#allowed-to-navigate>allowed to navigate</a> but not <a href=#one-permitted-sandboxed-navigator>one permitted sandboxed navigator</a>
+     <td>specified
+     <td>specified
+     <td>none
+     <td>none
+     <td>none
+     <td>none
+
+    <tr><td>other name that exists, not <a href=#allowed-to-navigate>allowed to navigate</a>
+     <td>new
+     <td>new
+     <td>maybe new
+     <td>maybe new
+     <td>maybe new
+     <td>maybe new
+
+  </table><p class=tablenote><small>Most of the restrictions on sandboxed browsing contexts are applied by
+  other algorithms, e.g. the <a href=#navigate title=navigate>navigation</a> algorithm, not <a href=#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>the rules
+  for choosing a browsing context given a browsing context name</a> given below.</small></p>
+
   <div class=impl>
 
   <hr><p>An algorithm is <dfn id=allowed-to-show-a-popup>allowed to show a popup</dfn> if, in the <a href=#concept-task title=concept-task>task</a> in which the algorithm is running, either:</p>
@@ -77876,7 +77914,7 @@
    // CONFIGURATION
    function configure(event) {
      if (event.data.substr(0, 4) != 'cfg ') return;
-     var name = event.data.substr(4).split(' ', 1);
+     var name = event.data.substr(4).split(' ', 1)[0];
      // update display to mention our name is name
      document.getElementsByTagName('h1')[0].textContent += ' ' + name;
      // no longer need this listener
@@ -77898,7 +77936,7 @@
            context.fillStyle = 'green';
          else 
            context.fillStyle = 'maroon';
-         fillRect(x * 50, y * 50, 50, 50);
+         context.fillRect(x * 50, y * 50, 50, 50);
        }
      }
    }
@@ -77907,23 +77945,26 @@
    // PUBLIC CHAT
    function updatePublicChat(event) {
      if (event.data.substr(0, 4) != 'txt ') return;
-     var name = event.data.substr(4).split(' ', 1);
-     var message = event.data.substr(4 + length(name) + 1);
+     var name = event.data.substr(4).split(' ', 1)[0];
+     var message = event.data.substr(4 + name.length + 1);
      // display "<name> message" in public chat
-     var dialog = document.getElementById('public');
-     var dt = document.createElement('dt');
-     dt.textContent = name;
-     dialog.appendChild(dt);
-     var dd = document.createElement('dd');
-     dd.textContent = message;
-     dialog.appendChild(dd);
+     var public = document.getElementById('public');
+     var p = document.createElement('p');
+     var n = document.createElement('button');
+     n.textContent = '<' + name + '> ';
+     n.onclick = function () { worker.port.postMessage('msg ' + name); };
+     p.appendChild(n);
+     var m = document.createElement('span');
+     m.textContent = message;
+     p.appendChild(m);
+     public.appendChild(p);
    }
    worker.port.addEventListener('message', updatePublicChat, false);
 
    // PRIVATE CHAT
    function startPrivateChat(event) {
      if (event.data.substr(0, 4) != 'msg ') return;
-     var name = event.data.substr(4).split(' ', 1);
+     var name = event.data.substr(4).split(' ', 1)[0];
      var port = event.ports[0];
      // display a private chat UI
      var ul = document.getElementById('private');
@@ -77931,19 +77972,21 @@
      var h3 = document.createElement('h3');
      h3.textContent = 'Private chat with ' + name;
      li.appendChild(h3);
-     var dialog = document.createElement('dialog');
+     var div = document.createElement('div');
      var addMessage = function(name, message) {
-       var dt = document.createElement('dt');
-       dt.textContent = name;
-       dialog.appendChild(dt);
-       var dd = document.createElement('dd');
-       dd.textContent = message;
-       dialog.appendChild(dd);
+       var p = document.createElement('p');
+       var n = document.createElement('strong');
+       n.textContent = '<' + name + '> ';
+       p.appendChild(n);
+       var t = document.createElement('span');
+       t.textContent = message;
+       p.appendChild(t);
+       div.appendChild(p);
      };
      port.onmessage = function (event) {
        addMessage(name, event.data);
      };
-     li.appendChild(dialog);
+     li.appendChild(div);
      var form = document.createElement('form');
      var p = document.createElement('p');
      var input = document.createElement('input');
@@ -77961,6 +78004,7 @@
      };
      form.appendChild(p);
      li.appendChild(form);
+     ul.appendChild(li);
    }
    worker.port.addEventListener('message', startPrivateChat, false);
 
@@ -77980,7 +78024,7 @@
    <button type=button onclick="worker.port.postMessage('set 1')">Set 1</button>
   </p>
   <h2>Public Chat</h2>
-  <dialog id="public"></dialog>
+  <div id="public"></div>
   <form onsubmit="worker.port.postMessage('txt ' + message.value); message.value = ''; return false;">
    <p>
     <input type="text" name="message" size="50">
@@ -78042,26 +78086,34 @@
   return y;
 }
 
-function sendMapData(callback) {
+function wrap(val, min, max) {
+  if (val < min)
+    return val + (max-min)+1;
+  if (val > max)
+    return val - (max-min)-1;
+  return val;
+}
+
+function sendMapData(viewer) {
   var data = '';
   for (var y = viewer.y-1; y <= viewer.y+1; y += 1) {
     for (var x = viewer.x-1; x <= viewer.x+1; x += 1) {
       if (data != '')
         data += ',';
-      data += map[y][x];
+      data += map[wrap(y, 0, map[0].length-1)][wrap(x, 0, map.length-1)];
     }
   }
-  callback('map ' + data);
+  viewer.port.postMessage('map ' + data);
 }
 
 var viewers = {};
 onconnect = function (event) {
-  event.ports[0]._name = getNextName();
-  event.ports[0]._data = { port: event.port, x: 0, y: 0, };
-  viewers[event.ports[0]._name] = event.port._data;
+  var name = getNextName();
+  event.ports[0]._data = { port: event.ports[0], name: name, x: 0, y: 0, };
+  viewers[name] = event.ports[0]._data;
   event.ports[0].postMessage('cfg ' + name);
   event.ports[0].onmessage = getMessage;
-  sendMapData(event.ports[0].postMessage);
+  sendMapData(event.ports[0]._data);
 };
 
 function getMessage(event) {
@@ -78078,23 +78130,23 @@
       }
       event.target._data.x = wrapX(event.target._data.x + dx);
       event.target._data.y = wrapY(event.target._data.y + dy);
-      sendMapData(event.target.postMessage);
+      sendMapData(event.target._data);
       break;
     case 'set ':
       var value = event.data.substr(4);
       map[event.target._data.y][event.target._data.x] = value;
       for (var viewer in viewers)
-        sendMapData(viewers[viewer].port.postMessage);
+        sendMapData(viewers[viewer]._data);
       break;
     case 'txt ':
-      var name = event.target._name;
+      var name = event.target._data.name;
       var message = event.data.substr(4);
       for (var viewer in viewers)
         viewers[viewer].port.postMessage('txt ' + name + ' ' + message);
       break;
     case 'msg ':
-      var party1 = event._data;
-      var party2 = viewers[event.data.substr(4).split(' ', 1)];
+      var party1 = event.target._data;
+      var party2 = viewers[event.data.substr(4).split(' ', 1)[0]];
       if (party2) {
         var channel = new MessageChannel();
         party1.port.postMessage('msg ' + party2.name, [channel.port1]);
@@ -101101,6 +101153,7 @@
   Björn Höhrmann,
   Blake Frantz,
   Bob Lund,
+  Bob Owen,
   Boris Zbarsky,
   Brad Fults,
   Brad Neuberg,

Modified: source
===================================================================
--- source	2013-04-12 23:30:29 UTC (rev 7827)
+++ source	2013-04-13 16:18:34 UTC (rev 7828)
@@ -28705,6 +28705,7 @@
 
   <div class="impl">
 
+<!--CLEANUP-->
   <p>The <dfn title="dom-navigator-canPlayType"><code>canPlayType(<var
   title="">type</var>)</code></dfn> method must return <dfn title="dom-CanPlayTypeEnum-nil">the empty string</dfn> if <var title="">type</var>
   is <span>a type that the user agent knows it cannot render</span> or is the type
@@ -76002,6 +76003,9 @@
 
   </ul>
 
+  <p class="note">Sandboxing (in particular the <span>sandboxed navigation browsing context
+  flag</span>) can further restrict the above in certain cases.</p>
+
   <hr>
 
   <p>An element has a <dfn>browsing context scope origin</dfn> if its <code>Document</code>'s
@@ -76123,10 +76127,10 @@
      <td><code title="">_blank</code>
      <td>new
      <td>new
-     <td>maybe new†
-     <td>maybe new†
-     <td>maybe new†
-     <td>maybe new†
+     <td>maybe new
+     <td>maybe new
+     <td>maybe new
+     <td>maybe new
 
     <tr>
      <td><code title="">_self</code>
@@ -76227,10 +76231,47 @@
      <td>none
      <td>none
 
+    <tr>
+     <td>other name that exists with common top
+     <td>specified
+     <td>specified
+     <td>none
+     <td>none
+     <td>none
+     <td>none
+
+    <tr>
+     <td>other name that exists, if <span>allowed to navigate</span> and <span>one permitted sandboxed navigator</span>
+     <td>specified
+     <td>specified
+     <td>specified
+     <td>specified
+     <td>specified
+     <td>specified
+
+    <tr>
+     <td>other name that exists, if <span>allowed to navigate</span> but not <span>one permitted sandboxed navigator</span>
+     <td>specified
+     <td>specified
+     <td>none
+     <td>none
+     <td>none
+     <td>none
+
+    <tr>
+     <td>other name that exists, not <span>allowed to navigate</span>
+     <td>new
+     <td>new
+     <td>maybe new
+     <td>maybe new
+     <td>maybe new
+     <td>maybe new
+
   </table>
 
-  <p class="tablenote"><small>† This case is only possible if the <code
-  title="attr-iframe-sandbox">sandbox</code> attribute also allows scripts.</small></p>
+  <p class="tablenote"><small>Most of the restrictions on sandboxed browsing contexts are applied by
+  other algorithms, e.g. the <span title="navigate">navigation</span> algorithm, not <span>the rules
+  for choosing a browsing context given a browsing context name</span> given below.</small></p>
 
   <div class="impl">
 
@@ -117886,6 +117927,7 @@
   Björn Höhrmann,
   Blake Frantz,
   Bob Lund,
+  Bob Owen,
   Boris Zbarsky,
   Brad Fults,
   Brad Neuberg,




More information about the Commit-Watchers mailing list