WebKit Bugzilla
Attachment 340213 Details for
Bug 175569
: Add the PerformanceServerTiming Interface which makes Server-Timing header timing values available to JavaScript running in the browser.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-175569-20180511145207.patch (text/plain), 183.43 KB, created by
cvazac
on 2018-05-11 12:52:09 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
cvazac
Created:
2018-05-11 12:52:09 PDT
Size:
183.43 KB
patch
obsolete
>Subversion Revision: 231714 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 20d7b2350c5c765b4dd77737b9802357ad28c7f9..68e7b36a09130e42688bf498297e4e66d1666504 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,54 @@ >+2018-05-11 Charles Vazac <cvazac@gmail.com> >+ >+ Add the PerformanceServerTiming Interface which makes Server-Timing header timing values available to JavaScript running in the browser. >+ https://bugs.webkit.org/show_bug.cgi?id=175569 >+ >+ Reviewed by Youenn Fablet. >+ >+ Tests were imported from web-platform-tests: WebKit/LayoutTests/imported/w3c/web-platform-tests/server-timing/* >+ >+ * Sources.txt: Added references to HeaderFieldTokenizer.cpp, ServerTiming.cpp, and ServerTimingParser.cpp. >+ * WebCore.xcodeproj/project.pbxproj: Added various files. >+ * loader/HeaderFieldTokenizer.cpp: Added. >+ (WebCore::HeaderFieldTokenizer::HeaderFieldTokenizer): Added class for tokenizing header values. >+ (WebCore::HeaderFieldTokenizer::consume): Added method to consume a specified character. >+ (WebCore::HeaderFieldTokenizer::consumeQuotedString): Added method to consume a quote-string. >+ (WebCore::HeaderFieldTokenizer::consumeToken): Added a method to consume a token. >+ (WebCore::HeaderFieldTokenizer::consumeTokenOrQuotedString): Added method to consume a quote-string or quote-string, depending on net character. >+ (WebCore::HeaderFieldTokenizer::skipSpaces): Added method to skip whitespace. >+ (WebCore::HeaderFieldTokenizer::consumeBeforeAnyCharMatch): Added method to advance the cursor up until any of a list of characters. >+ * loader/HeaderFieldTokenizer.h: Added. >+ * loader/HTTPHeaderField.cpp: Expose isTokenCharacter and isWhitespace. >+ * loader/HTTPHeaderField.h: Expose isTokenCharacter and isWhitespace. >+ * loader/PolicyChecker.cpp: Added #include so source compiled on my machine. >+ * loader/ResourceTiming.cpp: >+ (WebCore::ResourceTiming::ResourceTiming): Added call to initServerTiming to parse the header. >+ (WebCore::ResourceTiming::initServerTiming): Added method to parse the header. >+ (WebCore::ResourceTiming::populateServerTiming): Added method to populate the server timing entries on a PerformanceResourceTiming object. >+ (WebCore::ResourceTiming::isolatedCopy const): Added code to copy over the server timing entries. >+ * loader/ResourceTiming.h: >+ (WebCore::ResourceTiming::ResourceTiming): Accept collection of server timing entries in c'tor. >+ * loader/ServerTiming.cpp: Added. >+ (WebCore::ServerTiming::setParameter): Set named parameters, ignoring unrecognized or duplicates. >+ (WebCore::ServerTiming::isolatedCopy const): Return a new pointer to the object. >+ * loader/ServerTiming.h: Added. >+ (WebCore::ServerTiming::ServerTiming): Added struct for the data needed by a server timing entry. >+ (WebCore::ServerTiming::name const): Added name field of a server timing entry. >+ (WebCore::ServerTiming::duration const): Added duration field of a server timing entry. >+ (WebCore::ServerTiming::description const): Added description field of a server timing entry. >+ * loader/ServerTimingParser.cpp: Added. >+ (WebCore::ServerTimingParser::parseServerTiming): Parses the header generating a collection of server timing structs. >+ * loader/ServerTimingParser.h: Added. >+ * loader/WorkerThreadableLoader.h: Fix build. >+ * page/Performance.cpp: >+ (WebCore::Performance::addResourceTiming): Fixed a typo. >+ * page/PerformanceResourceTiming.cpp: >+ (WebCore::PerformanceResourceTiming::PerformanceResourceTiming): Given a ResourceTiming object, populate our collection of PerformanceServerTiming objects. >+ * page/PerformanceResourceTiming.h: Added serverTiming member and getter. >+ * page/PerformanceResourceTiming.idl: Added serverTiming member to interface. >+ * platform/network/HTTPHeaderNames.in: Added "Server-Timing" to the header enum. >+ * platform/network/ResourceResponseBase.cpp: Added "Server-Timing" to isSafeCrossOriginResponseHeader whitelist. >+ > 2018-05-11 Chris Dumez <cdumez@apple.com> > > REGRESSION (async policy delegate): Revoking an object URL immediately after triggering download breaks file download >diff --git a/Source/WebCore/Sources.txt b/Source/WebCore/Sources.txt >index c7045af86c02d93897b8eb88121d9090fd8ca033..9b14a3dfcc108df3899c8fc9a7113909291f9a56 100644 >--- a/Source/WebCore/Sources.txt >+++ b/Source/WebCore/Sources.txt >@@ -1242,13 +1242,14 @@ loader/DocumentLoader.cpp > loader/DocumentThreadableLoader.cpp > loader/DocumentWriter.cpp > loader/EmptyClients.cpp >+loader/FetchIdioms.cpp > loader/FTPDirectoryParser.cpp > loader/FormState.cpp > loader/FormSubmission.cpp > loader/FrameLoadRequest.cpp > loader/FrameLoader.cpp > loader/FrameLoaderStateMachine.cpp >-loader/FetchIdioms.cpp >+loader/HeaderFieldTokenizer.cpp > loader/HTTPHeaderField.cpp > loader/HistoryController.cpp > loader/ImageLoader.cpp >@@ -1262,6 +1263,7 @@ loader/MixedContentChecker.cpp > loader/NavigationAction.cpp > loader/NavigationScheduler.cpp > loader/NetscapePlugInStreamLoader.cpp >+loader/ServerTimingParser.cpp > loader/PingLoader.cpp > loader/PolicyChecker.cpp > loader/ProgressTracker.cpp >@@ -1272,6 +1274,7 @@ loader/ResourceLoadStatistics.cpp > loader/ResourceLoader.cpp > loader/ResourceTiming.cpp > loader/ResourceTimingInformation.cpp >+loader/ServerTiming.cpp > loader/SinkDocument.cpp > loader/SubframeLoader.cpp > loader/SubresourceIntegrity.cpp >diff --git a/Source/WebCore/WebCore.xcodeproj/project.pbxproj b/Source/WebCore/WebCore.xcodeproj/project.pbxproj >index e5bb1b8c63209663bf55d1aecbf4de3ed852948e..6a431808ddae8b82af37d40c1a62e9aa5aa90c95 100644 >--- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj >+++ b/Source/WebCore/WebCore.xcodeproj/project.pbxproj >@@ -688,6 +688,7 @@ > 26F756B51B3B68F20005DD79 /* ImmutableNFANodeBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 26F756B41B3B68F20005DD79 /* ImmutableNFANodeBuilder.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 26F9A83818A046AC00AEB88A /* ViewportConfiguration.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26F9A83618A046AC00AEB88A /* ViewportConfiguration.cpp */; }; > 26F9A83918A046AC00AEB88A /* ViewportConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 26F9A83718A046AC00AEB88A /* ViewportConfiguration.h */; settings = {ATTRIBUTES = (Private, ); }; }; >+ 285D32082035D6560070D32F /* ServerTimingParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 288E82F02035D4ED00B0DCFF /* ServerTimingParser.h */; }; > 2914E3081CAB5A440049966F /* AccessibilityAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 2914E3061CAB5A440049966F /* AccessibilityAttachment.h */; }; > 2917B5621473496C0052C9D0 /* LayerFlushScheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = 2917B55F1473496C0052C9D0 /* LayerFlushScheduler.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 2917B5631473496C0052C9D0 /* LayerFlushSchedulerClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 2917B5601473496C0052C9D0 /* LayerFlushSchedulerClient.h */; settings = {ATTRIBUTES = (Private, ); }; }; >@@ -6383,6 +6384,12 @@ > 26F756B41B3B68F20005DD79 /* ImmutableNFANodeBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImmutableNFANodeBuilder.h; sourceTree = "<group>"; }; > 26F9A83618A046AC00AEB88A /* ViewportConfiguration.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ViewportConfiguration.cpp; sourceTree = "<group>"; }; > 26F9A83718A046AC00AEB88A /* ViewportConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ViewportConfiguration.h; sourceTree = "<group>"; }; >+ 28538EED20221FA600D1909A /* HeaderFieldTokenizer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HeaderFieldTokenizer.cpp; sourceTree = "<group>"; }; >+ 28538EEE20221FA600D1909A /* HeaderFieldTokenizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HeaderFieldTokenizer.h; sourceTree = "<group>"; }; >+ 286E4DCB2021048800315238 /* ServerTiming.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ServerTiming.cpp; sourceTree = "<group>"; }; >+ 286E4DCC2021048800315238 /* ServerTiming.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServerTiming.h; sourceTree = "<group>"; }; >+ 288E82EE2035D2BE00B0DCFF /* ServerTimingParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ServerTimingParser.cpp; path = loader/ServerTimingParser.cpp; sourceTree = "<group>"; }; >+ 288E82F02035D4ED00B0DCFF /* ServerTimingParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ServerTimingParser.h; path = loader/ServerTimingParser.h; sourceTree = "<group>"; }; > 28DB9BC52020EA0400E54A07 /* PerformanceServerTiming.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PerformanceServerTiming.cpp; sourceTree = "<group>"; }; > 28DB9BC62020EA0400E54A07 /* PerformanceServerTiming.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PerformanceServerTiming.h; sourceTree = "<group>"; }; > 28DB9BC72020EA0400E54A07 /* PerformanceServerTiming.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PerformanceServerTiming.idl; sourceTree = "<group>"; }; >@@ -15412,6 +15419,8 @@ > 0867D691FE84028FC02AAC07 /* WebKit */ = { > isa = PBXGroup; > children = ( >+ 288E82F02035D4ED00B0DCFF /* ServerTimingParser.h */, >+ 288E82EE2035D2BE00B0DCFF /* ServerTimingParser.cpp */, > 1C09D04B1E31C32800725F18 /* PAL.xcodeproj */, > 65C97AF208EA908800ACD273 /* config.h */, > EDEC98020AED7E170059137F /* WebCorePrefix.h */, >@@ -24157,6 +24166,8 @@ > 628D214D12131EF40055DCFC /* FrameNetworkingContext.h */, > 51C81B870C4422F70019ECE3 /* FTPDirectoryParser.cpp */, > 51C81B880C4422F70019ECE3 /* FTPDirectoryParser.h */, >+ 28538EED20221FA600D1909A /* HeaderFieldTokenizer.cpp */, >+ 28538EEE20221FA600D1909A /* HeaderFieldTokenizer.h */, > 97DCE1FF10807C750057D394 /* HistoryController.cpp */, > 97DCE20010807C750057D394 /* HistoryController.h */, > 5CA1DEC21F71E68600E71BD3 /* HTTPHeaderField.cpp */, >@@ -24211,6 +24222,8 @@ > A5CE9F3C1E4BC586001BBE7C /* ResourceTiming.h */, > CBC2D22D1CE5B77400D1880B /* ResourceTimingInformation.cpp */, > CBC2D22E1CE5B77D00D1880B /* ResourceTimingInformation.h */, >+ 286E4DCB2021048800315238 /* ServerTiming.cpp */, >+ 286E4DCC2021048800315238 /* ServerTiming.h */, > 51327D5F11A33A2B004F9D65 /* SinkDocument.cpp */, > 51327D5E11A33A2B004F9D65 /* SinkDocument.h */, > D000ED2511C1B9CD00C47726 /* SubframeLoader.cpp */, >@@ -30033,6 +30046,7 @@ > 077AF14318F4B1BB0001ED61 /* SerializedPlatformRepresentationMac.h in Headers */, > A75E497610752ACB00C9B896 /* SerializedScriptValue.h in Headers */, > 516F7F6D1C31E39A00F111DC /* ServerOpenDBRequest.h in Headers */, >+ 285D32082035D6560070D32F /* ServerTimingParser.h in Headers */, > 2D93AEE319DF5641002A86C3 /* ServicesOverlayController.h in Headers */, > 51F1755D1F3EBC8300C74950 /* ServiceWorker.h in Headers */, > A581ED131FB288CF00CED4EC /* ServiceWorkerAgent.h in Headers */, >diff --git a/Source/WebCore/loader/HTTPHeaderField.cpp b/Source/WebCore/loader/HTTPHeaderField.cpp >index b6da63a0e262e498fbac6645f8c31ab9bf5b9099..4fe16f130b8d329d3f83f52540437f11eb6a00c5 100644 >--- a/Source/WebCore/loader/HTTPHeaderField.cpp >+++ b/Source/WebCore/loader/HTTPHeaderField.cpp >@@ -30,7 +30,7 @@ namespace WebCore { > > namespace RFC7230 { > >-static bool isTokenCharacter(UChar c) >+bool isTokenCharacter(UChar c) > { > return isASCIIAlpha(c) || isASCIIDigit(c) > || c == '!' || c == '#' || c == '$' >@@ -55,7 +55,7 @@ static bool isVisibleCharacter(UChar c) > return isTokenCharacter(c) || isDelimiter(c); > } > >-static bool isWhitespace(UChar c) >+bool isWhitespace(UChar c) > { > return c == ' ' || c == '\t'; > } >diff --git a/Source/WebCore/loader/HTTPHeaderField.h b/Source/WebCore/loader/HTTPHeaderField.h >index 49e4d6dc930627c7652a28802a04eb816bccf8ca..7ce12230fdeee053507be2ef399a146d65c063f1 100644 >--- a/Source/WebCore/loader/HTTPHeaderField.h >+++ b/Source/WebCore/loader/HTTPHeaderField.h >@@ -71,4 +71,9 @@ std::optional<HTTPHeaderField> HTTPHeaderField::decode(Decoder& decoder) > return {{ WTFMove(*name), WTFMove(*value) }}; > } > >+namespace RFC7230 { >+bool isTokenCharacter(UChar); >+bool isWhitespace(UChar); >+} // namespace RFC7230 >+ > } // namespace WebCore >diff --git a/Source/WebCore/loader/HeaderFieldTokenizer.cpp b/Source/WebCore/loader/HeaderFieldTokenizer.cpp >new file mode 100644 >index 0000000000000000000000000000000000000000..9c3ff4a3c4af7b20ad6e2a56c88a3002d25b1abb >--- /dev/null >+++ b/Source/WebCore/loader/HeaderFieldTokenizer.cpp >@@ -0,0 +1,123 @@ >+/* >+ * Copyright 2017 The Chromium Authors. All rights reserved. >+ * Copyright (C) 2018 Akamai Technologies Inc. All rights reserved. >+ * >+ * Redistribution and use in source and binary forms, with or without >+ * modification, are permitted provided that the following conditions >+ * are met: >+ * 1. Redistributions of source code must retain the above copyright >+ * notice, this list of conditions and the following disclaimer. >+ * 2. 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. >+ * >+ * 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. >+ */ >+ >+#include "config.h" >+#include "HeaderFieldTokenizer.h" >+ >+#include "HTTPHeaderField.h" >+#include <wtf/text/StringBuilder.h> >+ >+namespace WebCore { >+ >+HeaderFieldTokenizer::HeaderFieldTokenizer(const String& headerField) >+ : m_input(headerField) >+{ >+ skipSpaces(); >+} >+ >+bool HeaderFieldTokenizer::consume(UChar c) >+{ >+ ASSERT(c != ' ' && c != '\t'); >+ >+ if (isConsumed() || m_input[m_index] != c) >+ return false; >+ >+ ++m_index; >+ skipSpaces(); >+ return true; >+} >+ >+String HeaderFieldTokenizer::consumeQuotedString() >+{ >+ StringBuilder builder; >+ >+ ASSERT(m_input[m_index] == '"'); >+ ++m_index; >+ >+ while (!isConsumed()) { >+ if (m_input[m_index] == '"') { >+ String output = builder.toString(); >+ ++m_index; >+ skipSpaces(); >+ return output; >+ } >+ if (m_input[m_index] == '\\') { >+ ++m_index; >+ if (isConsumed()) >+ return String(); >+ } >+ builder.append(m_input[m_index]); >+ ++m_index; >+ } >+ return String(); >+} >+ >+String HeaderFieldTokenizer::consumeToken() >+{ >+ auto start = m_index; >+ while (!isConsumed() && RFC7230::isTokenCharacter(m_input[m_index])) >+ ++m_index; >+ >+ if (start == m_index) >+ return String(); >+ >+ String output = m_input.substring(start, m_index - start); >+ skipSpaces(); >+ return output; >+} >+ >+String HeaderFieldTokenizer::consumeTokenOrQuotedString() >+{ >+ if (isConsumed()) >+ return String(); >+ >+ if (m_input[m_index] == '"') >+ return consumeQuotedString(); >+ >+ return consumeToken(); >+} >+ >+void HeaderFieldTokenizer::skipSpaces() >+{ >+ while (!isConsumed() && RFC7230::isWhitespace(m_input[m_index])) >+ ++m_index; >+} >+ >+void HeaderFieldTokenizer::consumeBeforeAnyCharMatch(const Vector<UChar>& chars) >+{ >+ ASSERT(chars.size() > 0U && chars.size() < 3U); >+ >+ while (!isConsumed()) { >+ for (const auto& c : chars) { >+ if (c == m_input[m_index]) >+ return; >+ } >+ >+ ++m_index; >+ } >+} >+ >+} // namespace WebCore >diff --git a/Source/WebCore/loader/HeaderFieldTokenizer.h b/Source/WebCore/loader/HeaderFieldTokenizer.h >new file mode 100644 >index 0000000000000000000000000000000000000000..fe29f409ffb874ea45184b97714f2c94f54dc2c0 >--- /dev/null >+++ b/Source/WebCore/loader/HeaderFieldTokenizer.h >@@ -0,0 +1,64 @@ >+/* >+ * Copyright 2017 The Chromium Authors. All rights reserved. >+ * Copyright (C) 2018 Akamai Technologies Inc. All rights reserved. >+ * >+ * Redistribution and use in source and binary forms, with or without >+ * modification, are permitted provided that the following conditions >+ * are met: >+ * 1. Redistributions of source code must retain the above copyright >+ * notice, this list of conditions and the following disclaimer. >+ * 2. 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. >+ * >+ * 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. >+ */ >+ >+#pragma once >+ >+#include <wtf/text/WTFString.h> >+ >+namespace WebCore { >+ >+// Parses header fields into tokens, quoted strings and separators. >+// Commonly used by ParsedContent* classes. >+class HeaderFieldTokenizer { >+ >+public: >+ explicit HeaderFieldTokenizer(const String&); >+ >+ // Try to parse a separator character, a token or either a token or a quoted >+ // string from the |header_field| input. Return |true| on success. Return >+ // |false| if the separator character, the token or the quoted string is >+ // missing or invalid. >+ bool consume(UChar); >+ String consumeToken(); >+ String consumeTokenOrQuotedString(); >+ >+ // Consume all characters before (but excluding) any of the characters from >+ // the Vector parameter are found. >+ // Because we potentially have to iterate through the entire Vector for each >+ // character of the base string, the Vector should be small (< 3 members). >+ void consumeBeforeAnyCharMatch(const Vector<UChar>&); >+ >+ bool isConsumed() const { return m_index >= m_input.length(); } >+ >+private: >+ String consumeQuotedString(); >+ void skipSpaces(); >+ >+ unsigned m_index = 0; >+ const String m_input; >+}; >+ >+} // namespace WebCore >diff --git a/Source/WebCore/loader/PolicyChecker.cpp b/Source/WebCore/loader/PolicyChecker.cpp >index 53d19a4d1a603a2ab9333676bf0134e71966ec90..b6690ea9665a1515c97a63adc9407732b9819127 100644 >--- a/Source/WebCore/loader/PolicyChecker.cpp >+++ b/Source/WebCore/loader/PolicyChecker.cpp >@@ -46,6 +46,7 @@ > #include "HTMLFormElement.h" > #include "HTMLFrameOwnerElement.h" > #include "HTMLPlugInElement.h" >+#include "Logging.h" > #include <wtf/CompletionHandler.h> > > #if USE(QUICK_LOOK) >diff --git a/Source/WebCore/loader/ResourceTiming.cpp b/Source/WebCore/loader/ResourceTiming.cpp >index fbc5c70cca3dff26df1e23c29c58daa5ac7bef7d..dcc47b361dddf8758993fd54ee407e12c12b7194 100644 >--- a/Source/WebCore/loader/ResourceTiming.cpp >+++ b/Source/WebCore/loader/ResourceTiming.cpp >@@ -27,7 +27,9 @@ > #include "ResourceTiming.h" > > #include "CachedResource.h" >+#include "PerformanceServerTiming.h" > #include "SecurityOrigin.h" >+#include "ServerTimingParser.h" > > namespace WebCore { > >@@ -76,6 +78,7 @@ ResourceTiming::ResourceTiming(const URL& url, const String& initiator, const Lo > , m_loadTiming(loadTiming) > , m_allowTimingDetails(passesTimingAllowCheck(response, securityOrigin)) > { >+ initServerTiming(response); > } > > ResourceTiming::ResourceTiming(CachedResource& resource, const String& initiator, const LoadTiming& loadTiming, const NetworkLoadMetrics& networkLoadMetrics, const SecurityOrigin& securityOrigin) >@@ -85,6 +88,7 @@ ResourceTiming::ResourceTiming(CachedResource& resource, const String& initiator > , m_networkLoadMetrics(networkLoadMetrics) > , m_allowTimingDetails(passesTimingAllowCheck(resource.response(), securityOrigin)) > { >+ initServerTiming(resource.response()); > } > > ResourceTiming::ResourceTiming(const URL& url, const String& initiator, const LoadTiming& loadTiming, const NetworkLoadMetrics& networkLoadMetrics, const ResourceResponse& response, const SecurityOrigin& securityOrigin) >@@ -94,11 +98,25 @@ ResourceTiming::ResourceTiming(const URL& url, const String& initiator, const Lo > , m_networkLoadMetrics(networkLoadMetrics) > , m_allowTimingDetails(passesTimingAllowCheck(response, securityOrigin)) > { >+ initServerTiming(response); >+} >+ >+void ResourceTiming::initServerTiming(const ResourceResponse& response) >+{ >+ if (RuntimeEnabledFeatures::sharedFeatures().serverTimingEnabled() && m_allowTimingDetails) >+ m_serverTiming = ServerTimingParser::parseServerTiming(response.httpHeaderField(HTTPHeaderName::ServerTiming)); >+} >+ >+Vector<Ref<PerformanceServerTiming>> ResourceTiming::populateServerTiming() >+{ >+ return WTF::map(m_serverTiming, [] (auto& entry) { >+ return PerformanceServerTiming::create(WTFMove(entry.name), entry.duration, WTFMove(entry.description)); >+ }); > } > > ResourceTiming ResourceTiming::isolatedCopy() const > { >- return ResourceTiming(m_url.isolatedCopy(), m_initiator.isolatedCopy(), m_loadTiming.isolatedCopy(), m_networkLoadMetrics.isolatedCopy(), m_allowTimingDetails); >+ return ResourceTiming(m_url.isolatedCopy(), m_initiator.isolatedCopy(), m_loadTiming.isolatedCopy(), m_networkLoadMetrics.isolatedCopy(), m_allowTimingDetails, crossThreadCopy(m_serverTiming)); > } > > } // namespace WebCore >diff --git a/Source/WebCore/loader/ResourceTiming.h b/Source/WebCore/loader/ResourceTiming.h >index c308035d2ae5754ad45da2a5a3b59ab900b9452b..6c9acb193a67023bb5dc36bac4da7e79883443be 100644 >--- a/Source/WebCore/loader/ResourceTiming.h >+++ b/Source/WebCore/loader/ResourceTiming.h >@@ -27,11 +27,13 @@ > > #include "LoadTiming.h" > #include "NetworkLoadMetrics.h" >+#include "ServerTiming.h" > #include "URL.h" > > namespace WebCore { > > class CachedResource; >+class PerformanceServerTiming; > class ResourceResponse; > class SecurityOrigin; > >@@ -47,7 +49,7 @@ public: > LoadTiming loadTiming() const { return m_loadTiming; } > NetworkLoadMetrics networkLoadMetrics() const { return m_networkLoadMetrics; } > bool allowTimingDetails() const { return m_allowTimingDetails; } >- >+ Vector<Ref<PerformanceServerTiming>> populateServerTiming(); > ResourceTiming isolatedCopy() const; > > void overrideInitiatorName(const String& name) { m_initiator = name; } >@@ -56,20 +58,23 @@ private: > ResourceTiming(CachedResource&, const String& initiator, const LoadTiming&, const NetworkLoadMetrics&, const SecurityOrigin&); > ResourceTiming(const URL&, const String& initiator, const LoadTiming&, const NetworkLoadMetrics&, const ResourceResponse&, const SecurityOrigin&); > ResourceTiming(const URL&, const String& initiator, const LoadTiming&, const ResourceResponse&, const SecurityOrigin&); >- ResourceTiming(const URL& url, const String& initiator, const LoadTiming& loadTiming, const NetworkLoadMetrics& networkLoadMetrics, bool allowTimingDetails) >- : m_url(url) >- , m_initiator(initiator) >- , m_loadTiming(loadTiming) >- , m_networkLoadMetrics(networkLoadMetrics) >+ ResourceTiming(URL&& url, String&& initiator, LoadTiming&& loadTiming, NetworkLoadMetrics&& networkLoadMetrics, bool allowTimingDetails, Vector<ServerTiming>&& serverTiming) >+ : m_url(WTFMove(url)) >+ , m_initiator(WTFMove(initiator)) >+ , m_loadTiming(WTFMove(loadTiming)) >+ , m_networkLoadMetrics(WTFMove(networkLoadMetrics)) > , m_allowTimingDetails(allowTimingDetails) >+ , m_serverTiming(WTFMove(serverTiming)) > { > } >+ void initServerTiming(const ResourceResponse&); > > URL m_url; > String m_initiator; > LoadTiming m_loadTiming; > NetworkLoadMetrics m_networkLoadMetrics; > bool m_allowTimingDetails { false }; >+ Vector<ServerTiming> m_serverTiming; > }; > > } // namespace WebCore >diff --git a/Source/WebCore/loader/ServerTiming.cpp b/Source/WebCore/loader/ServerTiming.cpp >new file mode 100644 >index 0000000000000000000000000000000000000000..ce17670d479aa8190382ead9d593c0191a8595ae >--- /dev/null >+++ b/Source/WebCore/loader/ServerTiming.cpp >@@ -0,0 +1,54 @@ >+/* >+ * Copyright (C) 2018 Akamai Technologies Inc. All rights reserved. >+ * >+ * Redistribution and use in source and binary forms, with or without >+ * modification, are permitted provided that the following conditions >+ * are met: >+ * 1. Redistributions of source code must retain the above copyright >+ * notice, this list of conditions and the following disclaimer. >+ * 2. 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. >+ * >+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS 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 APPLE INC. OR ITS 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. >+ */ >+ >+#include "config.h" >+#include "ServerTiming.h" >+ >+namespace WebCore { >+ >+void ServerTiming::setParameter(const String& name, const String& value) >+{ >+ if (equalIgnoringASCIICase(name, "dur")) { >+ if (!durationSet) { >+ duration = value.toDouble(); >+ durationSet = true; >+ } >+ return; >+ } >+ if (equalIgnoringASCIICase(name, "desc")) { >+ if (!descriptionSet) { >+ description = value; >+ descriptionSet = true; >+ } >+ return; >+ } >+} >+ >+ServerTiming ServerTiming::isolatedCopy() const >+{ >+ return ServerTiming(name.isolatedCopy(), duration, description.isolatedCopy(), durationSet, descriptionSet); >+} >+ >+} // namespace WebCore >diff --git a/Source/WebCore/loader/ServerTiming.h b/Source/WebCore/loader/ServerTiming.h >new file mode 100644 >index 0000000000000000000000000000000000000000..67b4108ef945939d8f7f13cbd1a0cf0e684cb446 >--- /dev/null >+++ b/Source/WebCore/loader/ServerTiming.h >@@ -0,0 +1,69 @@ >+/* >+ * Copyright (C) 2018 Akamai Technologies Inc. All rights reserved. >+ * >+ * Redistribution and use in source and binary forms, with or without >+ * modification, are permitted provided that the following conditions >+ * are met: >+ * 1. Redistributions of source code must retain the above copyright >+ * notice, this list of conditions and the following disclaimer. >+ * 2. 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. >+ * >+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS 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 APPLE INC. OR ITS 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. >+ */ >+ >+#pragma once >+ >+#include <wtf/text/WTFString.h> >+ >+namespace WebCore { >+ >+struct ServerTiming { >+ String name; >+ double duration = 0; >+ String description; >+ >+ bool durationSet = false; >+ bool descriptionSet = false; >+ >+ ServerTiming(String&& name); >+ ServerTiming(String&& name, double duration, String&& description); >+ ServerTiming(String&& name, double duration, String&& description, bool durationSet, bool descriptionSet); >+ >+ void setParameter(const String&, const String&); >+ ServerTiming isolatedCopy() const; >+}; >+ >+inline ServerTiming::ServerTiming(String&& name) >+ : name(WTFMove(name)) >+{ >+} >+ >+inline ServerTiming::ServerTiming(String&& name, double duration, String&& description) >+ : name(WTFMove(name)) >+ , duration(duration) >+ , description(WTFMove(description)) >+{ >+} >+ >+inline ServerTiming::ServerTiming(String&& name, double duration, String&& description, bool durationSet, bool descriptionSet) >+ : name(WTFMove(name)) >+ , duration(duration) >+ , description(WTFMove(description)) >+ , durationSet(durationSet) >+ , descriptionSet(descriptionSet) >+{ >+} >+ >+} // namespace WebCore >diff --git a/Source/WebCore/loader/ServerTimingParser.cpp b/Source/WebCore/loader/ServerTimingParser.cpp >new file mode 100644 >index 0000000000000000000000000000000000000000..01bd0573e3ab6091e0c290669984aaec2bd33756 >--- /dev/null >+++ b/Source/WebCore/loader/ServerTimingParser.cpp >@@ -0,0 +1,79 @@ >+/* >+ * Copyright (C) 2017 Akamai Technologies Inc. All rights reserved. >+ * >+ * Redistribution and use in source and binary forms, with or without >+ * modification, are permitted provided that the following conditions >+ * are met: >+ * 1. Redistributions of source code must retain the above copyright >+ * notice, this list of conditions and the following disclaimer. >+ * 2. 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. >+ * >+ * 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. >+ */ >+ >+#include "config.h" >+#include "ServerTimingParser.h" >+ >+#include "HeaderFieldTokenizer.h" >+#include "RuntimeEnabledFeatures.h" >+#include "ServerTiming.h" >+ >+#include <wtf/text/CString.h> >+ >+namespace WebCore { >+ >+namespace ServerTimingParser { >+ >+Vector<ServerTiming> parseServerTiming(const String& headerValue) >+{ >+ ASSERT(RuntimeEnabledFeatures::sharedFeatures().serverTimingEnabled()); >+ auto entries = Vector<ServerTiming>(); >+ if (headerValue.isNull()) >+ return entries; >+ >+ ASSERT(headerValue.is8Bit()); >+ >+ HeaderFieldTokenizer tokenizer(headerValue); >+ while (!tokenizer.isConsumed()) { >+ String name = tokenizer.consumeToken(); >+ if (name.isNull()) >+ break; >+ >+ ServerTiming entry(WTFMove(name)); >+ >+ while (tokenizer.consume(';')) { >+ String parameterName = tokenizer.consumeToken(); >+ if (parameterName.isNull()) >+ break; >+ >+ String value = ""; >+ if (tokenizer.consume('=')) { >+ value = tokenizer.consumeTokenOrQuotedString(); >+ tokenizer.consumeBeforeAnyCharMatch({',', ';'}); >+ } >+ entry.setParameter(parameterName, value); >+ } >+ >+ entries.append(WTFMove(entry)); >+ >+ if (!tokenizer.consume(',')) >+ break; >+ } >+ return entries; >+} >+ >+} // namespace ServerTimingParser >+ >+} // namespace WebCore >diff --git a/Source/WebCore/loader/ServerTimingParser.h b/Source/WebCore/loader/ServerTimingParser.h >new file mode 100644 >index 0000000000000000000000000000000000000000..5ee451dc7d9edf6f0993fff39e8b7cb811def460 >--- /dev/null >+++ b/Source/WebCore/loader/ServerTimingParser.h >@@ -0,0 +1,40 @@ >+/* >+ * Copyright (C) 2017 Akamai Technologies Inc. All rights reserved. >+ * >+ * Redistribution and use in source and binary forms, with or without >+ * modification, are permitted provided that the following conditions >+ * are met: >+ * 1. Redistributions of source code must retain the above copyright >+ * notice, this list of conditions and the following disclaimer. >+ * 2. 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. >+ * >+ * 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. >+ */ >+ >+#pragma once >+ >+#include <wtf/Vector.h> >+ >+namespace WebCore { >+ >+struct ServerTiming; >+ >+namespace ServerTimingParser { >+ >+Vector<ServerTiming> parseServerTiming(const String&); >+ >+} >+ >+} >diff --git a/Source/WebCore/loader/WorkerThreadableLoader.h b/Source/WebCore/loader/WorkerThreadableLoader.h >index a146963dbdae40882069fc2ccde13bcc120af0d6..03c1673b13f2f8b7d4b75cb41925887383f48975 100644 >--- a/Source/WebCore/loader/WorkerThreadableLoader.h >+++ b/Source/WebCore/loader/WorkerThreadableLoader.h >@@ -30,6 +30,7 @@ > > #pragma once > >+#include "NetworkLoadMetrics.h" > #include "ThreadableLoader.h" > #include "ThreadableLoaderClient.h" > #include "ThreadableLoaderClientWrapper.h" >diff --git a/Source/WebCore/page/Performance.cpp b/Source/WebCore/page/Performance.cpp >index 2bf387e1040c326cfbcc59363dce85e8cf27fbce..5a9c636b64a88681d0789dcf02ce77bcfb2b330e 100644 >--- a/Source/WebCore/page/Performance.cpp >+++ b/Source/WebCore/page/Performance.cpp >@@ -185,7 +185,7 @@ void Performance::addResourceTiming(ResourceTiming&& resourceTiming) > } > > if (m_resourceTimingBufferFullFlag) { >- // We fired resourcetimingbufferfull evnet but the author script didn't clear the buffer. >+ // We fired resourcetimingbufferfull event but the author script didn't clear the buffer. > // Notify performance observers but don't add it to the buffer. > queueEntry(entry.get()); > return; >diff --git a/Source/WebCore/page/PerformanceResourceTiming.cpp b/Source/WebCore/page/PerformanceResourceTiming.cpp >index c42c6a58b706110e53f6b37eefa9aa3add41e6cd..c63c25bf9c41d6f4b5464d6bac0c2cd0b7a7ad62 100644 >--- a/Source/WebCore/page/PerformanceResourceTiming.cpp >+++ b/Source/WebCore/page/PerformanceResourceTiming.cpp >@@ -79,6 +79,7 @@ PerformanceResourceTiming::PerformanceResourceTiming(MonotonicTime timeOrigin, R > , m_loadTiming(resourceTiming.loadTiming()) > , m_networkLoadMetrics(resourceTiming.networkLoadMetrics()) > , m_shouldReportDetails(resourceTiming.allowTimingDetails()) >+ , m_serverTiming(resourceTiming.populateServerTiming()) > { > m_networkLoadMetrics.clearNonTimingData(); > } >diff --git a/Source/WebCore/platform/network/HTTPHeaderNames.in b/Source/WebCore/platform/network/HTTPHeaderNames.in >index 9d2b396c56ebfcb52bc343f73d3d6bd72c6ffdc7..96ccb793e34473b5c7cdd8c988b907de04659fd9 100644 >--- a/Source/WebCore/platform/network/HTTPHeaderNames.in >+++ b/Source/WebCore/platform/network/HTTPHeaderNames.in >@@ -84,6 +84,7 @@ Sec-WebSocket-Extensions > Sec-WebSocket-Key > Sec-WebSocket-Protocol > Sec-WebSocket-Version >+Server-Timing > Service-Worker-Allowed > Set-Cookie > Set-Cookie2 >diff --git a/Source/WebCore/platform/network/ResourceResponseBase.cpp b/Source/WebCore/platform/network/ResourceResponseBase.cpp >index 4d738dac153c4b571c20c8a133b564aedd69c529..e2df22690b2583291fee3f0aa75c27897d860f3c 100644 >--- a/Source/WebCore/platform/network/ResourceResponseBase.cpp >+++ b/Source/WebCore/platform/network/ResourceResponseBase.cpp >@@ -376,6 +376,7 @@ static bool isSafeCrossOriginResponseHeader(HTTPHeaderName name) > || name == HTTPHeaderName::Range > || name == HTTPHeaderName::ReferrerPolicy > || name == HTTPHeaderName::Refresh >+ || name == HTTPHeaderName::ServerTiming > || name == HTTPHeaderName::SourceMap > || name == HTTPHeaderName::XSourceMap > || name == HTTPHeaderName::TimingAllowOrigin >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 1a94747653c13d3bf656caa821eaba82bb7c51e1..d3a4d2e35acad1e0beac927e62124f784257d941 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,19 @@ >+2018-05-11 Charles Vazac <cvazac@gmail.com> >+ >+ Add the PerformanceServerTiming Interface which makes Server-Timing header timing values available to JavaScript running in the browser. >+ https://bugs.webkit.org/show_bug.cgi?id=175569 >+ >+ Reviewed by Youenn Fablet. >+ >+ Tests were imported from web-platform-tests: WebKit/LayoutTests/imported/w3c/web-platform-tests/server-timing/* >+ >+ * imported/w3c/web-platform-tests/server-timing/navigation_timing_idl.html: Added. >+ * imported/w3c/web-platform-tests/server-timing/navigation_timing_idl.https.html: Added. >+ * imported/w3c/web-platform-tests/server-timing/resource_timing_idl.https.html: Added. >+ * imported/w3c/web-platform-tests/server-timing/server_timing_header-parsing.https.html: Added. >+ * imported/w3c/web-platform-tests/server-timing/test_server_timing.https.html: Added. >+ * imported/w3c/web-platform-tests/server-timing/test_server_timing.https.html.sub.headers: Added. >+ > 2018-05-11 Chris Dumez <cdumez@apple.com> > > REGRESSION (async policy delegate): Revoking an object URL immediately after triggering download breaks file download >diff --git a/LayoutTests/imported/w3c/ChangeLog b/LayoutTests/imported/w3c/ChangeLog >index 0b961c51b9919eba1b72dd46243dadb3b166d7b5..dd9c19960481e215c88b3d4f42df847b0712a98e 100644 >--- a/LayoutTests/imported/w3c/ChangeLog >+++ b/LayoutTests/imported/w3c/ChangeLog >@@ -1,3 +1,192 @@ >+2018-05-11 Charles Vazac <cvazac@gmail.com> >+ >+ Add the PerformanceServerTiming Interface which makes Server-Timing header timing values available to JavaScript running in the browser. >+ https://bugs.webkit.org/show_bug.cgi?id=175569 >+ >+ Reviewed by Youenn Fablet. >+ >+ Tests were imported from web-platform-tests: WebKit/LayoutTests/imported/w3c/web-platform-tests/server-timing/* >+ >+ * w3c/web-platform-tests/server-timing/cross_origin.html: Added. >+ * w3c/web-platform-tests/server-timing/resources/blue.png: Added. >+ * w3c/web-platform-tests/server-timing/resources/blue.png.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/green.png: Added. >+ * w3c/web-platform-tests/server-timing/resources/green.png.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/0.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/0.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/1.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/1.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/10.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/10.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/11.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/11.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/12.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/12.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/13.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/13.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/14.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/14.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/15.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/15.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/16.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/16.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/17.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/17.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/18.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/18.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/19.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/19.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/2.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/2.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/20.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/20.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/21.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/21.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/22.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/22.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/23.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/23.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/24.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/24.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/25.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/25.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/26.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/26.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/27.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/27.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/28.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/28.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/29.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/29.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/3.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/3.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/30.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/30.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/31.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/31.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/32.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/32.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/33.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/33.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/34.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/34.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/35.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/35.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/36.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/36.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/37.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/37.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/38.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/38.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/39.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/39.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/4.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/4.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/40.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/40.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/41.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/41.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/42.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/42.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/43.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/43.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/44.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/44.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/45.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/45.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/46.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/46.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/47.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/47.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/48.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/48.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/49.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/49.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/5.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/5.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/50.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/50.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/51.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/51.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/52.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/52.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/53.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/53.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/54.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/54.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/55.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/55.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/56.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/56.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/57.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/57.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/58.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/58.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/59.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/59.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/6.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/6.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/60.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/60.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/61.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/61.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/62.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/62.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/63.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/63.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/64.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/64.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/65.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/65.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/66.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/66.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/67.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/67.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/68.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/68.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/69.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/69.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/7.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/7.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/70.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/70.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/71.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/71.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/72.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/72.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/73.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/73.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/74.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/74.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/75.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/75.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/76.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/76.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/77.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/77.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/78.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/78.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/79.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/79.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/8.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/8.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/80.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/80.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/81.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/81.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/82.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/82.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/83.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/83.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/9.js: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/9.js.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/resources/parsing/w3c-import.log: Added. >+ * w3c/web-platform-tests/server-timing/resources/w3c-import.log: Added. >+ * w3c/web-platform-tests/server-timing/server_timing_header-parsing.html: Added. >+ * w3c/web-platform-tests/server-timing/test_server_timing.html: Added. >+ * w3c/web-platform-tests/server-timing/test_server_timing.html.sub.headers: Added. >+ * w3c/web-platform-tests/server-timing/w3c-import.log: Added. >+ > 2018-05-11 Youenn Fablet <youenn@apple.com> > > Rebase some fetch API tests >diff --git a/LayoutTests/TestExpectations b/LayoutTests/TestExpectations >index ec018affd716addde45481504ea2b1a896c4f780..068ac336c40853a84537512b1217df64c22a6094 100644 >--- a/LayoutTests/TestExpectations >+++ b/LayoutTests/TestExpectations >@@ -190,6 +190,9 @@ imported/w3c/web-platform-tests/service-workers/service-worker/navigation-preloa > imported/w3c/web-platform-tests/service-workers/service-worker/shared-worker-controlled.https.html [ Skip ] > imported/w3c/web-platform-tests/service-workers/service-worker/claim-shared-worker-fetch.https.html [ Skip ] > >+# Unsupported features: PerformanceNavigationTiming >+imported/w3c/web-platform-tests/server-timing/test_server_timing.html [ Skip ] >+ > # Reliably ASSERTS in ServiceWorkerClientFetch::didFinish > imported/w3c/web-platform-tests/service-workers/service-worker/navigation-redirect-body.https.html [ Skip ] > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/cross_origin-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/server-timing/cross_origin-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..b2ee839703e9c681056db3eef71be2a457a1977f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/cross_origin-expected.txt >@@ -0,0 +1,4 @@ >+ >+PASS Expected entry count for http://localhost:8800/server-timing/resources/blue.png: 1 >+PASS Expected entry count for http://127.0.0.1:8800/server-timing/resources/blue.png: 0 >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/cross_origin.html b/LayoutTests/imported/w3c/web-platform-tests/server-timing/cross_origin.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f5251034c93d7f5272af15e852b29aca72d27baf >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/cross_origin.html >@@ -0,0 +1,34 @@ >+<!DOCTYPE html> >+<head> >+ <meta charset='utf-8' /> >+ <script src="/resources/testharness.js"></script> >+ <script src='/resources/testharnessreport.js'></script> >+ <script src="/common/performance-timeline-utils.js"></script> >+ <script src="/common/get-host-info.sub.js"></script> >+ <script> >+ setup({explicit_done: true}) >+ >+ const hostInfo = get_host_info() >+ const resourceUrl = 'server-timing/resources/blue.png' >+ const urls = { >+ 'same-origin': `${hostInfo.HTTP_ORIGIN}/${resourceUrl}`, >+ 'cross-origin': `${hostInfo.HTTP_REMOTE_ORIGIN}/${resourceUrl}` >+ } >+ Object.keys(urls).forEach(function(key) { >+ const img = document.createElement('img') >+ img.src = urls[key] >+ document.getElementsByTagName('script')[0].parentNode.appendChild(img) >+ }) >+ >+ window.addEventListener('load', function() { >+ function assertServerTimingEntries(url, expectedEntryCount) { >+ test_equals(performance.getEntriesByName(url)[0].serverTiming.length, >+ expectedEntryCount, >+ `Expected entry count for ${url}: ${expectedEntryCount}`) >+ } >+ assertServerTimingEntries(urls['same-origin'], 1) >+ assertServerTimingEntries(urls['cross-origin'], 0) >+ done() >+ }) >+ </script> >+</head> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/navigation_timing_idl.html b/LayoutTests/imported/w3c/web-platform-tests/server-timing/navigation_timing_idl.html >new file mode 100644 >index 0000000000000000000000000000000000000000..290bb889b149335a47b4b7ddcebc318bff32ca0c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/navigation_timing_idl.html >@@ -0,0 +1,14 @@ >+<!DOCTYPE html> >+<head> >+ <meta charset='utf-8' /> >+ <script src="/resources/testharness.js"></script> >+ <script src='/resources/testharnessreport.js'></script> >+ <script> >+ setup({explicit_done: true}) >+ window.addEventListener('load', function(){ >+ assert_not_equals(typeof performance.getEntriesByType('navigation')[0].serverTiming, 'undefined', >+ 'An instance of `PerformanceNavigationTiming` should have a `serverTiming` attribute.') >+ done() >+ }) >+ </script> >+</head> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/navigation_timing_idl.https.html b/LayoutTests/imported/w3c/web-platform-tests/server-timing/navigation_timing_idl.https.html >new file mode 100644 >index 0000000000000000000000000000000000000000..290bb889b149335a47b4b7ddcebc318bff32ca0c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/navigation_timing_idl.https.html >@@ -0,0 +1,14 @@ >+<!DOCTYPE html> >+<head> >+ <meta charset='utf-8' /> >+ <script src="/resources/testharness.js"></script> >+ <script src='/resources/testharnessreport.js'></script> >+ <script> >+ setup({explicit_done: true}) >+ window.addEventListener('load', function(){ >+ assert_not_equals(typeof performance.getEntriesByType('navigation')[0].serverTiming, 'undefined', >+ 'An instance of `PerformanceNavigationTiming` should have a `serverTiming` attribute.') >+ done() >+ }) >+ </script> >+</head> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resource_timing_idl.https.html b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resource_timing_idl.https.html >new file mode 100644 >index 0000000000000000000000000000000000000000..d2c3c9274eab862e8962019a7cc7c39d27804b16 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resource_timing_idl.https.html >@@ -0,0 +1,14 @@ >+<!DOCTYPE html> >+<head> >+ <meta charset='utf-8' /> >+ <script src="/resources/testharness.js"></script> >+ <script src='/resources/testharnessreport.js'></script> >+ <script> >+ setup({explicit_done: true}) >+ window.addEventListener('load', function(){ >+ assert_not_equals(typeof performance.getEntriesByType('resource')[0].serverTiming, 'undefined', >+ 'An instance of `PerformanceResourceTiming` should have a `serverTiming` attribute.') >+ done() >+ }) >+ </script> >+</head> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/blue.png b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/blue.png >new file mode 100644 >index 0000000000000000000000000000000000000000..4498dd258a20b5ea070ae4a05aad77c62d5228a8 >GIT binary patch >literal 485 >zcmeAS@N?(olHy`uVBq!ia0vp^tw5Z`!2~2_SFzdvDaPU;cPEB*=VV?2IV|apzK#qG >z8~eHcB(eheoCO|{#S9F5he4R}c>anMpoS_>7srr_xVM)bc^MdZnh*Rk-+S{xp(m?= >z$M(5Xd0t#Jy0EA)%r=TG%H-cd_tOsD$LzmkNM>C8(JrUUtSj~Z!s65gu8-xbw(xAp >t_~YC^tx>GE9<1pj|EMN>0invwukhxc<XL_NLtxY}c)I$ztaD0e0szlp&SL-o > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/blue.png.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/blue.png.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..948e7f0190aa83263c607a64e5ade04b02de95a7 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/blue.png.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric2; dur=2.1; desc=blue.png >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/green.png b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/green.png >new file mode 100644 >index 0000000000000000000000000000000000000000..28a1faab37797ef39454aa1deac1b470712f7be4 >GIT binary patch >literal 87 >zcmeAS@N?(olHy`uVBq!ia0vp^DL`z*$P6SW{C@KnNHGWagt#*NXE2F7umZ^C_jGX# >j(GX2ekYHV$kio>jw1<IF`tIWiKq&@KS3j3^P6<r_F*+3V > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/green.png.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/green.png.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..b135472f8659a27a96abea84980f3c7a0414759f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/green.png.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric3; dur=3.1; desc=green.png >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/0.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/0.js >new file mode 100644 >index 0000000000000000000000000000000000000000..2848a1c82bb4d5da1d0e05d66700d1498ec95002 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/0.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, []) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/0.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/0.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..6f9cb19400b8e3ad7271d1fddb4a3dc3c5a35582 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/0.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/1.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/1.js >new file mode 100644 >index 0000000000000000000000000000000000000000..03b778bd84560b558573a6a6bb8486d4bef82cf3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/1.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/1.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/1.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..d5ebb5fbffc58e9983cff2e83cf3c661d504307b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/1.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/10.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/10.js >new file mode 100644 >index 0000000000000000000000000000000000000000..03b778bd84560b558573a6a6bb8486d4bef82cf3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/10.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/10.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/10.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..fc2300f8749d5d8592e27c5e4990be125c225432 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/10.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric ; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/11.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/11.js >new file mode 100644 >index 0000000000000000000000000000000000000000..03b778bd84560b558573a6a6bb8486d4bef82cf3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/11.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/11.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/11.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..d5ed699c5c81cdce057b862451dff6cd3bce4289 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/11.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric , >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/12.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/12.js >new file mode 100644 >index 0000000000000000000000000000000000000000..fc827f8735a569a720a957c57f0c20b469a5d4c2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/12.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","dur":123.4,"desc":"description"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/12.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/12.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..7b89b475bdcd34df1901b498c22a631e1f29e1c0 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/12.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric ; dur = 123.4 ; desc = description >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/13.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/13.js >new file mode 100644 >index 0000000000000000000000000000000000000000..02f8c3c84d8ddc727a9b6fd17c3bec6784d43972 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/13.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":"description","dur":123.4}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/13.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/13.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..dcb056faa8862f8bf8246d7cfb497f41ea83e96a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/13.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric ; desc = description ; dur = 123.4 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/14.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/14.js >new file mode 100644 >index 0000000000000000000000000000000000000000..966e9634e3f668786c5e51522f5d126345dce2a8 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/14.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":"description"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/14.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/14.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..7ebf8c3bfde99fb27096b12256931eb80731ed60 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/14.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc = "description" >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/15.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/15.js >new file mode 100644 >index 0000000000000000000000000000000000000000..afef77d16340108c98b284a8fa9c0529325a0273 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/15.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric1","dur":12.3,"desc":"description1"},{"name":"metric2","dur":45.6,"desc":"description2"},{"name":"metric3","dur":78.9,"desc":"description3"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/15.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/15.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..0389e997904741070681b67845a14c10146dee48 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/15.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric1;dur=12.3;desc=description1,metric2;dur=45.6;desc=description2,metric3;dur=78.9;desc=description3 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/16.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/16.js >new file mode 100644 >index 0000000000000000000000000000000000000000..b49b1785e8cfdfd6a9081cdd68ca659e433c0624 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/16.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric1"},{"name":"metric2"},{"name":"metric3"},{"name":"metric4"},{"name":"metric5"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/16.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/16.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..b618a89de9a5dcc59eca72358f71114230631596 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/16.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric1,metric2 ,metric3, metric4 , metric5 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/17.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/17.js >new file mode 100644 >index 0000000000000000000000000000000000000000..966e9634e3f668786c5e51522f5d126345dce2a8 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/17.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":"description"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/17.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/17.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..c083f605b373dbc16d30b709a8bedb0b9e2263ec >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/17.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc="description" >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/18.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/18.js >new file mode 100644 >index 0000000000000000000000000000000000000000..3c47d76055a9dcd7316d43943ace022cbcf12e95 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/18.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":"\t description \t"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/18.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/18.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..aa51ae040ffc8ed5a14e97271f9c1d745649bb70 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/18.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc=" description " >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/19.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/19.js >new file mode 100644 >index 0000000000000000000000000000000000000000..83fb4f3672fd55eaf6186899a457e688700a3db9 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/19.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":"descr\"iption"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/19.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/19.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..d097b92029919d8fe4a85b42e9af35167c48213c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/19.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc="descr\"iption" >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/2.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/2.js >new file mode 100644 >index 0000000000000000000000000000000000000000..b763b8145e5fc57980ed865109e03539e91bce76 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/2.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","dur":123.4}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/2.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/2.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..14eb2f07748df9b8c97fa86c7ca3b24a1ae674c5 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/2.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;dur=123.4 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/20.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/20.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/20.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/20.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/20.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..9b131fcb90ac7fde837afce881133a32e243350b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/20.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc=\ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/21.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/21.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/21.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/21.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/21.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..7134be2654a31c6474f77dfc1eb6f90ca784b485 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/21.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc=" >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/22.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/22.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/22.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/22.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/22.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..465a36b600f8f55b520284bdb7258847765a2872 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/22.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc=\\ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/23.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/23.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/23.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/23.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/23.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..3b76de4a05c1654a856dface1bd1c6e9b03b29b2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/23.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc=\" >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/24.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/24.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/24.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/24.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/24.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..c54a4d85f526faeb70e501510e215a1314b1be82 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/24.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc="\ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/25.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/25.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/25.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/25.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/25.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..752441eb90d73d93927690dcd133c48f17c83504 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/25.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc="" >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/26.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/26.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/26.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/26.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/26.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..60dbdbb0471d8746d2a8fb52566939d4c50508b8 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/26.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc=\\\ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/27.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/27.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/27.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/27.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/27.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..feff2c042d010dfebc684fe7b58272927c0314b3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/27.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc=\\" >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/28.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/28.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/28.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/28.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/28.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..3ca9b6b26032916d300224be95c3179b5c37fcfa >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/28.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc=\"\ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/29.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/29.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/29.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/29.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/29.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..ae0b8912905cc521d2ad857c857d1766d1ec0e8a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/29.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc=\"" >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/3.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/3.js >new file mode 100644 >index 0000000000000000000000000000000000000000..b763b8145e5fc57980ed865109e03539e91bce76 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/3.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","dur":123.4}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/3.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/3.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..8c6fb60f3107568f1a363740765a082eeead5282 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/3.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;dur="123.4" >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/30.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/30.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/30.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/30.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/30.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..24906f3c8230de2edea5a03e5e1f974c6437d873 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/30.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc="\\ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/31.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/31.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/31.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/31.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/31.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..aaceb6babf44a7b8518f6fe8d64811165389783f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/31.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc="\" >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/32.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/32.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/32.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/32.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/32.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..59e01cfa940f2e4c68eaf4935d9b8d00d38d063c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/32.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc=""\ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/33.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/33.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/33.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/33.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/33.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..d81429ecad06e9a24d26734ff4918b612449cbed >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/33.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc=""" >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/34.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/34.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/34.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/34.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/34.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..bfb889515d90ff2e3666b057ffae9edb1a6a5a7b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/34.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc=\\\\ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/35.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/35.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/35.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/35.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/35.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..ff41d80b69b3988d581ebc57d5e03dc8a5a6badd >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/35.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc=\\\" >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/36.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/36.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/36.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/36.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/36.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..a702069f7d7cb2f0514421c2a94041c7adae8671 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/36.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc=\\"\ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/37.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/37.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/37.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/37.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/37.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..ecc3756393ec87f79e9efb6d98476dd6868e5fc1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/37.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc=\\"" >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/38.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/38.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/38.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/38.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/38.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..b13d9f419f600dfa67d058d1164c1cd5e7428d9d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/38.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc=\"\\ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/39.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/39.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/39.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/39.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/39.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..029722365679d735a25b5a7075d3d7e72a180c38 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/39.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc=\"\" >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/4.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/4.js >new file mode 100644 >index 0000000000000000000000000000000000000000..966e9634e3f668786c5e51522f5d126345dce2a8 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/4.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":"description"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/4.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/4.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..e929723eed614d35123d295bca147b9d32833c97 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/4.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc=description >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/40.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/40.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/40.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/40.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/40.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..9dd5cd4a76d843891076fdf1f5ecb878c6bdb36d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/40.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc=\""\ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/41.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/41.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/41.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/41.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/41.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..c5a006cd4a19272d4364940ab5b58ded4fbbdc1a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/41.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc=\""" >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/42.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/42.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/42.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/42.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/42.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..8a04d7c7f673d2fba55a3b8b7e7c99f99bfdb020 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/42.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc="\\\ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/43.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/43.js >new file mode 100644 >index 0000000000000000000000000000000000000000..f3ac7dcc2a6cb5c288ffc0629fa5942388bb04a0 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/43.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":"\\"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/43.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/43.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..8208c16ff314368e09000b4d673a3721242be4ad >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/43.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc="\\" >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/44.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/44.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/44.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/44.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/44.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..e50f42b37779e1aba296a197646c43bb9e6dbfb8 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/44.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc="\"\ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/45.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/45.js >new file mode 100644 >index 0000000000000000000000000000000000000000..82de6a40e5d5aec8c41ea8356df490c6bc519158 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/45.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":"\""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/45.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/45.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..055df4fbd48484e99eab0810e072ac74818a2612 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/45.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc="\"" >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/46.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/46.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/46.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/46.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/46.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..5d7ef807f6ca34c5e38ce7479fed90d391594aa5 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/46.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc=""\\ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/47.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/47.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/47.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/47.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/47.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..f52c6e8ae27ba3c7b9830b8b74de67ee43da012d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/47.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc=""\" >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/48.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/48.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/48.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/48.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/48.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..9eeadd38d3941ae9f7d07b858f4c1d5b81d99309 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/48.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc="""\ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/49.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/49.js >new file mode 100644 >index 0000000000000000000000000000000000000000..349a7e0dd93cb9eedded31e13fb39b3729d8c4b6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/49.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":""}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/49.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/49.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..2dbff3ca6cce65a406eb26f0e281714472cf25ba >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/49.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc="""" >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/5.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/5.js >new file mode 100644 >index 0000000000000000000000000000000000000000..966e9634e3f668786c5e51522f5d126345dce2a8 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/5.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":"description"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/5.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/5.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..c083f605b373dbc16d30b709a8bedb0b9e2263ec >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/5.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc="description" >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/50.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/50.js >new file mode 100644 >index 0000000000000000000000000000000000000000..413d9b65bc1f2078d90aa9be48062b4a0eaf2cf9 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/50.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","dur":12.3,"desc":"description1"},{"name":"metric","dur":45.6,"desc":"description2"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/50.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/50.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..c8ac573fa2173dd84ca6991b7068112521f7ca94 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/50.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;dur=12.3;desc=description1,metric;dur=45.6;desc=description2 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/51.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/51.js >new file mode 100644 >index 0000000000000000000000000000000000000000..fc827f8735a569a720a957c57f0c20b469a5d4c2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/51.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","dur":123.4,"desc":"description"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/51.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/51.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..5825a547c92af0cf397ced47914bb946c36e0de5 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/51.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;DuR=123.4;DeSc=description >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/52.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/52.js >new file mode 100644 >index 0000000000000000000000000000000000000000..a97e9d0d0f895181e69aa7c6d092cca3bbd8be26 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/52.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"MeTrIc","desc":"DeScRiPtIoN"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/52.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/52.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..f5fcff981c3cf6bc0c5398bf795cc3a774cdc528 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/52.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: MeTrIc;desc=DeScRiPtIoN >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/53.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/53.js >new file mode 100644 >index 0000000000000000000000000000000000000000..adf74faaf1b9c10bd2857d776bd81e99c805185d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/53.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","dur":0}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/53.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/53.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..3de0f19046d49807bd265991d19a7cee798f658e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/53.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;dur=foo >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/54.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/54.js >new file mode 100644 >index 0000000000000000000000000000000000000000..adf74faaf1b9c10bd2857d776bd81e99c805185d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/54.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","dur":0}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/54.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/54.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..78f670422c8395ed36dcb95ce759e9fbb2ed66b4 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/54.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;dur="foo" >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/55.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/55.js >new file mode 100644 >index 0000000000000000000000000000000000000000..429b528375e8e818a9030448c1759bcd3aa7cb74 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/55.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric1","desc":"description","dur":123.4},{"name":"metric2"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/55.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/55.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..578232a4ab78e0bcbe0c73de0da21bfcd52be580 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/55.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric1;foo=bar;desc=description;foo=bar;dur=123.4;foo=bar,metric2 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/56.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/56.js >new file mode 100644 >index 0000000000000000000000000000000000000000..b763b8145e5fc57980ed865109e03539e91bce76 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/56.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","dur":123.4}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/56.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/56.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..8a220ab50aa7f05102048fdcd307f865c5e12497 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/56.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;dur=123.4;dur=567.8 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/57.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/57.js >new file mode 100644 >index 0000000000000000000000000000000000000000..adf74faaf1b9c10bd2857d776bd81e99c805185d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/57.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","dur":0}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/57.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/57.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..2614e2034cd600e3af64053a2983d71fe59b694e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/57.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;dur=foo;dur=567.8 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/58.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/58.js >new file mode 100644 >index 0000000000000000000000000000000000000000..05004e5802601eca956433c0b780be2fbec3fe03 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/58.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":"description1"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/58.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/58.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..e5ef56948b972e4dbfd897042e836dc2efd5d04d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/58.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc=description1;desc=description2 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/59.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/59.js >new file mode 100644 >index 0000000000000000000000000000000000000000..c9a9a98c5eb89863ef810c4c5f4e15fdb120dc25 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/59.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","dur":0,"desc":"description"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/59.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/59.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..5b44836e706a70888d142c9bfeab9c5add64345c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/59.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;dur;dur=123.4;desc=description >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/6.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/6.js >new file mode 100644 >index 0000000000000000000000000000000000000000..fc827f8735a569a720a957c57f0c20b469a5d4c2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/6.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","dur":123.4,"desc":"description"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/6.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/6.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..5dbc9d6552408bf661f3e8a821d727f9a916de76 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/6.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;dur=123.4;desc=description >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/60.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/60.js >new file mode 100644 >index 0000000000000000000000000000000000000000..c9a9a98c5eb89863ef810c4c5f4e15fdb120dc25 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/60.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","dur":0,"desc":"description"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/60.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/60.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..bfbddf111a9344a3a5d4262a912365b0a0fd5689 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/60.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;dur=;dur=123.4;desc=description >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/61.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/61.js >new file mode 100644 >index 0000000000000000000000000000000000000000..ce7d800979e19bf47a413126155c059767ab869e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/61.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":"","dur":123.4}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/61.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/61.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..6d605ad8570a79c3764c972217a07f712fb8d989 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/61.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc;desc=description;dur=123.4 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/62.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/62.js >new file mode 100644 >index 0000000000000000000000000000000000000000..ce7d800979e19bf47a413126155c059767ab869e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/62.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":"","dur":123.4}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/62.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/62.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..182a81a7bfdbdfc977c4f46cdb9b3c42b179f816 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/62.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc=;desc=description;dur=123.4 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/63.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/63.js >new file mode 100644 >index 0000000000000000000000000000000000000000..d6842ba988d66bae60ae1e04fb74fadc641f0508 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/63.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":"d1","dur":123.4}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/63.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/63.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..8e9b117988bfea9ea70f4a92dd9530dba7b712ee >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/63.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc=d1 d2;dur=123.4 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/64.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/64.js >new file mode 100644 >index 0000000000000000000000000000000000000000..88037d15dd9feb9d915f937d07ce45b1454137e4 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/64.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric1","desc":"d1"},{"name":"metric2"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/64.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/64.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..b1dd0cc5b4984fa5558f1a3ba4117cc027d7d7f4 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/64.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric1;desc=d1 d2,metric2 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/65.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/65.js >new file mode 100644 >index 0000000000000000000000000000000000000000..d6842ba988d66bae60ae1e04fb74fadc641f0508 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/65.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":"d1","dur":123.4}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/65.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/65.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..63946cdd0846f4b6742c3d7d5b999fed5fc53c4e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/65.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc="d1" d2;dur=123.4 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/66.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/66.js >new file mode 100644 >index 0000000000000000000000000000000000000000..88037d15dd9feb9d915f937d07ce45b1454137e4 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/66.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric1","desc":"d1"},{"name":"metric2"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/66.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/66.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..bddbb2cbb6c25b46e5f04d57cadabafe9cc1227b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/66.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric1;desc="d1" d2,metric2 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/67.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/67.js >new file mode 100644 >index 0000000000000000000000000000000000000000..03b778bd84560b558573a6a6bb8486d4bef82cf3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/67.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/67.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/67.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..5fe55cc32ad5efb37d67f4de7d9e262bb5ca5997 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/67.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric== ""foo;dur=123.4 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/68.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/68.js >new file mode 100644 >index 0000000000000000000000000000000000000000..e6946c38dbbbbf91027553618f67012453dcacda >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/68.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric1"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/68.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/68.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..27dabbe090a0e696c918cbc6cb2a25ba9ef2c21e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/68.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric1== ""foo,metric2 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/69.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/69.js >new file mode 100644 >index 0000000000000000000000000000000000000000..adf74faaf1b9c10bd2857d776bd81e99c805185d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/69.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","dur":0}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/69.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/69.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..55282410e7e11650caf7d364ca583c17693b4c33 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/69.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;dur foo=12 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/7.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/7.js >new file mode 100644 >index 0000000000000000000000000000000000000000..02f8c3c84d8ddc727a9b6fd17c3bec6784d43972 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/7.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":"description","dur":123.4}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/7.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/7.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..c6369005d8eb89576fa2ef868eb7998cbf551e1f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/7.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc=description;dur=123.4 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/70.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/70.js >new file mode 100644 >index 0000000000000000000000000000000000000000..03b778bd84560b558573a6a6bb8486d4bef82cf3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/70.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/70.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/70.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..aa8f70bd90c1d33cc67fd734cdf3ade0f5a7820f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/70.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;foo dur=12 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/71.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/71.js >new file mode 100644 >index 0000000000000000000000000000000000000000..2848a1c82bb4d5da1d0e05d66700d1498ec95002 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/71.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, []) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/71.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/71.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..26fcf28e39e1fab47c90749b75a8f734547a3672 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/71.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/72.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/72.js >new file mode 100644 >index 0000000000000000000000000000000000000000..2848a1c82bb4d5da1d0e05d66700d1498ec95002 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/72.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, []) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/72.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/72.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..74e059fd74c0e0f7e888a0b83f0f541388a041bd >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/72.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: = >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/73.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/73.js >new file mode 100644 >index 0000000000000000000000000000000000000000..2848a1c82bb4d5da1d0e05d66700d1498ec95002 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/73.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, []) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/73.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/73.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..eeaebdf48f1a85ef6d3814602a51a4b89dc49be7 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/73.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: [ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/74.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/74.js >new file mode 100644 >index 0000000000000000000000000000000000000000..2848a1c82bb4d5da1d0e05d66700d1498ec95002 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/74.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, []) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/74.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/74.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..b4f3c562f6ba4b08503f59e77b2be7f1884333d8 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/74.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: ] >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/75.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/75.js >new file mode 100644 >index 0000000000000000000000000000000000000000..2848a1c82bb4d5da1d0e05d66700d1498ec95002 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/75.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, []) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/75.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/75.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..9a3684d48e3b6704f19c9c72c7f2c2eaf859f2c5 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/75.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: ; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/76.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/76.js >new file mode 100644 >index 0000000000000000000000000000000000000000..2848a1c82bb4d5da1d0e05d66700d1498ec95002 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/76.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, []) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/76.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/76.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..79cbd0c4d593e06fe467526de997b6e44bdbd9fb >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/76.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: , >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/77.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/77.js >new file mode 100644 >index 0000000000000000000000000000000000000000..2848a1c82bb4d5da1d0e05d66700d1498ec95002 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/77.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, []) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/77.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/77.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..888fa71e64b001bd3427f57433cac84ef67de4e8 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/77.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: =; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/78.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/78.js >new file mode 100644 >index 0000000000000000000000000000000000000000..2848a1c82bb4d5da1d0e05d66700d1498ec95002 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/78.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, []) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/78.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/78.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..fc40e706cdedb92ff54fb84a7fd5fa1eacbfe7f1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/78.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: ;= >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/79.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/79.js >new file mode 100644 >index 0000000000000000000000000000000000000000..2848a1c82bb4d5da1d0e05d66700d1498ec95002 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/79.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, []) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/79.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/79.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..0516c4cc0575eae7383cf406d05e0d7997ca6374 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/79.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: =, >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/8.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/8.js >new file mode 100644 >index 0000000000000000000000000000000000000000..711e38181028762af3d670c6b53a57b703ef7490 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/8.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"aB3!#$%&'*+-.^_`|~"}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/8.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/8.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..1d1bb026dd92a635ddb6c541308dbb3112c968de >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/8.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: aB3!#$%&'*+-.^_`|~ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/80.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/80.js >new file mode 100644 >index 0000000000000000000000000000000000000000..2848a1c82bb4d5da1d0e05d66700d1498ec95002 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/80.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, []) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/80.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/80.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..03b3909f5589229e8cf2ea7789bb5b0ebb177e4e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/80.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: ,= >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/81.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/81.js >new file mode 100644 >index 0000000000000000000000000000000000000000..2848a1c82bb4d5da1d0e05d66700d1498ec95002 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/81.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, []) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/81.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/81.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..680d2a2422ef01210959de395825dbfd7456a354 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/81.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: ;, >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/82.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/82.js >new file mode 100644 >index 0000000000000000000000000000000000000000..2848a1c82bb4d5da1d0e05d66700d1498ec95002 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/82.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, []) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/82.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/82.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..7ab1448b88e4f653cc5e6ec9cf03e17ebf1ee1ed >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/82.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: ,; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/83.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/83.js >new file mode 100644 >index 0000000000000000000000000000000000000000..2848a1c82bb4d5da1d0e05d66700d1498ec95002 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/83.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, []) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/83.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/83.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..bd079bc62a73def83349ef7e79432f9feb53ea91 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/83.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: =;, >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/9.js b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/9.js >new file mode 100644 >index 0000000000000000000000000000000000000000..3048f3fa7ae970bfe0997f1221c73f520336fb43 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/9.js >@@ -0,0 +1 @@ >+testServerTiming(document.currentScript, [{"name":"metric","desc":"descr;,=iption","dur":123.4}]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/9.js.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/9.js.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..c385706d334c7d0283c924aab6c7461c76495ac2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/9.js.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric;desc="descr;,=iption";dur=123.4 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..c572c164fe63c96c5af925771a074bc6a1277dc4 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/w3c-import.log >@@ -0,0 +1,184 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/w3c/web-platform-tests >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/0.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/0.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/1.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/1.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/10.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/10.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/11.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/11.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/12.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/12.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/13.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/13.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/14.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/14.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/15.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/15.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/16.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/16.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/17.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/17.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/18.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/18.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/19.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/19.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/2.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/2.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/20.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/20.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/21.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/21.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/22.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/22.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/23.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/23.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/24.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/24.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/25.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/25.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/26.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/26.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/27.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/27.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/28.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/28.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/29.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/29.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/3.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/3.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/30.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/30.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/31.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/31.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/32.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/32.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/33.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/33.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/34.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/34.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/35.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/35.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/36.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/36.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/37.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/37.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/38.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/38.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/39.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/39.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/4.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/4.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/40.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/40.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/41.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/41.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/42.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/42.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/43.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/43.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/44.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/44.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/45.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/45.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/46.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/46.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/47.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/47.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/48.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/48.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/49.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/49.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/5.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/5.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/50.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/50.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/51.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/51.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/52.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/52.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/53.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/53.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/54.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/54.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/55.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/55.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/56.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/56.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/57.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/57.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/58.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/58.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/59.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/59.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/6.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/6.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/60.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/60.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/61.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/61.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/62.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/62.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/63.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/63.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/64.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/64.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/65.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/65.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/66.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/66.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/67.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/67.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/68.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/68.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/69.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/69.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/7.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/7.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/70.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/70.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/71.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/71.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/72.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/72.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/73.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/73.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/74.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/74.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/75.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/75.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/76.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/76.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/77.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/77.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/78.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/78.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/79.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/79.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/8.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/8.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/80.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/80.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/81.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/81.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/82.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/82.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/83.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/83.js.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/9.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/parsing/9.js.sub.headers >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..1ed6e43ae7f08c5c9bc77a5079882876be346e28 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/w3c-import.log >@@ -0,0 +1,20 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/w3c/web-platform-tests >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/blue.png >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/blue.png.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/green.png >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resources/green.png.sub.headers >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/server_timing_header-parsing-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/server-timing/server_timing_header-parsing-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..153717dd85b42c7895bfdb8329c887d4b5defc03 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/server_timing_header-parsing-expected.txt >@@ -0,0 +1,326 @@ >+ >+PASS 0.js - count (0 ?== 0) >+PASS 1.js - count (1 ?== 1) >+PASS 1.js - name (metric ?== metric) >+PASS 1.js - duration (0 ?== 0) >+PASS 1.js - description ( ?== ) >+PASS 2.js - count (1 ?== 1) >+PASS 2.js - name (metric ?== metric) >+PASS 2.js - duration (123.4 ?== 123.4) >+PASS 2.js - description ( ?== ) >+PASS 3.js - count (1 ?== 1) >+PASS 3.js - name (metric ?== metric) >+PASS 3.js - duration (123.4 ?== 123.4) >+PASS 3.js - description ( ?== ) >+PASS 4.js - count (1 ?== 1) >+PASS 4.js - name (metric ?== metric) >+PASS 4.js - duration (0 ?== 0) >+PASS 4.js - description (description ?== description) >+PASS 5.js - count (1 ?== 1) >+PASS 5.js - name (metric ?== metric) >+PASS 5.js - duration (0 ?== 0) >+PASS 5.js - description (description ?== description) >+PASS 6.js - count (1 ?== 1) >+PASS 6.js - name (metric ?== metric) >+PASS 6.js - duration (123.4 ?== 123.4) >+PASS 6.js - description (description ?== description) >+PASS 7.js - count (1 ?== 1) >+PASS 7.js - name (metric ?== metric) >+PASS 7.js - duration (123.4 ?== 123.4) >+PASS 7.js - description (description ?== description) >+PASS 8.js - count (1 ?== 1) >+PASS 8.js - name (aB3!#$%&'*+-.^_`|~ ?== aB3!#$%&'*+-.^_`|~) >+PASS 8.js - duration (0 ?== 0) >+PASS 8.js - description ( ?== ) >+PASS 9.js - count (1 ?== 1) >+PASS 9.js - name (metric ?== metric) >+PASS 9.js - duration (123.4 ?== 123.4) >+PASS 9.js - description (descr;,=iption ?== descr;,=iption) >+PASS 10.js - count (1 ?== 1) >+PASS 10.js - name (metric ?== metric) >+PASS 10.js - duration (0 ?== 0) >+PASS 10.js - description ( ?== ) >+PASS 11.js - count (1 ?== 1) >+PASS 11.js - name (metric ?== metric) >+PASS 11.js - duration (0 ?== 0) >+PASS 11.js - description ( ?== ) >+PASS 12.js - count (1 ?== 1) >+PASS 12.js - name (metric ?== metric) >+PASS 12.js - duration (123.4 ?== 123.4) >+PASS 12.js - description (description ?== description) >+PASS 13.js - count (1 ?== 1) >+PASS 13.js - name (metric ?== metric) >+PASS 13.js - duration (123.4 ?== 123.4) >+PASS 13.js - description (description ?== description) >+PASS 14.js - count (1 ?== 1) >+PASS 14.js - name (metric ?== metric) >+PASS 14.js - duration (0 ?== 0) >+PASS 14.js - description (description ?== description) >+PASS 15.js - count (3 ?== 3) >+PASS 15.js - [0].name (metric1 ?== metric1) >+PASS 15.js - [0].duration (12.3 ?== 12.3) >+PASS 15.js - [0].description (description1 ?== description1) >+PASS 15.js - [1].name (metric2 ?== metric2) >+PASS 15.js - [1].duration (45.6 ?== 45.6) >+PASS 15.js - [1].description (description2 ?== description2) >+PASS 15.js - [2].name (metric3 ?== metric3) >+PASS 15.js - [2].duration (78.9 ?== 78.9) >+PASS 15.js - [2].description (description3 ?== description3) >+PASS 16.js - count (5 ?== 5) >+PASS 16.js - [0].name (metric1 ?== metric1) >+PASS 16.js - [0].duration (0 ?== 0) >+PASS 16.js - [0].description ( ?== ) >+PASS 16.js - [1].name (metric2 ?== metric2) >+PASS 16.js - [1].duration (0 ?== 0) >+PASS 16.js - [1].description ( ?== ) >+PASS 16.js - [2].name (metric3 ?== metric3) >+PASS 16.js - [2].duration (0 ?== 0) >+PASS 16.js - [2].description ( ?== ) >+PASS 16.js - [3].name (metric4 ?== metric4) >+PASS 16.js - [3].duration (0 ?== 0) >+PASS 16.js - [3].description ( ?== ) >+PASS 16.js - [4].name (metric5 ?== metric5) >+PASS 16.js - [4].duration (0 ?== 0) >+PASS 16.js - [4].description ( ?== ) >+PASS 17.js - count (1 ?== 1) >+PASS 17.js - name (metric ?== metric) >+PASS 17.js - duration (0 ?== 0) >+PASS 17.js - description (description ?== description) >+PASS 18.js - count (1 ?== 1) >+PASS 18.js - name (metric ?== metric) >+PASS 18.js - duration (0 ?== 0) >+PASS 18.js - description ( description ?== description ) >+PASS 19.js - count (1 ?== 1) >+PASS 19.js - name (metric ?== metric) >+PASS 19.js - duration (0 ?== 0) >+PASS 19.js - description (descr"iption ?== descr"iption) >+PASS 20.js - count (1 ?== 1) >+PASS 20.js - name (metric ?== metric) >+PASS 20.js - duration (0 ?== 0) >+PASS 20.js - description ( ?== ) >+PASS 21.js - count (1 ?== 1) >+PASS 21.js - name (metric ?== metric) >+PASS 21.js - duration (0 ?== 0) >+PASS 21.js - description ( ?== ) >+PASS 22.js - count (1 ?== 1) >+PASS 22.js - name (metric ?== metric) >+PASS 22.js - duration (0 ?== 0) >+PASS 22.js - description ( ?== ) >+PASS 23.js - count (1 ?== 1) >+PASS 23.js - name (metric ?== metric) >+PASS 23.js - duration (0 ?== 0) >+PASS 23.js - description ( ?== ) >+PASS 24.js - count (1 ?== 1) >+PASS 24.js - name (metric ?== metric) >+PASS 24.js - duration (0 ?== 0) >+PASS 24.js - description ( ?== ) >+PASS 25.js - count (1 ?== 1) >+PASS 25.js - name (metric ?== metric) >+PASS 25.js - duration (0 ?== 0) >+PASS 25.js - description ( ?== ) >+PASS 26.js - count (1 ?== 1) >+PASS 26.js - name (metric ?== metric) >+PASS 26.js - duration (0 ?== 0) >+PASS 26.js - description ( ?== ) >+PASS 27.js - count (1 ?== 1) >+PASS 27.js - name (metric ?== metric) >+PASS 27.js - duration (0 ?== 0) >+PASS 27.js - description ( ?== ) >+PASS 28.js - count (1 ?== 1) >+PASS 28.js - name (metric ?== metric) >+PASS 28.js - duration (0 ?== 0) >+PASS 28.js - description ( ?== ) >+PASS 29.js - count (1 ?== 1) >+PASS 29.js - name (metric ?== metric) >+PASS 29.js - duration (0 ?== 0) >+PASS 29.js - description ( ?== ) >+PASS 30.js - count (1 ?== 1) >+PASS 30.js - name (metric ?== metric) >+PASS 30.js - duration (0 ?== 0) >+PASS 30.js - description ( ?== ) >+PASS 31.js - count (1 ?== 1) >+PASS 31.js - name (metric ?== metric) >+PASS 31.js - duration (0 ?== 0) >+PASS 31.js - description ( ?== ) >+PASS 32.js - count (1 ?== 1) >+PASS 32.js - name (metric ?== metric) >+PASS 32.js - duration (0 ?== 0) >+PASS 32.js - description ( ?== ) >+PASS 33.js - count (1 ?== 1) >+PASS 33.js - name (metric ?== metric) >+PASS 33.js - duration (0 ?== 0) >+PASS 33.js - description ( ?== ) >+PASS 34.js - count (1 ?== 1) >+PASS 34.js - name (metric ?== metric) >+PASS 34.js - duration (0 ?== 0) >+PASS 34.js - description ( ?== ) >+PASS 35.js - count (1 ?== 1) >+PASS 35.js - name (metric ?== metric) >+PASS 35.js - duration (0 ?== 0) >+PASS 35.js - description ( ?== ) >+PASS 36.js - count (1 ?== 1) >+PASS 36.js - name (metric ?== metric) >+PASS 36.js - duration (0 ?== 0) >+PASS 36.js - description ( ?== ) >+PASS 37.js - count (1 ?== 1) >+PASS 37.js - name (metric ?== metric) >+PASS 37.js - duration (0 ?== 0) >+PASS 37.js - description ( ?== ) >+PASS 38.js - count (1 ?== 1) >+PASS 38.js - name (metric ?== metric) >+PASS 38.js - duration (0 ?== 0) >+PASS 38.js - description ( ?== ) >+PASS 39.js - count (1 ?== 1) >+PASS 39.js - name (metric ?== metric) >+PASS 39.js - duration (0 ?== 0) >+PASS 39.js - description ( ?== ) >+PASS 40.js - count (1 ?== 1) >+PASS 40.js - name (metric ?== metric) >+PASS 40.js - duration (0 ?== 0) >+PASS 40.js - description ( ?== ) >+PASS 41.js - count (1 ?== 1) >+PASS 41.js - name (metric ?== metric) >+PASS 41.js - duration (0 ?== 0) >+PASS 41.js - description ( ?== ) >+PASS 42.js - count (1 ?== 1) >+PASS 42.js - name (metric ?== metric) >+PASS 42.js - duration (0 ?== 0) >+PASS 42.js - description ( ?== ) >+PASS 43.js - count (1 ?== 1) >+PASS 43.js - name (metric ?== metric) >+PASS 43.js - duration (0 ?== 0) >+PASS 43.js - description (\ ?== \) >+PASS 44.js - count (1 ?== 1) >+PASS 44.js - name (metric ?== metric) >+PASS 44.js - duration (0 ?== 0) >+PASS 44.js - description ( ?== ) >+PASS 45.js - count (1 ?== 1) >+PASS 45.js - name (metric ?== metric) >+PASS 45.js - duration (0 ?== 0) >+PASS 45.js - description (" ?== ") >+PASS 46.js - count (1 ?== 1) >+PASS 46.js - name (metric ?== metric) >+PASS 46.js - duration (0 ?== 0) >+PASS 46.js - description ( ?== ) >+PASS 47.js - count (1 ?== 1) >+PASS 47.js - name (metric ?== metric) >+PASS 47.js - duration (0 ?== 0) >+PASS 47.js - description ( ?== ) >+PASS 48.js - count (1 ?== 1) >+PASS 48.js - name (metric ?== metric) >+PASS 48.js - duration (0 ?== 0) >+PASS 48.js - description ( ?== ) >+PASS 49.js - count (1 ?== 1) >+PASS 49.js - name (metric ?== metric) >+PASS 49.js - duration (0 ?== 0) >+PASS 49.js - description ( ?== ) >+PASS 50.js - count (2 ?== 2) >+PASS 50.js - [0].name (metric ?== metric) >+PASS 50.js - [0].duration (12.3 ?== 12.3) >+PASS 50.js - [0].description (description1 ?== description1) >+PASS 50.js - [1].name (metric ?== metric) >+PASS 50.js - [1].duration (45.6 ?== 45.6) >+PASS 50.js - [1].description (description2 ?== description2) >+PASS 51.js - count (1 ?== 1) >+PASS 51.js - name (metric ?== metric) >+PASS 51.js - duration (123.4 ?== 123.4) >+PASS 51.js - description (description ?== description) >+PASS 52.js - count (1 ?== 1) >+PASS 52.js - name (MeTrIc ?== MeTrIc) >+PASS 52.js - duration (0 ?== 0) >+PASS 52.js - description (DeScRiPtIoN ?== DeScRiPtIoN) >+PASS 53.js - count (1 ?== 1) >+PASS 53.js - name (metric ?== metric) >+PASS 53.js - duration (0 ?== 0) >+PASS 53.js - description ( ?== ) >+PASS 54.js - count (1 ?== 1) >+PASS 54.js - name (metric ?== metric) >+PASS 54.js - duration (0 ?== 0) >+PASS 54.js - description ( ?== ) >+PASS 55.js - count (2 ?== 2) >+PASS 55.js - [0].name (metric1 ?== metric1) >+PASS 55.js - [0].duration (123.4 ?== 123.4) >+PASS 55.js - [0].description (description ?== description) >+PASS 55.js - [1].name (metric2 ?== metric2) >+PASS 55.js - [1].duration (0 ?== 0) >+PASS 55.js - [1].description ( ?== ) >+PASS 56.js - count (1 ?== 1) >+PASS 56.js - name (metric ?== metric) >+PASS 56.js - duration (123.4 ?== 123.4) >+PASS 56.js - description ( ?== ) >+PASS 57.js - count (1 ?== 1) >+PASS 57.js - name (metric ?== metric) >+PASS 57.js - duration (0 ?== 0) >+PASS 57.js - description ( ?== ) >+PASS 58.js - count (1 ?== 1) >+PASS 58.js - name (metric ?== metric) >+PASS 58.js - duration (0 ?== 0) >+PASS 58.js - description (description1 ?== description1) >+PASS 59.js - count (1 ?== 1) >+PASS 59.js - name (metric ?== metric) >+PASS 59.js - duration (0 ?== 0) >+PASS 59.js - description (description ?== description) >+PASS 60.js - count (1 ?== 1) >+PASS 60.js - name (metric ?== metric) >+PASS 60.js - duration (0 ?== 0) >+PASS 60.js - description (description ?== description) >+PASS 61.js - count (1 ?== 1) >+PASS 61.js - name (metric ?== metric) >+PASS 61.js - duration (123.4 ?== 123.4) >+PASS 61.js - description ( ?== ) >+PASS 62.js - count (1 ?== 1) >+PASS 62.js - name (metric ?== metric) >+PASS 62.js - duration (123.4 ?== 123.4) >+PASS 62.js - description ( ?== ) >+PASS 63.js - count (1 ?== 1) >+PASS 63.js - name (metric ?== metric) >+PASS 63.js - duration (123.4 ?== 123.4) >+PASS 63.js - description (d1 ?== d1) >+PASS 64.js - count (2 ?== 2) >+PASS 64.js - [0].name (metric1 ?== metric1) >+PASS 64.js - [0].duration (0 ?== 0) >+PASS 64.js - [0].description (d1 ?== d1) >+PASS 64.js - [1].name (metric2 ?== metric2) >+PASS 64.js - [1].duration (0 ?== 0) >+PASS 64.js - [1].description ( ?== ) >+PASS 65.js - count (1 ?== 1) >+PASS 65.js - name (metric ?== metric) >+PASS 65.js - duration (123.4 ?== 123.4) >+PASS 65.js - description (d1 ?== d1) >+PASS 66.js - count (2 ?== 2) >+PASS 66.js - [0].name (metric1 ?== metric1) >+PASS 66.js - [0].duration (0 ?== 0) >+PASS 66.js - [0].description (d1 ?== d1) >+PASS 66.js - [1].name (metric2 ?== metric2) >+PASS 66.js - [1].duration (0 ?== 0) >+PASS 66.js - [1].description ( ?== ) >+PASS 67.js - count (1 ?== 1) >+PASS 67.js - name (metric ?== metric) >+PASS 67.js - duration (0 ?== 0) >+PASS 67.js - description ( ?== ) >+PASS 68.js - count (1 ?== 1) >+PASS 68.js - name (metric1 ?== metric1) >+PASS 68.js - duration (0 ?== 0) >+PASS 68.js - description ( ?== ) >+PASS 69.js - count (1 ?== 1) >+PASS 69.js - name (metric ?== metric) >+PASS 69.js - duration (0 ?== 0) >+PASS 69.js - description ( ?== ) >+PASS 70.js - count (1 ?== 1) >+PASS 70.js - name (metric ?== metric) >+PASS 70.js - duration (0 ?== 0) >+PASS 70.js - description ( ?== ) >+PASS 71.js - count (0 ?== 0) >+PASS 72.js - count (0 ?== 0) >+PASS 73.js - count (0 ?== 0) >+PASS 74.js - count (0 ?== 0) >+PASS 75.js - count (0 ?== 0) >+PASS 76.js - count (0 ?== 0) >+PASS 77.js - count (0 ?== 0) >+PASS 78.js - count (0 ?== 0) >+PASS 79.js - count (0 ?== 0) >+PASS 80.js - count (0 ?== 0) >+PASS 81.js - count (0 ?== 0) >+PASS 82.js - count (0 ?== 0) >+PASS 83.js - count (0 ?== 0) >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/server_timing_header-parsing.html b/LayoutTests/imported/w3c/web-platform-tests/server-timing/server_timing_header-parsing.html >new file mode 100644 >index 0000000000000000000000000000000000000000..50396ed642f4e820b1fbd60779d8c7e7e5b1d514 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/server_timing_header-parsing.html >@@ -0,0 +1,49 @@ >+<!DOCTYPE html> >+<!-- >+tests generated by: >+ https://github.com/cvazac/generate-server-timing-tests >+--> >+ >+<head> >+ <meta charset='utf-8' /> >+ <script src="/resources/testharness.js"></script> >+ <script src='/resources/testharnessreport.js'></script> >+ <script src="/common/performance-timeline-utils.js"></script> >+ <script> >+ setup({explicit_done: true}) >+ const tests = [] >+ const urlToIndex = {} >+ function testServerTiming(script, expectedResults) { >+ const url = script.src >+ tests[urlToIndex[url]] = {url, expectedResults} >+ } >+ function runTests() { >+ tests.forEach(function({url, expectedResults}) { >+ const {serverTiming} = performance.getEntriesByName(url)[0] >+ const fileName = url.substring(url.lastIndexOf('/') + 1) >+ >+ test_equals(serverTiming.length, expectedResults.length, `${fileName} - count (${serverTiming.length} ?== ${expectedResults.length})`) >+ >+ expectedResults.forEach(function(expectedResult, i) { >+ const dur = expectedResult.dur || 0 >+ const desc = expectedResult.desc || '' >+ const index = expectedResults.length === 1 ? '' : `[${i}].` >+ test_equals(expectedResult.name, serverTiming[i].name, >+ `${fileName} - ${index}name (${expectedResult.name} ?== ${serverTiming[i].name})`) >+ test_equals(dur, serverTiming[i].duration, >+ `${fileName} - ${index}duration (${dur} ?== ${serverTiming[i].duration})`) >+ test_equals(desc, serverTiming[i].description, >+ `${fileName} - ${index}description (${desc} ?== ${serverTiming[i].description})`) >+ }) >+ }) >+ done() >+ } >+ for (let i = 0; i <= 83; i++) { >+ const script = document.createElement('script') >+ script.src = `./resources/parsing/${i}.js` >+ document.getElementsByTagName('head')[0].appendChild(script) >+ urlToIndex[script.src] = i >+ } >+ window.addEventListener('load', runTests) >+ </script> >+</head> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/server_timing_header-parsing.https.html b/LayoutTests/imported/w3c/web-platform-tests/server-timing/server_timing_header-parsing.https.html >new file mode 100644 >index 0000000000000000000000000000000000000000..50396ed642f4e820b1fbd60779d8c7e7e5b1d514 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/server_timing_header-parsing.https.html >@@ -0,0 +1,49 @@ >+<!DOCTYPE html> >+<!-- >+tests generated by: >+ https://github.com/cvazac/generate-server-timing-tests >+--> >+ >+<head> >+ <meta charset='utf-8' /> >+ <script src="/resources/testharness.js"></script> >+ <script src='/resources/testharnessreport.js'></script> >+ <script src="/common/performance-timeline-utils.js"></script> >+ <script> >+ setup({explicit_done: true}) >+ const tests = [] >+ const urlToIndex = {} >+ function testServerTiming(script, expectedResults) { >+ const url = script.src >+ tests[urlToIndex[url]] = {url, expectedResults} >+ } >+ function runTests() { >+ tests.forEach(function({url, expectedResults}) { >+ const {serverTiming} = performance.getEntriesByName(url)[0] >+ const fileName = url.substring(url.lastIndexOf('/') + 1) >+ >+ test_equals(serverTiming.length, expectedResults.length, `${fileName} - count (${serverTiming.length} ?== ${expectedResults.length})`) >+ >+ expectedResults.forEach(function(expectedResult, i) { >+ const dur = expectedResult.dur || 0 >+ const desc = expectedResult.desc || '' >+ const index = expectedResults.length === 1 ? '' : `[${i}].` >+ test_equals(expectedResult.name, serverTiming[i].name, >+ `${fileName} - ${index}name (${expectedResult.name} ?== ${serverTiming[i].name})`) >+ test_equals(dur, serverTiming[i].duration, >+ `${fileName} - ${index}duration (${dur} ?== ${serverTiming[i].duration})`) >+ test_equals(desc, serverTiming[i].description, >+ `${fileName} - ${index}description (${desc} ?== ${serverTiming[i].description})`) >+ }) >+ }) >+ done() >+ } >+ for (let i = 0; i <= 83; i++) { >+ const script = document.createElement('script') >+ script.src = `./resources/parsing/${i}.js` >+ document.getElementsByTagName('head')[0].appendChild(script) >+ urlToIndex[script.src] = i >+ } >+ window.addEventListener('load', runTests) >+ </script> >+</head> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/test_server_timing-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/server-timing/test_server_timing-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/test_server_timing.html b/LayoutTests/imported/w3c/web-platform-tests/server-timing/test_server_timing.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2d43aa2d43b722ff489db10b2df6f2c218e1f1d7 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/test_server_timing.html >@@ -0,0 +1,45 @@ >+<!DOCTYPE html> >+<head> >+ <meta charset='utf-8' /> >+ <script src="/resources/testharness.js"></script> >+ <script src='/resources/testharnessreport.js'></script> >+ <script src="/common/performance-timeline-utils.js"></script> >+ <script> >+ setup({explicit_done: true}) >+ >+ window.addEventListener('load', function() { >+ // there should be exactly three server-timing entries, 2 for document, 1 for img#one >+ test_entries(performance.getEntriesByType('navigation')[0].serverTiming, [{ >+ duration: 1.1, >+ name: 'metric1', >+ description: 'document', >+ }, { >+ duration: 1.2, >+ name: 'metric1', >+ description: 'document', >+ }]) >+ test_entries(performance.getEntriesByName(document.querySelector('img#one').src)[0].serverTiming, [{ >+ duration: 2.1, >+ name: 'metric2', >+ description: 'blue.png', >+ }]) >+ >+ new PerformanceObserver(function(entryList, observer) { >+ // there should be exactly one server-timing entry, 1 for img#two >+ test_entries(entryList.getEntriesByName(document.querySelector('img#two').src)[0].serverTiming, [{ >+ duration: 3.1, >+ name: 'metric3', >+ description: 'green.png', >+ }]) >+ observer.disconnect() >+ done() >+ }).observe({entryTypes: ['resource']}) >+ >+ var img = document.createElement('img') >+ img.id = 'two' >+ img.src = './resources/green.png' >+ document.getElementsByTagName('script')[0].parentNode.appendChild(img) >+ }) >+ </script> >+</head> >+<img id='one' src='resources/blue.png'> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/test_server_timing.html.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/test_server_timing.html.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..ad018b70fd8f98cd174b90a22b833f399f129a1d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/test_server_timing.html.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric1; dur=1.1; desc=document, metric1; dur=1.2; desc=document >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/test_server_timing.https.html b/LayoutTests/imported/w3c/web-platform-tests/server-timing/test_server_timing.https.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2d43aa2d43b722ff489db10b2df6f2c218e1f1d7 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/test_server_timing.https.html >@@ -0,0 +1,45 @@ >+<!DOCTYPE html> >+<head> >+ <meta charset='utf-8' /> >+ <script src="/resources/testharness.js"></script> >+ <script src='/resources/testharnessreport.js'></script> >+ <script src="/common/performance-timeline-utils.js"></script> >+ <script> >+ setup({explicit_done: true}) >+ >+ window.addEventListener('load', function() { >+ // there should be exactly three server-timing entries, 2 for document, 1 for img#one >+ test_entries(performance.getEntriesByType('navigation')[0].serverTiming, [{ >+ duration: 1.1, >+ name: 'metric1', >+ description: 'document', >+ }, { >+ duration: 1.2, >+ name: 'metric1', >+ description: 'document', >+ }]) >+ test_entries(performance.getEntriesByName(document.querySelector('img#one').src)[0].serverTiming, [{ >+ duration: 2.1, >+ name: 'metric2', >+ description: 'blue.png', >+ }]) >+ >+ new PerformanceObserver(function(entryList, observer) { >+ // there should be exactly one server-timing entry, 1 for img#two >+ test_entries(entryList.getEntriesByName(document.querySelector('img#two').src)[0].serverTiming, [{ >+ duration: 3.1, >+ name: 'metric3', >+ description: 'green.png', >+ }]) >+ observer.disconnect() >+ done() >+ }).observe({entryTypes: ['resource']}) >+ >+ var img = document.createElement('img') >+ img.id = 'two' >+ img.src = './resources/green.png' >+ document.getElementsByTagName('script')[0].parentNode.appendChild(img) >+ }) >+ </script> >+</head> >+<img id='one' src='resources/blue.png'> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/test_server_timing.https.html.sub.headers b/LayoutTests/imported/w3c/web-platform-tests/server-timing/test_server_timing.https.html.sub.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..ad018b70fd8f98cd174b90a22b833f399f129a1d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/test_server_timing.https.html.sub.headers >@@ -0,0 +1 @@ >+Server-Timing: metric1; dur=1.1; desc=document, metric1; dur=1.2; desc=document >diff --git a/LayoutTests/imported/w3c/web-platform-tests/server-timing/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/server-timing/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..46611a7dc61616fe49bf68144780f5ec677bdd61 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/server-timing/w3c-import.log >@@ -0,0 +1,29 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/w3c/web-platform-tests >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/cross_origin.html >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/navigation_timing_idl.html >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/navigation_timing_idl.https.html >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resource_timing_idl.html >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/resource_timing_idl.https.html >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/server_timing_header-parsing.html >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/server_timing_header-parsing.https.html >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/service_worker_idl.html >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/sw.js >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/test_server_timing.html >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/test_server_timing.html.sub.headers >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/test_server_timing.https.html >+/LayoutTests/imported/w3c/web-platform-tests/server-timing/test_server_timing.https.html.sub.headers
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 175569
:
333605
|
333619
|
333624
|
333627
|
333657
|
333660
|
333668
|
333686
|
333687
|
333805
|
333817
|
333902
|
333943
|
333945
|
333966
|
336586
|
336619
|
337036
|
337052
|
337057
|
337139
|
337383
|
337385
|
337498
|
337502
|
337505
|
337512
|
337513
|
337545
|
337602
|
337606
|
337607
|
337620
|
337624
|
337670
|
338227
|
338241
|
338242
|
338246
|
338248
|
340213
|
340226
|
340311
|
340339
|
340351
|
340356
|
340410