mirror of
https://github.com/servo/servo.git
synced 2025-10-04 02:29:12 +01:00
These will be a single method in the upcoming `WebView` delegate, so it makes sense to also combine the internal message to match this. In addition, since `LoadStatus` is now exposed to the API if there is ever the need to add more statuses or to move to an event-based version, the API is already set up for this. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
172 lines
8.6 KiB
Rust
172 lines
8.6 KiB
Rust
/* 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/. */
|
|
|
|
/// Log an event from winit ([winit::event::Event]) at trace level.
|
|
/// - To disable tracing: RUST_LOG='servoshell<winit@=off'
|
|
/// - To enable tracing: RUST_LOG='servoshell<winit@'
|
|
/// - Recommended filters when tracing is enabled:
|
|
/// - servoshell<winit@DeviceEvent=off
|
|
/// - servoshell<winit@MainEventsCleared=off
|
|
/// - servoshell<winit@NewEvents(WaitCancelled)=off
|
|
/// - servoshell<winit@RedrawEventsCleared=off
|
|
/// - servoshell<winit@RedrawRequested=off
|
|
/// - servoshell<winit@UserEvent(WakerEvent)=off
|
|
/// - servoshell<winit@WindowEvent(AxisMotion)=off
|
|
/// - servoshell<winit@WindowEvent(CursorMoved)=off
|
|
macro_rules! trace_winit_event {
|
|
// This macro only exists to put the docs in the same file as the target prefix,
|
|
// so the macro definition is always the same.
|
|
($event:expr, $($rest:tt)+) => {
|
|
::log::trace!(target: $crate::desktop::tracing::LogTarget::log_target(&$event), $($rest)+)
|
|
};
|
|
}
|
|
|
|
/// Log an event from servo ([servo::EmbedderMsg]) at trace level.
|
|
/// - To disable tracing: RUST_LOG='servoshell<servo@=off'
|
|
/// - To enable tracing: RUST_LOG='servoshell<servo@'
|
|
/// - Recommended filters when tracing is enabled:
|
|
/// - servoshell<servo@EventDelivered=off
|
|
/// - servoshell<servo@ReadyToPresent=off
|
|
macro_rules! trace_embedder_msg {
|
|
// This macro only exists to put the docs in the same file as the target prefix,
|
|
// so the macro definition is always the same.
|
|
($event:expr, $($rest:tt)+) => {
|
|
::log::trace!(target: $crate::desktop::tracing::LogTarget::log_target(&$event), $($rest)+)
|
|
};
|
|
}
|
|
|
|
pub(crate) use {trace_embedder_msg, trace_winit_event};
|
|
|
|
/// Get the log target for an event, as a static string.
|
|
pub(crate) trait LogTarget {
|
|
fn log_target(&self) -> &'static str;
|
|
}
|
|
|
|
mod from_winit {
|
|
use super::LogTarget;
|
|
use crate::desktop::events_loop::WakerEvent;
|
|
|
|
macro_rules! target {
|
|
($($name:literal)+) => {
|
|
concat!("servoshell<winit@", $($name),+)
|
|
};
|
|
}
|
|
|
|
impl LogTarget for winit::event::Event<WakerEvent> {
|
|
fn log_target(&self) -> &'static str {
|
|
use winit::event::StartCause;
|
|
match self {
|
|
Self::NewEvents(start_cause) => match start_cause {
|
|
StartCause::ResumeTimeReached { .. } => target!("NewEvents(ResumeTimeReached)"),
|
|
StartCause::WaitCancelled { .. } => target!("NewEvents(WaitCancelled)"),
|
|
StartCause::Poll => target!("NewEvents(Poll)"),
|
|
StartCause::Init => target!("NewEvents(Init)"),
|
|
},
|
|
Self::WindowEvent { event, .. } => event.log_target(),
|
|
Self::DeviceEvent { .. } => target!("DeviceEvent"),
|
|
Self::UserEvent(WakerEvent) => target!("UserEvent(WakerEvent)"),
|
|
Self::Suspended => target!("Suspended"),
|
|
Self::Resumed => target!("Resumed"),
|
|
Self::AboutToWait => target!("AboutToWait"),
|
|
Self::LoopExiting => target!("LoopExiting"),
|
|
Self::MemoryWarning => target!("MemoryWarning"),
|
|
}
|
|
}
|
|
}
|
|
|
|
impl LogTarget for winit::event::WindowEvent {
|
|
fn log_target(&self) -> &'static str {
|
|
macro_rules! target_variant {
|
|
($name:literal) => {
|
|
target!("WindowEvent(" $name ")")
|
|
};
|
|
}
|
|
match self {
|
|
Self::ActivationTokenDone { .. } => target!("ActivationTokenDone"),
|
|
Self::Resized(..) => target_variant!("Resized"),
|
|
Self::Moved(..) => target_variant!("Moved"),
|
|
Self::CloseRequested => target_variant!("CloseRequested"),
|
|
Self::Destroyed => target_variant!("Destroyed"),
|
|
Self::DroppedFile(..) => target_variant!("DroppedFile"),
|
|
Self::HoveredFile(..) => target_variant!("HoveredFile"),
|
|
Self::HoveredFileCancelled => target_variant!("HoveredFileCancelled"),
|
|
Self::Focused(..) => target_variant!("Focused"),
|
|
Self::KeyboardInput { .. } => target_variant!("KeyboardInput"),
|
|
Self::ModifiersChanged(..) => target_variant!("ModifiersChanged"),
|
|
Self::Ime(..) => target_variant!("Ime"),
|
|
Self::CursorMoved { .. } => target_variant!("CursorMoved"),
|
|
Self::CursorEntered { .. } => target_variant!("CursorEntered"),
|
|
Self::CursorLeft { .. } => target_variant!("CursorLeft"),
|
|
Self::MouseWheel { .. } => target_variant!("MouseWheel"),
|
|
Self::MouseInput { .. } => target_variant!("MouseInput"),
|
|
Self::PanGesture { .. } => target_variant!("PanGesture"),
|
|
Self::PinchGesture { .. } => target_variant!("PinchGesture"),
|
|
Self::DoubleTapGesture { .. } => target_variant!("DoubleTapGesture"),
|
|
Self::RotationGesture { .. } => target_variant!("RotationGesture"),
|
|
Self::TouchpadPressure { .. } => target_variant!("TouchpadPressure"),
|
|
Self::AxisMotion { .. } => target_variant!("AxisMotion"),
|
|
Self::Touch(..) => target_variant!("Touch"),
|
|
Self::ScaleFactorChanged { .. } => target_variant!("ScaleFactorChanged"),
|
|
Self::ThemeChanged(..) => target_variant!("ThemeChanged"),
|
|
Self::Occluded(..) => target_variant!("Occluded"),
|
|
Self::RedrawRequested => target!("RedrawRequested"),
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
mod from_servo {
|
|
use super::LogTarget;
|
|
|
|
macro_rules! target {
|
|
($($name:literal)+) => {
|
|
concat!("servoshell<servo@", $($name),+)
|
|
};
|
|
}
|
|
|
|
impl LogTarget for servo::EmbedderMsg {
|
|
fn log_target(&self) -> &'static str {
|
|
match self {
|
|
Self::Status(..) => target!("Status"),
|
|
Self::ChangePageTitle(..) => target!("ChangePageTitle"),
|
|
Self::MoveTo(..) => target!("MoveTo"),
|
|
Self::ResizeTo(..) => target!("ResizeTo"),
|
|
Self::Prompt(..) => target!("Prompt"),
|
|
Self::ShowContextMenu(..) => target!("ShowContextMenu"),
|
|
Self::AllowNavigationRequest(..) => target!("AllowNavigationRequest"),
|
|
Self::AllowOpeningWebView(..) => target!("AllowOpeningWebView"),
|
|
Self::WebViewOpened(..) => target!("WebViewOpened"),
|
|
Self::WebViewClosed(..) => target!("WebViewClosed"),
|
|
Self::WebViewFocused(..) => target!("WebViewFocused"),
|
|
Self::WebViewBlurred => target!("WebViewBlurred"),
|
|
Self::WebResourceRequested(..) => target!("WebResourceRequested"),
|
|
Self::AllowUnload(..) => target!("AllowUnload"),
|
|
Self::Keyboard(..) => target!("Keyboard"),
|
|
Self::ClearClipboardContents(..) => target!("ClearClipboardContents"),
|
|
Self::GetClipboardContents(..) => target!("GetClipboardContents"),
|
|
Self::SetClipboardContents(..) => target!("SetClipboardContents"),
|
|
Self::SetCursor(..) => target!("SetCursor"),
|
|
Self::NewFavicon(..) => target!("NewFavicon"),
|
|
Self::HistoryChanged(..) => target!("HistoryChanged"),
|
|
Self::SetFullscreenState(..) => target!("SetFullscreenState"),
|
|
Self::NotifyLoadStatusChanged(..) => target!("NotifyLoadStatusChanged"),
|
|
Self::Panic(..) => target!("Panic"),
|
|
Self::GetSelectedBluetoothDevice(..) => target!("GetSelectedBluetoothDevice"),
|
|
Self::SelectFiles(..) => target!("SelectFiles"),
|
|
Self::PromptPermission(..) => target!("PromptPermission"),
|
|
Self::ShowIME(..) => target!("ShowIME"),
|
|
Self::HideIME(..) => target!("HideIME"),
|
|
Self::Shutdown => target!("Shutdown"),
|
|
Self::ReportProfile(..) => target!("ReportProfile"),
|
|
Self::MediaSessionEvent(..) => target!("MediaSessionEvent"),
|
|
Self::OnDevtoolsStarted(..) => target!("OnDevtoolsStarted"),
|
|
Self::RequestDevtoolsConnection(..) => target!("RequestDevtoolsConnection"),
|
|
Self::ReadyToPresent(..) => target!("ReadyToPresent"),
|
|
Self::EventDelivered(..) => target!("EventDelivered"),
|
|
Self::PlayGamepadHapticEffect(..) => target!("PlayGamepadHapticEffect"),
|
|
Self::StopGamepadHapticEffect(..) => target!("StopGamepadHapticEffect"),
|
|
}
|
|
}
|
|
}
|
|
}
|