Changeset 231813 in webkit
- Timestamp:
- May 15, 2018 12:24:30 PM (6 years ago)
- Location:
- trunk
- Files:
-
- 199 added
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r231812 r231813 1 2018-05-15 Charles Vazac <cvazac@gmail.com> 2 3 Add the PerformanceServerTiming Interface which makes Server-Timing header timing values available to JavaScript running in the browser. 4 https://bugs.webkit.org/show_bug.cgi?id=175569 5 6 Reviewed by Youenn Fablet. 7 8 Tests were imported from web-platform-tests: WebKit/LayoutTests/imported/w3c/web-platform-tests/server-timing/* 9 10 * imported/w3c/web-platform-tests/server-timing/cross_origin-expected.txt: Added. 11 * imported/w3c/web-platform-tests/server-timing/resource_timing_idl-expected.txt: Added. 12 * imported/w3c/web-platform-tests/server-timing/resource_timing_idl.https-expected.txt: Added. 13 * imported/w3c/web-platform-tests/server-timing/server_timing_header-parsing-expected.txt: Added. 14 * imported/w3c/web-platform-tests/server-timing/server_timing_header-parsing.https-expected.txt: Added. 15 1 16 2018-05-15 Brady Eidson <beidson@apple.com> 2 17 -
trunk/LayoutTests/TestExpectations
r231789 r231813 189 189 imported/w3c/web-platform-tests/service-workers/service-worker/shared-worker-controlled.https.html [ Skip ] 190 190 imported/w3c/web-platform-tests/service-workers/service-worker/claim-shared-worker-fetch.https.html [ Skip ] 191 192 # Unsupported features: PerformanceNavigationTiming 193 imported/w3c/web-platform-tests/server-timing/test_server_timing.html [ Skip ] 194 imported/w3c/web-platform-tests/server-timing/test_server_timing.https.html [ Skip ] 195 imported/w3c/web-platform-tests/server-timing/navigation_timing_idl.html [ Skip ] 196 imported/w3c/web-platform-tests/server-timing/navigation_timing_idl.https.html [ Skip ] 191 197 192 198 imported/w3c/web-platform-tests/service-workers/service-worker/websocket.https.html [ Pass Failure ] -
trunk/LayoutTests/imported/w3c/ChangeLog
r231798 r231813 1 2018-05-15 Charles Vazac <cvazac@gmail.com> 2 3 Add the PerformanceServerTiming Interface which makes Server-Timing header timing values available to JavaScript running in the browser. 4 https://bugs.webkit.org/show_bug.cgi?id=175569 5 6 Reviewed by Youenn Fablet. 7 8 Tests were imported from web-platform-tests: WebKit/LayoutTests/imported/w3c/web-platform-tests/server-timing/* 9 10 * web-platform-tests/server-timing/cross_origin.html: Added. 11 * web-platform-tests/server-timing/navigation_timing_idl.html: Added. 12 * web-platform-tests/server-timing/navigation_timing_idl.https.html: Added. 13 * web-platform-tests/server-timing/resources/blue.png: Added. 14 * web-platform-tests/server-timing/resources/blue.png.sub.headers: Added. 15 * web-platform-tests/server-timing/resources/blue_tao.png: Added. 16 * web-platform-tests/server-timing/resources/blue_tao.png.sub.headers: Added. 17 * web-platform-tests/server-timing/resources/green.png: Added. 18 * web-platform-tests/server-timing/resources/green.png.sub.headers: Added. 19 * web-platform-tests/server-timing/resources/parsing/0.js: Added. 20 * web-platform-tests/server-timing/resources/parsing/0.js.sub.headers: Added. 21 * web-platform-tests/server-timing/resources/parsing/1.js: Added. 22 * web-platform-tests/server-timing/resources/parsing/1.js.sub.headers: Added. 23 * web-platform-tests/server-timing/resources/parsing/10.js: Added. 24 * web-platform-tests/server-timing/resources/parsing/10.js.sub.headers: Added. 25 * web-platform-tests/server-timing/resources/parsing/11.js: Added. 26 * web-platform-tests/server-timing/resources/parsing/11.js.sub.headers: Added. 27 * web-platform-tests/server-timing/resources/parsing/12.js: Added. 28 * web-platform-tests/server-timing/resources/parsing/12.js.sub.headers: Added. 29 * web-platform-tests/server-timing/resources/parsing/13.js: Added. 30 * web-platform-tests/server-timing/resources/parsing/13.js.sub.headers: Added. 31 * web-platform-tests/server-timing/resources/parsing/14.js: Added. 32 * web-platform-tests/server-timing/resources/parsing/14.js.sub.headers: Added. 33 * web-platform-tests/server-timing/resources/parsing/15.js: Added. 34 * web-platform-tests/server-timing/resources/parsing/15.js.sub.headers: Added. 35 * web-platform-tests/server-timing/resources/parsing/16.js: Added. 36 * web-platform-tests/server-timing/resources/parsing/16.js.sub.headers: Added. 37 * web-platform-tests/server-timing/resources/parsing/17.js: Added. 38 * web-platform-tests/server-timing/resources/parsing/17.js.sub.headers: Added. 39 * web-platform-tests/server-timing/resources/parsing/18.js: Added. 40 * web-platform-tests/server-timing/resources/parsing/18.js.sub.headers: Added. 41 * web-platform-tests/server-timing/resources/parsing/19.js: Added. 42 * web-platform-tests/server-timing/resources/parsing/19.js.sub.headers: Added. 43 * web-platform-tests/server-timing/resources/parsing/2.js: Added. 44 * web-platform-tests/server-timing/resources/parsing/2.js.sub.headers: Added. 45 * web-platform-tests/server-timing/resources/parsing/20.js: Added. 46 * web-platform-tests/server-timing/resources/parsing/20.js.sub.headers: Added. 47 * web-platform-tests/server-timing/resources/parsing/21.js: Added. 48 * web-platform-tests/server-timing/resources/parsing/21.js.sub.headers: Added. 49 * web-platform-tests/server-timing/resources/parsing/22.js: Added. 50 * web-platform-tests/server-timing/resources/parsing/22.js.sub.headers: Added. 51 * web-platform-tests/server-timing/resources/parsing/23.js: Added. 52 * web-platform-tests/server-timing/resources/parsing/23.js.sub.headers: Added. 53 * web-platform-tests/server-timing/resources/parsing/24.js: Added. 54 * web-platform-tests/server-timing/resources/parsing/24.js.sub.headers: Added. 55 * web-platform-tests/server-timing/resources/parsing/25.js: Added. 56 * web-platform-tests/server-timing/resources/parsing/25.js.sub.headers: Added. 57 * web-platform-tests/server-timing/resources/parsing/26.js: Added. 58 * web-platform-tests/server-timing/resources/parsing/26.js.sub.headers: Added. 59 * web-platform-tests/server-timing/resources/parsing/27.js: Added. 60 * web-platform-tests/server-timing/resources/parsing/27.js.sub.headers: Added. 61 * web-platform-tests/server-timing/resources/parsing/28.js: Added. 62 * web-platform-tests/server-timing/resources/parsing/28.js.sub.headers: Added. 63 * web-platform-tests/server-timing/resources/parsing/29.js: Added. 64 * web-platform-tests/server-timing/resources/parsing/29.js.sub.headers: Added. 65 * web-platform-tests/server-timing/resources/parsing/3.js: Added. 66 * web-platform-tests/server-timing/resources/parsing/3.js.sub.headers: Added. 67 * web-platform-tests/server-timing/resources/parsing/30.js: Added. 68 * web-platform-tests/server-timing/resources/parsing/30.js.sub.headers: Added. 69 * web-platform-tests/server-timing/resources/parsing/31.js: Added. 70 * web-platform-tests/server-timing/resources/parsing/31.js.sub.headers: Added. 71 * web-platform-tests/server-timing/resources/parsing/32.js: Added. 72 * web-platform-tests/server-timing/resources/parsing/32.js.sub.headers: Added. 73 * web-platform-tests/server-timing/resources/parsing/33.js: Added. 74 * web-platform-tests/server-timing/resources/parsing/33.js.sub.headers: Added. 75 * web-platform-tests/server-timing/resources/parsing/34.js: Added. 76 * web-platform-tests/server-timing/resources/parsing/34.js.sub.headers: Added. 77 * web-platform-tests/server-timing/resources/parsing/35.js: Added. 78 * web-platform-tests/server-timing/resources/parsing/35.js.sub.headers: Added. 79 * web-platform-tests/server-timing/resources/parsing/36.js: Added. 80 * web-platform-tests/server-timing/resources/parsing/36.js.sub.headers: Added. 81 * web-platform-tests/server-timing/resources/parsing/37.js: Added. 82 * web-platform-tests/server-timing/resources/parsing/37.js.sub.headers: Added. 83 * web-platform-tests/server-timing/resources/parsing/38.js: Added. 84 * web-platform-tests/server-timing/resources/parsing/38.js.sub.headers: Added. 85 * web-platform-tests/server-timing/resources/parsing/39.js: Added. 86 * web-platform-tests/server-timing/resources/parsing/39.js.sub.headers: Added. 87 * web-platform-tests/server-timing/resources/parsing/4.js: Added. 88 * web-platform-tests/server-timing/resources/parsing/4.js.sub.headers: Added. 89 * web-platform-tests/server-timing/resources/parsing/40.js: Added. 90 * web-platform-tests/server-timing/resources/parsing/40.js.sub.headers: Added. 91 * web-platform-tests/server-timing/resources/parsing/41.js: Added. 92 * web-platform-tests/server-timing/resources/parsing/41.js.sub.headers: Added. 93 * web-platform-tests/server-timing/resources/parsing/42.js: Added. 94 * web-platform-tests/server-timing/resources/parsing/42.js.sub.headers: Added. 95 * web-platform-tests/server-timing/resources/parsing/43.js: Added. 96 * web-platform-tests/server-timing/resources/parsing/43.js.sub.headers: Added. 97 * web-platform-tests/server-timing/resources/parsing/44.js: Added. 98 * web-platform-tests/server-timing/resources/parsing/44.js.sub.headers: Added. 99 * web-platform-tests/server-timing/resources/parsing/45.js: Added. 100 * web-platform-tests/server-timing/resources/parsing/45.js.sub.headers: Added. 101 * web-platform-tests/server-timing/resources/parsing/46.js: Added. 102 * web-platform-tests/server-timing/resources/parsing/46.js.sub.headers: Added. 103 * web-platform-tests/server-timing/resources/parsing/47.js: Added. 104 * web-platform-tests/server-timing/resources/parsing/47.js.sub.headers: Added. 105 * web-platform-tests/server-timing/resources/parsing/48.js: Added. 106 * web-platform-tests/server-timing/resources/parsing/48.js.sub.headers: Added. 107 * web-platform-tests/server-timing/resources/parsing/49.js: Added. 108 * web-platform-tests/server-timing/resources/parsing/49.js.sub.headers: Added. 109 * web-platform-tests/server-timing/resources/parsing/5.js: Added. 110 * web-platform-tests/server-timing/resources/parsing/5.js.sub.headers: Added. 111 * web-platform-tests/server-timing/resources/parsing/50.js: Added. 112 * web-platform-tests/server-timing/resources/parsing/50.js.sub.headers: Added. 113 * web-platform-tests/server-timing/resources/parsing/51.js: Added. 114 * web-platform-tests/server-timing/resources/parsing/51.js.sub.headers: Added. 115 * web-platform-tests/server-timing/resources/parsing/52.js: Added. 116 * web-platform-tests/server-timing/resources/parsing/52.js.sub.headers: Added. 117 * web-platform-tests/server-timing/resources/parsing/53.js: Added. 118 * web-platform-tests/server-timing/resources/parsing/53.js.sub.headers: Added. 119 * web-platform-tests/server-timing/resources/parsing/54.js: Added. 120 * web-platform-tests/server-timing/resources/parsing/54.js.sub.headers: Added. 121 * web-platform-tests/server-timing/resources/parsing/55.js: Added. 122 * web-platform-tests/server-timing/resources/parsing/55.js.sub.headers: Added. 123 * web-platform-tests/server-timing/resources/parsing/56.js: Added. 124 * web-platform-tests/server-timing/resources/parsing/56.js.sub.headers: Added. 125 * web-platform-tests/server-timing/resources/parsing/57.js: Added. 126 * web-platform-tests/server-timing/resources/parsing/57.js.sub.headers: Added. 127 * web-platform-tests/server-timing/resources/parsing/58.js: Added. 128 * web-platform-tests/server-timing/resources/parsing/58.js.sub.headers: Added. 129 * web-platform-tests/server-timing/resources/parsing/59.js: Added. 130 * web-platform-tests/server-timing/resources/parsing/59.js.sub.headers: Added. 131 * web-platform-tests/server-timing/resources/parsing/6.js: Added. 132 * web-platform-tests/server-timing/resources/parsing/6.js.sub.headers: Added. 133 * web-platform-tests/server-timing/resources/parsing/60.js: Added. 134 * web-platform-tests/server-timing/resources/parsing/60.js.sub.headers: Added. 135 * web-platform-tests/server-timing/resources/parsing/61.js: Added. 136 * web-platform-tests/server-timing/resources/parsing/61.js.sub.headers: Added. 137 * web-platform-tests/server-timing/resources/parsing/62.js: Added. 138 * web-platform-tests/server-timing/resources/parsing/62.js.sub.headers: Added. 139 * web-platform-tests/server-timing/resources/parsing/63.js: Added. 140 * web-platform-tests/server-timing/resources/parsing/63.js.sub.headers: Added. 141 * web-platform-tests/server-timing/resources/parsing/64.js: Added. 142 * web-platform-tests/server-timing/resources/parsing/64.js.sub.headers: Added. 143 * web-platform-tests/server-timing/resources/parsing/65.js: Added. 144 * web-platform-tests/server-timing/resources/parsing/65.js.sub.headers: Added. 145 * web-platform-tests/server-timing/resources/parsing/66.js: Added. 146 * web-platform-tests/server-timing/resources/parsing/66.js.sub.headers: Added. 147 * web-platform-tests/server-timing/resources/parsing/67.js: Added. 148 * web-platform-tests/server-timing/resources/parsing/67.js.sub.headers: Added. 149 * web-platform-tests/server-timing/resources/parsing/68.js: Added. 150 * web-platform-tests/server-timing/resources/parsing/68.js.sub.headers: Added. 151 * web-platform-tests/server-timing/resources/parsing/69.js: Added. 152 * web-platform-tests/server-timing/resources/parsing/69.js.sub.headers: Added. 153 * web-platform-tests/server-timing/resources/parsing/7.js: Added. 154 * web-platform-tests/server-timing/resources/parsing/7.js.sub.headers: Added. 155 * web-platform-tests/server-timing/resources/parsing/70.js: Added. 156 * web-platform-tests/server-timing/resources/parsing/70.js.sub.headers: Added. 157 * web-platform-tests/server-timing/resources/parsing/71.js: Added. 158 * web-platform-tests/server-timing/resources/parsing/71.js.sub.headers: Added. 159 * web-platform-tests/server-timing/resources/parsing/72.js: Added. 160 * web-platform-tests/server-timing/resources/parsing/72.js.sub.headers: Added. 161 * web-platform-tests/server-timing/resources/parsing/73.js: Added. 162 * web-platform-tests/server-timing/resources/parsing/73.js.sub.headers: Added. 163 * web-platform-tests/server-timing/resources/parsing/74.js: Added. 164 * web-platform-tests/server-timing/resources/parsing/74.js.sub.headers: Added. 165 * web-platform-tests/server-timing/resources/parsing/75.js: Added. 166 * web-platform-tests/server-timing/resources/parsing/75.js.sub.headers: Added. 167 * web-platform-tests/server-timing/resources/parsing/76.js: Added. 168 * web-platform-tests/server-timing/resources/parsing/76.js.sub.headers: Added. 169 * web-platform-tests/server-timing/resources/parsing/77.js: Added. 170 * web-platform-tests/server-timing/resources/parsing/77.js.sub.headers: Added. 171 * web-platform-tests/server-timing/resources/parsing/78.js: Added. 172 * web-platform-tests/server-timing/resources/parsing/78.js.sub.headers: Added. 173 * web-platform-tests/server-timing/resources/parsing/79.js: Added. 174 * web-platform-tests/server-timing/resources/parsing/79.js.sub.headers: Added. 175 * web-platform-tests/server-timing/resources/parsing/8.js: Added. 176 * web-platform-tests/server-timing/resources/parsing/8.js.sub.headers: Added. 177 * web-platform-tests/server-timing/resources/parsing/80.js: Added. 178 * web-platform-tests/server-timing/resources/parsing/80.js.sub.headers: Added. 179 * web-platform-tests/server-timing/resources/parsing/81.js: Added. 180 * web-platform-tests/server-timing/resources/parsing/81.js.sub.headers: Added. 181 * web-platform-tests/server-timing/resources/parsing/82.js: Added. 182 * web-platform-tests/server-timing/resources/parsing/82.js.sub.headers: Added. 183 * web-platform-tests/server-timing/resources/parsing/83.js: Added. 184 * web-platform-tests/server-timing/resources/parsing/83.js.sub.headers: Added. 185 * web-platform-tests/server-timing/resources/parsing/9.js: Added. 186 * web-platform-tests/server-timing/resources/parsing/9.js.sub.headers: Added. 187 * web-platform-tests/server-timing/resources/parsing/w3c-import.log: Added. 188 * web-platform-tests/server-timing/resources/w3c-import.log: Added. 189 * web-platform-tests/server-timing/resource_timing_idl.html: Added. 190 * web-platform-tests/server-timing/resource_timing_idl.https.html: Added. 191 * web-platform-tests/server-timing/server_timing_header-parsing.html: Added. 192 * web-platform-tests/server-timing/server_timing_header-parsing.https.html: Added. 193 * web-platform-tests/server-timing/test_server_timing.html: Added. 194 * web-platform-tests/server-timing/test_server_timing.html.sub.headers: Added. 195 * web-platform-tests/server-timing/test_server_timing.https.html: Added. 196 * web-platform-tests/server-timing/test_server_timing.https.html.sub.headers: Added. 197 * web-platform-tests/server-timing/w3c-import.log: Added. 198 1 199 2018-05-15 Antoine Quint <graouts@apple.com> 2 200 -
trunk/LayoutTests/imported/w3c/web-platform-tests/server-timing/sw.js
r231709 r231813 1 1 importScripts('/resources/testharness.js') 2 2 3 promise_test(async (test) => { 4 return fetch('./sw.js').then(function(response) { 5 setTimeout(() => { 6 assert_not_equals(typeof performance.getEntriesByName(response.url)[0].serverTiming, 7 'undefined', 8 'An instance of `PerformanceResourceTiming` should have a `serverTiming` attribute in the Service Worker context.') 9 done() 10 }, 100) 3 promise_test((test) => { 4 return fetch('./sw.js').then((response) => { 5 return new Promise((resolve, reject) => { 6 setTimeout(() => { 7 const entry = performance.getEntriesByName(response.url)[0] 8 if (!entry) { 9 reject('no entry: ' + response.url) 10 } 11 12 assert_not_equals(typeof entry.serverTiming, 13 'undefined', 14 'An instance of `PerformanceResourceTiming` should have a `serverTiming` attribute in the Service Worker context.') 15 resolve() 16 }, 250) 17 }) 11 18 }) 12 19 }) -
trunk/Source/WebCore/ChangeLog
r231812 r231813 1 2018-05-15 Charles Vazac <cvazac@gmail.com> 2 3 Add the PerformanceServerTiming Interface which makes Server-Timing header timing values available to JavaScript running in the browser. 4 https://bugs.webkit.org/show_bug.cgi?id=175569 5 6 Reviewed by Youenn Fablet. 7 8 Tests were imported from web-platform-tests: WebKit/LayoutTests/imported/w3c/web-platform-tests/server-timing/* 9 10 * Sources.txt: Added references to HeaderFieldTokenizer.cpp, ServerTiming.cpp, and ServerTimingParser.cpp. 11 * WebCore.xcodeproj/project.pbxproj: Added various files. 12 * loader/HeaderFieldTokenizer.cpp: Added. 13 (WebCore::HeaderFieldTokenizer::HeaderFieldTokenizer): Added class for tokenizing header values. 14 (WebCore::HeaderFieldTokenizer::consume): Added method to consume a specified character. 15 (WebCore::HeaderFieldTokenizer::consumeQuotedString): Added method to consume a quote-string. 16 (WebCore::HeaderFieldTokenizer::consumeToken): Added a method to consume a token. 17 (WebCore::HeaderFieldTokenizer::consumeTokenOrQuotedString): Added method to consume a quote-string or quote-string, depending on net character. 18 (WebCore::HeaderFieldTokenizer::skipSpaces): Added method to skip whitespace. 19 (WebCore::HeaderFieldTokenizer::consumeBeforeAnyCharMatch): Added method to advance the cursor up until any of a list of characters. 20 * loader/HeaderFieldTokenizer.h: Added. 21 * loader/HTTPHeaderField.cpp: Expose isTokenCharacter and isWhitespace. 22 * loader/HTTPHeaderField.h: Expose isTokenCharacter and isWhitespace. 23 * loader/PolicyChecker.cpp: Added #include so source compiled on my machine. 24 * loader/ResourceTiming.cpp: 25 (WebCore::ResourceTiming::ResourceTiming): Added call to initServerTiming to parse the header. 26 (WebCore::ResourceTiming::initServerTiming): Added method to parse the header. 27 (WebCore::ResourceTiming::populateServerTiming): Added method to populate the server timing entries on a PerformanceResourceTiming object. 28 (WebCore::ResourceTiming::isolatedCopy const): Added code to copy over the server timing entries. 29 * loader/ResourceTiming.h: 30 (WebCore::ResourceTiming::ResourceTiming): Accept collection of server timing entries in c'tor. 31 * loader/ServerTiming.cpp: Added. 32 (WebCore::ServerTiming::setParameter): Set named parameters, ignoring unrecognized or duplicates. 33 (WebCore::ServerTiming::isolatedCopy const): Return a new pointer to the object. 34 * loader/ServerTiming.h: Added. 35 (WebCore::ServerTiming::ServerTiming): Added struct for the data needed by a server timing entry. 36 (WebCore::ServerTiming::name const): Added name field of a server timing entry. 37 (WebCore::ServerTiming::duration const): Added duration field of a server timing entry. 38 (WebCore::ServerTiming::description const): Added description field of a server timing entry. 39 * loader/ServerTimingParser.cpp: Added. 40 (WebCore::ServerTimingParser::parseServerTiming): Parses the header generating a collection of server timing structs. 41 * loader/ServerTimingParser.h: Added. 42 * loader/WorkerThreadableLoader.h: Fix build. 43 * page/Performance.cpp: 44 (WebCore::Performance::addResourceTiming): Fixed a typo. 45 * page/PerformanceResourceTiming.cpp: 46 (WebCore::PerformanceResourceTiming::PerformanceResourceTiming): Given a ResourceTiming object, populate our collection of PerformanceServerTiming objects. 47 * page/PerformanceResourceTiming.h: Added serverTiming member and getter. 48 * page/PerformanceResourceTiming.idl: Added serverTiming member to interface. 49 * platform/network/HTTPHeaderNames.in: Added "Server-Timing" to the header enum. 50 * platform/network/ResourceResponseBase.cpp: Added "Server-Timing" to isSafeCrossOriginResponseHeader whitelist. 51 1 52 2018-05-15 Brady Eidson <beidson@apple.com> 2 53 -
trunk/Source/WebCore/Sources.txt
r231779 r231813 1243 1243 loader/DocumentWriter.cpp 1244 1244 loader/EmptyClients.cpp 1245 loader/FetchIdioms.cpp 1245 1246 loader/FTPDirectoryParser.cpp 1246 1247 loader/FormState.cpp … … 1249 1250 loader/FrameLoader.cpp 1250 1251 loader/FrameLoaderStateMachine.cpp 1251 loader/ FetchIdioms.cpp1252 loader/HeaderFieldTokenizer.cpp 1252 1253 loader/HTTPHeaderField.cpp 1253 1254 loader/HistoryController.cpp … … 1263 1264 loader/NavigationScheduler.cpp 1264 1265 loader/NetscapePlugInStreamLoader.cpp 1266 loader/ServerTimingParser.cpp 1265 1267 loader/PingLoader.cpp 1266 1268 loader/PolicyChecker.cpp … … 1273 1275 loader/ResourceTiming.cpp 1274 1276 loader/ResourceTimingInformation.cpp 1277 loader/ServerTiming.cpp 1275 1278 loader/SinkDocument.cpp 1276 1279 loader/SubframeLoader.cpp -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r231779 r231813 689 689 26F9A83818A046AC00AEB88A /* ViewportConfiguration.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26F9A83618A046AC00AEB88A /* ViewportConfiguration.cpp */; }; 690 690 26F9A83918A046AC00AEB88A /* ViewportConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 26F9A83718A046AC00AEB88A /* ViewportConfiguration.h */; settings = {ATTRIBUTES = (Private, ); }; }; 691 285D32082035D6560070D32F /* ServerTimingParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 288E82F02035D4ED00B0DCFF /* ServerTimingParser.h */; }; 691 692 2914E3081CAB5A440049966F /* AccessibilityAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 2914E3061CAB5A440049966F /* AccessibilityAttachment.h */; }; 692 693 2917B5621473496C0052C9D0 /* LayerFlushScheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = 2917B55F1473496C0052C9D0 /* LayerFlushScheduler.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 6385 6386 26F9A83618A046AC00AEB88A /* ViewportConfiguration.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ViewportConfiguration.cpp; sourceTree = "<group>"; }; 6386 6387 26F9A83718A046AC00AEB88A /* ViewportConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ViewportConfiguration.h; sourceTree = "<group>"; }; 6388 28538EED20221FA600D1909A /* HeaderFieldTokenizer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HeaderFieldTokenizer.cpp; sourceTree = "<group>"; }; 6389 28538EEE20221FA600D1909A /* HeaderFieldTokenizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HeaderFieldTokenizer.h; sourceTree = "<group>"; }; 6390 286E4DCB2021048800315238 /* ServerTiming.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ServerTiming.cpp; sourceTree = "<group>"; }; 6391 286E4DCC2021048800315238 /* ServerTiming.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServerTiming.h; sourceTree = "<group>"; }; 6392 288E82EE2035D2BE00B0DCFF /* ServerTimingParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ServerTimingParser.cpp; path = loader/ServerTimingParser.cpp; sourceTree = "<group>"; }; 6393 288E82F02035D4ED00B0DCFF /* ServerTimingParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ServerTimingParser.h; path = loader/ServerTimingParser.h; sourceTree = "<group>"; }; 6387 6394 28DB9BC52020EA0400E54A07 /* PerformanceServerTiming.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PerformanceServerTiming.cpp; sourceTree = "<group>"; }; 6388 6395 28DB9BC62020EA0400E54A07 /* PerformanceServerTiming.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PerformanceServerTiming.h; sourceTree = "<group>"; }; … … 15416 15423 isa = PBXGroup; 15417 15424 children = ( 15425 288E82F02035D4ED00B0DCFF /* ServerTimingParser.h */, 15426 288E82EE2035D2BE00B0DCFF /* ServerTimingParser.cpp */, 15418 15427 1C09D04B1E31C32800725F18 /* PAL.xcodeproj */, 15419 15428 65C97AF208EA908800ACD273 /* config.h */, … … 24163 24172 51C81B870C4422F70019ECE3 /* FTPDirectoryParser.cpp */, 24164 24173 51C81B880C4422F70019ECE3 /* FTPDirectoryParser.h */, 24174 28538EED20221FA600D1909A /* HeaderFieldTokenizer.cpp */, 24175 28538EEE20221FA600D1909A /* HeaderFieldTokenizer.h */, 24165 24176 97DCE1FF10807C750057D394 /* HistoryController.cpp */, 24166 24177 97DCE20010807C750057D394 /* HistoryController.h */, … … 24217 24228 CBC2D22D1CE5B77400D1880B /* ResourceTimingInformation.cpp */, 24218 24229 CBC2D22E1CE5B77D00D1880B /* ResourceTimingInformation.h */, 24230 286E4DCB2021048800315238 /* ServerTiming.cpp */, 24231 286E4DCC2021048800315238 /* ServerTiming.h */, 24219 24232 51327D5F11A33A2B004F9D65 /* SinkDocument.cpp */, 24220 24233 51327D5E11A33A2B004F9D65 /* SinkDocument.h */, … … 30040 30053 A75E497610752ACB00C9B896 /* SerializedScriptValue.h in Headers */, 30041 30054 516F7F6D1C31E39A00F111DC /* ServerOpenDBRequest.h in Headers */, 30055 285D32082035D6560070D32F /* ServerTimingParser.h in Headers */, 30042 30056 2D93AEE319DF5641002A86C3 /* ServicesOverlayController.h in Headers */, 30043 30057 51F1755D1F3EBC8300C74950 /* ServiceWorker.h in Headers */, -
trunk/Source/WebCore/loader/HTTPHeaderField.cpp
r223001 r231813 31 31 namespace RFC7230 { 32 32 33 staticbool isTokenCharacter(UChar c)33 bool isTokenCharacter(UChar c) 34 34 { 35 35 return isASCIIAlpha(c) || isASCIIDigit(c) … … 56 56 } 57 57 58 staticbool isWhitespace(UChar c)58 bool isWhitespace(UChar c) 59 59 { 60 60 return c == ' ' || c == '\t'; -
trunk/Source/WebCore/loader/HTTPHeaderField.h
r223001 r231813 72 72 } 73 73 74 namespace RFC7230 { 75 bool isTokenCharacter(UChar); 76 bool isWhitespace(UChar); 77 } // namespace RFC7230 78 74 79 } // namespace WebCore -
trunk/Source/WebCore/loader/PolicyChecker.cpp
r231714 r231813 47 47 #include "HTMLFrameOwnerElement.h" 48 48 #include "HTMLPlugInElement.h" 49 #include "Logging.h" 49 50 #include <wtf/CompletionHandler.h> 50 51 -
trunk/Source/WebCore/loader/ResourceTiming.cpp
r226451 r231813 28 28 29 29 #include "CachedResource.h" 30 #include "PerformanceServerTiming.h" 30 31 #include "SecurityOrigin.h" 32 #include "ServerTimingParser.h" 31 33 32 34 namespace WebCore { … … 77 79 , m_allowTimingDetails(passesTimingAllowCheck(response, securityOrigin)) 78 80 { 81 initServerTiming(response); 79 82 } 80 83 … … 86 89 , m_allowTimingDetails(passesTimingAllowCheck(resource.response(), securityOrigin)) 87 90 { 91 initServerTiming(resource.response()); 88 92 } 89 93 … … 95 99 , m_allowTimingDetails(passesTimingAllowCheck(response, securityOrigin)) 96 100 { 101 initServerTiming(response); 102 } 103 104 void ResourceTiming::initServerTiming(const ResourceResponse& response) 105 { 106 if (RuntimeEnabledFeatures::sharedFeatures().serverTimingEnabled() && m_allowTimingDetails) 107 m_serverTiming = ServerTimingParser::parseServerTiming(response.httpHeaderField(HTTPHeaderName::ServerTiming)); 108 } 109 110 Vector<Ref<PerformanceServerTiming>> ResourceTiming::populateServerTiming() 111 { 112 return WTF::map(m_serverTiming, [] (auto& entry) { 113 return PerformanceServerTiming::create(WTFMove(entry.name), entry.duration, WTFMove(entry.description)); 114 }); 97 115 } 98 116 99 117 ResourceTiming ResourceTiming::isolatedCopy() const 100 118 { 101 return ResourceTiming(m_url.isolatedCopy(), m_initiator.isolatedCopy(), m_loadTiming.isolatedCopy(), m_networkLoadMetrics.isolatedCopy(), m_allowTimingDetails );119 return ResourceTiming(m_url.isolatedCopy(), m_initiator.isolatedCopy(), m_loadTiming.isolatedCopy(), m_networkLoadMetrics.isolatedCopy(), m_allowTimingDetails, crossThreadCopy(m_serverTiming)); 102 120 } 103 121 -
trunk/Source/WebCore/loader/ResourceTiming.h
r215981 r231813 28 28 #include "LoadTiming.h" 29 29 #include "NetworkLoadMetrics.h" 30 #include "ServerTiming.h" 30 31 #include "URL.h" 31 32 … … 33 34 34 35 class CachedResource; 36 class PerformanceServerTiming; 35 37 class ResourceResponse; 36 38 class SecurityOrigin; … … 48 50 NetworkLoadMetrics networkLoadMetrics() const { return m_networkLoadMetrics; } 49 51 bool allowTimingDetails() const { return m_allowTimingDetails; } 50 52 Vector<Ref<PerformanceServerTiming>> populateServerTiming(); 51 53 ResourceTiming isolatedCopy() const; 52 54 … … 57 59 ResourceTiming(const URL&, const String& initiator, const LoadTiming&, const NetworkLoadMetrics&, const ResourceResponse&, const SecurityOrigin&); 58 60 ResourceTiming(const URL&, const String& initiator, const LoadTiming&, const ResourceResponse&, const SecurityOrigin&); 59 ResourceTiming( const URL& url, const String& initiator, const LoadTiming& loadTiming, const NetworkLoadMetrics& networkLoadMetrics, bool allowTimingDetails)60 : m_url( url)61 , m_initiator( initiator)62 , m_loadTiming( loadTiming)63 , m_networkLoadMetrics( networkLoadMetrics)61 ResourceTiming(URL&& url, String&& initiator, LoadTiming&& loadTiming, NetworkLoadMetrics&& networkLoadMetrics, bool allowTimingDetails, Vector<ServerTiming>&& serverTiming) 62 : m_url(WTFMove(url)) 63 , m_initiator(WTFMove(initiator)) 64 , m_loadTiming(WTFMove(loadTiming)) 65 , m_networkLoadMetrics(WTFMove(networkLoadMetrics)) 64 66 , m_allowTimingDetails(allowTimingDetails) 67 , m_serverTiming(WTFMove(serverTiming)) 65 68 { 66 69 } 70 void initServerTiming(const ResourceResponse&); 67 71 68 72 URL m_url; … … 71 75 NetworkLoadMetrics m_networkLoadMetrics; 72 76 bool m_allowTimingDetails { false }; 77 Vector<ServerTiming> m_serverTiming; 73 78 }; 74 79 -
trunk/Source/WebCore/loader/WorkerThreadableLoader.h
r224788 r231813 31 31 #pragma once 32 32 33 #include "NetworkLoadMetrics.h" 33 34 #include "ThreadableLoader.h" 34 35 #include "ThreadableLoaderClient.h" -
trunk/Source/WebCore/page/Performance.cpp
r229209 r231813 186 186 187 187 if (m_resourceTimingBufferFullFlag) { 188 // We fired resourcetimingbufferfull ev net but the author script didn't clear the buffer.188 // We fired resourcetimingbufferfull event but the author script didn't clear the buffer. 189 189 // Notify performance observers but don't add it to the buffer. 190 190 queueEntry(entry.get()); -
trunk/Source/WebCore/page/PerformanceResourceTiming.cpp
r226451 r231813 80 80 , m_networkLoadMetrics(resourceTiming.networkLoadMetrics()) 81 81 , m_shouldReportDetails(resourceTiming.allowTimingDetails()) 82 , m_serverTiming(resourceTiming.populateServerTiming()) 82 83 { 83 84 m_networkLoadMetrics.clearNonTimingData(); -
trunk/Source/WebCore/platform/network/HTTPHeaderNames.in
r231622 r231813 85 85 Sec-WebSocket-Protocol 86 86 Sec-WebSocket-Version 87 Server-Timing 87 88 Service-Worker-Allowed 88 89 Set-Cookie -
trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp
r231263 r231813 377 377 || name == HTTPHeaderName::ReferrerPolicy 378 378 || name == HTTPHeaderName::Refresh 379 || name == HTTPHeaderName::ServerTiming 379 380 || name == HTTPHeaderName::SourceMap 380 381 || name == HTTPHeaderName::XSourceMap
Note: See TracChangeset
for help on using the changeset viewer.