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

Unified Diff: third_party/WebKit/Source/core/html/HTMLImageElement.cpp

Issue 2723093004: Adds SVGImageElement as a CanvasImageSource (Closed)
Patch Set: Moved from circle to rect, to avoid aliasing Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/html/HTMLImageElement.cpp
diff --git a/third_party/WebKit/Source/core/html/HTMLImageElement.cpp b/third_party/WebKit/Source/core/html/HTMLImageElement.cpp
index b140a0b375475872a13fcf3f450d5b7be669162d..65a62298cce0df18ec5385e44e6dabffda759bac 100644
--- a/third_party/WebKit/Source/core/html/HTMLImageElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLImageElement.cpp
@@ -629,63 +629,6 @@ bool HTMLImageElement::isInteractiveContent() const {
return fastHasAttribute(usemapAttr);
}
-PassRefPtr<Image> HTMLImageElement::getSourceImageForCanvas(
- SourceImageStatus* status,
- AccelerationHint,
- SnapshotReason,
- const FloatSize& defaultObjectSize) const {
- if (!complete() || !cachedImage()) {
- *status = IncompleteSourceImageStatus;
- return nullptr;
- }
-
- if (cachedImage()->errorOccurred()) {
- *status = UndecodableSourceImageStatus;
- return nullptr;
- }
-
- RefPtr<Image> sourceImage;
- if (cachedImage()->getImage()->isSVGImage()) {
- UseCounter::count(document(), UseCounter::SVGInCanvas2D);
- SVGImage* svgImage = toSVGImage(cachedImage()->getImage());
- IntSize imageSize =
- roundedIntSize(svgImage->concreteObjectSize(defaultObjectSize));
- sourceImage = SVGImageForContainer::create(
- svgImage, imageSize, 1, document().completeURL(imageSourceURL()));
- } else {
- sourceImage = cachedImage()->getImage();
- }
-
- *status = NormalSourceImageStatus;
- return sourceImage->imageForDefaultFrame();
-}
-
-bool HTMLImageElement::isSVGSource() const {
- return cachedImage() && cachedImage()->getImage()->isSVGImage();
-}
-
-bool HTMLImageElement::wouldTaintOrigin(
- SecurityOrigin* destinationSecurityOrigin) const {
- ImageResourceContent* image = cachedImage();
- if (!image)
- return false;
- return !image->isAccessAllowed(destinationSecurityOrigin);
-}
-
-FloatSize HTMLImageElement::elementSize(
- const FloatSize& defaultObjectSize) const {
- ImageResourceContent* image = cachedImage();
- if (!image)
- return FloatSize();
-
- if (image->getImage() && image->getImage()->isSVGImage())
- return toSVGImage(cachedImage()->getImage())
- ->concreteObjectSize(defaultObjectSize);
-
- return FloatSize(image->imageSize(
- LayoutObject::shouldRespectImageOrientation(layoutObject()), 1.0f));
-}
-
FloatSize HTMLImageElement::defaultDestinationSize(
const FloatSize& defaultObjectSize) const {
ImageResourceContent* image = cachedImage();
@@ -816,10 +759,6 @@ void HTMLImageElement::selectSourceURL(
ensureCollapsedOrFallbackContent();
}
-const KURL& HTMLImageElement::sourceURL() const {
- return cachedImage()->response().url();
-}
-
void HTMLImageElement::didAddUserAgentShadowRoot(ShadowRoot&) {
HTMLImageFallbackHelper::createAltTextShadowTree(*this);
}
@@ -887,27 +826,6 @@ PassRefPtr<ComputedStyle> HTMLImageElement::customStyleForLayoutObject() {
}
}
-bool HTMLImageElement::isOpaque() const {
- Image* image = const_cast<HTMLImageElement*>(this)->imageContents();
- return image && image->currentFrameKnownToBeOpaque();
-}
-
-int HTMLImageElement::sourceWidth() {
- SourceImageStatus status;
- FloatSize defaultObjectSize(width(), height());
- RefPtr<Image> image = getSourceImageForCanvas(
- &status, PreferNoAcceleration, SnapshotReasonUnknown, defaultObjectSize);
- return image->width();
-}
-
-int HTMLImageElement::sourceHeight() {
- SourceImageStatus status;
- FloatSize defaultObjectSize(width(), height());
- RefPtr<Image> image = getSourceImageForCanvas(
- &status, PreferNoAcceleration, SnapshotReasonUnknown, defaultObjectSize);
- return image->height();
-}
-
IntSize HTMLImageElement::bitmapSourceSize() const {
ImageResourceContent* image = cachedImage();
if (!image)
@@ -927,4 +845,8 @@ void HTMLImageElement::associateWith(HTMLFormElement* form) {
}
};
+FloatSize HTMLImageElement::sourceDefaultObjectSize() {
+ return FloatSize(width(), height());
+}
+
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698