tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

telemetry.rs (2740B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 
      5 #[cfg(feature = "gecko")]
      6 use glean::TimerId;
      7 #[cfg(feature = "gecko")]
      8 use firefox_on_glean::metrics::wr;
      9 use std::time::Duration;
     10 
     11 pub struct Telemetry;
     12 
     13 #[cfg(not(feature = "gecko"))]
     14 pub struct TimerId;
     15 
     16 /// Defines the interface for hooking up an external telemetry reporter to WR.
     17 #[cfg(not(feature = "gecko"))]
     18 impl Telemetry {
     19    pub fn record_rasterize_blobs_time(_duration: Duration) { }
     20    pub fn start_framebuild_time() -> TimerId { TimerId }
     21    pub fn stop_and_accumulate_framebuild_time(_id: TimerId) { }
     22    pub fn record_renderer_time(_duration: Duration) { }
     23    pub fn record_renderer_time_no_sc(_duration: Duration) { }
     24    pub fn record_scenebuild_time(_duration: Duration) { }
     25    pub fn start_sceneswap_time() -> TimerId { TimerId }
     26    pub fn stop_and_accumulate_sceneswap_time(_id: TimerId) { }
     27    pub fn cancel_sceneswap_time(_id: TimerId) { }
     28    pub fn start_shaderload_time() -> TimerId { TimerId }
     29    pub fn stop_and_accumulate_shaderload_time(_id: TimerId) { }
     30    pub fn record_texture_cache_update_time(_duration: Duration) { }
     31    pub fn record_time_to_frame_build(_duration: Duration) { }
     32 }
     33 
     34 #[cfg(feature = "gecko")]
     35 impl Telemetry {
     36    pub fn record_rasterize_blobs_time(duration: Duration) { wr::rasterize_blobs_time.accumulate_raw_duration(duration); }
     37    pub fn start_framebuild_time() -> TimerId { wr::framebuild_time.start() }
     38    pub fn stop_and_accumulate_framebuild_time(id: TimerId) { wr::framebuild_time.stop_and_accumulate(id); }
     39    pub fn record_renderer_time(duration: Duration) { wr::renderer_time.accumulate_raw_duration(duration); }
     40    pub fn record_renderer_time_no_sc(duration: Duration) { wr::renderer_time_no_sc.accumulate_raw_duration(duration); }
     41    pub fn record_scenebuild_time(duration: Duration) { wr::scenebuild_time.accumulate_raw_duration(duration); }
     42    pub fn start_sceneswap_time() -> TimerId { wr::sceneswap_time.start() }
     43    pub fn stop_and_accumulate_sceneswap_time(id: TimerId) { wr::sceneswap_time.stop_and_accumulate(id); }
     44    pub fn cancel_sceneswap_time(id: TimerId) { wr::sceneswap_time.cancel(id); }
     45    pub fn start_shaderload_time() -> TimerId { wr::shaderload_time.start() }
     46    pub fn stop_and_accumulate_shaderload_time(id: TimerId) { wr::shaderload_time.stop_and_accumulate(id); }
     47    pub fn record_texture_cache_update_time(duration: Duration) { wr::texture_cache_update_time.accumulate_raw_duration(duration); }
     48    pub fn record_time_to_frame_build(duration: Duration) { wr::time_to_frame_build.accumulate_raw_duration(duration); }
     49 }