Add autodetection of image orientation from EXIF information
authortimothy_horton@apple.com <timothy_horton@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 6 Apr 2012 20:02:59 +0000 (20:02 +0000)
committertimothy_horton@apple.com <timothy_horton@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 6 Apr 2012 20:02:59 +0000 (20:02 +0000)
commit3b882e1702d8deb007a35b2d545925a4e4959e31
tree2f21167c317a2ef13634eff522a1c5270a45718f
parentcd61b41f890fb2042530d582587a7cd5de1a0417
Add autodetection of image orientation from EXIF information
https://bugs.webkit.org/show_bug.cgi?id=19688
<rdar://problem/4126979> and <rdar://problem/11091578>

Original patch by David Carson and Eric Seidel.

Reviewed by Simon Fraser.

Add support for respecting EXIF image orientation, enabled by default for ImageDocuments.
The setting shouldRespectImageOrientation causes orientation to take effect for any image included via <img>.

Test: fast/images/exif-orientation.html, fast/images/exif-orientation-css.html

File list truncated because it's very long.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@113486 268f45cc-cd09-0410-ab3c-d52691b4dbfc
76 files changed:
LayoutTests/ChangeLog
LayoutTests/fast/images/exif-orientation-css.html [new file with mode: 0644]
LayoutTests/fast/images/exif-orientation.html [new file with mode: 0644]
LayoutTests/fast/images/resources/exif-orientation-1-ul.jpg [new file with mode: 0644]
LayoutTests/fast/images/resources/exif-orientation-2-ur.jpg [new file with mode: 0644]
LayoutTests/fast/images/resources/exif-orientation-3-lr.jpg [new file with mode: 0644]
LayoutTests/fast/images/resources/exif-orientation-4-lol.jpg [new file with mode: 0644]
LayoutTests/fast/images/resources/exif-orientation-5-lu.jpg [new file with mode: 0644]
LayoutTests/fast/images/resources/exif-orientation-6-ru.jpg [new file with mode: 0644]
LayoutTests/fast/images/resources/exif-orientation-7-rl.jpg [new file with mode: 0644]
LayoutTests/fast/images/resources/exif-orientation-8-llo.jpg [new file with mode: 0644]
LayoutTests/fast/images/resources/exif-orientation-9-u.jpg [new file with mode: 0644]
LayoutTests/platform/chromium/test_expectations.txt
LayoutTests/platform/efl/Skipped
LayoutTests/platform/gtk/Skipped
LayoutTests/platform/mac/fast/images/exif-orientation-css-expected.png [new file with mode: 0644]
LayoutTests/platform/mac/fast/images/exif-orientation-css-expected.txt [new file with mode: 0644]
LayoutTests/platform/mac/fast/images/exif-orientation-expected.png [new file with mode: 0644]
LayoutTests/platform/mac/fast/images/exif-orientation-expected.txt [new file with mode: 0644]
LayoutTests/platform/qt/Skipped
Source/WebCore/CMakeLists.txt
Source/WebCore/ChangeLog
Source/WebCore/GNUmakefile.list.am
Source/WebCore/Target.pri
Source/WebCore/WebCore.exp.in
Source/WebCore/WebCore.gypi
Source/WebCore/WebCore.vcproj/WebCore.vcproj
Source/WebCore/WebCore.xcodeproj/project.pbxproj
Source/WebCore/html/HTMLCanvasElement.cpp
Source/WebCore/loader/cache/CachedImage.cpp
Source/WebCore/page/DragController.cpp
Source/WebCore/page/Frame.cpp
Source/WebCore/page/Settings.h
Source/WebCore/platform/DragImage.h
Source/WebCore/platform/blackberry/DragImageBlackBerry.cpp
Source/WebCore/platform/chromium/DragImageChromiumMac.cpp
Source/WebCore/platform/chromium/DragImageChromiumSkia.cpp
Source/WebCore/platform/efl/DragImageEfl.cpp
Source/WebCore/platform/graphics/BitmapImage.cpp
Source/WebCore/platform/graphics/BitmapImage.h
Source/WebCore/platform/graphics/GraphicsContext.cpp
Source/WebCore/platform/graphics/GraphicsContext.h
Source/WebCore/platform/graphics/ImageOrientation.cpp [new file with mode: 0644]
Source/WebCore/platform/graphics/ImageOrientation.h [new file with mode: 0644]
Source/WebCore/platform/graphics/ImageSource.cpp
Source/WebCore/platform/graphics/ImageSource.h
Source/WebCore/platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp
Source/WebCore/platform/graphics/cairo/ImageBufferCairo.cpp
Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp
Source/WebCore/platform/graphics/cg/ImageCG.cpp
Source/WebCore/platform/graphics/cg/ImageSourceCG.cpp
Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
Source/WebCore/platform/graphics/qt/ImageBufferQt.cpp
Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp
Source/WebCore/platform/graphics/wince/ImageBufferWinCE.cpp
Source/WebCore/platform/graphics/wx/ImageBufferWx.cpp
Source/WebCore/platform/gtk/DragImageGtk.cpp
Source/WebCore/platform/mac/DragImageMac.mm
Source/WebCore/platform/qt/DragImageQt.cpp
Source/WebCore/platform/win/DragImageCGWin.cpp
Source/WebCore/platform/win/DragImageCairoWin.cpp
Source/WebCore/platform/wince/DragImageWinCE.cpp
Source/WebCore/platform/wx/DragImageWx.cpp
Source/WebCore/rendering/RenderImage.cpp
Source/WebCore/rendering/RenderObject.cpp
Source/WebCore/rendering/RenderObject.h
Source/WebKit/mac/ChangeLog
Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h
Source/WebKit/mac/WebView/WebPreferences.mm
Source/WebKit/mac/WebView/WebPreferencesPrivate.h
Source/WebKit/mac/WebView/WebView.mm
Source/WebKit2/ChangeLog
Source/WebKit2/Shared/WebPreferencesStore.h
Source/WebKit2/UIProcess/API/C/WKPreferences.cpp
Source/WebKit2/UIProcess/API/C/WKPreferences.h
Source/WebKit2/WebProcess/WebPage/WebPage.cpp