本文整理汇总了C++中ImageResource::getImage方法的典型用法代码示例。如果您正苦于以下问题:C++ ImageResource::getImage方法的具体用法?C++ ImageResource::getImage怎么用?C++ ImageResource::getImage使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ImageResource
的用法示例。
在下文中一共展示了ImageResource::getImage方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MockImageResourceClient
TEST(ImageResourceTest, DecodedDataRemainsWhileHasClients)
{
ImageResource* cachedImage = ImageResource::create(ResourceRequest());
cachedImage->setStatus(Resource::Pending);
Persistent<MockImageResourceClient> client = new MockImageResourceClient(cachedImage);
// Send the image response.
cachedImage->responseReceived(ResourceResponse(KURL(), "multipart/x-mixed-replace", 0, nullAtom, String()), nullptr);
Vector<unsigned char> jpeg = jpegImage();
cachedImage->responseReceived(ResourceResponse(KURL(), "image/jpeg", jpeg.size(), nullAtom, String()), nullptr);
cachedImage->appendData(reinterpret_cast<const char*>(jpeg.data()), jpeg.size());
cachedImage->finish();
ASSERT_FALSE(cachedImage->errorOccurred());
ASSERT_TRUE(cachedImage->hasImage());
ASSERT_FALSE(cachedImage->getImage()->isNull());
ASSERT_TRUE(client->notifyFinishedCalled());
// The prune comes when the ImageResource still has clients. The image should not be deleted.
cachedImage->prune();
ASSERT_TRUE(cachedImage->hasClientsOrObservers());
ASSERT_TRUE(cachedImage->hasImage());
ASSERT_FALSE(cachedImage->getImage()->isNull());
// The ImageResource no longer has clients. The image should be deleted by prune.
client->removeAsClient();
cachedImage->prune();
ASSERT_FALSE(cachedImage->hasClientsOrObservers());
ASSERT_FALSE(cachedImage->hasImage());
ASSERT_TRUE(cachedImage->getImage()->isNull());
}
示例2: embeddedReplacedContent
LayoutReplaced* LayoutImage::embeddedReplacedContent() const {
if (!m_imageResource)
return nullptr;
ImageResource* cachedImage = m_imageResource->cachedImage();
if (cachedImage && cachedImage->getImage() &&
cachedImage->getImage()->isSVGImage())
return toSVGImage(cachedImage->getImage())->embeddedReplacedContent();
return nullptr;
}
示例3: url
TEST(ImageResourceTest, FailedRevalidationSvgToSvg) {
KURL url(ParsedURLString, "http://127.0.0.1:8000/foo");
ImageResource* imageResource = ImageResource::create(ResourceRequest(url));
Persistent<MockImageResourceClient> client =
new MockImageResourceClient(imageResource);
receiveResponse(imageResource, url, "image/svg+xml", svgImage());
EXPECT_FALSE(imageResource->errorOccurred());
ASSERT_TRUE(imageResource->hasImage());
EXPECT_FALSE(imageResource->getImage()->isNull());
EXPECT_EQ(client->imageChangedCount(), 1);
EXPECT_TRUE(client->notifyFinishedCalled());
EXPECT_FALSE(imageResource->getImage()->isBitmapImage());
EXPECT_EQ(200, imageResource->getImage()->width());
EXPECT_EQ(200, imageResource->getImage()->height());
imageResource->setRevalidatingRequest(ResourceRequest(url));
receiveResponse(imageResource, url, "image/svg+xml", svgImage2());
EXPECT_FALSE(imageResource->errorOccurred());
ASSERT_TRUE(imageResource->hasImage());
EXPECT_FALSE(imageResource->getImage()->isNull());
EXPECT_EQ(2, client->imageChangedCount());
EXPECT_TRUE(client->notifyFinishedCalled());
EXPECT_FALSE(imageResource->getImage()->isBitmapImage());
EXPECT_EQ(300, imageResource->getImage()->width());
EXPECT_EQ(300, imageResource->getImage()->height());
}
示例4: writeImageToDataObject
static void writeImageToDataObject(DataObject* dataObject, Element* element, const KURL& url)
{
// Shove image data into a DataObject for use as a file
ImageResource* cachedImage = getImageResource(element);
if (!cachedImage || !cachedImage->getImage() || !cachedImage->isLoaded())
return;
SharedBuffer* imageBuffer = cachedImage->getImage()->data();
if (!imageBuffer || !imageBuffer->size())
return;
String imageExtension = cachedImage->getImage()->filenameExtension();
ASSERT(!imageExtension.isEmpty());
// Determine the filename for the file contents of the image.
String filename = cachedImage->response().suggestedFilename();
if (filename.isEmpty())
filename = url.lastPathComponent();
String fileExtension;
if (filename.isEmpty()) {
filename = element->getAttribute(HTMLNames::altAttr);
} else {
// Strip any existing extension. Assume that alt text is usually not a filename.
int extensionIndex = filename.reverseFind('.');
if (extensionIndex != -1) {
fileExtension = filename.substring(extensionIndex + 1);
filename.truncate(extensionIndex);
}
}
if (!fileExtension.isEmpty() && fileExtension != imageExtension) {
String imageMimeType = MIMETypeRegistry::getMIMETypeForExtension(imageExtension);
ASSERT(imageMimeType.startsWith("image/"));
// Use the file extension only if it has imageMimeType: it's untrustworthy otherwise.
if (imageMimeType == MIMETypeRegistry::getMIMETypeForExtension(fileExtension))
imageExtension = fileExtension;
}
imageExtension = "." + imageExtension;
validateFilename(filename, imageExtension);
dataObject->addSharedBuffer(filename + imageExtension, imageBuffer);
}
示例5: IntRect
// Verifies that ImageBitmaps constructed from HTMLImageElements hold a reference to the original Image if the HTMLImageElement src is changed.
TEST_F(ImageBitmapTest, ImageBitmapSourceChanged)
{
HTMLImageElement* image = HTMLImageElement::create(*Document::create());
ImageResource* originalImageResource = ImageResource::create(
StaticBitmapImage::create(m_image).get());
image->setImageResource(originalImageResource);
const ImageBitmapOptions defaultOptions;
ImageBitmap* imageBitmap = ImageBitmap::create(image,
IntRect(0, 0, m_image->width(), m_image->height()),
&(image->document()), defaultOptions);
ASSERT_EQ(imageBitmap->bitmapImage()->imageForCurrentFrame(), originalImageResource->getImage()->imageForCurrentFrame());
ImageResource* newImageResource = ImageResource::create(
StaticBitmapImage::create(m_image2).get());
image->setImageResource(newImageResource);
// The ImageBitmap should contain the same data as the original cached image
{
ASSERT_EQ(imageBitmap->bitmapImage()->imageForCurrentFrame(), originalImageResource->getImage()->imageForCurrentFrame());
SkImage* image1 = imageBitmap->bitmapImage()->imageForCurrentFrame().get();
ASSERT_NE(image1, nullptr);
SkImage* image2 = originalImageResource->getImage()->imageForCurrentFrame().get();
ASSERT_NE(image2, nullptr);
ASSERT_EQ(image1, image2);
}
{
ASSERT_NE(imageBitmap->bitmapImage()->imageForCurrentFrame(), newImageResource->getImage()->imageForCurrentFrame());
SkImage* image1 = imageBitmap->bitmapImage()->imageForCurrentFrame().get();
ASSERT_NE(image1, nullptr);
SkImage* image2 = newImageResource->getImage()->imageForCurrentFrame().get();
ASSERT_NE(image2, nullptr);
ASSERT_NE(image1, image2);
}
}
示例6: testURL
TEST(ImageResourceTest, ReloadIfLoFi)
{
KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
URLTestHelpers::registerMockedURLLoad(testURL, "cancelTest.html", "text/html");
ResourceRequest request = ResourceRequest(testURL);
request.setLoFiState(WebURLRequest::LoFiOn);
ImageResource* cachedImage = ImageResource::create(request);
cachedImage->setStatus(Resource::Pending);
Persistent<MockImageResourceClient> client = new MockImageResourceClient(cachedImage);
ResourceFetcher* fetcher = ResourceFetcher::create(ImageResourceTestMockFetchContext::create());
// Send the image response.
Vector<unsigned char> jpeg = jpegImage();
ResourceResponse resourceResponse(KURL(), "image/jpeg", jpeg.size(), nullAtom, String());
resourceResponse.addHTTPHeaderField("chrome-proxy", "q=low");
cachedImage->responseReceived(resourceResponse, nullptr);
cachedImage->appendData(reinterpret_cast<const char*>(jpeg.data()), jpeg.size());
cachedImage->finish();
ASSERT_FALSE(cachedImage->errorOccurred());
ASSERT_TRUE(cachedImage->hasImage());
ASSERT_FALSE(cachedImage->getImage()->isNull());
ASSERT_EQ(client->imageChangedCount(), 2);
ASSERT_TRUE(client->notifyFinishedCalled());
ASSERT_TRUE(cachedImage->getImage()->isBitmapImage());
EXPECT_EQ(1, cachedImage->getImage()->width());
EXPECT_EQ(1, cachedImage->getImage()->height());
cachedImage->reloadIfLoFi(fetcher);
ASSERT_FALSE(cachedImage->errorOccurred());
ASSERT_FALSE(cachedImage->resourceBuffer());
ASSERT_FALSE(cachedImage->hasImage());
ASSERT_EQ(client->imageChangedCount(), 3);
cachedImage->loader()->didReceiveResponse(nullptr, WrappedResourceResponse(resourceResponse), nullptr);
cachedImage->loader()->didReceiveData(nullptr, reinterpret_cast<const char*>(jpeg.data()), jpeg.size(), jpeg.size());
cachedImage->loader()->didFinishLoading(nullptr, 0.0, jpeg.size());
ASSERT_FALSE(cachedImage->errorOccurred());
ASSERT_TRUE(cachedImage->hasImage());
ASSERT_FALSE(cachedImage->getImage()->isNull());
ASSERT_TRUE(client->notifyFinishedCalled());
ASSERT_TRUE(cachedImage->getImage()->isBitmapImage());
}
示例7: url
TEST(ImageResourceTest, AddClientAfterPrune)
{
KURL url(ParsedURLString, "http://127.0.0.1:8000/foo");
ImageResource* imageResource = ImageResource::create(ResourceRequest(url));
// Adds a ResourceClient but not ImageResourceObserver.
Persistent<MockResourceClient> client1 = new MockResourceClient(imageResource);
Vector<unsigned char> jpeg = jpegImage();
ResourceResponse response;
response.setURL(url);
response.setHTTPStatusCode(200);
response.setMimeType("image/jpeg");
imageResource->responseReceived(response, nullptr);
imageResource->appendData(reinterpret_cast<const char*>(jpeg.data()), jpeg.size());
imageResource->finish();
EXPECT_FALSE(imageResource->errorOccurred());
ASSERT_TRUE(imageResource->hasImage());
EXPECT_FALSE(imageResource->getImage()->isNull());
EXPECT_EQ(1, imageResource->getImage()->width());
EXPECT_EQ(1, imageResource->getImage()->height());
EXPECT_TRUE(client1->notifyFinishedCalled());
client1->removeAsClient();
EXPECT_FALSE(imageResource->hasClientsOrObservers());
imageResource->prune();
EXPECT_FALSE(imageResource->hasImage());
// Re-adds a ResourceClient but not ImageResourceObserver.
Persistent<MockResourceClient> client2 = new MockResourceClient(imageResource);
ASSERT_TRUE(imageResource->hasImage());
EXPECT_FALSE(imageResource->getImage()->isNull());
EXPECT_EQ(1, imageResource->getImage()->width());
EXPECT_EQ(1, imageResource->getImage()->height());
EXPECT_TRUE(client2->notifyFinishedCalled());
}
示例8: testURL
TEST(ImageResourceTest, ReloadIfLoFiDuringFetch) {
KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
ScopedRegisteredURL scopedRegisteredURL(testURL);
ResourceRequest request(testURL);
request.setLoFiState(WebURLRequest::LoFiOn);
FetchRequest fetchRequest(request, FetchInitiatorInfo());
ResourceFetcher* fetcher =
ResourceFetcher::create(ImageResourceTestMockFetchContext::create());
ImageResource* cachedImage = ImageResource::fetch(fetchRequest, fetcher);
Persistent<MockImageResourceClient> client =
new MockImageResourceClient(cachedImage);
// Send the image response.
Vector<unsigned char> jpeg = jpegImage();
ResourceResponse initialResourceResponse(testURL, "image/jpeg", jpeg.size(),
nullAtom, String());
initialResourceResponse.addHTTPHeaderField("chrome-proxy", "q=low");
cachedImage->loader()->didReceiveResponse(
nullptr, WrappedResourceResponse(initialResourceResponse));
cachedImage->loader()->didReceiveData(
nullptr, reinterpret_cast<const char*>(jpeg.data()), jpeg.size(),
jpeg.size(), jpeg.size());
EXPECT_FALSE(cachedImage->errorOccurred());
ASSERT_TRUE(cachedImage->hasImage());
EXPECT_FALSE(cachedImage->getImage()->isNull());
EXPECT_EQ(1, client->imageChangedCount());
EXPECT_EQ(jpeg.size(), client->encodedSizeOnLastImageChanged());
EXPECT_FALSE(client->notifyFinishedCalled());
EXPECT_TRUE(cachedImage->getImage()->isBitmapImage());
EXPECT_EQ(1, cachedImage->getImage()->width());
EXPECT_EQ(1, cachedImage->getImage()->height());
// Call reloadIfLoFi() while the image is still loading.
cachedImage->reloadIfLoFi(fetcher);
EXPECT_FALSE(cachedImage->errorOccurred());
EXPECT_FALSE(cachedImage->resourceBuffer());
EXPECT_FALSE(cachedImage->hasImage());
EXPECT_EQ(2, client->imageChangedCount());
EXPECT_EQ(0U, client->encodedSizeOnLastImageChanged());
// The client should not have been notified of completion yet, since the image
// is still loading.
EXPECT_FALSE(client->notifyFinishedCalled());
Vector<unsigned char> jpeg2 = jpegImage2();
cachedImage->loader()->didReceiveResponse(
nullptr, WrappedResourceResponse(ResourceResponse(
testURL, "image/jpeg", jpeg.size(), nullAtom, String())),
nullptr);
cachedImage->loader()->didReceiveData(
nullptr, reinterpret_cast<const char*>(jpeg2.data()), jpeg2.size(),
jpeg2.size(), jpeg2.size());
cachedImage->loader()->didFinishLoading(nullptr, 0.0, jpeg2.size());
EXPECT_FALSE(cachedImage->errorOccurred());
ASSERT_TRUE(cachedImage->hasImage());
EXPECT_FALSE(cachedImage->getImage()->isNull());
EXPECT_EQ(jpeg2.size(), client->encodedSizeOnLastImageChanged());
// The client should have been notified of completion only after the reload
// completed.
EXPECT_TRUE(client->notifyFinishedCalled());
EXPECT_EQ(jpeg2.size(), client->encodedSizeOnNotifyFinished());
EXPECT_EQ(jpeg2.size(), client->encodedSizeOnImageNotifyFinished());
EXPECT_TRUE(cachedImage->getImage()->isBitmapImage());
EXPECT_EQ(50, cachedImage->getImage()->width());
EXPECT_EQ(50, cachedImage->getImage()->height());
}