summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Kling <akling@apple.com>2015-05-05 04:49:00 +0000
committerKonstantin Tokarev <annulen@yandex.ru>2018-01-15 09:38:02 +0000
commit9e2101e069807e049b1b8ace10e0b2866ef04f8f (patch)
treee7c35990c05ec8546748abefc1f9bf011ae31a25
parent201c7117463e43e9cbd02ff33c6f491d81b2e6c7 (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.h2
-rw-r--r--Source/WebCore/page/Performance.cpp4
-rw-r--r--Source/WebCore/page/Performance.h2
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)