mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
Implementation of ImageBitmap ImageBitMap webidl file added Implementation of ImageBitmap mentioned the correct origin link basic new and new_inherited updated the mod.rs file to include imagebitmap imagebitmap implemented changed according to Serialization implemented serializable get methods for width and height basic imagebitmap added missing crates added Vec and missing crates Syntax fixes Reformatting and minor error fixes Implementation of ImageBitmap tidy-test runs Took out extra parameters in reflect_dom_object call added comments with specification links for webidl functions changing the code based on review comments adding resolved changes form the pull request Changes based on pr review Changes based on pr review ran test-tidy and fmt removed the duplicate crate removed unnecessary crates Kept only the relevant crate import Updated test expectations, exposed interface list, and manifest
58 lines
1.8 KiB
Rust
58 lines
1.8 KiB
Rust
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
|
|
use crate::dom::bindings::cell::DomRefCell;
|
|
|
|
use crate::dom::bindings::codegen::Bindings::ImageBitmapBinding::ImageBitmapMethods;
|
|
use crate::dom::bindings::root::DomRoot;
|
|
use crate::dom::globalscope::GlobalScope;
|
|
|
|
use crate::dom::bindings::error::Fallible;
|
|
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
|
|
use dom_struct::dom_struct;
|
|
|
|
use std::vec::Vec;
|
|
|
|
#[dom_struct]
|
|
pub struct ImageBitmap {
|
|
reflector_: Reflector,
|
|
width: u32,
|
|
height: u32,
|
|
bitmap_data: DomRefCell<Vec<u8>>,
|
|
}
|
|
|
|
impl ImageBitmap {
|
|
fn new_inherited(width_arg: u32, height_arg: u32) -> ImageBitmap {
|
|
ImageBitmap {
|
|
reflector_: Reflector::new(),
|
|
width: width_arg,
|
|
height: height_arg,
|
|
bitmap_data: DomRefCell::new(vec![]),
|
|
}
|
|
}
|
|
|
|
#[allow(dead_code)]
|
|
pub fn new(global: &GlobalScope, width: u32, height: u32) -> Fallible<DomRoot<ImageBitmap>> {
|
|
//assigning to a variable the return object of new_inherited
|
|
let imagebitmap = Box::new(ImageBitmap::new_inherited(width, height));
|
|
|
|
Ok(reflect_dom_object(imagebitmap, global))
|
|
}
|
|
}
|
|
|
|
impl ImageBitmapMethods for ImageBitmap {
|
|
// https://html.spec.whatwg.org/multipage/#dom-imagebitmap-height
|
|
fn Height(&self) -> u32 {
|
|
//to do: add a condition for checking detached internal slot
|
|
//and return 0 if set to true
|
|
self.height
|
|
}
|
|
|
|
// https://html.spec.whatwg.org/multipage/#dom-imagebitmap-width
|
|
fn Width(&self) -> u32 {
|
|
//to do: add a condition to check detached internal slot
|
|
////and return 0 if set to true
|
|
self.width
|
|
}
|
|
}
|