| Index: components/metrics/profiler/tracking_synchronizer_unittest.cc
 | 
| diff --git a/components/metrics/profiler/tracking_synchronizer_unittest.cc b/components/metrics/profiler/tracking_synchronizer_unittest.cc
 | 
| index a597a477c64a0f5a8cdb6303bd24231149c8928a..7e02937edbfa09bd36b2b449016e3723bd728f22 100644
 | 
| --- a/components/metrics/profiler/tracking_synchronizer_unittest.cc
 | 
| +++ b/components/metrics/profiler/tracking_synchronizer_unittest.cc
 | 
| @@ -3,6 +3,7 @@
 | 
|  // found in the LICENSE file.
 | 
|  
 | 
|  #include "base/memory/ref_counted.h"
 | 
| +#include "base/test/simple_test_tick_clock.h"
 | 
|  #include "base/tracked_objects.h"
 | 
|  #include "components/metrics/profiler/tracking_synchronizer.h"
 | 
|  #include "components/metrics/profiler/tracking_synchronizer_observer.h"
 | 
| @@ -26,24 +27,23 @@ class TestObserver : public TrackingSynchronizerObserver {
 | 
|    }
 | 
|  
 | 
|    void ReceivedProfilerData(
 | 
| +      const ProfilerDataAttributes& attributes,
 | 
|        const tracked_objects::ProcessDataPhaseSnapshot& process_data_phase,
 | 
| -      base::ProcessId process_id,
 | 
| -      content::ProcessType process_type,
 | 
| -      int profiling_phase,
 | 
| -      base::TimeDelta phase_start,
 | 
| -      base::TimeDelta phase_finish,
 | 
|        const ProfilerEvents& past_events) override {
 | 
| -    EXPECT_EQ(static_cast<base::ProcessId>(239), process_id);
 | 
| -    EXPECT_EQ(content::ProcessType::PROCESS_TYPE_PLUGIN, process_type);
 | 
| +    EXPECT_EQ(static_cast<base::ProcessId>(239), attributes.process_id);
 | 
| +    EXPECT_EQ(content::ProcessType::PROCESS_TYPE_PLUGIN,
 | 
| +              attributes.process_type);
 | 
|      ASSERT_EQ(1u, process_data_phase.tasks.size());
 | 
|  
 | 
| -    switch (profiling_phase) {
 | 
| +    switch (attributes.profiling_phase) {
 | 
|        case 0:
 | 
|          EXPECT_FALSE(got_phase_0_);
 | 
|          got_phase_0_ = true;
 | 
|  
 | 
| -        EXPECT_EQ(base::TimeDelta::FromMilliseconds(0), phase_start);
 | 
| -        EXPECT_EQ(base::TimeDelta::FromMilliseconds(222), phase_finish);
 | 
| +        EXPECT_EQ(base::TimeTicks() + base::TimeDelta::FromMilliseconds(111),
 | 
| +                  attributes.phase_start);
 | 
| +        EXPECT_EQ(base::TimeTicks() + base::TimeDelta::FromMilliseconds(333),
 | 
| +                  attributes.phase_finish);
 | 
|  
 | 
|          EXPECT_EQ("death_thread0",
 | 
|                    process_data_phase.tasks[0].death_thread_name);
 | 
| @@ -54,8 +54,10 @@ class TestObserver : public TrackingSynchronizerObserver {
 | 
|          EXPECT_FALSE(got_phase_1_);
 | 
|          got_phase_1_ = true;
 | 
|  
 | 
| -        EXPECT_EQ(base::TimeDelta::FromMilliseconds(222), phase_start);
 | 
| -        EXPECT_EQ(base::TimeDelta::FromMilliseconds(666), phase_finish);
 | 
| +        EXPECT_EQ(base::TimeTicks() + base::TimeDelta::FromMilliseconds(333),
 | 
| +                  attributes.phase_start);
 | 
| +        EXPECT_EQ(base::TimeTicks() + base::TimeDelta::FromMilliseconds(777),
 | 
| +                  attributes.phase_finish);
 | 
|  
 | 
|          EXPECT_EQ("death_thread1",
 | 
|                    process_data_phase.tasks[0].death_thread_name);
 | 
| @@ -77,9 +79,17 @@ class TestObserver : public TrackingSynchronizerObserver {
 | 
|    DISALLOW_COPY_AND_ASSIGN(TestObserver);
 | 
|  };
 | 
|  
 | 
| -base::TimeTicks TestTimeFromMs(int64 ms) {
 | 
| -  return base::TimeTicks() + base::TimeDelta::FromMilliseconds(ms);
 | 
| -}
 | 
| +class TestTrackingSynchronizer : public TrackingSynchronizer {
 | 
| + public:
 | 
| +  explicit TestTrackingSynchronizer(scoped_ptr<base::TickClock> clock)
 | 
| +      : TrackingSynchronizer(clock.Pass()) {}
 | 
| +
 | 
| +  using TrackingSynchronizer::RegisterPhaseCompletion;
 | 
| +  using TrackingSynchronizer::SendData;
 | 
| +
 | 
| + private:
 | 
| +  ~TestTrackingSynchronizer() override {}
 | 
| +};
 | 
|  
 | 
|  }  // namespace
 | 
|  
 | 
| @@ -88,13 +98,18 @@ TEST(TrackingSynchronizerTest, ProfilerData) {
 | 
|  #if !defined(OS_IOS)
 | 
|    content::TestBrowserThreadBundle thread_bundle;
 | 
|  #endif
 | 
| -  scoped_refptr<TrackingSynchronizer> tracking_synchronizer =
 | 
| -      new TrackingSynchronizer(TestTimeFromMs(111));
 | 
|  
 | 
| -  // Mimic a phase change event.
 | 
| -  tracking_synchronizer->phase_completion_events_sequence_.push_back(
 | 
| +  auto clock = new base::SimpleTestTickClock();  // Will be owned by
 | 
| +                                                 // |tracking_synchronizer|.
 | 
| +  clock->Advance(base::TimeDelta::FromMilliseconds(111));
 | 
| +
 | 
| +  scoped_refptr<TestTrackingSynchronizer> tracking_synchronizer =
 | 
| +      new TestTrackingSynchronizer(make_scoped_ptr(clock));
 | 
| +
 | 
| +  clock->Advance(base::TimeDelta::FromMilliseconds(222));
 | 
| +
 | 
| +  tracking_synchronizer->RegisterPhaseCompletion(
 | 
|        ProfilerEventProto::EVENT_FIRST_NONEMPTY_PAINT);
 | 
| -  tracking_synchronizer->phase_start_times_.push_back(TestTimeFromMs(333));
 | 
|  
 | 
|    tracked_objects::ProcessDataSnapshot profiler_data;
 | 
|    ProcessDataPhaseSnapshot snapshot0;
 | 
| @@ -102,17 +117,17 @@ TEST(TrackingSynchronizerTest, ProfilerData) {
 | 
|    task_snapshot0.death_thread_name = "death_thread0";
 | 
|    snapshot0.tasks.push_back(task_snapshot0);
 | 
|    ProcessDataPhaseSnapshot snapshot1;
 | 
| -  profiler_data.phased_process_data_snapshots[0] = snapshot0;
 | 
| +  profiler_data.phased_snapshots[0] = snapshot0;
 | 
|    tracked_objects::TaskSnapshot task_snapshot1;
 | 
|    task_snapshot1.death_thread_name = "death_thread1";
 | 
|    snapshot1.tasks.push_back(task_snapshot1);
 | 
| -  profiler_data.phased_process_data_snapshots[1] = snapshot1;
 | 
| +  profiler_data.phased_snapshots[1] = snapshot1;
 | 
|    profiler_data.process_id = 239;
 | 
|  
 | 
| +  clock->Advance(base::TimeDelta::FromMilliseconds(444));
 | 
|    TestObserver test_observer;
 | 
| -  tracking_synchronizer->SendData(profiler_data,
 | 
| -                                  content::ProcessType::PROCESS_TYPE_PLUGIN,
 | 
| -                                  TestTimeFromMs(777), &test_observer);
 | 
| +  tracking_synchronizer->SendData(
 | 
| +      profiler_data, content::ProcessType::PROCESS_TYPE_PLUGIN, &test_observer);
 | 
|  }
 | 
|  
 | 
|  }  // namespace metrics
 | 
| 
 |