summaryrefslogtreecommitdiff
path: root/Source/WebCore/page/PerformanceResourceTiming.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/page/PerformanceResourceTiming.h')
-rw-r--r--Source/WebCore/page/PerformanceResourceTiming.h45
1 files changed, 20 insertions, 25 deletions
diff --git a/Source/WebCore/page/PerformanceResourceTiming.h b/Source/WebCore/page/PerformanceResourceTiming.h
index 6276944ca..0eebf1e9d 100644
--- a/Source/WebCore/page/PerformanceResourceTiming.h
+++ b/Source/WebCore/page/PerformanceResourceTiming.h
@@ -29,33 +29,27 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef PerformanceResourceTiming_h
-#define PerformanceResourceTiming_h
+#pragma once
-#if ENABLE(RESOURCE_TIMING)
+#if ENABLE(WEB_TIMING)
+#include "LoadTiming.h"
+#include "NetworkLoadTiming.h"
#include "PerformanceEntry.h"
-#include <wtf/PassRefPtr.h>
#include <wtf/RefPtr.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
-class Document;
-class URL;
-class ResourceLoadTiming;
-class ResourceRequest;
-class ResourceResponse;
+class ResourceTiming;
-class PerformanceResourceTiming : public PerformanceEntry {
+class PerformanceResourceTiming final : public PerformanceEntry {
public:
- static PassRefPtr<PerformanceResourceTiming> create(const AtomicString& initiatorType, const ResourceRequest& request, const ResourceResponse& response, double initiationTime, double finishTime, Document* requestingDocument)
- {
- return adoptRef(new PerformanceResourceTiming(initiatorType, request, response, initiationTime, finishTime, requestingDocument));
- }
+ static Ref<PerformanceResourceTiming> create(MonotonicTime timeOrigin, ResourceTiming&&);
- AtomicString initiatorType() const;
+ AtomicString initiatorType() const { return m_initiatorType; }
+ double workerStart() const;
double redirectStart() const;
double redirectEnd() const;
double fetchStart() const;
@@ -68,24 +62,25 @@ public:
double responseStart() const;
double responseEnd() const;
- virtual bool isResource() { return true; }
+ bool isResource() const override { return true; }
private:
- PerformanceResourceTiming(const AtomicString& initatorType, const ResourceRequest&, const ResourceResponse&, double initiationTime, double finishTime, Document*);
+ PerformanceResourceTiming(MonotonicTime timeOrigin, ResourceTiming&&);
~PerformanceResourceTiming();
- double resourceTimeToDocumentMilliseconds(int deltaMilliseconds) const;
+ double networkLoadTimeToDOMHighResTimeStamp(double deltaMilliseconds) const;
AtomicString m_initiatorType;
- RefPtr<ResourceLoadTiming> m_timing;
- double m_finishTime;
- bool m_didReuseConnection;
+ MonotonicTime m_timeOrigin;
+ LoadTiming m_loadTiming;
+ NetworkLoadTiming m_networkLoadTiming;
bool m_shouldReportDetails;
- RefPtr<Document> m_requestingDocument;
};
-}
+} // namespace WebCore
-#endif // ENABLE(RESOURCE_TIMING)
+SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::PerformanceResourceTiming)
+ static bool isType(const WebCore::PerformanceEntry& entry) { return entry.isResource(); }
+SPECIALIZE_TYPE_TRAITS_END()
-#endif // !defined(PerformanceResourceTiming_h)
+#endif // ENABLE(WEB_TIMING)