mirror of
https://github.com/servo/servo.git
synced 2025-07-23 15:23: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)",
|
"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)",
|
"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)",
|
"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 0.0.1",
|
||||||
"malloc_size_of_derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"malloc_size_of_derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"metrics 0.0.1",
|
"metrics 0.0.1",
|
||||||
|
|
|
@ -85,7 +85,6 @@ use net_traits::{Metadata, NetworkError, ReferrerPolicy, ResourceFetchTiming, Re
|
||||||
use offscreen_gl_context::GLLimits;
|
use offscreen_gl_context::GLLimits;
|
||||||
use profile_traits::mem::ProfilerChan as MemProfilerChan;
|
use profile_traits::mem::ProfilerChan as MemProfilerChan;
|
||||||
use profile_traits::time::ProfilerChan as TimeProfilerChan;
|
use profile_traits::time::ProfilerChan as TimeProfilerChan;
|
||||||
use script_layout_interface::reporter::CSSErrorReporter;
|
|
||||||
use script_layout_interface::rpc::LayoutRPC;
|
use script_layout_interface::rpc::LayoutRPC;
|
||||||
use script_layout_interface::OpaqueStyleAndLayoutData;
|
use script_layout_interface::OpaqueStyleAndLayoutData;
|
||||||
use script_traits::DrawAPaintImageResult;
|
use script_traits::DrawAPaintImageResult;
|
||||||
|
@ -455,7 +454,6 @@ unsafe_no_jsmanaged_fields!(Instant);
|
||||||
unsafe_no_jsmanaged_fields!(RelativePos);
|
unsafe_no_jsmanaged_fields!(RelativePos);
|
||||||
unsafe_no_jsmanaged_fields!(OpaqueStyleAndLayoutData);
|
unsafe_no_jsmanaged_fields!(OpaqueStyleAndLayoutData);
|
||||||
unsafe_no_jsmanaged_fields!(PathBuf);
|
unsafe_no_jsmanaged_fields!(PathBuf);
|
||||||
unsafe_no_jsmanaged_fields!(CSSErrorReporter);
|
|
||||||
unsafe_no_jsmanaged_fields!(DrawAPaintImageResult);
|
unsafe_no_jsmanaged_fields!(DrawAPaintImageResult);
|
||||||
unsafe_no_jsmanaged_fields!(DocumentId);
|
unsafe_no_jsmanaged_fields!(DocumentId);
|
||||||
unsafe_no_jsmanaged_fields!(ImageKey);
|
unsafe_no_jsmanaged_fields!(ImageKey);
|
||||||
|
|
|
@ -69,7 +69,7 @@ use base64;
|
||||||
use bluetooth_traits::BluetoothRequest;
|
use bluetooth_traits::BluetoothRequest;
|
||||||
use canvas_traits::webgl::WebGLChan;
|
use canvas_traits::webgl::WebGLChan;
|
||||||
use crossbeam_channel::{unbounded, Sender, TryRecvError};
|
use crossbeam_channel::{unbounded, Sender, TryRecvError};
|
||||||
use cssparser::{Parser, ParserInput};
|
use cssparser::{Parser, ParserInput, SourceLocation};
|
||||||
use devtools_traits::{ScriptToDevtoolsControlMsg, TimelineMarker, TimelineMarkerType};
|
use devtools_traits::{ScriptToDevtoolsControlMsg, TimelineMarker, TimelineMarkerType};
|
||||||
use dom_struct::dom_struct;
|
use dom_struct::dom_struct;
|
||||||
use embedder_traits::EmbedderMsg;
|
use embedder_traits::EmbedderMsg;
|
||||||
|
@ -94,7 +94,6 @@ use profile_traits::ipc as ProfiledIpc;
|
||||||
use profile_traits::mem::ProfilerChan as MemProfilerChan;
|
use profile_traits::mem::ProfilerChan as MemProfilerChan;
|
||||||
use profile_traits::time::ProfilerChan as TimeProfilerChan;
|
use profile_traits::time::ProfilerChan as TimeProfilerChan;
|
||||||
use script_layout_interface::message::{Msg, QueryMsg, Reflow, ReflowGoal, ScriptReflow};
|
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::{ContentBoxResponse, ContentBoxesResponse, LayoutRPC};
|
||||||
use script_layout_interface::rpc::{
|
use script_layout_interface::rpc::{
|
||||||
NodeScrollIdResponse, ResolvedStyleResponse, TextIndexResponse,
|
NodeScrollIdResponse, ResolvedStyleResponse, TextIndexResponse,
|
||||||
|
@ -120,7 +119,7 @@ use std::mem;
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
use std::sync::atomic::Ordering;
|
use std::sync::atomic::Ordering;
|
||||||
use std::sync::{Arc, Mutex};
|
use std::sync::{Arc, Mutex};
|
||||||
use style::error_reporting::ParseErrorReporter;
|
use style::error_reporting::{ContextualParseError, ParseErrorReporter};
|
||||||
use style::media_queries;
|
use style::media_queries;
|
||||||
use style::parser::ParserContext as CssParserContext;
|
use style::parser::ParserContext as CssParserContext;
|
||||||
use style::properties::{ComputedValues, PropertyId};
|
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"
|
html5ever = "0.22"
|
||||||
ipc-channel = "0.11"
|
ipc-channel = "0.11"
|
||||||
libc = "0.2"
|
libc = "0.2"
|
||||||
log = "0.4"
|
|
||||||
time = "0.1.17"
|
time = "0.1.17"
|
||||||
malloc_size_of = { path = "../malloc_size_of" }
|
malloc_size_of = { path = "../malloc_size_of" }
|
||||||
malloc_size_of_derive = "0.1"
|
malloc_size_of_derive = "0.1"
|
||||||
|
|
|
@ -11,12 +11,9 @@
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate html5ever;
|
extern crate html5ever;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate log;
|
|
||||||
#[macro_use]
|
|
||||||
extern crate malloc_size_of_derive;
|
extern crate malloc_size_of_derive;
|
||||||
|
|
||||||
pub mod message;
|
pub mod message;
|
||||||
pub mod reporter;
|
|
||||||
pub mod rpc;
|
pub mod rpc;
|
||||||
pub mod wrapper_traits;
|
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