diff options
-rw-r--r-- | components/layout/layout_task.rs | 20 | ||||
-rw-r--r-- | components/layout/parallel.rs | 6 | ||||
-rw-r--r-- | components/profile/time.rs | 11 | ||||
-rw-r--r-- | components/profile_traits/Cargo.toml | 4 | ||||
-rw-r--r-- | components/profile_traits/time.rs | 21 | ||||
-rw-r--r-- | components/servo/Cargo.lock | 1 | ||||
-rw-r--r-- | ports/cef/Cargo.lock | 1 | ||||
-rw-r--r-- | ports/gonk/Cargo.lock | 1 |
8 files changed, 28 insertions, 37 deletions
diff --git a/components/layout/layout_task.rs b/components/layout/layout_task.rs index 6347509ad90..a7a39233cc9 100644 --- a/components/layout/layout_task.rs +++ b/components/layout/layout_task.rs @@ -44,7 +44,7 @@ use opaque_node::OpaqueNodeMethods; use parallel::{self, WorkQueueData}; use profile_traits::mem::{self, Report, ReportKind, ReportsChan}; use profile_traits::time::{TimerMetadataFrameType, TimerMetadataReflowType}; -use profile_traits::time::{self, ProfilerMetadata, profile}; +use profile_traits::time::{self, TimerMetadata, profile}; use query::{LayoutRPCImpl, process_content_box_request, process_content_boxes_request}; use query::{MarginPadding, MarginRetrievingFragmentBorderBoxIterator, PositionProperty}; use query::{PositionRetrievingFragmentBorderBoxIterator, Side}; @@ -1434,18 +1434,20 @@ impl LayoutTask { } /// Returns profiling information which is passed to the time profiler. - fn profiler_metadata(&self) -> ProfilerMetadata { - Some((&self.url, - if self.is_iframe { + fn profiler_metadata(&self) -> Option<TimerMetadata> { + Some(TimerMetadata { + url: self.url.serialize(), + iframe: if self.is_iframe { TimerMetadataFrameType::IFrame - } else { + } else { TimerMetadataFrameType::RootWindow - }, - if self.first_reflow.get() { + }, + incremental: if self.first_reflow.get() { TimerMetadataReflowType::FirstReflow - } else { + } else { TimerMetadataReflowType::Incremental - })) + }, + }) } } diff --git a/components/layout/parallel.rs b/components/layout/parallel.rs index eddac889c50..658ce8030d6 100644 --- a/components/layout/parallel.rs +++ b/components/layout/parallel.rs @@ -12,7 +12,7 @@ use context::{LayoutContext, SharedLayoutContext}; use flow::{self, Flow, MutableFlowUtils, PostorderFlowTraversal, PreorderFlowTraversal}; use flow_ref::{self, FlowRef}; use gfx::display_list::OpaqueNode; -use profile_traits::time::{self, ProfilerMetadata, profile}; +use profile_traits::time::{self, TimerMetadata, profile}; use std::mem; use std::sync::atomic::{AtomicIsize, Ordering}; use traversal::PostorderNodeMutTraversal; @@ -465,7 +465,7 @@ pub fn traverse_dom_preorder(root: LayoutNode, pub fn traverse_flow_tree_preorder( root: &mut FlowRef, - profiler_metadata: ProfilerMetadata, + profiler_metadata: Option<TimerMetadata>, time_profiler_chan: time::ProfilerChan, shared_layout_context: &SharedLayoutContext, queue: &mut WorkQueue<SharedLayoutContext, WorkQueueData>) { @@ -488,7 +488,7 @@ pub fn traverse_flow_tree_preorder( pub fn build_display_list_for_subtree( root: &mut FlowRef, - profiler_metadata: ProfilerMetadata, + profiler_metadata: Option<TimerMetadata>, time_profiler_chan: time::ProfilerChan, shared_layout_context: &SharedLayoutContext, queue: &mut WorkQueue<SharedLayoutContext, WorkQueueData>) { diff --git a/components/profile/time.rs b/components/profile/time.rs index 21acdba8366..aa3fd79199a 100644 --- a/components/profile/time.rs +++ b/components/profile/time.rs @@ -8,6 +8,7 @@ use heartbeats; use ipc_channel::ipc::{self, IpcReceiver}; use profile_traits::energy::{energy_interval_ms, read_energy_uj}; use profile_traits::time::{ProfilerCategory, ProfilerChan, ProfilerMsg, TimerMetadata}; +use profile_traits::time::{TimerMetadataReflowType, TimerMetadataFrameType}; use std::borrow::ToOwned; use std::cmp::Ordering; use std::collections::BTreeMap; @@ -31,8 +32,14 @@ impl Formattable for Option<TimerMetadata> { } else { url }; - let incremental = if meta.incremental { " yes" } else { " no " }; - let iframe = if meta.iframe { " yes" } else { " no " }; + let incremental = match meta.incremental { + TimerMetadataReflowType::Incremental => " yes", + TimerMetadataReflowType::FirstReflow => " no ", + }; + let iframe = match meta.iframe { + TimerMetadataFrameType::RootWindow => " yes", + TimerMetadataFrameType::IFrame => " no ", + }; format!(" {:14} {:9} {:30}", incremental, iframe, url) }, None => diff --git a/components/profile_traits/Cargo.toml b/components/profile_traits/Cargo.toml index 90eb74479d2..e8704ef4757 100644 --- a/components/profile_traits/Cargo.toml +++ b/components/profile_traits/Cargo.toml @@ -13,10 +13,6 @@ energy-profiling = ["energymon", "energy-monitor"] [dependencies.ipc-channel] git = "https://github.com/pcwalton/ipc-channel" -[dependencies.url] -version = "0.2" -features = [ "serde_serialization" ] - [dependencies.energymon] git = "https://github.com/energymon/energymon-rust.git" rev = "eba1d8a" diff --git a/components/profile_traits/time.rs b/components/profile_traits/time.rs index 8cf485348f7..9fa31d69892 100644 --- a/components/profile_traits/time.rs +++ b/components/profile_traits/time.rs @@ -3,18 +3,16 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ extern crate time as std_time; -extern crate url; use energy::read_energy_uj; use ipc_channel::ipc::IpcSender; use self::std_time::precise_time_ns; -use self::url::Url; #[derive(PartialEq, Clone, PartialOrd, Eq, Ord, Deserialize, Serialize)] pub struct TimerMetadata { pub url: String, - pub iframe: bool, - pub incremental: bool, + pub iframe: TimerMetadataFrameType, + pub incremental: TimerMetadataReflowType, } #[derive(Clone, Deserialize, Serialize)] @@ -77,23 +75,20 @@ pub enum ProfilerCategory { ApplicationHeartbeat, } -#[derive(Eq, PartialEq)] +#[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Deserialize, Serialize)] pub enum TimerMetadataFrameType { RootWindow, IFrame, } -#[derive(Eq, PartialEq)] +#[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Deserialize, Serialize)] pub enum TimerMetadataReflowType { Incremental, FirstReflow, } -pub type ProfilerMetadata<'a> = - Option<(&'a Url, TimerMetadataFrameType, TimerMetadataReflowType)>; - pub fn profile<T, F>(category: ProfilerCategory, - meta: ProfilerMetadata, + meta: Option<TimerMetadata>, profiler_chan: ProfilerChan, callback: F) -> T @@ -104,12 +99,6 @@ pub fn profile<T, F>(category: ProfilerCategory, let val = callback(); let end_time = precise_time_ns(); let end_energy = read_energy_uj(); - let meta = meta.map(|(url, iframe, reflow_type)| - TimerMetadata { - url: url.serialize(), - iframe: iframe == TimerMetadataFrameType::IFrame, - incremental: reflow_type == TimerMetadataReflowType::Incremental, - }); profiler_chan.send(ProfilerMsg::Time((category, meta), (start_time, end_time), (start_energy, end_energy))); diff --git a/components/servo/Cargo.lock b/components/servo/Cargo.lock index 701aadc6d36..9d94e5c6038 100644 --- a/components/servo/Cargo.lock +++ b/components/servo/Cargo.lock @@ -1416,7 +1416,6 @@ dependencies = [ "serde 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde_macros 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.37 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] diff --git a/ports/cef/Cargo.lock b/ports/cef/Cargo.lock index 819bc11730a..da7ada6517a 100644 --- a/ports/cef/Cargo.lock +++ b/ports/cef/Cargo.lock @@ -1350,7 +1350,6 @@ dependencies = [ "serde 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde_macros 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.37 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] diff --git a/ports/gonk/Cargo.lock b/ports/gonk/Cargo.lock index 692d4b39388..dc749c0a1c5 100644 --- a/ports/gonk/Cargo.lock +++ b/ports/gonk/Cargo.lock @@ -1330,7 +1330,6 @@ dependencies = [ "serde 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde_macros 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.37 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] |