mirror of
https://github.com/servo/servo.git
synced 2025-09-29 16:19:14 +01:00
script: Move FontContext
from Window
to GlobalScope
(#38918)
This change makes it so that every `GlobalScope` can contain an optional `FontContext`. This will be necessary for every `GlobalScope` that accesses canvas. Currently, `FontContext` is created and accessed via the canvas worker thread, but this means that web fonts are not available to canvas. This change will eventually make it possible for canvas to share web fonts with the `Document` that owns them. Testing: This should not change behavior and is thus covered by existing tests. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
parent
909ceee830
commit
4f68508624
18 changed files with 281 additions and 193 deletions
|
@ -18,9 +18,11 @@ webgpu = ["wgpu-core"]
|
|||
[dependencies]
|
||||
base = { workspace = true }
|
||||
canvas_traits = { workspace = true }
|
||||
compositing_traits = { workspace = true }
|
||||
devtools_traits = { workspace = true }
|
||||
embedder_traits = { workspace = true }
|
||||
euclid = { workspace = true }
|
||||
fonts_traits = { workspace = true }
|
||||
http = { workspace = true }
|
||||
hyper_serde = { workspace = true }
|
||||
ipc-channel = { workspace = true }
|
||||
|
|
|
@ -13,6 +13,7 @@ use base::id::{
|
|||
MessagePortRouterId, PipelineId, ServiceWorkerId, ServiceWorkerRegistrationId, WebViewId,
|
||||
};
|
||||
use canvas_traits::canvas::{CanvasId, CanvasMsg};
|
||||
use compositing_traits::CrossProcessCompositorApi;
|
||||
use devtools_traits::{DevtoolScriptControlMsg, ScriptToDevtoolsControlMsg, WorkerId};
|
||||
use embedder_traits::{
|
||||
AnimationState, EmbedderMsg, FocusSequenceNumber, JSValue, JavaScriptEvaluationError,
|
||||
|
@ -20,6 +21,7 @@ use embedder_traits::{
|
|||
WebDriverMessageId,
|
||||
};
|
||||
use euclid::default::Size2D as UntypedSize2D;
|
||||
use fonts_traits::SystemFontServiceProxySender;
|
||||
use http::{HeaderMap, Method};
|
||||
use ipc_channel::Error as IpcError;
|
||||
use ipc_channel::ipc::{IpcReceiver, IpcSender};
|
||||
|
@ -27,7 +29,7 @@ use malloc_size_of_derive::MallocSizeOf;
|
|||
use net_traits::policy_container::PolicyContainer;
|
||||
use net_traits::request::{Destination, InsecureRequestsPolicy, Referrer, RequestBody};
|
||||
use net_traits::storage_thread::StorageType;
|
||||
use net_traits::{CoreResourceMsg, ReferrerPolicy, ResourceThreads};
|
||||
use net_traits::{ReferrerPolicy, ResourceThreads};
|
||||
use profile_traits::mem::MemoryReportResult;
|
||||
use profile_traits::{mem, time as profile_time};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
@ -205,8 +207,12 @@ pub struct DOMMessage {
|
|||
pub struct SWManagerSenders {
|
||||
/// Sender of messages to the constellation.
|
||||
pub swmanager_sender: IpcSender<SWManagerMsg>,
|
||||
/// Sender for communicating with resource thread.
|
||||
pub resource_sender: IpcSender<CoreResourceMsg>,
|
||||
/// [`ResourceThreads`] for initating fetches or using i/o.
|
||||
pub resource_threads: ResourceThreads,
|
||||
/// [`CrossProcessCompositorApi`] for communicating with the compositor.
|
||||
pub compositor_api: CrossProcessCompositorApi,
|
||||
/// The [`SystemFontServiceProxy`] used to communicate with the `SystemFontService`.
|
||||
pub system_font_service_sender: SystemFontServiceProxySender,
|
||||
/// Sender of messages to the manager.
|
||||
pub own_sender: IpcSender<ServiceWorkerMsg>,
|
||||
/// Receiver of messages from the constellation.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue