WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
WIP-6 (EFL, GTK and Mac ports)
bug-118454-20130716112515.patch (text/plain), 66.38 KB, created by
Gyuyoung Kim
on 2013-07-15 19:25:49 PDT
(
hide
)
Description:
WIP-6 (EFL, GTK and Mac ports)
Filename:
MIME Type:
Creator:
Gyuyoung Kim
Created:
2013-07-15 19:25:49 PDT
Size:
66.38 KB
patch
obsolete
>Subversion Revision: 152685 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 105cdca95a83c50a4cb871e781ed33063896adbf..ba81c735f03f3042b57548aac4c9b2ebe3d387e1 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,41 @@ >+2013-07-15 Gyuyoung Kim <gyuyoung.kim@samsung.com> >+ >+ [EFL] Enable CSS Image Orientation >+ https://bugs.webkit.org/show_bug.cgi?id=118454 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ http://www.w3.org/TR/2012/CR-css3-images-20120417/#the-image-orientation >+ The css3-images module is at candidate recommendation. >+ >+ No new tests; draft patch. >+ >+ * loader/cache/CachedImage.cpp: >+ (WebCore::CachedImage::imageSizeForRenderer): >+ * page/DragController.cpp: >+ (WebCore::DragController::doImageDrag): >+ * page/Frame.cpp: >+ (WebCore::Frame::nodeImage): >+ * platform/graphics/BitmapImage.cpp: >+ (WebCore::BitmapImage::updateSize): >+ (WebCore::BitmapImage::sizeRespectingOrientation): >+ * platform/graphics/BitmapImage.h: >+ (BitmapImage): >+ * platform/graphics/GraphicsContext.cpp: >+ (WebCore::GraphicsContext::drawImage): >+ * platform/graphics/cg/ImageCG.cpp: >+ (WebCore::BitmapImage::draw): >+ * platform/graphics/cg/ImageSourceCG.cpp: >+ (WebCore::ImageSource::frameSizeAtIndex): >+ * platform/mac/DragImageMac.mm: >+ (WebCore::createDragImageFromImage): >+ * rendering/RenderImage.cpp: >+ (WebCore::RenderImage::styleDidChange): >+ (WebCore::RenderImage::paintReplaced): >+ (WebCore::RenderImage::paintIntoRect): >+ * rendering/style/RenderStyle.cpp: >+ (WebCore::RenderStyle::diff): >+ > 2013-07-15 Rob Buis <rwlbuis@webkit.org> > > XMLSerializer doesn't include namespaces on nodes in HTML documents >diff --git a/Source/WebCore/Configurations/FeatureDefines.xcconfig b/Source/WebCore/Configurations/FeatureDefines.xcconfig >index c2b227a23cfa57cb3167fa91e081f341669fbcec..5b64daed5f67adaff4a44d64359c90a1f98c269c 100644 >--- a/Source/WebCore/Configurations/FeatureDefines.xcconfig >+++ b/Source/WebCore/Configurations/FeatureDefines.xcconfig >@@ -48,7 +48,7 @@ ENABLE_CSS_COMPOSITING = ENABLE_CSS_COMPOSITING; > ENABLE_CSS_DEVICE_ADAPTATION = ; > ENABLE_CSS_EXCLUSIONS = ENABLE_CSS_EXCLUSIONS; > ENABLE_CSS_FILTERS = ENABLE_CSS_FILTERS; >-ENABLE_CSS_IMAGE_ORIENTATION = ; >+ENABLE_CSS_IMAGE_ORIENTATION = ENABLE_CSS_IMAGE_ORIENTATION; > ENABLE_CSS_IMAGE_RESOLUTION = ; > ENABLE_CSS_REGIONS = ENABLE_CSS_REGIONS; > ENABLE_CSS_SHADERS = ENABLE_CSS_SHADERS; >diff --git a/Source/WebCore/WebCore.exp.in b/Source/WebCore/WebCore.exp.in >index 939ce443dae3110bf5ae154613edeac08c619bbb..a0013bbffca3537558ad4081cb3934ae1ca04428 100644 >--- a/Source/WebCore/WebCore.exp.in >+++ b/Source/WebCore/WebCore.exp.in >@@ -463,7 +463,7 @@ __ZN7WebCore15GraphicsContext8fillPathERKNS_4PathE > __ZN7WebCore15GraphicsContext8fillRectERKNS_9FloatRectE > __ZN7WebCore15GraphicsContext8fillRectERKNS_9FloatRectERKNS_5ColorENS_10ColorSpaceE > __ZN7WebCore15GraphicsContext9clearRectERKNS_9FloatRectE >-__ZN7WebCore15GraphicsContext9drawImageEPNS_5ImageENS_10ColorSpaceERKNS_8IntPointENS_17CompositeOperatorENS_27RespectImageOrientationEnumE >+__ZN7WebCore15GraphicsContext9drawImageEPNS_5ImageENS_10ColorSpaceERKNS_8IntPointENS_17CompositeOperatorENS_20ImageOrientationEnumENS_27RespectImageOrientationEnumE > __ZN7WebCore15GraphicsContext9setShadowERKNS_9FloatSizeEfRKNS_5ColorENS_10ColorSpaceE > __ZN7WebCore15GraphicsContext9translateEff > __ZN7WebCore15GraphicsContextD1Ev >diff --git a/Source/WebCore/html/HTMLCanvasElement.cpp b/Source/WebCore/html/HTMLCanvasElement.cpp >index 7299e14d143ea8cc4ac978b12ccaa94e1f1b1ab0..ae471b5b4b97fd993bf5948714c2b77c83de0da3 100644 >--- a/Source/WebCore/html/HTMLCanvasElement.cpp >+++ b/Source/WebCore/html/HTMLCanvasElement.cpp >@@ -405,7 +405,7 @@ void HTMLCanvasElement::paint(GraphicsContext* context, const LayoutRect& r, boo > ImageBuffer* imageBuffer = buffer(); > if (imageBuffer) { > if (m_presentedImage) >- context->drawImage(m_presentedImage.get(), ColorSpaceDeviceRGB, pixelSnappedIntRect(r), CompositeSourceOver, DoNotRespectImageOrientation, useLowQualityScale); >+ context->drawImage(m_presentedImage.get(), ColorSpaceDeviceRGB, pixelSnappedIntRect(r), CompositeSourceOver, DefaultImageOrientation, DoNotRespectImageOrientation, useLowQualityScale); > else > context->drawImageBuffer(imageBuffer, ColorSpaceDeviceRGB, pixelSnappedIntRect(r), CompositeSourceOver, BlendModeNormal, useLowQualityScale); > } >diff --git a/Source/WebCore/loader/cache/CachedImage.cpp b/Source/WebCore/loader/cache/CachedImage.cpp >index 77158feee3b553e2eed73efdc66c518f62108772..b425a5a3c43b69f5498a9498974f49c6c1513a62 100644 >--- a/Source/WebCore/loader/cache/CachedImage.cpp >+++ b/Source/WebCore/loader/cache/CachedImage.cpp >@@ -254,8 +254,18 @@ LayoutSize CachedImage::imageSizeForRenderer(const RenderObject* renderer, float > > LayoutSize imageSize; > >- if (m_image->isBitmapImage() && (renderer && renderer->shouldRespectImageOrientation() == RespectImageOrientation)) >- imageSize = static_cast<BitmapImage*>(m_image.get())->sizeRespectingOrientation(); >+ RespectImageOrientationEnum shouldRespectImageOrientation = DoNotRespectImageOrientation; >+ if (renderer) >+ shouldRespectImageOrientation = renderer->shouldRespectImageOrientation(); >+ >+ ImageOrientationEnum orientation = DefaultImageOrientation; >+#if ENABLE(CSS_IMAGE_ORIENTATION) >+ if (renderer && renderer->style()) >+ orientation = renderer->style()->imageOrientation(); >+#endif >+ >+ if (m_image->isBitmapImage() && (shouldRespectImageOrientation == RespectImageOrientation || orientation != DefaultImageOrientation)) >+ imageSize = static_cast<BitmapImage*>(m_image.get())->sizeRespectingOrientation(orientation, shouldRespectImageOrientation); > #if ENABLE(SVG) > else if (m_image->isSVGImage()) { > imageSize = m_svgImageCache->imageSizeForRenderer(renderer); >diff --git a/Source/WebCore/page/DragController.cpp b/Source/WebCore/page/DragController.cpp >index d41eb31ddee6eddc3b1688b231d6471840de2261..b507bc6b7ba8494f9d8a9d0b21ddd7946f4f460f 100644 >--- a/Source/WebCore/page/DragController.cpp >+++ b/Source/WebCore/page/DragController.cpp >@@ -875,8 +875,13 @@ void DragController::doImageDrag(Element* element, const IntPoint& dragOrigin, c > IntPoint origin; > > Image* image = getImage(element); >+ ImageOrientationEnum orientation = DefaultImageOrientation; >+#if ENABLE(CSS_IMAGE_ORIENTATION) >+ if (element->renderer() && element->renderer()->style()) >+ orientation = element->renderer()->style()->imageOrientation(); >+#endif > if (image && image->size().height() * image->size().width() <= MaxOriginalImageArea >- && (dragImage = createDragImageFromImage(image, element->renderer() ? element->renderer()->shouldRespectImageOrientation() : DoNotRespectImageOrientation))) { >+ && (dragImage = createDragImageFromImage(image, orientation, element->renderer() ? element->renderer()->shouldRespectImageOrientation() : DoNotRespectImageOrientation))) { > IntSize originalSize = rect.size(); > origin = rect.location(); > >diff --git a/Source/WebCore/page/Frame.cpp b/Source/WebCore/page/Frame.cpp >index f67384632e86cdc9a820a86722b78eed02fd79ef..d2c8b912b62f92d1924cf5faf607a2d6dd6b24c6 100644 >--- a/Source/WebCore/page/Frame.cpp >+++ b/Source/WebCore/page/Frame.cpp >@@ -1093,7 +1093,12 @@ DragImageRef Frame::nodeImage(Node* node) > m_view->paintContents(buffer->context(), paintingRect); > > RefPtr<Image> image = buffer->copyImage(); >- return createDragImageFromImage(image.get(), renderer->shouldRespectImageOrientation()); >+ ImageOrientationEnum orientation = DefaultImageOrientation; >+#if ENABLE(CSS_IMAGE_ORIENTATION) >+ if (renderer->style()) >+ orientation = renderer->style()->imageOrientation(); >+#endif >+ return createDragImageFromImage(image.get(), orientation, renderer->shouldRespectImageOrientation()); > } > > DragImageRef Frame::dragImageForSelection() >@@ -1122,7 +1127,7 @@ DragImageRef Frame::dragImageForSelection() > m_view->paintContents(buffer->context(), paintingRect); > > RefPtr<Image> image = buffer->copyImage(); >- return createDragImageFromImage(image.get()); >+ return createDragImageFromImage(image.get(), DefaultImageOrientation); > } > > #endif >diff --git a/Source/WebCore/platform/DragImage.h b/Source/WebCore/platform/DragImage.h >index ec10b2ce84175d398edb172bb3fa3435dfad5c9a..7b094f9145372686c1515d17958adc21efb452e7 100644 >--- a/Source/WebCore/platform/DragImage.h >+++ b/Source/WebCore/platform/DragImage.h >@@ -74,8 +74,8 @@ namespace WebCore { > DragImageRef fitDragImageToMaxSize(DragImageRef image, const IntSize& srcSize, const IntSize& size); > DragImageRef scaleDragImage(DragImageRef, FloatSize scale); > DragImageRef dissolveDragImageToFraction(DragImageRef image, float delta); >- >- DragImageRef createDragImageFromImage(Image*, RespectImageOrientationEnum = DoNotRespectImageOrientation); >+ >+ DragImageRef createDragImageFromImage(Image*, ImageOrientationEnum = DefaultImageOrientation, RespectImageOrientationEnum = DoNotRespectImageOrientation); > DragImageRef createDragImageIconForCachedImageFilename(const String&); > DragImageRef createDragImageForLink(KURL&, const String& label, FontRenderingMode); > void deleteDragImage(DragImageRef); >diff --git a/Source/WebCore/platform/blackberry/DragImageBlackBerry.cpp b/Source/WebCore/platform/blackberry/DragImageBlackBerry.cpp >index 6f60c07eb75048ec27d841bb80c1d6e00cae9d60..8f42fe359f6ab0bf11a39a7cd9b9d36ed1494e7d 100644 >--- a/Source/WebCore/platform/blackberry/DragImageBlackBerry.cpp >+++ b/Source/WebCore/platform/blackberry/DragImageBlackBerry.cpp >@@ -25,7 +25,7 @@ > > namespace WebCore { > >-void* createDragImageFromImage(Image*, RespectImageOrientationEnum) >+void* createDragImageFromImage(Image*, ImageOrientationEnum, RespectImageOrientationEnum) > { > notImplemented(); > return 0; >diff --git a/Source/WebCore/platform/efl/DragImageEfl.cpp b/Source/WebCore/platform/efl/DragImageEfl.cpp >index f92997021224e214c6af551e9cecf9dca609c8e7..5209a1f41652d68b8f16487a2000e341fb140a62 100644 >--- a/Source/WebCore/platform/efl/DragImageEfl.cpp >+++ b/Source/WebCore/platform/efl/DragImageEfl.cpp >@@ -49,7 +49,7 @@ DragImageRef dissolveDragImageToFraction(DragImageRef image, float) > return image; > } > >-DragImageRef createDragImageFromImage(Image*, RespectImageOrientationEnum) >+DragImageRef createDragImageFromImage(Image*, ImageOrientationEnum, RespectImageOrientationEnum) > { > notImplemented(); > return 0; >diff --git a/Source/WebCore/platform/graphics/BitmapImage.cpp b/Source/WebCore/platform/graphics/BitmapImage.cpp >index 07610d2d83ee068b5eaadfe6736a27f7a5cb8539..aa19a3d03812e434d830680b697b5c1dfe0657b0 100644 >--- a/Source/WebCore/platform/graphics/BitmapImage.cpp >+++ b/Source/WebCore/platform/graphics/BitmapImage.cpp >@@ -179,13 +179,17 @@ void BitmapImage::didDecodeProperties() const > imageObserver()->decodedSizeChanged(this, deltaBytes); > } > >-void BitmapImage::updateSize() const >+void BitmapImage::updateSize(ImageOrientationEnum orientation, RespectImageOrientationEnum shouldRespectImageOrientation) const > { >- if (!m_sizeAvailable || m_haveSize) >+ if (!m_sizeAvailable || (m_haveSize >+ && orientation == static_cast<ImageOrientationEnum>(m_orientation) >+ && shouldRespectImageOrientation == static_cast<RespectImageOrientationEnum>(m_shouldRespectImageOrientation))) > return; > > m_size = m_source.size(); >- m_sizeRespectingOrientation = m_source.size(RespectImageOrientation); >+ m_sizeRespectingOrientation = m_source.size(orientation, shouldRespectImageOrientation); >+ m_orientation = static_cast<unsigned>(orientation); >+ m_shouldRespectImageOrientation = static_cast<unsigned>(shouldRespectImageOrientation); > m_haveSize = true; > didDecodeProperties(); > } >@@ -196,9 +200,9 @@ IntSize BitmapImage::size() const > return m_size; > } > >-IntSize BitmapImage::sizeRespectingOrientation() const >+IntSize BitmapImage::sizeRespectingOrientation(ImageOrientationEnum orientation, RespectImageOrientationEnum shouldRespectImageOrientation) const > { >- updateSize(); >+ updateSize(orientation, shouldRespectImageOrientation); > return m_sizeRespectingOrientation; > } > >diff --git a/Source/WebCore/platform/graphics/BitmapImage.h b/Source/WebCore/platform/graphics/BitmapImage.h >index 752fe44649cec89f6bc2ae26ab5bd2627c545d2f..3052239328c7a730a8362bd34279cd917c77538a 100644 >--- a/Source/WebCore/platform/graphics/BitmapImage.h >+++ b/Source/WebCore/platform/graphics/BitmapImage.h >@@ -118,7 +118,7 @@ public: > virtual bool hasSingleSecurityOrigin() const; > > virtual IntSize size() const; >- IntSize sizeRespectingOrientation() const; >+ IntSize sizeRespectingOrientation(ImageOrientationEnum, RespectImageOrientationEnum) const; > IntSize currentFrameSize() const; > virtual bool getHotSpot(IntPoint&) const; > >@@ -174,7 +174,7 @@ public: > bool canAnimate(); > > private: >- void updateSize() const; >+ void updateSize(ImageOrientationEnum = DefaultImageOrientation, RespectImageOrientationEnum = DoNotRespectImageOrientation) const; > > protected: > enum RepetitionCountStatus { >@@ -189,9 +189,9 @@ protected: > #if PLATFORM(WIN) > virtual void drawFrameMatchingSourceSize(GraphicsContext*, const FloatRect& dstRect, const IntSize& srcSize, ColorSpace styleColorSpace, CompositeOperator); > #endif >- virtual void draw(GraphicsContext*, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator, BlendMode); >+ virtual void draw(GraphicsContext*, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator, BlendMode, ImageOrientationEnum = DefaultImageOrientation); > #if USE(CG) || USE(CAIRO) || PLATFORM(BLACKBERRY) >- virtual void draw(GraphicsContext*, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator, BlendMode, RespectImageOrientationEnum) OVERRIDE; >+ virtual void draw(GraphicsContext*, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator, BlendMode, ImageOrientationEnum = DefaultImageOrientation, RespectImageOrientationEnum = DoNotRespectImageOrientation) OVERRIDE; > #endif > > #if USE(WINGDI) >@@ -265,6 +265,8 @@ protected: > ImageSource m_source; > mutable IntSize m_size; // The size to use for the overall image (will just be the size of the first image). > mutable IntSize m_sizeRespectingOrientation; >+ mutable unsigned m_orientation : 4; // ImageOrientationEnum >+ mutable unsigned m_shouldRespectImageOrientation : 1; // RespectImageOrientationEnum > > size_t m_currentFrame; // The index of the current frame of animation. > Vector<FrameData, 1> m_frames; // An array of the cached frames of the animation. We have to ref frames to pin them in the cache. >diff --git a/Source/WebCore/platform/graphics/CrossfadeGeneratedImage.cpp b/Source/WebCore/platform/graphics/CrossfadeGeneratedImage.cpp >index 1f41aa6faed3b010d1a804d1f06484a5ccd162ff..49d11fda782d72b2c18821aed7391411489abf51 100644 >--- a/Source/WebCore/platform/graphics/CrossfadeGeneratedImage.cpp >+++ b/Source/WebCore/platform/graphics/CrossfadeGeneratedImage.cpp >@@ -80,7 +80,7 @@ void CrossfadeGeneratedImage::drawCrossfade(GraphicsContext* context) > context->endTransparencyLayer(); > } > >-void CrossfadeGeneratedImage::draw(GraphicsContext* context, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace, CompositeOperator compositeOp, BlendMode) >+void CrossfadeGeneratedImage::draw(GraphicsContext* context, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace, CompositeOperator compositeOp, BlendMode, ImageOrientationEnum) > { > GraphicsContextStateSaver stateSaver(*context); > context->setCompositeOperation(compositeOp); >diff --git a/Source/WebCore/platform/graphics/CrossfadeGeneratedImage.h b/Source/WebCore/platform/graphics/CrossfadeGeneratedImage.h >index f1da2ca14d3bd9dd8abd83cd3dba27dd0ddc1073..f9fea56db8dc3dbd11291de5d68c542e6b9d581a 100644 >--- a/Source/WebCore/platform/graphics/CrossfadeGeneratedImage.h >+++ b/Source/WebCore/platform/graphics/CrossfadeGeneratedImage.h >@@ -51,7 +51,7 @@ public: > virtual IntSize size() const { return m_crossfadeSize; } > > protected: >- virtual void draw(GraphicsContext*, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator, BlendMode); >+ virtual void draw(GraphicsContext*, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator, BlendMode, ImageOrientationEnum = DefaultImageOrientation); > virtual void drawPattern(GraphicsContext*, const FloatRect& srcRect, const AffineTransform& patternTransform, const FloatPoint& phase, ColorSpace styleColorSpace, CompositeOperator, const FloatRect& dstRect, BlendMode); > > CrossfadeGeneratedImage(Image* fromImage, Image* toImage, float percentage, IntSize crossfadeSize, const IntSize&); >diff --git a/Source/WebCore/platform/graphics/GeneratedImage.h b/Source/WebCore/platform/graphics/GeneratedImage.h >index bd46588826ab6cc5d3d1afcabfab7006383bcea4..dad0606a0fe4e01835d4a5ef27fa5cad582de379 100644 >--- a/Source/WebCore/platform/graphics/GeneratedImage.h >+++ b/Source/WebCore/platform/graphics/GeneratedImage.h >@@ -50,7 +50,7 @@ public: > virtual unsigned decodedSize() const { return 0; } > > protected: >- virtual void draw(GraphicsContext*, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator, BlendMode) = 0; >+ virtual void draw(GraphicsContext*, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator, BlendMode, ImageOrientationEnum = DefaultImageOrientation) = 0; > virtual void drawPattern(GraphicsContext*, const FloatRect& srcRect, const AffineTransform& patternTransform, > const FloatPoint& phase, ColorSpace styleColorSpace, CompositeOperator, const FloatRect& destRect, BlendMode) = 0; > >diff --git a/Source/WebCore/platform/graphics/GeneratorGeneratedImage.cpp b/Source/WebCore/platform/graphics/GeneratorGeneratedImage.cpp >index a7fc565cf0903dc8c56f12f44e5160e2f6aba813..b4d4b75a140e5efca35e4b02e39a5da2e98c64dd 100644 >--- a/Source/WebCore/platform/graphics/GeneratorGeneratedImage.cpp >+++ b/Source/WebCore/platform/graphics/GeneratorGeneratedImage.cpp >@@ -32,7 +32,7 @@ > > namespace WebCore { > >-void GeneratorGeneratedImage::draw(GraphicsContext* destContext, const FloatRect& destRect, const FloatRect& srcRect, ColorSpace, CompositeOperator compositeOp, BlendMode blendMode) >+void GeneratorGeneratedImage::draw(GraphicsContext* destContext, const FloatRect& destRect, const FloatRect& srcRect, ColorSpace, CompositeOperator compositeOp, BlendMode blendMode, ImageOrientationEnum) > { > GraphicsContextStateSaver stateSaver(*destContext); > destContext->setCompositeOperation(compositeOp, blendMode); >diff --git a/Source/WebCore/platform/graphics/GeneratorGeneratedImage.h b/Source/WebCore/platform/graphics/GeneratorGeneratedImage.h >index 0b55be655a6181ec23fec5609d656da2218b265d..d7ebd1513abe94bbe5c302278bc43fe3499b2401 100644 >--- a/Source/WebCore/platform/graphics/GeneratorGeneratedImage.h >+++ b/Source/WebCore/platform/graphics/GeneratorGeneratedImage.h >@@ -45,7 +45,7 @@ public: > virtual ~GeneratorGeneratedImage() { } > > protected: >- virtual void draw(GraphicsContext*, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator, BlendMode); >+ virtual void draw(GraphicsContext*, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator, BlendMode, ImageOrientationEnum = DefaultImageOrientation); > virtual void drawPattern(GraphicsContext*, const FloatRect& srcRect, const AffineTransform& patternTransform, > const FloatPoint& phase, ColorSpace styleColorSpace, CompositeOperator, const FloatRect& destRect, BlendMode); > >diff --git a/Source/WebCore/platform/graphics/GraphicsContext.cpp b/Source/WebCore/platform/graphics/GraphicsContext.cpp >index 26e2dbb4aee401f04aa27c295524e9c6e5307d67..d8b2df352722ca100fccda6234fd616d734406a8 100644 >--- a/Source/WebCore/platform/graphics/GraphicsContext.cpp >+++ b/Source/WebCore/platform/graphics/GraphicsContext.cpp >@@ -34,8 +34,6 @@ > #include "RoundedRect.h" > #include "TextRun.h" > >-#include "stdio.h" >- > using namespace std; > > namespace WebCore { >@@ -469,39 +467,40 @@ void GraphicsContext::drawHighlightForText(const Font& font, const TextRun& run, > fillRect(font.selectionRectForText(run, point, h, from, to), backgroundColor, colorSpace); > } > >-void GraphicsContext::drawImage(Image* image, ColorSpace styleColorSpace, const IntPoint& p, CompositeOperator op, RespectImageOrientationEnum shouldRespectImageOrientation) >+void GraphicsContext::drawImage(Image* image, ColorSpace styleColorSpace, const IntPoint& p, CompositeOperator op, ImageOrientationEnum orientation, RespectImageOrientationEnum shouldRespectImageOrientation) > { > if (!image) > return; >- drawImage(image, styleColorSpace, FloatRect(IntRect(p, image->size())), FloatRect(FloatPoint(), FloatSize(image->size())), op, shouldRespectImageOrientation); >+ drawImage(image, styleColorSpace, FloatRect(IntRect(p, image->size())), FloatRect(FloatPoint(), FloatSize(image->size())), op, orientation, shouldRespectImageOrientation); > } > >-void GraphicsContext::drawImage(Image* image, ColorSpace styleColorSpace, const IntRect& r, CompositeOperator op, RespectImageOrientationEnum shouldRespectImageOrientation, bool useLowQualityScale) >+void GraphicsContext::drawImage(Image* image, ColorSpace styleColorSpace, const IntRect& r, CompositeOperator op, ImageOrientationEnum orientation, RespectImageOrientationEnum shouldRespectImageOrientation, bool useLowQualityScale) > { > if (!image) > return; >- drawImage(image, styleColorSpace, FloatRect(r), FloatRect(FloatPoint(), FloatSize(image->size())), op, shouldRespectImageOrientation, useLowQualityScale); >+ drawImage(image, styleColorSpace, FloatRect(r), FloatRect(FloatPoint(), FloatSize(image->size())), op, orientation, shouldRespectImageOrientation, useLowQualityScale); > } > >-void GraphicsContext::drawImage(Image* image, ColorSpace styleColorSpace, const IntPoint& dest, const IntRect& srcRect, CompositeOperator op, RespectImageOrientationEnum shouldRespectImageOrientation) >+void GraphicsContext::drawImage(Image* image, ColorSpace styleColorSpace, const IntPoint& dest, const IntRect& srcRect, CompositeOperator op, ImageOrientationEnum orientation, RespectImageOrientationEnum shouldRespectImageOrientation) > { >- drawImage(image, styleColorSpace, FloatRect(IntRect(dest, srcRect.size())), FloatRect(srcRect), op, shouldRespectImageOrientation); >+ drawImage(image, styleColorSpace, FloatRect(IntRect(dest, srcRect.size())), FloatRect(srcRect), op, orientation, shouldRespectImageOrientation); > } > >-void GraphicsContext::drawImage(Image* image, ColorSpace styleColorSpace, const FloatRect& dest, const FloatRect& src, CompositeOperator op, RespectImageOrientationEnum shouldRespectImageOrientation, bool useLowQualityScale) >+void GraphicsContext::drawImage(Image* image, ColorSpace styleColorSpace, const FloatRect& dest, const FloatRect& src, CompositeOperator op, ImageOrientationEnum orientation, RespectImageOrientationEnum shouldRespectImageOrientation, bool useLowQualityScale) > { >- drawImage(image, styleColorSpace, dest, src, op, BlendModeNormal, shouldRespectImageOrientation, useLowQualityScale); >+ drawImage(image, styleColorSpace, dest, src, op, BlendModeNormal, orientation, shouldRespectImageOrientation, useLowQualityScale); > } > >-void GraphicsContext::drawImage(Image* image, ColorSpace styleColorSpace, const FloatRect& dest) >+void GraphicsContext::drawImage(Image* image, ColorSpace styleColorSpace, const FloatRect& dest, ImageOrientationEnum) > { > if (!image) > return; > drawImage(image, styleColorSpace, dest, FloatRect(IntRect(IntPoint(), image->size()))); > } > >-void GraphicsContext::drawImage(Image* image, ColorSpace styleColorSpace, const FloatRect& dest, const FloatRect& src, CompositeOperator op, BlendMode blendMode, RespectImageOrientationEnum shouldRespectImageOrientation, bool useLowQualityScale) >-{ if (paintingDisabled() || !image) >+void GraphicsContext::drawImage(Image* image, ColorSpace styleColorSpace, const FloatRect& dest, const FloatRect& src, CompositeOperator op, BlendMode blendMode, ImageOrientationEnum orientation, RespectImageOrientationEnum shouldRespectImageOrientation, bool useLowQualityScale) >+{ >+ if (paintingDisabled() || !image) > return; > > InterpolationQuality previousInterpolationQuality = InterpolationDefault; >@@ -512,7 +511,7 @@ void GraphicsContext::drawImage(Image* image, ColorSpace styleColorSpace, const > setImageInterpolationQuality(InterpolationNone); > } > >- image->draw(this, dest, src, styleColorSpace, op, blendMode, shouldRespectImageOrientation); >+ image->draw(this, dest, src, styleColorSpace, op, blendMode, orientation, shouldRespectImageOrientation); > > if (useLowQualityScale) > setImageInterpolationQuality(previousInterpolationQuality); >@@ -540,7 +539,7 @@ void GraphicsContext::drawTiledImage(Image* image, ColorSpace styleColorSpace, c > > if (hRule == Image::StretchTile && vRule == Image::StretchTile) { > // Just do a scale. >- drawImage(image, styleColorSpace, dest, srcRect, op); >+ drawImage(image, styleColorSpace, dest, srcRect, op, DefaultImageOrientation); > return; > } > >diff --git a/Source/WebCore/platform/graphics/GraphicsContext.h b/Source/WebCore/platform/graphics/GraphicsContext.h >index 9c5f4da19477ff457cfeeee49bffe740c08419fc..1e232768ae98bdc5f3ede9a1c97a67d3fae34559 100644 >--- a/Source/WebCore/platform/graphics/GraphicsContext.h >+++ b/Source/WebCore/platform/graphics/GraphicsContext.h >@@ -287,12 +287,12 @@ namespace WebCore { > > void strokeRect(const FloatRect&, float lineWidth); > >- void drawImage(Image*, ColorSpace styleColorSpace, const IntPoint&, CompositeOperator = CompositeSourceOver, RespectImageOrientationEnum = DoNotRespectImageOrientation); >- void drawImage(Image*, ColorSpace styleColorSpace, const IntRect&, CompositeOperator = CompositeSourceOver, RespectImageOrientationEnum = DoNotRespectImageOrientation, bool useLowQualityScale = false); >- void drawImage(Image*, ColorSpace styleColorSpace, const IntPoint& destPoint, const IntRect& srcRect, CompositeOperator = CompositeSourceOver, RespectImageOrientationEnum = DoNotRespectImageOrientation); >- void drawImage(Image*, ColorSpace styleColorSpace, const FloatRect& destRect); >- void drawImage(Image*, ColorSpace styleColorSpace, const FloatRect& destRect, const FloatRect& srcRect, CompositeOperator = CompositeSourceOver, RespectImageOrientationEnum = DoNotRespectImageOrientation, bool useLowQualityScale = false); >- void drawImage(Image*, ColorSpace styleColorSpace, const FloatRect& destRect, const FloatRect& srcRect, CompositeOperator, BlendMode, RespectImageOrientationEnum = DoNotRespectImageOrientation, bool useLowQualityScale = false); >+ void drawImage(Image*, ColorSpace styleColorSpace, const IntPoint&, CompositeOperator = CompositeSourceOver, ImageOrientationEnum = DefaultImageOrientation, RespectImageOrientationEnum = DoNotRespectImageOrientation); >+ void drawImage(Image*, ColorSpace styleColorSpace, const IntRect&, CompositeOperator = CompositeSourceOver, ImageOrientationEnum = DefaultImageOrientation, RespectImageOrientationEnum = DoNotRespectImageOrientation, bool useLowQualityScale = false); >+ void drawImage(Image*, ColorSpace styleColorSpace, const IntPoint& destPoint, const IntRect& srcRect, CompositeOperator = CompositeSourceOver, ImageOrientationEnum = DefaultImageOrientation, RespectImageOrientationEnum = DoNotRespectImageOrientation); >+ void drawImage(Image*, ColorSpace styleColorSpace, const FloatRect& destRect, ImageOrientationEnum = DefaultImageOrientation); >+ void drawImage(Image*, ColorSpace styleColorSpace, const FloatRect& destRect, const FloatRect& srcRect, CompositeOperator = CompositeSourceOver, ImageOrientationEnum = DefaultImageOrientation, RespectImageOrientationEnum = DoNotRespectImageOrientation, bool useLowQualityScale = false); >+ void drawImage(Image*, ColorSpace styleColorSpace, const FloatRect& destRect, const FloatRect& srcRect, CompositeOperator, BlendMode, ImageOrientationEnum = DefaultImageOrientation, RespectImageOrientationEnum = DoNotRespectImageOrientation, bool useLowQualityScale = false); > > void drawTiledImage(Image*, ColorSpace styleColorSpace, const IntRect& destRect, const IntPoint& srcPoint, const IntSize& tileSize, > CompositeOperator = CompositeSourceOver, bool useLowQualityScale = false, BlendMode = BlendModeNormal); >diff --git a/Source/WebCore/platform/graphics/Image.cpp b/Source/WebCore/platform/graphics/Image.cpp >index b83bc4c509c3d94cc38792ac33a5b75d1176a3ec..a2f6b686678b0b11bd6db9fd72ab17168efb5161 100644 >--- a/Source/WebCore/platform/graphics/Image.cpp >+++ b/Source/WebCore/platform/graphics/Image.cpp >@@ -90,9 +90,9 @@ void Image::fillWithSolidColor(GraphicsContext* ctxt, const FloatRect& dstRect, > ctxt->setCompositeOperation(previousOperator); > } > >-void Image::draw(GraphicsContext* ctx, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator op, BlendMode blendMode, RespectImageOrientationEnum) >+void Image::draw(GraphicsContext* ctx, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator op, BlendMode blendMode, ImageOrientationEnum orientation, RespectImageOrientationEnum) > { >- draw(ctx, dstRect, srcRect, styleColorSpace, op, blendMode); >+ draw(ctx, dstRect, srcRect, styleColorSpace, op, blendMode, orientation); > } > > void Image::drawTiled(GraphicsContext* ctxt, const FloatRect& destRect, const FloatPoint& srcPoint, const FloatSize& scaledTileSize, ColorSpace styleColorSpace, CompositeOperator op, BlendMode blendMode) >diff --git a/Source/WebCore/platform/graphics/Image.h b/Source/WebCore/platform/graphics/Image.h >index 78912efea182a236a318b49f276c9744c466734c..8e8318008ce70076fa1e2fff8d6068bf4b1e41c6 100644 >--- a/Source/WebCore/platform/graphics/Image.h >+++ b/Source/WebCore/platform/graphics/Image.h >@@ -195,8 +195,8 @@ protected: > #if PLATFORM(WIN) > virtual void drawFrameMatchingSourceSize(GraphicsContext*, const FloatRect& dstRect, const IntSize& srcSize, ColorSpace styleColorSpace, CompositeOperator) { } > #endif >- virtual void draw(GraphicsContext*, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator, BlendMode) = 0; >- virtual void draw(GraphicsContext*, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator, BlendMode, RespectImageOrientationEnum); >+ virtual void draw(GraphicsContext*, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator, BlendMode, ImageOrientationEnum = DefaultImageOrientation) = 0; >+ virtual void draw(GraphicsContext*, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator, BlendMode, ImageOrientationEnum, RespectImageOrientationEnum); > void drawTiled(GraphicsContext*, const FloatRect& dstRect, const FloatPoint& srcPoint, const FloatSize& tileSize, ColorSpace styleColorSpace, > CompositeOperator , BlendMode); > void drawTiled(GraphicsContext*, const FloatRect& dstRect, const FloatRect& srcRect, const FloatSize& tileScaleFactor, TileRule hRule, TileRule vRule, ColorSpace styleColorSpace, CompositeOperator); >diff --git a/Source/WebCore/platform/graphics/ImageSource.cpp b/Source/WebCore/platform/graphics/ImageSource.cpp >index 25c095bf820f6a0b25e0bbc8d45a948c8d5a967c..e619b49423137ae768198462ab6ea634649a0bc7 100644 >--- a/Source/WebCore/platform/graphics/ImageSource.cpp >+++ b/Source/WebCore/platform/graphics/ImageSource.cpp >@@ -99,12 +99,12 @@ bool ImageSource::isSizeAvailable() > return m_decoder && m_decoder->isSizeAvailable(); > } > >-IntSize ImageSource::size(RespectImageOrientationEnum shouldRespectOrientation) const >+IntSize ImageSource::size(ImageOrientationEnum orientation, RespectImageOrientationEnum shouldRespectOrientation) const > { >- return frameSizeAtIndex(0, shouldRespectOrientation); >+ return frameSizeAtIndex(0, orientation, shouldRespectOrientation); > } > >-IntSize ImageSource::frameSizeAtIndex(size_t index, RespectImageOrientationEnum shouldRespectOrientation) const >+IntSize ImageSource::frameSizeAtIndex(size_t index, ImageOrientationEnum, RespectImageOrientationEnum shouldRespectOrientation) const > { > if (!m_decoder) > return IntSize(); >diff --git a/Source/WebCore/platform/graphics/ImageSource.h b/Source/WebCore/platform/graphics/ImageSource.h >index cd0d2b7f2b40a691c6ed40b6fa30bd8605224a26..ae30f8eca07c646a5b40fa0fe4ee96985bc63366 100644 >--- a/Source/WebCore/platform/graphics/ImageSource.h >+++ b/Source/WebCore/platform/graphics/ImageSource.h >@@ -132,8 +132,8 @@ public: > String filenameExtension() const; > > bool isSizeAvailable(); >- IntSize size(RespectImageOrientationEnum = DoNotRespectImageOrientation) const; >- IntSize frameSizeAtIndex(size_t, RespectImageOrientationEnum = DoNotRespectImageOrientation) const; >+ IntSize size(ImageOrientationEnum = DefaultImageOrientation, RespectImageOrientationEnum = DoNotRespectImageOrientation) const; >+ IntSize frameSizeAtIndex(size_t, ImageOrientationEnum = DefaultImageOrientation, RespectImageOrientationEnum = DoNotRespectImageOrientation) const; > > bool getHotSpot(IntPoint&) const; > >diff --git a/Source/WebCore/platform/graphics/cairo/BitmapImageCairo.cpp b/Source/WebCore/platform/graphics/cairo/BitmapImageCairo.cpp >index 56077318b56fcb2c02f400988a7a24e4aeaa8429..9e0639d7cbae6af95b5c58f6a5b01edd2b30d128 100644 >--- a/Source/WebCore/platform/graphics/cairo/BitmapImageCairo.cpp >+++ b/Source/WebCore/platform/graphics/cairo/BitmapImageCairo.cpp >@@ -64,13 +64,13 @@ BitmapImage::BitmapImage(PassRefPtr<cairo_surface_t> nativeImage, ImageObserver* > checkForSolidColor(); > } > >-void BitmapImage::draw(GraphicsContext* context, const FloatRect& dst, const FloatRect& src, ColorSpace styleColorSpace, CompositeOperator op, BlendMode blendMode) >+void BitmapImage::draw(GraphicsContext* context, const FloatRect& dst, const FloatRect& src, ColorSpace styleColorSpace, CompositeOperator op, BlendMode blendMode, ImageOrientationEnum orientation) > { >- draw(context, dst, src, styleColorSpace, op, blendMode, DoNotRespectImageOrientation); >+ draw(context, dst, src, styleColorSpace, op, blendMode, orientation, DoNotRespectImageOrientation); > } > > void BitmapImage::draw(GraphicsContext* context, const FloatRect& dst, const FloatRect& src, ColorSpace styleColorSpace, CompositeOperator op, >- BlendMode blendMode, RespectImageOrientationEnum shouldRespectImageOrientation) >+ BlendMode blendMode, ImageOrientationEnum orientation, RespectImageOrientationEnum shouldRespectImageOrientation) > { > if (!dst.width() || !dst.height() || !src.width() || !src.height()) > return; >@@ -101,18 +101,18 @@ void BitmapImage::draw(GraphicsContext* context, const FloatRect& dst, const Flo > FloatRect adjustedSrcRect(src); > #endif > >- ImageOrientation orientation = DefaultImageOrientation; >+ ImageOrientation frameOrientation(orientation); > if (shouldRespectImageOrientation == RespectImageOrientation) >- orientation = frameOrientationAtIndex(m_currentFrame); >+ frameOrientation = frameOrientationAtIndex(m_currentFrame); > > FloatRect dstRect = dst; > >- if (orientation != DefaultImageOrientation) { >+ if (frameOrientation != DefaultImageOrientation) { > // ImageOrientation expects the origin to be at (0, 0). > context->translate(dstRect.x(), dstRect.y()); > dstRect.setLocation(FloatPoint()); >- context->concatCTM(orientation.transformFromDefault(dstRect.size())); >- if (orientation.usesWidthAsHeight()) { >+ context->concatCTM(frameOrientation.transformFromDefault(dstRect.size())); >+ if (frameOrientation.usesWidthAsHeight()) { > // The destination rectangle will have it's width and height already reversed for the orientation of > // the image, as it was needed for page layout, so we need to reverse it back here. > dstRect = FloatRect(dstRect.x(), dstRect.y(), dstRect.height(), dstRect.width()); >diff --git a/Source/WebCore/platform/graphics/cairo/ImageBufferCairo.cpp b/Source/WebCore/platform/graphics/cairo/ImageBufferCairo.cpp >index 3cfc2f4d1abaaf03a3807afa3f6333b1fd6a2965..b18b7ef7fd413c04e07bac3f2833a6ee49223461 100644 >--- a/Source/WebCore/platform/graphics/cairo/ImageBufferCairo.cpp >+++ b/Source/WebCore/platform/graphics/cairo/ImageBufferCairo.cpp >@@ -147,7 +147,7 @@ void ImageBuffer::draw(GraphicsContext* destinationContext, ColorSpace styleColo > { > BackingStoreCopy copyMode = destinationContext == context() ? CopyBackingStore : DontCopyBackingStore; > RefPtr<Image> image = copyImage(copyMode); >- destinationContext->drawImage(image.get(), styleColorSpace, destRect, srcRect, op, blendMode, DoNotRespectImageOrientation, useLowQualityScale); >+ destinationContext->drawImage(image.get(), styleColorSpace, destRect, srcRect, op, blendMode, DefaultImageOrientation, DoNotRespectImageOrientation, useLowQualityScale); > } > > void ImageBuffer::drawPattern(GraphicsContext* context, const FloatRect& srcRect, const AffineTransform& patternTransform, >diff --git a/Source/WebCore/platform/graphics/cg/BitmapImageCG.cpp b/Source/WebCore/platform/graphics/cg/BitmapImageCG.cpp >index cd037a98a43417ab6fcbbcec84e8e94fee7074d9..562b65edcf9dfa155742c87290c7f88aefc5ec7a 100644 >--- a/Source/WebCore/platform/graphics/cg/BitmapImageCG.cpp >+++ b/Source/WebCore/platform/graphics/cg/BitmapImageCG.cpp >@@ -161,12 +161,12 @@ RetainPtr<CFArrayRef> BitmapImage::getCGImageArray() > return adoptCF(array); > } > >-void BitmapImage::draw(GraphicsContext* ctx, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator op, BlendMode blendMode) >+void BitmapImage::draw(GraphicsContext* ctx, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator op, BlendMode blendMode, ImageOrientationEnum orientation) > { >- draw(ctx, dstRect, srcRect, styleColorSpace, op, blendMode, DoNotRespectImageOrientation); >+ draw(ctx, dstRect, srcRect, styleColorSpace, op, blendMode, orientation, DoNotRespectImageOrientation); > } > >-void BitmapImage::draw(GraphicsContext* ctxt, const FloatRect& destRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator compositeOp, BlendMode blendMode, RespectImageOrientationEnum shouldRespectImageOrientation) >+void BitmapImage::draw(GraphicsContext* ctxt, const FloatRect& destRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator compositeOp, BlendMode blendMode, ImageOrientationEnum orientation, RespectImageOrientationEnum shouldRespectImageOrientation) > { > startAnimation(); > >@@ -180,12 +180,12 @@ void BitmapImage::draw(GraphicsContext* ctxt, const FloatRect& destRect, const F > } > > FloatSize selfSize = currentFrameSize(); >- ImageOrientation orientation = DefaultImageOrientation; >+ ImageOrientation frameOrientation(orientation); > > if (shouldRespectImageOrientation == RespectImageOrientation) >- orientation = frameOrientationAtIndex(m_currentFrame); >+ frameOrientation = frameOrientationAtIndex(m_currentFrame); > >- ctxt->drawNativeImage(image, selfSize, styleColorSpace, destRect, srcRect, compositeOp, blendMode, orientation); >+ ctxt->drawNativeImage(image, selfSize, styleColorSpace, destRect, srcRect, compositeOp, blendMode, frameOrientation); > > if (imageObserver()) > imageObserver()->didDraw(this); >diff --git a/Source/WebCore/platform/graphics/cg/ImageSourceCG.cpp b/Source/WebCore/platform/graphics/cg/ImageSourceCG.cpp >index 96e21c9723a0fddb42dab4c58cca5763d09ab596..fa98054c2e6b171c6d6820e52f0c4e2b48da67bb 100644 >--- a/Source/WebCore/platform/graphics/cg/ImageSourceCG.cpp >+++ b/Source/WebCore/platform/graphics/cg/ImageSourceCG.cpp >@@ -195,7 +195,7 @@ static ImageOrientation orientationFromProperties(CFDictionaryRef imagePropertie > return ImageOrientation::fromEXIFValue(exifValue); > } > >-IntSize ImageSource::frameSizeAtIndex(size_t index, RespectImageOrientationEnum shouldRespectOrientation) const >+IntSize ImageSource::frameSizeAtIndex(size_t index, ImageOrientationEnum, RespectImageOrientationEnum shouldRespectOrientation) const > { > RetainPtr<CFDictionaryRef> properties = adoptCF(CGImageSourceCopyPropertiesAtIndex(m_decoder, index, imageSourceOptions(SkipMetadata))); > >@@ -225,9 +225,9 @@ ImageOrientation ImageSource::orientationAtIndex(size_t index) const > return orientationFromProperties(properties.get()); > } > >-IntSize ImageSource::size(RespectImageOrientationEnum shouldRespectOrientation) const >+IntSize ImageSource::size(ImageOrientationEnum orientation, RespectImageOrientationEnum shouldRespectOrientation) const > { >- return frameSizeAtIndex(0, shouldRespectOrientation); >+ return frameSizeAtIndex(0, orientation, shouldRespectOrientation); > } > > bool ImageSource::getHotSpot(IntPoint& hotSpot) const >@@ -384,7 +384,7 @@ bool ImageSource::frameHasAlphaAtIndex(size_t index) const > > unsigned ImageSource::frameBytesAtIndex(size_t index) const > { >- IntSize frameSize = frameSizeAtIndex(index, RespectImageOrientation); >+ IntSize frameSize = frameSizeAtIndex(index, DefaultImageOrientation, RespectImageOrientation); > return frameSize.width() * frameSize.height() * 4; > } > >diff --git a/Source/WebCore/platform/graphics/cg/PDFDocumentImage.cpp b/Source/WebCore/platform/graphics/cg/PDFDocumentImage.cpp >index ecd73ef130e1acce3511a31fac8babac59d2ab04..96d4115327a80678b637354c75ebeb2f466ad7e4 100644 >--- a/Source/WebCore/platform/graphics/cg/PDFDocumentImage.cpp >+++ b/Source/WebCore/platform/graphics/cg/PDFDocumentImage.cpp >@@ -163,7 +163,7 @@ int PDFDocumentImage::pageCount() const > return m_document ? CGPDFDocumentGetNumberOfPages(m_document) : 0; > } > >-void PDFDocumentImage::draw(GraphicsContext* context, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace, CompositeOperator op, BlendMode) >+void PDFDocumentImage::draw(GraphicsContext* context, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace, CompositeOperator op, BlendMode, ImageOrientationEnum) > { > if (!m_document || m_currentPage == -1) > return; >diff --git a/Source/WebCore/platform/graphics/cg/PDFDocumentImage.h b/Source/WebCore/platform/graphics/cg/PDFDocumentImage.h >index 689a0310e7fa717ffb21a9e54e4ce64d06b14612..f624a72c7bdad339231e427fd9f388a64379b70b 100644 >--- a/Source/WebCore/platform/graphics/cg/PDFDocumentImage.h >+++ b/Source/WebCore/platform/graphics/cg/PDFDocumentImage.h >@@ -63,7 +63,7 @@ namespace WebCore { > virtual IntSize size() const; > > PDFDocumentImage(); >- virtual void draw(GraphicsContext*, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator, BlendMode); >+ virtual void draw(GraphicsContext*, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator, BlendMode, ImageOrientationEnum); > > // FIXME: Implement this to be less conservative. > virtual bool currentFrameKnownToBeOpaque() OVERRIDE { return false; } >diff --git a/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp b/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp >index 6b32abf3a2ed6530d9625f437f1a6c42beea2d9b..d732e03134c92cc78cb2c1a0290023d804238779 100644 >--- a/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp >+++ b/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp >@@ -442,7 +442,7 @@ void MediaPlayerPrivateGStreamerBase::paint(GraphicsContext* context, const IntR > } > > context->drawImage(reinterpret_cast<Image*>(gstImage->image().get()), ColorSpaceSRGB, >- rect, gstImage->rect(), CompositeCopy, DoNotRespectImageOrientation, false); >+ rect, gstImage->rect(), CompositeCopy, DefaultImageOrientation, DoNotRespectImageOrientation, false); > g_mutex_unlock(m_bufferMutex); > } > >diff --git a/Source/WebCore/platform/gtk/ClipboardGtk.cpp b/Source/WebCore/platform/gtk/ClipboardGtk.cpp >index d388b5b6c170f7cd35ec407ef1aaeaf4c4f6b279..a60a3ef7c2f8c85ad98ddee717e377c4a323dabb 100644 >--- a/Source/WebCore/platform/gtk/ClipboardGtk.cpp >+++ b/Source/WebCore/platform/gtk/ClipboardGtk.cpp >@@ -31,7 +31,7 @@ DragImageRef Clipboard::createDragImage(IntPoint& location) const > location = m_dragLoc; > > if (m_dragImage) >- return createDragImageFromImage(m_dragImage->image()); >+ return createDragImageFromImage(m_dragImage->image(), DefaultImageOrientation); > > if (m_dragImageElement) { > Document* document = m_dragImageElement->document(); >diff --git a/Source/WebCore/platform/gtk/DragImageGtk.cpp b/Source/WebCore/platform/gtk/DragImageGtk.cpp >index 9801b19042bc0cdb55c74363eaed69d01d29308a..20d5854980e44fe72c1c6c1157f67cfe521598c0 100644 >--- a/Source/WebCore/platform/gtk/DragImageGtk.cpp >+++ b/Source/WebCore/platform/gtk/DragImageGtk.cpp >@@ -76,7 +76,7 @@ DragImageRef dissolveDragImageToFraction(DragImageRef image, float fraction) > return image; > } > >-DragImageRef createDragImageFromImage(Image* image, RespectImageOrientationEnum) >+DragImageRef createDragImageFromImage(Image* image, ImageOrientationEnum, RespectImageOrientationEnum) > { > return image->nativeImageForCurrentFrame().leakRef(); > } >diff --git a/Source/WebCore/platform/mac/DragImageMac.mm b/Source/WebCore/platform/mac/DragImageMac.mm >index 1e1583d51cccc4d265785a338fe235513bb1f37f..6e67b95ef15d2046b14d071f8e89b38a21ac7ca0 100644 >--- a/Source/WebCore/platform/mac/DragImageMac.mm >+++ b/Source/WebCore/platform/mac/DragImageMac.mm >@@ -77,19 +77,19 @@ RetainPtr<NSImage> dissolveDragImageToFraction(RetainPtr<NSImage> image, float d > return dissolvedImage; > } > >-RetainPtr<NSImage> createDragImageFromImage(Image* image, RespectImageOrientationEnum shouldRespectImageOrientation) >+RetainPtr<NSImage> createDragImageFromImage(Image* image, ImageOrientationEnum orientation, RespectImageOrientationEnum shouldRespectImageOrientation) > { > IntSize size = image->size(); > > if (image->isBitmapImage()) { >- ImageOrientation orientation = DefaultImageOrientation; >+ ImageOrientation frameOrientation(orientation); > BitmapImage* bitmapImage = static_cast<BitmapImage *>(image); >- IntSize sizeRespectingOrientation = bitmapImage->sizeRespectingOrientation(); >+ IntSize sizeRespectingOrientation = bitmapImage->sizeRespectingOrientation(orientation, shouldRespectImageOrientation); > >- if (shouldRespectImageOrientation == RespectImageOrientation) >- orientation = bitmapImage->currentFrameOrientation(); >+ if (orientation == OriginTopLeft && shouldRespectImageOrientation == RespectImageOrientation) >+ frameOrientation = bitmapImage->currentFrameOrientation(); > >- if (orientation != DefaultImageOrientation) { >+ if (frameOrientation != DefaultImageOrientation) { > // Construct a correctly-rotated copy of the image to use as the drag image. > FloatRect destRect(FloatPoint(), sizeRespectingOrientation); > >@@ -99,9 +99,9 @@ RetainPtr<NSImage> createDragImageFromImage(Image* image, RespectImageOrientatio > // ImageOrientation uses top-left coordinates, need to flip to bottom-left, apply... > CGAffineTransform transform = CGAffineTransformMakeTranslation(0, destRect.height()); > transform = CGAffineTransformScale(transform, 1, -1); >- transform = CGAffineTransformConcat(orientation.transformFromDefault(sizeRespectingOrientation), transform); >+ transform = CGAffineTransformConcat(frameOrientation.transformFromDefault(sizeRespectingOrientation), transform); > >- if (orientation.usesWidthAsHeight()) >+ if (frameOrientation.usesWidthAsHeight()) > destRect = FloatRect(destRect.x(), destRect.y(), destRect.height(), destRect.width()); > > // ...and flip back. >diff --git a/Source/WebCore/platform/qt/DragImageQt.cpp b/Source/WebCore/platform/qt/DragImageQt.cpp >index d388f39dc2538687caf307fddcc6c51693a40998..dab210006fec7f64b0594cd706d2880c7c0ea379 100644 >--- a/Source/WebCore/platform/qt/DragImageQt.cpp >+++ b/Source/WebCore/platform/qt/DragImageQt.cpp >@@ -60,7 +60,7 @@ DragImageRef dissolveDragImageToFraction(DragImageRef image, float) > return image; > } > >-DragImageRef createDragImageFromImage(Image* image, RespectImageOrientationEnum) >+DragImageRef createDragImageFromImage(Image* image, ImageOrientationEnum, RespectImageOrientationEnum) > { > if (!image || !image->nativeImageForCurrentFrame()) > return 0; >diff --git a/Source/WebCore/platform/win/DragImageCGWin.cpp b/Source/WebCore/platform/win/DragImageCGWin.cpp >index 93025b7f950c97027727d3202721d714ad0ff9a6..d2419733ae242b72bb991e6e2c6a79b78b733921 100644 >--- a/Source/WebCore/platform/win/DragImageCGWin.cpp >+++ b/Source/WebCore/platform/win/DragImageCGWin.cpp >@@ -120,7 +120,7 @@ exit: > return hbmp; > } > >-DragImageRef createDragImageFromImage(Image* img, RespectImageOrientationEnum) >+DragImageRef createDragImageFromImage(Image* img, ImageOrientationEnum, RespectImageOrientationEnum) > { > HBITMAP hbmp = 0; > HWndDC dc(0); >diff --git a/Source/WebCore/platform/win/DragImageCairoWin.cpp b/Source/WebCore/platform/win/DragImageCairoWin.cpp >index 681ccfe7cc126133afed2f3caf827315deb46628..a6404b2e65e3fdb8dd625105f850dcab579364c7 100644 >--- a/Source/WebCore/platform/win/DragImageCairoWin.cpp >+++ b/Source/WebCore/platform/win/DragImageCairoWin.cpp >@@ -150,7 +150,7 @@ exit: > return hbmp; > } > >-DragImageRef createDragImageFromImage(Image* img, RespectImageOrientationEnum) >+DragImageRef createDragImageFromImage(Image* img, ImageOrientationEnum, RespectImageOrientationEnum) > { > HBITMAP hbmp = 0; > HDC dc = GetDC(0); >diff --git a/Source/WebCore/rendering/RenderEmbeddedObject.cpp b/Source/WebCore/rendering/RenderEmbeddedObject.cpp >index 69b0c7d240445769d64c6e77bde4d1b88eba9c07..28fe0c62ebfad5bde23a53f892c89ea4d6267f99 100644 >--- a/Source/WebCore/rendering/RenderEmbeddedObject.cpp >+++ b/Source/WebCore/rendering/RenderEmbeddedObject.cpp >@@ -170,7 +170,7 @@ void RenderEmbeddedObject::paintSnapshotImage(PaintInfo& paintInfo, const Layout > return; > > bool useLowQualityScaling = shouldPaintAtLowQuality(context, image, image, alignedRect.size()); >- context->drawImage(image, style()->colorSpace(), alignedRect, CompositeSourceOver, shouldRespectImageOrientation(), useLowQualityScaling); >+ context->drawImage(image, style()->colorSpace(), alignedRect, CompositeSourceOver, DefaultImageOrientation, shouldRespectImageOrientation(), useLowQualityScaling); > } > > void RenderEmbeddedObject::paintContents(PaintInfo& paintInfo, const LayoutPoint& paintOffset) >diff --git a/Source/WebCore/rendering/RenderImage.cpp b/Source/WebCore/rendering/RenderImage.cpp >index 698894bb98c5cf855af94a78d4ebb18748eec03a..4fb1bdb6adb3ee1d994578051915d28445540051 100644 >--- a/Source/WebCore/rendering/RenderImage.cpp >+++ b/Source/WebCore/rendering/RenderImage.cpp >@@ -146,6 +146,11 @@ void RenderImage::styleDidChange(StyleDifference diff, const RenderStyle* oldSty > imageDimensionsChanged(true /* imageSizeChanged */); > m_needsToSetSizeForAltText = false; > } >+#if ENABLE(CSS_IMAGE_ORIENTATION) >+ if (diff == StyleDifferenceLayout >+ && oldStyle->imageOrientation() != style()->imageOrientation()) >+ return imageDimensionsChanged(true /* imageSizeChanged */); >+#endif > #if ENABLE(CSS_IMAGE_RESOLUTION) > if (diff == StyleDifferenceLayout > && (oldStyle->imageResolution() != style()->imageResolution() >@@ -353,7 +358,11 @@ void RenderImage::paintReplaced(PaintInfo& paintInfo, const LayoutPoint& paintOf > if (centerY < 0) > centerY = 0; > imageOffset = LayoutSize(leftBorder + leftPad + centerX + borderWidth, topBorder + topPad + centerY + borderWidth); >- context->drawImage(image.get(), style()->colorSpace(), pixelSnappedIntRect(LayoutRect(paintOffset + imageOffset, imageSize)), CompositeSourceOver, shouldRespectImageOrientation()); >+ ImageOrientationEnum orientation = DefaultImageOrientation; >+#if ENABLE(CSS_IMAGE_ORIENTATION) >+ orientation = style()->imageOrientation(); >+#endif >+ context->drawImage(image.get(), style()->colorSpace(), pixelSnappedIntRect(LayoutRect(paintOffset + imageOffset, imageSize)), CompositeSourceOver, orientation, shouldRespectImageOrientation()); > errorPictureDrawn = true; > } > >@@ -475,7 +484,11 @@ void RenderImage::paintIntoRect(GraphicsContext* context, const LayoutRect& rect > CompositeOperator compositeOperator = imageElt ? imageElt->compositeOperator() : CompositeSourceOver; > Image* image = m_imageResource->image().get(); > bool useLowQualityScaling = shouldPaintAtLowQuality(context, image, image, alignedRect.size()); >- context->drawImage(m_imageResource->image(alignedRect.width(), alignedRect.height()).get(), style()->colorSpace(), alignedRect, compositeOperator, shouldRespectImageOrientation(), useLowQualityScaling); >+ ImageOrientationEnum orientation = DefaultImageOrientation; >+#if ENABLE(CSS_IMAGE_ORIENTATION) >+ orientation = style()->imageOrientation(); >+#endif >+ context->drawImage(m_imageResource->image(alignedRect.width(), alignedRect.height()).get(), style()->colorSpace(), alignedRect, compositeOperator, orientation, shouldRespectImageOrientation(), useLowQualityScaling); > } > > bool RenderImage::boxShadowShouldBeAppliedToBackground(BackgroundBleedAvoidance bleedAvoidance, InlineFlowBox*) const >diff --git a/Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp b/Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp >index 075910abe9d0346739d699e913fb33f18ddfa123..ec3d478787b739888bf56aedb258f3ab348eb4bc 100644 >--- a/Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp >+++ b/Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp >@@ -139,7 +139,7 @@ void RenderSnapshottedPlugIn::paintSnapshot(PaintInfo& paintInfo, const LayoutPo > return; > > bool useLowQualityScaling = shouldPaintAtLowQuality(context, image, image, alignedRect.size()); >- context->drawImage(image, style()->colorSpace(), alignedRect, CompositeSourceOver, shouldRespectImageOrientation(), useLowQualityScaling); >+ context->drawImage(image, style()->colorSpace(), alignedRect, CompositeSourceOver, DefaultImageOrientation, shouldRespectImageOrientation(), useLowQualityScaling); > } > > CursorDirective RenderSnapshottedPlugIn::getCursor(const LayoutPoint& point, Cursor& overrideCursor) const >diff --git a/Source/WebCore/rendering/style/RenderStyle.cpp b/Source/WebCore/rendering/style/RenderStyle.cpp >index 364fc1271843d7831ed9c67a59c82adffdba23e2..1adef6de192eee8b10ecc03f064bbde04c8c897c 100644 >--- a/Source/WebCore/rendering/style/RenderStyle.cpp >+++ b/Source/WebCore/rendering/style/RenderStyle.cpp >@@ -493,6 +493,9 @@ bool RenderStyle::changeRequiresLayout(const RenderStyle* other, unsigned& chang > || rareInheritedData->m_tabSize != other->rareInheritedData->m_tabSize > || rareInheritedData->m_lineBoxContain != other->rareInheritedData->m_lineBoxContain > || rareInheritedData->m_lineGrid != other->rareInheritedData->m_lineGrid >+#if ENABLE(CSS_IMAGE_ORIENTATION) >+ || rareInheritedData->m_imageOrientation != other->rareInheritedData->m_imageOrientation >+#endif > #if ENABLE(CSS_IMAGE_RESOLUTION) > || rareInheritedData->m_imageResolutionSource != other->rareInheritedData->m_imageResolutionSource > || rareInheritedData->m_imageResolutionSnap != other->rareInheritedData->m_imageResolutionSnap >diff --git a/Source/WebCore/svg/graphics/SVGImage.cpp b/Source/WebCore/svg/graphics/SVGImage.cpp >index fc14b7616a79a85f8d1bea34a709169622c29134..bb96e7f59015df3c21d85ac4f738916ecb01da8a 100644 >--- a/Source/WebCore/svg/graphics/SVGImage.cpp >+++ b/Source/WebCore/svg/graphics/SVGImage.cpp >@@ -191,7 +191,7 @@ void SVGImage::drawPatternForContainer(GraphicsContext* context, const FloatSize > image->drawPattern(context, scaledSrcRect, unscaledPatternTransform, phase, colorSpace, compositeOp, dstRect); > } > >-void SVGImage::draw(GraphicsContext* context, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace, CompositeOperator compositeOp, BlendMode blendMode) >+void SVGImage::draw(GraphicsContext* context, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace, CompositeOperator compositeOp, BlendMode blendMode, ImageOrientationEnum) > { > if (!m_page) > return; >diff --git a/Source/WebCore/svg/graphics/SVGImage.h b/Source/WebCore/svg/graphics/SVGImage.h >index 660a37b9d45b0f47468dbe92e392c70479adf1b4..2f29f4e7b2a120752f5288555b3125784c1c9673 100644 >--- a/Source/WebCore/svg/graphics/SVGImage.h >+++ b/Source/WebCore/svg/graphics/SVGImage.h >@@ -88,7 +88,7 @@ private: > virtual bool currentFrameKnownToBeOpaque() OVERRIDE { return false; } > > SVGImage(ImageObserver*); >- virtual void draw(GraphicsContext*, const FloatRect& fromRect, const FloatRect& toRect, ColorSpace styleColorSpace, CompositeOperator, BlendMode); >+ virtual void draw(GraphicsContext*, const FloatRect& fromRect, const FloatRect& toRect, ColorSpace styleColorSpace, CompositeOperator, BlendMode, ImageOrientationEnum = DefaultImageOrientation); > void drawForContainer(GraphicsContext*, const FloatSize, float, const FloatRect&, const FloatRect&, ColorSpace, CompositeOperator, BlendMode); > void drawPatternForContainer(GraphicsContext*, const FloatSize, float, const FloatRect&, const AffineTransform&, const FloatPoint&, ColorSpace, > CompositeOperator, const FloatRect&); >diff --git a/Source/WebCore/svg/graphics/SVGImageForContainer.cpp b/Source/WebCore/svg/graphics/SVGImageForContainer.cpp >index e9e2728c79640ac1a6214b4150446c6af02302c8..2a2fdd79b2ba87ac6d05e73ba7f13d174666b6c8 100644 >--- a/Source/WebCore/svg/graphics/SVGImageForContainer.cpp >+++ b/Source/WebCore/svg/graphics/SVGImageForContainer.cpp >@@ -37,7 +37,7 @@ IntSize SVGImageForContainer::size() const > } > > void SVGImageForContainer::draw(GraphicsContext* context, const FloatRect& dstRect, >- const FloatRect& srcRect, ColorSpace colorSpace, CompositeOperator compositeOp, BlendMode blendMode) >+ const FloatRect& srcRect, ColorSpace colorSpace, CompositeOperator compositeOp, BlendMode blendMode, ImageOrientationEnum) > { > m_image->drawForContainer(context, m_containerSize, m_zoom, dstRect, srcRect, colorSpace, compositeOp, blendMode); > } >diff --git a/Source/WebCore/svg/graphics/SVGImageForContainer.h b/Source/WebCore/svg/graphics/SVGImageForContainer.h >index a2f15e4d65d6a076ef909c90286436ae0b55808c..1e575c5d03f9b088b7c02168f396796be633f309 100644 >--- a/Source/WebCore/svg/graphics/SVGImageForContainer.h >+++ b/Source/WebCore/svg/graphics/SVGImageForContainer.h >@@ -55,7 +55,7 @@ public: > m_image->computeIntrinsicDimensions(intrinsicWidth, intrinsicHeight, intrinsicRatio); > } > >- virtual void draw(GraphicsContext*, const FloatRect&, const FloatRect&, ColorSpace, CompositeOperator, BlendMode) OVERRIDE; >+ virtual void draw(GraphicsContext*, const FloatRect&, const FloatRect&, ColorSpace, CompositeOperator, BlendMode, ImageOrientationEnum = DefaultImageOrientation) OVERRIDE; > > virtual void drawPattern(GraphicsContext*, const FloatRect&, const AffineTransform&, const FloatPoint&, ColorSpace, CompositeOperator, const FloatRect&, BlendMode) OVERRIDE; > >diff --git a/Tools/Scripts/webkitperl/FeatureList.pm b/Tools/Scripts/webkitperl/FeatureList.pm >index 0e39102ed95e91ec7b1234994ccd17be0e5a0c51..ff941898d42a1178a7965edc8202d724b6b4cb1d 100644 >--- a/Tools/Scripts/webkitperl/FeatureList.pm >+++ b/Tools/Scripts/webkitperl/FeatureList.pm >@@ -207,7 +207,7 @@ my @features = ( > define => "ENABLE_CSS_BOX_DECORATION_BREAK", default => 1, value => \$cssBoxDecorationBreakSupport }, > > { option => "css-image-orientation", desc => "Toggle CSS image-orientation support", >- define => "ENABLE_CSS_IMAGE_ORIENTATION", default => isGtk(), value => \$cssImageOrientationSupport }, >+ define => "ENABLE_CSS_IMAGE_ORIENTATION", default => (isEfl() || isGtk()), value => \$cssImageOrientationSupport }, > > { option => "css-image-resolution", desc => "Toggle CSS image-resolution support", > define => "ENABLE_CSS_IMAGE_RESOLUTION", default => (isBlackBerry() || isGtk()), value => \$cssImageResolutionSupport }, >diff --git a/LayoutTests/fast/css/image-orientation/image-orientation-expected.txt b/LayoutTests/fast/css/image-orientation/image-orientation-expected.txt >index 9a5138488df84cb8767653bf896cc086ab8841ef..c47d11f694beb3e6237ef9327cb37cb55ccf2b7d 100644 >--- a/LayoutTests/fast/css/image-orientation/image-orientation-expected.txt >+++ b/LayoutTests/fast/css/image-orientation/image-orientation-expected.txt >@@ -3,39 +3,39 @@ Apply image-resolution property and check computed style. > On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". > > >-PASS p.style.cssText is "image-orientation: -360deg; " >+PASS p.style.cssText is "image-orientation: -360deg;" > PASS getComputedStyle(p).imageOrientation is "0deg" >-PASS p.style.cssText is "image-orientation: -315deg; " >+PASS p.style.cssText is "image-orientation: -315deg;" > PASS getComputedStyle(p).imageOrientation is "0deg" >-PASS p.style.cssText is "image-orientation: 0deg; " >+PASS p.style.cssText is "image-orientation: 0deg;" > PASS getComputedStyle(p).imageOrientation is "0deg" >-PASS p.style.cssText is "image-orientation: 315deg; " >+PASS p.style.cssText is "image-orientation: 315deg;" > PASS getComputedStyle(p).imageOrientation is "0deg" >-PASS p.style.cssText is "image-orientation: 360deg; " >+PASS p.style.cssText is "image-orientation: 360deg;" > PASS getComputedStyle(p).imageOrientation is "0deg" >-PASS p.style.cssText is "image-orientation: -270deg; " >+PASS p.style.cssText is "image-orientation: -270deg;" > PASS getComputedStyle(p).imageOrientation is "90deg" >-PASS p.style.cssText is "image-orientation: -225deg; " >+PASS p.style.cssText is "image-orientation: -225deg;" > PASS getComputedStyle(p).imageOrientation is "90deg" >-PASS p.style.cssText is "image-orientation: 45deg; " >+PASS p.style.cssText is "image-orientation: 45deg;" > PASS getComputedStyle(p).imageOrientation is "90deg" >-PASS p.style.cssText is "image-orientation: 90deg; " >+PASS p.style.cssText is "image-orientation: 90deg;" > PASS getComputedStyle(p).imageOrientation is "90deg" >-PASS p.style.cssText is "image-orientation: -180deg; " >+PASS p.style.cssText is "image-orientation: -180deg;" > PASS getComputedStyle(p).imageOrientation is "180deg" >-PASS p.style.cssText is "image-orientation: -135deg; " >+PASS p.style.cssText is "image-orientation: -135deg;" > PASS getComputedStyle(p).imageOrientation is "180deg" >-PASS p.style.cssText is "image-orientation: 135deg; " >+PASS p.style.cssText is "image-orientation: 135deg;" > PASS getComputedStyle(p).imageOrientation is "180deg" >-PASS p.style.cssText is "image-orientation: -180deg; " >+PASS p.style.cssText is "image-orientation: -180deg;" > PASS getComputedStyle(p).imageOrientation is "180deg" >-PASS p.style.cssText is "image-orientation: -90deg; " >+PASS p.style.cssText is "image-orientation: -90deg;" > PASS getComputedStyle(p).imageOrientation is "270deg" >-PASS p.style.cssText is "image-orientation: -45deg; " >+PASS p.style.cssText is "image-orientation: -45deg;" > PASS getComputedStyle(p).imageOrientation is "270deg" >-PASS p.style.cssText is "image-orientation: 225deg; " >+PASS p.style.cssText is "image-orientation: 225deg;" > PASS getComputedStyle(p).imageOrientation is "270deg" >-PASS p.style.cssText is "image-orientation: 270deg; " >+PASS p.style.cssText is "image-orientation: 270deg;" > PASS getComputedStyle(p).imageOrientation is "270deg" > PASS successfullyParsed is true > >diff --git a/LayoutTests/fast/css/image-orientation/image-orientation.html b/LayoutTests/fast/css/image-orientation/image-orientation.html >index c627122861851fc63856477b402b1c3a917a39ec..276df298cd2397fe34f950e9826f8fce1b83eb47 100644 >--- a/LayoutTests/fast/css/image-orientation/image-orientation.html >+++ b/LayoutTests/fast/css/image-orientation/image-orientation.html >@@ -20,7 +20,7 @@ for (expected in expectations) { > expectations[expected].forEach(function(test) { > p.style.imageOrientation = ''; > p.style.imageOrientation = test; >- shouldBe('p.style.cssText', '"image-orientation: ' + test + '; "'); >+ shouldBe('p.style.cssText', '"image-orientation: ' + test + ';"'); > shouldBe('getComputedStyle(p).imageOrientation', '"' + expected + '"'); > }); > } >diff --git a/LayoutTests/platform/efl/TestExpectations b/LayoutTests/platform/efl/TestExpectations >index fa71bc1af9703dc4b82f5c44017c58e93f145609..183a3cb2c052007eeaa3299e94fe8bf8f4acb38f 100644 >--- a/LayoutTests/platform/efl/TestExpectations >+++ b/LayoutTests/platform/efl/TestExpectations >@@ -343,9 +343,6 @@ webkit.org/b/85465 compositing/filters [ Skip ] > # CSS image-resolution is not yet enabled. > webkit.org/b/85262 fast/css/image-resolution > >-# CSS image-orientation is not yet enabled. >-webkit.org/b/89052 fast/css/image-orientation >- > # Perf tests are really slow in debug builds and there are few benefits in running them. > [ Debug ] perf [ WontFix ] > >diff --git a/LayoutTests/platform/gtk/TestExpectations b/LayoutTests/platform/gtk/TestExpectations >index f34ca983f6d36e0f90db2e438a84813507d164bb..8f47205e28ac102814360f5b81a6be5ff4a2c663 100644 >--- a/LayoutTests/platform/gtk/TestExpectations >+++ b/LayoutTests/platform/gtk/TestExpectations >@@ -1288,8 +1288,6 @@ webkit.org/b/107194 storage/indexeddb/pending-version-change-stuck-works-with-te > webkit.org/b/107194 storage/indexeddb/pending-version-change-stuck.html [ Failure ] > webkit.org/b/107194 storage/indexeddb/transaction-abort.html [ Failure ] > >-webkit.org/b/106563 fast/css/image-orientation/image-orientation.html [ Failure ] >- > webkit.org/b/108169 fast/dom/shadow/gesture-tap.html [ Failure ] > webkit.org/b/108169 fast/dom/shadow/touch-event.html [ Failure ] > webkit.org/b/108169 fast/dom/shadow/touch-event-retargeting.html [ Failure ] >diff --git a/LayoutTests/platform/mac/TestExpectations b/LayoutTests/platform/mac/TestExpectations >index fae381f471302e56f609b774407b33552a71f7c8..30798c446a6b575c28fc882f79c0832713ffa131 100644 >--- a/LayoutTests/platform/mac/TestExpectations >+++ b/LayoutTests/platform/mac/TestExpectations >@@ -953,9 +953,6 @@ webkit.org/b/85262 fast/css/image-resolution > webkit.org/b/85262 fast/media/mq-resolution.html [ Skip ] > webkit.org/b/85262 fast/media/mq-resolution-dpi-dpcm-warning.html [ Skip ] > >-# CSS image-orientation is not yet enabled. >-webkit.org/b/89052 fast/css/image-orientation >- > # CSS3 Text support is not yet enabled (needs ENABLE_CSS3_TEXT). > webkit.org/b/58491 fast/css3-text/css3-text-decoration > webkit.org/b/76173 fast/css3-text/css3-text-align-last
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 118454
:
206211
|
206243
|
206376
|
206515
|
206593
|
206718
|
207014
|
207075
|
207181
|
207238
|
207884