зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1828066 - Update to Glean v52.7.0 r=chutten,supply-chain-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D177617
This commit is contained in:
Родитель
c84e710613
Коммит
9db3021bfb
|
@ -2211,9 +2211,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "glean"
|
name = "glean"
|
||||||
version = "52.6.0"
|
version = "52.7.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1ca7a95d864d1302298573c801cb926d7bc4bbf4112545a1e24a0a27c384368b"
|
checksum = "cb5fc2dc8615ab49bfa879d64a02565b459881b72023ff39aca75e5581825695"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"chrono",
|
"chrono",
|
||||||
"crossbeam-channel",
|
"crossbeam-channel",
|
||||||
|
@ -2231,9 +2231,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "glean-core"
|
name = "glean-core"
|
||||||
version = "52.6.0"
|
version = "52.7.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2b45b505ad6e7b569135e44dd84ccac982683054e61dfa2a7906b18510b1993c"
|
checksum = "3493e4f4df45199762f43a6d2298fa9d885fa5ddc9efdc118a41b38c69c7ad59"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"android_logger",
|
"android_logger",
|
||||||
"bincode",
|
"bincode",
|
||||||
|
|
|
@ -36,7 +36,7 @@ allprojects {
|
||||||
topsrcdir = gradle.mozconfig.topsrcdir
|
topsrcdir = gradle.mozconfig.topsrcdir
|
||||||
topobjdir = gradle.mozconfig.topobjdir
|
topobjdir = gradle.mozconfig.topobjdir
|
||||||
|
|
||||||
gleanVersion = "52.6.0"
|
gleanVersion = "52.7.0"
|
||||||
if (gleanVersion != getRustVersionFor("glean")) {
|
if (gleanVersion != getRustVersionFor("glean")) {
|
||||||
throw new StopExecutionException("Mismatched Glean version, expected: ${gleanVersion}," +
|
throw new StopExecutionException("Mismatched Glean version, expected: ${gleanVersion}," +
|
||||||
" found ${getRustVersionFor("glean")}")
|
" found ${getRustVersionFor("glean")}")
|
||||||
|
|
|
@ -940,9 +940,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "glean"
|
name = "glean"
|
||||||
version = "52.6.0"
|
version = "52.7.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1ca7a95d864d1302298573c801cb926d7bc4bbf4112545a1e24a0a27c384368b"
|
checksum = "cb5fc2dc8615ab49bfa879d64a02565b459881b72023ff39aca75e5581825695"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"chrono",
|
"chrono",
|
||||||
"crossbeam-channel",
|
"crossbeam-channel",
|
||||||
|
@ -960,9 +960,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "glean-core"
|
name = "glean-core"
|
||||||
version = "52.6.0"
|
version = "52.7.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2b45b505ad6e7b569135e44dd84ccac982683054e61dfa2a7906b18510b1993c"
|
checksum = "3493e4f4df45199762f43a6d2298fa9d885fa5ddc9efdc118a41b38c69c7ad59"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"android_logger",
|
"android_logger",
|
||||||
"bincode",
|
"bincode",
|
||||||
|
|
|
@ -52,7 +52,7 @@ svg_fmt = "0.4"
|
||||||
tracy-rs = "0.1.2"
|
tracy-rs = "0.1.2"
|
||||||
derive_more = { version = "0.99", default-features = false, features = ["add_assign"] }
|
derive_more = { version = "0.99", default-features = false, features = ["add_assign"] }
|
||||||
etagere = "0.2.6"
|
etagere = "0.2.6"
|
||||||
glean = "52.6.0"
|
glean = "52.7.0"
|
||||||
firefox-on-glean = { version = "0.1.0", optional = true }
|
firefox-on-glean = { version = "0.1.0", optional = true }
|
||||||
swgl = { path = "../swgl", optional = true }
|
swgl = { path = "../swgl", optional = true }
|
||||||
topological-sort = "0.1"
|
topological-sort = "0.1"
|
||||||
|
|
|
@ -25,7 +25,7 @@ tracy-rs = "0.1.2"
|
||||||
log = "0.4"
|
log = "0.4"
|
||||||
lazy_static = "1"
|
lazy_static = "1"
|
||||||
fxhash = "0.2.1"
|
fxhash = "0.2.1"
|
||||||
glean = { version = "52.6.0", optional = true }
|
glean = { version = "52.7.0", optional = true }
|
||||||
firefox-on-glean = { version = "0.1.0", optional = true }
|
firefox-on-glean = { version = "0.1.0", optional = true }
|
||||||
serde = { optional = true, version = "1.0", features = ["serde_derive"] }
|
serde = { optional = true, version = "1.0", features = ["serde_derive"] }
|
||||||
|
|
||||||
|
|
|
@ -138,7 +138,7 @@ pth:xpcom/geckoprocesstypes_generator
|
||||||
pth:xpcom/idl-parser
|
pth:xpcom/idl-parser
|
||||||
# glean-sdk may not be installable if a wheel isn't available
|
# glean-sdk may not be installable if a wheel isn't available
|
||||||
# and it has to be built from source.
|
# and it has to be built from source.
|
||||||
pypi-optional:glean-sdk==52.6.0:telemetry will not be collected
|
pypi-optional:glean-sdk==52.7.0:telemetry will not be collected
|
||||||
# Mach gracefully handles the case where `psutil` is unavailable.
|
# Mach gracefully handles the case where `psutil` is unavailable.
|
||||||
# We aren't (yet) able to pin packages in automation, so we have to
|
# We aren't (yet) able to pin packages in automation, so we have to
|
||||||
# support down to the oldest locally-installed version (5.4.2).
|
# support down to the oldest locally-installed version (5.4.2).
|
||||||
|
|
|
@ -149,15 +149,15 @@ user-login = "jrmuizel"
|
||||||
user-name = "Jeff Muizelaar"
|
user-name = "Jeff Muizelaar"
|
||||||
|
|
||||||
[[publisher.glean]]
|
[[publisher.glean]]
|
||||||
version = "52.6.0"
|
version = "52.7.0"
|
||||||
when = "2023-04-20"
|
when = "2023-05-10"
|
||||||
user-id = 48
|
user-id = 48
|
||||||
user-login = "badboy"
|
user-login = "badboy"
|
||||||
user-name = "Jan-Erik Rediger"
|
user-name = "Jan-Erik Rediger"
|
||||||
|
|
||||||
[[publisher.glean-core]]
|
[[publisher.glean-core]]
|
||||||
version = "52.6.0"
|
version = "52.7.0"
|
||||||
when = "2023-04-20"
|
when = "2023-05-10"
|
||||||
user-id = 48
|
user-id = 48
|
||||||
user-login = "badboy"
|
user-login = "badboy"
|
||||||
user-name = "Jan-Erik Rediger"
|
user-name = "Jan-Erik Rediger"
|
||||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -13,7 +13,7 @@
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.62"
|
||||||
name = "glean-core"
|
name = "glean-core"
|
||||||
version = "52.6.0"
|
version = "52.7.0"
|
||||||
authors = [
|
authors = [
|
||||||
"Jan-Erik Rediger <jrediger@mozilla.com>",
|
"Jan-Erik Rediger <jrediger@mozilla.com>",
|
||||||
"The Glean Team <glean-team@mozilla.com>",
|
"The Glean Team <glean-team@mozilla.com>",
|
||||||
|
|
|
@ -112,6 +112,7 @@ where
|
||||||
/// app_build: "".into(),
|
/// app_build: "".into(),
|
||||||
/// use_core_mps: false,
|
/// use_core_mps: false,
|
||||||
/// trim_data_to_registered_pings: false,
|
/// trim_data_to_registered_pings: false,
|
||||||
|
/// log_level: None,
|
||||||
/// };
|
/// };
|
||||||
/// let mut glean = Glean::new(cfg).unwrap();
|
/// let mut glean = Glean::new(cfg).unwrap();
|
||||||
/// let ping = PingType::new("sample", true, false, vec![]);
|
/// let ping = PingType::new("sample", true, false, vec![]);
|
||||||
|
@ -293,6 +294,7 @@ impl Glean {
|
||||||
app_build: "Unknown".into(),
|
app_build: "Unknown".into(),
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
let mut glean = Self::new(cfg).unwrap();
|
let mut glean = Self::new(cfg).unwrap();
|
||||||
|
|
|
@ -6,8 +6,10 @@ use once_cell::sync::Lazy;
|
||||||
use std::sync::atomic::{AtomicBool, Ordering};
|
use std::sync::atomic::{AtomicBool, Ordering};
|
||||||
use std::sync::RwLock;
|
use std::sync::RwLock;
|
||||||
use std::thread;
|
use std::thread;
|
||||||
|
use std::time::Duration;
|
||||||
|
|
||||||
use super::{DispatchError, DispatchGuard, Dispatcher};
|
use super::{DispatchError, DispatchGuard, Dispatcher};
|
||||||
|
use crossbeam_channel::RecvTimeoutError;
|
||||||
|
|
||||||
#[cfg(feature = "preinit_million_queue")]
|
#[cfg(feature = "preinit_million_queue")]
|
||||||
pub const GLOBAL_DISPATCHER_LIMIT: usize = 1000000;
|
pub const GLOBAL_DISPATCHER_LIMIT: usize = 1000000;
|
||||||
|
@ -76,6 +78,11 @@ pub fn block_on_queue() {
|
||||||
guard().block_on_queue();
|
guard().block_on_queue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Block until all tasks prior to this call are processed, with a timeout.
|
||||||
|
pub fn block_on_queue_timeout(timeout: Duration) -> Result<(), RecvTimeoutError> {
|
||||||
|
guard().block_on_queue_timeout(timeout)
|
||||||
|
}
|
||||||
|
|
||||||
/// Starts processing queued tasks in the global dispatch queue.
|
/// Starts processing queued tasks in the global dispatch queue.
|
||||||
///
|
///
|
||||||
/// This function blocks until queued tasks prior to this call are finished.
|
/// This function blocks until queued tasks prior to this call are finished.
|
||||||
|
|
|
@ -29,9 +29,10 @@ use std::{
|
||||||
Arc,
|
Arc,
|
||||||
},
|
},
|
||||||
thread::{self, JoinHandle},
|
thread::{self, JoinHandle},
|
||||||
|
time::Duration,
|
||||||
};
|
};
|
||||||
|
|
||||||
use crossbeam_channel::{bounded, unbounded, SendError, Sender};
|
use crossbeam_channel::{bounded, unbounded, RecvTimeoutError, SendError, Sender};
|
||||||
use thiserror::Error;
|
use thiserror::Error;
|
||||||
|
|
||||||
pub use global::*;
|
pub use global::*;
|
||||||
|
@ -161,6 +162,26 @@ impl DispatchGuard {
|
||||||
.expect("Failed to receive message on single-use channel");
|
.expect("Failed to receive message on single-use channel");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Block on the task queue emptying, with a timeout.
|
||||||
|
fn block_on_queue_timeout(&self, timeout: Duration) -> Result<(), RecvTimeoutError> {
|
||||||
|
let (tx, rx) = crossbeam_channel::bounded(0);
|
||||||
|
|
||||||
|
// We explicitly don't use `self.launch` here.
|
||||||
|
// We always put this task on the unbounded queue.
|
||||||
|
// The pre-init queue might be full before its flushed, in which case this would panic.
|
||||||
|
// Blocking on the queue can only work if it is eventually flushed anyway.
|
||||||
|
|
||||||
|
let task = Command::Task(Box::new(move || {
|
||||||
|
tx.send(())
|
||||||
|
.expect("(worker) Can't send message on single-use channel");
|
||||||
|
}));
|
||||||
|
self.sender
|
||||||
|
.send(task)
|
||||||
|
.expect("Failed to launch the blocking task");
|
||||||
|
|
||||||
|
rx.recv_timeout(timeout)
|
||||||
|
}
|
||||||
|
|
||||||
fn kill(&mut self) -> Result<(), DispatchError> {
|
fn kill(&mut self) -> Result<(), DispatchError> {
|
||||||
// We immediately stop queueing in the pre-init buffer.
|
// We immediately stop queueing in the pre-init buffer.
|
||||||
let old_val = self.queue_preinit.swap(false, Ordering::SeqCst);
|
let old_val = self.queue_preinit.swap(false, Ordering::SeqCst);
|
||||||
|
|
|
@ -238,7 +238,7 @@ impl EventDatabase {
|
||||||
db.insert(
|
db.insert(
|
||||||
store_name,
|
store_name,
|
||||||
file.lines()
|
file.lines()
|
||||||
.filter_map(|line| line.ok())
|
.map_while(Result::ok)
|
||||||
.filter_map(|line| serde_json::from_str::<StoredEvent>(&line).ok())
|
.filter_map(|line| serde_json::from_str::<StoredEvent>(&line).ok())
|
||||||
.collect(),
|
.collect(),
|
||||||
);
|
);
|
||||||
|
|
|
@ -69,6 +69,17 @@ dictionary InternalConfiguration {
|
||||||
string app_build;
|
string app_build;
|
||||||
boolean use_core_mps;
|
boolean use_core_mps;
|
||||||
boolean trim_data_to_registered_pings;
|
boolean trim_data_to_registered_pings;
|
||||||
|
LevelFilter? log_level;
|
||||||
|
};
|
||||||
|
|
||||||
|
// An enum representing the different logging levels for the `log` crate.
|
||||||
|
enum LevelFilter {
|
||||||
|
"Off",
|
||||||
|
"Error",
|
||||||
|
"Warn",
|
||||||
|
"Info",
|
||||||
|
"Debug",
|
||||||
|
"Trace",
|
||||||
};
|
};
|
||||||
|
|
||||||
// Values for the `client_info` metrics.
|
// Values for the `client_info` metrics.
|
||||||
|
|
|
@ -24,6 +24,9 @@ pub struct AdditionalMetrics {
|
||||||
|
|
||||||
/// Time waited for the uploader at shutdown.
|
/// Time waited for the uploader at shutdown.
|
||||||
pub shutdown_wait: TimingDistributionMetric,
|
pub shutdown_wait: TimingDistributionMetric,
|
||||||
|
|
||||||
|
/// Time waited for the dispatcher to unblock during shutdown.
|
||||||
|
pub shutdown_dispatcher_wait: TimingDistributionMetric,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl CoreMetrics {
|
impl CoreMetrics {
|
||||||
|
@ -97,6 +100,18 @@ impl AdditionalMetrics {
|
||||||
},
|
},
|
||||||
TimeUnit::Millisecond,
|
TimeUnit::Millisecond,
|
||||||
),
|
),
|
||||||
|
|
||||||
|
shutdown_dispatcher_wait: TimingDistributionMetric::new(
|
||||||
|
CommonMetricData {
|
||||||
|
name: "shutdown_dispatcher_wait".into(),
|
||||||
|
category: "glean.validation".into(),
|
||||||
|
send_in_pings: vec!["metrics".into()],
|
||||||
|
lifetime: Lifetime::Ping,
|
||||||
|
disabled: false,
|
||||||
|
dynamic_label: None,
|
||||||
|
},
|
||||||
|
TimeUnit::Millisecond,
|
||||||
|
),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,6 +25,7 @@ use std::thread;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|
||||||
use crossbeam_channel::unbounded;
|
use crossbeam_channel::unbounded;
|
||||||
|
use log::{self, LevelFilter};
|
||||||
use once_cell::sync::{Lazy, OnceCell};
|
use once_cell::sync::{Lazy, OnceCell};
|
||||||
use uuid::Uuid;
|
use uuid::Uuid;
|
||||||
|
|
||||||
|
@ -125,6 +126,8 @@ pub struct InternalConfiguration {
|
||||||
pub use_core_mps: bool,
|
pub use_core_mps: bool,
|
||||||
/// Whether Glean should, on init, trim its event storage to only the registered pings.
|
/// Whether Glean should, on init, trim its event storage to only the registered pings.
|
||||||
pub trim_data_to_registered_pings: bool,
|
pub trim_data_to_registered_pings: bool,
|
||||||
|
/// The internal logging level.
|
||||||
|
pub log_level: Option<LevelFilter>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Launches a new task on the global dispatch queue with a reference to the Glean singleton.
|
/// Launches a new task on the global dispatch queue with a reference to the Glean singleton.
|
||||||
|
@ -306,6 +309,11 @@ fn initialize_inner(
|
||||||
let upload_enabled = cfg.upload_enabled;
|
let upload_enabled = cfg.upload_enabled;
|
||||||
let trim_data_to_registered_pings = cfg.trim_data_to_registered_pings;
|
let trim_data_to_registered_pings = cfg.trim_data_to_registered_pings;
|
||||||
|
|
||||||
|
// Set the internal logging level.
|
||||||
|
if let Some(level) = cfg.log_level {
|
||||||
|
log::set_max_level(level)
|
||||||
|
}
|
||||||
|
|
||||||
let glean = match Glean::new(cfg) {
|
let glean = match Glean::new(cfg) {
|
||||||
Ok(glean) => glean,
|
Ok(glean) => glean,
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
|
@ -557,8 +565,31 @@ pub fn shutdown() {
|
||||||
glean.set_dirty_flag(false);
|
glean.set_dirty_flag(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
// We need to wait for above task to finish.
|
// We need to wait for above task to finish,
|
||||||
dispatcher::block_on_queue();
|
// but we also don't wait around forever.
|
||||||
|
//
|
||||||
|
// TODO: Make the timeout configurable?
|
||||||
|
// The default hang watchdog on Firefox waits 60s,
|
||||||
|
// Glean's `uploader_shutdown` further below waits up to 30s.
|
||||||
|
let timer_id = core::with_glean(|glean| {
|
||||||
|
glean
|
||||||
|
.additional_metrics
|
||||||
|
.shutdown_dispatcher_wait
|
||||||
|
.start_sync()
|
||||||
|
});
|
||||||
|
if dispatcher::block_on_queue_timeout(Duration::from_secs(10)).is_err() {
|
||||||
|
log::error!(
|
||||||
|
"Timeout while blocking on the dispatcher. No further shutdown cleanup will happen."
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let stop_time = time::precise_time_ns();
|
||||||
|
core::with_glean(|glean| {
|
||||||
|
glean
|
||||||
|
.additional_metrics
|
||||||
|
.shutdown_dispatcher_wait
|
||||||
|
.set_stop_and_accumulate(glean, timer_id, stop_time);
|
||||||
|
});
|
||||||
|
|
||||||
if let Err(e) = dispatcher::shutdown() {
|
if let Err(e) = dispatcher::shutdown() {
|
||||||
log::error!("Can't shutdown dispatcher thread: {:?}", e);
|
log::error!("Can't shutdown dispatcher thread: {:?}", e);
|
||||||
|
|
|
@ -59,6 +59,7 @@ pub fn new_glean(tempdir: Option<tempfile::TempDir>) -> (Glean, tempfile::TempDi
|
||||||
app_build: "Unknown".into(),
|
app_build: "Unknown".into(),
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
};
|
};
|
||||||
let glean = Glean::new(cfg).unwrap();
|
let glean = Glean::new(cfg).unwrap();
|
||||||
|
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{"files":{"Cargo.toml":"32bdc5d1ae4465c672d2b38766643729acd3185977ccf212e376d962231ef90b","LICENSE":"1f256ecad192880510e84ad60474eab7589218784b9a50bc7ceee34c2b91f1d5","README.md":"5627cc81e6187ab6c2b4dff061af16d559edcab64ba786bac39daa69c703c595","src/common_test.rs":"de47b53dcca37985c0a2b8c02daecbf32309aa54f5a4dd9290719c2c1fd0fa55","src/configuration.rs":"4ca9be0a49a9c50f4ebe868d4bfa04fe27619c871a436911f850b4dcf6e7a7b2","src/core_metrics.rs":"dd17b482613894af08b51a2cff6dc1e84a6dbd853c14a55566e6698348941ced","src/lib.rs":"6b486cda2c92ab49dbc26533f1aac5b0b1a071b227ddd9b9e85c0edb768fe5bc","src/net/http_uploader.rs":"43812a70d19a38e8d7a093c8076c2b6345372c3c861b0f3511428762700a65e0","src/net/mod.rs":"e36e170a8e53530f8705988eea694ed7c55f50bb0ce403c0facbfb75ce03ac7f","src/private/event.rs":"02bbebf545695812e5055741cc0b5f3c99eda2039e684e26fcdd5f087ed15fe3","src/private/mod.rs":"eb8fe4e588bb32a54617324db39319920c627e6fc23c23cf4da5c17c63e0afed","src/private/ping.rs":"cbdc57f41fc9d46e56b4dfff91ac683753d1f8b3ecd0aa9bc3419e3595b8b81b","src/system.rs":"6eae5b41c15eba9cad6dbd116abe3519ee3e1fe034e79bdd692b029829a8c384","src/test.rs":"5cd8befc816333970d8068c449e945866b0530eecfa630109ee154b43b1ac62f","tests/common/mod.rs":"37cd4c48e140c793b852ae09fb3e812da28a4412977295015bcbffd632fcf294","tests/init_fails.rs":"28fd7726e76ca1295eb0905eca0b2ec65b0accfa28432c9ff90ec8f92616fc79","tests/never_init.rs":"1f33b8ce7ca3514b57b48cc16d98408974c85cf8aa7d13257ffc2ad878ebb295","tests/no_time_to_init.rs":"e7df75b47897fbf2c860a2e1c1c225b57598b8d1a39125ca897fe8d825bf0338","tests/overflowing_preinit.rs":"7ad4b2274dd9240b53430859a4eb1d2597cf508a5a678333f3d3abbadd2ed4a7","tests/persist_ping_lifetime.rs":"81415dc1d74743f02269f0d0dfa524003147056853f080276972e64a0b761d3c","tests/persist_ping_lifetime_nopanic.rs":"18379d3ffbf4a2c8c684c04ff7a0660b86dfbbb447db2d24dfed6073cb7ddf8f","tests/schema.rs":"1b7b19aec54a24c2bdd4738cf33c16802c19c83504c4d0e6bcfc19142877acdb","tests/simple.rs":"b099034b0599bdf4650e0fa09991a8413fc5fbf397755fc06c8963d4c7c8dfa6","tests/test-shutdown-blocking.sh":"9b16a01c190c7062474dd92182298a3d9a27928c8fa990340fdd798e6cdb7ab2","tests/upload_timing.rs":"d044fce7c783133e385671ea37d674e5a1b4120cae7b07708dcd825addfa0ee3"},"package":"1ca7a95d864d1302298573c801cb926d7bc4bbf4112545a1e24a0a27c384368b"}
|
{"files":{"Cargo.toml":"bb7825ea1f64c8c1d61c3dd696263f14335902b25c99fd5ec53d87c360e535e7","LICENSE":"1f256ecad192880510e84ad60474eab7589218784b9a50bc7ceee34c2b91f1d5","README.md":"5627cc81e6187ab6c2b4dff061af16d559edcab64ba786bac39daa69c703c595","src/common_test.rs":"de47b53dcca37985c0a2b8c02daecbf32309aa54f5a4dd9290719c2c1fd0fa55","src/configuration.rs":"883b327fdad366e414ece83f65ab6b0216ab819c7854b382acf91b702b5a9697","src/core_metrics.rs":"dd17b482613894af08b51a2cff6dc1e84a6dbd853c14a55566e6698348941ced","src/lib.rs":"7cc249fc8f674958b91e6259225e858dfcd2b9b9dbdaecfab4d0ca85ad44129a","src/net/http_uploader.rs":"43812a70d19a38e8d7a093c8076c2b6345372c3c861b0f3511428762700a65e0","src/net/mod.rs":"e36e170a8e53530f8705988eea694ed7c55f50bb0ce403c0facbfb75ce03ac7f","src/private/event.rs":"02bbebf545695812e5055741cc0b5f3c99eda2039e684e26fcdd5f087ed15fe3","src/private/mod.rs":"eb8fe4e588bb32a54617324db39319920c627e6fc23c23cf4da5c17c63e0afed","src/private/ping.rs":"cbdc57f41fc9d46e56b4dfff91ac683753d1f8b3ecd0aa9bc3419e3595b8b81b","src/system.rs":"6eae5b41c15eba9cad6dbd116abe3519ee3e1fe034e79bdd692b029829a8c384","src/test.rs":"68e046309f943aacc45af9e8bb0687c5b49da32f3a55050a3724f0be0a91c61c","tests/common/mod.rs":"37cd4c48e140c793b852ae09fb3e812da28a4412977295015bcbffd632fcf294","tests/init_fails.rs":"28fd7726e76ca1295eb0905eca0b2ec65b0accfa28432c9ff90ec8f92616fc79","tests/never_init.rs":"1f33b8ce7ca3514b57b48cc16d98408974c85cf8aa7d13257ffc2ad878ebb295","tests/no_time_to_init.rs":"e7df75b47897fbf2c860a2e1c1c225b57598b8d1a39125ca897fe8d825bf0338","tests/overflowing_preinit.rs":"7ad4b2274dd9240b53430859a4eb1d2597cf508a5a678333f3d3abbadd2ed4a7","tests/persist_ping_lifetime.rs":"81415dc1d74743f02269f0d0dfa524003147056853f080276972e64a0b761d3c","tests/persist_ping_lifetime_nopanic.rs":"18379d3ffbf4a2c8c684c04ff7a0660b86dfbbb447db2d24dfed6073cb7ddf8f","tests/schema.rs":"1b7b19aec54a24c2bdd4738cf33c16802c19c83504c4d0e6bcfc19142877acdb","tests/simple.rs":"b099034b0599bdf4650e0fa09991a8413fc5fbf397755fc06c8963d4c7c8dfa6","tests/test-shutdown-blocking.sh":"9b16a01c190c7062474dd92182298a3d9a27928c8fa990340fdd798e6cdb7ab2","tests/upload_timing.rs":"d044fce7c783133e385671ea37d674e5a1b4120cae7b07708dcd825addfa0ee3"},"package":"cb5fc2dc8615ab49bfa879d64a02565b459881b72023ff39aca75e5581825695"}
|
|
@ -13,7 +13,7 @@
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.62"
|
||||||
name = "glean"
|
name = "glean"
|
||||||
version = "52.6.0"
|
version = "52.7.0"
|
||||||
authors = [
|
authors = [
|
||||||
"Jan-Erik Rediger <jrediger@mozilla.com>",
|
"Jan-Erik Rediger <jrediger@mozilla.com>",
|
||||||
"The Glean Team <glean-team@mozilla.com>",
|
"The Glean Team <glean-team@mozilla.com>",
|
||||||
|
@ -43,7 +43,7 @@ features = ["serde"]
|
||||||
version = "0.5"
|
version = "0.5"
|
||||||
|
|
||||||
[dependencies.glean-core]
|
[dependencies.glean-core]
|
||||||
version = "52.6.0"
|
version = "52.7.0"
|
||||||
|
|
||||||
[dependencies.inherent]
|
[dependencies.inherent]
|
||||||
version = "1"
|
version = "1"
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
// 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/.
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
use log::LevelFilter;
|
||||||
|
|
||||||
use crate::net::PingUploader;
|
use crate::net::PingUploader;
|
||||||
|
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
|
@ -34,6 +36,8 @@ pub struct Configuration {
|
||||||
/// Unless you know that all your and your libraries' pings are appropriately registered
|
/// Unless you know that all your and your libraries' pings are appropriately registered
|
||||||
/// _before_ init, you shouldn't use this.
|
/// _before_ init, you shouldn't use this.
|
||||||
pub trim_data_to_registered_pings: bool,
|
pub trim_data_to_registered_pings: bool,
|
||||||
|
/// The internal logging level.
|
||||||
|
pub log_level: Option<LevelFilter>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Configuration builder.
|
/// Configuration builder.
|
||||||
|
@ -68,6 +72,9 @@ pub struct Builder {
|
||||||
/// _before_ init, you shouldn't use this.
|
/// _before_ init, you shouldn't use this.
|
||||||
/// Default: `false`
|
/// Default: `false`
|
||||||
pub trim_data_to_registered_pings: bool,
|
pub trim_data_to_registered_pings: bool,
|
||||||
|
/// Optional: The internal logging level.
|
||||||
|
/// Default: `None`
|
||||||
|
pub log_level: Option<LevelFilter>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Builder {
|
impl Builder {
|
||||||
|
@ -87,6 +94,7 @@ impl Builder {
|
||||||
uploader: None,
|
uploader: None,
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -102,6 +110,7 @@ impl Builder {
|
||||||
uploader: self.uploader,
|
uploader: self.uploader,
|
||||||
use_core_mps: self.use_core_mps,
|
use_core_mps: self.use_core_mps,
|
||||||
trim_data_to_registered_pings: self.trim_data_to_registered_pings,
|
trim_data_to_registered_pings: self.trim_data_to_registered_pings,
|
||||||
|
log_level: self.log_level,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -118,6 +118,7 @@ fn initialize_internal(cfg: Configuration, client_info: ClientInfoMetrics) -> Op
|
||||||
app_build: client_info.app_build.clone(),
|
app_build: client_info.app_build.clone(),
|
||||||
use_core_mps: cfg.use_core_mps,
|
use_core_mps: cfg.use_core_mps,
|
||||||
trim_data_to_registered_pings: cfg.trim_data_to_registered_pings,
|
trim_data_to_registered_pings: cfg.trim_data_to_registered_pings,
|
||||||
|
log_level: cfg.log_level,
|
||||||
};
|
};
|
||||||
|
|
||||||
glean_core::glean_initialize(core_cfg, client_info.into(), callbacks);
|
glean_core::glean_initialize(core_cfg, client_info.into(), callbacks);
|
||||||
|
|
|
@ -53,6 +53,7 @@ fn send_a_ping() {
|
||||||
uploader: Some(Box::new(FakeUploader { sender: s })),
|
uploader: Some(Box::new(FakeUploader { sender: s })),
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
let _t = new_glean(Some(cfg), true);
|
let _t = new_glean(Some(cfg), true);
|
||||||
|
@ -142,6 +143,7 @@ fn test_experiments_recording_before_glean_inits() {
|
||||||
uploader: None,
|
uploader: None,
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
},
|
},
|
||||||
ClientInfoMetrics::unknown(),
|
ClientInfoMetrics::unknown(),
|
||||||
false,
|
false,
|
||||||
|
@ -202,6 +204,7 @@ fn sending_of_foreground_background_pings() {
|
||||||
uploader: Some(Box::new(FakeUploader { sender: s })),
|
uploader: Some(Box::new(FakeUploader { sender: s })),
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
let _t = new_glean(Some(cfg), true);
|
let _t = new_glean(Some(cfg), true);
|
||||||
|
@ -284,6 +287,7 @@ fn sending_of_startup_baseline_ping() {
|
||||||
uploader: Some(Box::new(FakeUploader { sender: s })),
|
uploader: Some(Box::new(FakeUploader { sender: s })),
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
},
|
},
|
||||||
ClientInfoMetrics::unknown(),
|
ClientInfoMetrics::unknown(),
|
||||||
false,
|
false,
|
||||||
|
@ -343,6 +347,7 @@ fn no_dirty_baseline_on_clean_shutdowns() {
|
||||||
uploader: Some(Box::new(FakeUploader { sender: s })),
|
uploader: Some(Box::new(FakeUploader { sender: s })),
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
},
|
},
|
||||||
ClientInfoMetrics::unknown(),
|
ClientInfoMetrics::unknown(),
|
||||||
false,
|
false,
|
||||||
|
@ -373,6 +378,7 @@ fn initialize_must_not_crash_if_data_dir_is_messed_up() {
|
||||||
uploader: None,
|
uploader: None,
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
test_reset_glean(cfg, ClientInfoMetrics::unknown(), false);
|
test_reset_glean(cfg, ClientInfoMetrics::unknown(), false);
|
||||||
|
@ -419,6 +425,7 @@ fn queued_recorded_metrics_correctly_record_during_init() {
|
||||||
uploader: None,
|
uploader: None,
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
};
|
};
|
||||||
let _t = new_glean(Some(cfg), false);
|
let _t = new_glean(Some(cfg), false);
|
||||||
|
|
||||||
|
@ -445,6 +452,7 @@ fn initializing_twice_is_a_noop() {
|
||||||
uploader: None,
|
uploader: None,
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
},
|
},
|
||||||
ClientInfoMetrics::unknown(),
|
ClientInfoMetrics::unknown(),
|
||||||
true,
|
true,
|
||||||
|
@ -465,6 +473,7 @@ fn initializing_twice_is_a_noop() {
|
||||||
uploader: None,
|
uploader: None,
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
},
|
},
|
||||||
ClientInfoMetrics::unknown(),
|
ClientInfoMetrics::unknown(),
|
||||||
);
|
);
|
||||||
|
@ -493,6 +502,7 @@ fn dont_handle_events_when_uninitialized() {
|
||||||
uploader: None,
|
uploader: None,
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
},
|
},
|
||||||
ClientInfoMetrics::unknown(),
|
ClientInfoMetrics::unknown(),
|
||||||
true,
|
true,
|
||||||
|
@ -557,6 +567,7 @@ fn the_app_channel_must_be_correctly_set_if_requested() {
|
||||||
uploader: None,
|
uploader: None,
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
},
|
},
|
||||||
client_info,
|
client_info,
|
||||||
true,
|
true,
|
||||||
|
@ -579,6 +590,7 @@ fn the_app_channel_must_be_correctly_set_if_requested() {
|
||||||
uploader: None,
|
uploader: None,
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
},
|
},
|
||||||
client_info,
|
client_info,
|
||||||
true,
|
true,
|
||||||
|
@ -642,6 +654,7 @@ fn ping_collection_must_happen_after_concurrently_scheduled_metrics_recordings()
|
||||||
uploader: Some(Box::new(FakeUploader { sender: s })),
|
uploader: Some(Box::new(FakeUploader { sender: s })),
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
},
|
},
|
||||||
ClientInfoMetrics::unknown(),
|
ClientInfoMetrics::unknown(),
|
||||||
true,
|
true,
|
||||||
|
@ -723,6 +736,7 @@ fn core_metrics_should_be_cleared_and_restored_when_disabling_and_enabling_uploa
|
||||||
uploader: None,
|
uploader: None,
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
},
|
},
|
||||||
ClientInfoMetrics::unknown(),
|
ClientInfoMetrics::unknown(),
|
||||||
true,
|
true,
|
||||||
|
@ -785,6 +799,7 @@ fn sending_deletion_ping_if_disabled_outside_of_run() {
|
||||||
uploader: None,
|
uploader: None,
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
let _t = new_glean(Some(cfg), true);
|
let _t = new_glean(Some(cfg), true);
|
||||||
|
@ -802,6 +817,7 @@ fn sending_deletion_ping_if_disabled_outside_of_run() {
|
||||||
uploader: Some(Box::new(FakeUploader { sender: s })),
|
uploader: Some(Box::new(FakeUploader { sender: s })),
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
},
|
},
|
||||||
ClientInfoMetrics::unknown(),
|
ClientInfoMetrics::unknown(),
|
||||||
false,
|
false,
|
||||||
|
@ -850,6 +866,7 @@ fn no_sending_of_deletion_ping_if_unchanged_outside_of_run() {
|
||||||
uploader: None,
|
uploader: None,
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
let _t = new_glean(Some(cfg), true);
|
let _t = new_glean(Some(cfg), true);
|
||||||
|
@ -867,6 +884,7 @@ fn no_sending_of_deletion_ping_if_unchanged_outside_of_run() {
|
||||||
uploader: Some(Box::new(FakeUploader { sender: s })),
|
uploader: Some(Box::new(FakeUploader { sender: s })),
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
},
|
},
|
||||||
ClientInfoMetrics::unknown(),
|
ClientInfoMetrics::unknown(),
|
||||||
false,
|
false,
|
||||||
|
@ -923,6 +941,7 @@ fn test_sending_of_startup_baseline_ping_with_application_lifetime_metric() {
|
||||||
uploader: None,
|
uploader: None,
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
},
|
},
|
||||||
ClientInfoMetrics::unknown(),
|
ClientInfoMetrics::unknown(),
|
||||||
true,
|
true,
|
||||||
|
@ -955,6 +974,7 @@ fn test_sending_of_startup_baseline_ping_with_application_lifetime_metric() {
|
||||||
uploader: Some(Box::new(FakeUploader { sender: s })),
|
uploader: Some(Box::new(FakeUploader { sender: s })),
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
},
|
},
|
||||||
ClientInfoMetrics::unknown(),
|
ClientInfoMetrics::unknown(),
|
||||||
false,
|
false,
|
||||||
|
@ -1013,6 +1033,7 @@ fn setting_debug_view_tag_before_initialization_should_not_crash() {
|
||||||
uploader: Some(Box::new(FakeUploader { sender: s })),
|
uploader: Some(Box::new(FakeUploader { sender: s })),
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
let _t = new_glean(Some(cfg), true);
|
let _t = new_glean(Some(cfg), true);
|
||||||
|
@ -1071,6 +1092,7 @@ fn setting_source_tags_before_initialization_should_not_crash() {
|
||||||
uploader: Some(Box::new(FakeUploader { sender: s })),
|
uploader: Some(Box::new(FakeUploader { sender: s })),
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
let _t = new_glean(Some(cfg), true);
|
let _t = new_glean(Some(cfg), true);
|
||||||
|
@ -1128,6 +1150,7 @@ fn setting_source_tags_after_initialization_should_not_crash() {
|
||||||
uploader: Some(Box::new(FakeUploader { sender: s })),
|
uploader: Some(Box::new(FakeUploader { sender: s })),
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
let _t = new_glean(Some(cfg), true);
|
let _t = new_glean(Some(cfg), true);
|
||||||
|
@ -1199,6 +1222,7 @@ fn flipping_upload_enabled_respects_order_of_events() {
|
||||||
uploader: Some(Box::new(FakeUploader { sender: s })),
|
uploader: Some(Box::new(FakeUploader { sender: s })),
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
// We create a ping and a metric before we initialize Glean
|
// We create a ping and a metric before we initialize Glean
|
||||||
|
@ -1267,6 +1291,7 @@ fn registering_pings_before_init_must_work() {
|
||||||
uploader: Some(Box::new(FakeUploader { sender: s })),
|
uploader: Some(Box::new(FakeUploader { sender: s })),
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
let _t = new_glean(Some(cfg), true);
|
let _t = new_glean(Some(cfg), true);
|
||||||
|
@ -1317,6 +1342,7 @@ fn test_a_ping_before_submission() {
|
||||||
uploader: Some(Box::new(FakeUploader { sender: s })),
|
uploader: Some(Box::new(FakeUploader { sender: s })),
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
let _t = new_glean(Some(cfg), true);
|
let _t = new_glean(Some(cfg), true);
|
||||||
|
@ -1445,6 +1471,7 @@ fn signaling_done() {
|
||||||
})),
|
})),
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
let _t = new_glean(Some(cfg), true);
|
let _t = new_glean(Some(cfg), true);
|
||||||
|
|
|
@ -6,7 +6,7 @@ edition = "2018"
|
||||||
license = "MPL-2.0"
|
license = "MPL-2.0"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
glean = "52.6.0"
|
glean = "52.7.0"
|
||||||
log = "0.4"
|
log = "0.4"
|
||||||
nserror = { path = "../../../xpcom/rust/nserror" }
|
nserror = { path = "../../../xpcom/rust/nserror" }
|
||||||
nsstring = { path = "../../../xpcom/rust/nsstring" }
|
nsstring = { path = "../../../xpcom/rust/nsstring" }
|
||||||
|
|
|
@ -9,7 +9,7 @@ license = "MPL-2.0"
|
||||||
[dependencies]
|
[dependencies]
|
||||||
bincode = "1.0"
|
bincode = "1.0"
|
||||||
chrono = "0.4.10"
|
chrono = "0.4.10"
|
||||||
glean = "52.6.0"
|
glean = "52.7.0"
|
||||||
inherent = "1.0.0"
|
inherent = "1.0.0"
|
||||||
log = "0.4"
|
log = "0.4"
|
||||||
nsstring = { path = "../../../../xpcom/rust/nsstring", optional = true }
|
nsstring = { path = "../../../../xpcom/rust/nsstring", optional = true }
|
||||||
|
|
|
@ -39,6 +39,7 @@ fn setup_glean(tempdir: Option<tempfile::TempDir>) -> tempfile::TempDir {
|
||||||
uploader: None,
|
uploader: None,
|
||||||
use_core_mps: false,
|
use_core_mps: false,
|
||||||
trim_data_to_registered_pings: false,
|
trim_data_to_registered_pings: false,
|
||||||
|
log_level: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
let client_info = glean::ClientInfoMetrics {
|
let client_info = glean::ClientInfoMetrics {
|
||||||
|
|
|
@ -164,6 +164,7 @@ fn build_configuration(
|
||||||
uploader: None,
|
uploader: None,
|
||||||
use_core_mps: true,
|
use_core_mps: true,
|
||||||
trim_data_to_registered_pings: true,
|
trim_data_to_registered_pings: true,
|
||||||
|
log_level: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
Ok((configuration, client_info))
|
Ok((configuration, client_info))
|
||||||
|
|
Загрузка…
Ссылка в новой задаче