Re: [webcomponents] Proposal for Cross Origin Use Case and Declarative Syntax

On Nov 12, 2013, at 6:22 AM, Elliott Sprehn <> wrote:
> On Mon, Nov 11, 2013 at 1:33 AM, Ryosuke Niwa <> wrote:
> [...] we’re open to creating a proxy/fake element subclass which is not visible in the global scope and identical to HTMLKnownElement in its prototype chain in the host document as well.
> Can you clarify why it can't be visible in the global scope?

Allowing the imported document to define arbitrary interface to the global scope of the host document will be a security vulnerability unless the host document explicitly lists the name of interfaces, or there is a strict mapping between tag names and interface names.

> Why can't I do document.body.appendChild(new FBLikeButton()) or document.body.firstElementChild instanceof FBLikeButton?

One way to accomplish this will be adding yet another attribute that imports the list of interfaces;
e.g. <link ref=import importelements=“like-button” importinterfaces=“FBLikeButton”>
or defining a map between tag names and interface names (e.g. tag-name > TagName), or exporting it on the link element. e.g. likeButtonLinkElement.importedcomponents.FBLikeButton.

- R. Niwa

Received on Monday, 11 November 2013 23:38:28 UTC