diff options
Diffstat (limited to 'components/script')
-rw-r--r-- | components/script/dom/console.rs | 65 | ||||
-rw-r--r-- | components/script/dom/webidls/Console.webidl | 6 | ||||
-rw-r--r-- | components/script/dom/webidls/Window.webidl | 1 | ||||
-rw-r--r-- | components/script/dom/webidls/WorkerGlobalScope.webidl | 7 | ||||
-rw-r--r-- | components/script/dom/window.rs | 9 | ||||
-rw-r--r-- | components/script/dom/workerglobalscope.rs | 9 |
6 files changed, 27 insertions, 70 deletions
diff --git a/components/script/dom/console.rs b/components/script/dom/console.rs index 252cf2435b8..37d549befd9 100644 --- a/components/script/dom/console.rs +++ b/components/script/dom/console.rs @@ -4,38 +4,17 @@ use devtools_traits::{ConsoleMessage, LogLevel, ScriptToDevtoolsControlMsg}; use dom::bindings::cell::DOMRefCell; -use dom::bindings::codegen::Bindings::ConsoleBinding; -use dom::bindings::codegen::Bindings::ConsoleBinding::ConsoleMethods; use dom::bindings::global::GlobalRef; -use dom::bindings::js::Root; -use dom::bindings::reflector::{Reflectable, Reflector, reflect_dom_object}; use dom::bindings::str::DOMString; use std::collections::HashMap; use std::collections::hash_map::Entry; use time::{Timespec, get_time}; // https://developer.mozilla.org/en-US/docs/Web/API/Console -#[dom_struct] -pub struct Console { - reflector_: Reflector, -} +pub struct Console(()); impl Console { - fn new_inherited() -> Console { - Console { - reflector_: Reflector::new(), - } - } - - pub fn new(global: GlobalRef) -> Root<Console> { - reflect_dom_object(box Console::new_inherited(), - global, - ConsoleBinding::Wrap) - } - - fn send_to_devtools(&self, level: LogLevel, message: DOMString) { - let global = self.global(); - let global = global.r(); + fn send_to_devtools(global: GlobalRef, level: LogLevel, message: DOMString) { if let Some(chan) = global.devtools_chan() { let console_message = prepare_message(level, message); let devtools_message = ScriptToDevtoolsControlMsg::ConsoleAPI( @@ -47,75 +26,73 @@ impl Console { } } -impl ConsoleMethods for Console { +impl Console { // https://developer.mozilla.org/en-US/docs/Web/API/Console/log - fn Log(&self, messages: Vec<DOMString>) { + pub fn Log(global: GlobalRef, messages: Vec<DOMString>) { for message in messages { println!("{}", message); - self.send_to_devtools(LogLevel::Log, message); + Self::send_to_devtools(global, LogLevel::Log, message); } } // https://developer.mozilla.org/en-US/docs/Web/API/Console - fn Debug(&self, messages: Vec<DOMString>) { + pub fn Debug(global: GlobalRef, messages: Vec<DOMString>) { for message in messages { println!("{}", message); - self.send_to_devtools(LogLevel::Debug, message); + Self::send_to_devtools(global, LogLevel::Debug, message); } } // https://developer.mozilla.org/en-US/docs/Web/API/Console/info - fn Info(&self, messages: Vec<DOMString>) { + pub fn Info(global: GlobalRef, messages: Vec<DOMString>) { for message in messages { println!("{}", message); - self.send_to_devtools(LogLevel::Info, message); + Self::send_to_devtools(global, LogLevel::Info, message); } } // https://developer.mozilla.org/en-US/docs/Web/API/Console/warn - fn Warn(&self, messages: Vec<DOMString>) { + pub fn Warn(global: GlobalRef, messages: Vec<DOMString>) { for message in messages { println!("{}", message); - self.send_to_devtools(LogLevel::Warn, message); + Self::send_to_devtools(global, LogLevel::Warn, message); } } // https://developer.mozilla.org/en-US/docs/Web/API/Console/error - fn Error(&self, messages: Vec<DOMString>) { + pub fn Error(global: GlobalRef, messages: Vec<DOMString>) { for message in messages { println!("{}", message); - self.send_to_devtools(LogLevel::Error, message); + Self::send_to_devtools(global, LogLevel::Error, message); } } // https://developer.mozilla.org/en-US/docs/Web/API/Console/assert - fn Assert(&self, condition: bool, message: Option<DOMString>) { + pub fn Assert(global: GlobalRef, condition: bool, message: Option<DOMString>) { if !condition { let message = message.unwrap_or_else(|| DOMString::from("no message")); println!("Assertion failed: {}", message); - self.send_to_devtools(LogLevel::Error, message); + Self::send_to_devtools(global, LogLevel::Error, message); } } // https://developer.mozilla.org/en-US/docs/Web/API/Console/time - fn Time(&self, label: DOMString) { - let global = self.global(); - if let Ok(()) = global.r().console_timers().time(label.clone()) { + pub fn Time(global: GlobalRef, label: DOMString) { + if let Ok(()) = global.console_timers().time(label.clone()) { let message = DOMString::from(format!("{}: timer started", label)); println!("{}", message); - self.send_to_devtools(LogLevel::Log, message); + Self::send_to_devtools(global, LogLevel::Log, message); } } // https://developer.mozilla.org/en-US/docs/Web/API/Console/timeEnd - fn TimeEnd(&self, label: DOMString) { - let global = self.global(); - if let Ok(delta) = global.r().console_timers().time_end(&label) { + pub fn TimeEnd(global: GlobalRef, label: DOMString) { + if let Ok(delta) = global.console_timers().time_end(&label) { let message = DOMString::from( format!("{}: {}ms", label, delta) ); println!("{}", message); - self.send_to_devtools(LogLevel::Log, message); + Self::send_to_devtools(global, LogLevel::Log, message); }; } } diff --git a/components/script/dom/webidls/Console.webidl b/components/script/dom/webidls/Console.webidl index 09273db78b8..90f9bb9f58e 100644 --- a/components/script/dom/webidls/Console.webidl +++ b/components/script/dom/webidls/Console.webidl @@ -9,8 +9,10 @@ * © Copyright 2014 Mozilla Foundation. */ -[Exposed=(Window,Worker)] -interface Console { +[ClassString="Console", + Exposed=(Window,Worker), + ProtoObjectHack] +namespace console { // These should be DOMString message, DOMString message2, ... void log(DOMString... messages); void debug(DOMString... messages); diff --git a/components/script/dom/webidls/Window.webidl b/components/script/dom/webidls/Window.webidl index dcf79a61c7e..dbe73ca4831 100644 --- a/components/script/dom/webidls/Window.webidl +++ b/components/script/dom/webidls/Window.webidl @@ -161,7 +161,6 @@ partial interface Window { // Proprietary extensions. partial interface Window { - readonly attribute Console console; void debug(DOMString arg); void gc(); void trap(); diff --git a/components/script/dom/webidls/WorkerGlobalScope.webidl b/components/script/dom/webidls/WorkerGlobalScope.webidl index ec65bcb09a6..d7c403e5176 100644 --- a/components/script/dom/webidls/WorkerGlobalScope.webidl +++ b/components/script/dom/webidls/WorkerGlobalScope.webidl @@ -24,10 +24,3 @@ partial interface WorkerGlobalScope { // not obsolete }; WorkerGlobalScope implements WindowTimers; WorkerGlobalScope implements WindowBase64; - -// Proprietary -[Exposed=Worker] -partial interface WorkerGlobalScope { - [Replaceable] - readonly attribute Console console; -}; diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index 5d57cd679af..fa2bd072910 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -25,7 +25,7 @@ use dom::bindings::str::DOMString; use dom::bindings::structuredclone::StructuredCloneData; use dom::bindings::utils::{GlobalStaticData, WindowProxyHandler}; use dom::browsingcontext::BrowsingContext; -use dom::console::{Console, TimerSet}; +use dom::console::TimerSet; use dom::crypto::Crypto; use dom::cssstyledeclaration::{CSSModificationAccess, CSSStyleDeclaration}; use dom::document::Document; @@ -157,7 +157,6 @@ pub struct Window { history_traversal_task_source: HistoryTraversalTaskSource, #[ignore_heap_size_of = "task sources are hard"] file_reading_task_source: FileReadingTaskSource, - console: MutNullableHeap<JS<Console>>, crypto: MutNullableHeap<JS<Crypto>>, navigator: MutNullableHeap<JS<Navigator>>, #[ignore_heap_size_of = "channels are hard"] @@ -511,11 +510,6 @@ impl WindowMethods for Window { self.local_storage.or_init(|| Storage::new(&GlobalRef::Window(self), StorageType::Local)) } - // https://developer.mozilla.org/en-US/docs/Web/API/Console - fn Console(&self) -> Root<Console> { - self.console.or_init(|| Console::new(GlobalRef::Window(self))) - } - // https://dvcs.w3.org/hg/webcrypto-api/raw-file/tip/spec/Overview.html#dfn-GlobalCrypto fn Crypto(&self) -> Root<Crypto> { self.crypto.or_init(|| Crypto::new(GlobalRef::Window(self))) @@ -1704,7 +1698,6 @@ impl Window { history_traversal_task_source: history_task_source, file_reading_task_source: file_task_source, image_cache_chan: image_cache_chan, - console: Default::default(), crypto: Default::default(), navigator: Default::default(), image_cache_thread: image_cache_thread, diff --git a/components/script/dom/workerglobalscope.rs b/components/script/dom/workerglobalscope.rs index 78fea9b50c8..2bd8a0b083b 100644 --- a/components/script/dom/workerglobalscope.rs +++ b/components/script/dom/workerglobalscope.rs @@ -11,7 +11,7 @@ use dom::bindings::inheritance::Castable; use dom::bindings::js::{JS, MutNullableHeap, Root}; use dom::bindings::reflector::Reflectable; use dom::bindings::str::DOMString; -use dom::console::{Console, TimerSet}; +use dom::console::TimerSet; use dom::crypto::Crypto; use dom::dedicatedworkerglobalscope::DedicatedWorkerGlobalScope; use dom::eventtarget::EventTarget; @@ -79,7 +79,6 @@ pub struct WorkerGlobalScope { resource_threads: ResourceThreads, location: MutNullableHeap<JS<WorkerLocation>>, navigator: MutNullableHeap<JS<WorkerNavigator>>, - console: MutNullableHeap<JS<Console>>, crypto: MutNullableHeap<JS<Crypto>>, timers: OneshotTimers, @@ -132,7 +131,6 @@ impl WorkerGlobalScope { resource_threads: init.resource_threads, location: Default::default(), navigator: Default::default(), - console: Default::default(), crypto: Default::default(), timers: OneshotTimers::new(timer_event_chan, init.scheduler_chan.clone()), mem_profiler_chan: init.mem_profiler_chan, @@ -303,11 +301,6 @@ impl WorkerGlobalScopeMethods for WorkerGlobalScope { self.navigator.or_init(|| WorkerNavigator::new(self)) } - // https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope/console - fn Console(&self) -> Root<Console> { - self.console.or_init(|| Console::new(GlobalRef::Worker(self))) - } - // https://html.spec.whatwg.org/multipage/#dfn-Crypto fn Crypto(&self) -> Root<Crypto> { self.crypto.or_init(|| Crypto::new(GlobalRef::Worker(self))) |