mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +01:00
Move CSSReporter from script_layout_interface to script
This commit is contained in:
parent
17ee21bf9d
commit
64755705fb
6 changed files with 40 additions and 58 deletions
1
Cargo.lock
generated
1
Cargo.lock
generated
|
@ -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",
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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<Mutex<IpcSender<ConstellationControlMsg>>>,
|
||||
}
|
||||
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(),
|
||||
));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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<Mutex<IpcSender<ConstellationControlMsg>>>,
|
||||
}
|
||||
|
||||
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(),
|
||||
));
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue