Chromium Code Reviews| 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 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 183 image_resource->NotifyStartLoad(); | 183 image_resource->NotifyStartLoad(); |
| 184 image_resource->ResponseReceived(response, nullptr); | 184 image_resource->ResponseReceived(response, nullptr); |
| 185 image_resource->AppendData(data, data_size); | 185 image_resource->AppendData(data, data_size); |
| 186 image_resource->Finish(); | 186 image_resource->Finish(); |
| 187 } | 187 } |
| 188 | 188 |
| 189 void TestThatReloadIsStartedThenServeReload(const KURL& test_url, | 189 void TestThatReloadIsStartedThenServeReload(const KURL& test_url, |
| 190 ImageResource* image_resource, | 190 ImageResource* image_resource, |
| 191 ImageResourceContent* content, | 191 ImageResourceContent* content, |
| 192 MockImageResourceObserver* observer, | 192 MockImageResourceObserver* observer, |
| 193 WebCachePolicy policy_for_reload) { | 193 WebCachePolicy policy_for_reload, |
| 194 bool placeholder_before_reload) { | |
| 194 const char* data = reinterpret_cast<const char*>(kJpegImage2); | 195 const char* data = reinterpret_cast<const char*>(kJpegImage2); |
| 195 constexpr size_t kDataLength = sizeof(kJpegImage2); | 196 constexpr size_t kDataLength = sizeof(kJpegImage2); |
| 196 constexpr int kImageWidth = 50; | 197 constexpr int kImageWidth = 50; |
| 197 constexpr int kImageHeight = 50; | 198 constexpr int kImageHeight = 50; |
| 198 | 199 |
| 199 // Checks that |imageResource| and |content| are ready for non-placeholder | 200 // Checks that |imageResource| and |content| are ready for non-placeholder |
| 200 // reloading. | 201 // reloading. |
| 201 EXPECT_EQ(ResourceStatus::kPending, image_resource->GetStatus()); | 202 EXPECT_EQ(ResourceStatus::kPending, image_resource->GetStatus()); |
| 202 EXPECT_FALSE(image_resource->ResourceBuffer()); | 203 EXPECT_FALSE(image_resource->ResourceBuffer()); |
| 203 EXPECT_FALSE(image_resource->ShouldShowPlaceholder()); | 204 EXPECT_EQ(placeholder_before_reload, image_resource->ShouldShowPlaceholder()); |
| 204 EXPECT_EQ(g_null_atom, | 205 EXPECT_EQ(g_null_atom, |
| 205 image_resource->GetResourceRequest().HttpHeaderField("range")); | 206 image_resource->GetResourceRequest().HttpHeaderField("range")); |
| 206 EXPECT_EQ(policy_for_reload, | 207 EXPECT_EQ(policy_for_reload, |
| 207 image_resource->GetResourceRequest().GetCachePolicy()); | 208 image_resource->GetResourceRequest().GetCachePolicy()); |
| 208 EXPECT_EQ(content, image_resource->GetContent()); | 209 EXPECT_EQ(content, image_resource->GetContent()); |
| 209 EXPECT_FALSE(content->HasImage()); | 210 EXPECT_FALSE(content->HasImage()); |
| 210 | 211 |
| 211 // Checks |observer| before reloading. | 212 // Checks |observer| before reloading. |
| 212 const int original_image_changed_count = observer->ImageChangedCount(); | 213 const int original_image_changed_count = observer->ImageChangedCount(); |
| 213 const bool already_notified_finish = observer->ImageNotifyFinishedCalled(); | 214 const bool already_notified_finish = observer->ImageNotifyFinishedCalled(); |
| (...skipping 22 matching lines...) Expand all Loading... | |
| 236 // response is served, then imageNotifyFinished() should be called with | 237 // response is served, then imageNotifyFinished() should be called with |
| 237 // the new image (of width |imageWidth|). | 238 // the new image (of width |imageWidth|). |
| 238 EXPECT_EQ(kImageWidth, observer->ImageWidthOnImageNotifyFinished()); | 239 EXPECT_EQ(kImageWidth, observer->ImageWidthOnImageNotifyFinished()); |
| 239 } | 240 } |
| 240 | 241 |
| 241 // Checks |content| receives the correct image. | 242 // Checks |content| receives the correct image. |
| 242 EXPECT_TRUE(content->HasImage()); | 243 EXPECT_TRUE(content->HasImage()); |
| 243 EXPECT_FALSE(content->GetImage()->IsNull()); | 244 EXPECT_FALSE(content->GetImage()->IsNull()); |
| 244 EXPECT_EQ(kImageWidth, content->GetImage()->width()); | 245 EXPECT_EQ(kImageWidth, content->GetImage()->width()); |
| 245 EXPECT_EQ(kImageHeight, content->GetImage()->height()); | 246 EXPECT_EQ(kImageHeight, content->GetImage()->height()); |
| 246 EXPECT_TRUE(content->GetImage()->IsBitmapImage()); | 247 // EXPECT_TRUE(content->GetImage()->IsBitmapImage()); |
|
ojan
2017/06/24 00:10:34
We don't typically check in commented out code. Di
dcheng
2017/06/24 00:26:47
+1, please uncomment this or delete it.
| |
| 247 EXPECT_FALSE(content->GetImage()->PaintImageForCurrentFrame().is_multipart()); | 248 EXPECT_FALSE(content->GetImage()->PaintImageForCurrentFrame().is_multipart()); |
| 248 } | 249 } |
| 249 | 250 |
| 250 AtomicString BuildContentRange(size_t range_length, size_t total_length) { | 251 AtomicString BuildContentRange(size_t range_length, size_t total_length) { |
| 251 return AtomicString(String("bytes 0-" + String::Number(range_length - 1) + | 252 return AtomicString(String("bytes 0-" + String::Number(range_length - 1) + |
| 252 "/" + String::Number(total_length))); | 253 "/" + String::Number(total_length))); |
| 253 } | 254 } |
| 254 | 255 |
| 255 void TestThatIsPlaceholderRequestAndServeResponse( | 256 void TestThatIsPlaceholderRequestAndServeResponse( |
| 256 const KURL& url, | 257 const KURL& url, |
| (...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 592 EXPECT_EQ(kJpegImageHeight, | 593 EXPECT_EQ(kJpegImageHeight, |
| 593 image_resource->GetContent()->GetImage()->height()); | 594 image_resource->GetContent()->GetImage()->height()); |
| 594 | 595 |
| 595 // Call reloadIfLoFiOrPlaceholderImage() after the image has finished loading. | 596 // Call reloadIfLoFiOrPlaceholderImage() after the image has finished loading. |
| 596 image_resource->ReloadIfLoFiOrPlaceholderImage(fetcher, | 597 image_resource->ReloadIfLoFiOrPlaceholderImage(fetcher, |
| 597 Resource::kReloadAlways); | 598 Resource::kReloadAlways); |
| 598 | 599 |
| 599 EXPECT_EQ(3, observer->ImageChangedCount()); | 600 EXPECT_EQ(3, observer->ImageChangedCount()); |
| 600 TestThatReloadIsStartedThenServeReload( | 601 TestThatReloadIsStartedThenServeReload( |
| 601 test_url, image_resource, image_resource->GetContent(), observer.get(), | 602 test_url, image_resource, image_resource->GetContent(), observer.get(), |
| 602 WebCachePolicy::kBypassingCache); | 603 WebCachePolicy::kBypassingCache, false); |
| 603 } | 604 } |
| 604 | 605 |
| 605 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderAfterFinishedWithOldHeaders) { | 606 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderAfterFinishedWithOldHeaders) { |
| 606 KURL test_url(kParsedURLString, kTestURL); | 607 KURL test_url(kParsedURLString, kTestURL); |
| 607 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); | 608 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); |
| 608 ImageResource* image_resource = ImageResource::CreateForTest(test_url); | 609 ImageResource* image_resource = ImageResource::CreateForTest(test_url); |
| 609 image_resource->SetStatus(ResourceStatus::kPending); | 610 image_resource->SetStatus(ResourceStatus::kPending); |
| 610 image_resource->NotifyStartLoad(); | 611 image_resource->NotifyStartLoad(); |
| 611 | 612 |
| 612 std::unique_ptr<MockImageResourceObserver> observer = | 613 std::unique_ptr<MockImageResourceObserver> observer = |
| (...skipping 22 matching lines...) Expand all Loading... | |
| 635 EXPECT_EQ(kJpegImageHeight, | 636 EXPECT_EQ(kJpegImageHeight, |
| 636 image_resource->GetContent()->GetImage()->height()); | 637 image_resource->GetContent()->GetImage()->height()); |
| 637 | 638 |
| 638 // Call reloadIfLoFiOrPlaceholderImage() after the image has finished loading. | 639 // Call reloadIfLoFiOrPlaceholderImage() after the image has finished loading. |
| 639 image_resource->ReloadIfLoFiOrPlaceholderImage(fetcher, | 640 image_resource->ReloadIfLoFiOrPlaceholderImage(fetcher, |
| 640 Resource::kReloadAlways); | 641 Resource::kReloadAlways); |
| 641 | 642 |
| 642 EXPECT_EQ(3, observer->ImageChangedCount()); | 643 EXPECT_EQ(3, observer->ImageChangedCount()); |
| 643 TestThatReloadIsStartedThenServeReload( | 644 TestThatReloadIsStartedThenServeReload( |
| 644 test_url, image_resource, image_resource->GetContent(), observer.get(), | 645 test_url, image_resource, image_resource->GetContent(), observer.get(), |
| 645 WebCachePolicy::kBypassingCache); | 646 WebCachePolicy::kBypassingCache, false); |
| 646 } | 647 } |
| 647 | 648 |
| 648 TEST(ImageResourceTest, | 649 TEST(ImageResourceTest, |
| 649 ReloadIfLoFiOrPlaceholderAfterFinishedWithoutLoFiHeaders) { | 650 ReloadIfLoFiOrPlaceholderAfterFinishedWithoutLoFiHeaders) { |
| 650 KURL test_url(kParsedURLString, kTestURL); | 651 KURL test_url(kParsedURLString, kTestURL); |
| 651 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); | 652 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); |
| 652 ResourceRequest request(test_url); | 653 ResourceRequest request(test_url); |
| 653 request.SetPreviewsState(WebURLRequest::kServerLoFiOn); | 654 request.SetPreviewsState(WebURLRequest::kServerLoFiOn); |
| 654 request.SetFetchCredentialsMode(WebURLRequest::kFetchCredentialsModeOmit); | 655 request.SetFetchCredentialsMode(WebURLRequest::kFetchCredentialsModeOmit); |
| 655 ImageResource* image_resource = ImageResource::Create(request); | 656 ImageResource* image_resource = ImageResource::Create(request); |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 718 image_resource->Loader()->DidFinishLoading( | 719 image_resource->Loader()->DidFinishLoading( |
| 719 0.0, sizeof(kJpegImage), sizeof(kJpegImage), sizeof(kJpegImage)); | 720 0.0, sizeof(kJpegImage), sizeof(kJpegImage), sizeof(kJpegImage)); |
| 720 | 721 |
| 721 EXPECT_TRUE(observer->ImageNotifyFinishedCalled()); | 722 EXPECT_TRUE(observer->ImageNotifyFinishedCalled()); |
| 722 EXPECT_EQ(image_resource, fetcher->CachedResource(test_url)); | 723 EXPECT_EQ(image_resource, fetcher->CachedResource(test_url)); |
| 723 | 724 |
| 724 fetcher->ReloadLoFiImages(); | 725 fetcher->ReloadLoFiImages(); |
| 725 | 726 |
| 726 EXPECT_EQ(3, observer->ImageChangedCount()); | 727 EXPECT_EQ(3, observer->ImageChangedCount()); |
| 727 | 728 |
| 728 TestThatReloadIsStartedThenServeReload(test_url, image_resource, content, | 729 TestThatReloadIsStartedThenServeReload( |
| 729 observer.get(), | 730 test_url, image_resource, content, observer.get(), |
| 730 WebCachePolicy::kBypassingCache); | 731 WebCachePolicy::kBypassingCache, false); |
| 731 | 732 |
| 732 GetMemoryCache()->Remove(image_resource); | 733 GetMemoryCache()->Remove(image_resource); |
| 733 } | 734 } |
| 734 | 735 |
| 735 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderDuringFetch) { | 736 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderDuringFetch) { |
| 736 KURL test_url(kParsedURLString, kTestURL); | 737 KURL test_url(kParsedURLString, kTestURL); |
| 737 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); | 738 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); |
| 738 | 739 |
| 739 ResourceRequest request(test_url); | 740 ResourceRequest request(test_url); |
| 740 request.SetPreviewsState(WebURLRequest::kServerLoFiOn); | 741 request.SetPreviewsState(WebURLRequest::kServerLoFiOn); |
| (...skipping 27 matching lines...) Expand all Loading... | |
| 768 Resource::kReloadAlways); | 769 Resource::kReloadAlways); |
| 769 | 770 |
| 770 EXPECT_EQ(2, observer->ImageChangedCount()); | 771 EXPECT_EQ(2, observer->ImageChangedCount()); |
| 771 EXPECT_EQ(0, observer->ImageWidthOnLastImageChanged()); | 772 EXPECT_EQ(0, observer->ImageWidthOnLastImageChanged()); |
| 772 // The observer should not have been notified of completion yet, since the | 773 // The observer should not have been notified of completion yet, since the |
| 773 // image is still loading. | 774 // image is still loading. |
| 774 EXPECT_FALSE(observer->ImageNotifyFinishedCalled()); | 775 EXPECT_FALSE(observer->ImageNotifyFinishedCalled()); |
| 775 | 776 |
| 776 TestThatReloadIsStartedThenServeReload( | 777 TestThatReloadIsStartedThenServeReload( |
| 777 test_url, image_resource, image_resource->GetContent(), observer.get(), | 778 test_url, image_resource, image_resource->GetContent(), observer.get(), |
| 778 WebCachePolicy::kBypassingCache); | 779 WebCachePolicy::kBypassingCache, false); |
| 779 } | 780 } |
| 780 | 781 |
| 781 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderForPlaceholder) { | 782 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderForPlaceholder) { |
| 782 KURL test_url(kParsedURLString, kTestURL); | 783 KURL test_url(kParsedURLString, kTestURL); |
| 783 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); | 784 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); |
| 784 | 785 |
| 785 ResourceFetcher* fetcher = CreateFetcher(); | 786 ResourceFetcher* fetcher = CreateFetcher(); |
| 786 FetchParameters params{ResourceRequest(test_url)}; | 787 FetchParameters params{ResourceRequest(test_url)}; |
| 787 params.SetAllowImagePlaceholder(); | 788 params.SetAllowImagePlaceholder(); |
| 788 ImageResource* image_resource = ImageResource::Fetch(params, fetcher); | 789 ImageResource* image_resource = ImageResource::Fetch(params, fetcher); |
| 789 EXPECT_EQ(FetchParameters::kAllowPlaceholder, | 790 EXPECT_EQ(FetchParameters::kAllowPlaceholder, |
| 790 params.GetPlaceholderImageRequestType()); | 791 params.GetPlaceholderImageRequestType()); |
| 791 std::unique_ptr<MockImageResourceObserver> observer = | 792 std::unique_ptr<MockImageResourceObserver> observer = |
| 792 MockImageResourceObserver::Create(image_resource->GetContent()); | 793 MockImageResourceObserver::Create(image_resource->GetContent()); |
| 793 | 794 |
| 794 TestThatIsPlaceholderRequestAndServeResponse(test_url, image_resource, | 795 TestThatIsPlaceholderRequestAndServeResponse(test_url, image_resource, |
| 795 observer.get()); | 796 observer.get()); |
| 796 | 797 |
| 797 image_resource->ReloadIfLoFiOrPlaceholderImage(fetcher, | 798 image_resource->ReloadIfLoFiOrPlaceholderImage(fetcher, |
| 798 Resource::kReloadAlways); | 799 Resource::kReloadAlways); |
| 799 | 800 |
| 800 TestThatReloadIsStartedThenServeReload( | 801 TestThatReloadIsStartedThenServeReload( |
| 801 test_url, image_resource, image_resource->GetContent(), observer.get(), | 802 test_url, image_resource, image_resource->GetContent(), observer.get(), |
| 802 WebCachePolicy::kBypassingCache); | 803 WebCachePolicy::kBypassingCache, false); |
| 803 } | 804 } |
| 804 | 805 |
| 805 TEST(ImageResourceTest, SVGImage) { | 806 TEST(ImageResourceTest, SVGImage) { |
| 806 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo"); | 807 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo"); |
| 807 ImageResource* image_resource = ImageResource::CreateForTest(url); | 808 ImageResource* image_resource = ImageResource::CreateForTest(url); |
| 808 std::unique_ptr<MockImageResourceObserver> observer = | 809 std::unique_ptr<MockImageResourceObserver> observer = |
| 809 MockImageResourceObserver::Create(image_resource->GetContent()); | 810 MockImageResourceObserver::Create(image_resource->GetContent()); |
| 810 | 811 |
| 811 ReceiveResponse(image_resource, url, "image/svg+xml", kSvgImage, | 812 ReceiveResponse(image_resource, url, "image/svg+xml", kSvgImage, |
| 812 strlen(kSvgImage)); | 813 strlen(kSvgImage)); |
| (...skipping 508 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1321 image_resource->Loader()->DidReceiveResponse( | 1322 image_resource->Loader()->DidReceiveResponse( |
| 1322 WrappedResourceResponse(bad_response)); | 1323 WrappedResourceResponse(bad_response)); |
| 1323 | 1324 |
| 1324 EXPECT_EQ(0, observer->ImageChangedCount()); | 1325 EXPECT_EQ(0, observer->ImageChangedCount()); |
| 1325 | 1326 |
| 1326 image_resource->Loader()->DidReceiveData(kBadData, sizeof(kBadData)); | 1327 image_resource->Loader()->DidReceiveData(kBadData, sizeof(kBadData)); |
| 1327 | 1328 |
| 1328 // The dimensions could not be extracted, so the full original image should be | 1329 // The dimensions could not be extracted, so the full original image should be |
| 1329 // loading. | 1330 // loading. |
| 1330 EXPECT_FALSE(observer->ImageNotifyFinishedCalled()); | 1331 EXPECT_FALSE(observer->ImageNotifyFinishedCalled()); |
| 1332 EXPECT_EQ(2, observer->ImageChangedCount()); | |
| 1333 EXPECT_FALSE(image_resource->ShouldShowPlaceholder()); | |
| 1334 | |
| 1335 TestThatReloadIsStartedThenServeReload( | |
| 1336 test_url, image_resource, image_resource->GetContent(), observer.get(), | |
| 1337 WebCachePolicy::kBypassingCache, false); | |
| 1338 } | |
| 1339 | |
| 1340 TEST(ImageResourceTest, FetchAllowPlaceholderUnsuccessfulClientLoFi) { | |
| 1341 KURL test_url(kParsedURLString, kTestURL); | |
| 1342 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); | |
| 1343 | |
| 1344 ResourceRequest request = ResourceRequest(test_url); | |
| 1345 request.SetPreviewsState(WebURLRequest::kClientLoFiOn); | |
| 1346 FetchParameters params{request}; | |
| 1347 params.SetAllowImagePlaceholder(); | |
| 1348 ImageResource* image_resource = ImageResource::Fetch(params, CreateFetcher()); | |
| 1349 EXPECT_EQ(FetchParameters::kAllowPlaceholder, | |
| 1350 params.GetPlaceholderImageRequestType()); | |
| 1351 EXPECT_EQ("bytes=0-2047", | |
| 1352 image_resource->GetResourceRequest().HttpHeaderField("range")); | |
| 1353 EXPECT_TRUE(image_resource->ShouldShowPlaceholder()); | |
| 1354 std::unique_ptr<MockImageResourceObserver> observer = | |
| 1355 MockImageResourceObserver::Create(image_resource->GetContent()); | |
| 1356 | |
| 1357 const char kBadData[] = "notanimageresponse"; | |
| 1358 | |
| 1359 ResourceResponse bad_response(test_url, "image/jpeg", sizeof(kBadData), | |
| 1360 g_null_atom); | |
| 1361 bad_response.SetHTTPStatusCode(206); | |
| 1362 bad_response.SetHTTPHeaderField( | |
| 1363 "content-range", BuildContentRange(sizeof(kBadData), sizeof(kJpegImage))); | |
| 1364 | |
| 1365 image_resource->Loader()->DidReceiveResponse( | |
| 1366 WrappedResourceResponse(bad_response)); | |
| 1367 | |
| 1368 EXPECT_EQ(0, observer->ImageChangedCount()); | |
| 1369 | |
| 1370 image_resource->Loader()->DidReceiveData(kBadData, sizeof(kBadData)); | |
| 1371 | |
| 1372 // The dimensions could not be extracted, so the full original image should be | |
| 1373 // loading. | |
| 1374 EXPECT_FALSE(observer->ImageNotifyFinishedCalled()); | |
| 1331 EXPECT_EQ(2, observer->ImageChangedCount()); | 1375 EXPECT_EQ(2, observer->ImageChangedCount()); |
| 1332 | 1376 |
| 1333 TestThatReloadIsStartedThenServeReload( | 1377 TestThatReloadIsStartedThenServeReload( |
| 1334 test_url, image_resource, image_resource->GetContent(), observer.get(), | 1378 test_url, image_resource, image_resource->GetContent(), observer.get(), |
| 1335 WebCachePolicy::kBypassingCache); | 1379 WebCachePolicy::kBypassingCache, true); |
| 1380 | |
| 1381 EXPECT_FALSE(image_resource->GetContent()->GetImage()->IsBitmapImage()); | |
| 1382 EXPECT_TRUE(image_resource->ShouldShowPlaceholder()); | |
| 1336 } | 1383 } |
| 1337 | 1384 |
| 1338 TEST(ImageResourceTest, FetchAllowPlaceholderPartialContentWithoutDimensions) { | 1385 TEST(ImageResourceTest, FetchAllowPlaceholderPartialContentWithoutDimensions) { |
| 1339 const struct { | 1386 const struct { |
| 1340 WebURLRequest::PreviewsState initial_previews_state; | 1387 WebURLRequest::PreviewsState initial_previews_state; |
| 1341 WebURLRequest::PreviewsState expected_reload_previews_state; | 1388 WebURLRequest::PreviewsState expected_reload_previews_state; |
| 1389 bool placeholder_before_reload; | |
| 1390 bool placeholder_after_reload; | |
| 1342 } tests[] = { | 1391 } tests[] = { |
| 1343 {WebURLRequest::kPreviewsUnspecified, | 1392 {WebURLRequest::kPreviewsUnspecified, WebURLRequest::kPreviewsNoTransform, |
| 1344 WebURLRequest::kPreviewsNoTransform}, | 1393 false}, |
| 1345 {WebURLRequest::kClientLoFiOn, WebURLRequest::kPreviewsNoTransform | | 1394 {WebURLRequest::kClientLoFiOn, |
| 1346 WebURLRequest::kClientLoFiAutoReload}, | 1395 WebURLRequest::kPreviewsNoTransform | |
| 1396 WebURLRequest::kClientLoFiAutoReload, | |
| 1397 true}, | |
| 1347 }; | 1398 }; |
| 1348 | 1399 |
| 1349 for (const auto& test : tests) { | 1400 for (const auto& test : tests) { |
| 1350 KURL test_url(kParsedURLString, kTestURL); | 1401 KURL test_url(kParsedURLString, kTestURL); |
| 1351 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); | 1402 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); |
| 1352 | 1403 |
| 1353 ResourceRequest resource_request(test_url); | 1404 ResourceRequest resource_request(test_url); |
| 1354 resource_request.SetPreviewsState(test.initial_previews_state); | 1405 resource_request.SetPreviewsState(test.initial_previews_state); |
| 1355 FetchParameters params(resource_request); | 1406 FetchParameters params(resource_request); |
| 1356 | 1407 |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 1387 image_resource->Loader()->DidFinishLoading( | 1438 image_resource->Loader()->DidFinishLoading( |
| 1388 0.0, kJpegImageSubrangeWithoutDimensionsLength, | 1439 0.0, kJpegImageSubrangeWithoutDimensionsLength, |
| 1389 kJpegImageSubrangeWithoutDimensionsLength, | 1440 kJpegImageSubrangeWithoutDimensionsLength, |
| 1390 kJpegImageSubrangeWithoutDimensionsLength); | 1441 kJpegImageSubrangeWithoutDimensionsLength); |
| 1391 | 1442 |
| 1392 EXPECT_FALSE(observer->ImageNotifyFinishedCalled()); | 1443 EXPECT_FALSE(observer->ImageNotifyFinishedCalled()); |
| 1393 EXPECT_EQ(2, observer->ImageChangedCount()); | 1444 EXPECT_EQ(2, observer->ImageChangedCount()); |
| 1394 | 1445 |
| 1395 TestThatReloadIsStartedThenServeReload( | 1446 TestThatReloadIsStartedThenServeReload( |
| 1396 test_url, image_resource, image_resource->GetContent(), observer.get(), | 1447 test_url, image_resource, image_resource->GetContent(), observer.get(), |
| 1397 WebCachePolicy::kBypassingCache); | 1448 WebCachePolicy::kBypassingCache, test.placeholder_before_reload); |
| 1398 | 1449 |
| 1399 EXPECT_EQ(test.expected_reload_previews_state, | 1450 EXPECT_EQ(test.expected_reload_previews_state, |
| 1400 image_resource->GetResourceRequest().GetPreviewsState()); | 1451 image_resource->GetResourceRequest().GetPreviewsState()); |
| 1401 } | 1452 } |
| 1402 } | 1453 } |
| 1403 | 1454 |
| 1404 TEST(ImageResourceTest, FetchAllowPlaceholderThenDisallowPlaceholder) { | 1455 TEST(ImageResourceTest, FetchAllowPlaceholderThenDisallowPlaceholder) { |
| 1405 KURL test_url(kParsedURLString, kTestURL); | 1456 KURL test_url(kParsedURLString, kTestURL); |
| 1406 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); | 1457 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); |
| 1407 | 1458 |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1617 WrappedResourceResponse(response)); | 1668 WrappedResourceResponse(response)); |
| 1618 image_resource->Loader()->DidReceiveData(kBadImageData, | 1669 image_resource->Loader()->DidReceiveData(kBadImageData, |
| 1619 sizeof(kBadImageData)); | 1670 sizeof(kBadImageData)); |
| 1620 | 1671 |
| 1621 EXPECT_FALSE(observer->ImageNotifyFinishedCalled()); | 1672 EXPECT_FALSE(observer->ImageNotifyFinishedCalled()); |
| 1622 | 1673 |
| 1623 // The dimensions could not be extracted, and the response code was a 4xx | 1674 // The dimensions could not be extracted, and the response code was a 4xx |
| 1624 // error, so the full original image should be loading. | 1675 // error, so the full original image should be loading. |
| 1625 TestThatReloadIsStartedThenServeReload( | 1676 TestThatReloadIsStartedThenServeReload( |
| 1626 test_url, image_resource, image_resource->GetContent(), observer.get(), | 1677 test_url, image_resource, image_resource->GetContent(), observer.get(), |
| 1627 WebCachePolicy::kBypassingCache); | 1678 WebCachePolicy::kBypassingCache, false); |
| 1628 } | 1679 } |
| 1629 } | 1680 } |
| 1630 | 1681 |
| 1631 TEST(ImageResourceTest, PeriodicFlushTest) { | 1682 TEST(ImageResourceTest, PeriodicFlushTest) { |
| 1632 ScopedTestingPlatformSupport<TestingPlatformSupportWithMockScheduler> | 1683 ScopedTestingPlatformSupport<TestingPlatformSupportWithMockScheduler> |
| 1633 platform; | 1684 platform; |
| 1634 KURL test_url(kParsedURLString, kTestURL); | 1685 KURL test_url(kParsedURLString, kTestURL); |
| 1635 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); | 1686 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); |
| 1636 ImageResource* image_resource = ImageResource::CreateForTest(test_url); | 1687 ImageResource* image_resource = ImageResource::CreateForTest(test_url); |
| 1637 image_resource->SetStatus(ResourceStatus::kPending); | 1688 image_resource->SetStatus(ResourceStatus::kPending); |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1709 EXPECT_TRUE(observer->ImageNotifyFinishedCalled()); | 1760 EXPECT_TRUE(observer->ImageNotifyFinishedCalled()); |
| 1710 EXPECT_TRUE(image_resource->GetContent()->GetImage()->IsBitmapImage()); | 1761 EXPECT_TRUE(image_resource->GetContent()->GetImage()->IsBitmapImage()); |
| 1711 EXPECT_EQ(50, image_resource->GetContent()->GetImage()->width()); | 1762 EXPECT_EQ(50, image_resource->GetContent()->GetImage()->width()); |
| 1712 EXPECT_EQ(50, image_resource->GetContent()->GetImage()->height()); | 1763 EXPECT_EQ(50, image_resource->GetContent()->GetImage()->height()); |
| 1713 | 1764 |
| 1714 WTF::SetTimeFunctionsForTesting(nullptr); | 1765 WTF::SetTimeFunctionsForTesting(nullptr); |
| 1715 } | 1766 } |
| 1716 | 1767 |
| 1717 } // namespace | 1768 } // namespace |
| 1718 } // namespace blink | 1769 } // namespace blink |
| OLD | NEW |