web: Switch from log to tracing

This commit is contained in:
Nathan Adams 2023-01-04 12:33:10 +01:00
parent b27a1045a1
commit eec68365a6
8 changed files with 29 additions and 27 deletions

3
Cargo.lock generated
View File

@ -3615,6 +3615,7 @@ dependencies = [
"serde", "serde",
"serde-wasm-bindgen", "serde-wasm-bindgen",
"thiserror", "thiserror",
"tracing",
"url", "url",
"wasm-bindgen", "wasm-bindgen",
"wasm-bindgen-futures", "wasm-bindgen-futures",
@ -3626,7 +3627,7 @@ name = "ruffle_web_common"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"js-sys", "js-sys",
"log", "tracing",
"wasm-bindgen", "wasm-bindgen",
"web-sys", "web-sys",
] ]

View File

@ -31,6 +31,7 @@ console_log = { version = "0.2", optional = true }
generational-arena = "0.2.8" generational-arena = "0.2.8"
js-sys = "0.3.60" js-sys = "0.3.60"
log = { version = "0.4", features = ["serde"] } log = { version = "0.4", features = ["serde"] }
tracing = { version = "0.1.37", features = ["log"] }
ruffle_render_canvas = { path = "../render/canvas", optional = true } ruffle_render_canvas = { path = "../render/canvas", optional = true }
ruffle_web_common = { path = "common" } ruffle_web_common = { path = "common" }
ruffle_render_webgl = { path = "../render/webgl", optional = true } ruffle_render_webgl = { path = "../render/webgl", optional = true }

View File

@ -7,7 +7,7 @@ license = "MIT OR Apache-2.0"
[dependencies] [dependencies]
js-sys = "0.3.60" js-sys = "0.3.60"
log = "0.4" tracing = "0.1.37"
wasm-bindgen = "=0.2.83" wasm-bindgen = "=0.2.83"
[dependencies.web-sys] [dependencies.web-sys]

View File

