| OLD | NEW |
| 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 |
| OLD | NEW |