W3C home > Mailing lists > Public > public-webapps@w3.org > April to June 2015

Re: [components] Isolated Imports and Foreign Custom Elements

From: Maciej Stachowiak <mjs@apple.com>
Date: Fri, 01 May 2015 15:07:27 -0700
Cc: WebApps WG <public-webapps@w3.org>
Message-id: <DC5DE73A-BA53-4C04-8437-EA8EBEF4A53F@apple.com>
To: Anne van Kesteren <annevk@annevk.nl>

> On May 1, 2015, at 9:47 AM, Anne van Kesteren <annevk@annevk.nl> wrote:
> On Thu, Apr 23, 2015 at 8:58 PM, Maciej Stachowiak <mjs@apple.com> wrote:
>> I wrote up a proposal (with input and advice from Ryosuke Niwa) on a
>> possible way to extend Web Components to support fully isolated components:
>> https://github.com/w3c/webcomponents/wiki/Isolated-Imports-Proposal
>> I welcome comments on whether this approach makes sense.
> I don't get the bit where you create a node in one global, but run its
> constructor in another.

It’s already possible to run a constructor from another global object in the non-cross-origin case. Simple example below (it uses a built-in type as the example, but it could work just as easily with a custom defined prototype-based constructor or ES6 class constructor).

<iframe id="frame">
function doIt() {
    window.ForeignArray = document.getElementById("frame").contentWindow.Array;
    var localArray = new Array();
    var weirdArray = new ForeignArray();
    alert(weirdArray.__proto__ == localArray.__proto__);

window.addEventListener("load", doIt);

My proposal suggest something similar, except everything is wrapped with translating proxies at the origin boundary.

I think it may be necessary to do an experimental implementation to work out all the details of how the two-way isolation works.

> That seems rather Frankenstein-esque. Would
> love to see more details overall, as the direction this is going in
> certainly seems like the kind of thing we want. Allowing a dozen
> Facebook Like buttons to appear on a page using only one additional
> global.

Yes, that’s the goal.

Received on Friday, 1 May 2015 22:47:36 UTC

This archive was generated by hypermail 2.3.1 : Friday, 27 October 2017 07:27:31 UTC