Remove get_ipc_renderer from CanvasRenderingContext2D (#35285)

* Remove `get_ipc_renderer` from `CanvasRenderingContext2D`

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* fix warnings

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

---------

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
This commit is contained in:
Samson 2025-02-04 19:49:51 +01:00 committed by GitHub
parent 62f1dbebff
commit 3a75e1205b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 21 additions and 24 deletions

View file

@ -2,10 +2,13 @@
* 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 canvas_traits::canvas::{Canvas2dMsg, CanvasId, CanvasMsg};
use canvas_traits::canvas::{
Canvas2dMsg, CanvasId, CanvasImageData, CanvasMsg, FromLayoutMsg, FromScriptMsg,
};
use dom_struct::dom_struct;
use euclid::default::{Point2D, Rect, Size2D};
use ipc_channel::ipc::IpcSender;
use ipc_channel::ipc::{IpcSender, IpcSharedMemory};
use profile_traits::ipc;
use servo_url::ServoUrl;
use crate::canvas_state::CanvasState;
@ -104,11 +107,6 @@ impl CanvasRenderingContext2D {
self.canvas_state.send_canvas_2d_msg(msg)
}
// TODO: Remove this
pub(crate) fn get_ipc_renderer(&self) -> IpcSender<CanvasMsg> {
self.canvas_state.get_ipc_renderer().clone()
}
pub(crate) fn origin_is_clean(&self) -> bool {
self.canvas_state.origin_is_clean()
}
@ -125,6 +123,19 @@ impl CanvasRenderingContext2D {
rect,
)
}
pub(crate) fn fetch_data(&self) -> IpcSharedMemory {
let (sender, receiver) = ipc::channel(self.global().time_profiler_chan().clone()).unwrap();
let msg = CanvasMsg::FromScript(FromScriptMsg::SendPixels(sender), self.get_canvas_id());
self.canvas_state.get_ipc_renderer().send(msg).unwrap();
receiver.recv().unwrap()
}
pub(crate) fn send_data(&self, sender: IpcSender<CanvasImageData>) {
let msg = CanvasMsg::FromLayout(FromLayoutMsg::SendData(sender), self.get_canvas_id());
let _ = self.canvas_state.get_ipc_renderer().send(msg);
}
}
pub(crate) trait LayoutCanvasRenderingContext2DHelpers {