aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/layout/layout_task.rs20
-rw-r--r--components/layout/parallel.rs6
-rw-r--r--components/profile/time.rs11
-rw-r--r--components/profile_traits/Cargo.toml4
-rw-r--r--components/profile_traits/time.rs21
-rw-r--r--components/servo/Cargo.lock1
-rw-r--r--ports/cef/Cargo.lock1
-rw-r--r--ports/gonk/Cargo.lock1
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]]