| 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/browser/appcache/appcache_request_handler.h" | 5 #include "content/browser/appcache/appcache_request_handler.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <stack> | 9 #include <stack> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 264 | 264 |
| 265 // MainResource_Miss -------------------------------------------------- | 265 // MainResource_Miss -------------------------------------------------- |
| 266 | 266 |
| 267 void MainResource_Miss() { | 267 void MainResource_Miss() { |
| 268 PushNextTask( | 268 PushNextTask( |
| 269 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Miss, | 269 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Miss, |
| 270 base::Unretained(this))); | 270 base::Unretained(this))); |
| 271 | 271 |
| 272 request_ = empty_context_->CreateRequest(GURL("http://blah/"), | 272 request_ = empty_context_->CreateRequest(GURL("http://blah/"), |
| 273 net::DEFAULT_PRIORITY, &delegate_); | 273 net::DEFAULT_PRIORITY, &delegate_); |
| 274 handler_.reset(host_->CreateRequestHandler(request_.get(), | 274 handler_ = host_->CreateRequestHandler(request_.get(), |
| 275 RESOURCE_TYPE_MAIN_FRAME, | 275 RESOURCE_TYPE_MAIN_FRAME, false); |
| 276 false)); | |
| 277 EXPECT_TRUE(handler_.get()); | 276 EXPECT_TRUE(handler_.get()); |
| 278 | 277 |
| 279 job_.reset(handler_->MaybeLoadResource( | 278 job_.reset(handler_->MaybeLoadResource( |
| 280 request_.get(), request_->context()->network_delegate())); | 279 request_.get(), request_->context()->network_delegate())); |
| 281 EXPECT_TRUE(job_.get()); | 280 EXPECT_TRUE(job_.get()); |
| 282 EXPECT_TRUE(job_->is_waiting()); | 281 EXPECT_TRUE(job_->is_waiting()); |
| 283 | 282 |
| 284 // We have to wait for completion of storage->FindResponseForMainRequest. | 283 // We have to wait for completion of storage->FindResponseForMainRequest. |
| 285 ScheduleNextTask(); | 284 ScheduleNextTask(); |
| 286 } | 285 } |
| (...skipping 25 matching lines...) Expand all Loading... |
| 312 | 311 |
| 313 // MainResource_Hit -------------------------------------------------- | 312 // MainResource_Hit -------------------------------------------------- |
| 314 | 313 |
| 315 void MainResource_Hit() { | 314 void MainResource_Hit() { |
| 316 PushNextTask( | 315 PushNextTask( |
| 317 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Hit, | 316 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Hit, |
| 318 base::Unretained(this))); | 317 base::Unretained(this))); |
| 319 | 318 |
| 320 request_ = empty_context_->CreateRequest(GURL("http://blah/"), | 319 request_ = empty_context_->CreateRequest(GURL("http://blah/"), |
| 321 net::DEFAULT_PRIORITY, &delegate_); | 320 net::DEFAULT_PRIORITY, &delegate_); |
| 322 handler_.reset(host_->CreateRequestHandler(request_.get(), | 321 handler_ = host_->CreateRequestHandler(request_.get(), |
| 323 RESOURCE_TYPE_MAIN_FRAME, | 322 RESOURCE_TYPE_MAIN_FRAME, false); |
| 324 false)); | |
| 325 EXPECT_TRUE(handler_.get()); | 323 EXPECT_TRUE(handler_.get()); |
| 326 | 324 |
| 327 mock_storage()->SimulateFindMainResource( | 325 mock_storage()->SimulateFindMainResource( |
| 328 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), | 326 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), |
| 329 GURL(), AppCacheEntry(), | 327 GURL(), AppCacheEntry(), |
| 330 1, 2, GURL("http://blah/manifest/")); | 328 1, 2, GURL("http://blah/manifest/")); |
| 331 | 329 |
| 332 job_.reset(handler_->MaybeLoadResource( | 330 job_.reset(handler_->MaybeLoadResource( |
| 333 request_.get(), request_->context()->network_delegate())); | 331 request_.get(), request_->context()->network_delegate())); |
| 334 EXPECT_TRUE(job_.get()); | 332 EXPECT_TRUE(job_.get()); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 362 | 360 |
| 363 // MainResource_Fallback -------------------------------------------------- | 361 // MainResource_Fallback -------------------------------------------------- |
| 364 | 362 |
| 365 void MainResource_Fallback() { | 363 void MainResource_Fallback() { |
| 366 PushNextTask( | 364 PushNextTask( |
| 367 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Fallback, | 365 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Fallback, |
| 368 base::Unretained(this))); | 366 base::Unretained(this))); |
| 369 | 367 |
| 370 request_ = empty_context_->CreateRequest(GURL("http://blah/"), | 368 request_ = empty_context_->CreateRequest(GURL("http://blah/"), |
| 371 net::DEFAULT_PRIORITY, &delegate_); | 369 net::DEFAULT_PRIORITY, &delegate_); |
| 372 handler_.reset(host_->CreateRequestHandler(request_.get(), | 370 handler_ = host_->CreateRequestHandler(request_.get(), |
| 373 RESOURCE_TYPE_MAIN_FRAME, | 371 RESOURCE_TYPE_MAIN_FRAME, false); |
| 374 false)); | |
| 375 EXPECT_TRUE(handler_.get()); | 372 EXPECT_TRUE(handler_.get()); |
| 376 | 373 |
| 377 mock_storage()->SimulateFindMainResource( | 374 mock_storage()->SimulateFindMainResource( |
| 378 AppCacheEntry(), | 375 AppCacheEntry(), |
| 379 GURL("http://blah/fallbackurl"), | 376 GURL("http://blah/fallbackurl"), |
| 380 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), | 377 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), |
| 381 1, 2, GURL("http://blah/manifest/")); | 378 1, 2, GURL("http://blah/manifest/")); |
| 382 | 379 |
| 383 job_.reset(handler_->MaybeLoadResource( | 380 job_.reset(handler_->MaybeLoadResource( |
| 384 request_.get(), request_->context()->network_delegate())); | 381 request_.get(), request_->context()->network_delegate())); |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 450 // MainResource_FallbackOverride -------------------------------------------- | 447 // MainResource_FallbackOverride -------------------------------------------- |
| 451 | 448 |
| 452 void MainResource_FallbackOverride() { | 449 void MainResource_FallbackOverride() { |
| 453 PushNextTask(base::Bind( | 450 PushNextTask(base::Bind( |
| 454 &AppCacheRequestHandlerTest::Verify_MainResource_FallbackOverride, | 451 &AppCacheRequestHandlerTest::Verify_MainResource_FallbackOverride, |
| 455 base::Unretained(this))); | 452 base::Unretained(this))); |
| 456 | 453 |
| 457 request_ = | 454 request_ = |
| 458 empty_context_->CreateRequest(GURL("http://blah/fallback-override"), | 455 empty_context_->CreateRequest(GURL("http://blah/fallback-override"), |
| 459 net::DEFAULT_PRIORITY, &delegate_); | 456 net::DEFAULT_PRIORITY, &delegate_); |
| 460 handler_.reset(host_->CreateRequestHandler(request_.get(), | 457 handler_ = host_->CreateRequestHandler(request_.get(), |
| 461 RESOURCE_TYPE_MAIN_FRAME, | 458 RESOURCE_TYPE_MAIN_FRAME, false); |
| 462 false)); | |
| 463 EXPECT_TRUE(handler_.get()); | 459 EXPECT_TRUE(handler_.get()); |
| 464 | 460 |
| 465 mock_storage()->SimulateFindMainResource( | 461 mock_storage()->SimulateFindMainResource( |
| 466 AppCacheEntry(), | 462 AppCacheEntry(), |
| 467 GURL("http://blah/fallbackurl"), | 463 GURL("http://blah/fallbackurl"), |
| 468 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), | 464 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), |
| 469 1, 2, GURL("http://blah/manifest/")); | 465 1, 2, GURL("http://blah/manifest/")); |
| 470 | 466 |
| 471 job_.reset(handler_->MaybeLoadResource( | 467 job_.reset(handler_->MaybeLoadResource( |
| 472 request_.get(), request_->context()->network_delegate())); | 468 request_.get(), request_->context()->network_delegate())); |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 515 EXPECT_TRUE(manifest_url.is_empty()); | 511 EXPECT_TRUE(manifest_url.is_empty()); |
| 516 | 512 |
| 517 TestFinished(); | 513 TestFinished(); |
| 518 } | 514 } |
| 519 | 515 |
| 520 // SubResource_Miss_WithNoCacheSelected ---------------------------------- | 516 // SubResource_Miss_WithNoCacheSelected ---------------------------------- |
| 521 | 517 |
| 522 void SubResource_Miss_WithNoCacheSelected() { | 518 void SubResource_Miss_WithNoCacheSelected() { |
| 523 request_ = empty_context_->CreateRequest(GURL("http://blah/"), | 519 request_ = empty_context_->CreateRequest(GURL("http://blah/"), |
| 524 net::DEFAULT_PRIORITY, &delegate_); | 520 net::DEFAULT_PRIORITY, &delegate_); |
| 525 handler_.reset(host_->CreateRequestHandler(request_.get(), | 521 handler_ = host_->CreateRequestHandler(request_.get(), |
| 526 RESOURCE_TYPE_SUB_RESOURCE, | 522 RESOURCE_TYPE_SUB_RESOURCE, false); |
| 527 false)); | |
| 528 | 523 |
| 529 // We avoid creating handler when possible, sub-resource requests are not | 524 // We avoid creating handler when possible, sub-resource requests are not |
| 530 // subject to retrieval from an appcache when there's no associated cache. | 525 // subject to retrieval from an appcache when there's no associated cache. |
| 531 EXPECT_FALSE(handler_.get()); | 526 EXPECT_FALSE(handler_.get()); |
| 532 | 527 |
| 533 TestFinished(); | 528 TestFinished(); |
| 534 } | 529 } |
| 535 | 530 |
| 536 // SubResource_Miss_WithCacheSelected ---------------------------------- | 531 // SubResource_Miss_WithCacheSelected ---------------------------------- |
| 537 | 532 |
| 538 void SubResource_Miss_WithCacheSelected() { | 533 void SubResource_Miss_WithCacheSelected() { |
| 539 // A sub-resource load where the resource is not in an appcache, or | 534 // A sub-resource load where the resource is not in an appcache, or |
| 540 // in a network or fallback namespace, should result in a failed request. | 535 // in a network or fallback namespace, should result in a failed request. |
| 541 host_->AssociateCompleteCache(MakeNewCache()); | 536 host_->AssociateCompleteCache(MakeNewCache()); |
| 542 | 537 |
| 543 request_ = empty_context_->CreateRequest(GURL("http://blah/"), | 538 request_ = empty_context_->CreateRequest(GURL("http://blah/"), |
| 544 net::DEFAULT_PRIORITY, &delegate_); | 539 net::DEFAULT_PRIORITY, &delegate_); |
| 545 handler_.reset(host_->CreateRequestHandler(request_.get(), | 540 handler_ = host_->CreateRequestHandler(request_.get(), |
| 546 RESOURCE_TYPE_SUB_RESOURCE, | 541 RESOURCE_TYPE_SUB_RESOURCE, false); |
| 547 false)); | |
| 548 EXPECT_TRUE(handler_.get()); | 542 EXPECT_TRUE(handler_.get()); |
| 549 | 543 |
| 550 job_.reset(handler_->MaybeLoadResource( | 544 job_.reset(handler_->MaybeLoadResource( |
| 551 request_.get(), request_->context()->network_delegate())); | 545 request_.get(), request_->context()->network_delegate())); |
| 552 EXPECT_TRUE(job_.get()); | 546 EXPECT_TRUE(job_.get()); |
| 553 EXPECT_TRUE(job_->is_delivering_error_response()); | 547 EXPECT_TRUE(job_->is_delivering_error_response()); |
| 554 | 548 |
| 555 std::unique_ptr<AppCacheURLRequestJob> fallback_job( | 549 std::unique_ptr<AppCacheURLRequestJob> fallback_job( |
| 556 handler_->MaybeLoadFallbackForRedirect( | 550 handler_->MaybeLoadFallbackForRedirect( |
| 557 request_.get(), request_->context()->network_delegate(), | 551 request_.get(), request_->context()->network_delegate(), |
| 558 GURL("http://blah/redirect"))); | 552 GURL("http://blah/redirect"))); |
| 559 EXPECT_FALSE(fallback_job); | 553 EXPECT_FALSE(fallback_job); |
| 560 fallback_job.reset(handler_->MaybeLoadFallbackForResponse( | 554 fallback_job.reset(handler_->MaybeLoadFallbackForResponse( |
| 561 request_.get(), request_->context()->network_delegate())); | 555 request_.get(), request_->context()->network_delegate())); |
| 562 EXPECT_FALSE(fallback_job); | 556 EXPECT_FALSE(fallback_job); |
| 563 | 557 |
| 564 TestFinished(); | 558 TestFinished(); |
| 565 } | 559 } |
| 566 | 560 |
| 567 // SubResource_Miss_WithWaitForCacheSelection ----------------------------- | 561 // SubResource_Miss_WithWaitForCacheSelection ----------------------------- |
| 568 | 562 |
| 569 void SubResource_Miss_WithWaitForCacheSelection() { | 563 void SubResource_Miss_WithWaitForCacheSelection() { |
| 570 // Precondition, the host is waiting on cache selection. | 564 // Precondition, the host is waiting on cache selection. |
| 571 scoped_refptr<AppCache> cache(MakeNewCache()); | 565 scoped_refptr<AppCache> cache(MakeNewCache()); |
| 572 host_->pending_selected_cache_id_ = cache->cache_id(); | 566 host_->pending_selected_cache_id_ = cache->cache_id(); |
| 573 host_->set_preferred_manifest_url(cache->owning_group()->manifest_url()); | 567 host_->set_preferred_manifest_url(cache->owning_group()->manifest_url()); |
| 574 | 568 |
| 575 request_ = empty_context_->CreateRequest(GURL("http://blah/"), | 569 request_ = empty_context_->CreateRequest(GURL("http://blah/"), |
| 576 net::DEFAULT_PRIORITY, &delegate_); | 570 net::DEFAULT_PRIORITY, &delegate_); |
| 577 handler_.reset(host_->CreateRequestHandler(request_.get(), | 571 handler_ = host_->CreateRequestHandler(request_.get(), |
| 578 RESOURCE_TYPE_SUB_RESOURCE, | 572 RESOURCE_TYPE_SUB_RESOURCE, false); |
| 579 false)); | |
| 580 EXPECT_TRUE(handler_.get()); | 573 EXPECT_TRUE(handler_.get()); |
| 581 job_.reset(handler_->MaybeLoadResource( | 574 job_.reset(handler_->MaybeLoadResource( |
| 582 request_.get(), request_->context()->network_delegate())); | 575 request_.get(), request_->context()->network_delegate())); |
| 583 EXPECT_TRUE(job_.get()); | 576 EXPECT_TRUE(job_.get()); |
| 584 EXPECT_TRUE(job_->is_waiting()); | 577 EXPECT_TRUE(job_->is_waiting()); |
| 585 | 578 |
| 586 host_->FinishCacheSelection(cache.get(), NULL); | 579 host_->FinishCacheSelection(cache.get(), NULL); |
| 587 EXPECT_FALSE(job_->is_waiting()); | 580 EXPECT_FALSE(job_->is_waiting()); |
| 588 EXPECT_TRUE(job_->is_delivering_error_response()); | 581 EXPECT_TRUE(job_->is_delivering_error_response()); |
| 589 | 582 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 602 // SubResource_Hit ----------------------------- | 595 // SubResource_Hit ----------------------------- |
| 603 | 596 |
| 604 void SubResource_Hit() { | 597 void SubResource_Hit() { |
| 605 host_->AssociateCompleteCache(MakeNewCache()); | 598 host_->AssociateCompleteCache(MakeNewCache()); |
| 606 | 599 |
| 607 mock_storage()->SimulateFindSubResource( | 600 mock_storage()->SimulateFindSubResource( |
| 608 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false); | 601 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false); |
| 609 | 602 |
| 610 request_ = empty_context_->CreateRequest(GURL("http://blah/"), | 603 request_ = empty_context_->CreateRequest(GURL("http://blah/"), |
| 611 net::DEFAULT_PRIORITY, &delegate_); | 604 net::DEFAULT_PRIORITY, &delegate_); |
| 612 handler_.reset(host_->CreateRequestHandler(request_.get(), | 605 handler_ = host_->CreateRequestHandler(request_.get(), |
| 613 RESOURCE_TYPE_SUB_RESOURCE, | 606 RESOURCE_TYPE_SUB_RESOURCE, false); |
| 614 false)); | |
| 615 EXPECT_TRUE(handler_.get()); | 607 EXPECT_TRUE(handler_.get()); |
| 616 job_.reset(handler_->MaybeLoadResource( | 608 job_.reset(handler_->MaybeLoadResource( |
| 617 request_.get(), request_->context()->network_delegate())); | 609 request_.get(), request_->context()->network_delegate())); |
| 618 EXPECT_TRUE(job_.get()); | 610 EXPECT_TRUE(job_.get()); |
| 619 EXPECT_TRUE(job_->is_delivering_appcache_response()); | 611 EXPECT_TRUE(job_->is_delivering_appcache_response()); |
| 620 | 612 |
| 621 std::unique_ptr<AppCacheURLRequestJob> fallback_job( | 613 std::unique_ptr<AppCacheURLRequestJob> fallback_job( |
| 622 handler_->MaybeLoadFallbackForRedirect( | 614 handler_->MaybeLoadFallbackForRedirect( |
| 623 request_.get(), request_->context()->network_delegate(), | 615 request_.get(), request_->context()->network_delegate(), |
| 624 GURL("http://blah/redirect"))); | 616 GURL("http://blah/redirect"))); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 635 void SubResource_RedirectFallback() { | 627 void SubResource_RedirectFallback() { |
| 636 // Redirects to resources in the a different origin are subject to | 628 // Redirects to resources in the a different origin are subject to |
| 637 // fallback namespaces. | 629 // fallback namespaces. |
| 638 host_->AssociateCompleteCache(MakeNewCache()); | 630 host_->AssociateCompleteCache(MakeNewCache()); |
| 639 | 631 |
| 640 mock_storage()->SimulateFindSubResource( | 632 mock_storage()->SimulateFindSubResource( |
| 641 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false); | 633 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false); |
| 642 | 634 |
| 643 request_ = empty_context_->CreateRequest(GURL("http://blah/"), | 635 request_ = empty_context_->CreateRequest(GURL("http://blah/"), |
| 644 net::DEFAULT_PRIORITY, &delegate_); | 636 net::DEFAULT_PRIORITY, &delegate_); |
| 645 handler_.reset(host_->CreateRequestHandler(request_.get(), | 637 handler_ = host_->CreateRequestHandler(request_.get(), |
| 646 RESOURCE_TYPE_SUB_RESOURCE, | 638 RESOURCE_TYPE_SUB_RESOURCE, false); |
| 647 false)); | |
| 648 EXPECT_TRUE(handler_.get()); | 639 EXPECT_TRUE(handler_.get()); |
| 649 job_.reset(handler_->MaybeLoadResource( | 640 job_.reset(handler_->MaybeLoadResource( |
| 650 request_.get(), request_->context()->network_delegate())); | 641 request_.get(), request_->context()->network_delegate())); |
| 651 EXPECT_FALSE(job_.get()); | 642 EXPECT_FALSE(job_.get()); |
| 652 | 643 |
| 653 job_.reset(handler_->MaybeLoadFallbackForRedirect( | 644 job_.reset(handler_->MaybeLoadFallbackForRedirect( |
| 654 request_.get(), request_->context()->network_delegate(), | 645 request_.get(), request_->context()->network_delegate(), |
| 655 GURL("http://not_blah/redirect"))); | 646 GURL("http://not_blah/redirect"))); |
| 656 EXPECT_TRUE(job_.get()); | 647 EXPECT_TRUE(job_.get()); |
| 657 EXPECT_TRUE(job_->is_delivering_appcache_response()); | 648 EXPECT_TRUE(job_->is_delivering_appcache_response()); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 669 void SubResource_NoRedirectFallback() { | 660 void SubResource_NoRedirectFallback() { |
| 670 // Redirects to resources in the same-origin are not subject to | 661 // Redirects to resources in the same-origin are not subject to |
| 671 // fallback namespaces. | 662 // fallback namespaces. |
| 672 host_->AssociateCompleteCache(MakeNewCache()); | 663 host_->AssociateCompleteCache(MakeNewCache()); |
| 673 | 664 |
| 674 mock_storage()->SimulateFindSubResource( | 665 mock_storage()->SimulateFindSubResource( |
| 675 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false); | 666 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false); |
| 676 | 667 |
| 677 request_ = empty_context_->CreateRequest(GURL("http://blah/"), | 668 request_ = empty_context_->CreateRequest(GURL("http://blah/"), |
| 678 net::DEFAULT_PRIORITY, &delegate_); | 669 net::DEFAULT_PRIORITY, &delegate_); |
| 679 handler_.reset(host_->CreateRequestHandler(request_.get(), | 670 handler_ = host_->CreateRequestHandler(request_.get(), |
| 680 RESOURCE_TYPE_SUB_RESOURCE, | 671 RESOURCE_TYPE_SUB_RESOURCE, false); |
| 681 false)); | |
| 682 EXPECT_TRUE(handler_.get()); | 672 EXPECT_TRUE(handler_.get()); |
| 683 job_.reset(handler_->MaybeLoadResource( | 673 job_.reset(handler_->MaybeLoadResource( |
| 684 request_.get(), request_->context()->network_delegate())); | 674 request_.get(), request_->context()->network_delegate())); |
| 685 EXPECT_FALSE(job_.get()); | 675 EXPECT_FALSE(job_.get()); |
| 686 | 676 |
| 687 std::unique_ptr<AppCacheURLRequestJob> fallback_job( | 677 std::unique_ptr<AppCacheURLRequestJob> fallback_job( |
| 688 handler_->MaybeLoadFallbackForRedirect( | 678 handler_->MaybeLoadFallbackForRedirect( |
| 689 request_.get(), request_->context()->network_delegate(), | 679 request_.get(), request_->context()->network_delegate(), |
| 690 GURL("http://blah/redirect"))); | 680 GURL("http://blah/redirect"))); |
| 691 EXPECT_FALSE(fallback_job); | 681 EXPECT_FALSE(fallback_job); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 704 // A sub-resource load where the resource is in a network namespace, | 694 // A sub-resource load where the resource is in a network namespace, |
| 705 // should result in the system using a 'real' job to do the network | 695 // should result in the system using a 'real' job to do the network |
| 706 // retrieval. | 696 // retrieval. |
| 707 host_->AssociateCompleteCache(MakeNewCache()); | 697 host_->AssociateCompleteCache(MakeNewCache()); |
| 708 | 698 |
| 709 mock_storage()->SimulateFindSubResource( | 699 mock_storage()->SimulateFindSubResource( |
| 710 AppCacheEntry(), AppCacheEntry(), true); | 700 AppCacheEntry(), AppCacheEntry(), true); |
| 711 | 701 |
| 712 request_ = empty_context_->CreateRequest(GURL("http://blah/"), | 702 request_ = empty_context_->CreateRequest(GURL("http://blah/"), |
| 713 net::DEFAULT_PRIORITY, &delegate_); | 703 net::DEFAULT_PRIORITY, &delegate_); |
| 714 handler_.reset(host_->CreateRequestHandler(request_.get(), | 704 handler_ = host_->CreateRequestHandler(request_.get(), |
| 715 RESOURCE_TYPE_SUB_RESOURCE, | 705 RESOURCE_TYPE_SUB_RESOURCE, false); |
| 716 false)); | |
| 717 EXPECT_TRUE(handler_.get()); | 706 EXPECT_TRUE(handler_.get()); |
| 718 job_.reset(handler_->MaybeLoadResource( | 707 job_.reset(handler_->MaybeLoadResource( |
| 719 request_.get(), request_->context()->network_delegate())); | 708 request_.get(), request_->context()->network_delegate())); |
| 720 EXPECT_FALSE(job_.get()); | 709 EXPECT_FALSE(job_.get()); |
| 721 | 710 |
| 722 std::unique_ptr<AppCacheURLRequestJob> fallback_job( | 711 std::unique_ptr<AppCacheURLRequestJob> fallback_job( |
| 723 handler_->MaybeLoadFallbackForRedirect( | 712 handler_->MaybeLoadFallbackForRedirect( |
| 724 request_.get(), request_->context()->network_delegate(), | 713 request_.get(), request_->context()->network_delegate(), |
| 725 GURL("http://blah/redirect"))); | 714 GURL("http://blah/redirect"))); |
| 726 EXPECT_FALSE(fallback_job); | 715 EXPECT_FALSE(fallback_job); |
| 727 fallback_job.reset(handler_->MaybeLoadFallbackForResponse( | 716 fallback_job.reset(handler_->MaybeLoadFallbackForResponse( |
| 728 request_.get(), request_->context()->network_delegate())); | 717 request_.get(), request_->context()->network_delegate())); |
| 729 EXPECT_FALSE(fallback_job); | 718 EXPECT_FALSE(fallback_job); |
| 730 | 719 |
| 731 TestFinished(); | 720 TestFinished(); |
| 732 } | 721 } |
| 733 | 722 |
| 734 // DestroyedHost ----------------------------- | 723 // DestroyedHost ----------------------------- |
| 735 | 724 |
| 736 void DestroyedHost() { | 725 void DestroyedHost() { |
| 737 host_->AssociateCompleteCache(MakeNewCache()); | 726 host_->AssociateCompleteCache(MakeNewCache()); |
| 738 | 727 |
| 739 mock_storage()->SimulateFindSubResource( | 728 mock_storage()->SimulateFindSubResource( |
| 740 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false); | 729 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false); |
| 741 | 730 |
| 742 request_ = empty_context_->CreateRequest(GURL("http://blah/"), | 731 request_ = empty_context_->CreateRequest(GURL("http://blah/"), |
| 743 net::DEFAULT_PRIORITY, &delegate_); | 732 net::DEFAULT_PRIORITY, &delegate_); |
| 744 handler_.reset(host_->CreateRequestHandler(request_.get(), | 733 handler_ = host_->CreateRequestHandler(request_.get(), |
| 745 RESOURCE_TYPE_SUB_RESOURCE, | 734 RESOURCE_TYPE_SUB_RESOURCE, false); |
| 746 false)); | |
| 747 EXPECT_TRUE(handler_.get()); | 735 EXPECT_TRUE(handler_.get()); |
| 748 | 736 |
| 749 backend_impl_->UnregisterHost(1); | 737 backend_impl_->UnregisterHost(1); |
| 750 host_ = NULL; | 738 host_ = NULL; |
| 751 | 739 |
| 752 EXPECT_FALSE(handler_->MaybeLoadResource( | 740 EXPECT_FALSE(handler_->MaybeLoadResource( |
| 753 request_.get(), request_->context()->network_delegate())); | 741 request_.get(), request_->context()->network_delegate())); |
| 754 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( | 742 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( |
| 755 request_.get(), | 743 request_.get(), |
| 756 request_->context()->network_delegate(), | 744 request_->context()->network_delegate(), |
| 757 GURL("http://blah/redirect"))); | 745 GURL("http://blah/redirect"))); |
| 758 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse( | 746 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse( |
| 759 request_.get(), request_->context()->network_delegate())); | 747 request_.get(), request_->context()->network_delegate())); |
| 760 | 748 |
| 761 TestFinished(); | 749 TestFinished(); |
| 762 } | 750 } |
| 763 | 751 |
| 764 // DestroyedHostWithWaitingJob ----------------------------- | 752 // DestroyedHostWithWaitingJob ----------------------------- |
| 765 | 753 |
| 766 void DestroyedHostWithWaitingJob() { | 754 void DestroyedHostWithWaitingJob() { |
| 767 // Precondition, the host is waiting on cache selection. | 755 // Precondition, the host is waiting on cache selection. |
| 768 host_->pending_selected_cache_id_ = 1; | 756 host_->pending_selected_cache_id_ = 1; |
| 769 | 757 |
| 770 request_ = empty_context_->CreateRequest(GURL("http://blah/"), | 758 request_ = empty_context_->CreateRequest(GURL("http://blah/"), |
| 771 net::DEFAULT_PRIORITY, &delegate_); | 759 net::DEFAULT_PRIORITY, &delegate_); |
| 772 handler_.reset(host_->CreateRequestHandler(request_.get(), | 760 handler_ = host_->CreateRequestHandler(request_.get(), |
| 773 RESOURCE_TYPE_SUB_RESOURCE, | 761 RESOURCE_TYPE_SUB_RESOURCE, false); |
| 774 false)); | |
| 775 EXPECT_TRUE(handler_.get()); | 762 EXPECT_TRUE(handler_.get()); |
| 776 | 763 |
| 777 job_.reset(handler_->MaybeLoadResource( | 764 job_.reset(handler_->MaybeLoadResource( |
| 778 request_.get(), request_->context()->network_delegate())); | 765 request_.get(), request_->context()->network_delegate())); |
| 779 EXPECT_TRUE(job_.get()); | 766 EXPECT_TRUE(job_.get()); |
| 780 EXPECT_TRUE(job_->is_waiting()); | 767 EXPECT_TRUE(job_->is_waiting()); |
| 781 | 768 |
| 782 backend_impl_->UnregisterHost(1); | 769 backend_impl_->UnregisterHost(1); |
| 783 host_ = NULL; | 770 host_ = NULL; |
| 784 EXPECT_TRUE(job_->has_been_killed()); | 771 EXPECT_TRUE(job_->has_been_killed()); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 798 // DestroyedService ----------------------------- | 785 // DestroyedService ----------------------------- |
| 799 | 786 |
| 800 void DestroyedService() { | 787 void DestroyedService() { |
| 801 host_->AssociateCompleteCache(MakeNewCache()); | 788 host_->AssociateCompleteCache(MakeNewCache()); |
| 802 | 789 |
| 803 mock_storage()->SimulateFindSubResource( | 790 mock_storage()->SimulateFindSubResource( |
| 804 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false); | 791 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false); |
| 805 | 792 |
| 806 request_ = empty_context_->CreateRequest(GURL("http://blah/"), | 793 request_ = empty_context_->CreateRequest(GURL("http://blah/"), |
| 807 net::DEFAULT_PRIORITY, &delegate_); | 794 net::DEFAULT_PRIORITY, &delegate_); |
| 808 handler_.reset(host_->CreateRequestHandler(request_.get(), | 795 handler_ = host_->CreateRequestHandler(request_.get(), |
| 809 RESOURCE_TYPE_SUB_RESOURCE, | 796 RESOURCE_TYPE_SUB_RESOURCE, false); |
| 810 false)); | |
| 811 EXPECT_TRUE(handler_.get()); | 797 EXPECT_TRUE(handler_.get()); |
| 812 job_.reset(handler_->MaybeLoadResource( | 798 job_.reset(handler_->MaybeLoadResource( |
| 813 request_.get(), request_->context()->network_delegate())); | 799 request_.get(), request_->context()->network_delegate())); |
| 814 EXPECT_TRUE(job_.get()); | 800 EXPECT_TRUE(job_.get()); |
| 815 | 801 |
| 816 backend_impl_.reset(); | 802 backend_impl_.reset(); |
| 817 mock_frontend_.reset(); | 803 mock_frontend_.reset(); |
| 818 mock_service_.reset(); | 804 mock_service_.reset(); |
| 819 mock_policy_.reset(); | 805 mock_policy_.reset(); |
| 820 host_ = NULL; | 806 host_ = NULL; |
| 821 | 807 |
| 822 EXPECT_TRUE(job_->has_been_killed()); | 808 EXPECT_TRUE(job_->has_been_killed()); |
| 823 EXPECT_FALSE(handler_->MaybeLoadResource( | 809 EXPECT_FALSE(handler_->MaybeLoadResource( |
| 824 request_.get(), request_->context()->network_delegate())); | 810 request_.get(), request_->context()->network_delegate())); |
| 825 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( | 811 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( |
| 826 request_.get(), | 812 request_.get(), |
| 827 request_->context()->network_delegate(), | 813 request_->context()->network_delegate(), |
| 828 GURL("http://blah/redirect"))); | 814 GURL("http://blah/redirect"))); |
| 829 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse( | 815 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse( |
| 830 request_.get(), request_->context()->network_delegate())); | 816 request_.get(), request_->context()->network_delegate())); |
| 831 | 817 |
| 832 TestFinished(); | 818 TestFinished(); |
| 833 } | 819 } |
| 834 | 820 |
| 835 void DestroyedServiceWithCrossSiteNav() { | 821 void DestroyedServiceWithCrossSiteNav() { |
| 836 request_ = empty_context_->CreateRequest(GURL("http://blah/"), | 822 request_ = empty_context_->CreateRequest(GURL("http://blah/"), |
| 837 net::DEFAULT_PRIORITY, &delegate_); | 823 net::DEFAULT_PRIORITY, &delegate_); |
| 838 handler_.reset(host_->CreateRequestHandler(request_.get(), | 824 handler_ = host_->CreateRequestHandler(request_.get(), |
| 839 RESOURCE_TYPE_MAIN_FRAME, | 825 RESOURCE_TYPE_MAIN_FRAME, false); |
| 840 false)); | |
| 841 EXPECT_TRUE(handler_.get()); | 826 EXPECT_TRUE(handler_.get()); |
| 842 handler_->PrepareForCrossSiteTransfer(backend_impl_->process_id()); | 827 handler_->PrepareForCrossSiteTransfer(backend_impl_->process_id()); |
| 843 EXPECT_TRUE(handler_->host_for_cross_site_transfer_.get()); | 828 EXPECT_TRUE(handler_->host_for_cross_site_transfer_.get()); |
| 844 | 829 |
| 845 backend_impl_.reset(); | 830 backend_impl_.reset(); |
| 846 mock_frontend_.reset(); | 831 mock_frontend_.reset(); |
| 847 mock_service_.reset(); | 832 mock_service_.reset(); |
| 848 mock_policy_.reset(); | 833 mock_policy_.reset(); |
| 849 host_ = NULL; | 834 host_ = NULL; |
| 850 | 835 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 862 } | 847 } |
| 863 | 848 |
| 864 // UnsupportedScheme ----------------------------- | 849 // UnsupportedScheme ----------------------------- |
| 865 | 850 |
| 866 void UnsupportedScheme() { | 851 void UnsupportedScheme() { |
| 867 // Precondition, the host is waiting on cache selection. | 852 // Precondition, the host is waiting on cache selection. |
| 868 host_->pending_selected_cache_id_ = 1; | 853 host_->pending_selected_cache_id_ = 1; |
| 869 | 854 |
| 870 request_ = empty_context_->CreateRequest(GURL("ftp://blah/"), | 855 request_ = empty_context_->CreateRequest(GURL("ftp://blah/"), |
| 871 net::DEFAULT_PRIORITY, &delegate_); | 856 net::DEFAULT_PRIORITY, &delegate_); |
| 872 handler_.reset(host_->CreateRequestHandler(request_.get(), | 857 handler_ = host_->CreateRequestHandler(request_.get(), |
| 873 RESOURCE_TYPE_SUB_RESOURCE, | 858 RESOURCE_TYPE_SUB_RESOURCE, false); |
| 874 false)); | |
| 875 EXPECT_TRUE(handler_.get()); // we could redirect to http (conceivably) | 859 EXPECT_TRUE(handler_.get()); // we could redirect to http (conceivably) |
| 876 | 860 |
| 877 EXPECT_FALSE(handler_->MaybeLoadResource( | 861 EXPECT_FALSE(handler_->MaybeLoadResource( |
| 878 request_.get(), request_->context()->network_delegate())); | 862 request_.get(), request_->context()->network_delegate())); |
| 879 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( | 863 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( |
| 880 request_.get(), | 864 request_.get(), |
| 881 request_->context()->network_delegate(), | 865 request_->context()->network_delegate(), |
| 882 GURL("ftp://blah/redirect"))); | 866 GURL("ftp://blah/redirect"))); |
| 883 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse( | 867 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse( |
| 884 request_.get(), request_->context()->network_delegate())); | 868 request_.get(), request_->context()->network_delegate())); |
| 885 | 869 |
| 886 TestFinished(); | 870 TestFinished(); |
| 887 } | 871 } |
| 888 | 872 |
| 889 // CanceledRequest ----------------------------- | 873 // CanceledRequest ----------------------------- |
| 890 | 874 |
| 891 void CanceledRequest() { | 875 void CanceledRequest() { |
| 892 request_ = empty_context_->CreateRequest(GURL("http://blah/"), | 876 request_ = empty_context_->CreateRequest(GURL("http://blah/"), |
| 893 net::DEFAULT_PRIORITY, &delegate_); | 877 net::DEFAULT_PRIORITY, &delegate_); |
| 894 handler_.reset(host_->CreateRequestHandler(request_.get(), | 878 handler_ = host_->CreateRequestHandler(request_.get(), |
| 895 RESOURCE_TYPE_MAIN_FRAME, | 879 RESOURCE_TYPE_MAIN_FRAME, false); |
| 896 false)); | |
| 897 EXPECT_TRUE(handler_.get()); | 880 EXPECT_TRUE(handler_.get()); |
| 898 | 881 |
| 899 job_.reset(handler_->MaybeLoadResource( | 882 job_.reset(handler_->MaybeLoadResource( |
| 900 request_.get(), request_->context()->network_delegate())); | 883 request_.get(), request_->context()->network_delegate())); |
| 901 EXPECT_TRUE(job_.get()); | 884 EXPECT_TRUE(job_.get()); |
| 902 EXPECT_TRUE(job_->is_waiting()); | 885 EXPECT_TRUE(job_->is_waiting()); |
| 903 EXPECT_FALSE(job_->has_been_started()); | 886 EXPECT_FALSE(job_->has_been_started()); |
| 904 | 887 |
| 905 base::WeakPtr<AppCacheURLRequestJob> weak_job = job_->GetWeakPtr(); | 888 base::WeakPtr<AppCacheURLRequestJob> weak_job = job_->GetWeakPtr(); |
| 906 | 889 |
| (...skipping 27 matching lines...) Expand all Loading... |
| 934 net::DEFAULT_PRIORITY, &delegate_); | 917 net::DEFAULT_PRIORITY, &delegate_); |
| 935 | 918 |
| 936 const int kParentHostId = host_->host_id(); | 919 const int kParentHostId = host_->host_id(); |
| 937 const int kWorkerHostId = 2; | 920 const int kWorkerHostId = 2; |
| 938 const int kAbandonedWorkerHostId = 3; | 921 const int kAbandonedWorkerHostId = 3; |
| 939 const int kNonExsitingHostId = 700; | 922 const int kNonExsitingHostId = 700; |
| 940 | 923 |
| 941 backend_impl_->RegisterHost(kWorkerHostId); | 924 backend_impl_->RegisterHost(kWorkerHostId); |
| 942 AppCacheHost* worker_host = backend_impl_->GetHost(kWorkerHostId); | 925 AppCacheHost* worker_host = backend_impl_->GetHost(kWorkerHostId); |
| 943 worker_host->SelectCacheForWorker(kParentHostId, kMockProcessId); | 926 worker_host->SelectCacheForWorker(kParentHostId, kMockProcessId); |
| 944 handler_.reset(worker_host->CreateRequestHandler( | 927 handler_ = worker_host->CreateRequestHandler( |
| 945 request_.get(), RESOURCE_TYPE_SHARED_WORKER, false)); | 928 request_.get(), RESOURCE_TYPE_SHARED_WORKER, false); |
| 946 EXPECT_TRUE(handler_.get()); | 929 EXPECT_TRUE(handler_.get()); |
| 947 // Verify that the handler is associated with the parent host. | 930 // Verify that the handler is associated with the parent host. |
| 948 EXPECT_EQ(host_, handler_->host_); | 931 EXPECT_EQ(host_, handler_->host_); |
| 949 | 932 |
| 950 // Create a new worker host, but associate it with a parent host that | 933 // Create a new worker host, but associate it with a parent host that |
| 951 // does not exists to simulate the host having been torn down. | 934 // does not exists to simulate the host having been torn down. |
| 952 backend_impl_->UnregisterHost(kWorkerHostId); | 935 backend_impl_->UnregisterHost(kWorkerHostId); |
| 953 backend_impl_->RegisterHost(kAbandonedWorkerHostId); | 936 backend_impl_->RegisterHost(kAbandonedWorkerHostId); |
| 954 worker_host = backend_impl_->GetHost(kAbandonedWorkerHostId); | 937 worker_host = backend_impl_->GetHost(kAbandonedWorkerHostId); |
| 955 EXPECT_EQ(NULL, backend_impl_->GetHost(kNonExsitingHostId)); | 938 EXPECT_EQ(NULL, backend_impl_->GetHost(kNonExsitingHostId)); |
| 956 worker_host->SelectCacheForWorker(kNonExsitingHostId, kMockProcessId); | 939 worker_host->SelectCacheForWorker(kNonExsitingHostId, kMockProcessId); |
| 957 handler_.reset(worker_host->CreateRequestHandler( | 940 handler_ = worker_host->CreateRequestHandler( |
| 958 request_.get(), RESOURCE_TYPE_SHARED_WORKER, false)); | 941 request_.get(), RESOURCE_TYPE_SHARED_WORKER, false); |
| 959 EXPECT_FALSE(handler_.get()); | 942 EXPECT_FALSE(handler_.get()); |
| 960 | 943 |
| 961 TestFinished(); | 944 TestFinished(); |
| 962 } | 945 } |
| 963 | 946 |
| 964 // MainResource_Blocked -------------------------------------------------- | 947 // MainResource_Blocked -------------------------------------------------- |
| 965 | 948 |
| 966 void MainResource_Blocked() { | 949 void MainResource_Blocked() { |
| 967 PushNextTask( | 950 PushNextTask( |
| 968 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Blocked, | 951 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Blocked, |
| 969 base::Unretained(this))); | 952 base::Unretained(this))); |
| 970 | 953 |
| 971 request_ = empty_context_->CreateRequest(GURL("http://blah/"), | 954 request_ = empty_context_->CreateRequest(GURL("http://blah/"), |
| 972 net::DEFAULT_PRIORITY, &delegate_); | 955 net::DEFAULT_PRIORITY, &delegate_); |
| 973 handler_.reset(host_->CreateRequestHandler(request_.get(), | 956 handler_ = host_->CreateRequestHandler(request_.get(), |
| 974 RESOURCE_TYPE_MAIN_FRAME, | 957 RESOURCE_TYPE_MAIN_FRAME, false); |
| 975 false)); | |
| 976 EXPECT_TRUE(handler_.get()); | 958 EXPECT_TRUE(handler_.get()); |
| 977 | 959 |
| 978 mock_policy_->can_load_return_value_ = false; | 960 mock_policy_->can_load_return_value_ = false; |
| 979 mock_storage()->SimulateFindMainResource( | 961 mock_storage()->SimulateFindMainResource( |
| 980 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), | 962 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), |
| 981 GURL(), AppCacheEntry(), | 963 GURL(), AppCacheEntry(), |
| 982 1, 2, GURL("http://blah/manifest/")); | 964 1, 2, GURL("http://blah/manifest/")); |
| 983 | 965 |
| 984 job_.reset(handler_->MaybeLoadResource( | 966 job_.reset(handler_->MaybeLoadResource( |
| 985 request_.get(), request_->context()->network_delegate())); | 967 request_.get(), request_->context()->network_delegate())); |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1120 | 1102 |
| 1121 TEST_F(AppCacheRequestHandlerTest, WorkerRequest) { | 1103 TEST_F(AppCacheRequestHandlerTest, WorkerRequest) { |
| 1122 RunTestOnIOThread(&AppCacheRequestHandlerTest::WorkerRequest); | 1104 RunTestOnIOThread(&AppCacheRequestHandlerTest::WorkerRequest); |
| 1123 } | 1105 } |
| 1124 | 1106 |
| 1125 TEST_F(AppCacheRequestHandlerTest, MainResource_Blocked) { | 1107 TEST_F(AppCacheRequestHandlerTest, MainResource_Blocked) { |
| 1126 RunTestOnIOThread(&AppCacheRequestHandlerTest::MainResource_Blocked); | 1108 RunTestOnIOThread(&AppCacheRequestHandlerTest::MainResource_Blocked); |
| 1127 } | 1109 } |
| 1128 | 1110 |
| 1129 } // namespace content | 1111 } // namespace content |
| OLD | NEW |