diff options
Diffstat (limited to 'components/script/dom/window.rs')
-rw-r--r-- | components/script/dom/window.rs | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index 7eab91db3a4..8fdb7049715 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -7,7 +7,9 @@ use devtools_traits::{ScriptToDevtoolsControlMsg, TimelineMarker, TimelineMarker use dom::bindings::callback::ExceptionHandling; use dom::bindings::cell::DOMRefCell; use dom::bindings::codegen::Bindings::DocumentBinding::{DocumentMethods, DocumentReadyState}; -use dom::bindings::codegen::Bindings::EventHandlerBinding::{EventHandlerNonNull, OnErrorEventHandlerNonNull}; +use dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull; +use dom::bindings::codegen::Bindings::EventHandlerBinding::OnBeforeUnloadEventHandlerNonNull; +use dom::bindings::codegen::Bindings::EventHandlerBinding::OnErrorEventHandlerNonNull; use dom::bindings::codegen::Bindings::FunctionBinding::Function; use dom::bindings::codegen::Bindings::WindowBinding::{ScrollBehavior, ScrollToOptions}; use dom::bindings::codegen::Bindings::WindowBinding::{self, FrameRequestCallback, WindowMethods}; @@ -45,10 +47,10 @@ use libc; use msg::constellation_msg::{LoadData, PanicMsg, PipelineId, SubpageId}; use msg::constellation_msg::{WindowSizeData, WindowSizeType}; use msg::webdriver_msg::{WebDriverJSError, WebDriverJSResult}; -use net_traits::ResourceThreads; use net_traits::bluetooth_thread::BluetoothMethodMsg; use net_traits::image_cache_thread::{ImageCacheChan, ImageCacheThread}; use net_traits::storage_thread::StorageType; +use net_traits::{ResourceThreads, CustomResponseSender}; use num_traits::ToPrimitive; use profile_traits::mem; use profile_traits::time::{ProfilerCategory, TimerMetadata, TimerMetadataFrameType}; @@ -148,6 +150,8 @@ pub struct Window { image_cache_thread: ImageCacheThread, #[ignore_heap_size_of = "channels are hard"] image_cache_chan: ImageCacheChan, + #[ignore_heap_size_of = "channels are hard"] + custom_message_chan: IpcSender<CustomResponseSender>, #[ignore_heap_size_of = "TODO(#6911) newtypes containing unmeasurable types are hard"] compositor: IpcSender<ScriptToCompositorMsg>, browsing_context: MutNullableHeap<JS<BrowsingContext>>, @@ -303,6 +307,10 @@ impl Window { self.image_cache_chan.clone() } + pub fn custom_message_chan(&self) -> IpcSender<CustomResponseSender> { + self.custom_message_chan.clone() + } + pub fn get_next_worker_id(&self) -> WorkerId { let worker_id = self.next_worker_id.get(); let WorkerId(id_num) = worker_id; @@ -585,11 +593,8 @@ impl WindowMethods for Window { // https://html.spec.whatwg.org/multipage/#globaleventhandlers global_event_handlers!(); - // https://html.spec.whatwg.org/multipage/#handler-window-onunload - event_handler!(unload, GetOnunload, SetOnunload); - - // https://html.spec.whatwg.org/multipage/#handler-window-onstorage - event_handler!(storage, GetOnstorage, SetOnstorage); + // https://html.spec.whatwg.org/multipage/#windoweventhandlers + window_event_handlers!(); // https://developer.mozilla.org/en-US/docs/Web/API/Window/screen fn Screen(&self) -> Root<Screen> { @@ -1443,6 +1448,7 @@ impl Window { history_task_source: HistoryTraversalTaskSource, file_task_source: FileReadingTaskSource, image_cache_chan: ImageCacheChan, + custom_message_chan: IpcSender<CustomResponseSender>, compositor: IpcSender<ScriptToCompositorMsg>, image_cache_thread: ImageCacheThread, resource_threads: ResourceThreads, @@ -1480,6 +1486,7 @@ impl Window { history_traversal_task_source: history_task_source, file_reading_task_source: file_task_source, image_cache_chan: image_cache_chan, + custom_message_chan: custom_message_chan, console: Default::default(), crypto: Default::default(), compositor: compositor, |