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

Unified Diff: third_party/WebKit/Source/core/timing/PerformanceNavigationTiming.h

Issue 2472583003: Navigation Timing Level 2 (Closed)
Patch Set: Added feature flag to getEntriesByName Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/timing/PerformanceNavigationTiming.h
diff --git a/third_party/WebKit/Source/core/timing/PerformanceNavigationTiming.h b/third_party/WebKit/Source/core/timing/PerformanceNavigationTiming.h
new file mode 100644
index 0000000000000000000000000000000000000000..b6500cddcb065c8a9544ba86a84ca7d39457656e
--- /dev/null
+++ b/third_party/WebKit/Source/core/timing/PerformanceNavigationTiming.h
@@ -0,0 +1,160 @@
+/*
+ * Copyright (C) 2016 Google Inc. All rights reserved.
Kunihiko Sakamoto 2016/11/07 07:53:18 Please use the short license block (here, .cpp and
sunjian 2016/11/08 02:10:19 Done.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef PerformanceNavigationTiming_h
+#define PerformanceNavigationTiming_h
+
+#include "core/CoreExport.h"
+#include "core/frame/DOMWindowProperty.h"
+#include "core/timing/PerformanceResourceTiming.h"
+#include "wtf/Forward.h"
+
+namespace blink {
+
+class DocumentLoadTiming;
+class DocumentLoader;
+class DocumentTiming;
+
+// TODO(sunjian): Add layout test
+class CORE_EXPORT PerformanceNavigationTiming final
+ : public PerformanceResourceTiming {
+ DEFINE_WRAPPERTYPEINFO();
+
+ public:
+ static PerformanceNavigationTiming* create(
kinuko 2016/11/06 15:16:43 This create method may not be really useful as it
sunjian 2016/11/08 02:10:19 Done.
+ double timeOrigin,
+ double unloadEventStart,
+ double unloadEventEnd,
+ double loadEventStart,
+ double loadEventEnd,
+ unsigned short redirectCount,
+ double domInteractive,
+ double domContentLoadedEventStart,
+ double domContentLoadedEventEnd,
+ double domComplete,
+ AtomicString type,
+ double redirectStart,
+ double redirectEnd,
+ double fetchStart,
+ double responseEnd,
+ bool hasCrossOriginRedirect,
+ bool hasSameOriginAsPreviousDocument,
+ ResourceLoadTiming* timing,
+ double lastRedirectEndTime,
+ double finishTime,
+ unsigned long long transferSize,
+ unsigned long long encodedBodyLength,
+ unsigned long long decodedBodyLength,
+ bool didReuseConnection) {
+ return new PerformanceNavigationTiming(
+ timeOrigin, unloadEventStart, unloadEventEnd, loadEventStart,
+ loadEventEnd, redirectCount, domInteractive, domContentLoadedEventStart,
+ domContentLoadedEventEnd, domComplete, type, redirectStart, redirectEnd,
+ fetchStart, responseEnd, hasCrossOriginRedirect,
+ hasSameOriginAsPreviousDocument, "", timing, lastRedirectEndTime,
+ finishTime, transferSize, encodedBodyLength, decodedBodyLength,
+ didReuseConnection, true /*allowTimingDetails*/,
+ true /*allowRediectDetails*/, "document", "navigation", timeOrigin);
+ }
+
+ double unloadEventStart() const;
+ double unloadEventEnd() const;
+ double domInteractive() const;
+ double domContentLoadedEventStart() const;
+ double domContentLoadedEventEnd() const;
+ double domComplete() const;
+ double loadEventStart() const;
+ double loadEventEnd() const;
+ AtomicString type() const;
+ unsigned short redirectCount() const;
+
+ double fetchStart() const override;
+ double redirectStart() const override;
+ double redirectEnd() const override;
+ double responseEnd() const override;
+
+ protected:
+ void buildJSONValue(V8ObjectBuilder&) const override;
+
+ private:
+ explicit PerformanceNavigationTiming(double timeOrigin,
kinuko 2016/11/06 15:16:43 no need of explicit
sunjian 2016/11/08 02:10:19 Done.
+ double unloadEventStart,
+ double unloadEventEnd,
+ double loadEventStart,
+ double loadEventEnd,
+ unsigned short redirectCount,
+ double domInteractive,
+ double domContentLoadedEventStart,
+ double domContentLoadedEventEnd,
+ double domComplete,
+ AtomicString type,
+ double redirectStart,
+ double redirectEnd,
+ double fetchStart,
+ double responseEnd,
+ bool hasCrossOriginRedirect,
+ bool hasSameOriginAsPreviousDocument,
+ const AtomicString& initiatorType,
+ ResourceLoadTiming*,
+ double lastRedirectEndTime,
+ double finishTime,
+ unsigned long long transferSize,
+ unsigned long long encodedBodyLength,
+ unsigned long long decodedBodyLength,
+ bool didReuseConnection,
+ bool allowTimingDetails,
+ bool allowRedirectDetails,
+ const String& name,
+ const String& entryType,
+ double startTime);
+
+ ~PerformanceNavigationTiming() override;
+
+ double m_timeOrigin;
+ double m_unloadEventStart;
+ double m_unloadEventEnd;
+ double m_loadEventStart;
+ double m_loadEventEnd;
+ unsigned short m_redirectCount;
+ double m_domInteractive;
+ double m_domContentLoadedEventStart;
+ double m_domContentLoadedEventEnd;
+ double m_domComplete;
+ AtomicString m_type;
+ double m_redirectStart;
+ double m_redirectEnd;
+ double m_fetchStart;
+ double m_responseEnd;
+ bool m_hasCrossOriginRedirect;
+ bool m_hasSameOriginAsPreviousDocument;
+};
+} // namespace blink
+
+#endif // PerformanceNavigationTiming_h

Powered by Google App Engine
This is Rietveld 408576698