Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(408)

Side by Side Diff: third_party/WebKit/Source/core/loader/resource/ImageResourceTest.cpp

Issue 2930323003: Show client placeholders for Server LoFi images. (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 533 matching lines...) Expand 10 before | Expand all | Expand 10 after
544 sizeof(kJpegImage)); 544 sizeof(kJpegImage));
545 image_resource->Finish(); 545 image_resource->Finish();
546 EXPECT_FALSE(image_resource->ErrorOccurred()); 546 EXPECT_FALSE(image_resource->ErrorOccurred());
547 ASSERT_TRUE(image_resource->GetContent()->HasImage()); 547 ASSERT_TRUE(image_resource->GetContent()->HasImage());
548 EXPECT_FALSE(image_resource->GetContent()->GetImage()->IsNull()); 548 EXPECT_FALSE(image_resource->GetContent()->GetImage()->IsNull());
549 EXPECT_EQ(2, observer->ImageChangedCount()); 549 EXPECT_EQ(2, observer->ImageChangedCount());
550 EXPECT_EQ(kJpegImageWidth, observer->ImageWidthOnLastImageChanged()); 550 EXPECT_EQ(kJpegImageWidth, observer->ImageWidthOnLastImageChanged());
551 // The observer should have been notified that the image load completed. 551 // The observer should have been notified that the image load completed.
552 EXPECT_TRUE(observer->ImageNotifyFinishedCalled()); 552 EXPECT_TRUE(observer->ImageNotifyFinishedCalled());
553 EXPECT_EQ(kJpegImageWidth, observer->ImageWidthOnImageNotifyFinished()); 553 EXPECT_EQ(kJpegImageWidth, observer->ImageWidthOnImageNotifyFinished());
554 EXPECT_TRUE(image_resource->GetContent()->GetImage()->IsBitmapImage()); 554 EXPECT_FALSE(image_resource->GetContent()->GetImage()->IsBitmapImage());
555 EXPECT_TRUE(image_resource->ShouldShowPlaceholder());
555 EXPECT_EQ(kJpegImageWidth, image_resource->GetContent()->GetImage()->width()); 556 EXPECT_EQ(kJpegImageWidth, image_resource->GetContent()->GetImage()->width());
556 EXPECT_EQ(kJpegImageHeight, 557 EXPECT_EQ(kJpegImageHeight,
557 image_resource->GetContent()->GetImage()->height()); 558 image_resource->GetContent()->GetImage()->height());
558 559
559 // Call reloadIfLoFiOrPlaceholderImage() after the image has finished loading. 560 // Call reloadIfLoFiOrPlaceholderImage() after the image has finished loading.
560 image_resource->ReloadIfLoFiOrPlaceholderImage(fetcher, 561 image_resource->ReloadIfLoFiOrPlaceholderImage(fetcher,
561 Resource::kReloadAlways); 562 Resource::kReloadAlways);
562 563
563 EXPECT_EQ(3, observer->ImageChangedCount()); 564 EXPECT_EQ(3, observer->ImageChangedCount());
564 TestThatReloadIsStartedThenServeReload( 565 TestThatReloadIsStartedThenServeReload(
(...skipping 23 matching lines...) Expand all
588 sizeof(kJpegImage)); 589 sizeof(kJpegImage));
589 image_resource->Finish(); 590 image_resource->Finish();
590 EXPECT_FALSE(image_resource->ErrorOccurred()); 591 EXPECT_FALSE(image_resource->ErrorOccurred());
591 ASSERT_TRUE(image_resource->GetContent()->HasImage()); 592 ASSERT_TRUE(image_resource->GetContent()->HasImage());
592 EXPECT_FALSE(image_resource->GetContent()->GetImage()->IsNull()); 593 EXPECT_FALSE(image_resource->GetContent()->GetImage()->IsNull());
593 EXPECT_EQ(2, observer->ImageChangedCount()); 594 EXPECT_EQ(2, observer->ImageChangedCount());
594 EXPECT_EQ(kJpegImageWidth, observer->ImageWidthOnLastImageChanged()); 595 EXPECT_EQ(kJpegImageWidth, observer->ImageWidthOnLastImageChanged());
595 // The observer should have been notified that the image load completed. 596 // The observer should have been notified that the image load completed.
596 EXPECT_TRUE(observer->ImageNotifyFinishedCalled()); 597 EXPECT_TRUE(observer->ImageNotifyFinishedCalled());
597 EXPECT_EQ(kJpegImageWidth, observer->ImageWidthOnImageNotifyFinished()); 598 EXPECT_EQ(kJpegImageWidth, observer->ImageWidthOnImageNotifyFinished());
598 EXPECT_TRUE(image_resource->GetContent()->GetImage()->IsBitmapImage()); 599 EXPECT_FALSE(image_resource->GetContent()->GetImage()->IsBitmapImage());
600 EXPECT_TRUE(image_resource->ShouldShowPlaceholder());
599 EXPECT_EQ(kJpegImageWidth, image_resource->GetContent()->GetImage()->width()); 601 EXPECT_EQ(kJpegImageWidth, image_resource->GetContent()->GetImage()->width());
600 EXPECT_EQ(kJpegImageHeight, 602 EXPECT_EQ(kJpegImageHeight,
601 image_resource->GetContent()->GetImage()->height()); 603 image_resource->GetContent()->GetImage()->height());
602 604
603 // Call reloadIfLoFiOrPlaceholderImage() after the image has finished loading. 605 // Call reloadIfLoFiOrPlaceholderImage() after the image has finished loading.
604 image_resource->ReloadIfLoFiOrPlaceholderImage(fetcher, 606 image_resource->ReloadIfLoFiOrPlaceholderImage(fetcher,
605 Resource::kReloadAlways); 607 Resource::kReloadAlways);
606 608
607 EXPECT_EQ(3, observer->ImageChangedCount()); 609 EXPECT_EQ(3, observer->ImageChangedCount());
608 TestThatReloadIsStartedThenServeReload( 610 TestThatReloadIsStartedThenServeReload(
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
689 691
690 EXPECT_EQ(3, observer->ImageChangedCount()); 692 EXPECT_EQ(3, observer->ImageChangedCount());
691 693
692 TestThatReloadIsStartedThenServeReload(test_url, image_resource, content, 694 TestThatReloadIsStartedThenServeReload(test_url, image_resource, content,
693 observer.get(), 695 observer.get(),
694 WebCachePolicy::kBypassingCache); 696 WebCachePolicy::kBypassingCache);
695 697
696 GetMemoryCache()->Remove(image_resource); 698 GetMemoryCache()->Remove(image_resource);
697 } 699 }
698 700
699 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderDuringFetch) { 701 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderBeforeResponse) {
700 KURL test_url(kParsedURLString, kTestURL); 702 KURL test_url(kParsedURLString, kTestURL);
701 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); 703 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath());
702 704
705 ResourceRequest request(test_url);
706 request.SetPreviewsState(WebURLRequest::kServerLoFiOn);
707 FetchParameters fetch_params(request);
708 ResourceFetcher* fetcher = CreateFetcher();
709
710 ImageResource* image_resource = ImageResource::Fetch(fetch_params, fetcher);
711 std::unique_ptr<MockImageResourceObserver> observer =
712 MockImageResourceObserver::Create(image_resource->GetContent());
713
714 EXPECT_FALSE(image_resource->ErrorOccurred());
715 EXPECT_TRUE(image_resource->ShouldShowPlaceholder());
716
717 // Call reloadIfLoFiOrPlaceholderImage() while the image is still loading.
718 image_resource->ReloadIfLoFiOrPlaceholderImage(fetcher,
719 Resource::kReloadAlways);
720
721 EXPECT_EQ(1, observer->ImageChangedCount());
722 EXPECT_EQ(0, observer->ImageWidthOnLastImageChanged());
723 // The observer should not have been notified of completion yet, since the
724 // image is still loading.
725 EXPECT_FALSE(observer->ImageNotifyFinishedCalled());
726
727 TestThatReloadIsStartedThenServeReload(
728 test_url, image_resource, image_resource->GetContent(), observer.get(),
729 WebCachePolicy::kBypassingCache);
730 }
731
732 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderDuringResponse) {
733 KURL test_url(kParsedURLString, kTestURL);
734 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath());
735
703 ResourceRequest request(test_url); 736 ResourceRequest request(test_url);
704 request.SetPreviewsState(WebURLRequest::kServerLoFiOn); 737 request.SetPreviewsState(WebURLRequest::kServerLoFiOn);
705 FetchParameters fetch_params(request); 738 FetchParameters fetch_params(request);
706 ResourceFetcher* fetcher = CreateFetcher(); 739 ResourceFetcher* fetcher = CreateFetcher();
707 740
708 ImageResource* image_resource = ImageResource::Fetch(fetch_params, fetcher); 741 ImageResource* image_resource = ImageResource::Fetch(fetch_params, fetcher);
709 std::unique_ptr<MockImageResourceObserver> observer = 742 std::unique_ptr<MockImageResourceObserver> observer =
710 MockImageResourceObserver::Create(image_resource->GetContent()); 743 MockImageResourceObserver::Create(image_resource->GetContent());
711 744
712 // Send the image response. 745 // Send the image response.
746 ResourceResponse resource_response(test_url, "image/jpeg", sizeof(kJpegImage),
747 g_null_atom);
748 resource_response.AddHTTPHeaderField("chrome-proxy-content-transform",
749 "empty-image");
750
713 image_resource->Loader()->DidReceiveResponse( 751 image_resource->Loader()->DidReceiveResponse(
714 WrappedResourceResponse(ResourceResponse( 752 WrappedResourceResponse(resource_response));
715 test_url, "image/jpeg", sizeof(kJpegImage), g_null_atom)));
716 image_resource->Loader()->DidReceiveData( 753 image_resource->Loader()->DidReceiveData(
717 reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage)); 754 reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage));
718 755
719 EXPECT_FALSE(image_resource->ErrorOccurred()); 756 EXPECT_FALSE(image_resource->ErrorOccurred());
720 ASSERT_TRUE(image_resource->GetContent()->HasImage()); 757 ASSERT_TRUE(image_resource->GetContent()->HasImage());
721 EXPECT_FALSE(image_resource->GetContent()->GetImage()->IsNull()); 758 EXPECT_FALSE(image_resource->GetContent()->GetImage()->IsNull());
722 EXPECT_EQ(1, observer->ImageChangedCount()); 759 EXPECT_EQ(1, observer->ImageChangedCount());
723 EXPECT_EQ(kJpegImageWidth, observer->ImageWidthOnLastImageChanged()); 760 EXPECT_EQ(kJpegImageWidth, observer->ImageWidthOnLastImageChanged());
724 EXPECT_FALSE(observer->ImageNotifyFinishedCalled()); 761 EXPECT_FALSE(observer->ImageNotifyFinishedCalled());
725 EXPECT_TRUE(image_resource->GetContent()->GetImage()->IsBitmapImage()); 762 EXPECT_TRUE(image_resource->ShouldShowPlaceholder());
726 EXPECT_EQ(kJpegImageWidth, image_resource->GetContent()->GetImage()->width()); 763 EXPECT_EQ(kJpegImageWidth, image_resource->GetContent()->GetImage()->width());
727 EXPECT_EQ(kJpegImageHeight, 764 EXPECT_EQ(kJpegImageHeight,
728 image_resource->GetContent()->GetImage()->height()); 765 image_resource->GetContent()->GetImage()->height());
729 766
730 // Call reloadIfLoFiOrPlaceholderImage() while the image is still loading. 767 // Call reloadIfLoFiOrPlaceholderImage() while the image is still loading.
731 image_resource->ReloadIfLoFiOrPlaceholderImage(fetcher, 768 image_resource->ReloadIfLoFiOrPlaceholderImage(fetcher,
732 Resource::kReloadAlways); 769 Resource::kReloadAlways);
733 770
734 EXPECT_EQ(2, observer->ImageChangedCount()); 771 EXPECT_EQ(2, observer->ImageChangedCount());
735 EXPECT_EQ(0, observer->ImageWidthOnLastImageChanged()); 772 EXPECT_EQ(0, observer->ImageWidthOnLastImageChanged());
(...skipping 865 matching lines...) Expand 10 before | Expand all | Expand 10 after
1601 ImageResource* image_resource = ImageResource::Create(request); 1638 ImageResource* image_resource = ImageResource::Create(request);
1602 image_resource->SetStatus(ResourceStatus::kPending); 1639 image_resource->SetStatus(ResourceStatus::kPending);
1603 image_resource->NotifyStartLoad(); 1640 image_resource->NotifyStartLoad();
1604 1641
1605 std::unique_ptr<MockImageResourceObserver> observer = 1642 std::unique_ptr<MockImageResourceObserver> observer =
1606 MockImageResourceObserver::Create(image_resource->GetContent()); 1643 MockImageResourceObserver::Create(image_resource->GetContent());
1607 1644
1608 // Send the image response. 1645 // Send the image response.
1609 ResourceResponse resource_response(KURL(), "image/jpeg", sizeof(kJpegImage2), 1646 ResourceResponse resource_response(KURL(), "image/jpeg", sizeof(kJpegImage2),
1610 g_null_atom); 1647 g_null_atom);
1611 resource_response.AddHTTPHeaderField("chrome-proxy", "q=low");
1612 1648
1613 image_resource->ResponseReceived(resource_response, nullptr); 1649 image_resource->ResponseReceived(resource_response, nullptr);
1614 1650
1615 // This is number is sufficiently large amount of bytes necessary for the 1651 // This is number is sufficiently large amount of bytes necessary for the
1616 // image to be created (since the size is known). This was determined by 1652 // image to be created (since the size is known). This was determined by
1617 // appending one byte at a time (with flushes) until the image was decoded. 1653 // appending one byte at a time (with flushes) until the image was decoded.
1618 size_t meaningful_image_size = 280; 1654 size_t meaningful_image_size = 280;
1619 image_resource->AppendData(reinterpret_cast<const char*>(kJpegImage2), 1655 image_resource->AppendData(reinterpret_cast<const char*>(kJpegImage2),
1620 meaningful_image_size); 1656 meaningful_image_size);
1621 size_t bytes_sent = meaningful_image_size; 1657 size_t bytes_sent = meaningful_image_size;
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1672 EXPECT_FALSE(image_resource->GetContent()->GetImage()->IsNull()); 1708 EXPECT_FALSE(image_resource->GetContent()->GetImage()->IsNull());
1673 EXPECT_EQ(5, observer->ImageChangedCount()); 1709 EXPECT_EQ(5, observer->ImageChangedCount());
1674 EXPECT_TRUE(observer->ImageNotifyFinishedCalled()); 1710 EXPECT_TRUE(observer->ImageNotifyFinishedCalled());
1675 EXPECT_TRUE(image_resource->GetContent()->GetImage()->IsBitmapImage()); 1711 EXPECT_TRUE(image_resource->GetContent()->GetImage()->IsBitmapImage());
1676 EXPECT_EQ(50, image_resource->GetContent()->GetImage()->width()); 1712 EXPECT_EQ(50, image_resource->GetContent()->GetImage()->width());
1677 EXPECT_EQ(50, image_resource->GetContent()->GetImage()->height()); 1713 EXPECT_EQ(50, image_resource->GetContent()->GetImage()->height());
1678 1714
1679 WTF::SetTimeFunctionsForTesting(nullptr); 1715 WTF::SetTimeFunctionsForTesting(nullptr);
1680 } 1716 }
1681 1717
1718 TEST(ImageResourceTest, ShowPlaceholderForServerLoFiWithBitAndHeaders) {
1719 KURL test_url(kParsedURLString, kTestURL);
1720 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath());
1721
1722 ResourceRequest request(test_url);
1723 request.SetPreviewsState(WebURLRequest::kServerLoFiOn);
1724 FetchParameters params{request};
1725 ImageResource* image_resource = ImageResource::Fetch(params, CreateFetcher());
1726 EXPECT_EQ(FetchParameters::kDisallowPlaceholder,
1727 params.GetPlaceholderImageRequestType());
1728 EXPECT_EQ(g_null_atom,
1729 image_resource->GetResourceRequest().HttpHeaderField("range"));
1730
1731 EXPECT_TRUE(image_resource->ShouldShowPlaceholder());
1732 std::unique_ptr<MockImageResourceObserver> observer =
1733 MockImageResourceObserver::Create(image_resource->GetContent());
1734
1735 // Send the Server Lo-Fi image response, complete with Server Lo-Fi response
1736 // headers.
1737 ResourceResponse response(test_url, "image/jpeg", sizeof(kJpegImage),
1738 g_null_atom);
1739 response.AddHTTPHeaderField("chrome-proxy-content-transform", "empty-image");
1740
1741 image_resource->Loader()->DidReceiveResponse(
1742 WrappedResourceResponse(response));
1743 image_resource->Loader()->DidReceiveData(
1744 reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage));
1745 image_resource->Loader()->DidFinishLoading(
1746 0.0, sizeof(kJpegImage), sizeof(kJpegImage), sizeof(kJpegImage));
1747
1748 EXPECT_EQ(ResourceStatus::kCached, image_resource->GetStatus());
1749 EXPECT_TRUE(image_resource->ShouldShowPlaceholder());
1750 EXPECT_LT(0, observer->ImageChangedCount());
1751 EXPECT_EQ(kJpegImageWidth, observer->ImageWidthOnLastImageChanged());
1752 EXPECT_TRUE(observer->ImageNotifyFinishedCalled());
1753 EXPECT_EQ(kJpegImageWidth, observer->ImageWidthOnImageNotifyFinished());
1754
1755 ASSERT_TRUE(image_resource->GetContent()->HasImage());
1756 EXPECT_EQ(kJpegImageWidth, image_resource->GetContent()->GetImage()->width());
1757 EXPECT_EQ(kJpegImageHeight,
1758 image_resource->GetContent()->GetImage()->height());
1759 EXPECT_FALSE(image_resource->GetContent()->GetImage()->IsBitmapImage());
1760 }
1761
1762 TEST(ImageResourceTest, DoNotShowPlaceholderForServerLoFiWithoutHeaders) {
1763 KURL test_url(kParsedURLString, kTestURL);
1764 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath());
1765
1766 ResourceRequest request(test_url);
1767 request.SetPreviewsState(WebURLRequest::kServerLoFiOn);
1768 FetchParameters params{request};
1769 ImageResource* image_resource = ImageResource::Fetch(params, CreateFetcher());
1770 EXPECT_EQ(FetchParameters::kDisallowPlaceholder,
1771 params.GetPlaceholderImageRequestType());
1772 EXPECT_EQ(g_null_atom,
1773 image_resource->GetResourceRequest().HttpHeaderField("range"));
1774
1775 EXPECT_TRUE(image_resource->ShouldShowPlaceholder());
1776 std::unique_ptr<MockImageResourceObserver> observer =
1777 MockImageResourceObserver::Create(image_resource->GetContent());
1778
1779 // Send the image response without any Server Lo-Fi response headers.
1780 image_resource->Loader()->DidReceiveResponse(
1781 WrappedResourceResponse(ResourceResponse(
1782 test_url, "image/jpeg", sizeof(kJpegImage), g_null_atom)));
1783 image_resource->Loader()->DidReceiveData(
1784 reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage));
1785 image_resource->Loader()->DidFinishLoading(
1786 0.0, sizeof(kJpegImage), sizeof(kJpegImage), sizeof(kJpegImage));
1787
1788 EXPECT_EQ(WebURLRequest::kPreviewsOff,
1789 image_resource->GetResourceRequest().GetPreviewsState());
1790 EXPECT_FALSE(image_resource->ShouldShowPlaceholder());
1791
1792 EXPECT_EQ(ResourceStatus::kCached, image_resource->GetStatus());
1793 EXPECT_LT(0, observer->ImageChangedCount());
1794 EXPECT_EQ(kJpegImageWidth, observer->ImageWidthOnLastImageChanged());
1795 EXPECT_TRUE(observer->ImageNotifyFinishedCalled());
1796 EXPECT_EQ(kJpegImageWidth, observer->ImageWidthOnImageNotifyFinished());
1797
1798 ASSERT_TRUE(image_resource->GetContent()->HasImage());
1799 EXPECT_EQ(kJpegImageWidth, image_resource->GetContent()->GetImage()->width());
1800 EXPECT_EQ(kJpegImageHeight,
1801 image_resource->GetContent()->GetImage()->height());
1802 EXPECT_TRUE(image_resource->GetContent()->GetImage()->IsBitmapImage());
1803 }
1804
1805 TEST(ImageResourceTest, ShowPlaceholderForServerLoFiWithHeadersButWithoutBit) {
1806 const struct {
1807 const char* header_name;
1808 const char* header_value;
1809 } tests[] = {
1810 // New-style Server Lo-Fi response header.
1811 {"chrome-proxy-content-transform", "empty-image"},
1812 // Legacy Server Lo-Fi response header.
1813 {"chrome-proxy", "q=low"},
1814 };
1815
1816 for (const auto& test : tests) {
1817 KURL test_url(kParsedURLString, kTestURL);
1818 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath());
1819
1820 FetchParameters params{ResourceRequest(test_url)};
1821 ImageResource* image_resource =
1822 ImageResource::Fetch(params, CreateFetcher());
1823 EXPECT_EQ(FetchParameters::kDisallowPlaceholder,
1824 params.GetPlaceholderImageRequestType());
1825 EXPECT_EQ(g_null_atom,
1826 image_resource->GetResourceRequest().HttpHeaderField("range"));
1827
1828 EXPECT_FALSE(image_resource->ShouldShowPlaceholder());
1829 std::unique_ptr<MockImageResourceObserver> observer =
1830 MockImageResourceObserver::Create(image_resource->GetContent());
1831
1832 // Send a Server Lo-Fi image response, complete with Server Lo-Fi response
1833 // headers.
1834 ResourceResponse response(test_url, "image/jpeg", sizeof(kJpegImage),
1835 g_null_atom);
1836 response.AddHTTPHeaderField(test.header_name, test.header_value);
1837
1838 image_resource->Loader()->DidReceiveResponse(
1839 WrappedResourceResponse(response));
1840 image_resource->Loader()->DidReceiveData(
1841 reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage));
1842 image_resource->Loader()->DidFinishLoading(
1843 0.0, sizeof(kJpegImage), sizeof(kJpegImage), sizeof(kJpegImage));
1844
1845 EXPECT_TRUE(image_resource->GetResourceRequest().GetPreviewsState() &
1846 WebURLRequest::kServerLoFiOn);
1847 EXPECT_TRUE(image_resource->ShouldShowPlaceholder());
1848
1849 EXPECT_EQ(ResourceStatus::kCached, image_resource->GetStatus());
1850 EXPECT_LT(0, observer->ImageChangedCount());
1851 EXPECT_EQ(kJpegImageWidth, observer->ImageWidthOnLastImageChanged());
1852 EXPECT_TRUE(observer->ImageNotifyFinishedCalled());
1853 EXPECT_EQ(kJpegImageWidth, observer->ImageWidthOnImageNotifyFinished());
1854
1855 ASSERT_TRUE(image_resource->GetContent()->HasImage());
1856 EXPECT_EQ(kJpegImageWidth,
1857 image_resource->GetContent()->GetImage()->width());
1858 EXPECT_EQ(kJpegImageHeight,
1859 image_resource->GetContent()->GetImage()->height());
1860 EXPECT_FALSE(image_resource->GetContent()->GetImage()->IsBitmapImage());
1861 }
1862 }
1863
1682 } // namespace 1864 } // namespace
1683 } // namespace blink 1865 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698