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

Side by Side Diff: third_party/WebKit/Source/core/css/CSSTiming.cpp

Issue 2533783003: Add metrics for style update time before FCP. (Closed)
Patch Set: value_or(base::TimeDelta()) Created 4 years 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "core/css/CSSTiming.h" 5 #include "core/css/CSSTiming.h"
6 6
7 #include "core/paint/PaintTiming.h" 7 #include "core/paint/PaintTiming.h"
8 8
9 namespace blink { 9 namespace blink {
10 10
11 static const char kSupplementName[] = "CSSTiming"; 11 static const char kSupplementName[] = "CSSTiming";
12 12
13 CSSTiming& CSSTiming::from(Document& document) { 13 CSSTiming& CSSTiming::from(Document& document) {
14 CSSTiming* timing = static_cast<CSSTiming*>( 14 CSSTiming* timing = static_cast<CSSTiming*>(
15 Supplement<Document>::from(document, kSupplementName)); 15 Supplement<Document>::from(document, kSupplementName));
16 if (!timing) { 16 if (!timing) {
17 timing = new CSSTiming(document); 17 timing = new CSSTiming(document);
18 Supplement<Document>::provideTo(document, kSupplementName, timing); 18 Supplement<Document>::provideTo(document, kSupplementName, timing);
19 } 19 }
20 return *timing; 20 return *timing;
21 } 21 }
22 22
23 void CSSTiming::recordAuthorStyleSheetParseTime(double seconds) { 23 void CSSTiming::recordAuthorStyleSheetParseTime(double seconds) {
24 if (!m_paintTiming->firstContentfulPaint()) 24 if (!m_paintTiming->firstContentfulPaint())
25 m_parseTimeBeforeFCP += seconds; 25 m_parseTimeBeforeFCP += seconds;
26 } 26 }
27 27
28 void CSSTiming::recordUpdateDuration(double seconds) {
29 if (!m_paintTiming->firstContentfulPaint())
30 m_updateTimeBeforeFCP += seconds;
31 }
32
28 DEFINE_TRACE(CSSTiming) { 33 DEFINE_TRACE(CSSTiming) {
29 visitor->trace(m_document); 34 visitor->trace(m_document);
30 visitor->trace(m_paintTiming); 35 visitor->trace(m_paintTiming);
31 Supplement<Document>::trace(visitor); 36 Supplement<Document>::trace(visitor);
32 } 37 }
33 38
34 CSSTiming::CSSTiming(Document& document) 39 CSSTiming::CSSTiming(Document& document)
35 : m_document(document), m_paintTiming(PaintTiming::from(document)) {} 40 : m_document(document), m_paintTiming(PaintTiming::from(document)) {}
36 41
37 } // namespace blink 42 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/css/CSSTiming.h ('k') | third_party/WebKit/Source/core/css/StyleSheetContents.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698