| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 349 { | 349 { |
| 350 // Subclasses may call this directly so a self-assignment check is needed | 350 // Subclasses may call this directly so a self-assignment check is needed |
| 351 // here as well as in the public assign method. | 351 // here as well as in the public assign method. |
| 352 if (m_private == p) | 352 if (m_private == p) |
| 353 return; | 353 return; |
| 354 if (m_private) | 354 if (m_private) |
| 355 m_private->dispose(); | 355 m_private->dispose(); |
| 356 m_private = p; | 356 m_private = p; |
| 357 } | 357 } |
| 358 | 358 |
| 359 WebURLRequest::RequestContext WebURLRequest::requestContextFromTargetType(WebURL
Request::TargetType targetType) | |
| 360 { | |
| 361 switch (targetType) { | |
| 362 case TargetIsMainFrame: | |
| 363 return RequestContextHyperlink; // FIXME: Fetch defines the target separ
ately from the cause. Need to work that out here. | |
| 364 case TargetIsSubframe: | |
| 365 return RequestContextIframe; | |
| 366 case TargetIsSubresource: | |
| 367 return RequestContextSubresource; | |
| 368 case TargetIsStyleSheet: | |
| 369 return RequestContextStyle; | |
| 370 case TargetIsScript: | |
| 371 return RequestContextScript; | |
| 372 case TargetIsFontResource: | |
| 373 return RequestContextFont; | |
| 374 case TargetIsImage: | |
| 375 return RequestContextImage; | |
| 376 case TargetIsObject: | |
| 377 return RequestContextObject; | |
| 378 case TargetIsMedia: | |
| 379 // FIXME: Split this out. | |
| 380 return RequestContextVideo; | |
| 381 case TargetIsWorker: | |
| 382 return RequestContextWorker; | |
| 383 case TargetIsSharedWorker: | |
| 384 return RequestContextSharedWorker; | |
| 385 case TargetIsPrefetch: | |
| 386 return RequestContextPrefetch; | |
| 387 case TargetIsFavicon: | |
| 388 return RequestContextFavicon; | |
| 389 case TargetIsXHR: | |
| 390 return RequestContextXMLHttpRequest; | |
| 391 case TargetIsTextTrack: | |
| 392 return RequestContextTrack; | |
| 393 case TargetIsPing: | |
| 394 return RequestContextPing; | |
| 395 case TargetIsServiceWorker: | |
| 396 return RequestContextServiceWorker; | |
| 397 case TargetIsUnspecified: | |
| 398 return RequestContextUnspecified; | |
| 399 } | |
| 400 ASSERT_NOT_REACHED(); | |
| 401 return RequestContextUnspecified; | |
| 402 } | |
| 403 | |
| 404 WebURLRequest::TargetType WebURLRequest::targetTypeFromRequestContextAndFrameTyp
e(WebURLRequest::RequestContext requestContext, WebURLRequest::FrameType frameTy
pe) | |
| 405 { | |
| 406 if (frameType != FrameTypeNone) { | |
| 407 ASSERT(requestContext == RequestContextForm || requestContext == Request
ContextFrame || requestContext == RequestContextHyperlink || requestContext == R
equestContextIframe || requestContext == RequestContextInternal || requestContex
t == RequestContextLocation); | |
| 408 if (frameType == FrameTypeTopLevel || frameType == FrameTypeAuxiliary) | |
| 409 return TargetIsMainFrame; | |
| 410 if (frameType == FrameTypeNested) | |
| 411 return TargetIsSubframe; | |
| 412 ASSERT_NOT_REACHED(); | |
| 413 return TargetIsUnspecified; | |
| 414 } | |
| 415 | |
| 416 switch (requestContext) { | |
| 417 // Favicon | |
| 418 case RequestContextFavicon: | |
| 419 return TargetIsFavicon; | |
| 420 | |
| 421 // Font | |
| 422 case RequestContextFont: | |
| 423 return TargetIsFontResource; | |
| 424 | |
| 425 // Image | |
| 426 case RequestContextImage: | |
| 427 return TargetIsImage; | |
| 428 | |
| 429 // Media | |
| 430 case RequestContextAudio: | |
| 431 case RequestContextVideo: | |
| 432 return TargetIsMedia; | |
| 433 | |
| 434 // Object | |
| 435 case RequestContextEmbed: | |
| 436 case RequestContextObject: | |
| 437 return TargetIsObject; | |
| 438 | |
| 439 // Ping | |
| 440 case RequestContextBeacon: | |
| 441 case RequestContextCSPReport: | |
| 442 case RequestContextPing: | |
| 443 return TargetIsPing; | |
| 444 | |
| 445 // Prefetch | |
| 446 case RequestContextPrefetch: | |
| 447 return TargetIsPrefetch; | |
| 448 | |
| 449 // Script | |
| 450 case RequestContextScript: | |
| 451 return TargetIsScript; | |
| 452 | |
| 453 // Style | |
| 454 case RequestContextXSLT: | |
| 455 case RequestContextStyle: | |
| 456 return TargetIsStyleSheet; | |
| 457 | |
| 458 | |
| 459 // Subresource | |
| 460 case RequestContextDownload: | |
| 461 case RequestContextManifest: | |
| 462 case RequestContextSubresource: | |
| 463 case RequestContextPlugin: | |
| 464 return TargetIsSubresource; | |
| 465 | |
| 466 // TextTrack | |
| 467 case RequestContextTrack: | |
| 468 return TargetIsTextTrack; | |
| 469 | |
| 470 // Workers | |
| 471 case RequestContextServiceWorker: | |
| 472 return TargetIsServiceWorker; | |
| 473 case RequestContextSharedWorker: | |
| 474 return TargetIsSharedWorker; | |
| 475 case RequestContextWorker: | |
| 476 return TargetIsWorker; | |
| 477 | |
| 478 // Unspecified | |
| 479 case RequestContextInternal: | |
| 480 case RequestContextUnspecified: | |
| 481 return TargetIsUnspecified; | |
| 482 | |
| 483 // XHR | |
| 484 case RequestContextEventSource: | |
| 485 case RequestContextFetch: | |
| 486 case RequestContextXMLHttpRequest: | |
| 487 return TargetIsXHR; | |
| 488 | |
| 489 // These should be handled by the FrameType checks at the top of the functio
n. | |
| 490 // Main Frame | |
| 491 case RequestContextForm: | |
| 492 case RequestContextHyperlink: | |
| 493 case RequestContextLocation: | |
| 494 case RequestContextFrame: | |
| 495 case RequestContextIframe: | |
| 496 ASSERT_NOT_REACHED(); | |
| 497 return TargetIsUnspecified; | |
| 498 } | |
| 499 ASSERT_NOT_REACHED(); | |
| 500 return TargetIsUnspecified; | |
| 501 } | |
| 502 | |
| 503 // FIXME: Drop these two methods once embedders are updated to use RequestContex
ts. | |
| 504 WebURLRequest::TargetType WebURLRequest::targetType() const | |
| 505 { | |
| 506 // FIXME: Temporary special case until downstream chromium.org knows of the
new TargetTypes. | |
| 507 TargetType targetType = WebURLRequest::targetTypeFromRequestContextAndFrameT
ype(requestContext(), frameType()); | |
| 508 if (targetType == TargetIsTextTrack || targetType == TargetIsUnspecified) | |
| 509 return TargetIsSubresource; | |
| 510 return targetType; | |
| 511 } | |
| 512 | |
| 513 void WebURLRequest::setTargetType(TargetType targetType) | |
| 514 { | |
| 515 setRequestContext(WebURLRequest::requestContextFromTargetType(targetType)); | |
| 516 if (targetType == TargetIsMainFrame) | |
| 517 setFrameType(FrameTypeTopLevel); | |
| 518 if (targetType == TargetIsSubframe) | |
| 519 setFrameType(FrameTypeNested); | |
| 520 } | |
| 521 | |
| 522 | |
| 523 } // namespace blink | 359 } // namespace blink |
| OLD | NEW |