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 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 RefPtrWillBePersistent<HTMLImageElement> imageExteriorCrop = HTMLImageElemen
t::create(*Document::create().get()); | 122 RefPtrWillBePersistent<HTMLImageElement> imageExteriorCrop = HTMLImageElemen
t::create(*Document::create().get()); |
123 ResourcePtr<ImageResource> cachedImageExteriorCrop = new ImageResource(Resou
rceRequest("http://foo.com/3"), | 123 ResourcePtr<ImageResource> cachedImageExteriorCrop = new ImageResource(Resou
rceRequest("http://foo.com/3"), |
124 StaticBitmapImage::create(m_image).get()); | 124 StaticBitmapImage::create(m_image).get()); |
125 imageExteriorCrop->setImageResource(cachedImageExteriorCrop.get()); | 125 imageExteriorCrop->setImageResource(cachedImageExteriorCrop.get()); |
126 | 126 |
127 RefPtrWillBePersistent<HTMLImageElement> imageOutsideCrop = HTMLImageElement
::create(*Document::create().get()); | 127 RefPtrWillBePersistent<HTMLImageElement> imageOutsideCrop = HTMLImageElement
::create(*Document::create().get()); |
128 ResourcePtr<ImageResource> cachedImageOutsideCrop = new ImageResource(Resour
ceRequest("http://foo.com/4"), | 128 ResourcePtr<ImageResource> cachedImageOutsideCrop = new ImageResource(Resour
ceRequest("http://foo.com/4"), |
129 StaticBitmapImage::create(m_image).get()); | 129 StaticBitmapImage::create(m_image).get()); |
130 imageOutsideCrop->setImageResource(cachedImageOutsideCrop.get()); | 130 imageOutsideCrop->setImageResource(cachedImageOutsideCrop.get()); |
131 | 131 |
132 MockImageResourceClient mockClient1, mockClient2, mockClient3, mockClient4; | 132 MockImageResourceClient mockClient1(cachedImageNoCrop); |
133 cachedImageNoCrop->addClient(&mockClient1); | 133 MockImageResourceClient mockClient2(cachedImageInteriorCrop); |
134 cachedImageInteriorCrop->addClient(&mockClient2); | 134 MockImageResourceClient mockClient3(cachedImageExteriorCrop); |
135 cachedImageExteriorCrop->addClient(&mockClient3); | 135 MockImageResourceClient mockClient4(cachedImageOutsideCrop); |
136 cachedImageOutsideCrop->addClient(&mockClient4); | |
137 | 136 |
138 memoryCache()->add(cachedImageNoCrop.get()); | 137 memoryCache()->add(cachedImageNoCrop.get()); |
139 memoryCache()->add(cachedImageInteriorCrop.get()); | 138 memoryCache()->add(cachedImageInteriorCrop.get()); |
140 memoryCache()->add(cachedImageExteriorCrop.get()); | 139 memoryCache()->add(cachedImageExteriorCrop.get()); |
141 memoryCache()->add(cachedImageOutsideCrop.get()); | 140 memoryCache()->add(cachedImageOutsideCrop.get()); |
142 memoryCache()->updateDecodedResource(cachedImageNoCrop.get(), UpdateForPrope
rtyChange); | 141 memoryCache()->updateDecodedResource(cachedImageNoCrop.get(), UpdateForPrope
rtyChange); |
143 memoryCache()->updateDecodedResource(cachedImageInteriorCrop.get(), UpdateFo
rPropertyChange); | 142 memoryCache()->updateDecodedResource(cachedImageInteriorCrop.get(), UpdateFo
rPropertyChange); |
144 memoryCache()->updateDecodedResource(cachedImageExteriorCrop.get(), UpdateFo
rPropertyChange); | 143 memoryCache()->updateDecodedResource(cachedImageExteriorCrop.get(), UpdateFo
rPropertyChange); |
145 memoryCache()->updateDecodedResource(cachedImageOutsideCrop.get(), UpdateFor
PropertyChange); | 144 memoryCache()->updateDecodedResource(cachedImageOutsideCrop.get(), UpdateFor
PropertyChange); |
146 | 145 |
(...skipping 27 matching lines...) Expand all Loading... |
174 Heap::collectGarbage(ThreadState::NoHeapPointersOnStack, ThreadState::GCWith
Sweep, Heap::ForcedGC); | 173 Heap::collectGarbage(ThreadState::NoHeapPointersOnStack, ThreadState::GCWith
Sweep, Heap::ForcedGC); |
175 | 174 |
176 // CacheLiveResourcePriroity should return to CacheLiveResourcePriorityLow w
hen no ImageBitmaps reference the image. | 175 // CacheLiveResourcePriroity should return to CacheLiveResourcePriorityLow w
hen no ImageBitmaps reference the image. |
177 ASSERT_EQ(memoryCache()->priority(imageNoCrop->cachedImage()), MemoryCacheLi
veResourcePriorityLow); | 176 ASSERT_EQ(memoryCache()->priority(imageNoCrop->cachedImage()), MemoryCacheLi
veResourcePriorityLow); |
178 ASSERT_EQ(memoryCache()->priority(imageExteriorCrop->cachedImage()), MemoryC
acheLiveResourcePriorityLow); | 177 ASSERT_EQ(memoryCache()->priority(imageExteriorCrop->cachedImage()), MemoryC
acheLiveResourcePriorityLow); |
179 ASSERT_EQ(memoryCache()->priority(imageOutsideCrop->cachedImage()), MemoryCa
cheLiveResourcePriorityLow); | 178 ASSERT_EQ(memoryCache()->priority(imageOutsideCrop->cachedImage()), MemoryCa
cheLiveResourcePriorityLow); |
180 | 179 |
181 // There is still an ImageBitmap that references this image. | 180 // There is still an ImageBitmap that references this image. |
182 ASSERT_EQ(memoryCache()->priority(imageInteriorCrop->cachedImage()), MemoryC
acheLiveResourcePriorityHigh); | 181 ASSERT_EQ(memoryCache()->priority(imageInteriorCrop->cachedImage()), MemoryC
acheLiveResourcePriorityHigh); |
183 imageBitmapInteriorCrop = nullptr; | 182 imageBitmapInteriorCrop = nullptr; |
184 | |
185 cachedImageNoCrop->removeClient(&mockClient1); | |
186 cachedImageInteriorCrop->removeClient(&mockClient2); | |
187 cachedImageExteriorCrop->removeClient(&mockClient3); | |
188 cachedImageOutsideCrop->removeClient(&mockClient4); | |
189 } | 183 } |
190 | 184 |
191 // Verifies that ImageBitmaps constructed from HTMLImageElements hold a referenc
e to the original Image if the HTMLImageElement src is changed. | 185 // Verifies that ImageBitmaps constructed from HTMLImageElements hold a referenc
e to the original Image if the HTMLImageElement src is changed. |
192 TEST_F(ImageBitmapTest, ImageBitmapSourceChanged) | 186 TEST_F(ImageBitmapTest, ImageBitmapSourceChanged) |
193 { | 187 { |
194 RefPtrWillBeRawPtr<HTMLImageElement> image = HTMLImageElement::create(*Docum
ent::create().get()); | 188 RefPtrWillBeRawPtr<HTMLImageElement> image = HTMLImageElement::create(*Docum
ent::create().get()); |
195 ResourcePtr<ImageResource> originalImageResource = new ImageResource( | 189 ResourcePtr<ImageResource> originalImageResource = new ImageResource( |
196 StaticBitmapImage::create(m_image).get()); | 190 StaticBitmapImage::create(m_image).get()); |
197 image->setImageResource(originalImageResource.get()); | 191 image->setImageResource(originalImageResource.get()); |
198 | 192 |
(...skipping 12 matching lines...) Expand all Loading... |
211 ASSERT_TRUE(originalImageResource->image()->deprecatedBitmapForCurrentFrame(
&bitmap2)); | 205 ASSERT_TRUE(originalImageResource->image()->deprecatedBitmapForCurrentFrame(
&bitmap2)); |
212 ASSERT_EQ(bitmap1.pixelRef()->pixels(), bitmap2.pixelRef()->pixels()); | 206 ASSERT_EQ(bitmap1.pixelRef()->pixels(), bitmap2.pixelRef()->pixels()); |
213 | 207 |
214 ASSERT_NE(imageBitmap->bitmapImage().get(), newImageResource->image()); | 208 ASSERT_NE(imageBitmap->bitmapImage().get(), newImageResource->image()); |
215 ASSERT_TRUE(imageBitmap->bitmapImage()->deprecatedBitmapForCurrentFrame(&bit
map1)); | 209 ASSERT_TRUE(imageBitmap->bitmapImage()->deprecatedBitmapForCurrentFrame(&bit
map1)); |
216 ASSERT_TRUE(newImageResource->image()->deprecatedBitmapForCurrentFrame(&bitm
ap2)); | 210 ASSERT_TRUE(newImageResource->image()->deprecatedBitmapForCurrentFrame(&bitm
ap2)); |
217 ASSERT_NE(bitmap1.pixelRef()->pixels(), bitmap2.pixelRef()->pixels()); | 211 ASSERT_NE(bitmap1.pixelRef()->pixels(), bitmap2.pixelRef()->pixels()); |
218 } | 212 } |
219 | 213 |
220 } // namespace | 214 } // namespace |
OLD | NEW |