-
Notifications
You must be signed in to change notification settings - Fork 689
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[css-images] Should the values of image-orientation include the <angle> variants? #4164
Comments
Dunno! Need to investigate.
It allows for the other 4 EXIF orientations.
Images 4 is mostly a delta spec. It's kinda mixed up and messy right now, tho, so the confusion is understandable. |
Mozilla shipped then unshipped: https://groups.google.com/forum/#!msg/mozilla.dev.platform/A1aaENcsR6k/fPB1AvyaCAAJ |
The CSS Working Group just discussed
The full IRC log of that discussion<dael> Topic: Should the values of image-orientation include the <angle> variants?<dael> github: https://github.com//issues/4164 <dael> smfr: WK is orkging on image-orientation. there's one with angles and one without. ANy other browsers interested in angle variants? <dael> fantasai: B/c we made from-image default orientation I don't think strong use case for none. If not having web compat problems is this a necessary property? Still need definition b/c css print profile. If defaulting to exif do we nee dproperty at all? <dbaron> I didn't think the <angle> values were useful... <dael> TabAtkins: I don't recall affermative use cases for none <dael> myles: easier to add css to fix a busted image then to rotate <dael> fantasai: True. Ideally information should be in image or html. If photo is sideways it's data is wrong <dael> [everyone tlaks] <emilio> q+ <Rossen_> q? <dael> fantasai: If you turn off css or in reader mode you want it to be upright. If image is wrong you should fundamentally fix and not patch with css <emilio> https://groups.google.com/d/msg/mozilla.dev.platform/A1aaENcsR6k/fPB1AvyaCAAJ <dael> emilio: Gecko impl the angle values and unshipped when spec deprecated it. I don't think it's a lot of work to re-implement them <dael> dbaron: I also don't think that useful and a weird use of angles <dael> myles: Under spec b/c don't say which orientation rotated from <fantasai> rotated from the orientation before applying EXIF <dael> TabAtkins: q on myles comment. Use case was something where image pixel are correct and exif is busted? Or more broad? <svoisen> jensimmons: It's Charlie's last week so, while it would be nice to have additional language for clarity on rendering of wavy lines, it's not something we will get to in the very near term. <dael> myles: Yes. Comment not about nalge value, but presence of property <fantasai> svoisen, tell Charlie to make it look good :) <fantasai> svoisen, since that's basically what the spec is going to try to say ;) <jensimmons> fantasai: that’s what I said…. just make it purtier <fantasai> s/fantasai:/fantasai,/ <dael> TabAtkins: With regards to angles unspec implication was rotation from none...says 0deg corrisponds to none. Implies you rotate from that. I don't think underspec, but can be tweaked. Hopefully don't need to be impl. They're there b/c print renderers have them. <myles> TabAtkins: where does it say that 0 means none? <myles> i don't see it <svoisen> fantasai: Ha, fair enough :) We will have to save that as a task for someone else. <dael> smfr: fantasai suggested removing prop. But if Moz has been shipping with from-image removing is tricky. emilio do you have info on how long shipped? <Rossen_> ack emilio <dael> emilio: I don't think we have use counters. Could add. Been shipping for a long time if I recall. I'll find a link <dael> dbaron: If we're going to try and change default I would suspect that any of the things using it are doing so to set from-image not none <dael> fantasai: +1 <dael> fantasai: Unless using it to set a value other than from-image there's not a change if we remove property. Already resolved to change initial to from-image so might not need property <dael> smfr: Possible to get photos with bad exif information. If you pic straight down you get an angle. I can imagine trying to fix that. It does fail with things that strip css <dael> fantasai: My inclination is impl that support this try and switch to from-image as default. Impl that don't change to from or exif. If that works we try and remove property. If it doesn't we keep <dbaron> What fantasai just said sounds like a good plan to me. <dael> plinss: If building photo editing software might want to show image naturally as it is and then manually rotate <dael> TabAtkins: Editing you're parsing photo into a canvas? <dael> plinss: Maybe. Could parse exif data yourself, but there is utility to keeping. Agree from-image and none ar only prop with from-image as default <dael> Rossen_: unshipping of moz behavior and resolve on that behavior <dael> Rossen_: Which way are we leaning? <dael> TabAtkins: Fine with dropping if impl are okay on supposition we can make switch to from-image <dael> plinss: Compat risk when I was writing code for this you don't know if browser will rotate and can't tell. Anyone with code that cares about this is already screwed so wouldn't worry about compat. <dael> plinss: WOuld be nice if you can tell browser rotated but don't know how to tell in css <dael> fantasai: Query size of box if it's not square and get aspect ratio. Can tell you a bit <dael> plinss: But then have to parse image and then you might as well parse exif data <dael> Rossen_: Leaning toward dropping image-orientation <dael> fantasai: Prop: update note in draft to indicate we might drop the entire property for browsers and keep a definition with the <angle> values for historical reasons and say it's optional. Then remove. Or information this is in css print by not rec for impl <dael> Rossen_: Prop: Update note saying this is not for implementation and will be dropped <dael> Rossen_: Objections? <dael> RESOLVED: Update note saying this is not for implementation and will be dropped |
Alright, I have
If we end up removing the property, probably what we should do is to revert it to the form referenced from the CSS Print Profile https://www.w3.org/TR/css-print/ and put it in an informative appendix, and very clearly mark it obsolete. |
Or maybe even just remove it entirely and update css-print to point to an appropriate dated copy of css-images-3. |
If browsers default to img { image-orientation: from-image; } what should developers use to opt-out? |
If you have a compelling reason to override an image's built-in orientation, please state it here! The CSS-WG is interested in these cases. |
For security reasons <https://en.wikipedia.org/wiki/Exif#Privacy_and_security> many imagehosts routinely strip Exif from uploads and don't necessarily rotate the image in the process. Imgur is a popular example.
If I've misunderstood the issue please accept my apologies in advance.
|
Current browser behavior (except for iOS Safari) is to ignore EXIF orientation (in most cases). The change to the default behavior to respect the EXIF orientation could break web content that is currently working (except maybe in iOS Safari). The So if we're removing the property, we should have something else to recommend instead. What is it? I can think of:
Am I missing some other option? If (1) and (2) are non-options for some people, I wouldn't want to recommend (3). It seems worse than |
One case I can submit is the following: |
@antoniosdi The question here is if there's a use case to use a different value than |
I have a few concerns:
|
Re (4): I think the "moved to HTML" was the idea to introduce an attribute to |
Assuming honoring EXIF by default is Web-compatible, it is the right way to go. At that point |
Why was |
@noell It was specced for printers originally, I think. https://www.w3.org/TR/2006/WD-css3-page-20061010/#orienting One of the use cases was to create templates in CSS for printing images from a cell phone. |
I'd like to request My web platform jumps through hoops to If a browser were to suddenly respect EXIF data, this would break how things are currently rendered (double rotation). I can remove my workaround code eventually, but not until all browsers respect EXIF data. I'd need Regarding angle variants: Services that strip EXIF data from the JPEG might still store that metadata in their database, which would make the angle variant useful for their own rendering. (Though I could also see them leaving just the Orientation EXIF data.) I could also see a human user enjoying the option to manually rotate a deep-embedded EXIF-stripped JPEG via CSS, even if they have to figure out the rotation manually. |
Yes, we intend to keep 'auto' and 'none' around, so no worries. |
Given that mobile apps are static and that the underlying web renderer can change, it is necessary for us app developers to have an option to ensure that our app will work continue working regardless of what mobile app version the user is using and regardless of what webview version the user has installed. If the default behavior of image rendering is going to change, then we need to account for this asap. Do we need to add an |
It depends:
|
We use javascript to read the EXIF orientation and apply it to our images because if we didn't then our app would appear "broken" as everything else actually properly displays their photos. So is |
Then yes, start applying
Yes, we're keeping it in precisely so people can use the |
If we're keeping the property and browsers are planning to ship, shouldn't we update the spec to remove the wording about the property being deprecated? |
^^^ agree, and update with correct wording, since that Blink plan mentions shipping "from-image" as a property value, in addition to "none". Not sure if the CSSWG wants "from-image" shipped ... |
@mrego Deprecated doesn't mean "do not implement", it means "do not use (as an author)". @noell CSSWG definitely wants |
Thanks @fantasai for your clarification, I got confused by browsers shipping a deprecated thing but I understand it's fine to do it. Regarding the syntax it seems it was agreed to keep it for historical reasons, so maybe no more work is needed here. Should we just close the issue then? |
The only use case I can think of for overriding the value in the image is when it is wrong. That tends to happen when, for example, a phone camera is used to take a top-down shot, so it is nearly horizontal and small differences in position cause the orientation to randomly go from portrait to landscape. |
If there's agreement on what should happen, can we get someone to take responsibility for updating the spec? It gets confusing when dev advocates are trying to talk up the new property if the spec doesn't match the agreed shipping behavior… https://twitter.com/argyleink/status/1214623240250744832 |
https://bugs.webkit.org/show_bug.cgi?id=89052 Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-01-07 Reviewed by Simon Fraser. LayoutTests/imported/w3c: * web-platform-tests/css/css-images/inheritance-expected.txt: * web-platform-tests/css/css-images/inheritance.html: This test is re-synced from upstream * web-platform-tests/css/css-images/parsing/image-orientation-computed-expected.txt: * web-platform-tests/css/css-images/parsing/image-orientation-valid-expected.txt: Source/JavaScriptCore: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * Configurations/FeatureDefines.xcconfig: Source/WebCore: Implement the CSS image-orientation property for content images. The valid values are "from-image" or "none". The default value is "from-image". Specification: https://drafts.csswg.org/css-images-3/#the-image-orientation GitHub issue: w3c/csswg-drafts#4164 Tests: fast/images/image-orientation-dynamic-from-image.html fast/images/image-orientation-dynamic-none.html fast/images/image-orientation-none.html * Configurations/FeatureDefines.xcconfig: * css/CSSComputedStyleDeclaration.cpp: (WebCore::ComputedStyleExtractor::valueForPropertyInStyle): * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::operator ImageOrientation const): Deleted. * css/CSSProperties.json: * css/CSSValueKeywords.in: * css/parser/CSSPropertyParser.cpp: (WebCore::consumeImageOrientation): (WebCore::CSSPropertyParser::parseSingleValue): * rendering/RenderElement.cpp: (WebCore::RenderElement::imageOrientation const): * rendering/RenderImage.cpp: (WebCore::RenderImage::styleDidChange): * rendering/style/RenderStyle.cpp: (WebCore::rareInheritedDataChangeRequiresLayout): * rendering/style/RenderStyle.h: (WebCore::RenderStyle::setImageOrientation): (WebCore::RenderStyle::initialImageOrientation): (WebCore::RenderStyle::imageOrientation const): * rendering/style/StyleRareInheritedData.cpp: (WebCore::StyleRareInheritedData::StyleRareInheritedData): (WebCore::StyleRareInheritedData::operator== const): * rendering/style/StyleRareInheritedData.h: * style/StyleBuilderConverter.h: (WebCore::Style::BuilderConverter::convertImageOrientation): Source/WebCore/PAL: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * Configurations/FeatureDefines.xcconfig: Source/WebKit: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * Configurations/FeatureDefines.xcconfig: Source/WebKitLegacy/mac: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * Configurations/FeatureDefines.xcconfig: Source/WTF: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * wtf/FeatureDefines.h: Tools: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: LayoutTests: Test the css image-orientation property. * fast/images/image-orientation-dynamic-from-image-expected.html: Added. * fast/images/image-orientation-dynamic-from-image.html: Added. * fast/images/image-orientation-dynamic-none-expected.html: Added. * fast/images/image-orientation-dynamic-none.html: Added. * fast/images/image-orientation-none-expected.html: Added. * fast/images/image-orientation-none.html: Added. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@254187 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Yes, I think it's worth removing the angle values from the spec, despite the wording about the property maybe going away in the future. |
Made some clarifications to the way this property's deprecation / optionality is described. Agenda+ to confirm with the WG. |
Agree that we should remove the angle values from the spec. |
The CSS Working Group just discussed
The full IRC log of that discussion<Rossen_> Topic: Should the values of image-orientation include the <angle> variants?<Rossen_> github: https://github.com//issues/4164 <fremy> TabAtkins: fantasai made the most recent edits, maybe she should introduce <fremy> Rossen_: the discussion is long, but the relevant bits are at the end <fantasai> https://github.com/w3c/csswg-drafts/commit/ff22f40a630e2a120396d6a0f95d78e7601fb644 <fremy> fantasai: I made some clarifications about this <fremy> fantasai: I marked the angle values as deprecated and optional for implementations <fremy> fantasai: except if you want to support that previous spec <fantasai> s/that previous spec/CSS-PRINT/ <fremy> fantasai: the property is deprecated but not optional <fremy> TabAtkins: for compat reasons <fremy> fantasai: I wanted to check if that was ok <fremy> florian: is the print profile style relevant? <fremy> fantasai: no idea <fremy> fantasai: that community is not involved here anymore <TabAtkins> s/deprecated but not optional/optional but not deprecated/ <fremy> fantasai: I would propose to finish the spec, and remove in the next level <fremy> TabAtkins: yeah I don't think we don't want to take that work ourselves (as browser vendors) <fremy> TabAtkins: that comes back from the times where browsers didn't respect EXIF <fremy> TabAtkins: we still want the "none" value because some websites wanted that for compat <fremy> TabAtkins: the angle values are not really useful I think <fremy> cbiesinger: there is also a way to rotate the page, right? <fremy> TabAtkins: yes, but that is very different <fremy> florian: usually I care about print, but this <fremy> ... I don't care <fremy> Rossen_: ok, any objection? <fremy> TabAtkins: why not remove? <cbiesinger> s/cbiesinger/???/ <tantek> CSS profiles in general have kinda been left behind. <fremy> fantasai: we already resolve to keep it in the spec <tantek> Print profile being a deadend NOTE is fine. <fremy> TabAtkins: looks at the issue <faceless2> +1 to tabs wording <fremy> TabAtkins: the resolution says will be dropped <fremy> fantasai: ... in the next level <fremy> Rossen_: let's move on <fremy> TabAtkins: ah ok <fremy> RESOLVED: accept fantasai edits |
Use-case: extract a BMP format thumbnail image from a RAW camera image. The RAW image has an EXIF orientation value, but BMP format does not support orientation. The |angle| and |flip| could be used to draw the BMP in correct orientation. |
Implement css3-images image-orientation https://bugs.webkit.org/show_bug.cgi?id=89052 Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-01-07 Reviewed by Simon Fraser. LayoutTests/imported/w3c: * web-platform-tests/css/css-images/inheritance-expected.txt: * web-platform-tests/css/css-images/inheritance.html: This test is re-synced from upstream * web-platform-tests/css/css-images/parsing/image-orientation-computed-expected.txt: * web-platform-tests/css/css-images/parsing/image-orientation-valid-expected.txt: Source/JavaScriptCore: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * Configurations/FeatureDefines.xcconfig: Source/WebCore: Implement the CSS image-orientation property for content images. The valid values are "from-image" or "none". The default value is "from-image". Specification: https://drafts.csswg.org/css-images-3/#the-image-orientation GitHub issue: w3c/csswg-drafts#4164 Tests: fast/images/image-orientation-dynamic-from-image.html fast/images/image-orientation-dynamic-none.html fast/images/image-orientation-none.html * Configurations/FeatureDefines.xcconfig: * css/CSSComputedStyleDeclaration.cpp: (WebCore::ComputedStyleExtractor::valueForPropertyInStyle): * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::operator ImageOrientation const): Deleted. * css/CSSProperties.json: * css/CSSValueKeywords.in: * css/parser/CSSPropertyParser.cpp: (WebCore::consumeImageOrientation): (WebCore::CSSPropertyParser::parseSingleValue): * rendering/RenderElement.cpp: (WebCore::RenderElement::imageOrientation const): * rendering/RenderImage.cpp: (WebCore::RenderImage::styleDidChange): * rendering/style/RenderStyle.cpp: (WebCore::rareInheritedDataChangeRequiresLayout): * rendering/style/RenderStyle.h: (WebCore::RenderStyle::setImageOrientation): (WebCore::RenderStyle::initialImageOrientation): (WebCore::RenderStyle::imageOrientation const): * rendering/style/StyleRareInheritedData.cpp: (WebCore::StyleRareInheritedData::StyleRareInheritedData): (WebCore::StyleRareInheritedData::operator== const): * rendering/style/StyleRareInheritedData.h: * style/StyleBuilderConverter.h: (WebCore::Style::BuilderConverter::convertImageOrientation): Source/WebCore/PAL: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * Configurations/FeatureDefines.xcconfig: Source/WebKit: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * Configurations/FeatureDefines.xcconfig: Source/WebKitLegacy/mac: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * Configurations/FeatureDefines.xcconfig: Source/WTF: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * wtf/FeatureDefines.h: Tools: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: LayoutTests: Test the css image-orientation property. * fast/images/image-orientation-dynamic-from-image-expected.html: Added. * fast/images/image-orientation-dynamic-from-image.html: Added. * fast/images/image-orientation-dynamic-none-expected.html: Added. * fast/images/image-orientation-dynamic-none.html: Added. * fast/images/image-orientation-none-expected.html: Added. * fast/images/image-orientation-none.html: Added. Identifier: 219046@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254187 268f45cc-cd09-0410-ab3c-d52691b4dbfc Identifier: 218903.67@safari-609-branch git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-609-branch@254647 268f45cc-cd09-0410-ab3c-d52691b4dbfc
https://bugs.webkit.org/show_bug.cgi?id=89052 Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-01-07 Reviewed by Simon Fraser. LayoutTests/imported/w3c: * web-platform-tests/css/css-images/inheritance-expected.txt: * web-platform-tests/css/css-images/inheritance.html: This test is re-synced from upstream * web-platform-tests/css/css-images/parsing/image-orientation-computed-expected.txt: * web-platform-tests/css/css-images/parsing/image-orientation-valid-expected.txt: Source/JavaScriptCore: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * Configurations/FeatureDefines.xcconfig: Source/WebCore: Implement the CSS image-orientation property for content images. The valid values are "from-image" or "none". The default value is "from-image". Specification: https://drafts.csswg.org/css-images-3/#the-image-orientation GitHub issue: w3c/csswg-drafts#4164 Tests: fast/images/image-orientation-dynamic-from-image.html fast/images/image-orientation-dynamic-none.html fast/images/image-orientation-none.html * Configurations/FeatureDefines.xcconfig: * css/CSSComputedStyleDeclaration.cpp: (WebCore::ComputedStyleExtractor::valueForPropertyInStyle): * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::operator ImageOrientation const): Deleted. * css/CSSProperties.json: * css/CSSValueKeywords.in: * css/parser/CSSPropertyParser.cpp: (WebCore::consumeImageOrientation): (WebCore::CSSPropertyParser::parseSingleValue): * rendering/RenderElement.cpp: (WebCore::RenderElement::imageOrientation const): * rendering/RenderImage.cpp: (WebCore::RenderImage::styleDidChange): * rendering/style/RenderStyle.cpp: (WebCore::rareInheritedDataChangeRequiresLayout): * rendering/style/RenderStyle.h: (WebCore::RenderStyle::setImageOrientation): (WebCore::RenderStyle::initialImageOrientation): (WebCore::RenderStyle::imageOrientation const): * rendering/style/StyleRareInheritedData.cpp: (WebCore::StyleRareInheritedData::StyleRareInheritedData): (WebCore::StyleRareInheritedData::operator== const): * rendering/style/StyleRareInheritedData.h: * style/StyleBuilderConverter.h: (WebCore::Style::BuilderConverter::convertImageOrientation): Source/WebCore/PAL: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * Configurations/FeatureDefines.xcconfig: Source/WebKit: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * Configurations/FeatureDefines.xcconfig: Source/WebKitLegacy/mac: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * Configurations/FeatureDefines.xcconfig: Source/WTF: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * wtf/FeatureDefines.h: Tools: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: LayoutTests: Test the css image-orientation property. * fast/images/image-orientation-dynamic-from-image-expected.html: Added. * fast/images/image-orientation-dynamic-from-image.html: Added. * fast/images/image-orientation-dynamic-none-expected.html: Added. * fast/images/image-orientation-dynamic-none.html: Added. * fast/images/image-orientation-none-expected.html: Added. * fast/images/image-orientation-none.html: Added. Canonical link: https://commits.webkit.org/219046@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254187 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Implement css3-images image-orientation https://bugs.webkit.org/show_bug.cgi?id=89052 Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-01-07 Reviewed by Simon Fraser. LayoutTests/imported/w3c: * web-platform-tests/css/css-images/inheritance-expected.txt: * web-platform-tests/css/css-images/inheritance.html: This test is re-synced from upstream * web-platform-tests/css/css-images/parsing/image-orientation-computed-expected.txt: * web-platform-tests/css/css-images/parsing/image-orientation-valid-expected.txt: Source/JavaScriptCore: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * Configurations/FeatureDefines.xcconfig: Source/WebCore: Implement the CSS image-orientation property for content images. The valid values are "from-image" or "none". The default value is "from-image". Specification: https://drafts.csswg.org/css-images-3/#the-image-orientation GitHub issue: w3c/csswg-drafts#4164 Tests: fast/images/image-orientation-dynamic-from-image.html fast/images/image-orientation-dynamic-none.html fast/images/image-orientation-none.html * Configurations/FeatureDefines.xcconfig: * css/CSSComputedStyleDeclaration.cpp: (WebCore::ComputedStyleExtractor::valueForPropertyInStyle): * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::operator ImageOrientation const): Deleted. * css/CSSProperties.json: * css/CSSValueKeywords.in: * css/parser/CSSPropertyParser.cpp: (WebCore::consumeImageOrientation): (WebCore::CSSPropertyParser::parseSingleValue): * rendering/RenderElement.cpp: (WebCore::RenderElement::imageOrientation const): * rendering/RenderImage.cpp: (WebCore::RenderImage::styleDidChange): * rendering/style/RenderStyle.cpp: (WebCore::rareInheritedDataChangeRequiresLayout): * rendering/style/RenderStyle.h: (WebCore::RenderStyle::setImageOrientation): (WebCore::RenderStyle::initialImageOrientation): (WebCore::RenderStyle::imageOrientation const): * rendering/style/StyleRareInheritedData.cpp: (WebCore::StyleRareInheritedData::StyleRareInheritedData): (WebCore::StyleRareInheritedData::operator== const): * rendering/style/StyleRareInheritedData.h: * style/StyleBuilderConverter.h: (WebCore::Style::BuilderConverter::convertImageOrientation): Source/WebCore/PAL: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * Configurations/FeatureDefines.xcconfig: Source/WebKit: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * Configurations/FeatureDefines.xcconfig: Source/WebKitLegacy/mac: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * Configurations/FeatureDefines.xcconfig: Source/WTF: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * wtf/FeatureDefines.h: Tools: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: LayoutTests: Test the css image-orientation property. * fast/images/image-orientation-dynamic-from-image-expected.html: Added. * fast/images/image-orientation-dynamic-from-image.html: Added. * fast/images/image-orientation-dynamic-none-expected.html: Added. * fast/images/image-orientation-dynamic-none.html: Added. * fast/images/image-orientation-none-expected.html: Added. * fast/images/image-orientation-none.html: Added. Canonical link: https://commits.webkit.org/219046@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254187 268f45cc-cd09-0410-ab3c-d52691b4dbfc Canonical link: https://commits.webkit.org/218903.67@safari-609-branch git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-609-branch@254647 268f45cc-cd09-0410-ab3c-d52691b4dbfc
I think I’ve got a use-case for Imagine an image that shows a map with text written at different angles (see my screenshot below). A website that includes such an image may want allow its visitors to rotate the image by 90 degrees (put it on its side) to make it easier to read all of the image’s text without having to lean one’s head too much to the side. Ideally, the browser would just provide controls for rotating images in the context menu. But since browsers don’t let users rotate images easily, the website has to provide this option. How can the website do that? I’d like to produce the result shown in my screenshot below. I’m not sure that CSS Transforms can do it. If I set |
Implement css3-images image-orientation https://bugs.webkit.org/show_bug.cgi?id=89052 Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-01-07 Reviewed by Simon Fraser. LayoutTests/imported/w3c: * web-platform-tests/css/css-images/inheritance-expected.txt: * web-platform-tests/css/css-images/inheritance.html: This test is re-synced from upstream * web-platform-tests/css/css-images/parsing/image-orientation-computed-expected.txt: * web-platform-tests/css/css-images/parsing/image-orientation-valid-expected.txt: Source/JavaScriptCore: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * Configurations/FeatureDefines.xcconfig: Source/WebCore: Implement the CSS image-orientation property for content images. The valid values are "from-image" or "none". The default value is "from-image". Specification: https://drafts.csswg.org/css-images-3/#the-image-orientation GitHub issue: w3c/csswg-drafts#4164 Tests: fast/images/image-orientation-dynamic-from-image.html fast/images/image-orientation-dynamic-none.html fast/images/image-orientation-none.html * Configurations/FeatureDefines.xcconfig: * css/CSSComputedStyleDeclaration.cpp: (WebCore::ComputedStyleExtractor::valueForPropertyInStyle): * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::operator ImageOrientation const): Deleted. * css/CSSProperties.json: * css/CSSValueKeywords.in: * css/parser/CSSPropertyParser.cpp: (WebCore::consumeImageOrientation): (WebCore::CSSPropertyParser::parseSingleValue): * rendering/RenderElement.cpp: (WebCore::RenderElement::imageOrientation const): * rendering/RenderImage.cpp: (WebCore::RenderImage::styleDidChange): * rendering/style/RenderStyle.cpp: (WebCore::rareInheritedDataChangeRequiresLayout): * rendering/style/RenderStyle.h: (WebCore::RenderStyle::setImageOrientation): (WebCore::RenderStyle::initialImageOrientation): (WebCore::RenderStyle::imageOrientation const): * rendering/style/StyleRareInheritedData.cpp: (WebCore::StyleRareInheritedData::StyleRareInheritedData): (WebCore::StyleRareInheritedData::operator== const): * rendering/style/StyleRareInheritedData.h: * style/StyleBuilderConverter.h: (WebCore::Style::BuilderConverter::convertImageOrientation): Source/WebCore/PAL: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * Configurations/FeatureDefines.xcconfig: Source/WebKit: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * Configurations/FeatureDefines.xcconfig: Source/WebKitLegacy/mac: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * Configurations/FeatureDefines.xcconfig: Source/WTF: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * wtf/FeatureDefines.h: Tools: Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: LayoutTests: Test the css image-orientation property. * fast/images/image-orientation-dynamic-from-image-expected.html: Added. * fast/images/image-orientation-dynamic-from-image.html: Added. * fast/images/image-orientation-dynamic-none-expected.html: Added. * fast/images/image-orientation-dynamic-none.html: Added. * fast/images/image-orientation-none-expected.html: Added. * fast/images/image-orientation-none.html: Added. git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254187 268f45cc-cd09-0410-ab3c-d52691b4dbfc git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-609-branch@254647 268f45cc-cd09-0410-ab3c-d52691b4dbfc
In https://drafts.csswg.org/css-images/#the-image-orientation there's a Note that says that
Is that still true? Issue #3799 talks about the default value, but not what other values are available.
What are the use cases for with optional flip?
Also, why is 'image-orientation' missing from css-images-4?
The text was updated successfully, but these errors were encountered: