diff --git a/Cargo.lock b/Cargo.lock index af16f9929d2..2315f317351 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3315,7 +3315,6 @@ dependencies = [ "html5ever 0.22.5 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "malloc_size_of 0.0.1", "malloc_size_of_derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "metrics 0.0.1", diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs index e645fb181d5..2ea4de3d340 100644 --- a/components/script/dom/bindings/trace.rs +++ b/components/script/dom/bindings/trace.rs @@ -85,7 +85,6 @@ use net_traits::{Metadata, NetworkError, ReferrerPolicy, ResourceFetchTiming, Re use offscreen_gl_context::GLLimits; use profile_traits::mem::ProfilerChan as MemProfilerChan; use profile_traits::time::ProfilerChan as TimeProfilerChan; -use script_layout_interface::reporter::CSSErrorReporter; use script_layout_interface::rpc::LayoutRPC; use script_layout_interface::OpaqueStyleAndLayoutData; use script_traits::DrawAPaintImageResult; @@ -455,7 +454,6 @@ unsafe_no_jsmanaged_fields!(Instant); unsafe_no_jsmanaged_fields!(RelativePos); unsafe_no_jsmanaged_fields!(OpaqueStyleAndLayoutData); unsafe_no_jsmanaged_fields!(PathBuf); -unsafe_no_jsmanaged_fields!(CSSErrorReporter); unsafe_no_jsmanaged_fields!(DrawAPaintImageResult); unsafe_no_jsmanaged_fields!(DocumentId); unsafe_no_jsmanaged_fields!(ImageKey); diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index 3f702cbeabd..f8669ccd858 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -69,7 +69,7 @@ use base64; use bluetooth_traits::BluetoothRequest; use canvas_traits::webgl::WebGLChan; use crossbeam_channel::{unbounded, Sender, TryRecvError}; -use cssparser::{Parser, ParserInput}; +use cssparser::{Parser, ParserInput, SourceLocation}; use devtools_traits::{ScriptToDevtoolsControlMsg, TimelineMarker, TimelineMarkerType}; use dom_struct::dom_struct; use embedder_traits::EmbedderMsg; @@ -94,7 +94,6 @@ use profile_traits::ipc as ProfiledIpc; use profile_traits::mem::ProfilerChan as MemProfilerChan; use profile_traits::time::ProfilerChan as TimeProfilerChan; use script_layout_interface::message::{Msg, QueryMsg, Reflow, ReflowGoal, ScriptReflow}; -use script_layout_interface::reporter::CSSErrorReporter; use script_layout_interface::rpc::{ContentBoxResponse, ContentBoxesResponse, LayoutRPC}; use script_layout_interface::rpc::{ NodeScrollIdResponse, ResolvedStyleResponse, TextIndexResponse, @@ -120,7 +119,7 @@ use std::mem; use std::rc::Rc; use std::sync::atomic::Ordering; use std::sync::{Arc, Mutex}; -use style::error_reporting::ParseErrorReporter; +use style::error_reporting::{ContextualParseError, ParseErrorReporter}; use style::media_queries; use style::parser::ParserContext as CssParserContext; use style::properties::{ComputedValues, PropertyId}; @@ -2242,3 +2241,41 @@ impl Window { )); } } + +#[derive(Clone, MallocSizeOf)] +pub struct CSSErrorReporter { + pub pipelineid: PipelineId, + // Arc+Mutex combo is necessary to make this struct Sync, + // which is necessary to fulfill the bounds required by the + // uses of the ParseErrorReporter trait. + #[ignore_malloc_size_of = "Arc is defined in libstd"] + pub script_chan: Arc>>, +} +unsafe_no_jsmanaged_fields!(CSSErrorReporter); + +impl ParseErrorReporter for CSSErrorReporter { + fn report_error(&self, url: &ServoUrl, location: SourceLocation, error: ContextualParseError) { + if log_enabled!(log::Level::Info) { + info!( + "Url:\t{}\n{}:{} {}", + url.as_str(), + location.line, + location.column, + error + ) + } + + //TODO: report a real filename + let _ = self + .script_chan + .lock() + .unwrap() + .send(ConstellationControlMsg::ReportCSSError( + self.pipelineid, + "".to_owned(), + location.line, + location.column, + error.to_string(), + )); + } +} diff --git a/components/script_layout_interface/Cargo.toml b/components/script_layout_interface/Cargo.toml index caae48d943b..1edde2cb613 100644 --- a/components/script_layout_interface/Cargo.toml +++ b/components/script_layout_interface/Cargo.toml @@ -21,7 +21,6 @@ gfx_traits = {path = "../gfx_traits"} html5ever = "0.22" ipc-channel = "0.11" libc = "0.2" -log = "0.4" time = "0.1.17" malloc_size_of = { path = "../malloc_size_of" } malloc_size_of_derive = "0.1" diff --git a/components/script_layout_interface/lib.rs b/components/script_layout_interface/lib.rs index d4e25c1b3c7..ad333209033 100644 --- a/components/script_layout_interface/lib.rs +++ b/components/script_layout_interface/lib.rs @@ -11,12 +11,9 @@ #[macro_use] extern crate html5ever; #[macro_use] -extern crate log; -#[macro_use] extern crate malloc_size_of_derive; pub mod message; -pub mod reporter; pub mod rpc; pub mod wrapper_traits; diff --git a/components/script_layout_interface/reporter.rs b/components/script_layout_interface/reporter.rs deleted file mode 100644 index 0a558564a2c..00000000000 --- a/components/script_layout_interface/reporter.rs +++ /dev/null @@ -1,48 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -use cssparser::SourceLocation; -use ipc_channel::ipc::IpcSender; -use msg::constellation_msg::PipelineId; -use script_traits::ConstellationControlMsg; -use servo_url::ServoUrl; -use std::sync::{Arc, Mutex}; -use style::error_reporting::{ContextualParseError, ParseErrorReporter}; - -#[derive(Clone, MallocSizeOf)] -pub struct CSSErrorReporter { - pub pipelineid: PipelineId, - // Arc+Mutex combo is necessary to make this struct Sync, - // which is necessary to fulfill the bounds required by the - // uses of the ParseErrorReporter trait. - #[ignore_malloc_size_of = "Arc is defined in libstd"] - pub script_chan: Arc>>, -} - -impl ParseErrorReporter for CSSErrorReporter { - fn report_error(&self, url: &ServoUrl, location: SourceLocation, error: ContextualParseError) { - if log_enabled!(log::Level::Info) { - info!( - "Url:\t{}\n{}:{} {}", - url.as_str(), - location.line, - location.column, - error - ) - } - - //TODO: report a real filename - let _ = self - .script_chan - .lock() - .unwrap() - .send(ConstellationControlMsg::ReportCSSError( - self.pipelineid, - "".to_owned(), - location.line, - location.column, - error.to_string(), - )); - } -}