OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/child/web_url_request_util.h" | 5 #include "content/child/web_url_request_util.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <limits> | 10 #include <limits> |
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
279 request_body->AppendBlob(element.blobUUID.utf8()); | 279 request_body->AppendBlob(element.blobUUID.utf8()); |
280 break; | 280 break; |
281 default: | 281 default: |
282 NOTREACHED(); | 282 NOTREACHED(); |
283 } | 283 } |
284 } | 284 } |
285 request_body->set_identifier(request.httpBody().identifier()); | 285 request_body->set_identifier(request.httpBody().identifier()); |
286 return request_body; | 286 return request_body; |
287 } | 287 } |
288 | 288 |
289 #define STATIC_ASSERT_MATCHING_ENUMS(content_name, blink_name) \ | 289 #define STATIC_ASSERT_ENUM(a, b) \ |
290 static_assert( \ | 290 static_assert(static_cast<int>(a) == static_cast<int>(b), \ |
291 static_cast<int>(content_name) == static_cast<int>(blink_name), \ | 291 "mismatching enums: " #a) |
292 "mismatching enums: " #content_name) | |
293 | 292 |
294 STATIC_ASSERT_MATCHING_ENUMS(FETCH_REQUEST_MODE_SAME_ORIGIN, | 293 STATIC_ASSERT_ENUM(FETCH_REQUEST_MODE_SAME_ORIGIN, |
295 WebURLRequest::FetchRequestModeSameOrigin); | 294 WebURLRequest::FetchRequestModeSameOrigin); |
296 STATIC_ASSERT_MATCHING_ENUMS(FETCH_REQUEST_MODE_NO_CORS, | 295 STATIC_ASSERT_ENUM(FETCH_REQUEST_MODE_NO_CORS, |
297 WebURLRequest::FetchRequestModeNoCORS); | 296 WebURLRequest::FetchRequestModeNoCORS); |
298 STATIC_ASSERT_MATCHING_ENUMS(FETCH_REQUEST_MODE_CORS, | 297 STATIC_ASSERT_ENUM(FETCH_REQUEST_MODE_CORS, |
299 WebURLRequest::FetchRequestModeCORS); | 298 WebURLRequest::FetchRequestModeCORS); |
300 STATIC_ASSERT_MATCHING_ENUMS( | 299 STATIC_ASSERT_ENUM(FETCH_REQUEST_MODE_CORS_WITH_FORCED_PREFLIGHT, |
301 FETCH_REQUEST_MODE_CORS_WITH_FORCED_PREFLIGHT, | 300 WebURLRequest::FetchRequestModeCORSWithForcedPreflight); |
302 WebURLRequest::FetchRequestModeCORSWithForcedPreflight); | 301 STATIC_ASSERT_ENUM(FETCH_REQUEST_MODE_NAVIGATE, |
303 STATIC_ASSERT_MATCHING_ENUMS(FETCH_REQUEST_MODE_NAVIGATE, | 302 WebURLRequest::FetchRequestModeNavigate); |
304 WebURLRequest::FetchRequestModeNavigate); | |
305 | 303 |
306 FetchRequestMode GetFetchRequestModeForWebURLRequest( | 304 FetchRequestMode GetFetchRequestModeForWebURLRequest( |
307 const blink::WebURLRequest& request) { | 305 const blink::WebURLRequest& request) { |
308 return static_cast<FetchRequestMode>(request.fetchRequestMode()); | 306 return static_cast<FetchRequestMode>(request.fetchRequestMode()); |
309 } | 307 } |
310 | 308 |
311 STATIC_ASSERT_MATCHING_ENUMS(FETCH_CREDENTIALS_MODE_OMIT, | 309 STATIC_ASSERT_ENUM(FETCH_CREDENTIALS_MODE_OMIT, |
312 WebURLRequest::FetchCredentialsModeOmit); | 310 WebURLRequest::FetchCredentialsModeOmit); |
313 STATIC_ASSERT_MATCHING_ENUMS(FETCH_CREDENTIALS_MODE_SAME_ORIGIN, | 311 STATIC_ASSERT_ENUM(FETCH_CREDENTIALS_MODE_SAME_ORIGIN, |
314 WebURLRequest::FetchCredentialsModeSameOrigin); | 312 WebURLRequest::FetchCredentialsModeSameOrigin); |
315 STATIC_ASSERT_MATCHING_ENUMS(FETCH_CREDENTIALS_MODE_INCLUDE, | 313 STATIC_ASSERT_ENUM(FETCH_CREDENTIALS_MODE_INCLUDE, |
316 WebURLRequest::FetchCredentialsModeInclude); | 314 WebURLRequest::FetchCredentialsModeInclude); |
317 | 315 |
318 FetchCredentialsMode GetFetchCredentialsModeForWebURLRequest( | 316 FetchCredentialsMode GetFetchCredentialsModeForWebURLRequest( |
319 const blink::WebURLRequest& request) { | 317 const blink::WebURLRequest& request) { |
320 return static_cast<FetchCredentialsMode>(request.fetchCredentialsMode()); | 318 return static_cast<FetchCredentialsMode>(request.fetchCredentialsMode()); |
321 } | 319 } |
322 | 320 |
323 STATIC_ASSERT_MATCHING_ENUMS(FetchRedirectMode::FOLLOW_MODE, | 321 STATIC_ASSERT_ENUM(FetchRedirectMode::FOLLOW_MODE, |
324 WebURLRequest::FetchRedirectModeFollow); | 322 WebURLRequest::FetchRedirectModeFollow); |
325 STATIC_ASSERT_MATCHING_ENUMS(FetchRedirectMode::ERROR_MODE, | 323 STATIC_ASSERT_ENUM(FetchRedirectMode::ERROR_MODE, |
326 WebURLRequest::FetchRedirectModeError); | 324 WebURLRequest::FetchRedirectModeError); |
327 STATIC_ASSERT_MATCHING_ENUMS(FetchRedirectMode::MANUAL_MODE, | 325 STATIC_ASSERT_ENUM(FetchRedirectMode::MANUAL_MODE, |
328 WebURLRequest::FetchRedirectModeManual); | 326 WebURLRequest::FetchRedirectModeManual); |
329 | 327 |
330 FetchRedirectMode GetFetchRedirectModeForWebURLRequest( | 328 FetchRedirectMode GetFetchRedirectModeForWebURLRequest( |
331 const blink::WebURLRequest& request) { | 329 const blink::WebURLRequest& request) { |
332 return static_cast<FetchRedirectMode>(request.fetchRedirectMode()); | 330 return static_cast<FetchRedirectMode>(request.fetchRedirectMode()); |
333 } | 331 } |
334 | 332 |
335 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_FRAME_TYPE_AUXILIARY, | 333 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_FRAME_TYPE_AUXILIARY, |
336 WebURLRequest::FrameTypeAuxiliary); | 334 WebURLRequest::FrameTypeAuxiliary); |
337 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_FRAME_TYPE_NESTED, | 335 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_FRAME_TYPE_NESTED, |
338 WebURLRequest::FrameTypeNested); | 336 WebURLRequest::FrameTypeNested); |
339 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_FRAME_TYPE_NONE, | 337 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_FRAME_TYPE_NONE, |
340 WebURLRequest::FrameTypeNone); | 338 WebURLRequest::FrameTypeNone); |
341 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_FRAME_TYPE_TOP_LEVEL, | 339 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_FRAME_TYPE_TOP_LEVEL, |
342 WebURLRequest::FrameTypeTopLevel); | 340 WebURLRequest::FrameTypeTopLevel); |
343 | 341 |
344 RequestContextFrameType GetRequestContextFrameTypeForWebURLRequest( | 342 RequestContextFrameType GetRequestContextFrameTypeForWebURLRequest( |
345 const blink::WebURLRequest& request) { | 343 const blink::WebURLRequest& request) { |
346 return static_cast<RequestContextFrameType>(request.frameType()); | 344 return static_cast<RequestContextFrameType>(request.frameType()); |
347 } | 345 } |
348 | 346 |
349 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_UNSPECIFIED, | 347 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_UNSPECIFIED, |
350 WebURLRequest::RequestContextUnspecified); | 348 WebURLRequest::RequestContextUnspecified); |
351 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_AUDIO, | 349 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_AUDIO, |
352 WebURLRequest::RequestContextAudio); | 350 WebURLRequest::RequestContextAudio); |
353 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_BEACON, | 351 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_BEACON, |
354 WebURLRequest::RequestContextBeacon); | 352 WebURLRequest::RequestContextBeacon); |
355 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_CSP_REPORT, | 353 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_CSP_REPORT, |
356 WebURLRequest::RequestContextCSPReport); | 354 WebURLRequest::RequestContextCSPReport); |
357 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_DOWNLOAD, | 355 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_DOWNLOAD, |
358 WebURLRequest::RequestContextDownload); | 356 WebURLRequest::RequestContextDownload); |
359 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_EMBED, | 357 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_EMBED, |
360 WebURLRequest::RequestContextEmbed); | 358 WebURLRequest::RequestContextEmbed); |
361 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_EVENT_SOURCE, | 359 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_EVENT_SOURCE, |
362 WebURLRequest::RequestContextEventSource); | 360 WebURLRequest::RequestContextEventSource); |
363 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_FAVICON, | 361 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_FAVICON, |
364 WebURLRequest::RequestContextFavicon); | 362 WebURLRequest::RequestContextFavicon); |
365 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_FETCH, | 363 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_FETCH, |
366 WebURLRequest::RequestContextFetch); | 364 WebURLRequest::RequestContextFetch); |
367 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_FONT, | 365 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_FONT, |
368 WebURLRequest::RequestContextFont); | 366 WebURLRequest::RequestContextFont); |
369 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_FORM, | 367 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_FORM, |
370 WebURLRequest::RequestContextForm); | 368 WebURLRequest::RequestContextForm); |
371 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_FRAME, | 369 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_FRAME, |
372 WebURLRequest::RequestContextFrame); | 370 WebURLRequest::RequestContextFrame); |
373 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_HYPERLINK, | 371 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_HYPERLINK, |
374 WebURLRequest::RequestContextHyperlink); | 372 WebURLRequest::RequestContextHyperlink); |
375 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_IFRAME, | 373 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_IFRAME, |
376 WebURLRequest::RequestContextIframe); | 374 WebURLRequest::RequestContextIframe); |
377 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_IMAGE, | 375 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_IMAGE, |
378 WebURLRequest::RequestContextImage); | 376 WebURLRequest::RequestContextImage); |
379 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_IMAGE_SET, | 377 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_IMAGE_SET, |
380 WebURLRequest::RequestContextImageSet); | 378 WebURLRequest::RequestContextImageSet); |
381 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_IMPORT, | 379 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_IMPORT, |
382 WebURLRequest::RequestContextImport); | 380 WebURLRequest::RequestContextImport); |
383 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_INTERNAL, | 381 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_INTERNAL, |
384 WebURLRequest::RequestContextInternal); | 382 WebURLRequest::RequestContextInternal); |
385 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_LOCATION, | 383 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_LOCATION, |
386 WebURLRequest::RequestContextLocation); | 384 WebURLRequest::RequestContextLocation); |
387 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_MANIFEST, | 385 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_MANIFEST, |
388 WebURLRequest::RequestContextManifest); | 386 WebURLRequest::RequestContextManifest); |
389 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_OBJECT, | 387 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_OBJECT, |
390 WebURLRequest::RequestContextObject); | 388 WebURLRequest::RequestContextObject); |
391 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_PING, | 389 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_PING, |
392 WebURLRequest::RequestContextPing); | 390 WebURLRequest::RequestContextPing); |
393 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_PLUGIN, | 391 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_PLUGIN, |
394 WebURLRequest::RequestContextPlugin); | 392 WebURLRequest::RequestContextPlugin); |
395 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_PREFETCH, | 393 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_PREFETCH, |
396 WebURLRequest::RequestContextPrefetch); | 394 WebURLRequest::RequestContextPrefetch); |
397 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_SCRIPT, | 395 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_SCRIPT, |
398 WebURLRequest::RequestContextScript); | 396 WebURLRequest::RequestContextScript); |
399 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_SERVICE_WORKER, | 397 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_SERVICE_WORKER, |
400 WebURLRequest::RequestContextServiceWorker); | 398 WebURLRequest::RequestContextServiceWorker); |
401 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_SHARED_WORKER, | 399 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_SHARED_WORKER, |
402 WebURLRequest::RequestContextSharedWorker); | 400 WebURLRequest::RequestContextSharedWorker); |
403 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_SUBRESOURCE, | 401 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_SUBRESOURCE, |
404 WebURLRequest::RequestContextSubresource); | 402 WebURLRequest::RequestContextSubresource); |
405 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_STYLE, | 403 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_STYLE, |
406 WebURLRequest::RequestContextStyle); | 404 WebURLRequest::RequestContextStyle); |
407 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_TRACK, | 405 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_TRACK, |
408 WebURLRequest::RequestContextTrack); | 406 WebURLRequest::RequestContextTrack); |
409 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_VIDEO, | 407 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_VIDEO, |
410 WebURLRequest::RequestContextVideo); | 408 WebURLRequest::RequestContextVideo); |
411 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_WORKER, | 409 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_WORKER, |
412 WebURLRequest::RequestContextWorker); | 410 WebURLRequest::RequestContextWorker); |
413 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_XML_HTTP_REQUEST, | 411 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_XML_HTTP_REQUEST, |
414 WebURLRequest::RequestContextXMLHttpRequest); | 412 WebURLRequest::RequestContextXMLHttpRequest); |
415 STATIC_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_XSLT, | 413 STATIC_ASSERT_ENUM(REQUEST_CONTEXT_TYPE_XSLT, |
416 WebURLRequest::RequestContextXSLT); | 414 WebURLRequest::RequestContextXSLT); |
417 | 415 |
418 RequestContextType GetRequestContextTypeForWebURLRequest( | 416 RequestContextType GetRequestContextTypeForWebURLRequest( |
419 const blink::WebURLRequest& request) { | 417 const blink::WebURLRequest& request) { |
420 return static_cast<RequestContextType>(request.requestContext()); | 418 return static_cast<RequestContextType>(request.requestContext()); |
421 } | 419 } |
422 | 420 |
423 blink::WebURLError CreateWebURLError(const blink::WebURL& unreachable_url, | 421 blink::WebURLError CreateWebURLError(const blink::WebURL& unreachable_url, |
424 bool stale_copy_in_cache, | 422 bool stale_copy_in_cache, |
425 int reason) { | 423 int reason) { |
426 blink::WebURLError error; | 424 blink::WebURLError error; |
(...skipping 17 matching lines...) Expand all Loading... |
444 bool stale_copy_in_cache, | 442 bool stale_copy_in_cache, |
445 int reason, | 443 int reason, |
446 bool was_ignored_by_handler) { | 444 bool was_ignored_by_handler) { |
447 blink::WebURLError error = | 445 blink::WebURLError error = |
448 CreateWebURLError(unreachable_url, stale_copy_in_cache, reason); | 446 CreateWebURLError(unreachable_url, stale_copy_in_cache, reason); |
449 error.wasIgnoredByHandler = was_ignored_by_handler; | 447 error.wasIgnoredByHandler = was_ignored_by_handler; |
450 return error; | 448 return error; |
451 } | 449 } |
452 | 450 |
453 } // namespace content | 451 } // namespace content |
OLD | NEW |