Auto merge of #20690 - servo:wrup, r=glennw

Update Webrender

Fixes #20609

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/20690)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2018-04-25 05:10:51 -04:00 committed by GitHub
commit 6d42d2f1e8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 296 additions and 346 deletions

471
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -32,7 +32,7 @@ use std::fs::{File, create_dir_all};
use std::io::Write; use std::io::Write;
use std::rc::Rc; use std::rc::Rc;
use std::sync::mpsc::Sender; use std::sync::mpsc::Sender;
use std::time::{Duration, Instant}; use std::time::Instant;
use style_traits::{CSSPixel, DevicePixel, PinchZoomFactor}; use style_traits::{CSSPixel, DevicePixel, PinchZoomFactor};
use style_traits::cursor::CursorKind; use style_traits::cursor::CursorKind;
use style_traits::viewport::ViewportConstraints; use style_traits::viewport::ViewportConstraints;
@ -40,7 +40,7 @@ use time::{now, precise_time_ns, precise_time_s};
use touch::{TouchHandler, TouchAction}; use touch::{TouchHandler, TouchAction};
use webrender; use webrender;
use webrender_api::{self, DeviceIntPoint, DevicePoint, HitTestFlags, HitTestResult}; use webrender_api::{self, DeviceIntPoint, DevicePoint, HitTestFlags, HitTestResult};
use webrender_api::{LayoutVector2D, ScrollEventPhase, ScrollLocation}; use webrender_api::{LayoutVector2D, ScrollLocation};
use windowing::{self, EmbedderCoordinates, MouseWindowEvent, WebRenderDebugOption, WindowMethods}; use windowing::{self, EmbedderCoordinates, MouseWindowEvent, WebRenderDebugOption, WindowMethods};
@ -200,8 +200,6 @@ struct ScrollZoomEvent {
scroll_location: ScrollLocation, scroll_location: ScrollLocation,
/// Apply changes to the frame at this location /// Apply changes to the frame at this location
cursor: DeviceIntPoint, cursor: DeviceIntPoint,
/// The scroll event phase.
phase: ScrollEventPhase,
/// The number of OS events that have been coalesced together into this one event. /// The number of OS events that have been coalesced together into this one event.
event_count: u32, event_count: u32,
} }
@ -793,7 +791,6 @@ impl<Window: WindowMethods> IOCompositor<Window> {
scroll_location: ScrollLocation::Delta(webrender_api::LayoutVector2D::from_untyped( scroll_location: ScrollLocation::Delta(webrender_api::LayoutVector2D::from_untyped(
&scroll_delta.to_untyped())), &scroll_delta.to_untyped())),
cursor: cursor, cursor: cursor,
phase: ScrollEventPhase::Move(true),
event_count: 1, event_count: 1,
}); });
} }
@ -845,18 +842,11 @@ impl<Window: WindowMethods> IOCompositor<Window> {
fn on_scroll_window_event(&mut self, fn on_scroll_window_event(&mut self,
scroll_location: ScrollLocation, scroll_location: ScrollLocation,
cursor: DeviceIntPoint) { cursor: DeviceIntPoint) {
let event_phase = match (self.scroll_in_progress, self.in_scroll_transaction) {
(false, None) => ScrollEventPhase::Start,
(false, Some(last_scroll)) if last_scroll.elapsed() > Duration::from_millis(80) =>
ScrollEventPhase::Start,
(_, _) => ScrollEventPhase::Move(self.scroll_in_progress),
};
self.in_scroll_transaction = Some(Instant::now()); self.in_scroll_transaction = Some(Instant::now());
self.pending_scroll_zoom_events.push(ScrollZoomEvent { self.pending_scroll_zoom_events.push(ScrollZoomEvent {
magnification: 1.0, magnification: 1.0,
scroll_location: scroll_location, scroll_location: scroll_location,
cursor: cursor, cursor: cursor,
phase: event_phase,
event_count: 1, event_count: 1,
}); });
} }
@ -869,7 +859,6 @@ impl<Window: WindowMethods> IOCompositor<Window> {
magnification: 1.0, magnification: 1.0,
scroll_location: scroll_location, scroll_location: scroll_location,
cursor: cursor, cursor: cursor,
phase: ScrollEventPhase::Start,
event_count: 1, event_count: 1,
}); });
} }
@ -882,7 +871,6 @@ impl<Window: WindowMethods> IOCompositor<Window> {
magnification: 1.0, magnification: 1.0,
scroll_location: scroll_location, scroll_location: scroll_location,
cursor: cursor, cursor: cursor,
phase: ScrollEventPhase::End,
event_count: 1, event_count: 1,
}); });
} }
@ -905,44 +893,17 @@ impl<Window: WindowMethods> IOCompositor<Window> {
} }
}; };
if let Some(combined_event) = last_combined_event { match &mut last_combined_event {
if combined_event.phase != scroll_event.phase { last_combined_event @ &mut None => {
let combined_delta = match combined_event.scroll_location {
ScrollLocation::Delta(delta) => delta,
ScrollLocation::Start | ScrollLocation::End => {
// If this is an event which is scrolling to the start or end of the page,
// disregard other pending events and exit the loop.
last_combined_event = Some(scroll_event);
break;
}
};
// TODO: units don't match!
let delta = combined_delta / self.scale.get();
let cursor =
(combined_event.cursor.to_f32() / self.scale).to_untyped();
let location = webrender_api::ScrollLocation::Delta(delta);
let cursor = webrender_api::WorldPoint::from_untyped(&cursor);
let mut txn = webrender_api::Transaction::new();
txn.scroll(location, cursor, combined_event.phase);
self.webrender_api.send_transaction(self.webrender_document, txn);
last_combined_event = None
}
}
match (&mut last_combined_event, scroll_event.phase) {
(last_combined_event @ &mut None, _) => {
*last_combined_event = Some(ScrollZoomEvent { *last_combined_event = Some(ScrollZoomEvent {
magnification: scroll_event.magnification, magnification: scroll_event.magnification,
scroll_location: ScrollLocation::Delta(webrender_api::LayoutVector2D::from_untyped( scroll_location: ScrollLocation::Delta(webrender_api::LayoutVector2D::from_untyped(
&this_delta.to_untyped())), &this_delta.to_untyped())),
cursor: this_cursor, cursor: this_cursor,
phase: scroll_event.phase,
event_count: 1, event_count: 1,
}) })
} }
(&mut Some(ref mut last_combined_event), &mut Some(ref mut last_combined_event) => {
ScrollEventPhase::Move(false)) => {
// Mac OS X sometimes delivers scroll events out of vsync during a // Mac OS X sometimes delivers scroll events out of vsync during a
// fling. This causes events to get bunched up occasionally, causing // fling. This causes events to get bunched up occasionally, causing
// nasty-looking "pops". To mitigate this, during a fling we average // nasty-looking "pops". To mitigate this, during a fling we average
@ -958,12 +919,6 @@ impl<Window: WindowMethods> IOCompositor<Window> {
new_event_count); new_event_count);
} }
} }
(&mut Some(ref mut last_combined_event), _) => {
if let ScrollLocation::Delta(delta) = last_combined_event.scroll_location {
last_combined_event.scroll_location = ScrollLocation::Delta(delta + this_delta);
last_combined_event.event_count += 1
}
}
} }
} }
@ -981,7 +936,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
let cursor = (combined_event.cursor.to_f32() / self.scale).to_untyped(); let cursor = (combined_event.cursor.to_f32() / self.scale).to_untyped();
let cursor = webrender_api::WorldPoint::from_untyped(&cursor); let cursor = webrender_api::WorldPoint::from_untyped(&cursor);
let mut txn = webrender_api::Transaction::new(); let mut txn = webrender_api::Transaction::new();
txn.scroll(scroll_location, cursor, combined_event.phase); txn.scroll(scroll_location, cursor);
self.webrender_api.send_transaction(self.webrender_document, txn); self.webrender_api.send_transaction(self.webrender_document, txn);
self.waiting_for_results_of_scroll = true self.waiting_for_results_of_scroll = true
} }
@ -1092,7 +1047,6 @@ impl<Window: WindowMethods> IOCompositor<Window> {
magnification: magnification, magnification: magnification,
scroll_location: ScrollLocation::Delta(TypedVector2D::zero()), // TODO: Scroll to keep the center in view? scroll_location: ScrollLocation::Delta(TypedVector2D::zero()), // TODO: Scroll to keep the center in view?
cursor: TypedPoint2D::new(-1, -1), // Make sure this hits the base layer. cursor: TypedPoint2D::new(-1, -1), // Make sure this hits the base layer.
phase: ScrollEventPhase::Move(true),
event_count: 1, event_count: 1,
}); });
} }
@ -1334,7 +1288,6 @@ impl<Window: WindowMethods> IOCompositor<Window> {
self.composition_request = CompositionRequest::NoCompositingNecessary; self.composition_request = CompositionRequest::NoCompositingNecessary;
self.process_animations(); self.process_animations();
self.start_scrolling_bounce_if_necessary();
self.waiting_for_results_of_scroll = false; self.waiting_for_results_of_scroll = false;
Ok(rv) Ok(rv)
@ -1355,19 +1308,6 @@ impl<Window: WindowMethods> IOCompositor<Window> {
self.root_pipeline.as_ref().map(|pipeline| pipeline.id) self.root_pipeline.as_ref().map(|pipeline| pipeline.id)
} }
fn start_scrolling_bounce_if_necessary(&mut self) {
if self.scroll_in_progress {
return
}
if self.webrender.layers_are_bouncing_back() {
let mut txn = webrender_api::Transaction::new();
txn.tick_scrolling_bounce_animations();
self.webrender_api.send_transaction(self.webrender_document, txn);
self.send_viewport_rects()
}
}
pub fn receive_messages(&mut self) -> bool { pub fn receive_messages(&mut self) -> bool {
// Check for new messages coming from the other threads in the system. // Check for new messages coming from the other threads in the system.
let mut compositor_messages = vec![]; let mut compositor_messages = vec![];

View file

@ -10,5 +10,5 @@ path = "lib.rs"
proc-macro = true proc-macro = true
[dependencies] [dependencies]
syn = "0.12.12" syn = "0.13.1"
synstructure = "0.7" synstructure = "0.8"

View file

@ -10,5 +10,5 @@ path = "lib.rs"
proc-macro = true proc-macro = true
[dependencies] [dependencies]
syn = "0.12.12" syn = "0.13.1"
quote = "0.4.2" quote = "0.5.1"

View file

@ -22,7 +22,7 @@ euclid = "0.17"
fnv = "1.0" fnv = "1.0"
fontsan = {git = "https://github.com/servo/fontsan"} fontsan = {git = "https://github.com/servo/fontsan"}
gfx_traits = {path = "../gfx_traits"} gfx_traits = {path = "../gfx_traits"}
harfbuzz-sys = "0.1" harfbuzz-sys = "0.2"
ipc-channel = "0.10" ipc-channel = "0.10"
lazy_static = "1" lazy_static = "1"
libc = "0.2" libc = "0.2"
@ -42,7 +42,7 @@ smallvec = "0.6"
style = {path = "../style"} style = {path = "../style"}
time = "0.1.12" time = "0.1.12"
unicode-bidi = {version = "0.3", features = ["with_serde"]} unicode-bidi = {version = "0.3", features = ["with_serde"]}
unicode-script = {version = "0.1", features = ["harfbuzz"]} unicode-script = {version = "0.2", features = ["harfbuzz"]}
webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]} webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
xi-unicode = "0.1.0" xi-unicode = "0.1.0"
@ -53,7 +53,7 @@ core-graphics = "0.13"
core-text = "9.0" core-text = "9.0"
[target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies] [target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies]
freetype = "0.3" freetype = "0.4"
servo_allocator = {path = "../allocator"} servo_allocator = {path = "../allocator"}
[target.'cfg(target_os = "linux")'.dependencies] [target.'cfg(target_os = "linux")'.dependencies]

