diff options
Diffstat (limited to 'components/script')
-rw-r--r-- | components/script/dom/bindings/trace.rs | 3 | ||||
-rw-r--r-- | components/script/dom/document.rs | 2 | ||||
-rw-r--r-- | components/script/dom/window.rs | 3 | ||||
-rw-r--r-- | components/script/script_thread.rs | 23 |
4 files changed, 20 insertions, 11 deletions
diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs index aec55e62134..31dcc99daaa 100644 --- a/components/script/dom/bindings/trace.rs +++ b/components/script/dom/bindings/trace.rs @@ -33,6 +33,7 @@ use canvas_traits::WebGLError; use canvas_traits::{CanvasGradientStop, LinearGradientStyle, RadialGradientStyle}; use canvas_traits::{CompositionOrBlending, LineCapStyle, LineJoinStyle, RepetitionStyle}; use cssparser::RGBA; +use devtools_traits::CSSError; use devtools_traits::WorkerId; use dom::bindings::js::{JS, Root}; use dom::bindings::refcounted::Trusted; @@ -98,6 +99,8 @@ pub trait JSTraceable { fn trace(&self, trc: *mut JSTracer); } +no_jsmanaged_fields!(CSSError); + no_jsmanaged_fields!(EncodingRef); no_jsmanaged_fields!(Reflector); diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index c4edaa7736c..bfc6e8b5ff2 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -2,6 +2,7 @@ * 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 devtools_traits::CSSError; use document_loader::{DocumentLoader, LoadType}; use dom::attr::{Attr, AttrValue}; use dom::bindings::cell::DOMRefCell; @@ -88,7 +89,6 @@ use net_traits::ControlMsg::{GetCookiesForUrl, SetCookiesForUrl}; use net_traits::CookieSource::NonHTTP; use net_traits::{AsyncResponseTarget, PendingAsyncLoad}; use num::ToPrimitive; -use script_thread::CSSError; use script_thread::{MainThreadScriptMsg, Runnable}; use script_traits::{ScriptMsg as ConstellationMsg, ScriptToCompositorMsg}; use script_traits::{TouchEventType, TouchId, UntrustedNodeAddress}; diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index 8406583ed63..579f860bc5a 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -1370,6 +1370,9 @@ impl Window { WindowBinding::Wrap(runtime.cx(), win) } + pub fn live_devtools_updates(&self) -> bool { + return self.devtools_wants_updates.get(); + } } fn should_move_clip_rect(clip_rect: Rect<Au>, new_viewport: Rect<f32>) -> bool { diff --git a/components/script/script_thread.rs b/components/script/script_thread.rs index f0ed7ac22d6..e1e14af9311 100644 --- a/components/script/script_thread.rs +++ b/components/script/script_thread.rs @@ -18,6 +18,7 @@ //! loop. use devtools; +use devtools_traits::CSSError; use devtools_traits::{DevtoolScriptControlMsg, DevtoolsPageInfo}; use devtools_traits::{ScriptToDevtoolsControlMsg, WorkerId}; use document_loader::DocumentLoader; @@ -702,14 +703,6 @@ pub unsafe extern "C" fn shadow_check_callback(_cx: *mut JSContext, DOMProxyShadowsResult::ShadowCheckFailed } -#[derive(JSTraceable, HeapSizeOf)] -pub struct CSSError { - filename: String, - line: usize, - column: usize, - msg: String -} - impl ScriptThread { pub fn page_fetch_complete(id: PipelineId, subpage: Option<SubpageId>, metadata: Metadata) -> Option<ParserRoot> { @@ -2180,7 +2173,7 @@ impl ScriptThread { } fn handle_css_error_reporting(&self, pipeline_id: PipelineId, filename: String, - line: usize, column: usize, msg: String) { + line: u32, column: u32, msg: String) { let parent_page = self.root_page(); let page = match parent_page.find(pipeline_id) { Some(page) => page, @@ -2194,7 +2187,17 @@ impl ScriptThread { column: column, msg: msg }; - document.report_css_error(css_error); + + document.report_css_error(css_error.clone()); + let window = page.window(); + + if window.live_devtools_updates() { + if let Some(ref chan) = self.devtools_chan { + chan.send(ScriptToDevtoolsControlMsg::ReportCSSError( + pipeline_id, + css_error)).unwrap(); + } + } } } |