diff options
author | Josh Matthews <josh@joshmatthews.net> | 2024-10-07 21:51:58 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-08 01:51:58 +0000 |
commit | 7d931e673af2780f3f62d52cb17324ec2cc68c71 (patch) | |
tree | 450d534196e9eb8d0e04db37203b414f5d92420d /components/script/dom/htmlimageelement.rs | |
parent | 946fa9cdee68bb834a3b75821e8e7f94cf86d31c (diff) | |
download | servo-7d931e673af2780f3f62d52cb17324ec2cc68c71.tar.gz servo-7d931e673af2780f3f62d52cb17324ec2cc68c71.zip |
script: Include constructors and static methods in generated DOM traits (#33665)
* Add all constructors, special operations, and static methods to generated DOM interface traits.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Move all constructors and static methods defined in bare impl blocks inside FooMethods trait impls.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Add missing doc links.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
---------
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
Diffstat (limited to 'components/script/dom/htmlimageelement.rs')
-rw-r--r-- | components/script/dom/htmlimageelement.rs | 64 |
1 files changed, 33 insertions, 31 deletions
diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs index bf98d5f5b1d..bac35cc7a8d 100644 --- a/components/script/dom/htmlimageelement.rs +++ b/components/script/dom/htmlimageelement.rs @@ -1356,37 +1356,6 @@ impl HTMLImageElement { ) } - pub fn Image( - window: &Window, - proto: Option<HandleObject>, - can_gc: CanGc, - width: Option<u32>, - height: Option<u32>, - ) -> Fallible<DomRoot<HTMLImageElement>> { - let element = Element::create( - QualName::new(None, ns!(html), local_name!("img")), - None, - &window.Document(), - ElementCreator::ScriptCreated, - CustomElementCreationMode::Synchronous, - proto, - can_gc, - ); - - let image = DomRoot::downcast::<HTMLImageElement>(element).unwrap(); - if let Some(w) = width { - image.SetWidth(w); - } - if let Some(h) = height { - image.SetHeight(h); - } - - // run update_the_image_data when the element is created. - // https://html.spec.whatwg.org/multipage/#when-to-obtain-images - image.update_the_image_data(can_gc); - - Ok(image) - } pub fn areas(&self) -> Option<Vec<DomRoot<HTMLAreaElement>>> { let elem = self.upcast::<Element>(); let usemap_attr = elem.get_attribute(&ns!(), &local_name!("usemap"))?; @@ -1568,6 +1537,39 @@ fn get_correct_referrerpolicy_from_raw_token(token: &DOMString) -> DOMString { } impl HTMLImageElementMethods for HTMLImageElement { + // https://html.spec.whatwg.org/multipage/#dom-image + fn Image( + window: &Window, + proto: Option<HandleObject>, + can_gc: CanGc, + width: Option<u32>, + height: Option<u32>, + ) -> Fallible<DomRoot<HTMLImageElement>> { + let element = Element::create( + QualName::new(None, ns!(html), local_name!("img")), + None, + &window.Document(), + ElementCreator::ScriptCreated, + CustomElementCreationMode::Synchronous, + proto, + can_gc, + ); + + let image = DomRoot::downcast::<HTMLImageElement>(element).unwrap(); + if let Some(w) = width { + image.SetWidth(w); + } + if let Some(h) = height { + image.SetHeight(h); + } + + // run update_the_image_data when the element is created. + // https://html.spec.whatwg.org/multipage/#when-to-obtain-images + image.update_the_image_data(can_gc); + + Ok(image) + } + // https://html.spec.whatwg.org/multipage/#dom-img-alt make_getter!(Alt, "alt"); // https://html.spec.whatwg.org/multipage/#dom-img-alt |