Changeset 293418 in webkit
- Timestamp:
- Apr 26, 2022 12:34:40 AM (3 months ago)
- Location:
- trunk
- Files:
-
- 9 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/TestExpectations (modified) (1 diff)
-
LayoutTests/imported/w3c/ChangeLog (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resource-timing-fetch-variants.https-expected.txt (modified) (1 diff)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/loader/ResourceTiming.cpp (modified) (1 diff)
-
Source/WebCore/loader/ResourceTiming.h (modified) (2 diffs)
-
Source/WebCore/page/PerformanceResourceTiming.cpp (modified) (6 diffs)
-
Source/WebCore/page/PerformanceResourceTiming.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r293409 r293418 1 2022-04-26 Youenn Fablet <youenn@apple.com> 2 3 Service Worker loads should not expose some ResourceTiming information 4 https://bugs.webkit.org/show_bug.cgi?id=239608 5 6 Reviewed by Alex Christensen. 7 8 * TestExpectations: 9 1 10 2022-04-25 Devin Rousso <drousso@apple.com> 2 11 -
trunk/LayoutTests/TestExpectations
r293114 r293418 855 855 imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/anonymous-iframe/sharedworker-partitioning.tentative.https.window.html [ Failure Pass ] 856 856 imported/w3c/web-platform-tests/service-workers/service-worker/navigation-timing-extended.https.html [ Failure Pass ] 857 imported/w3c/web-platform-tests/service-workers/service-worker/resource-timing-fetch-variants.https.html [ Failure Pass ]858 857 imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html [ Failure Pass ] 859 858 -
trunk/LayoutTests/imported/w3c/ChangeLog
r293417 r293418 1 2022-04-26 Youenn Fablet <youenn@apple.com> 2 3 Service Worker loads should not expose some ResourceTiming information 4 https://bugs.webkit.org/show_bug.cgi?id=239608 5 6 Reviewed by Alex Christensen. 7 8 * web-platform-tests/service-workers/service-worker/resource-timing-fetch-variants.https-expected.txt: 9 1 10 2022-04-25 Youenn Fablet <youenn@apple.com> 2 11 -
trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resource-timing-fetch-variants.https-expected.txt
r289558 r293418 1 1 2 FAIL Redirects done from within a service-worker should not be exposed to client ResourceTiming assert_equals: expected (number) 0 but got (string) "same" 2 PASS Redirects done from within a service-worker should not be exposed to client ResourceTiming 3 3 PASS Connection info from within a service-worker should not be exposed to client ResourceTiming 4 4 PASS requestStart should never be before fetchStart -
trunk/Source/WebCore/ChangeLog
r293417 r293418 1 2022-04-26 Youenn Fablet <youenn@apple.com> 2 3 Service Worker loads should not expose some ResourceTiming information 4 https://bugs.webkit.org/show_bug.cgi?id=239608 5 6 Reviewed by Alex Christensen. 7 8 Filter out some resource timing info when the load is served from a service worker. 9 While we could do the filtering on service worker side, it is best to do it within PerformanceResourceTiming 10 as native clients might still want to use non filtered data in case the service worker is returning a network load 11 as the response. 12 13 Covered by rebased test. 14 15 * loader/ResourceTiming.cpp: 16 (WebCore::ResourceTiming::ResourceTiming): 17 * loader/ResourceTiming.h: 18 (WebCore::ResourceTiming::isLoadedFromServiceWorker const): 19 * page/PerformanceResourceTiming.cpp: 20 (WebCore::PerformanceResourceTiming::nextHopProtocol const): 21 (WebCore::PerformanceResourceTiming::redirectStart const): 22 (WebCore::PerformanceResourceTiming::redirectEnd const): 23 (WebCore::PerformanceResourceTiming::domainLookupStart const): 24 (WebCore::PerformanceResourceTiming::domainLookupEnd const): 25 (WebCore::PerformanceResourceTiming::connectStart const): 26 (WebCore::PerformanceResourceTiming::connectEnd const): 27 * page/PerformanceResourceTiming.h: 28 (WebCore::PerformanceResourceTiming::isLoadedFromServiceWorker const): 29 1 30 2022-04-25 Youenn Fablet <youenn@apple.com> 2 31 -
trunk/Source/WebCore/loader/ResourceTiming.cpp
r290901 r293418 57 57 , m_resourceLoadTiming(timing) 58 58 , m_networkLoadMetrics(networkLoadMetrics) 59 , m_isLoadedFromServiceWorker(response.source() == ResourceResponse::Source::ServiceWorker) 59 60 { 60 61 if (RuntimeEnabledFeatures::sharedFeatures().serverTimingEnabled() && !m_networkLoadMetrics.failsTAOCheck) -
trunk/Source/WebCore/loader/ResourceTiming.h
r290901 r293418 56 56 57 57 void overrideInitiatorName(const String& name) { m_initiator = name; } 58 bool isLoadedFromServiceWorker() const { return m_isLoadedFromServiceWorker; } 58 59 59 60 private: … … 73 74 NetworkLoadMetrics m_networkLoadMetrics; 74 75 Vector<ServerTiming> m_serverTiming; 76 bool m_isLoadedFromServiceWorker { false }; 75 77 }; 76 78 -
trunk/Source/WebCore/page/PerformanceResourceTiming.cpp
r289494 r293418 117 117 return 0.0; 118 118 119 if (m_resourceTiming.isLoadedFromServiceWorker()) 120 return 0.0; 121 119 122 if (!m_resourceTiming.networkLoadMetrics().redirectCount) 120 123 return 0.0; … … 126 129 { 127 130 if (m_resourceTiming.networkLoadMetrics().failsTAOCheck) 131 return 0.0; 132 133 if (m_resourceTiming.isLoadedFromServiceWorker()) 128 134 return 0.0; 129 135 … … 146 152 return 0.0; 147 153 154 if (m_resourceTiming.isLoadedFromServiceWorker()) 155 return fetchStart(); 156 148 157 if (!m_resourceTiming.networkLoadMetrics().domainLookupStart) 149 158 return fetchStart(); … … 156 165 if (m_resourceTiming.networkLoadMetrics().failsTAOCheck) 157 166 return 0.0; 167 168 if (m_resourceTiming.isLoadedFromServiceWorker()) 169 return fetchStart(); 158 170 159 171 if (!m_resourceTiming.networkLoadMetrics().domainLookupEnd) … … 168 180 return 0.0; 169 181 182 if (m_resourceTiming.isLoadedFromServiceWorker()) 183 return fetchStart(); 184 170 185 if (!m_resourceTiming.networkLoadMetrics().connectStart) 171 186 return domainLookupEnd(); … … 178 193 if (m_resourceTiming.networkLoadMetrics().failsTAOCheck) 179 194 return 0.0; 195 196 if (m_resourceTiming.isLoadedFromServiceWorker()) 197 return fetchStart(); 180 198 181 199 if (!m_resourceTiming.networkLoadMetrics().connectEnd) -
trunk/Source/WebCore/page/PerformanceResourceTiming.h
r281860 r293418 75 75 ~PerformanceResourceTiming(); 76 76 77 bool isLoadedFromServiceWorker() const { return m_resourceTiming.isLoadedFromServiceWorker(); } 78 77 79 MonotonicTime m_timeOrigin; 78 80 ResourceTiming m_resourceTiming;
Note: See TracChangeset
for help on using the changeset viewer.