Changeset 294819 in webkit
- Timestamp:
- May 25, 2022, 12:53:21 PM (4 years ago)
- Location:
- trunk
- Files:
-
- 7 edited
-
LayoutTests/imported/w3c/web-platform-tests/preload/link-header-preload-nonce-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/preload/link-header-preload-nonce.html (modified) (1 diff)
-
Source/WebCore/html/HTMLLinkElement.cpp (modified) (1 diff)
-
Source/WebCore/loader/LinkHeader.cpp (modified) (2 diffs)
-
Source/WebCore/loader/LinkHeader.h (modified) (3 diffs)
-
Source/WebCore/loader/LinkLoader.cpp (modified) (3 diffs)
-
Source/WebCore/loader/LinkLoader.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/imported/w3c/web-platform-tests/preload/link-header-preload-nonce-expected.txt
r259900 r294819 1 1 CONSOLE MESSAGE: Refused to load http://localhost:8800/preload/resources/dummy.js?from-header&without-nonce because it does not appear in the script-src directive of the Content Security Policy. 2 CONSOLE MESSAGE: Refused to load http://localhost:8800/preload/resources/dummy.js?from-header&with-nonce because it does not appear in the script-src directive of the Content Security Policy.3 CONSOLE MESSAGE: Error: assert_equals: resources/dummy.js?from-header&with-nonce expected 1 but got 04 2 5 Harness Error (FAIL), message = Error: assert_equals: resources/dummy.js?from-header&with-nonce expected 1 but got 0 3 PASS Makes sure that Link headers preload resources with CSP nonce 6 4 7 -
trunk/LayoutTests/imported/w3c/web-platform-tests/preload/link-header-preload-nonce.html
r246045 r294819 6 6 <body> 7 7 <script nonce="abc"> 8 setup({ explicit_done: true});8 setup({single_test: true}); 9 9 10 10 var iterations = 0; -
trunk/Source/WebCore/html/HTMLLinkElement.cpp
r294611 r294819 264 264 attributeWithoutSynchronization(imagesrcsetAttr), 265 265 attributeWithoutSynchronization(imagesizesAttr), 266 nonce(), 266 267 referrerPolicy(), 267 268 }; -
trunk/Source/WebCore/loader/LinkHeader.cpp
r293484 r294819 158 158 if (equalLettersIgnoringASCIICase(name, "imagesizes"_s)) 159 159 return LinkHeader::LinkParameterImageSizes; 160 if (equalLettersIgnoringASCIICase(name, "nonce"_s)) 161 return LinkHeader::LinkParameterNonce; 160 162 return LinkHeader::LinkParameterUnknown; 161 163 } … … 281 283 m_imageSizes = WTFMove(value); 282 284 break; 285 case LinkParameterNonce: 286 m_nonce = WTFMove(value); 287 break; 283 288 case LinkParameterTitle: 284 289 case LinkParameterRev: -
trunk/Source/WebCore/loader/LinkHeader.h
r265177 r294819 45 45 const String& imageSrcSet() const { return m_imageSrcSet; } 46 46 const String& imageSizes() const { return m_imageSizes; } 47 const String& nonce() const { return m_nonce; } 47 48 bool valid() const { return m_isValid; } 48 49 bool isViewportDependent() const { return !media().isEmpty() || !imageSrcSet().isEmpty() || !imageSizes().isEmpty(); } … … 62 63 LinkParameterImageSrcSet, 63 64 LinkParameterImageSizes, 65 LinkParameterNonce, 64 66 }; 65 67 … … 75 77 String m_imageSrcSet; 76 78 String m_imageSizes; 79 String m_nonce; 77 80 bool m_isValid { true }; 78 81 }; -
trunk/Source/WebCore/loader/LinkLoader.cpp
r293563 r294819 113 113 continue; 114 114 115 LinkLoadParameters params { relAttribute, url, header.as(), header.media(), header.mimeType(), header.crossOrigin(), header.imageSrcSet(), header.imageSizes(), ReferrerPolicy::EmptyString };115 LinkLoadParameters params { relAttribute, url, header.as(), header.media(), header.mimeType(), header.crossOrigin(), header.imageSrcSet(), header.imageSizes(), header.nonce(), ReferrerPolicy::EmptyString }; 116 116 preconnectIfNeeded(params, document); 117 117 preloadIfNeeded(params, document, nullptr); … … 262 262 auto options = CachedResourceLoader::defaultCachedResourceOptions(); 263 263 options.referrerPolicy = params.referrerPolicy; 264 options.nonce = params.nonce; 264 265 auto linkRequest = createPotentialAccessControlRequest(url, WTFMove(options), document, params.crossOrigin); 265 266 linkRequest.setPriority(DefaultResourceLoadPriority::forResourceType(type.value())); … … 303 304 options.cachingPolicy = CachingPolicy::DisallowCaching; 304 305 options.referrerPolicy = params.referrerPolicy; 306 options.nonce = params.nonce; 305 307 m_cachedLinkResource = document.cachedResourceLoader().requestLinkResource(type, CachedResourceRequest(ResourceRequest { document.completeURL(params.href.string()) }, options, priority)).value_or(nullptr); 306 308 if (m_cachedLinkResource) -
trunk/Source/WebCore/loader/LinkLoader.h
r293804 r294819 53 53 String imageSrcSet; 54 54 String imageSizes; 55 String nonce; 55 56 ReferrerPolicy referrerPolicy { ReferrerPolicy::EmptyString }; 56 57 };
Note:
See TracChangeset
for help on using the changeset viewer.