Update codegen for GetOpener:inRealms in Bindings.conf (#33062)

Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com>
This commit is contained in:
Taym Haddadi 2024-08-15 15:42:50 +02:00 committed by GitHub
parent 86c4e014b4
commit c01b733523
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 6 additions and 9 deletions

View file

@ -69,7 +69,7 @@ DOMInterfaces = {
},
'Window': {
'inRealms': ['Fetch', 'Opener'],
'inRealms': ['Fetch', 'GetOpener'],
},
'WorkerGlobalScope': {

View file

@ -702,7 +702,7 @@ impl WindowMethods for Window {
}
// https://html.spec.whatwg.org/multipage/#dom-opener
fn GetOpener(&self, cx: JSContext) -> Fallible<JSVal> {
fn GetOpener(&self, cx: JSContext, in_realm_proof: InRealm) -> Fallible<JSVal> {
// Step 1, Let current be this Window object's browsing context.
let current = match self.window_proxy.get() {
Some(proxy) => proxy,
@ -717,7 +717,7 @@ impl WindowMethods for Window {
return Ok(NullValue());
}
// Step 3 to 5.
Ok(current.opener(*cx))
Ok(current.opener(*cx, in_realm_proof))
}
#[allow(unsafe_code)]

View file

@ -418,7 +418,7 @@ impl WindowProxy {
#[allow(unsafe_code)]
// https://html.spec.whatwg.org/multipage/#dom-opener
pub fn opener(&self, cx: *mut JSContext) -> JSVal {
pub fn opener(&self, cx: *mut JSContext, in_realm_proof: InRealm) -> JSVal {
if self.disowned.get() {
return NullValue();
}
@ -436,11 +436,8 @@ impl WindowProxy {
opener_id,
) {
Some(opener_top_id) => {
let in_realm_proof =
AlreadyInRealm::assert_for_cx(unsafe { SafeJSContext::from_ptr(cx) });
let global_to_clone_from = unsafe {
GlobalScope::from_context(cx, InRealm::Already(&in_realm_proof))
};
let global_to_clone_from =
unsafe { GlobalScope::from_context(cx, in_realm_proof) };
let creator =
CreatorBrowsingContextInfo::from(parent_browsing_context, None);
WindowProxy::new_dissimilar_origin(