diff options
author | Andreas Kling <akling@apple.com> | 2015-05-05 04:49:00 +0000 |
---|---|---|
committer | Konstantin Tokarev <annulen@yandex.ru> | 2018-01-15 09:38:02 +0000 |
commit | 9e2101e069807e049b1b8ace10e0b2866ef04f8f (patch) | |
tree | e7c35990c05ec8546748abefc1f9bf011ae31a25 | |
parent | 201c7117463e43e9cbd02ff33c6f491d81b2e6c7 (diff) |
Record the reference time when Performance is constructed
<https://webkit.org/b/144616>
Reviewed by Geoffrey Garen.
This is a merge of Blink's r156613 by simonjam@chromium.org.
Cache a copy of the DocumentLoader's reference timestamp when constructing
the Performance object. That way we don't have to jump through a bunch of scary
hoops to access it when now() is called later on.
* page/Performance.cpp:
(WebCore::Performance::Performance):
(WebCore::Performance::now): Deleted.
* page/Performance.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@183795 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Change-Id: Ic875df50eb309a98ac74e50715649574e7efa7ab
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
-rw-r--r-- | Source/WebCore/loader/DocumentLoadTiming.h | 2 | ||||
-rw-r--r-- | Source/WebCore/page/Performance.cpp | 4 | ||||
-rw-r--r-- | Source/WebCore/page/Performance.h | 2 |
3 files changed, 7 insertions, 1 deletions
diff --git a/Source/WebCore/loader/DocumentLoadTiming.h b/Source/WebCore/loader/DocumentLoadTiming.h index 64494330d..74b7190bf 100644 --- a/Source/WebCore/loader/DocumentLoadTiming.h +++ b/Source/WebCore/loader/DocumentLoadTiming.h @@ -68,6 +68,8 @@ public: bool hasCrossOriginRedirect() const { return m_hasCrossOriginRedirect; } bool hasSameOriginAsPreviousDocument() const { return m_hasSameOriginAsPreviousDocument; } + double referenceMonotonicTime() const { return m_referenceMonotonicTime; } + private: double m_referenceMonotonicTime; double m_referenceWallTime; diff --git a/Source/WebCore/page/Performance.cpp b/Source/WebCore/page/Performance.cpp index 9dcf46e13..edc4f9153 100644 --- a/Source/WebCore/page/Performance.cpp +++ b/Source/WebCore/page/Performance.cpp @@ -60,7 +60,9 @@ Performance::Performance(Frame* frame) #if ENABLE(USER_TIMING) , m_userTiming(0) #endif // ENABLE(USER_TIMING) + , m_referenceTime(frame->document()->loader()->timing()->referenceMonotonicTime()) { + ASSERT(m_referenceTime); } Performance::~Performance() @@ -243,7 +245,7 @@ void Performance::webkitClearMeasures(const String& measureName) double Performance::now() const { - return 1000.0 * m_frame->document()->loader()->timing()->monotonicTimeToZeroBasedDocumentTime(monotonicallyIncreasingTime()); + return 1000.0 * (WTF::monotonicallyIncreasingTime() - m_referenceTime); } } // namespace WebCore diff --git a/Source/WebCore/page/Performance.h b/Source/WebCore/page/Performance.h index 9f4e60285..9bbbc8b65 100644 --- a/Source/WebCore/page/Performance.h +++ b/Source/WebCore/page/Performance.h @@ -109,6 +109,8 @@ private: unsigned m_resourceTimingBufferSize; #endif + double m_referenceTime; + #if ENABLE(USER_TIMING) RefPtr<UserTiming> m_userTiming; #endif // ENABLE(USER_TIMING) |