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:
bors-servo 2016-03-24 08:44:40 +05:30
commit 2887623c4a
20 changed files with 22 additions and 131 deletions

View file

@ -15,12 +15,11 @@ use gfx_traits::color;
use ipc_channel::ipc::IpcSharedMemory;
use ipc_channel::ipc::{self, IpcSender};
use ipc_channel::router::ROUTER;
use layers::platform::surface::NativeSurface;
use num::ToPrimitive;
use premultiplytable::PREMULTIPLY_TABLE;
use std::borrow::ToOwned;
use std::mem;
use std::sync::mpsc::{Sender, channel};
use std::sync::mpsc::channel;
use util::opts;
use util::thread::spawn_named;
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"),
}
}
@ -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,
dest_rect: Rect<i32>,
canvas_size: Size2D<f64>,

View file

@ -2,16 +2,14 @@
* 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/. */
use canvas_traits::{CanvasCommonMsg, CanvasMsg, CanvasPixelData, CanvasData, CanvasWebGLMsg};
use canvas_traits::{FromLayoutMsg, FromPaintMsg};
use canvas_traits::{CanvasCommonMsg, CanvasMsg, CanvasPixelData, CanvasData, CanvasWebGLMsg, FromLayoutMsg};
use euclid::size::Size2D;
use gleam::gl;
use ipc_channel::ipc::{self, IpcSender, IpcSharedMemory};
use ipc_channel::router::ROUTER;
use layers::platform::surface::NativeSurface;
use offscreen_gl_context::{ColorAttachmentType, GLContext, GLContextAttributes, NativeGLContext};
use std::borrow::ToOwned;
use std::sync::mpsc::{Sender, channel};
use std::sync::mpsc::channel;
use util::thread::spawn_named;
use util::vec::byte_swap;
use webrender_traits;
@ -83,7 +81,7 @@ impl WebGLPaintThread {
CanvasMsg::Common(message) => {
match message {
CanvasCommonMsg::Close => break,
// TODO(ecoal95): handle error nicely
// TODO(emilio): handle error nicely
CanvasCommonMsg::Recreate(size) => painter.recreate(size).unwrap(),
}
},
@ -93,12 +91,6 @@ impl WebGLPaintThread {
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"),
}
}
@ -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)]
fn recreate(&mut self, size: Size2D<i32>) -> Result<(), &'static str> {
match self.data {

View file

@ -15,10 +15,6 @@ path = "../gfx_traits"
git = "https://github.com/servo/rust-azure"
features = ["plugins"]
[dependencies.layers]
git = "https://github.com/servo/rust-layers"
features = ["plugins"]
[dependencies.offscreen_gl_context]
git = "https://github.com/ecoal95/rust-offscreen-rendering-context"

View file

@ -17,7 +17,6 @@ extern crate euclid;
extern crate gfx_traits;
extern crate heapsize;
extern crate ipc_channel;
extern crate layers;
extern crate offscreen_gl_context;
extern crate serde;
extern crate util;
@ -35,11 +34,8 @@ use euclid::rect::Rect;
use euclid::size::Size2D;
use gfx_traits::color;
use ipc_channel::ipc::{IpcSender, IpcSharedMemory};
use layers::platform::surface::NativeSurface;
use serde::{Deserialize, Deserializer, Serialize, Serializer};
use std::default::Default;
use std::str::FromStr;
use std::sync::mpsc::Sender;
pub use webrender_traits::{WebGLFramebufferBindingRequest, WebGLError, WebGLParameter, WebGLResult, WebGLContextId};
pub use webrender_traits::WebGLCommand as CanvasWebGLMsg;
@ -55,7 +51,6 @@ pub enum CanvasMsg {
Canvas2d(Canvas2dMsg),
Common(CanvasCommonMsg),
FromLayout(FromLayoutMsg),
FromPaint(FromPaintMsg),
WebGL(CanvasWebGLMsg),
}
@ -82,23 +77,6 @@ pub enum FromLayoutMsg {
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)]
pub enum Canvas2dMsg {
Arc(Point2D<f32>, f32, f32, f32, bool),

View file

@ -41,9 +41,6 @@ path = "../gfx_traits"
[dependencies.net_traits]
path = "../net_traits"
[dependencies.canvas_traits]
path = "../canvas_traits"
[dependencies.util]
path = "../util"

View file

@ -25,7 +25,6 @@ extern crate app_units;
extern crate azure;
#[macro_use]
extern crate bitflags;
extern crate canvas_traits;
// Mac OS-specific library dependencies
#[cfg(target_os = "macos")] extern crate core_foundation;

View file

@ -7,7 +7,6 @@
use app_units::Au;
use azure::AzFloat;
use azure::azure_hl::{BackendType, Color, DrawTarget, SurfaceFormat};
use canvas_traits::CanvasMsg;
use display_list::{DisplayItem, DisplayList, DisplayListEntry, DisplayListTraversal};
use display_list::{LayerInfo, StackingContext, StackingContextId, StackingContextType};
use euclid::Matrix4;
@ -343,7 +342,6 @@ pub enum Msg {
#[derive(Deserialize, Serialize)]
pub enum LayoutToPaintMsg {
PaintInit(Epoch, Arc<DisplayList>),
CanvasLayer(LayerId, IpcSender<CanvasMsg>),
Exit(IpcSender<()>),
}
@ -379,9 +377,6 @@ pub struct PaintThread<C> {
/// Communication handles to each of the worker threads.
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
@ -431,7 +426,6 @@ impl<C> PaintThread<C> where C: PaintListener + Send + 'static {
paint_permission: false,
current_epoch: None,
worker_threads: worker_threads,
canvas_map: HashMap::new()
};
let reporter_name = format!("paint-reporter-{}", id);
@ -475,11 +469,6 @@ impl<C> PaintThread<C> where C: PaintListener + Send + 'static {
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)) => {
if self.paint_permission && self.root_display_list.is_some() {
let mut replies = Vec::new();

View file

@ -12,9 +12,6 @@ path = "lib.rs"
git = "https://github.com/servo/rust-azure"
features = ["plugins"]
[dependencies.canvas]
path = "../canvas"
[dependencies.canvas_traits]
path = "../canvas_traits"

View file

@ -8,7 +8,6 @@
#![allow(unsafe_code)]
use app_units::Au;
use canvas_traits::CanvasMsg;
use euclid::Rect;
use fnv::FnvHasher;
use gfx::display_list::WebRenderImageInfo;
@ -16,7 +15,7 @@ use gfx::font_cache_thread::FontCacheThread;
use gfx::font_context::FontContext;
use gfx_traits::LayerId;
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_cache_thread::{ImageCacheChan, ImageCacheThread, ImageResponse, ImageState};
use net_traits::image_cache_thread::{ImageOrMetadataAvailable, UsePlaceholder};
@ -24,7 +23,6 @@ use std::cell::{RefCell, RefMut};
use std::collections::HashMap;
use std::hash::BuildHasherDefault;
use std::rc::Rc;
use std::sync::mpsc::Sender;
use std::sync::{Arc, Mutex, RwLock};
use style::context::{LocalStyleContext, StyleContext};
use style::matching::{ApplicableDeclarationsCache, StyleSharingCandidateCache};
@ -95,9 +93,6 @@ pub struct SharedLayoutContext {
/// The 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.
pub visible_rects: Arc<HashMap<LayerId, Rect<Au>, BuildHasherDefault<FnvHasher>>>,

View file

@ -1197,13 +1197,7 @@ impl FragmentDisplayListBuilding for Fragment {
let (sender, receiver) = ipc::channel().unwrap();
ipc_renderer.send(CanvasMsg::FromLayout(
FromLayoutMsg::SendData(sender))).unwrap();
let data = 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
receiver.recv().unwrap()
},
None => CanvasData::Pixels(CanvasPixelData {
image_data: IpcSharedMemory::from_byte(0xFFu8, width * height * 4),

View file

@ -10,7 +10,6 @@
use animation;
use app_units::Au;
use azure::azure::AzColor;
use canvas_traits::CanvasMsg;
use construct::ConstructionResult;
use context::{LayoutContext, SharedLayoutContext, heap_size_of_local_context};
use display_list_builder::ToGfxColor;
@ -186,11 +185,6 @@ pub struct LayoutThread {
/// Is this the first reflow in this LayoutThread?
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.
parallel_traversal: Option<WorkQueue<SharedLayoutContext, WorkQueueData>>,
@ -406,7 +400,6 @@ impl LayoutThread {
// Create the channel on which new animations can be sent.
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.
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),
font_cache_receiver: font_cache_receiver,
font_cache_sender: ipc_font_cache_sender,
canvas_layers_receiver: canvas_layers_receiver,
canvas_layers_sender: canvas_layers_sender,
parallel_traversal: parallel_traversal,
generation: 0,
new_animations_sender: new_animations_sender,
@ -521,7 +512,6 @@ impl LayoutThread {
image_cache_thread: self.image_cache_thread.clone(),
image_cache_sender: Mutex::new(self.image_cache_sender.clone()),
font_cache_thread: Mutex::new(self.font_cache_thread.clone()),
canvas_layers_sender: Mutex::new(self.canvas_layers_sender.clone()),
url: (*url).clone(),
visible_rects: self.visible_rects.clone(),
webrender_image_cache: self.webrender_image_cache.clone(),
@ -1148,12 +1138,6 @@ impl LayoutThread {
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.
self.perform_post_style_recalc_layout_passes(&data.reflow_info,
&mut rw_data,

View file

@ -50,7 +50,7 @@ git = "https://github.com/servo/rust-mozjs"
git = "https://github.com/ecoal95/rust-offscreen-rendering-context"
[dependencies.angle]
git = "https://github.com/ecoal95/angle"
git = "https://github.com/emilio/angle"
branch = "servo"
[dependencies.ipc-channel]

View file

@ -206,7 +206,7 @@ impl HTMLCanvasElement {
CanvasData::Pixels(pixel_data)
=> pixel_data.image_data.to_vec(),
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.
=> return None,
}

View file

@ -96,7 +96,7 @@ impl WebGLProgram {
_ => 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.
if shader_slot.get().is_some() {
return Err(WebGLError::InvalidOperation);

View file

@ -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
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.5
fn CreateBuffer(&self) -> Option<Root<WebGLBuffer>> {
@ -1116,8 +1116,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
if texture.is_none() {
return self.webgl_error(InvalidOperation);
}
// TODO(ecoal95): Validate more parameters
// TODO(emilio): Validate more parameters
let source = match source {
Some(s) => s,
None => return,
@ -1144,7 +1143,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
};
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
let mut data = match img.format {
PixelFormat::RGBA8 => img.bytes.to_vec(),
@ -1155,7 +1154,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
(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
ImageDataOrHTMLImageElementOrHTMLCanvasElementOrHTMLVideoElement::HTMLCanvasElement(canvas) => {
let canvas = canvas.r();
@ -1170,7 +1169,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
=> 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,
size.width, size.height,
format, data_type, pixels);

View file

@ -72,7 +72,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "angle"
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 = [
"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_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)",
"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)",
"plugins 0.0.1",
"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)",
"azure 0.4.3 (git+https://github.com/servo/rust-azure)",
"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-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)",
@ -1048,7 +1046,6 @@ dependencies = [
"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)",
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
"canvas 0.0.1",
"canvas_traits 0.0.1",
"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)",
@ -1689,7 +1686,7 @@ dependencies = [
name = "script"
version = "0.0.1"
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)",
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
"canvas 0.0.1",

View file

@ -266,7 +266,7 @@ impl<Impl: SelectorImplExt> Stylist<Impl> {
let map = match pseudo_element {
Some(ref pseudo) => match self.pseudos_map.get(pseudo) {
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.
None => return true,
},

7
ports/cef/Cargo.lock generated
View file

@ -57,7 +57,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "angle"
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 = [
"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_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)",
"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)",
"plugins 0.0.1",
"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)",
"azure 0.4.3 (git+https://github.com/servo/rust-azure)",
"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-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)",
@ -968,7 +966,6 @@ dependencies = [
"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)",
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
"canvas 0.0.1",
"canvas_traits 0.0.1",
"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)",
@ -1564,7 +1561,7 @@ dependencies = [
name = "script"
version = "0.0.1"
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)",
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
"canvas 0.0.1",

7
ports/gonk/Cargo.lock generated
View file

@ -50,7 +50,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "angle"
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 = [
"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_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)",
"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)",
"plugins 0.0.1",
"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)",
"azure 0.4.3 (git+https://github.com/servo/rust-azure)",
"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-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)",
@ -950,7 +948,6 @@ dependencies = [
"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)",
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
"canvas 0.0.1",
"canvas_traits 0.0.1",
"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)",
@ -1546,7 +1543,7 @@ dependencies = [
name = "script"
version = "0.0.1"
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)",
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
"canvas 0.0.1",

View file

@ -1,4 +1,4 @@
@ecoal95
@emilio
@hallvors
@kangxu
@caitp