diff options
author | Gaming4JC <g4jc@hyperbola.info> | 2020-01-05 10:32:30 -0500 |
---|---|---|
committer | Gaming4JC <g4jc@hyperbola.info> | 2020-01-26 15:50:24 -0500 |
commit | bbb717ec12e63be39929806f62a603bdb4f61de9 (patch) | |
tree | b6676774f298e9b81c6da6fd612bdd0f4f96116e /dom/base/CustomElementRegistry.cpp | |
parent | 515c46e695f6cf0a66273e4744330ad7d23fe2cc (diff) | |
download | UXP-bbb717ec12e63be39929806f62a603bdb4f61de9.tar UXP-bbb717ec12e63be39929806f62a603bdb4f61de9.tar.gz UXP-bbb717ec12e63be39929806f62a603bdb4f61de9.tar.lz UXP-bbb717ec12e63be39929806f62a603bdb4f61de9.tar.xz UXP-bbb717ec12e63be39929806f62a603bdb4f61de9.zip |
Bug 1299363 - Part 5-1: Make the constructor created by document.registerElement() also works with construction stack.
So that the old upgrade can also work with new upgrade steps which will be implemented in part 5-2.
Tag UXP Issue #1344
Diffstat (limited to 'dom/base/CustomElementRegistry.cpp')
-rw-r--r-- | dom/base/CustomElementRegistry.cpp | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/dom/base/CustomElementRegistry.cpp b/dom/base/CustomElementRegistry.cpp index 1c1e3d6ae..ce2e4b04f 100644 --- a/dom/base/CustomElementRegistry.cpp +++ b/dom/base/CustomElementRegistry.cpp @@ -799,40 +799,6 @@ CustomElementRegistry::Upgrade(Element* aElement, MOZ_ASSERT(aElement->IsHTMLElement(aDefinition->mLocalName)); - AutoJSAPI jsapi; - if (NS_WARN_IF(!jsapi.Init(mWindow))) { - return; - } - - JSContext* cx = jsapi.cx(); - - JS::Rooted<JSObject*> reflector(cx, aElement->GetWrapper()); - if (reflector) { - Maybe<JSAutoCompartment> ac; - JS::Rooted<JSObject*> prototype(cx, aDefinition->mPrototype); - if (aElement->NodePrincipal()->SubsumesConsideringDomain(nsContentUtils::ObjectPrincipal(prototype))) { - ac.emplace(cx, reflector); - if (!JS_WrapObject(cx, &prototype) || - !JS_SetPrototype(cx, reflector, prototype)) { - return; - } - } else { - // We want to set the custom prototype in the compartment where it was - // registered. We store the prototype from define() without unwrapped, - // hence the prototype's compartment is the compartment where it was - // registered. - // In the case that |reflector| and |prototype| are in different - // compartments, this will set the prototype on the |reflector|'s wrapper - // and thus only visible in the wrapper's compartment, since we know - // reflector's principal does not subsume prototype's in this case. - ac.emplace(cx, prototype); - if (!JS_WrapObject(cx, &reflector) || - !JS_SetPrototype(cx, reflector, prototype)) { - return; - } - } - } - EnqueueLifecycleCallback(nsIDocument::eCreated, aElement, nullptr, aDefinition); } |