mirror of
https://github.com/servo/servo.git
synced 2025-08-05 21:50:18 +01:00
Auto merge of #10150 - emilio:canvas-cleanup, r=jdm
Canvas cleanup This PR cleans up the layerization infrastructure for canvas, which was unused, and removes unused dependencies. It also takes in account my recent username change to update angle's dependency (offscreen_gl_context requires extra work due to webrender depending on it). r? @jdm <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10150) <!-- Reviewable:end -->
This commit is contained in:
commit
2887623c4a
20 changed files with 22 additions and 131 deletions
|
@ -15,12 +15,11 @@ use gfx_traits::color;
|
||||||
use ipc_channel::ipc::IpcSharedMemory;
|
use ipc_channel::ipc::IpcSharedMemory;
|
||||||
use ipc_channel::ipc::{self, IpcSender};
|
use ipc_channel::ipc::{self, IpcSender};
|
||||||
use ipc_channel::router::ROUTER;
|
use ipc_channel::router::ROUTER;
|
||||||
use layers::platform::surface::NativeSurface;
|
|
||||||
use num::ToPrimitive;
|
use num::ToPrimitive;
|
||||||
use premultiplytable::PREMULTIPLY_TABLE;
|
use premultiplytable::PREMULTIPLY_TABLE;
|
||||||
use std::borrow::ToOwned;
|
use std::borrow::ToOwned;
|
||||||
use std::mem;
|
use std::mem;
|
||||||
use std::sync::mpsc::{Sender, channel};
|
use std::sync::mpsc::channel;
|
||||||
use util::opts;
|
use util::opts;
|
||||||
use util::thread::spawn_named;
|
use util::thread::spawn_named;
|
||||||
use util::vec::byte_swap;
|
use util::vec::byte_swap;
|
||||||
|
@ -205,13 +204,6 @@ impl<'a> CanvasPaintThread<'a> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CanvasMsg::FromPaint(message) => {
|
|
||||||
match message {
|
|
||||||
FromPaintMsg::SendNativeSurface(chan) => {
|
|
||||||
painter.send_native_surface(chan)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
CanvasMsg::WebGL(_) => panic!("Wrong message sent to Canvas2D thread"),
|
CanvasMsg::WebGL(_) => panic!("Wrong message sent to Canvas2D thread"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -550,12 +542,6 @@ impl<'a> CanvasPaintThread<'a> {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fn send_native_surface(&self, _chan: Sender<NativeSurface>) {
|
|
||||||
// FIXME(mrobinson): We need a handle on the NativeDisplay to create compatible
|
|
||||||
// NativeSurfaces for the compositor.
|
|
||||||
unimplemented!()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn image_data(&self,
|
fn image_data(&self,
|
||||||
dest_rect: Rect<i32>,
|
dest_rect: Rect<i32>,
|
||||||
canvas_size: Size2D<f64>,
|
canvas_size: Size2D<f64>,
|
||||||
|
|
|
@ -2,16 +2,14 @@
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
use canvas_traits::{CanvasCommonMsg, CanvasMsg, CanvasPixelData, CanvasData, CanvasWebGLMsg};
|
use canvas_traits::{CanvasCommonMsg, CanvasMsg, CanvasPixelData, CanvasData, CanvasWebGLMsg, FromLayoutMsg};
|
||||||
use canvas_traits::{FromLayoutMsg, FromPaintMsg};
|
|
||||||
use euclid::size::Size2D;
|
use euclid::size::Size2D;
|
||||||
use gleam::gl;
|
use gleam::gl;
|
||||||
use ipc_channel::ipc::{self, IpcSender, IpcSharedMemory};
|
use ipc_channel::ipc::{self, IpcSender, IpcSharedMemory};
|
||||||
use ipc_channel::router::ROUTER;
|
use ipc_channel::router::ROUTER;
|
||||||
use layers::platform::surface::NativeSurface;
|
|
||||||
use offscreen_gl_context::{ColorAttachmentType, GLContext, GLContextAttributes, NativeGLContext};
|
use offscreen_gl_context::{ColorAttachmentType, GLContext, GLContextAttributes, NativeGLContext};
|
||||||
use std::borrow::ToOwned;
|
use std::borrow::ToOwned;
|
||||||
use std::sync::mpsc::{Sender, channel};
|
use std::sync::mpsc::channel;
|
||||||
use util::thread::spawn_named;
|
use util::thread::spawn_named;
|
||||||
use util::vec::byte_swap;
|
use util::vec::byte_swap;
|
||||||
use webrender_traits;
|
use webrender_traits;
|
||||||
|
@ -83,7 +81,7 @@ impl WebGLPaintThread {
|
||||||
CanvasMsg::Common(message) => {
|
CanvasMsg::Common(message) => {
|
||||||
match message {
|
match message {
|
||||||
CanvasCommonMsg::Close => break,
|
CanvasCommonMsg::Close => break,
|
||||||
// TODO(ecoal95): handle error nicely
|
// TODO(emilio): handle error nicely
|
||||||
CanvasCommonMsg::Recreate(size) => painter.recreate(size).unwrap(),
|
CanvasCommonMsg::Recreate(size) => painter.recreate(size).unwrap(),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -93,12 +91,6 @@ impl WebGLPaintThread {
|
||||||
painter.send_data(chan),
|
painter.send_data(chan),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CanvasMsg::FromPaint(message) => {
|
|
||||||
match message {
|
|
||||||
FromPaintMsg::SendNativeSurface(chan) =>
|
|
||||||
painter.send_native_surface(chan),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
CanvasMsg::Canvas2d(_) => panic!("Wrong message sent to WebGLThread"),
|
CanvasMsg::Canvas2d(_) => panic!("Wrong message sent to WebGLThread"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -147,12 +139,6 @@ impl WebGLPaintThread {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn send_native_surface(&self, _: Sender<NativeSurface>) {
|
|
||||||
// FIXME(ecoal95): We need to make a clone of the surface in order to
|
|
||||||
// implement this
|
|
||||||
unimplemented!()
|
|
||||||
}
|
|
||||||
|
|
||||||
#[allow(unsafe_code)]
|
#[allow(unsafe_code)]
|
||||||
fn recreate(&mut self, size: Size2D<i32>) -> Result<(), &'static str> {
|
fn recreate(&mut self, size: Size2D<i32>) -> Result<(), &'static str> {
|
||||||
match self.data {
|
match self.data {
|
||||||
|
|
|
@ -15,10 +15,6 @@ path = "../gfx_traits"
|
||||||
git = "https://github.com/servo/rust-azure"
|
git = "https://github.com/servo/rust-azure"
|
||||||
features = ["plugins"]
|
features = ["plugins"]
|
||||||
|
|
||||||
[dependencies.layers]
|
|
||||||
git = "https://github.com/servo/rust-layers"
|
|
||||||
features = ["plugins"]
|
|
||||||
|
|
||||||
[dependencies.offscreen_gl_context]
|
[dependencies.offscreen_gl_context]
|
||||||
git = "https://github.com/ecoal95/rust-offscreen-rendering-context"
|
git = "https://github.com/ecoal95/rust-offscreen-rendering-context"
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,6 @@ extern crate euclid;
|
||||||
extern crate gfx_traits;
|
extern crate gfx_traits;
|
||||||
extern crate heapsize;
|
extern crate heapsize;
|
||||||
extern crate ipc_channel;
|
extern crate ipc_channel;
|
||||||
extern crate layers;
|
|
||||||
extern crate offscreen_gl_context;
|
extern crate offscreen_gl_context;
|
||||||
extern crate serde;
|
extern crate serde;
|
||||||
extern crate util;
|
extern crate util;
|
||||||
|
@ -35,11 +34,8 @@ use euclid::rect::Rect;
|
||||||
use euclid::size::Size2D;
|
use euclid::size::Size2D;
|
||||||
use gfx_traits::color;
|
use gfx_traits::color;
|
||||||
use ipc_channel::ipc::{IpcSender, IpcSharedMemory};
|
use ipc_channel::ipc::{IpcSender, IpcSharedMemory};
|
||||||
use layers::platform::surface::NativeSurface;
|
|
||||||
use serde::{Deserialize, Deserializer, Serialize, Serializer};
|
|
||||||
use std::default::Default;
|
use std::default::Default;
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
use std::sync::mpsc::Sender;
|
|
||||||
|
|
||||||
pub use webrender_traits::{WebGLFramebufferBindingRequest, WebGLError, WebGLParameter, WebGLResult, WebGLContextId};
|
pub use webrender_traits::{WebGLFramebufferBindingRequest, WebGLError, WebGLParameter, WebGLResult, WebGLContextId};
|
||||||
pub use webrender_traits::WebGLCommand as CanvasWebGLMsg;
|
pub use webrender_traits::WebGLCommand as CanvasWebGLMsg;
|
||||||
|
@ -55,7 +51,6 @@ pub enum CanvasMsg {
|
||||||
Canvas2d(Canvas2dMsg),
|
Canvas2d(Canvas2dMsg),
|
||||||
Common(CanvasCommonMsg),
|
Common(CanvasCommonMsg),
|
||||||
FromLayout(FromLayoutMsg),
|
FromLayout(FromLayoutMsg),
|
||||||
FromPaint(FromPaintMsg),
|
|
||||||
WebGL(CanvasWebGLMsg),
|
WebGL(CanvasWebGLMsg),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,23 +77,6 @@ pub enum FromLayoutMsg {
|
||||||
SendData(IpcSender<CanvasData>),
|
SendData(IpcSender<CanvasData>),
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone)]
|
|
||||||
pub enum FromPaintMsg {
|
|
||||||
SendNativeSurface(Sender<NativeSurface>),
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Serialize for FromPaintMsg {
|
|
||||||
fn serialize<S>(&self, _: &mut S) -> Result<(), S::Error> where S: Serializer {
|
|
||||||
panic!("can't serialize a `FromPaintMsg`!")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Deserialize for FromPaintMsg {
|
|
||||||
fn deserialize<D>(_: &mut D) -> Result<FromPaintMsg, D::Error> where D: Deserializer {
|
|
||||||
panic!("can't deserialize a `FromPaintMsg`!")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Clone, Deserialize, Serialize)]
|
#[derive(Clone, Deserialize, Serialize)]
|
||||||
pub enum Canvas2dMsg {
|
pub enum Canvas2dMsg {
|
||||||
Arc(Point2D<f32>, f32, f32, f32, bool),
|
Arc(Point2D<f32>, f32, f32, f32, bool),
|
||||||
|
|
|
@ -41,9 +41,6 @@ path = "../gfx_traits"
|
||||||
[dependencies.net_traits]
|
[dependencies.net_traits]
|
||||||
path = "../net_traits"
|
path = "../net_traits"
|
||||||
|
|
||||||
[dependencies.canvas_traits]
|
|
||||||
path = "../canvas_traits"
|
|
||||||
|
|
||||||
[dependencies.util]
|
[dependencies.util]
|
||||||
path = "../util"
|
path = "../util"
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,6 @@ extern crate app_units;
|
||||||
extern crate azure;
|
extern crate azure;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate bitflags;
|
extern crate bitflags;
|
||||||
extern crate canvas_traits;
|
|
||||||
|
|
||||||
// Mac OS-specific library dependencies
|
// Mac OS-specific library dependencies
|
||||||
#[cfg(target_os = "macos")] extern crate core_foundation;
|
#[cfg(target_os = "macos")] extern crate core_foundation;
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
use app_units::Au;
|
use app_units::Au;
|
||||||
use azure::AzFloat;
|
use azure::AzFloat;
|
||||||
use azure::azure_hl::{BackendType, Color, DrawTarget, SurfaceFormat};
|
use azure::azure_hl::{BackendType, Color, DrawTarget, SurfaceFormat};
|
||||||
use canvas_traits::CanvasMsg;
|
|
||||||
use display_list::{DisplayItem, DisplayList, DisplayListEntry, DisplayListTraversal};
|
use display_list::{DisplayItem, DisplayList, DisplayListEntry, DisplayListTraversal};
|
||||||
use display_list::{LayerInfo, StackingContext, StackingContextId, StackingContextType};
|
use display_list::{LayerInfo, StackingContext, StackingContextId, StackingContextType};
|
||||||
use euclid::Matrix4;
|
use euclid::Matrix4;
|
||||||
|
@ -343,7 +342,6 @@ pub enum Msg {
|
||||||
#[derive(Deserialize, Serialize)]
|
#[derive(Deserialize, Serialize)]
|
||||||
pub enum LayoutToPaintMsg {
|
pub enum LayoutToPaintMsg {
|
||||||
PaintInit(Epoch, Arc<DisplayList>),
|
PaintInit(Epoch, Arc<DisplayList>),
|
||||||
CanvasLayer(LayerId, IpcSender<CanvasMsg>),
|
|
||||||
Exit(IpcSender<()>),
|
Exit(IpcSender<()>),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -379,9 +377,6 @@ pub struct PaintThread<C> {
|
||||||
|
|
||||||
/// Communication handles to each of the worker threads.
|
/// Communication handles to each of the worker threads.
|
||||||
worker_threads: Vec<WorkerThreadProxy>,
|
worker_threads: Vec<WorkerThreadProxy>,
|
||||||
|
|
||||||
/// A map to track the canvas specific layers
|
|
||||||
canvas_map: HashMap<LayerId, IpcSender<CanvasMsg>>,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// If we implement this as a function, we get borrowck errors from borrowing
|
// If we implement this as a function, we get borrowck errors from borrowing
|
||||||
|
@ -431,7 +426,6 @@ impl<C> PaintThread<C> where C: PaintListener + Send + 'static {
|
||||||
paint_permission: false,
|
paint_permission: false,
|
||||||
current_epoch: None,
|
current_epoch: None,
|
||||||
worker_threads: worker_threads,
|
worker_threads: worker_threads,
|
||||||
canvas_map: HashMap::new()
|
|
||||||
};
|
};
|
||||||
|
|
||||||
let reporter_name = format!("paint-reporter-{}", id);
|
let reporter_name = format!("paint-reporter-{}", id);
|
||||||
|
@ -475,11 +469,6 @@ impl<C> PaintThread<C> where C: PaintListener + Send + 'static {
|
||||||
self.initialize_layers();
|
self.initialize_layers();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Inserts a new canvas renderer to the layer map
|
|
||||||
Msg::FromLayout(LayoutToPaintMsg::CanvasLayer(layer_id, canvas_renderer)) => {
|
|
||||||
debug!("Renderer received for canvas with layer {:?}", layer_id);
|
|
||||||
self.canvas_map.insert(layer_id, canvas_renderer);
|
|
||||||
}
|
|
||||||
Msg::FromChrome(ChromeToPaintMsg::Paint(requests, frame_tree_id)) => {
|
Msg::FromChrome(ChromeToPaintMsg::Paint(requests, frame_tree_id)) => {
|
||||||
if self.paint_permission && self.root_display_list.is_some() {
|
if self.paint_permission && self.root_display_list.is_some() {
|
||||||
let mut replies = Vec::new();
|
let mut replies = Vec::new();
|
||||||
|
|
|
@ -12,9 +12,6 @@ path = "lib.rs"
|
||||||
git = "https://github.com/servo/rust-azure"
|
git = "https://github.com/servo/rust-azure"
|
||||||
features = ["plugins"]
|
features = ["plugins"]
|
||||||
|
|
||||||
[dependencies.canvas]
|
|
||||||
path = "../canvas"
|
|
||||||
|
|
||||||
[dependencies.canvas_traits]
|
[dependencies.canvas_traits]
|
||||||
path = "../canvas_traits"
|
path = "../canvas_traits"
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
#![allow(unsafe_code)]
|
#![allow(unsafe_code)]
|
||||||
|
|
||||||
use app_units::Au;
|
use app_units::Au;
|
||||||
use canvas_traits::CanvasMsg;
|
|
||||||
use euclid::Rect;
|
use euclid::Rect;
|
||||||
use fnv::FnvHasher;
|
use fnv::FnvHasher;
|
||||||
use gfx::display_list::WebRenderImageInfo;
|
use gfx::display_list::WebRenderImageInfo;
|
||||||
|
@ -16,7 +15,7 @@ use gfx::font_cache_thread::FontCacheThread;
|
||||||
use gfx::font_context::FontContext;
|
use gfx::font_context::FontContext;
|
||||||
use gfx_traits::LayerId;
|
use gfx_traits::LayerId;
|
||||||
use heapsize::HeapSizeOf;
|
use heapsize::HeapSizeOf;
|
||||||
use ipc_channel::ipc::{self, IpcSender, IpcSharedMemory};
|
use ipc_channel::ipc::{self, IpcSharedMemory};
|
||||||
use net_traits::image::base::Image;
|
use net_traits::image::base::Image;
|
||||||
use net_traits::image_cache_thread::{ImageCacheChan, ImageCacheThread, ImageResponse, ImageState};
|
use net_traits::image_cache_thread::{ImageCacheChan, ImageCacheThread, ImageResponse, ImageState};
|
||||||
use net_traits::image_cache_thread::{ImageOrMetadataAvailable, UsePlaceholder};
|
use net_traits::image_cache_thread::{ImageOrMetadataAvailable, UsePlaceholder};
|
||||||
|
@ -24,7 +23,6 @@ use std::cell::{RefCell, RefMut};
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::hash::BuildHasherDefault;
|
use std::hash::BuildHasherDefault;
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
use std::sync::mpsc::Sender;
|
|
||||||
use std::sync::{Arc, Mutex, RwLock};
|
use std::sync::{Arc, Mutex, RwLock};
|
||||||
use style::context::{LocalStyleContext, StyleContext};
|
use style::context::{LocalStyleContext, StyleContext};
|
||||||
use style::matching::{ApplicableDeclarationsCache, StyleSharingCandidateCache};
|
use style::matching::{ApplicableDeclarationsCache, StyleSharingCandidateCache};
|
||||||
|
@ -95,9 +93,6 @@ pub struct SharedLayoutContext {
|
||||||
/// The URL.
|
/// The URL.
|
||||||
pub url: Url,
|
pub url: Url,
|
||||||
|
|
||||||
/// A channel to send canvas renderers to paint thread, in order to correctly paint the layers
|
|
||||||
pub canvas_layers_sender: Mutex<Sender<(LayerId, IpcSender<CanvasMsg>)>>,
|
|
||||||
|
|
||||||
/// The visible rects for each layer, as reported to us by the compositor.
|
/// The visible rects for each layer, as reported to us by the compositor.
|
||||||
pub visible_rects: Arc<HashMap<LayerId, Rect<Au>, BuildHasherDefault<FnvHasher>>>,
|
pub visible_rects: Arc<HashMap<LayerId, Rect<Au>, BuildHasherDefault<FnvHasher>>>,
|
||||||
|
|
||||||
|
|
|
@ -1197,13 +1197,7 @@ impl FragmentDisplayListBuilding for Fragment {
|
||||||
let (sender, receiver) = ipc::channel().unwrap();
|
let (sender, receiver) = ipc::channel().unwrap();
|
||||||
ipc_renderer.send(CanvasMsg::FromLayout(
|
ipc_renderer.send(CanvasMsg::FromLayout(
|
||||||
FromLayoutMsg::SendData(sender))).unwrap();
|
FromLayoutMsg::SendData(sender))).unwrap();
|
||||||
let data = receiver.recv().unwrap();
|
receiver.recv().unwrap()
|
||||||
|
|
||||||
// Propagate the layer and the renderer to the paint task.
|
|
||||||
state.layout_context.shared.canvas_layers_sender.lock().unwrap().send(
|
|
||||||
(layer_id, (*ipc_renderer).clone())).unwrap();
|
|
||||||
|
|
||||||
data
|
|
||||||
},
|
},
|
||||||
None => CanvasData::Pixels(CanvasPixelData {
|
None => CanvasData::Pixels(CanvasPixelData {
|
||||||
image_data: IpcSharedMemory::from_byte(0xFFu8, width * height * 4),
|
image_data: IpcSharedMemory::from_byte(0xFFu8, width * height * 4),
|
||||||
|
|
|
@ -10,7 +10,6 @@
|
||||||
use animation;
|
use animation;
|
||||||
use app_units::Au;
|
use app_units::Au;
|
||||||
use azure::azure::AzColor;
|
use azure::azure::AzColor;
|
||||||
use canvas_traits::CanvasMsg;
|
|
||||||
use construct::ConstructionResult;
|
use construct::ConstructionResult;
|
||||||
use context::{LayoutContext, SharedLayoutContext, heap_size_of_local_context};
|
use context::{LayoutContext, SharedLayoutContext, heap_size_of_local_context};
|
||||||
use display_list_builder::ToGfxColor;
|
use display_list_builder::ToGfxColor;
|
||||||
|
@ -186,11 +185,6 @@ pub struct LayoutThread {
|
||||||
/// Is this the first reflow in this LayoutThread?
|
/// Is this the first reflow in this LayoutThread?
|
||||||
first_reflow: bool,
|
first_reflow: bool,
|
||||||
|
|
||||||
/// To receive a canvas renderer associated to a layer, this message is propagated
|
|
||||||
/// to the paint chan
|
|
||||||
canvas_layers_receiver: Receiver<(LayerId, IpcSender<CanvasMsg>)>,
|
|
||||||
canvas_layers_sender: Sender<(LayerId, IpcSender<CanvasMsg>)>,
|
|
||||||
|
|
||||||
/// The workers that we use for parallel operation.
|
/// The workers that we use for parallel operation.
|
||||||
parallel_traversal: Option<WorkQueue<SharedLayoutContext, WorkQueueData>>,
|
parallel_traversal: Option<WorkQueue<SharedLayoutContext, WorkQueueData>>,
|
||||||
|
|
||||||
|
@ -406,7 +400,6 @@ impl LayoutThread {
|
||||||
|
|
||||||
// Create the channel on which new animations can be sent.
|
// Create the channel on which new animations can be sent.
|
||||||
let (new_animations_sender, new_animations_receiver) = channel();
|
let (new_animations_sender, new_animations_receiver) = channel();
|
||||||
let (canvas_layers_sender, canvas_layers_receiver) = channel();
|
|
||||||
|
|
||||||
// Proxy IPC messages from the pipeline to the layout thread.
|
// Proxy IPC messages from the pipeline to the layout thread.
|
||||||
let pipeline_receiver = ROUTER.route_ipc_receiver_to_new_mpsc_receiver(pipeline_port);
|
let pipeline_receiver = ROUTER.route_ipc_receiver_to_new_mpsc_receiver(pipeline_port);
|
||||||
|
@ -449,8 +442,6 @@ impl LayoutThread {
|
||||||
image_cache_sender: ImageCacheChan(ipc_image_cache_sender),
|
image_cache_sender: ImageCacheChan(ipc_image_cache_sender),
|
||||||
font_cache_receiver: font_cache_receiver,
|
font_cache_receiver: font_cache_receiver,
|
||||||
font_cache_sender: ipc_font_cache_sender,
|
font_cache_sender: ipc_font_cache_sender,
|
||||||
canvas_layers_receiver: canvas_layers_receiver,
|
|
||||||
canvas_layers_sender: canvas_layers_sender,
|
|
||||||
parallel_traversal: parallel_traversal,
|
parallel_traversal: parallel_traversal,
|
||||||
generation: 0,
|
generation: 0,
|
||||||
new_animations_sender: new_animations_sender,
|
new_animations_sender: new_animations_sender,
|
||||||
|
@ -521,7 +512,6 @@ impl LayoutThread {
|
||||||
image_cache_thread: self.image_cache_thread.clone(),
|
image_cache_thread: self.image_cache_thread.clone(),
|
||||||
image_cache_sender: Mutex::new(self.image_cache_sender.clone()),
|
image_cache_sender: Mutex::new(self.image_cache_sender.clone()),
|
||||||
font_cache_thread: Mutex::new(self.font_cache_thread.clone()),
|
font_cache_thread: Mutex::new(self.font_cache_thread.clone()),
|
||||||
canvas_layers_sender: Mutex::new(self.canvas_layers_sender.clone()),
|
|
||||||
url: (*url).clone(),
|
url: (*url).clone(),
|
||||||
visible_rects: self.visible_rects.clone(),
|
visible_rects: self.visible_rects.clone(),
|
||||||
webrender_image_cache: self.webrender_image_cache.clone(),
|
webrender_image_cache: self.webrender_image_cache.clone(),
|
||||||
|
@ -1148,12 +1138,6 @@ impl LayoutThread {
|
||||||
self.root_flow = self.try_get_layout_root(node);
|
self.root_flow = self.try_get_layout_root(node);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Send new canvas renderers to the paint thread
|
|
||||||
while let Ok((layer_id, renderer)) = self.canvas_layers_receiver.try_recv() {
|
|
||||||
// Just send if there's an actual renderer
|
|
||||||
self.paint_chan.send(LayoutToPaintMsg::CanvasLayer(layer_id, renderer)).unwrap();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Perform post-style recalculation layout passes.
|
// Perform post-style recalculation layout passes.
|
||||||
self.perform_post_style_recalc_layout_passes(&data.reflow_info,
|
self.perform_post_style_recalc_layout_passes(&data.reflow_info,
|
||||||
&mut rw_data,
|
&mut rw_data,
|
||||||
|
|
|
@ -50,7 +50,7 @@ git = "https://github.com/servo/rust-mozjs"
|
||||||
git = "https://github.com/ecoal95/rust-offscreen-rendering-context"
|
git = "https://github.com/ecoal95/rust-offscreen-rendering-context"
|
||||||
|
|
||||||
[dependencies.angle]
|
[dependencies.angle]
|
||||||
git = "https://github.com/ecoal95/angle"
|
git = "https://github.com/emilio/angle"
|
||||||
branch = "servo"
|
branch = "servo"
|
||||||
|
|
||||||
[dependencies.ipc-channel]
|
[dependencies.ipc-channel]
|
||||||
|
|
|
@ -206,7 +206,7 @@ impl HTMLCanvasElement {
|
||||||
CanvasData::Pixels(pixel_data)
|
CanvasData::Pixels(pixel_data)
|
||||||
=> pixel_data.image_data.to_vec(),
|
=> pixel_data.image_data.to_vec(),
|
||||||
CanvasData::WebGL(_)
|
CanvasData::WebGL(_)
|
||||||
// TODO(ecoal95): Not sure if WebGL canvas is required for 2d spec,
|
// TODO(emilio): Not sure if WebGL canvas is required for 2d spec,
|
||||||
// but I think it's not.
|
// but I think it's not.
|
||||||
=> return None,
|
=> return None,
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,7 +96,7 @@ impl WebGLProgram {
|
||||||
_ => return Err(WebGLError::InvalidOperation),
|
_ => return Err(WebGLError::InvalidOperation),
|
||||||
};
|
};
|
||||||
|
|
||||||
// TODO(ecoal95): Differentiate between same shader already assigned and other previous
|
// TODO(emilio): Differentiate between same shader already assigned and other previous
|
||||||
// shader.
|
// shader.
|
||||||
if shader_slot.get().is_some() {
|
if shader_slot.get().is_some() {
|
||||||
return Err(WebGLError::InvalidOperation);
|
return Err(WebGLError::InvalidOperation);
|
||||||
|
|
|
@ -610,7 +610,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO(ecoal95): Probably in the future we should keep track of the
|
// TODO(emilio): Probably in the future we should keep track of the
|
||||||
// generated objects, either here or in the webgl thread
|
// generated objects, either here or in the webgl thread
|
||||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.5
|
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.5
|
||||||
fn CreateBuffer(&self) -> Option<Root<WebGLBuffer>> {
|
fn CreateBuffer(&self) -> Option<Root<WebGLBuffer>> {
|
||||||
|
@ -1116,8 +1116,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
||||||
if texture.is_none() {
|
if texture.is_none() {
|
||||||
return self.webgl_error(InvalidOperation);
|
return self.webgl_error(InvalidOperation);
|
||||||
}
|
}
|
||||||
// TODO(ecoal95): Validate more parameters
|
// TODO(emilio): Validate more parameters
|
||||||
|
|
||||||
let source = match source {
|
let source = match source {
|
||||||
Some(s) => s,
|
Some(s) => s,
|
||||||
None => return,
|
None => return,
|
||||||
|
@ -1144,7 +1143,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
||||||
};
|
};
|
||||||
|
|
||||||
let size = Size2D::new(img.width as i32, img.height as i32);
|
let size = Size2D::new(img.width as i32, img.height as i32);
|
||||||
// TODO(ecoal95): Validate that the format argument is coherent with the image.
|
// TODO(emilio): Validate that the format argument is coherent with the image.
|
||||||
// RGB8 should be easy to support too
|
// RGB8 should be easy to support too
|
||||||
let mut data = match img.format {
|
let mut data = match img.format {
|
||||||
PixelFormat::RGBA8 => img.bytes.to_vec(),
|
PixelFormat::RGBA8 => img.bytes.to_vec(),
|
||||||
|
@ -1155,7 +1154,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
||||||
|
|
||||||
(data, size)
|
(data, size)
|
||||||
},
|
},
|
||||||
// TODO(ecoal95): Getting canvas data is implemented in CanvasRenderingContext2D, but
|
// TODO(emilio): Getting canvas data is implemented in CanvasRenderingContext2D, but
|
||||||
// we need to refactor it moving it to `HTMLCanvasElement` and supporting WebGLContext
|
// we need to refactor it moving it to `HTMLCanvasElement` and supporting WebGLContext
|
||||||
ImageDataOrHTMLImageElementOrHTMLCanvasElementOrHTMLVideoElement::HTMLCanvasElement(canvas) => {
|
ImageDataOrHTMLImageElementOrHTMLCanvasElementOrHTMLVideoElement::HTMLCanvasElement(canvas) => {
|
||||||
let canvas = canvas.r();
|
let canvas = canvas.r();
|
||||||
|
@ -1170,7 +1169,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
||||||
=> unimplemented!(),
|
=> unimplemented!(),
|
||||||
};
|
};
|
||||||
|
|
||||||
// TODO(ecoal95): Invert axis, convert colorspace, premultiply alpha if requested
|
// TODO(emilio): Invert axis, convert colorspace, premultiply alpha if requested
|
||||||
let msg = CanvasWebGLMsg::TexImage2D(target, level, internal_format as i32,
|
let msg = CanvasWebGLMsg::TexImage2D(target, level, internal_format as i32,
|
||||||
size.width, size.height,
|
size.width, size.height,
|
||||||
format, data_type, pixels);
|
format, data_type, pixels);
|
||||||
|
|
7
components/servo/Cargo.lock
generated
7
components/servo/Cargo.lock
generated
|
@ -72,7 +72,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "angle"
|
name = "angle"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/ecoal95/angle?branch=servo#b31e70ef5cb675582de910d09b0c385ea2000a64"
|
source = "git+https://github.com/emilio/angle?branch=servo#b31e70ef5cb675582de910d09b0c385ea2000a64"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
@ -187,7 +187,6 @@ dependencies = [
|
||||||
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
|
"ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
|
||||||
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
|
|
||||||
"offscreen_gl_context 0.1.0 (git+https://github.com/ecoal95/rust-offscreen-rendering-context)",
|
"offscreen_gl_context 0.1.0 (git+https://github.com/ecoal95/rust-offscreen-rendering-context)",
|
||||||
"plugins 0.0.1",
|
"plugins 0.0.1",
|
||||||
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -681,7 +680,6 @@ dependencies = [
|
||||||
"app_units 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"app_units 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"azure 0.4.3 (git+https://github.com/servo/rust-azure)",
|
"azure 0.4.3 (git+https://github.com/servo/rust-azure)",
|
||||||
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"canvas_traits 0.0.1",
|
|
||||||
"core-foundation 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"core-foundation 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core-graphics 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"core-graphics 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core-text 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"core-text 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -1048,7 +1046,6 @@ dependencies = [
|
||||||
"app_units 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"app_units 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"azure 0.4.3 (git+https://github.com/servo/rust-azure)",
|
"azure 0.4.3 (git+https://github.com/servo/rust-azure)",
|
||||||
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"canvas 0.0.1",
|
|
||||||
"canvas_traits 0.0.1",
|
"canvas_traits 0.0.1",
|
||||||
"cssparser 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cssparser 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -1689,7 +1686,7 @@ dependencies = [
|
||||||
name = "script"
|
name = "script"
|
||||||
version = "0.0.1"
|
version = "0.0.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"angle 0.1.0 (git+https://github.com/ecoal95/angle?branch=servo)",
|
"angle 0.1.0 (git+https://github.com/emilio/angle?branch=servo)",
|
||||||
"app_units 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"app_units 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"canvas 0.0.1",
|
"canvas 0.0.1",
|
||||||
|
|
|
@ -266,7 +266,7 @@ impl<Impl: SelectorImplExt> Stylist<Impl> {
|
||||||
let map = match pseudo_element {
|
let map = match pseudo_element {
|
||||||
Some(ref pseudo) => match self.pseudos_map.get(pseudo) {
|
Some(ref pseudo) => match self.pseudos_map.get(pseudo) {
|
||||||
Some(map) => map,
|
Some(map) => map,
|
||||||
// TODO(ecoal95): get non eagerly-cascaded pseudo-element rules here.
|
// TODO(emilio): get non eagerly-cascaded pseudo-element rules here.
|
||||||
// Actually assume there are no rules applicable.
|
// Actually assume there are no rules applicable.
|
||||||
None => return true,
|
None => return true,
|
||||||
},
|
},
|
||||||
|
|
7
ports/cef/Cargo.lock
generated
7
ports/cef/Cargo.lock
generated
|
@ -57,7 +57,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "angle"
|
name = "angle"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/ecoal95/angle?branch=servo#b31e70ef5cb675582de910d09b0c385ea2000a64"
|
source = "git+https://github.com/emilio/angle?branch=servo#b31e70ef5cb675582de910d09b0c385ea2000a64"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
@ -172,7 +172,6 @@ dependencies = [
|
||||||
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
|
"ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
|
||||||
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
|
|
||||||
"offscreen_gl_context 0.1.0 (git+https://github.com/ecoal95/rust-offscreen-rendering-context)",
|
"offscreen_gl_context 0.1.0 (git+https://github.com/ecoal95/rust-offscreen-rendering-context)",
|
||||||
"plugins 0.0.1",
|
"plugins 0.0.1",
|
||||||
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -610,7 +609,6 @@ dependencies = [
|
||||||
"app_units 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"app_units 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"azure 0.4.3 (git+https://github.com/servo/rust-azure)",
|
"azure 0.4.3 (git+https://github.com/servo/rust-azure)",
|
||||||
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"canvas_traits 0.0.1",
|
|
||||||
"core-foundation 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"core-foundation 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core-graphics 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"core-graphics 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core-text 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"core-text 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -968,7 +966,6 @@ dependencies = [
|
||||||
"app_units 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"app_units 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"azure 0.4.3 (git+https://github.com/servo/rust-azure)",
|
"azure 0.4.3 (git+https://github.com/servo/rust-azure)",
|
||||||
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"canvas 0.0.1",
|
|
||||||
"canvas_traits 0.0.1",
|
"canvas_traits 0.0.1",
|
||||||
"cssparser 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cssparser 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -1564,7 +1561,7 @@ dependencies = [
|
||||||
name = "script"
|
name = "script"
|
||||||
version = "0.0.1"
|
version = "0.0.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"angle 0.1.0 (git+https://github.com/ecoal95/angle?branch=servo)",
|
"angle 0.1.0 (git+https://github.com/emilio/angle?branch=servo)",
|
||||||
"app_units 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"app_units 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"canvas 0.0.1",
|
"canvas 0.0.1",
|
||||||
|
|
7
ports/gonk/Cargo.lock
generated
7
ports/gonk/Cargo.lock
generated
|
@ -50,7 +50,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "angle"
|
name = "angle"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/ecoal95/angle?branch=servo#b31e70ef5cb675582de910d09b0c385ea2000a64"
|
source = "git+https://github.com/emilio/angle?branch=servo#b31e70ef5cb675582de910d09b0c385ea2000a64"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
@ -165,7 +165,6 @@ dependencies = [
|
||||||
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"heapsize 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"heapsize_plugin 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
|
"ipc-channel 0.2.1 (git+https://github.com/servo/ipc-channel)",
|
||||||
"layers 0.2.4 (git+https://github.com/servo/rust-layers)",
|
|
||||||
"offscreen_gl_context 0.1.0 (git+https://github.com/ecoal95/rust-offscreen-rendering-context)",
|
"offscreen_gl_context 0.1.0 (git+https://github.com/ecoal95/rust-offscreen-rendering-context)",
|
||||||
"plugins 0.0.1",
|
"plugins 0.0.1",
|
||||||
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -613,7 +612,6 @@ dependencies = [
|
||||||
"app_units 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"app_units 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"azure 0.4.3 (git+https://github.com/servo/rust-azure)",
|
"azure 0.4.3 (git+https://github.com/servo/rust-azure)",
|
||||||
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"canvas_traits 0.0.1",
|
|
||||||
"core-foundation 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"core-foundation 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core-graphics 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"core-graphics 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core-text 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"core-text 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -950,7 +948,6 @@ dependencies = [
|
||||||
"app_units 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"app_units 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"azure 0.4.3 (git+https://github.com/servo/rust-azure)",
|
"azure 0.4.3 (git+https://github.com/servo/rust-azure)",
|
||||||
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"canvas 0.0.1",
|
|
||||||
"canvas_traits 0.0.1",
|
"canvas_traits 0.0.1",
|
||||||
"cssparser 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cssparser 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -1546,7 +1543,7 @@ dependencies = [
|
||||||
name = "script"
|
name = "script"
|
||||||
version = "0.0.1"
|
version = "0.0.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"angle 0.1.0 (git+https://github.com/ecoal95/angle?branch=servo)",
|
"angle 0.1.0 (git+https://github.com/emilio/angle?branch=servo)",
|
||||||
"app_units 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"app_units 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"canvas 0.0.1",
|
"canvas 0.0.1",
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
@ecoal95
|
@emilio
|
||||||
@hallvors
|
@hallvors
|
||||||
@kangxu
|
@kangxu
|
||||||
@caitp
|
@caitp
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue