- From: <bugzilla@jessica.w3.org>
- Date: Thu, 06 Nov 2014 17:18:44 +0000
- To: public-webapps@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=27260
Bug ID: 27260
Summary: [Custom]: Need to define global/Realm handling for
registerElement
Product: WebAppsWG
Version: unspecified
Hardware: PC
OS: All
Status: NEW
Severity: normal
Priority: P2
Component: Component Model
Assignee: dglazkov@chromium.org
Reporter: bzbarsky@mit.edu
QA Contact: public-webapps-bugzilla@w3.org
CC: mike@w3.org, public-webapps@w3.org
Blocks: 14968
Created attachment 1535
--> https://www.w3.org/Bugs/Public/attachment.cgi?id=1535&action=edit
Testcase
Consider this testcase:
<iframe></iframe>
<script>
var f = document.registerElement.call(frames[0].document, "x-foo");
</script>
Per the spec, this should "let PROTOTYPE be the result of invoking
Object.create with HTMLElement's interface prototype object as only argument".
But it doesn't say _which_ "HTMLElement's interface prototype object" should be
used.
Then the spec says to run the "custom element constructor generation
algorithm", but this algorithm assumes an ambient global, which the spec
doesn't define.
In practice, the Chrome and Firefox implementations differ, as the attached
testcase shows. The output in Chrome:
ctor instanceof iframe Function: false
ctor instanceof parent Function: true
proto comes from iframe: false
proto comes from parent: true
The output in Firefox:
ctor instanceof iframe Function: true
ctor instanceof parent Function: false
proto comes from iframe: true
proto comes from parent: false
I believe the Firefox behavior is more correct here, by the way, since we're
supposed to be using the registry of the iframe document, so should use its
prototypes and constructors.
--
You are receiving this mail because:
You are on the CC list for the bug.
Received on Thursday, 6 November 2014 17:18:49 UTC