| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2013, Google Inc. All rights reserved. | 2 * Copyright (c) 2013, 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 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 119 | 119 |
| 120 Resource* create(const ResourceRequest& request, | 120 Resource* create(const ResourceRequest& request, |
| 121 const ResourceLoaderOptions& options, | 121 const ResourceLoaderOptions& options, |
| 122 const String& charset) const override { | 122 const String& charset) const override { |
| 123 return Resource::create(request, type(), options); | 123 return Resource::create(request, type(), options); |
| 124 } | 124 } |
| 125 }; | 125 }; |
| 126 | 126 |
| 127 TEST_F(ResourceFetcherTest, StartLoadAfterFrameDetach) { | 127 TEST_F(ResourceFetcherTest, StartLoadAfterFrameDetach) { |
| 128 KURL secureURL(ParsedURLString, "https://secureorigin.test/image.png"); | 128 KURL secureURL(ParsedURLString, "https://secureorigin.test/image.png"); |
| 129 // Try to request a url. The request should fail, no resource should be return
ed, | 129 // Try to request a url. The request should fail, no resource should be |
| 130 // and no resource should be present in the cache. | 130 // returned, and no resource should be present in the cache. |
| 131 ResourceFetcher* fetcher = ResourceFetcher::create(nullptr); | 131 ResourceFetcher* fetcher = ResourceFetcher::create(nullptr); |
| 132 FetchRequest fetchRequest = | 132 FetchRequest fetchRequest = |
| 133 FetchRequest(ResourceRequest(secureURL), FetchInitiatorInfo()); | 133 FetchRequest(ResourceRequest(secureURL), FetchInitiatorInfo()); |
| 134 Resource* resource = | 134 Resource* resource = |
| 135 fetcher->requestResource(fetchRequest, TestResourceFactory()); | 135 fetcher->requestResource(fetchRequest, TestResourceFactory()); |
| 136 EXPECT_FALSE(resource); | 136 EXPECT_FALSE(resource); |
| 137 EXPECT_FALSE(memoryCache()->resourceForURL(secureURL)); | 137 EXPECT_FALSE(memoryCache()->resourceForURL(secureURL)); |
| 138 | 138 |
| 139 // Start by calling startLoad() directly, rather than via requestResource(). | 139 // Start by calling startLoad() directly, rather than via requestResource(). |
| 140 // This shouldn't crash. | 140 // This shouldn't crash. |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 349 // Fetch the same resource again before actual load operation starts. | 349 // Fetch the same resource again before actual load operation starts. |
| 350 ResourceRequest request3(url); | 350 ResourceRequest request3(url); |
| 351 FetchRequest fetchRequest3 = FetchRequest(request3, FetchInitiatorInfo()); | 351 FetchRequest fetchRequest3 = FetchRequest(request3, FetchInitiatorInfo()); |
| 352 Resource* resource3 = fetcher->requestResource( | 352 Resource* resource3 = fetcher->requestResource( |
| 353 fetchRequest3, TestResourceFactory(Resource::Font)); | 353 fetchRequest3, TestResourceFactory(Resource::Font)); |
| 354 ASSERT_TRUE(resource3); | 354 ASSERT_TRUE(resource3); |
| 355 EXPECT_EQ(resource2, resource3); | 355 EXPECT_EQ(resource2, resource3); |
| 356 EXPECT_TRUE(resource3->isCacheValidator()); | 356 EXPECT_TRUE(resource3->isCacheValidator()); |
| 357 EXPECT_TRUE(resource3->stillNeedsLoad()); | 357 EXPECT_TRUE(resource3->stillNeedsLoad()); |
| 358 | 358 |
| 359 // startLoad() can be called from any initiator. Here, call it from the latter
. | 359 // startLoad() can be called from any initiator. Here, call it from the |
| 360 // latter. |
| 360 fetcher->startLoad(resource3); | 361 fetcher->startLoad(resource3); |
| 361 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); | 362 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); |
| 362 EXPECT_TRUE(resource3->isLoaded()); | 363 EXPECT_TRUE(resource3->isLoaded()); |
| 363 EXPECT_FALSE(resource3->errorOccurred()); | 364 EXPECT_FALSE(resource3->errorOccurred()); |
| 364 EXPECT_TRUE(resource2->isLoaded()); | 365 EXPECT_TRUE(resource2->isLoaded()); |
| 365 EXPECT_FALSE(resource2->errorOccurred()); | 366 EXPECT_FALSE(resource2->errorOccurred()); |
| 366 | 367 |
| 367 memoryCache()->remove(resource1); | 368 memoryCache()->remove(resource1); |
| 368 } | 369 } |
| 369 | 370 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 386 class ServeRequestsOnCompleteClient final | 387 class ServeRequestsOnCompleteClient final |
| 387 : public GarbageCollectedFinalized<ServeRequestsOnCompleteClient>, | 388 : public GarbageCollectedFinalized<ServeRequestsOnCompleteClient>, |
| 388 public RawResourceClient { | 389 public RawResourceClient { |
| 389 USING_GARBAGE_COLLECTED_MIXIN(ServeRequestsOnCompleteClient); | 390 USING_GARBAGE_COLLECTED_MIXIN(ServeRequestsOnCompleteClient); |
| 390 | 391 |
| 391 public: | 392 public: |
| 392 void notifyFinished(Resource*) override { | 393 void notifyFinished(Resource*) override { |
| 393 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); | 394 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); |
| 394 } | 395 } |
| 395 | 396 |
| 396 // No callbacks should be received except for the notifyFinished() | 397 // No callbacks should be received except for the notifyFinished() triggered |
| 397 // triggered by ResourceLoader::cancel(). | 398 // by ResourceLoader::cancel(). |
| 398 void dataSent(Resource*, unsigned long long, unsigned long long) override { | 399 void dataSent(Resource*, unsigned long long, unsigned long long) override { |
| 399 ASSERT_TRUE(false); | 400 ASSERT_TRUE(false); |
| 400 } | 401 } |
| 401 void responseReceived(Resource*, | 402 void responseReceived(Resource*, |
| 402 const ResourceResponse&, | 403 const ResourceResponse&, |
| 403 std::unique_ptr<WebDataConsumerHandle>) override { | 404 std::unique_ptr<WebDataConsumerHandle>) override { |
| 404 ASSERT_TRUE(false); | 405 ASSERT_TRUE(false); |
| 405 } | 406 } |
| 406 void setSerializedCachedMetadata(Resource*, const char*, size_t) override { | 407 void setSerializedCachedMetadata(Resource*, const char*, size_t) override { |
| 407 ASSERT_TRUE(false); | 408 ASSERT_TRUE(false); |
| (...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 743 url, WebURLResponse(), ""); | 744 url, WebURLResponse(), ""); |
| 744 Resource* newResource = fetcher->requestResource( | 745 Resource* newResource = fetcher->requestResource( |
| 745 fetchRequest, TestResourceFactory(Resource::Raw)); | 746 fetchRequest, TestResourceFactory(Resource::Raw)); |
| 746 fetcher->stopFetching(); | 747 fetcher->stopFetching(); |
| 747 Platform::current()->getURLLoaderMockFactory()->unregisterURL(url); | 748 Platform::current()->getURLLoaderMockFactory()->unregisterURL(url); |
| 748 | 749 |
| 749 EXPECT_NE(resource, newResource); | 750 EXPECT_NE(resource, newResource); |
| 750 } | 751 } |
| 751 | 752 |
| 752 } // namespace blink | 753 } // namespace blink |
| OLD | NEW |