[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