@ -30,7 +30,7 @@ impl<T> JsResult<T> for Result<T, JsValue> {
#[inline] #[inline]
fn warn_on_error(&self) { fn warn_on_error(&self) {
if let Err(value) = self { if let Err(value) = self {
log::warn!("Unexpected JavaScript error: {:?}", value); tracing::warn!("Unexpected JavaScript error: {:?}", value);
} }
} }

View File

@ -470,7 +470,7 @@ impl Ruffle {
if let Ok(audio) = audio::WebAudioBackend::new() { if let Ok(audio) = audio::WebAudioBackend::new() {
builder = builder.with_audio(audio); builder = builder.with_audio(audio);
} else { } else {
log::error!("Unable to create audio backend. No audio will be played."); tracing::error!("Unable to create audio backend. No audio will be played.");
} }
builder = builder.with_navigator(navigator::WebNavigatorBackend::new( builder = builder.with_navigator(navigator::WebNavigatorBackend::new(
allow_script_access, allow_script_access,
@ -483,7 +483,7 @@ impl Ruffle {
builder = builder.with_storage(storage::LocalStorageBackend::new(s)); builder = builder.with_storage(storage::LocalStorageBackend::new(s));
} }
err => { err => {
log::warn!("Unable to use localStorage: {:?}\nData will not save.", err); tracing::warn!("Unable to use localStorage: {:?}\nData will not save.", err);
} }
}; };
@ -830,7 +830,7 @@ impl Ruffle {
.map_err(RuffleInstanceError::from) .map_err(RuffleInstanceError::from)
.and_then(std::convert::identity); .and_then(std::convert::identity);
if let Err(e) = &ret { if let Err(e) = &ret {
log::error!("{}", e); tracing::error!("{}", e);
} }
ret ret
} }
@ -853,7 +853,7 @@ impl Ruffle {
.map_err(RuffleInstanceError::from) .map_err(RuffleInstanceError::from)
.and_then(std::convert::identity); .and_then(std::convert::identity);
if let Err(e) = &ret { if let Err(e) = &ret {
log::error!("{}", e); tracing::error!("{}", e);
} }
ret ret
} }
@ -882,7 +882,7 @@ impl Ruffle {
.map_err(RuffleInstanceError::from) .map_err(RuffleInstanceError::from)
.and_then(std::convert::identity); .and_then(std::convert::identity);
if let Err(e) = &ret { if let Err(e) = &ret {
log::error!("{}", e); tracing::error!("{}", e);
} }
ret ret
} }
@ -911,7 +911,7 @@ impl Ruffle {
.map_err(RuffleInstanceError::from) .map_err(RuffleInstanceError::from)
.and_then(std::convert::identity); .and_then(std::convert::identity);
if let Err(e) = &ret { if let Err(e) = &ret {
log::error!("{}", e); tracing::error!("{}", e);
} }
ret ret
} }
@ -1027,7 +1027,7 @@ impl RuffleInstance {
.map(|core| f(&core)) .map(|core| f(&core))
.map_err(|_| RuffleInstanceError::TryLockError); .map_err(|_| RuffleInstanceError::TryLockError);
if let Err(e) = &ret { if let Err(e) = &ret {
log::error!("{}", e); tracing::error!("{}", e);
} }
ret ret
} }
@ -1042,7 +1042,7 @@ impl RuffleInstance {
.map(|mut core| f(&mut core)) .map(|mut core| f(&mut core))
.map_err(|_| RuffleInstanceError::TryLockError); .map_err(|_| RuffleInstanceError::TryLockError);
if let Err(e) = &ret { if let Err(e) = &ret {
log::error!("{}", e); tracing::error!("{}", e);
} }
ret ret
} }
@ -1227,7 +1227,7 @@ async fn create_renderer(
.and_then(|window| js_sys::Reflect::has(&window.navigator(), &JsValue::from_str("gpu"))) .and_then(|window| js_sys::Reflect::has(&window.navigator(), &JsValue::from_str("gpu")))
.unwrap_or_default() .unwrap_or_default()
{ {
log::info!("Creating wgpu webgpu renderer..."); tracing::info!("Creating wgpu webgpu renderer...");
let canvas: HtmlCanvasElement = document let canvas: HtmlCanvasElement = document
.create_element("canvas") .create_element("canvas")
.into_js_result()? .into_js_result()?
@ -1235,7 +1235,7 @@ async fn create_renderer(
.map_err(|_| "Expected HtmlCanvasElement")?; .map_err(|_| "Expected HtmlCanvasElement")?;
let sample_count = if ruffle_web_common::is_mobile_or_tablet() { let sample_count = if ruffle_web_common::is_mobile_or_tablet() {
log::info!("Running on a mobile device; defaulting to no MSAA"); tracing::info!("Running on a mobile device; defaulting to no MSAA");
1 1
} else { } else {
4 4
@ -1247,13 +1247,13 @@ async fn create_renderer(
Ok(renderer) => { Ok(renderer) => {
return Ok((builder.with_renderer(renderer), canvas)); return Ok((builder.with_renderer(renderer), canvas));
} }
Err(error) => log::error!("Error creating wgpu webgpu renderer: {}", error), Err(error) => tracing::error!("Error creating wgpu webgpu renderer: {}", error),
} }
} }
} }
#[cfg(all(feature = "wgpu-webgl", target_family = "wasm"))] #[cfg(all(feature = "wgpu-webgl", target_family = "wasm"))]
{ {
log::info!("Creating wgpu webgl renderer..."); tracing::info!("Creating wgpu webgl renderer...");
let canvas: HtmlCanvasElement = document let canvas: HtmlCanvasElement = document
.create_element("canvas") .create_element("canvas")
.into_js_result()? .into_js_result()?
@ -1261,7 +1261,7 @@ async fn create_renderer(
.map_err(|_| "Expected HtmlCanvasElement")?; .map_err(|_| "Expected HtmlCanvasElement")?;
let sample_count = if ruffle_web_common::is_mobile_or_tablet() { let sample_count = if ruffle_web_common::is_mobile_or_tablet() {
log::info!("Running on a mobile device; defaulting to no MSAA"); tracing::info!("Running on a mobile device; defaulting to no MSAA");
1 1
} else { } else {
4 4
@ -1273,7 +1273,7 @@ async fn create_renderer(
Ok(renderer) => { Ok(renderer) => {
return Ok((builder.with_renderer(renderer), canvas)); return Ok((builder.with_renderer(renderer), canvas));
} }
Err(error) => log::error!("Error creating wgpu webgl renderer: {}", error), Err(error) => tracing::error!("Error creating wgpu webgl renderer: {}", error),
} }
} }
@ -1282,7 +1282,7 @@ async fn create_renderer(
// with `getContext`. // with `getContext`.
#[cfg(feature = "webgl")] #[cfg(feature = "webgl")]
{ {
log::info!("Creating WebGL renderer..."); tracing::info!("Creating WebGL renderer...");
let canvas: HtmlCanvasElement = document let canvas: HtmlCanvasElement = document
.create_element("canvas") .create_element("canvas")
.into_js_result()? .into_js_result()?
@ -1292,13 +1292,13 @@ async fn create_renderer(
Ok(renderer) => { Ok(renderer) => {
return Ok((builder.with_renderer(renderer), canvas)); return Ok((builder.with_renderer(renderer), canvas));
} }
Err(error) => log::error!("Error creating WebGL renderer: {}", error), Err(error) => tracing::error!("Error creating WebGL renderer: {}", error),
} }
} }
#[cfg(feature = "canvas")] #[cfg(feature = "canvas")]
{ {
log::info!("Falling back to Canvas renderer..."); tracing::info!("Falling back to Canvas renderer...");
let canvas: HtmlCanvasElement = document let canvas: HtmlCanvasElement = document
.create_element("canvas") .create_element("canvas")
.into_js_result()? .into_js_result()?
@ -1308,7 +1308,7 @@ async fn create_renderer(
Ok(renderer) => { Ok(renderer) => {
return Ok((builder.with_renderer(renderer), canvas)); return Ok((builder.with_renderer(renderer), canvas));
} }
Err(error) => log::error!("Error creating canvas renderer: {}", error), Err(error) => tracing::error!("Error creating canvas renderer: {}", error),
} }
} }

View File

@ -16,7 +16,7 @@ impl WebLogBackend {
impl LogBackend for WebLogBackend { impl LogBackend for WebLogBackend {
fn avm_trace(&self, message: &str) { fn avm_trace(&self, message: &str) {
log::info!(target: "avm_trace", "{}", message); tracing::info!(target: "avm_trace", "{}", message);
if let Some(function) = self.trace_observer.borrow().dyn_ref::<Function>() { if let Some(function) = self.trace_observer.borrow().dyn_ref::<Function>() {
let _ = function.call1(function, &JsValue::from_str(message)); let _ = function.call1(function, &JsValue::from_str(message));
} }

View File

@ -55,7 +55,7 @@ impl WebNavigatorBackend {
}; };
if base_url.is_none() { if base_url.is_none() {
log::error!("Could not get base URL for base directory inference."); tracing::error!("Could not get base URL for base directory inference.");
} }
Self { Self {
@ -93,7 +93,7 @@ impl NavigatorBackend for WebNavigatorBackend {
// If `allowScriptAccess` is disabled, reject the `javascript:` scheme. // If `allowScriptAccess` is disabled, reject the `javascript:` scheme.
if let Ok(url) = Url::parse(&url) { if let Ok(url) = Url::parse(&url) {
if !self.allow_script_access && url.scheme() == "javascript" { if !self.allow_script_access && url.scheme() == "javascript" {
log::warn!("SWF tried to run a script, but script access is not allowed"); tracing::warn!("SWF tried to run a script, but script access is not allowed");
return; return;
} }
} }
@ -219,14 +219,14 @@ impl NavigatorBackend for WebNavigatorBackend {
fn spawn_future(&mut self, future: OwnedFuture<(), Error>) { fn spawn_future(&mut self, future: OwnedFuture<(), Error>) {
spawn_local(async move { spawn_local(async move {
if let Err(e) = future.await { if let Err(e) = future.await {
log::error!("Asynchronous error occurred: {}", e); tracing::error!("Asynchronous error occurred: {}", e);
} }
}) })
} }
fn pre_process_url(&self, mut url: Url) -> Url { fn pre_process_url(&self, mut url: Url) -> Url {
if self.upgrade_to_https && url.scheme() == "http" && url.set_scheme("https").is_err() { if self.upgrade_to_https && url.scheme() == "http" && url.set_scheme("https").is_err() {
log::error!("Url::set_scheme failed on: {}", url); tracing::error!("Url::set_scheme failed on: {}", url);
} }
url url
} }

View File

@ -58,7 +58,7 @@ impl UiBackend for WebUiBackend {
fn set_clipboard_content(&mut self, _content: String) { fn set_clipboard_content(&mut self, _content: String) {
//TODO: in AVM2 FP9+ this only works when called from a button handler due to sandbox //TODO: in AVM2 FP9+ this only works when called from a button handler due to sandbox
// restrictions // restrictions
log::warn!("set clipboard not implemented"); tracing::warn!("set clipboard not implemented");
} }
fn set_fullscreen(&mut self, is_full: bool) -> Result<(), FullscreenError> { fn set_fullscreen(&mut self, is_full: bool) -> Result<(), FullscreenError> {