View file

@ -38,7 +38,7 @@ extern crate harfbuzz_sys as harfbuzz;
extern crate ipc_channel; extern crate ipc_channel;
#[macro_use] #[macro_use]
extern crate lazy_static; extern crate lazy_static;
extern crate libc; #[cfg(any(target_os = "linux", target_os = "android"))] extern crate libc;
#[macro_use] #[macro_use]
extern crate log; extern crate log;
#[cfg_attr(target_os = "windows", macro_use)] #[cfg_attr(target_os = "windows", macro_use)]

View file

@ -14,6 +14,7 @@ use freetype::freetype::{FT_Int32, FT_Kerning_Mode, FT_STYLE_FLAG_ITALIC};
use freetype::freetype::{FT_Load_Glyph, FT_Set_Char_Size}; use freetype::freetype::{FT_Load_Glyph, FT_Set_Char_Size};
use freetype::freetype::{FT_SizeRec, FT_Size_Metrics, FT_UInt, FT_Vector}; use freetype::freetype::{FT_SizeRec, FT_Size_Metrics, FT_UInt, FT_Vector};
use freetype::freetype::FT_Sfnt_Tag; use freetype::freetype::FT_Sfnt_Tag;
use freetype::succeeded;
use freetype::tt_os2::TT_OS2; use freetype::tt_os2::TT_OS2;
use platform::font_context::FontContextHandle; use platform::font_context::FontContextHandle;
use platform::font_template::FontTemplateData; use platform::font_template::FontTemplateData;
@ -78,7 +79,7 @@ impl Drop for FontHandle {
fn drop(&mut self) { fn drop(&mut self) {
assert!(!self.face.is_null()); assert!(!self.face.is_null());
unsafe { unsafe {
if !FT_Done_Face(self.face).succeeded() { if !succeeded(FT_Done_Face(self.face)) {
panic!("FT_Done_Face failed"); panic!("FT_Done_Face failed");
} }
} }
@ -115,7 +116,7 @@ impl FontHandleMethods for FontHandle {
let result = FT_New_Memory_Face(lib, buffer.as_ptr(), buffer.len() as FT_Long, let result = FT_New_Memory_Face(lib, buffer.as_ptr(), buffer.len() as FT_Long,
face_index, &mut face); face_index, &mut face);
if !result.succeeded() || face.is_null() { if !succeeded(result) || face.is_null() {
return Err(()); return Err(());
} }
if let Some(s) = pt_size { if let Some(s) = pt_size {
@ -222,7 +223,7 @@ impl FontHandleMethods for FontHandle {
let res = FT_Load_Glyph(self.face, let res = FT_Load_Glyph(self.face,
glyph as FT_UInt, glyph as FT_UInt,
GLYPH_LOAD_FLAGS); GLYPH_LOAD_FLAGS);
if res.succeeded() { if succeeded(res) {
let void_glyph = (*self.face).glyph; let void_glyph = (*self.face).glyph;
let slot: FT_GlyphSlot = mem::transmute(void_glyph); let slot: FT_GlyphSlot = mem::transmute(void_glyph);
assert!(!slot.is_null()); assert!(!slot.is_null());
@ -296,12 +297,12 @@ impl FontHandleMethods for FontHandle {
unsafe { unsafe {
// Get the length // Get the length
let mut len = 0; let mut len = 0;
if !FT_Load_Sfnt_Table(self.face, tag, 0, ptr::null_mut(), &mut len).succeeded() { if !succeeded(FT_Load_Sfnt_Table(self.face, tag, 0, ptr::null_mut(), &mut len)) {
return None return None
} }
// Get the bytes // Get the bytes
let mut buf = vec![0u8; len as usize]; let mut buf = vec![0u8; len as usize];
if !FT_Load_Sfnt_Table(self.face, tag, 0, buf.as_mut_ptr(), &mut len).succeeded() { if !succeeded(FT_Load_Sfnt_Table(self.face, tag, 0, buf.as_mut_ptr(), &mut len)) {
return None return None
} }
Some(FontTable { buffer: buf }) Some(FontTable { buffer: buf })
@ -319,13 +320,13 @@ impl<'a> FontHandle {
unsafe { unsafe {
let result = FT_Set_Char_Size(face, char_size as FT_F26Dot6, 0, 0, 0); let result = FT_Set_Char_Size(face, char_size as FT_F26Dot6, 0, 0, 0);
if result.succeeded() { Ok(()) } else { Err(()) } if succeeded(result) { Ok(()) } else { Err(()) }
} }
} }
fn has_table(&self, tag: FontTableTag) -> bool { fn has_table(&self, tag: FontTableTag) -> bool {
unsafe { unsafe {
FT_Load_Sfnt_Table(self.face, tag as FT_ULong, 0, ptr::null_mut(), &mut 0).succeeded() succeeded(FT_Load_Sfnt_Table(self.face, tag as FT_ULong, 0, ptr::null_mut(), &mut 0))
} }
} }

View file

@ -8,6 +8,7 @@ use freetype::freetype::FT_Library;
use freetype::freetype::FT_Memory; use freetype::freetype::FT_Memory;
use freetype::freetype::FT_MemoryRec_; use freetype::freetype::FT_MemoryRec_;
use freetype::freetype::FT_New_Library; use freetype::freetype::FT_New_Library;
use freetype::succeeded;
use malloc_size_of::{MallocSizeOf, MallocSizeOfOps}; use malloc_size_of::{MallocSizeOf, MallocSizeOfOps};
use servo_allocator::libc_compat::{malloc, realloc, free}; use servo_allocator::libc_compat::{malloc, realloc, free};
use servo_allocator::usable_size; use servo_allocator::usable_size;
@ -120,7 +121,7 @@ impl FontContextHandle {
let mut ctx: FT_Library = ptr::null_mut(); let mut ctx: FT_Library = ptr::null_mut();
let result = FT_New_Library(mem, &mut ctx); let result = FT_New_Library(mem, &mut ctx);
if !result.succeeded() { panic!("Unable to initialize FreeType library"); } if !succeeded(result) { panic!("Unable to initialize FreeType library"); }
FT_Add_Default_Modules(ctx); FT_Add_Default_Modules(ctx);

View file

@ -25,17 +25,17 @@ use harfbuzz::hb_face_destroy;
use harfbuzz::hb_feature_t; use harfbuzz::hb_feature_t;
use harfbuzz::hb_font_create; use harfbuzz::hb_font_create;
use harfbuzz::hb_font_funcs_create; use harfbuzz::hb_font_funcs_create;
use harfbuzz::hb_font_funcs_set_glyph_func;
use harfbuzz::hb_font_funcs_set_glyph_h_advance_func; use harfbuzz::hb_font_funcs_set_glyph_h_advance_func;
use harfbuzz::hb_font_funcs_set_glyph_h_kerning_func; use harfbuzz::hb_font_funcs_set_glyph_h_kerning_func;
use harfbuzz::hb_font_funcs_set_nominal_glyph_func;
use harfbuzz::hb_font_set_funcs; use harfbuzz::hb_font_set_funcs;
use harfbuzz::hb_font_set_ppem; use harfbuzz::hb_font_set_ppem;
use harfbuzz::hb_font_set_scale; use harfbuzz::hb_font_set_scale;
use harfbuzz::hb_glyph_info_t; use harfbuzz::hb_glyph_info_t;
use harfbuzz::hb_glyph_position_t; use harfbuzz::hb_glyph_position_t;
use libc::{c_char, c_int, c_uint, c_void};
use platform::font::FontTable; use platform::font::FontTable;
use std::{char, cmp, ptr}; use std::{char, cmp, ptr};
use std::os::raw::{c_char, c_int, c_uint, c_void};
use text::glyph::{ByteIndex, GlyphData, GlyphId, GlyphStore}; use text::glyph::{ByteIndex, GlyphData, GlyphId, GlyphStore};
use text::shaping::ShaperMethods; use text::shaping::ShaperMethods;
use text::util::{fixed_to_float, float_to_fixed, is_bidi_control}; use text::util::{fixed_to_float, float_to_fixed, is_bidi_control};
@ -418,7 +418,7 @@ unsafe impl Sync for FontFuncs {}
lazy_static! { lazy_static! {
static ref HB_FONT_FUNCS: FontFuncs = unsafe { static ref HB_FONT_FUNCS: FontFuncs = unsafe {
let hb_funcs = hb_font_funcs_create(); let hb_funcs = hb_font_funcs_create();
hb_font_funcs_set_glyph_func(hb_funcs, Some(glyph_func), ptr::null_mut(), None); hb_font_funcs_set_nominal_glyph_func(hb_funcs, Some(glyph_func), ptr::null_mut(), None);
hb_font_funcs_set_glyph_h_advance_func( hb_font_funcs_set_glyph_h_advance_func(
hb_funcs, Some(glyph_h_advance_func), ptr::null_mut(), None); hb_funcs, Some(glyph_h_advance_func), ptr::null_mut(), None);
hb_font_funcs_set_glyph_h_kerning_func( hb_font_funcs_set_glyph_h_kerning_func(
@ -431,7 +431,6 @@ lazy_static! {
extern fn glyph_func(_: *mut hb_font_t, extern fn glyph_func(_: *mut hb_font_t,
font_data: *mut c_void, font_data: *mut c_void,
unicode: hb_codepoint_t, unicode: hb_codepoint_t,
_: hb_codepoint_t,
glyph: *mut hb_codepoint_t, glyph: *mut hb_codepoint_t,
_: *mut c_void) _: *mut c_void)
-> hb_bool_t { -> hb_bool_t {

View file

@ -10,6 +10,6 @@ path = "lib.rs"
proc-macro = true proc-macro = true
[dependencies] [dependencies]
quote = "0.4.2" quote = "0.5.1"
syn = "0.12.12" syn = "0.13.1"
synstructure = "0.7" synstructure = "0.8"

View file

@ -2,7 +2,7 @@
* 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/. */
#[macro_use] extern crate quote; extern crate quote;
#[macro_use] extern crate syn; #[macro_use] extern crate syn;
#[macro_use] extern crate synstructure; #[macro_use] extern crate synstructure;

View file

@ -46,7 +46,7 @@ smallvec = "0.6"
style = {path = "../style", features = ["servo"]} style = {path = "../style", features = ["servo"]}
style_traits = {path = "../style_traits"} style_traits = {path = "../style_traits"}
unicode-bidi = {version = "0.3", features = ["with_serde"]} unicode-bidi = {version = "0.3", features = ["with_serde"]}
unicode-script = {version = "0.1", features = ["harfbuzz"]} unicode-script = {version = "0.2", features = ["harfbuzz"]}
webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]} webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
xi-unicode = "0.1.0" xi-unicode = "0.1.0"

View file

@ -225,6 +225,7 @@ impl WebRenderDisplayItemConverter for DisplayItem {
builder.push_stacking_context( builder.push_stacking_context(
&webrender_api::LayoutPrimitiveInfo::new(stacking_context.bounds), &webrender_api::LayoutPrimitiveInfo::new(stacking_context.bounds),
None,
stacking_context.scroll_policy, stacking_context.scroll_policy,
stacking_context.transform.map(Into::into), stacking_context.transform.map(Into::into),
stacking_context.transform_style, stacking_context.transform_style,

View file

@ -10,6 +10,6 @@ path = "lib.rs"
proc-macro = true proc-macro = true
[dependencies] [dependencies]
quote = "0.4.2" quote = "0.5.1"
syn = { version = "0.12.12", features = ["full"] } syn = { version = "0.13.1", features = ["full"] }
synstructure = "0.7" synstructure = "0.8"

View file

@ -10,16 +10,10 @@
//! A crate for deriving the MallocSizeOf trait. //! A crate for deriving the MallocSizeOf trait.
#[macro_use] extern crate quote; extern crate quote;
#[macro_use] extern crate syn; #[macro_use] extern crate syn;
#[cfg(not(test))]
#[macro_use] extern crate synstructure; #[macro_use] extern crate synstructure;
#[cfg(test)]
extern crate synstructure;
#[cfg(not(test))] #[cfg(not(test))]
decl_derive!([MallocSizeOf, attributes(ignore_malloc_size_of)] => malloc_size_of_derive); decl_derive!([MallocSizeOf, attributes(ignore_malloc_size_of)] => malloc_size_of_derive);

View file

@ -40,7 +40,7 @@ fnv = "1.0"
hashglobe = { path = "../hashglobe" } hashglobe = { path = "../hashglobe" }
html5ever = {version = "0.22", optional = true} html5ever = {version = "0.22", optional = true}
itertools = "0.7.6" itertools = "0.7.6"
itoa = "0.3" itoa = "0.4"
lazy_static = "1" lazy_static = "1"
log = "0.4" log = "0.4"
malloc_size_of = { path = "../malloc_size_of" } malloc_size_of = { path = "../malloc_size_of" }
@ -78,7 +78,7 @@ kernel32-sys = "0.2"
[build-dependencies] [build-dependencies]
lazy_static = "1" lazy_static = "1"
log = "0.4" log = "0.4"
bindgen = { version = "0.33.2", optional = true, default-features = false } bindgen = { version = "0.36", optional = true, default-features = false }
regex = {version = "0.2", optional = true} regex = {version = "0.2", optional = true}
walkdir = "2.1.4" walkdir = "2.1.4"
toml = {version = "0.4.5", optional = true, default-features = false} toml = {version = "0.4.5", optional = true, default-features = false}

View file

@ -10,7 +10,7 @@ path = "lib.rs"
proc-macro = true proc-macro = true
[dependencies] [dependencies]
darling = "0.3" darling = "0.4"
quote = "0.4.2" quote = "0.5.1"
syn = { version = "0.12.12", features = ["visit"] } syn = { version = "0.13.1", features = ["visit"] }
synstructure = "0.7" synstructure = "0.8"

View file

@ -39,12 +39,14 @@ num = [
# Ignored packages with duplicated versions # Ignored packages with duplicated versions
packages = [ packages = [
"bitflags", "bitflags",
"winapi", "itoa",
"syn",
"quote",
"unicode-xid",
"log", "log",
"rand" "num-traits",
"quote",
"rand",
"syn",
"unicode-xid",
"winapi",
] ]
# Files that are ignored for all tidy and lint checks. # Files that are ignored for all tidy and lint checks.
files = [ files = [

View file

@ -1,5 +0,0 @@
[mix-blend-mode-intermediate-element-overflow-hidden-and-border-radius.html]
type: reftest
expected:
if os == "linux": FAIL
bug: https://github.com/servo/webrender/issues/1776

View file

@ -1,4 +0,0 @@
[css3-box-shadow.html]
type: reftest
expected:
if os == "linux": FAIL