| 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 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 replaceMemoryCacheForTesting(m_globalMemoryCache.release()); | 74 replaceMemoryCacheForTesting(m_globalMemoryCache.release()); |
| 75 } | 75 } |
| 76 | 76 |
| 77 RefPtr<SkImage> m_image, m_image2; | 77 RefPtr<SkImage> m_image, m_image2; |
| 78 Persistent<MemoryCache> m_globalMemoryCache; | 78 Persistent<MemoryCache> m_globalMemoryCache; |
| 79 }; | 79 }; |
| 80 | 80 |
| 81 TEST_F(ImageBitmapTest, ImageResourceConsistency) | 81 TEST_F(ImageBitmapTest, ImageResourceConsistency) |
| 82 { | 82 { |
| 83 const ImageBitmapOptions defaultOptions; | 83 const ImageBitmapOptions defaultOptions; |
| 84 RefPtrWillBeRawPtr<HTMLImageElement> imageElement = HTMLImageElement::create
(*Document::create().get()); | 84 RawPtr<HTMLImageElement> imageElement = HTMLImageElement::create(*Document::
create().get()); |
| 85 RefPtrWillBeRawPtr<ImageResource> image = ImageResource::create(StaticBitmap
Image::create(m_image).get()); | 85 RawPtr<ImageResource> image = ImageResource::create(StaticBitmapImage::creat
e(m_image).get()); |
| 86 imageElement->setImageResource(image.get()); | 86 imageElement->setImageResource(image.get()); |
| 87 | 87 |
| 88 RefPtrWillBeRawPtr<ImageBitmap> imageBitmapNoCrop = ImageBitmap::create(imag
eElement.get(), | 88 RawPtr<ImageBitmap> imageBitmapNoCrop = ImageBitmap::create(imageElement.get
(), |
| 89 IntRect(0, 0, m_image->width(), m_image->height()), | 89 IntRect(0, 0, m_image->width(), m_image->height()), |
| 90 &(imageElement->document()), defaultOptions); | 90 &(imageElement->document()), defaultOptions); |
| 91 RefPtrWillBeRawPtr<ImageBitmap> imageBitmapInteriorCrop = ImageBitmap::creat
e(imageElement.get(), | 91 RawPtr<ImageBitmap> imageBitmapInteriorCrop = ImageBitmap::create(imageEleme
nt.get(), |
| 92 IntRect(m_image->width() / 2, m_image->height() / 2, m_image->width() /
2, m_image->height() / 2), | 92 IntRect(m_image->width() / 2, m_image->height() / 2, m_image->width() /
2, m_image->height() / 2), |
| 93 &(imageElement->document()), defaultOptions); | 93 &(imageElement->document()), defaultOptions); |
| 94 RefPtrWillBeRawPtr<ImageBitmap> imageBitmapExteriorCrop = ImageBitmap::creat
e(imageElement.get(), | 94 RawPtr<ImageBitmap> imageBitmapExteriorCrop = ImageBitmap::create(imageEleme
nt.get(), |
| 95 IntRect(-m_image->width() / 2, -m_image->height() / 2, m_image->width(),
m_image->height()), | 95 IntRect(-m_image->width() / 2, -m_image->height() / 2, m_image->width(),
m_image->height()), |
| 96 &(imageElement->document()), defaultOptions); | 96 &(imageElement->document()), defaultOptions); |
| 97 RefPtrWillBeRawPtr<ImageBitmap> imageBitmapOutsideCrop = ImageBitmap::create
(imageElement.get(), | 97 RawPtr<ImageBitmap> imageBitmapOutsideCrop = ImageBitmap::create(imageElemen
t.get(), |
| 98 IntRect(-m_image->width(), -m_image->height(), m_image->width(), m_image
->height()), | 98 IntRect(-m_image->width(), -m_image->height(), m_image->width(), m_image
->height()), |
| 99 &(imageElement->document()), defaultOptions); | 99 &(imageElement->document()), defaultOptions); |
| 100 | 100 |
| 101 ASSERT_EQ(imageBitmapNoCrop->bitmapImage()->imageForCurrentFrame(), imageEle
ment->cachedImage()->image()->imageForCurrentFrame()); | 101 ASSERT_EQ(imageBitmapNoCrop->bitmapImage()->imageForCurrentFrame(), imageEle
ment->cachedImage()->image()->imageForCurrentFrame()); |
| 102 ASSERT_NE(imageBitmapInteriorCrop->bitmapImage()->imageForCurrentFrame(), im
ageElement->cachedImage()->image()->imageForCurrentFrame()); | 102 ASSERT_NE(imageBitmapInteriorCrop->bitmapImage()->imageForCurrentFrame(), im
ageElement->cachedImage()->image()->imageForCurrentFrame()); |
| 103 ASSERT_NE(imageBitmapExteriorCrop->bitmapImage()->imageForCurrentFrame(), im
ageElement->cachedImage()->image()->imageForCurrentFrame()); | 103 ASSERT_NE(imageBitmapExteriorCrop->bitmapImage()->imageForCurrentFrame(), im
ageElement->cachedImage()->image()->imageForCurrentFrame()); |
| 104 | 104 |
| 105 StaticBitmapImage* emptyImage = imageBitmapOutsideCrop->bitmapImage(); | 105 StaticBitmapImage* emptyImage = imageBitmapOutsideCrop->bitmapImage(); |
| 106 ASSERT_NE(emptyImage->imageForCurrentFrame(), imageElement->cachedImage()->i
mage()->imageForCurrentFrame()); | 106 ASSERT_NE(emptyImage->imageForCurrentFrame(), imageElement->cachedImage()->i
mage()->imageForCurrentFrame()); |
| 107 } | 107 } |
| 108 | 108 |
| 109 // Verifies that HTMLImageElements are given an elevated CacheLiveResourcePriori
ty when used to construct an ImageBitmap. | 109 // Verifies that HTMLImageElements are given an elevated CacheLiveResourcePriori
ty when used to construct an ImageBitmap. |
| 110 // ImageBitmaps that have crop rects outside of the bounds of the HTMLImageEleme
nt do not have elevated CacheLiveResourcePriority. | 110 // ImageBitmaps that have crop rects outside of the bounds of the HTMLImageEleme
nt do not have elevated CacheLiveResourcePriority. |
| 111 TEST_F(ImageBitmapTest, ImageBitmapLiveResourcePriority) | 111 TEST_F(ImageBitmapTest, ImageBitmapLiveResourcePriority) |
| 112 { | 112 { |
| 113 RefPtrWillBePersistent<HTMLImageElement> imageNoCrop = HTMLImageElement::cre
ate(*Document::create().get()); | 113 Persistent<HTMLImageElement> imageNoCrop = HTMLImageElement::create(*Documen
t::create().get()); |
| 114 RefPtrWillBeRawPtr<ImageResource> cachedImageNoCrop = ImageResource::create(
ResourceRequest("http://foo.com/1"), | 114 RawPtr<ImageResource> cachedImageNoCrop = ImageResource::create(ResourceRequ
est("http://foo.com/1"), |
| 115 StaticBitmapImage::create(m_image).get()); | 115 StaticBitmapImage::create(m_image).get()); |
| 116 imageNoCrop->setImageResource(cachedImageNoCrop.get()); | 116 imageNoCrop->setImageResource(cachedImageNoCrop.get()); |
| 117 | 117 |
| 118 RefPtrWillBePersistent<HTMLImageElement> imageInteriorCrop = HTMLImageElemen
t::create(*Document::create().get()); | 118 Persistent<HTMLImageElement> imageInteriorCrop = HTMLImageElement::create(*D
ocument::create().get()); |
| 119 RefPtrWillBeRawPtr<ImageResource> cachedImageInteriorCrop = ImageResource::c
reate(ResourceRequest("http://foo.com/2"), | 119 RawPtr<ImageResource> cachedImageInteriorCrop = ImageResource::create(Resour
ceRequest("http://foo.com/2"), |
| 120 StaticBitmapImage::create(m_image).get()); | 120 StaticBitmapImage::create(m_image).get()); |
| 121 imageInteriorCrop->setImageResource(cachedImageInteriorCrop.get()); | 121 imageInteriorCrop->setImageResource(cachedImageInteriorCrop.get()); |
| 122 | 122 |
| 123 RefPtrWillBePersistent<HTMLImageElement> imageExteriorCrop = HTMLImageElemen
t::create(*Document::create().get()); | 123 Persistent<HTMLImageElement> imageExteriorCrop = HTMLImageElement::create(*D
ocument::create().get()); |
| 124 RefPtrWillBeRawPtr<ImageResource> cachedImageExteriorCrop = ImageResource::c
reate(ResourceRequest("http://foo.com/3"), | 124 RawPtr<ImageResource> cachedImageExteriorCrop = ImageResource::create(Resour
ceRequest("http://foo.com/3"), |
| 125 StaticBitmapImage::create(m_image).get()); | 125 StaticBitmapImage::create(m_image).get()); |
| 126 imageExteriorCrop->setImageResource(cachedImageExteriorCrop.get()); | 126 imageExteriorCrop->setImageResource(cachedImageExteriorCrop.get()); |
| 127 | 127 |
| 128 RefPtrWillBePersistent<HTMLImageElement> imageOutsideCrop = HTMLImageElement
::create(*Document::create().get()); | 128 Persistent<HTMLImageElement> imageOutsideCrop = HTMLImageElement::create(*Do
cument::create().get()); |
| 129 RefPtrWillBeRawPtr<ImageResource> cachedImageOutsideCrop = ImageResource::cr
eate(ResourceRequest("http://foo.com/4"), | 129 RawPtr<ImageResource> cachedImageOutsideCrop = ImageResource::create(Resourc
eRequest("http://foo.com/4"), |
| 130 StaticBitmapImage::create(m_image).get()); | 130 StaticBitmapImage::create(m_image).get()); |
| 131 imageOutsideCrop->setImageResource(cachedImageOutsideCrop.get()); | 131 imageOutsideCrop->setImageResource(cachedImageOutsideCrop.get()); |
| 132 | 132 |
| 133 MockImageResourceClient mockClient1(cachedImageNoCrop); | 133 MockImageResourceClient mockClient1(cachedImageNoCrop); |
| 134 MockImageResourceClient mockClient2(cachedImageInteriorCrop); | 134 MockImageResourceClient mockClient2(cachedImageInteriorCrop); |
| 135 MockImageResourceClient mockClient3(cachedImageExteriorCrop); | 135 MockImageResourceClient mockClient3(cachedImageExteriorCrop); |
| 136 MockImageResourceClient mockClient4(cachedImageOutsideCrop); | 136 MockImageResourceClient mockClient4(cachedImageOutsideCrop); |
| 137 | 137 |
| 138 memoryCache()->add(cachedImageNoCrop.get()); | 138 memoryCache()->add(cachedImageNoCrop.get()); |
| 139 memoryCache()->add(cachedImageInteriorCrop.get()); | 139 memoryCache()->add(cachedImageInteriorCrop.get()); |
| 140 memoryCache()->add(cachedImageExteriorCrop.get()); | 140 memoryCache()->add(cachedImageExteriorCrop.get()); |
| 141 memoryCache()->add(cachedImageOutsideCrop.get()); | 141 memoryCache()->add(cachedImageOutsideCrop.get()); |
| 142 memoryCache()->updateDecodedResource(cachedImageNoCrop.get(), UpdateForPrope
rtyChange); | 142 memoryCache()->updateDecodedResource(cachedImageNoCrop.get(), UpdateForPrope
rtyChange); |
| 143 memoryCache()->updateDecodedResource(cachedImageInteriorCrop.get(), UpdateFo
rPropertyChange); | 143 memoryCache()->updateDecodedResource(cachedImageInteriorCrop.get(), UpdateFo
rPropertyChange); |
| 144 memoryCache()->updateDecodedResource(cachedImageExteriorCrop.get(), UpdateFo
rPropertyChange); | 144 memoryCache()->updateDecodedResource(cachedImageExteriorCrop.get(), UpdateFo
rPropertyChange); |
| 145 memoryCache()->updateDecodedResource(cachedImageOutsideCrop.get(), UpdateFor
PropertyChange); | 145 memoryCache()->updateDecodedResource(cachedImageOutsideCrop.get(), UpdateFor
PropertyChange); |
| 146 | 146 |
| 147 // HTMLImageElements should default to CacheLiveResourcePriorityLow. | 147 // HTMLImageElements should default to CacheLiveResourcePriorityLow. |
| 148 ASSERT_EQ(memoryCache()->priority(imageNoCrop->cachedImage()), MemoryCacheLi
veResourcePriorityLow); | 148 ASSERT_EQ(memoryCache()->priority(imageNoCrop->cachedImage()), MemoryCacheLi
veResourcePriorityLow); |
| 149 ASSERT_EQ(memoryCache()->priority(imageInteriorCrop->cachedImage()), MemoryC
acheLiveResourcePriorityLow); | 149 ASSERT_EQ(memoryCache()->priority(imageInteriorCrop->cachedImage()), MemoryC
acheLiveResourcePriorityLow); |
| 150 ASSERT_EQ(memoryCache()->priority(imageExteriorCrop->cachedImage()), MemoryC
acheLiveResourcePriorityLow); | 150 ASSERT_EQ(memoryCache()->priority(imageExteriorCrop->cachedImage()), MemoryC
acheLiveResourcePriorityLow); |
| 151 ASSERT_EQ(memoryCache()->priority(imageOutsideCrop->cachedImage()), MemoryCa
cheLiveResourcePriorityLow); | 151 ASSERT_EQ(memoryCache()->priority(imageOutsideCrop->cachedImage()), MemoryCa
cheLiveResourcePriorityLow); |
| 152 | 152 |
| 153 const ImageBitmapOptions defaultOptions; | 153 const ImageBitmapOptions defaultOptions; |
| 154 RefPtrWillBePersistent<ImageBitmap> imageBitmapInteriorCrop = ImageBitmap::c
reate(imageInteriorCrop.get(), | 154 Persistent<ImageBitmap> imageBitmapInteriorCrop = ImageBitmap::create(imageI
nteriorCrop.get(), |
| 155 IntRect(m_image->width() / 2, m_image->height() / 2, m_image->width(), m
_image->height()), | 155 IntRect(m_image->width() / 2, m_image->height() / 2, m_image->width(), m
_image->height()), |
| 156 &(imageInteriorCrop->document()), defaultOptions); | 156 &(imageInteriorCrop->document()), defaultOptions); |
| 157 { | 157 { |
| 158 RefPtrWillBePersistent<ImageBitmap> imageBitmapNoCrop = ImageBitmap::cre
ate(imageNoCrop.get(), | 158 Persistent<ImageBitmap> imageBitmapNoCrop = ImageBitmap::create(imageNoC
rop.get(), |
| 159 IntRect(0, 0, m_image->width(), m_image->height()), | 159 IntRect(0, 0, m_image->width(), m_image->height()), |
| 160 &(imageNoCrop->document()), defaultOptions); | 160 &(imageNoCrop->document()), defaultOptions); |
| 161 RefPtrWillBePersistent<ImageBitmap> imageBitmapInteriorCrop2 = ImageBitm
ap::create(imageInteriorCrop.get(), | 161 Persistent<ImageBitmap> imageBitmapInteriorCrop2 = ImageBitmap::create(i
mageInteriorCrop.get(), |
| 162 IntRect(m_image->width() / 2, m_image->height() / 2, m_image->width(
), m_image->height()), | 162 IntRect(m_image->width() / 2, m_image->height() / 2, m_image->width(
), m_image->height()), |
| 163 &(imageInteriorCrop->document()), defaultOptions); | 163 &(imageInteriorCrop->document()), defaultOptions); |
| 164 RefPtrWillBePersistent<ImageBitmap> imageBitmapExteriorCrop = ImageBitma
p::create(imageExteriorCrop.get(), | 164 Persistent<ImageBitmap> imageBitmapExteriorCrop = ImageBitmap::create(im
ageExteriorCrop.get(), |
| 165 IntRect(-m_image->width() / 2, -m_image->height() / 2, m_image->widt
h(), m_image->height()), | 165 IntRect(-m_image->width() / 2, -m_image->height() / 2, m_image->widt
h(), m_image->height()), |
| 166 &(imageExteriorCrop->document()), defaultOptions); | 166 &(imageExteriorCrop->document()), defaultOptions); |
| 167 RefPtrWillBePersistent<ImageBitmap> imageBitmapOutsideCrop = ImageBitmap
::create(imageOutsideCrop.get(), | 167 Persistent<ImageBitmap> imageBitmapOutsideCrop = ImageBitmap::create(ima
geOutsideCrop.get(), |
| 168 IntRect(-m_image->width(), -m_image->height(), m_image->width(), m_i
mage->height()), | 168 IntRect(-m_image->width(), -m_image->height(), m_image->width(), m_i
mage->height()), |
| 169 &(imageOutsideCrop->document()), defaultOptions); | 169 &(imageOutsideCrop->document()), defaultOptions); |
| 170 | 170 |
| 171 // Images are not referenced by ImageBitmap anymore, so always CacheLive
ResourcePriorityLow | 171 // Images are not referenced by ImageBitmap anymore, so always CacheLive
ResourcePriorityLow |
| 172 ASSERT_EQ(memoryCache()->priority(imageNoCrop->cachedImage()), MemoryCac
heLiveResourcePriorityLow); | 172 ASSERT_EQ(memoryCache()->priority(imageNoCrop->cachedImage()), MemoryCac
heLiveResourcePriorityLow); |
| 173 ASSERT_EQ(memoryCache()->priority(imageInteriorCrop->cachedImage()), Mem
oryCacheLiveResourcePriorityLow); | 173 ASSERT_EQ(memoryCache()->priority(imageInteriorCrop->cachedImage()), Mem
oryCacheLiveResourcePriorityLow); |
| 174 ASSERT_EQ(memoryCache()->priority(imageExteriorCrop->cachedImage()), Mem
oryCacheLiveResourcePriorityLow); | 174 ASSERT_EQ(memoryCache()->priority(imageExteriorCrop->cachedImage()), Mem
oryCacheLiveResourcePriorityLow); |
| 175 | 175 |
| 176 // ImageBitmaps that do not contain any of the source image do not eleva
te CacheLiveResourcePriority. | 176 // ImageBitmaps that do not contain any of the source image do not eleva
te CacheLiveResourcePriority. |
| 177 ASSERT_EQ(memoryCache()->priority(imageOutsideCrop->cachedImage()), Memo
ryCacheLiveResourcePriorityLow); | 177 ASSERT_EQ(memoryCache()->priority(imageOutsideCrop->cachedImage()), Memo
ryCacheLiveResourcePriorityLow); |
| 178 } | 178 } |
| 179 // Force a garbage collection to sweep out the local ImageBitmaps. | 179 // Force a garbage collection to sweep out the local ImageBitmaps. |
| 180 Heap::collectGarbage(BlinkGC::NoHeapPointersOnStack, BlinkGC::GCWithSweep, B
linkGC::ForcedGC); | 180 Heap::collectGarbage(BlinkGC::NoHeapPointersOnStack, BlinkGC::GCWithSweep, B
linkGC::ForcedGC); |
| 181 | 181 |
| 182 // CacheLiveResourcePriroity should return to CacheLiveResourcePriorityLow w
hen no ImageBitmaps reference the image. | 182 // CacheLiveResourcePriroity should return to CacheLiveResourcePriorityLow w
hen no ImageBitmaps reference the image. |
| 183 ASSERT_EQ(memoryCache()->priority(imageNoCrop->cachedImage()), MemoryCacheLi
veResourcePriorityLow); | 183 ASSERT_EQ(memoryCache()->priority(imageNoCrop->cachedImage()), MemoryCacheLi
veResourcePriorityLow); |
| 184 ASSERT_EQ(memoryCache()->priority(imageExteriorCrop->cachedImage()), MemoryC
acheLiveResourcePriorityLow); | 184 ASSERT_EQ(memoryCache()->priority(imageExteriorCrop->cachedImage()), MemoryC
acheLiveResourcePriorityLow); |
| 185 ASSERT_EQ(memoryCache()->priority(imageOutsideCrop->cachedImage()), MemoryCa
cheLiveResourcePriorityLow); | 185 ASSERT_EQ(memoryCache()->priority(imageOutsideCrop->cachedImage()), MemoryCa
cheLiveResourcePriorityLow); |
| 186 | 186 |
| 187 // There is still an ImageBitmap that references this image. | 187 // There is still an ImageBitmap that references this image. |
| 188 ASSERT_EQ(memoryCache()->priority(imageInteriorCrop->cachedImage()), MemoryC
acheLiveResourcePriorityLow); | 188 ASSERT_EQ(memoryCache()->priority(imageInteriorCrop->cachedImage()), MemoryC
acheLiveResourcePriorityLow); |
| 189 imageBitmapInteriorCrop = nullptr; | 189 imageBitmapInteriorCrop = nullptr; |
| 190 } | 190 } |
| 191 | 191 |
| 192 // Verifies that ImageBitmaps constructed from HTMLImageElements hold a referenc
e to the original Image if the HTMLImageElement src is changed. | 192 // Verifies that ImageBitmaps constructed from HTMLImageElements hold a referenc
e to the original Image if the HTMLImageElement src is changed. |
| 193 TEST_F(ImageBitmapTest, ImageBitmapSourceChanged) | 193 TEST_F(ImageBitmapTest, ImageBitmapSourceChanged) |
| 194 { | 194 { |
| 195 RefPtrWillBeRawPtr<HTMLImageElement> image = HTMLImageElement::create(*Docum
ent::create().get()); | 195 RawPtr<HTMLImageElement> image = HTMLImageElement::create(*Document::create(
).get()); |
| 196 RefPtrWillBeRawPtr<ImageResource> originalImageResource = ImageResource::cre
ate( | 196 RawPtr<ImageResource> originalImageResource = ImageResource::create( |
| 197 StaticBitmapImage::create(m_image).get()); | 197 StaticBitmapImage::create(m_image).get()); |
| 198 image->setImageResource(originalImageResource.get()); | 198 image->setImageResource(originalImageResource.get()); |
| 199 | 199 |
| 200 const ImageBitmapOptions defaultOptions; | 200 const ImageBitmapOptions defaultOptions; |
| 201 RefPtrWillBeRawPtr<ImageBitmap> imageBitmap = ImageBitmap::create(image.get(
), | 201 RawPtr<ImageBitmap> imageBitmap = ImageBitmap::create(image.get(), |
| 202 IntRect(0, 0, m_image->width(), m_image->height()), | 202 IntRect(0, 0, m_image->width(), m_image->height()), |
| 203 &(image->document()), defaultOptions); | 203 &(image->document()), defaultOptions); |
| 204 ASSERT_EQ(imageBitmap->bitmapImage()->imageForCurrentFrame(), originalImageR
esource->image()->imageForCurrentFrame()); | 204 ASSERT_EQ(imageBitmap->bitmapImage()->imageForCurrentFrame(), originalImageR
esource->image()->imageForCurrentFrame()); |
| 205 | 205 |
| 206 RefPtrWillBeRawPtr<ImageResource> newImageResource = ImageResource::create( | 206 RawPtr<ImageResource> newImageResource = ImageResource::create( |
| 207 StaticBitmapImage::create(m_image2).get()); | 207 StaticBitmapImage::create(m_image2).get()); |
| 208 image->setImageResource(newImageResource.get()); | 208 image->setImageResource(newImageResource.get()); |
| 209 | 209 |
| 210 // The ImageBitmap should contain the same data as the original cached image | 210 // The ImageBitmap should contain the same data as the original cached image |
| 211 { | 211 { |
| 212 ASSERT_EQ(imageBitmap->bitmapImage()->imageForCurrentFrame(), originalIm
ageResource->image()->imageForCurrentFrame()); | 212 ASSERT_EQ(imageBitmap->bitmapImage()->imageForCurrentFrame(), originalIm
ageResource->image()->imageForCurrentFrame()); |
| 213 SkImage* image1 = imageBitmap->bitmapImage()->imageForCurrentFrame().get
(); | 213 SkImage* image1 = imageBitmap->bitmapImage()->imageForCurrentFrame().get
(); |
| 214 ASSERT_NE(image1, nullptr); | 214 ASSERT_NE(image1, nullptr); |
| 215 SkImage* image2 = originalImageResource->image()->imageForCurrentFrame()
.get(); | 215 SkImage* image2 = originalImageResource->image()->imageForCurrentFrame()
.get(); |
| 216 ASSERT_NE(image2, nullptr); | 216 ASSERT_NE(image2, nullptr); |
| 217 ASSERT_EQ(image1, image2); | 217 ASSERT_EQ(image1, image2); |
| 218 } | 218 } |
| 219 | 219 |
| 220 { | 220 { |
| 221 ASSERT_NE(imageBitmap->bitmapImage()->imageForCurrentFrame(), newImageRe
source->image()->imageForCurrentFrame()); | 221 ASSERT_NE(imageBitmap->bitmapImage()->imageForCurrentFrame(), newImageRe
source->image()->imageForCurrentFrame()); |
| 222 SkImage* image1 = imageBitmap->bitmapImage()->imageForCurrentFrame().get
(); | 222 SkImage* image1 = imageBitmap->bitmapImage()->imageForCurrentFrame().get
(); |
| 223 ASSERT_NE(image1, nullptr); | 223 ASSERT_NE(image1, nullptr); |
| 224 SkImage* image2 = newImageResource->image()->imageForCurrentFrame().get(
); | 224 SkImage* image2 = newImageResource->image()->imageForCurrentFrame().get(
); |
| 225 ASSERT_NE(image2, nullptr); | 225 ASSERT_NE(image2, nullptr); |
| 226 ASSERT_NE(image1, image2); | 226 ASSERT_NE(image1, image2); |
| 227 } | 227 } |
| 228 } | 228 } |
| 229 | 229 |
| 230 } // namespace blink | 230 } // namespace blink |
| OLD | NEW |