<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Aug 1, 2013, at 7:41 AM, Boris Zbarsky wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>(Sorry for breaking threading; catching up on the archives.)<br><br>The special thing about [[Enumerable]] is a bit of a red herring.  What the spec should say is that if you're looking at a non-same-origin Document or Window then you shouldn't be able to tell what properties it has at all, since that's a cross-site information leak.<br><br>Hixie did the [[Enumerable]] thing presumably just because he didn't realize how getOwnPropertyNames behaves.<br></div></blockquote><div><br></div><div>or that someone could simply do access probes for likely property names?</div><div><br></div><div>In sounds like the actual intent is the Document and Window must be exotic objects (ES6-speak) that do caller origin filtering on all MOP operations applied to them. Presumably that is what the FF proxies implement.</div><div><br></div><div>This whole discussion and the related <a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=20567">https://www.w3.org/Bugs/Public/show_bug.cgi?id=20567</a> "change [[Prototype]]" thread sure feel like Wack-A-Mole exercises.</div><div><br></div><div>It sounds like we don't actually have a complete/understandable/rational model of how the Document/Window rooted object model is supposed to behave as a data structure shared among Realms/processes/host domains, etc.   It isn't even clear to me whether that level of direct sharing is actually needed (except for compatibility issues). </div><div><br></div><div>Is it feasible to reboot the design and then go back and see what compatibility shims need to be put in front of a new model.</div><div><br></div><div>Unless something like that is done I fear that Wack-a-Mole will continue forever without anything actually getting better.</div><div><br></div><div>Allen</div><div><br></div><div><br></div></div></body></html>