add CanGc as argument to methods in DissimilarOriginWindow, DocumentFragment, DocumentType, DOMRect, DOMRectReadOnly, DOMStringMap (#36395)

add CanGc as argument to methods in DissimilarOriginWindow,
DocumentFragment, DocumentType, DOMRect, DOMRectReadOnly, DOMStringMap

Testing: These changes do not require tests because they are a refactor.
Addressed part of https://github.com/servo/servo/issues/34573.

Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
This commit is contained in:
Yerkebulan Tulibergenov 2025-04-07 19:33:21 -07:00 committed by GitHub
parent 76e0b8ec06
commit 40655cc06c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 31 additions and 15 deletions

View file

@ -190,9 +190,9 @@ impl DissimilarOriginWindowMethods<crate::DomTypeHolder> for DissimilarOriginWin
}
// https://html.spec.whatwg.org/multipage/#dom-location
fn Location(&self) -> DomRoot<DissimilarOriginLocation> {
fn Location(&self, can_gc: CanGc) -> DomRoot<DissimilarOriginLocation> {
self.location
.or_init(|| DissimilarOriginLocation::new(self, CanGc::note()))
.or_init(|| DissimilarOriginLocation::new(self, can_gc))
}
}

View file

@ -76,9 +76,9 @@ impl DocumentFragmentMethods<crate::DomTypeHolder> for DocumentFragment {
}
// https://dom.spec.whatwg.org/#dom-parentnode-children
fn Children(&self) -> DomRoot<HTMLCollection> {
fn Children(&self, can_gc: CanGc) -> DomRoot<HTMLCollection> {
let window = self.owner_window();
HTMLCollection::children(&window, self.upcast(), CanGc::note())
HTMLCollection::children(&window, self.upcast(), can_gc)
}
// https://dom.spec.whatwg.org/#dom-nonelementparentnode-getelementbyid

View file

@ -103,7 +103,7 @@ impl DocumentTypeMethods<crate::DomTypeHolder> for DocumentType {
}
// https://dom.spec.whatwg.org/#dom-childnode-remove
fn Remove(&self) {
self.upcast::<Node>().remove_self(CanGc::note());
fn Remove(&self, can_gc: CanGc) {
self.upcast::<Node>().remove_self(can_gc);
}
}

View file

@ -75,10 +75,10 @@ impl DOMRectMethods<crate::DomTypeHolder> for DOMRect {
// https://drafts.fxtf.org/geometry/#dom-domrect-fromrect
#[cfg_attr(crown, allow(crown::unrooted_must_root))]
fn FromRect(global: &GlobalScope, other: &DOMRectInit) -> DomRoot<DOMRect> {
fn FromRect(global: &GlobalScope, other: &DOMRectInit, can_gc: CanGc) -> DomRoot<DOMRect> {
let rect = create_a_domrectreadonly_from_the_dictionary(other);
reflect_dom_object(Box::new(Self { rect }), global, CanGc::note())
reflect_dom_object(Box::new(Self { rect }), global, can_gc)
}
// https://drafts.fxtf.org/geometry/#dom-domrect-x

View file

@ -104,10 +104,14 @@ impl DOMRectReadOnlyMethods<crate::DomTypeHolder> for DOMRectReadOnly {
// https://drafts.fxtf.org/geometry/#dom-domrectreadonly-fromrect
#[cfg_attr(crown, allow(crown::unrooted_must_root))]
fn FromRect(global: &GlobalScope, other: &DOMRectInit) -> DomRoot<DOMRectReadOnly> {
fn FromRect(
global: &GlobalScope,
other: &DOMRectInit,
can_gc: CanGc,
) -> DomRoot<DOMRectReadOnly> {
let dom_rect = create_a_domrectreadonly_from_the_dictionary(other);
reflect_dom_object(Box::new(dom_rect), global, CanGc::note())
reflect_dom_object(Box::new(dom_rect), global, can_gc)
}
// https://drafts.fxtf.org/geometry/#dom-domrectreadonly-x

View file

@ -39,8 +39,8 @@ impl DOMStringMap {
// https://html.spec.whatwg.org/multipage/#domstringmap
impl DOMStringMapMethods<crate::DomTypeHolder> for DOMStringMap {
// https://html.spec.whatwg.org/multipage/#dom-domstringmap-removeitem
fn NamedDeleter(&self, name: DOMString) {
self.element.delete_custom_attr(name, CanGc::note())
fn NamedDeleter(&self, name: DOMString, can_gc: CanGc) {
self.element.delete_custom_attr(name, can_gc)
}
// https://html.spec.whatwg.org/multipage/#dom-domstringmap-setitem