aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
authorJosh Matthews <josh@joshmatthews.net>2019-11-25 17:18:04 -0500
committerJosh Matthews <josh@joshmatthews.net>2019-11-27 20:47:53 -0500
commit564c16d75499ae45b3945f487e49587c6fd662c7 (patch)
treef650d6eb383e95133a19baec32016a5b122203a3 /components/script
parenta922c497fade0250123b86d7535838c9a8d3b0af (diff)
downloadservo-564c16d75499ae45b3945f487e49587c6fd662c7.tar.gz
servo-564c16d75499ae45b3945f487e49587c6fd662c7.zip
Use non-IPC webrender API over explicit IPC channels.
Diffstat (limited to 'components/script')
-rw-r--r--components/script/Cargo.toml2
-rw-r--r--components/script/dom/bindings/trace.rs6
-rw-r--r--components/script/dom/htmlmediaelement.rs10
-rw-r--r--components/script/dom/window.rs12
-rw-r--r--components/script/script_thread.rs6
5 files changed, 18 insertions, 18 deletions
diff --git a/components/script/Cargo.toml b/components/script/Cargo.toml
index 855d3d4dbc8..d7032f290e0 100644
--- a/components/script/Cargo.toml
+++ b/components/script/Cargo.toml
@@ -114,7 +114,7 @@ uuid = {version = "0.8", features = ["v4"]}
xml5ever = "0.16"
webdriver = "0.40"
webgpu = {path = "../webgpu"}
-webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
+webrender_api = {git = "https://github.com/servo/webrender"}
webvr_traits = {path = "../webvr_traits"}
webxr-api = {git = "https://github.com/servo/webxr", features = ["ipc"]}
diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs
index fbd4da02d5b..5f10ad44446 100644
--- a/components/script/dom/bindings/trace.rs
+++ b/components/script/dom/bindings/trace.rs
@@ -96,7 +96,7 @@ use script_layout_interface::OpaqueStyleAndLayoutData;
use script_traits::transferable::MessagePortImpl;
use script_traits::{DocumentActivity, DrawAPaintImageResult};
use script_traits::{MediaSessionActionType, ScriptToConstellationChan, TimerEventId, TimerSource};
-use script_traits::{UntrustedNodeAddress, WindowSizeData, WindowSizeType};
+use script_traits::{UntrustedNodeAddress, WebrenderIpcSender, WindowSizeData, WindowSizeType};
use selectors::matching::ElementSelectorFlags;
use serde::{Deserialize, Serialize};
use servo_arc::Arc as ServoArc;
@@ -146,7 +146,7 @@ use tendril::{StrTendril, TendrilSink};
use time::{Duration, Timespec};
use uuid::Uuid;
use webgpu::{WebGPU, WebGPUAdapter};
-use webrender_api::{DocumentId, ImageKey, RenderApiSender};
+use webrender_api::{DocumentId, ImageKey};
use webvr_traits::{WebVRGamepadData, WebVRGamepadHand, WebVRGamepadState};
use webxr_api::SwapChainId as WebXRSwapChainId;
@@ -527,7 +527,6 @@ unsafe_no_jsmanaged_fields!(Arc<Mutex<dyn Player>>);
unsafe_no_jsmanaged_fields!(WebRtcController);
unsafe_no_jsmanaged_fields!(MediaStreamId, MediaStreamType);
unsafe_no_jsmanaged_fields!(Mutex<MediaFrameRenderer>);
-unsafe_no_jsmanaged_fields!(RenderApiSender);
unsafe_no_jsmanaged_fields!(ResourceFetchTiming);
unsafe_no_jsmanaged_fields!(Timespec);
unsafe_no_jsmanaged_fields!(HTMLMediaElementFetchContext);
@@ -541,6 +540,7 @@ unsafe_no_jsmanaged_fields!(WebGLContextId);
unsafe_no_jsmanaged_fields!(Arc<Mutex<dyn AudioRenderer>>);
unsafe_no_jsmanaged_fields!(MediaSessionActionType);
unsafe_no_jsmanaged_fields!(MediaMetadata);
+unsafe_no_jsmanaged_fields!(WebrenderIpcSender);
unsafe impl<'a> JSTraceable for &'a str {
#[inline]
diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs
index f8f707a0dd9..651084cfb84 100644
--- a/components/script/dom/htmlmediaelement.rs
+++ b/components/script/dom/htmlmediaelement.rs
@@ -81,6 +81,7 @@ use net_traits::request::{Destination, Referrer};
use net_traits::{CoreResourceMsg, FetchChannels, FetchMetadata, FetchResponseListener, Metadata};
use net_traits::{NetworkError, ResourceFetchTiming, ResourceTimingType};
use script_layout_interface::HTMLMediaData;
+use script_traits::WebrenderIpcSender;
use servo_config::pref;
use servo_media::player::audio::AudioRenderer;
use servo_media::player::video::{VideoFrame, VideoFrameRenderer};
@@ -95,8 +96,7 @@ use std::rc::Rc;
use std::sync::{Arc, Mutex};
use time::{self, Duration, Timespec};
use webrender_api::{ExternalImageData, ExternalImageId, ExternalImageType, TextureTarget};
-use webrender_api::{ImageData, ImageDescriptor, ImageFormat, ImageKey, RenderApi};
-use webrender_api::{RenderApiSender, Transaction};
+use webrender_api::{ImageData, ImageDescriptor, ImageFormat, ImageKey, Transaction};
#[derive(PartialEq)]
enum FrameStatus {
@@ -148,7 +148,7 @@ impl FrameHolder {
pub struct MediaFrameRenderer {
player_id: Option<u64>,
- api: RenderApi,
+ api: WebrenderIpcSender,
current_frame: Option<(ImageKey, i32, i32)>,
old_frame: Option<ImageKey>,
very_old_frame: Option<ImageKey>,
@@ -156,10 +156,10 @@ pub struct MediaFrameRenderer {
}
impl MediaFrameRenderer {
- fn new(render_api_sender: RenderApiSender) -> Self {
+ fn new(render_api_sender: WebrenderIpcSender) -> Self {
Self {
player_id: None,
- api: render_api_sender.create_api(),
+ api: render_api_sender,
current_frame: None,
old_frame: None,
very_old_frame: None,
diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs
index ef8719ab8e6..d48f16ea662 100644
--- a/components/script/dom/window.rs
+++ b/components/script/dom/window.rs
@@ -108,7 +108,7 @@ use script_traits::{ConstellationControlMsg, DocumentState, HistoryEntryReplacem
use script_traits::{
ScriptMsg, ScriptToConstellationChan, ScrollState, StructuredSerializedData, TimerEventId,
};
-use script_traits::{TimerSchedulerMsg, WindowSizeData, WindowSizeType};
+use script_traits::{TimerSchedulerMsg, WebrenderIpcSender, WindowSizeData, WindowSizeType};
use selectors::attr::CaseSensitivity;
use servo_geometry::{f32_rect_to_au_rect, MaxRect};
use servo_url::{Host, ImmutableOrigin, MutableOrigin, ServoUrl};
@@ -137,7 +137,7 @@ use style_traits::{CSSPixel, DevicePixel, ParsingMode};
use url::Position;
use webgpu::WebGPU;
use webrender_api::units::{DeviceIntPoint, DeviceIntSize, LayoutPixel};
-use webrender_api::{DocumentId, ExternalScrollId, RenderApiSender};
+use webrender_api::{DocumentId, ExternalScrollId};
use webvr_traits::WebVRMsg;
/// Current state of the window object
@@ -303,8 +303,8 @@ pub struct Window {
exists_mut_observer: Cell<bool>,
/// Webrender API Sender
- #[ignore_malloc_size_of = "defined in webrender_api"]
- webrender_api_sender: RenderApiSender,
+ #[ignore_malloc_size_of = "Wraps an IpcSender"]
+ webrender_api_sender: WebrenderIpcSender,
/// Indicate whether a SetDocumentStatus message has been sent after a reflow is complete.
/// It is used to avoid sending idle message more than once, which is unneccessary.
@@ -513,7 +513,7 @@ impl Window {
self.add_pending_reflow();
}
- pub fn get_webrender_api_sender(&self) -> RenderApiSender {
+ pub fn get_webrender_api_sender(&self) -> WebrenderIpcSender {
self.webrender_api_sender.clone()
}
@@ -2218,7 +2218,7 @@ impl Window {
webxr_registry: webxr_api::Registry,
microtask_queue: Rc<MicrotaskQueue>,
webrender_document: DocumentId,
- webrender_api_sender: RenderApiSender,
+ webrender_api_sender: WebrenderIpcSender,
layout_is_busy: Arc<AtomicBool>,
relayout_event: bool,
prepare_for_screenshot: bool,
diff --git a/components/script/script_thread.rs b/components/script/script_thread.rs
index 99fca0e5608..c01ad08220c 100644
--- a/components/script/script_thread.rs
+++ b/components/script/script_thread.rs
@@ -143,7 +143,7 @@ use script_traits::{MediaSessionActionType, MouseButton, MouseEventType, NewLayo
use script_traits::{Painter, ProgressiveWebMetricType, ScriptMsg, ScriptThreadFactory};
use script_traits::{ScriptToConstellationChan, TimerSchedulerMsg};
use script_traits::{TouchEventType, TouchId, UntrustedNodeAddress, WheelDelta};
-use script_traits::{UpdatePipelineIdReason, WindowSizeData, WindowSizeType};
+use script_traits::{UpdatePipelineIdReason, WebrenderIpcSender, WindowSizeData, WindowSizeType};
use servo_atoms::Atom;
use servo_url::{ImmutableOrigin, MutableOrigin, ServoUrl};
use std::borrow::Cow;
@@ -166,7 +166,7 @@ use time::{at_utc, get_time, precise_time_ns, Timespec};
use url::Position;
use webgpu::WebGPU;
use webrender_api::units::LayoutPixel;
-use webrender_api::{DocumentId, RenderApiSender};
+use webrender_api::DocumentId;
use webvr_traits::{WebVREvent, WebVRMsg};
pub type ImageCacheMsg = (PipelineId, PendingImageResponse);
@@ -657,7 +657,7 @@ pub struct ScriptThread {
webrender_document: DocumentId,
/// Webrender API sender.
- webrender_api_sender: RenderApiSender,
+ webrender_api_sender: WebrenderIpcSender,
/// Periodically print out on which events script threads spend their processing time.
profile_script_events: bool,