Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(420)

Side by Side Diff: chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.cc

Issue 2901383002: Buffer cross frame paint timing updates. (Closed)
Patch Set: factor WeakMockTimer into a common location. Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_ test_harness.h" 5 #include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_ test_harness.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <string> 8 #include <string>
9 9
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 20 matching lines...) Expand all
31 : test_(test) {} 31 : test_(test) {}
32 32
33 bool IsNewTabPageUrl(const GURL& url) override { return false; } 33 bool IsNewTabPageUrl(const GURL& url) override { return false; }
34 34
35 // Forward the registration logic to the test class so that derived classes 35 // Forward the registration logic to the test class so that derived classes
36 // can override the logic there without depending on the embedder interface. 36 // can override the logic there without depending on the embedder interface.
37 void RegisterObservers(PageLoadTracker* tracker) override { 37 void RegisterObservers(PageLoadTracker* tracker) override {
38 test_->RegisterObservers(tracker); 38 test_->RegisterObservers(tracker);
39 } 39 }
40 40
41 std::unique_ptr<base::Timer> CreateTimer() override {
42 std::unique_ptr<WeakMockTimer> timer = base::MakeUnique<WeakMockTimer>();
Charlie Harrison 2017/05/30 14:49:07 nit: usually base::MakeUnique is paired with auto:
Bryan McQuade 2017/05/30 15:30:22 done
43 test_->SetMockTimer(timer->AsWeakPtr());
44 return std::move(timer);
45 }
46
41 private: 47 private:
42 PageLoadMetricsObserverTestHarness* test_; 48 PageLoadMetricsObserverTestHarness* test_;
43 49
44 DISALLOW_COPY_AND_ASSIGN(TestPageLoadMetricsEmbedderInterface); 50 DISALLOW_COPY_AND_ASSIGN(TestPageLoadMetricsEmbedderInterface);
45 }; 51 };
46 52
47 } // namespace 53 } // namespace
48 54
49 PageLoadMetricsObserverTestHarness::PageLoadMetricsObserverTestHarness() 55 PageLoadMetricsObserverTestHarness::PageLoadMetricsObserverTestHarness()
50 : ChromeRenderViewHostTestHarness() {} 56 : ChromeRenderViewHostTestHarness() {}
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 145
140 void PageLoadMetricsObserverTestHarness::SimulateTimingUpdate( 146 void PageLoadMetricsObserverTestHarness::SimulateTimingUpdate(
141 const mojom::PageLoadTiming& timing) { 147 const mojom::PageLoadTiming& timing) {
142 SimulateTimingAndMetadataUpdate(timing, mojom::PageLoadMetadata()); 148 SimulateTimingAndMetadataUpdate(timing, mojom::PageLoadMetadata());
143 } 149 }
144 150
145 void PageLoadMetricsObserverTestHarness::SimulateTimingAndMetadataUpdate( 151 void PageLoadMetricsObserverTestHarness::SimulateTimingAndMetadataUpdate(
146 const mojom::PageLoadTiming& timing, 152 const mojom::PageLoadTiming& timing,
147 const mojom::PageLoadMetadata& metadata) { 153 const mojom::PageLoadMetadata& metadata) {
148 observer_->OnTimingUpdated(web_contents()->GetMainFrame(), timing, metadata); 154 observer_->OnTimingUpdated(web_contents()->GetMainFrame(), timing, metadata);
155 // If sending the timing update caused the PageLoadMetricsUpdateDispatcher to
156 // schedule a buffering timer, then fire it now so metrics are dispatched to
157 // observers.
158 base::MockTimer* mock_timer = GetMockTimer();
159 if (mock_timer && mock_timer->IsRunning())
160 mock_timer->Fire();
149 } 161 }
150 162
151 void PageLoadMetricsObserverTestHarness::SimulateStartedResource( 163 void PageLoadMetricsObserverTestHarness::SimulateStartedResource(
152 const ExtraRequestStartInfo& info) { 164 const ExtraRequestStartInfo& info) {
153 observer_->OnRequestStarted(content::GlobalRequestID(), info.resource_type, 165 observer_->OnRequestStarted(content::GlobalRequestID(), info.resource_type,
154 base::TimeTicks::Now()); 166 base::TimeTicks::Now());
155 } 167 }
156 168
157 void PageLoadMetricsObserverTestHarness::SimulateLoadedResource( 169 void PageLoadMetricsObserverTestHarness::SimulateLoadedResource(
158 const ExtraRequestCompleteInfo& info) { 170 const ExtraRequestCompleteInfo& info) {
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 } 211 }
200 212
201 void PageLoadMetricsObserverTestHarness::NavigateWithPageTransitionAndCommit( 213 void PageLoadMetricsObserverTestHarness::NavigateWithPageTransitionAndCommit(
202 const GURL& url, 214 const GURL& url,
203 ui::PageTransition transition) { 215 ui::PageTransition transition) {
204 controller().LoadURL(url, content::Referrer(), transition, std::string()); 216 controller().LoadURL(url, content::Referrer(), transition, std::string());
205 content::WebContentsTester::For(web_contents())->CommitPendingNavigation(); 217 content::WebContentsTester::For(web_contents())->CommitPendingNavigation();
206 } 218 }
207 219
208 } // namespace page_load_metrics 220 } // namespace page_load_metrics
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698