fix(canvas): apply fillRect transforms and native receiver conversion

This commit is contained in:
ldm0
2026-10-11 18:06:48 +08:00
parent a9bc0ef27b
commit 5d193eb730
3 changed files with 12 additions and 10 deletions
@@ -811,6 +811,7 @@ pub(crate) fn canvas_context_fill_rect_callback<'s>(
let mut rectangle = super::path::Canvas2dPathState::default();
rectangle.rect(parsed.x, parsed.y, parsed.width, parsed.height);
let fragment = PaintFragment::Fill {
fill_rule: moli_layout::PaintFillRule::NonZero,
shape: PaintShape::Path(rectangle.paint_path()),
brush: PaintBrush::Solid(context_fill_color(scope, context)),
transform,
@@ -1,12 +1,11 @@
use super::canvas::{
canvas_context_begin_path_callback, canvas_context_clear_rect_callback,
canvas_context_create_image_data_callback, canvas_context_create_linear_gradient_callback,
canvas_context_draw_image_callback,
canvas_context_fill_style_getter_callback, canvas_context_fill_style_setter_callback,
canvas_context_fill_text_callback, canvas_context_font_getter_callback,
canvas_context_font_setter_callback, canvas_context_get_image_data_callback,
canvas_context_get_line_dash_callback, canvas_context_global_alpha_getter_callback,
canvas_context_global_alpha_setter_callback,
canvas_context_draw_image_callback, canvas_context_fill_style_getter_callback,
canvas_context_fill_style_setter_callback, canvas_context_fill_text_callback,
canvas_context_font_getter_callback, canvas_context_font_setter_callback,
canvas_context_get_image_data_callback, canvas_context_get_line_dash_callback,
canvas_context_global_alpha_getter_callback, canvas_context_global_alpha_setter_callback,
canvas_context_global_composite_operation_getter_callback,
canvas_context_global_composite_operation_setter_callback,
canvas_context_image_smoothing_enabled_getter_callback,
@@ -26,10 +25,10 @@ use super::canvas::{
canvas_context_stroke_style_getter_callback, canvas_context_stroke_style_setter_callback,
canvas_context_stroke_text_callback, canvas_context_transform_callback,
canvas_context_translate_callback, canvas_gradient_add_color_stop_callback,
install_canvas_fill_rect_bindings, install_canvas_path_bindings, install_canvas_template_bindings,
install_canvas_transform_bindings, offscreen_canvas_convert_to_blob_callback,
offscreen_canvas_get_context_callback, webgl_boolean_callback,
webgl_check_framebuffer_status_callback, webgl_create_buffer_callback,
install_canvas_fill_rect_bindings, install_canvas_path_bindings,
install_canvas_template_bindings, install_canvas_transform_bindings,
offscreen_canvas_convert_to_blob_callback, offscreen_canvas_get_context_callback,
webgl_boolean_callback, webgl_check_framebuffer_status_callback, webgl_create_buffer_callback,
webgl_create_framebuffer_callback, webgl_create_program_callback,
webgl_create_renderbuffer_callback, webgl_create_shader_callback,
webgl_get_attrib_location_callback, webgl_get_context_attributes_callback,
@@ -643,6 +642,7 @@ pub(super) fn install_media_file_template_bindings<'s>(
install_canvas_transform_bindings(scope, proto, spec_name);
install_canvas_fill_rect_bindings(scope, proto, spec_name);
install_canvas_path_bindings(scope, proto, spec_name);
install_canvas_fill_rect_bindings(scope, proto, spec_name);
}
"Path2D" => {
install_canvas_path_bindings(scope, template.prototype_template(scope), spec_name);
@@ -1530,6 +1530,7 @@ fn service_worker_storage_apis_use_explicit_registration_storage_key() {
mod abort_signal_events;
mod abort_signal_statics;
mod canvas_fill_rect;
mod canvas_transform_snapshots;
mod cors_redirects;
mod font_loading;