Addresses Issue: Support OffscreenCanvas as CanvasImageSource #24269

Added methods to canvas_data to support drawing an offscreen canvas onto another canvas
Bug fix: Swapped OffscreenCanvas width and height parameters to match Mozilla spec
Tests: Updated metadata for 866 tests
This commit is contained in:
Bailey Blankenship 2019-12-01 20:19:07 -05:00
parent 951dc2419a
commit deae103042
869 changed files with 133 additions and 3478 deletions

View file

@ -24,8 +24,10 @@ use crate::dom::htmlcanvaselement::HTMLCanvasElement;
use crate::dom::imagedata::ImageData;
use crate::dom::offscreencanvas::OffscreenCanvas;
use crate::dom::textmetrics::TextMetrics;
use canvas_traits::canvas::{Canvas2dMsg, CanvasId, CanvasMsg};
use dom_struct::dom_struct;
use euclid::default::Size2D;
use ipc_channel::ipc::IpcSender;
#[dom_struct]
pub struct OffscreenCanvasRenderingContext2D {
@ -72,6 +74,22 @@ impl OffscreenCanvasRenderingContext2D {
pub fn set_canvas_bitmap_dimensions(&self, size: Size2D<u64>) {
self.canvas_state.borrow().set_bitmap_dimensions(size);
}
pub fn send_canvas_2d_msg(&self, msg: Canvas2dMsg) {
self.canvas_state.borrow().send_canvas_2d_msg(msg)
}
pub fn origin_is_clean(&self) -> bool {
self.canvas_state.borrow().origin_is_clean()
}
pub fn get_canvas_id(&self) -> CanvasId {
self.canvas_state.borrow().get_canvas_id()
}
pub fn get_ipc_renderer(&self) -> IpcSender<CanvasMsg> {
self.canvas_state.borrow().get_ipc_renderer().clone()
}
}
impl OffscreenCanvasRenderingContext2DMethods for OffscreenCanvasRenderingContext2D {