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

Side by Side Diff: chrome/browser/metrics/browser_window_histogram_helper.cc

Issue 2773973002: Add Startup.BrowserView.FirstPaint / .CompositingEnded histograms. (Closed)
Patch Set: Don't wait for histograms that are not reported during browser_tests. Created 3 years, 8 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
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/metrics/browser_window_histogram_helper.h"
6
7 #include "components/startup_metric_utils/browser/startup_metric_utils.h"
8 #include "ui/compositor/compositor.h"
9
10 BrowserWindowHistogramHelper::~BrowserWindowHistogramHelper() {}
11
12 // static
13 std::unique_ptr<BrowserWindowHistogramHelper>
14 BrowserWindowHistogramHelper::MaybeRecordValueAndCreateInstanceOnBrowserPaint(
15 ui::Compositor* compositor) {
16 static bool did_first_paint = false;
17 if (did_first_paint)
18 return std::unique_ptr<BrowserWindowHistogramHelper>();
19
20 did_first_paint = true;
21
22 return std::unique_ptr<BrowserWindowHistogramHelper>(
23 new BrowserWindowHistogramHelper(compositor));
24 }
25
26 BrowserWindowHistogramHelper::BrowserWindowHistogramHelper(
27 ui::Compositor* compositor)
28 : scoped_observer_(this) {
29 startup_metric_utils::RecordBrowserWindowFirstPaint(base::TimeTicks::Now());
30
31 #if defined(OS_MACOSX)
32 if (!compositor) {
33 // In Cocoa version of Chromium, UI is rendered inside the main process
34 // using CoreAnimation compositor, and at this point everything is already
35 // visible to the user.
36 startup_metric_utils::RecordBrowserWindowFirstPaintCompositingEnded(
37 base::TimeTicks::Now());
38 return;
39 }
40 #endif // OS_MACOSX
41
42 scoped_observer_.Add(compositor);
43 }
44
45 void BrowserWindowHistogramHelper::OnCompositingEnded(
46 ui::Compositor* compositor) {
47 startup_metric_utils::RecordBrowserWindowFirstPaintCompositingEnded(
48 base::TimeTicks::Now());
49
50 scoped_observer_.RemoveAll();
51 }
52
53 void BrowserWindowHistogramHelper::OnCompositingShuttingDown(
54 ui::Compositor* compositor) {
55 scoped_observer_.RemoveAll();
56 }
OLDNEW
« no previous file with comments | « chrome/browser/metrics/browser_window_histogram_helper.h ('k') | chrome/browser/metrics/first_web_contents_profiler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698