Changeset 232470 in webkit
- Timestamp:
- Jun 4, 2018 10:21:17 AM (6 years ago)
- Location:
- trunk
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/imported/w3c/ChangeLog
r232371 r232470 1 2018-06-04 Youenn Fablet <youenn@apple.com> 2 3 NetworkCORSPreflightChecker should set the preflight request User-Agent header 4 https://bugs.webkit.org/show_bug.cgi?id=186254 5 <rdar://problem/40293504> 6 7 Reviewed by Chris Dumez. 8 9 * web-platform-tests/fetch/api/cors/cors-preflight.any-expected.txt: 10 * web-platform-tests/fetch/api/cors/cors-preflight.any.js: 11 (corsPreflight): 12 * web-platform-tests/fetch/api/cors/cors-preflight.any.worker-expected.txt: 13 * web-platform-tests/fetch/api/resources/preflight.py: 14 (main): 15 1 16 2018-05-31 Manuel Rego Casasnovas <rego@igalia.com> 2 17 -
trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight.any-expected.txt
r215515 r232470 3 3 PASS CORS [DELETE], server refuses 4 4 PASS CORS [PUT], server allows 5 PASS CORS [PUT], server allows, check preflight has user agent 5 6 PASS CORS [PUT], server refuses 6 7 PASS CORS [PATCH], server allows -
trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight.any.js
r215164 r232470 20 20 var uuid_token = token(); 21 21 return fetch(RESOURCES_DIR + "clean-stash.py?token=" + uuid_token).then(function(response) { 22 var url = corsUrl ;23 var urlParameters = " ?token=" + uuid_token + "&max_age=0";22 var url = corsUrl + (corsUrl.indexOf("?") === -1 ? "?" : "&"); 23 var urlParameters = "token=" + uuid_token + "&max_age=0"; 24 24 var requestInit = {"mode": "cors", "method": method}; 25 25 var requestHeaders = []; … … 67 67 corsPreflight("CORS [DELETE], server refuses", corsUrl, "DELETE", false); 68 68 corsPreflight("CORS [PUT], server allows", corsUrl, "PUT", true); 69 corsPreflight("CORS [PUT], server allows, check preflight has user agent", corsUrl + "?checkUserAgentHeaderInPreflight", "PUT", true); 69 70 corsPreflight("CORS [PUT], server refuses", corsUrl, "PUT", false); 70 71 corsPreflight("CORS [PATCH], server allows", corsUrl, "PATCH", true); -
trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight.any.worker-expected.txt
r231000 r232470 10 10 PASS CORS [DELETE], server refuses 11 11 PASS CORS [PUT], server allows 12 PASS CORS [PUT], server allows, check preflight has user agent 12 13 PASS CORS [PUT], server refuses 13 14 PASS CORS [PATCH], server allows -
trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/preflight.py
r222307 r232470 45 45 stashed_data['preflight'] = "1" 46 46 stashed_data['preflight_referrer'] = request.headers.get("Referer", "") 47 stashed_data['preflight_user_agent'] = request.headers.get("User-Agent", "") 47 48 if token: 48 49 request.server.stash.put(token, stashed_data) … … 55 56 if data: 56 57 stashed_data = data 58 59 if "checkUserAgentHeaderInPreflight" in request.GET and request.headers.get("User-Agent") != stashed_data['preflight_user_agent']: 60 return 400, headers, "ERROR: No user-agent header in preflight" 57 61 58 62 #use x-* headers for returning value to bodyless responses -
trunk/Source/WebKit/ChangeLog
r232460 r232470 1 2018-06-04 Youenn Fablet <youenn@apple.com> 2 3 NetworkCORSPreflightChecker should set the preflight request User-Agent header 4 https://bugs.webkit.org/show_bug.cgi?id=186254 5 <rdar://problem/40293504> 6 7 Reviewed by Chris Dumez. 8 9 Some servers misbehave if the User-Agent header is not set properly on preflight requests. 10 Set it to the same value as the request triggering the preflight. 11 12 * NetworkProcess/NetworkCORSPreflightChecker.cpp: 13 (WebKit::NetworkCORSPreflightChecker::startPreflight): 14 * NetworkProcess/NetworkCORSPreflightChecker.h: 15 * NetworkProcess/NetworkLoadChecker.cpp: 16 (WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight): 17 1 18 2018-06-03 Andy Estes <aestes@apple.com> 2 19 -
trunk/Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.cpp
r231694 r232470 65 65 loadParameters.request = createAccessControlPreflightRequest(m_parameters.originalRequest, m_parameters.sourceOrigin, m_parameters.referrer); 66 66 loadParameters.shouldFollowRedirects = false; 67 if (!m_parameters.userAgent.isNull()) 68 loadParameters.request.setHTTPHeaderField(HTTPHeaderName::UserAgent, m_parameters.userAgent); 69 67 70 if (auto* networkSession = SessionTracker::networkSession(loadParameters.sessionID)) { 68 71 m_task = NetworkDataTask::create(*networkSession, *this, WTFMove(loadParameters)); -
trunk/Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.h
r230681 r232470 47 47 Ref<WebCore::SecurityOrigin> sourceOrigin; 48 48 String referrer; 49 String userAgent; 49 50 PAL::SessionID sessionID; 50 51 WebCore::StoredCredentialsPolicy storedCredentialsPolicy; -
trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp
r232309 r232470 355 355 *m_origin, 356 356 request.httpReferrer(), 357 request.httpUserAgent(), 357 358 m_sessionID, 358 359 m_storedCredentialsPolicy
Note: See TracChangeset
for help on using the changeset viewer.