Skip to content
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-align] Should 'left' and 'right' really both fall back to 'start? #1403

Closed
dbaron opened this issue May 19, 2017 · 6 comments
Closed

[css-align] Should 'left' and 'right' really both fall back to 'start? #1403

dbaron opened this issue May 19, 2017 · 6 comments
Labels
Closed Accepted by CSSWG Resolution css-align-3 Current Work i18n-tracker Group bringing to attention of Internationalization, or tracked by i18n but not needing response.

Comments

@dbaron
Copy link
Member

dbaron commented May 19, 2017

The definition of left and of right alignment currently both say:

If the property’s axis is not parallel with the inline axis, this value behaves as start.

It seems less than ideal for both of them to fall back to start, since there may be an expectation that they end up on opposite sides.

I think one of them should probably fall back to end. I'm inclined to say it should be right, given that line-left is equivalent to (see mappings) inline-start whenever direction is ltr. This is for two reasons:

  • I believe direction: ltr is more widely used (on the Web, and as a share of world population)
  • I suspect the main use case for such fallback might be flipping the writing-mode of CJK content between vertical and horizontal, where I suspect direction: rtl to be particularly rarely used.
@dbaron dbaron added the css-align-3 Current Work label May 20, 2017
@fantasai fantasai added Agenda+ i18n-tracker Group bringing to attention of Internationalization, or tracked by i18n but not needing response. labels Jun 22, 2017
@fantasai
Copy link
Collaborator

I'm somewhat disinclined to do this, because there is no clearly correct mapping from left/right to block-start/block-end, and I'd like to avoid privileging LTR if there isn't a clear reason to do so.
Also, since Align (and Flexbox and Grid) are heavily biased towards flow-relative keywords, it's reasonably likely that an author will use a start/end pairing anyway--even more so if the author is accustomed to working with writing-modes.

That said, I would not object if the WG decided otherwise, so adding Agenda+.

@asmusf
Copy link

asmusf commented Jun 23, 2017

As a generic argument, the case of having two opposite values mapped to the same thing does appear counterintuitive and should therefore be avoided. I don't see where the special condition ("if the property's axis is not parallel") makes this case special enough to override the expectation that these are opposites. (However, I'm prepared to find out that I'm wrong on that after all).

The principle of not favoring one class of writing system over another only goes so far: absent any definite information you have to pick one; I'm not sure why this case is different.

If there's a particularly common scenario where the axes are not parallel, then the fallback should be selected based on what conditions are most common for that scenario. I don't know if @dbaron is correct in his second reason, but if that can be borne out, would be the stronger of the two in my view.

@fantasai
Copy link
Collaborator

Okay, so, we definitely have a better answer for some of these: we can use either the physical directions or the line-relative directions in order to get an answer that is perfectly reasonable and non-arbitrary in the majority of cases. We should fix the spec to do that (to use the physical mappings where they exist). However, there still remain some cases that can't be solved with either mapping.

The table below summarizes all the cases. L represents line-relative mapping, P represents physical mapping. ? represents cases that can't be mapped with either.

`align-self` `justify-self` `align-content` `justify-content`
Horizontal Parent
Horizontal Self
↕ ?? ↔ P=L ↕ ?? ↔ P=L
Horizontal Parent
Vertical Self
↕ ? ↔ P=L ↔ P ↕ L
Vertical Parent
Horizontal Self
↔ P ↕ L ↕ ? ↔ P
Vertical Parent
Vertical Self
↔ P ↕ L ↔ P ↕ L

The remaining cases are:

  • align-self and align-content in a 100% horizontal writing mode environment. There is no non-arbitrary answer for mapping left/right along the vertical axis here. (?? in the table below)
  • align-self in the case of a horizontal parent and vertical self. align-self maps against the parent’s writing mode normally, but we could map against the self in this case to get an answer.
  • align-content in the case of a vertical parent and horizontal self. align-content maps against the self writing mode normally, but we could map against the self in this case to get an answer.
    That said, I'm currently of the opinion that we should treat the second two cases according to the logic of the first, though, to avoid crossing contexts.

So we can reduce the number of cases affected, but horizontal writing modes will still need an arbitrary mapping for left and right in the vertical axis.

fantasai added a commit that referenced this issue Jun 27, 2017
@murata2makoto
Copy link

Fantasai wrote:

I'm somewhat disinclined to do this, because there is no clearly correct mapping from left/right to block-start/block-end, and I'd like to avoid privileging LTR if there isn't a clear reason to do so.

If different reasonable guys have different expectations, I would like to have no mapping. Ignoring properties is fine. Just my two cents.

triple-underscore added a commit to triple-underscore/triple-underscore.github.io that referenced this issue Jun 28, 2017
Use physical left/right as well as line-relative left/right for mapping
left/right keywords. w3c/csswg-drafts#1403
w3c/csswg-drafts@93ee87ca370963205c93c915b2b73
0c3a308a142

Fix the Values section to be more up-to-date.
Fixes w3c/csswg-drafts#1397 .
w3c/csswg-drafts@ec8e2818c6d443374d2acc3bc9d1a
c3ba1933da6

Use more explicit terminology for the axis used by static-pos *-self.
Fixes w3c/csswg-drafts#1443 .
w3c/csswg-drafts@b649337df3e4c192bec005f905e8d
49417d1af68

Block's justify-self:normal should act like 'stretch', not 'start'.
Fixes w3c/csswg-drafts#1437 .
w3c/csswg-drafts@4277c9e5e124445a73612ab07b98b
d0449968c8b

Actually specify how 'normal' aligns grid items.
Fixes w3c/csswg-drafts#1433 .
w3c/csswg-drafts@da03cd965eea014c3c8002bf8ee15
da700f2ebba

+ flex-end 値 周りの訳抜け修正
@dbaron
Copy link
Member Author

dbaron commented Jun 28, 2017

Contextually ignoring values in CSS isn't an option in CSS, though, since ignoring in CSS needs to happen at parse time, which is separated from value computation time.

@css-meeting-bot
Copy link
Member

The CSS Working Group just discussed Should 'left' and 'right' really both fall back to 'start?, and agreed to the following resolutions:

  • RESOLVED: leave the left and right values to fallback to start
  • RESOLVED: Remove left and right from align-self and align-content in align L3
The full IRC log of that discussion <dael> Topic: Should 'left' and 'right' really both fall back to 'start?
<dael> Github: https://github.com//issues/1403
<dael> fantasai: dbaron pointed out that left and right fallback to start if inline axis is not in the axis we're alining in. THe spec could have been smarter on this, we have physical and line-relative left and right. Betweent he 2 there's an answer to what's left and what's right. THere is a case of a completely hoz doc and align-self or align-content says left or right we don't have a way of saying if top or bottom is left or right. Spec says do start.
<dael> fantasai: dbaron says left for top and right for bottom. I'm of the opinion this is error and both should fall back to start. It's fairly arbitrary.
<dael> fantasai: ?? commented that they would like to have no mapping. That's more or less eq to start. THere's some differences.
<fantasai> e.g. whether or not to form a BFC
<dael> Rossen_: Proposal is fall back to start. fantasai explained why she believes this should be the case. Other opinions?
<dael> dbaron: My general concrn was it seems strange to have things calle dleft and right that can end up on the same side.
<dael> dbaron: It seemed like the case where you're likely to hit this is cjk where you author for vert or hoz and then decide to change it.
<dael> Rossen_: For floats left and right do we have similar?
<dael> fantasai: No because we use the line-relative left and right.
<dael> TabAtkins: I'll add that although you can come up with uses for left and right they were impl for being able to do legacy things. So it's okay for me if they're not great in some corner cases.
<AmeliaBR> To be clear, we'd never have left falling back to right and vice-versa. It is about left and right both falling back to "top", correct?
<dael> Rossen_: True. Although all existing content is legacy
<fantasai> yes
<dael> TabAtkins: No, I mean the legacy keyword.
<dael> Rossen_: Got you
<dael> fantasai: It's more. There are occations wher eyou want hte physeical direction
<dael> TabAtkins: We added it to support legacy keywrods. You can use it other ways, but that was the original reason. We wouldn't have had left and right if we weren't trying to do legacy
<dael> Rossen_: dbaron would you be okay if we resolved to fall back to start?
<dael> fantasai: We also could remove the keywords from align-self and align-content
<dael> dbaron: I'm okay with it.
<dael> Rossen_: What I hear is that we have generally seemed to be okay with falling back to start which doesn't mean it's great because you could have left and right map to the same thing. fantasai points out we make be hable to revisit having these values.
<dael> fantasai: We needed them for justify-content and -self. They were added...there were some cases where they would have meaning in align, but they're not critical.
<dael> Rossen_: I also think there are impl that are exposing those. Those are being used...removing left and right would be harder then fallack to start
<dael> fantasai: I don't htink so. Majority of people aren't using left and right in a veritical axis. Unless you're using veritical writing modes there is no left and right on align-self and align-content becuase there is no left and right
<dael> Rossen_: Perhaps.
<dael> Rossen_: What if we try to resolve on the fallback and then seperately decide on keeping them. I'm not just trying to kick that down the road, but I want to see usage
<dael> Rossen_: objections to: leave the left and right values to fallback to start
<dael> RESOLVED: leave the left and right values to fallback to start
<tantek> I thought dbaron
<tantek> 's point was an obj
<tantek> no?
<dbaron> I'm not objecting... I just thought it should be the other way.
<dael> fantasai: WOuld it make sense to resolve to drop them? We can add them later.
<tantek> fantasai: has a good point
<dael> fantasai: I can't imagine a case where this is a compat problem.
<tantek> wiser to drop now, reconsider adding in the future
<dael> TabAtkins: Should be safe to readd
<tantek> +1 fantasai proposal
<dael> Rossen_: I wouldn't be opposed. Let's make it a forcing function to those that have impl.
<dael> Rossen_: Obj to removing left and right from align tree
<fantasai> This would be to drop left/right from align-self and align-content
<fantasai> They would remain as part of justify-self and justify-content
<dael> RESOLVED: Remove left and right from align-self and align-content in align L3

fantasai added a commit that referenced this issue Jun 28, 2017
triple-underscore added a commit to triple-underscore/triple-underscore.github.io that referenced this issue Jun 29, 2017
Disable baseline alignment in a table column, per WG resolution.
Closes w3c/csswg-drafts#1422 .
w3c/csswg-drafts@48f32f201c33d0d9fd9a7db32de4d
a086344081a

Drop align-self/content: left | right per WG resolution.
(justify-* keeps them) w3c/csswg-drafts#1403 .
w3c/csswg-drafts@21a4728f9a044cd202b094809c059
295cee192f1
SelenIT referenced this issue Jan 6, 2018
This change adds the `left` and `right` keywords to the grammar terms
`<self-position>` and `<content-position>`.

That addition to the grammar brings it into sync with the existing spec prose,
which already includes `left` and `right` among the *positional alignment*
keywords collection, and states, “Two grammar terms are used to denote this
collection of values: `<self-position>` [and] `<content-position>`”.
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this issue Jan 20, 2018
The CSS WG resolved to remove the 'left' and 'right' values from the
block/cross axis alignment properties.

w3c/csswg-drafts#1403

This CL changes the CSS parsing logic of all the CSS Box Alignment
properties, both block-axis (align-{self, items, content} and
inline-axis (justify-{self, items, content}).

Additionally, the alignment shorthands (place-{self, items, content})
have been also changed to respect the new syntax.

This change also affects the Grid Layout alignment logic.

Bug: 802095
Change-Id: Id848ce22a9b2d69ecf2bfd58503f590e4b2fe4db
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this issue Jan 20, 2018
The CSS WG resolved to remove the 'left' and 'right' values from the
block/cross axis alignment properties.

w3c/csswg-drafts#1403

This CL changes the CSS parsing logic of all the CSS Box Alignment
properties, both block-axis (align-{self, items, content} and
inline-axis (justify-{self, items, content}).

Additionally, the alignment shorthands (place-{self, items, content})
have been also changed to respect the new syntax.

This change also affects the Grid Layout alignment logic.

Bug: 802095
Change-Id: Id848ce22a9b2d69ecf2bfd58503f590e4b2fe4db
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this issue Jan 22, 2018
The CSS WG resolved to remove the 'left' and 'right' values from the
block/cross axis alignment properties.

w3c/csswg-drafts#1403

This CL changes the CSS parsing logic of all the CSS Box Alignment
properties, both block-axis (align-{self, items, content} and
inline-axis (justify-{self, items, content}).

Additionally, the alignment shorthands (place-{self, items, content})
have been also changed to respect the new syntax.

This change also affects the Grid Layout alignment logic.

Bug: 802095
Change-Id: Id848ce22a9b2d69ecf2bfd58503f590e4b2fe4db
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this issue Jan 23, 2018
The CSS WG resolved to remove the 'left' and 'right' values from the
block/cross axis alignment properties.

w3c/csswg-drafts#1403

This CL changes the CSS parsing logic of all the CSS Box Alignment
properties, both block-axis (align-{self, items, content} and
inline-axis (justify-{self, items, content}).

Additionally, the alignment shorthands (place-{self, items, content})
have been also changed to respect the new syntax.

This change also affects the Grid Layout alignment logic.

Bug: 802095
Change-Id: Id848ce22a9b2d69ecf2bfd58503f590e4b2fe4db
Reviewed-on: https://chromium-review.googlesource.com/877519
Reviewed-by: meade_(do not use) <meade@chromium.org>
Commit-Queue: Javier Fernandez <jfernandez@igalia.com>
Cr-Commit-Position: refs/heads/master@{#531074}
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this issue Jan 23, 2018
The CSS WG resolved to remove the 'left' and 'right' values from the
block/cross axis alignment properties.

w3c/csswg-drafts#1403

This CL changes the CSS parsing logic of all the CSS Box Alignment
properties, both block-axis (align-{self, items, content} and
inline-axis (justify-{self, items, content}).

Additionally, the alignment shorthands (place-{self, items, content})
have been also changed to respect the new syntax.

This change also affects the Grid Layout alignment logic.

Bug: 802095
Change-Id: Id848ce22a9b2d69ecf2bfd58503f590e4b2fe4db
Reviewed-on: https://chromium-review.googlesource.com/877519
Reviewed-by: meade_(do not use) <meade@chromium.org>
Commit-Queue: Javier Fernandez <jfernandez@igalia.com>
Cr-Commit-Position: refs/heads/master@{#531074}
MXEBot pushed a commit to mirror/chromium that referenced this issue Jan 23, 2018
The CSS WG resolved to remove the 'left' and 'right' values from the
block/cross axis alignment properties.

w3c/csswg-drafts#1403

This CL changes the CSS parsing logic of all the CSS Box Alignment
properties, both block-axis (align-{self, items, content} and
inline-axis (justify-{self, items, content}).

Additionally, the alignment shorthands (place-{self, items, content})
have been also changed to respect the new syntax.

This change also affects the Grid Layout alignment logic.

Bug: 802095
Change-Id: Id848ce22a9b2d69ecf2bfd58503f590e4b2fe4db
Reviewed-on: https://chromium-review.googlesource.com/877519
Reviewed-by: meade_(do not use) <meade@chromium.org>
Commit-Queue: Javier Fernandez <jfernandez@igalia.com>
Cr-Commit-Position: refs/heads/master@{#531074}
hubot pushed a commit to WebKit/WebKit-http that referenced this issue Jan 23, 2018
…-axis alignment

https://bugs.webkit.org/show_bug.cgi?id=181792

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Imported new Web Platform Tests for the css-align module.

* resources/import-expectations.json:
* web-platform-tests/css/css-align-3/content-distribution/w3c-import.log: Removed.
* web-platform-tests/css/css-align-3/default-alignment/w3c-import.log: Removed.
* web-platform-tests/css/css-align-3/resources/alignment-parsing-utils.js: Removed.
* web-platform-tests/css/css-align-3/self-alignment/w3c-import.log: Removed.
* web-platform-tests/css/css-align/content-distribution/parse-align-content-001-expected.txt: Added.
* web-platform-tests/css/css-align/content-distribution/parse-align-content-001.html: Added.
* web-platform-tests/css/css-align/content-distribution/parse-align-content-002-expected.txt: Added.
* web-platform-tests/css/css-align/content-distribution/parse-align-content-002.html: Added.
* web-platform-tests/css/css-align/content-distribution/parse-align-content-003-expected.txt: Added.
* web-platform-tests/css/css-align/content-distribution/parse-align-content-003.html: Added.
* web-platform-tests/css/css-align/content-distribution/parse-align-content-004-expected.txt: Added.
* web-platform-tests/css/css-align/content-distribution/parse-align-content-004.html: Added.
* web-platform-tests/css/css-align/content-distribution/parse-align-content-005-expected.txt: Added.
* web-platform-tests/css/css-align/content-distribution/parse-align-content-005.html: Added.
* web-platform-tests/css/css-align/content-distribution/parse-justify-content-001-expected.txt: Added.
* web-platform-tests/css/css-align/content-distribution/parse-justify-content-001.html: Added.
* web-platform-tests/css/css-align/content-distribution/parse-justify-content-002-expected.txt: Added.
* web-platform-tests/css/css-align/content-distribution/parse-justify-content-002.html: Added.
* web-platform-tests/css/css-align/content-distribution/parse-justify-content-003-expected.txt: Added.
* web-platform-tests/css/css-align/content-distribution/parse-justify-content-003.html: Added.
* web-platform-tests/css/css-align/content-distribution/parse-justify-content-004-expected.txt: Added.
* web-platform-tests/css/css-align/content-distribution/parse-justify-content-004.html: Added.
* web-platform-tests/css/css-align/content-distribution/parse-justify-content-005-expected.txt: Added.
* web-platform-tests/css/css-align/content-distribution/parse-justify-content-005.html: Added.
* web-platform-tests/css/css-align/content-distribution/place-content-shorthand-001-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/content-distribution/place-content-shorthand-001-expected.txt.
* web-platform-tests/css/css-align/content-distribution/place-content-shorthand-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/content-distribution/place-content-shorthand-001.html.
* web-platform-tests/css/css-align/content-distribution/place-content-shorthand-002-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/content-distribution/place-content-shorthand-002-expected.txt.
* web-platform-tests/css/css-align/content-distribution/place-content-shorthand-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/content-distribution/place-content-shorthand-002.html.
* web-platform-tests/css/css-align/content-distribution/place-content-shorthand-003-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/content-distribution/place-content-shorthand-003-expected.txt.
* web-platform-tests/css/css-align/content-distribution/place-content-shorthand-003.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/content-distribution/place-content-shorthand-003.html.
* web-platform-tests/css/css-align/content-distribution/place-content-shorthand-004-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/content-distribution/place-content-shorthand-004-expected.txt.
* web-platform-tests/css/css-align/content-distribution/place-content-shorthand-004.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/content-distribution/place-content-shorthand-004.html.
* web-platform-tests/css/css-align/content-distribution/place-content-shorthand-005-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/content-distribution/place-content-shorthand-005-expected.txt.
* web-platform-tests/css/css-align/content-distribution/place-content-shorthand-005.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/content-distribution/place-content-shorthand-005.html.
* web-platform-tests/css/css-align/content-distribution/place-content-shorthand-006-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/content-distribution/place-content-shorthand-006-expected.txt.
* web-platform-tests/css/css-align/content-distribution/place-content-shorthand-006.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/content-distribution/place-content-shorthand-006.html.
* web-platform-tests/css/css-align/content-distribution/w3c-import.log: Added.
* web-platform-tests/css/css-align/default-alignment/justify-items-legacy-001-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/justify-items-legacy-001-expected.txt.
* web-platform-tests/css/css-align/default-alignment/justify-items-legacy-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/justify-items-legacy-001.html.
* web-platform-tests/css/css-align/default-alignment/parse-align-items-001-expected.txt: Added.
* web-platform-tests/css/css-align/default-alignment/parse-align-items-001.html: Added.
* web-platform-tests/css/css-align/default-alignment/parse-align-items-002-expected.txt: Added.
* web-platform-tests/css/css-align/default-alignment/parse-align-items-002.html: Added.
* web-platform-tests/css/css-align/default-alignment/parse-align-items-003-expected.txt: Added.
* web-platform-tests/css/css-align/default-alignment/parse-align-items-003.html: Added.
* web-platform-tests/css/css-align/default-alignment/parse-align-items-004-expected.txt: Added.
* web-platform-tests/css/css-align/default-alignment/parse-align-items-004.html: Added.
* web-platform-tests/css/css-align/default-alignment/parse-align-items-005-expected.txt: Added.
* web-platform-tests/css/css-align/default-alignment/parse-align-items-005.html: Added.
* web-platform-tests/css/css-align/default-alignment/parse-justify-items-001-expected.txt: Added.
* web-platform-tests/css/css-align/default-alignment/parse-justify-items-001.html: Added.
* web-platform-tests/css/css-align/default-alignment/parse-justify-items-002-expected.txt: Added.
* web-platform-tests/css/css-align/default-alignment/parse-justify-items-002.html: Added.
* web-platform-tests/css/css-align/default-alignment/parse-justify-items-003-expected.txt: Added.
* web-platform-tests/css/css-align/default-alignment/parse-justify-items-003.html: Added.
* web-platform-tests/css/css-align/default-alignment/parse-justify-items-004-expected.txt: Added.
* web-platform-tests/css/css-align/default-alignment/parse-justify-items-004.html: Added.
* web-platform-tests/css/css-align/default-alignment/parse-justify-items-005-expected.txt: Added.
* web-platform-tests/css/css-align/default-alignment/parse-justify-items-005.html: Added.
* web-platform-tests/css/css-align/default-alignment/parse-justify-items-006-expected.txt: Added.
* web-platform-tests/css/css-align/default-alignment/parse-justify-items-006.html: Added.
* web-platform-tests/css/css-align/default-alignment/place-items-shorthand-001-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/place-items-shorthand-001-expected.txt.
* web-platform-tests/css/css-align/default-alignment/place-items-shorthand-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/place-items-shorthand-001.html.
* web-platform-tests/css/css-align/default-alignment/place-items-shorthand-002-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/place-items-shorthand-002-expected.txt.
* web-platform-tests/css/css-align/default-alignment/place-items-shorthand-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/place-items-shorthand-002.html.
* web-platform-tests/css/css-align/default-alignment/place-items-shorthand-003-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/place-items-shorthand-003-expected.txt.
* web-platform-tests/css/css-align/default-alignment/place-items-shorthand-003.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/place-items-shorthand-003.html.
* web-platform-tests/css/css-align/default-alignment/place-items-shorthand-004-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/place-items-shorthand-004-expected.txt.
* web-platform-tests/css/css-align/default-alignment/place-items-shorthand-004.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/place-items-shorthand-004.html.
* web-platform-tests/css/css-align/default-alignment/place-items-shorthand-005-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/place-items-shorthand-005-expected.txt.
* web-platform-tests/css/css-align/default-alignment/place-items-shorthand-005.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/place-items-shorthand-005.html.
* web-platform-tests/css/css-align/default-alignment/place-items-shorthand-006-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/place-items-shorthand-006-expected.txt.
* web-platform-tests/css/css-align/default-alignment/place-items-shorthand-006.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/place-items-shorthand-006.html.
* web-platform-tests/css/css-align/default-alignment/w3c-import.log: Added.
* web-platform-tests/css/css-align/distribution-values/space-evenly-001-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/distribution-values/space-evenly-001-expected.xht.
* web-platform-tests/css/css-align/distribution-values/space-evenly-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/distribution-values/space-evenly-001.html.
* web-platform-tests/css/css-align/distribution-values/w3c-import.log: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/distribution-values/w3c-import.log.
* web-platform-tests/css/css-align/resources/alignment-parsing-utils.js: Added.
(checkPlaceShorhand):
(checkPlaceShorhandLonghands):
(checkPlaceShorthandInvalidValues):
(checkValues):
(checkBadValues):
(checkInitialValues):
(checkInheritValues):
(checkLegacyValues):
(checkSupportedValues):
* web-platform-tests/css/css-align/resources/w3c-import.log: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/resources/w3c-import.log.
* web-platform-tests/css/css-align/self-alignment/parse-align-self-001-expected.txt: Added.
* web-platform-tests/css/css-align/self-alignment/parse-align-self-001.html: Added.
* web-platform-tests/css/css-align/self-alignment/parse-align-self-002-expected.txt: Added.
* web-platform-tests/css/css-align/self-alignment/parse-align-self-002.html: Added.
* web-platform-tests/css/css-align/self-alignment/parse-align-self-003-expected.txt: Added.
* web-platform-tests/css/css-align/self-alignment/parse-align-self-003.html: Added.
* web-platform-tests/css/css-align/self-alignment/parse-align-self-004-expected.txt: Added.
* web-platform-tests/css/css-align/self-alignment/parse-align-self-004.html: Added.
* web-platform-tests/css/css-align/self-alignment/parse-align-self-005-expected.txt: Added.
* web-platform-tests/css/css-align/self-alignment/parse-align-self-005.html: Added.
* web-platform-tests/css/css-align/self-alignment/parse-justify-self-001-expected.txt: Added.
* web-platform-tests/css/css-align/self-alignment/parse-justify-self-001.html: Added.
* web-platform-tests/css/css-align/self-alignment/parse-justify-self-002-expected.txt: Added.
* web-platform-tests/css/css-align/self-alignment/parse-justify-self-002.html: Added.
* web-platform-tests/css/css-align/self-alignment/parse-justify-self-003-expected.txt: Added.
* web-platform-tests/css/css-align/self-alignment/parse-justify-self-003.html: Added.
* web-platform-tests/css/css-align/self-alignment/parse-justify-self-004-expected.txt: Added.
* web-platform-tests/css/css-align/self-alignment/parse-justify-self-004.html: Added.
* web-platform-tests/css/css-align/self-alignment/parse-justify-self-005-expected.txt: Added.
* web-platform-tests/css/css-align/self-alignment/parse-justify-self-005.html: Added.
* web-platform-tests/css/css-align/self-alignment/place-self-shorthand-001-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/self-alignment/place-self-shorthand-001-expected.txt.
* web-platform-tests/css/css-align/self-alignment/place-self-shorthand-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/self-alignment/place-self-shorthand-001.html.
* web-platform-tests/css/css-align/self-alignment/place-self-shorthand-002-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/self-alignment/place-self-shorthand-002-expected.txt.
* web-platform-tests/css/css-align/self-alignment/place-self-shorthand-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/self-alignment/place-self-shorthand-002.html.
* web-platform-tests/css/css-align/self-alignment/place-self-shorthand-003-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/self-alignment/place-self-shorthand-003-expected.txt.
* web-platform-tests/css/css-align/self-alignment/place-self-shorthand-003.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/self-alignment/place-self-shorthand-003.html.
* web-platform-tests/css/css-align/self-alignment/place-self-shorthand-004-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/self-alignment/place-self-shorthand-004-expected.txt.
* web-platform-tests/css/css-align/self-alignment/place-self-shorthand-004.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/self-alignment/place-self-shorthand-004.html.
* web-platform-tests/css/css-align/self-alignment/place-self-shorthand-005-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/self-alignment/place-self-shorthand-005-expected.txt.
* web-platform-tests/css/css-align/self-alignment/place-self-shorthand-005.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/self-alignment/place-self-shorthand-005.html.
* web-platform-tests/css/css-align/self-alignment/place-self-shorthand-006-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/self-alignment/place-self-shorthand-006-expected.txt.
* web-platform-tests/css/css-align/self-alignment/place-self-shorthand-006.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/self-alignment/place-self-shorthand-006.html.
* web-platform-tests/css/css-align/self-alignment/w3c-import.log: Added.

Source/WebCore:

The CSS WG resolved to remove the 'left' and 'right' values from the
block/cross axis alignment properties.

w3c/csswg-drafts#1403

This patch changes the CSS parsing logic of all the CSS Box Alignment
properties, both block-axis (align-{self, items, content} and
inline-axis (justify-{self, items, content}).

Additionally, the alignment shorthands (place-{self, items, content})
have been also changed to respect the new syntax.

Despite the number of layout tests changed, I don't think this
change will break any content in current sites. The CSS values
'left' and 'right' were introduced by the new CSS Box Alignment
spec and only implemented by the CSS Grid Layout feature, shipped
last year. Additionally, the removed values have no effect on the
layout result when they are applied to the block/cross-axis CSS
Alignment properties.

Tests: imported/w3c/web-platform-tests/css/css-align/content-distribution/parse-align-content-001.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/parse-align-content-002.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/parse-align-content-003.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/parse-align-content-004.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/parse-align-content-005.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/parse-justify-content-001.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/parse-justify-content-002.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/parse-justify-content-003.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/parse-justify-content-004.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/parse-justify-content-005.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-001.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-002.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-003.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-004.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-005.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-006.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/justify-items-legacy-001.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-align-items-001.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-align-items-002.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-align-items-003.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-align-items-004.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-align-items-005.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-justify-items-001.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-justify-items-002.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-justify-items-003.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-justify-items-004.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-justify-items-005.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-justify-items-006.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-001.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-002.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-003.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-004.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-005.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-006.html
       imported/w3c/web-platform-tests/css/css-align/distribution-values/space-evenly-001.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/parse-align-self-001.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/parse-align-self-002.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/parse-align-self-003.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/parse-align-self-004.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/parse-align-self-005.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/parse-justify-self-001.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/parse-justify-self-002.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/parse-justify-self-003.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/parse-justify-self-004.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/parse-justify-self-005.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-001.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-002.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-003.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-004.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-005.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-006.html

* css/parser/CSSPropertyParser.cpp:
(WebCore::isLeftOrRightKeyword):
(WebCore::isContentPositionKeyword):
(WebCore::isContentPositionOrLeftOrRightKeyword):
(WebCore::consumeContentDistributionOverflowPosition):
(WebCore::isSelfPositionKeyword):
(WebCore::isSelfPositionOrLeftOrRightKeyword):
(WebCore::consumeSelfPositionOverflowPosition):
(WebCore::consumeAlignItems):
(WebCore::consumeJustifyItems):
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::consumeSimplifiedContentPosition):
(WebCore::CSSPropertyParser::consumePlaceContentShorthand):
(WebCore::consumeSimplifiedItemPosition):
(WebCore::CSSPropertyParser::consumePlaceItemsShorthand):
(WebCore::CSSPropertyParser::consumePlaceSelfShorthand):

LayoutTests:

Rebaseline tests because of the removal of the 'left' and right' CSS values.

* css3/parse-align-content.html:
* css3/parse-align-items.html:
* css3/parse-align-self-expected.txt:
* css3/parse-align-self.html:
* css3/parse-alignment-of-root-elements-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@227432 268f45cc-cd09-0410-ab3c-d52691b4dbfc
@fantasai fantasai closed this as completed Apr 3, 2018
ryanhaddad pushed a commit to WebKit/WebKit that referenced this issue Dec 22, 2020
…-axis alignment

https://bugs.webkit.org/show_bug.cgi?id=181792

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Imported new Web Platform Tests for the css-align module.

* resources/import-expectations.json:
* web-platform-tests/css/css-align-3/content-distribution/w3c-import.log: Removed.
* web-platform-tests/css/css-align-3/default-alignment/w3c-import.log: Removed.
* web-platform-tests/css/css-align-3/resources/alignment-parsing-utils.js: Removed.
* web-platform-tests/css/css-align-3/self-alignment/w3c-import.log: Removed.
* web-platform-tests/css/css-align/content-distribution/parse-align-content-001-expected.txt: Added.
* web-platform-tests/css/css-align/content-distribution/parse-align-content-001.html: Added.
* web-platform-tests/css/css-align/content-distribution/parse-align-content-002-expected.txt: Added.
* web-platform-tests/css/css-align/content-distribution/parse-align-content-002.html: Added.
* web-platform-tests/css/css-align/content-distribution/parse-align-content-003-expected.txt: Added.
* web-platform-tests/css/css-align/content-distribution/parse-align-content-003.html: Added.
* web-platform-tests/css/css-align/content-distribution/parse-align-content-004-expected.txt: Added.
* web-platform-tests/css/css-align/content-distribution/parse-align-content-004.html: Added.
* web-platform-tests/css/css-align/content-distribution/parse-align-content-005-expected.txt: Added.
* web-platform-tests/css/css-align/content-distribution/parse-align-content-005.html: Added.
* web-platform-tests/css/css-align/content-distribution/parse-justify-content-001-expected.txt: Added.
* web-platform-tests/css/css-align/content-distribution/parse-justify-content-001.html: Added.
* web-platform-tests/css/css-align/content-distribution/parse-justify-content-002-expected.txt: Added.
* web-platform-tests/css/css-align/content-distribution/parse-justify-content-002.html: Added.
* web-platform-tests/css/css-align/content-distribution/parse-justify-content-003-expected.txt: Added.
* web-platform-tests/css/css-align/content-distribution/parse-justify-content-003.html: Added.
* web-platform-tests/css/css-align/content-distribution/parse-justify-content-004-expected.txt: Added.
* web-platform-tests/css/css-align/content-distribution/parse-justify-content-004.html: Added.
* web-platform-tests/css/css-align/content-distribution/parse-justify-content-005-expected.txt: Added.
* web-platform-tests/css/css-align/content-distribution/parse-justify-content-005.html: Added.
* web-platform-tests/css/css-align/content-distribution/place-content-shorthand-001-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/content-distribution/place-content-shorthand-001-expected.txt.
* web-platform-tests/css/css-align/content-distribution/place-content-shorthand-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/content-distribution/place-content-shorthand-001.html.
* web-platform-tests/css/css-align/content-distribution/place-content-shorthand-002-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/content-distribution/place-content-shorthand-002-expected.txt.
* web-platform-tests/css/css-align/content-distribution/place-content-shorthand-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/content-distribution/place-content-shorthand-002.html.
* web-platform-tests/css/css-align/content-distribution/place-content-shorthand-003-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/content-distribution/place-content-shorthand-003-expected.txt.
* web-platform-tests/css/css-align/content-distribution/place-content-shorthand-003.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/content-distribution/place-content-shorthand-003.html.
* web-platform-tests/css/css-align/content-distribution/place-content-shorthand-004-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/content-distribution/place-content-shorthand-004-expected.txt.
* web-platform-tests/css/css-align/content-distribution/place-content-shorthand-004.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/content-distribution/place-content-shorthand-004.html.
* web-platform-tests/css/css-align/content-distribution/place-content-shorthand-005-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/content-distribution/place-content-shorthand-005-expected.txt.
* web-platform-tests/css/css-align/content-distribution/place-content-shorthand-005.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/content-distribution/place-content-shorthand-005.html.
* web-platform-tests/css/css-align/content-distribution/place-content-shorthand-006-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/content-distribution/place-content-shorthand-006-expected.txt.
* web-platform-tests/css/css-align/content-distribution/place-content-shorthand-006.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/content-distribution/place-content-shorthand-006.html.
* web-platform-tests/css/css-align/content-distribution/w3c-import.log: Added.
* web-platform-tests/css/css-align/default-alignment/justify-items-legacy-001-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/justify-items-legacy-001-expected.txt.
* web-platform-tests/css/css-align/default-alignment/justify-items-legacy-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/justify-items-legacy-001.html.
* web-platform-tests/css/css-align/default-alignment/parse-align-items-001-expected.txt: Added.
* web-platform-tests/css/css-align/default-alignment/parse-align-items-001.html: Added.
* web-platform-tests/css/css-align/default-alignment/parse-align-items-002-expected.txt: Added.
* web-platform-tests/css/css-align/default-alignment/parse-align-items-002.html: Added.
* web-platform-tests/css/css-align/default-alignment/parse-align-items-003-expected.txt: Added.
* web-platform-tests/css/css-align/default-alignment/parse-align-items-003.html: Added.
* web-platform-tests/css/css-align/default-alignment/parse-align-items-004-expected.txt: Added.
* web-platform-tests/css/css-align/default-alignment/parse-align-items-004.html: Added.
* web-platform-tests/css/css-align/default-alignment/parse-align-items-005-expected.txt: Added.
* web-platform-tests/css/css-align/default-alignment/parse-align-items-005.html: Added.
* web-platform-tests/css/css-align/default-alignment/parse-justify-items-001-expected.txt: Added.
* web-platform-tests/css/css-align/default-alignment/parse-justify-items-001.html: Added.
* web-platform-tests/css/css-align/default-alignment/parse-justify-items-002-expected.txt: Added.
* web-platform-tests/css/css-align/default-alignment/parse-justify-items-002.html: Added.
* web-platform-tests/css/css-align/default-alignment/parse-justify-items-003-expected.txt: Added.
* web-platform-tests/css/css-align/default-alignment/parse-justify-items-003.html: Added.
* web-platform-tests/css/css-align/default-alignment/parse-justify-items-004-expected.txt: Added.
* web-platform-tests/css/css-align/default-alignment/parse-justify-items-004.html: Added.
* web-platform-tests/css/css-align/default-alignment/parse-justify-items-005-expected.txt: Added.
* web-platform-tests/css/css-align/default-alignment/parse-justify-items-005.html: Added.
* web-platform-tests/css/css-align/default-alignment/parse-justify-items-006-expected.txt: Added.
* web-platform-tests/css/css-align/default-alignment/parse-justify-items-006.html: Added.
* web-platform-tests/css/css-align/default-alignment/place-items-shorthand-001-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/place-items-shorthand-001-expected.txt.
* web-platform-tests/css/css-align/default-alignment/place-items-shorthand-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/place-items-shorthand-001.html.
* web-platform-tests/css/css-align/default-alignment/place-items-shorthand-002-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/place-items-shorthand-002-expected.txt.
* web-platform-tests/css/css-align/default-alignment/place-items-shorthand-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/place-items-shorthand-002.html.
* web-platform-tests/css/css-align/default-alignment/place-items-shorthand-003-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/place-items-shorthand-003-expected.txt.
* web-platform-tests/css/css-align/default-alignment/place-items-shorthand-003.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/place-items-shorthand-003.html.
* web-platform-tests/css/css-align/default-alignment/place-items-shorthand-004-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/place-items-shorthand-004-expected.txt.
* web-platform-tests/css/css-align/default-alignment/place-items-shorthand-004.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/place-items-shorthand-004.html.
* web-platform-tests/css/css-align/default-alignment/place-items-shorthand-005-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/place-items-shorthand-005-expected.txt.
* web-platform-tests/css/css-align/default-alignment/place-items-shorthand-005.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/place-items-shorthand-005.html.
* web-platform-tests/css/css-align/default-alignment/place-items-shorthand-006-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/place-items-shorthand-006-expected.txt.
* web-platform-tests/css/css-align/default-alignment/place-items-shorthand-006.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/default-alignment/place-items-shorthand-006.html.
* web-platform-tests/css/css-align/default-alignment/w3c-import.log: Added.
* web-platform-tests/css/css-align/distribution-values/space-evenly-001-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/distribution-values/space-evenly-001-expected.xht.
* web-platform-tests/css/css-align/distribution-values/space-evenly-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/distribution-values/space-evenly-001.html.
* web-platform-tests/css/css-align/distribution-values/w3c-import.log: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/distribution-values/w3c-import.log.
* web-platform-tests/css/css-align/resources/alignment-parsing-utils.js: Added.
(checkPlaceShorhand):
(checkPlaceShorhandLonghands):
(checkPlaceShorthandInvalidValues):
(checkValues):
(checkBadValues):
(checkInitialValues):
(checkInheritValues):
(checkLegacyValues):
(checkSupportedValues):
* web-platform-tests/css/css-align/resources/w3c-import.log: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/resources/w3c-import.log.
* web-platform-tests/css/css-align/self-alignment/parse-align-self-001-expected.txt: Added.
* web-platform-tests/css/css-align/self-alignment/parse-align-self-001.html: Added.
* web-platform-tests/css/css-align/self-alignment/parse-align-self-002-expected.txt: Added.
* web-platform-tests/css/css-align/self-alignment/parse-align-self-002.html: Added.
* web-platform-tests/css/css-align/self-alignment/parse-align-self-003-expected.txt: Added.
* web-platform-tests/css/css-align/self-alignment/parse-align-self-003.html: Added.
* web-platform-tests/css/css-align/self-alignment/parse-align-self-004-expected.txt: Added.
* web-platform-tests/css/css-align/self-alignment/parse-align-self-004.html: Added.
* web-platform-tests/css/css-align/self-alignment/parse-align-self-005-expected.txt: Added.
* web-platform-tests/css/css-align/self-alignment/parse-align-self-005.html: Added.
* web-platform-tests/css/css-align/self-alignment/parse-justify-self-001-expected.txt: Added.
* web-platform-tests/css/css-align/self-alignment/parse-justify-self-001.html: Added.
* web-platform-tests/css/css-align/self-alignment/parse-justify-self-002-expected.txt: Added.
* web-platform-tests/css/css-align/self-alignment/parse-justify-self-002.html: Added.
* web-platform-tests/css/css-align/self-alignment/parse-justify-self-003-expected.txt: Added.
* web-platform-tests/css/css-align/self-alignment/parse-justify-self-003.html: Added.
* web-platform-tests/css/css-align/self-alignment/parse-justify-self-004-expected.txt: Added.
* web-platform-tests/css/css-align/self-alignment/parse-justify-self-004.html: Added.
* web-platform-tests/css/css-align/self-alignment/parse-justify-self-005-expected.txt: Added.
* web-platform-tests/css/css-align/self-alignment/parse-justify-self-005.html: Added.
* web-platform-tests/css/css-align/self-alignment/place-self-shorthand-001-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/self-alignment/place-self-shorthand-001-expected.txt.
* web-platform-tests/css/css-align/self-alignment/place-self-shorthand-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/self-alignment/place-self-shorthand-001.html.
* web-platform-tests/css/css-align/self-alignment/place-self-shorthand-002-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/self-alignment/place-self-shorthand-002-expected.txt.
* web-platform-tests/css/css-align/self-alignment/place-self-shorthand-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/self-alignment/place-self-shorthand-002.html.
* web-platform-tests/css/css-align/self-alignment/place-self-shorthand-003-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/self-alignment/place-self-shorthand-003-expected.txt.
* web-platform-tests/css/css-align/self-alignment/place-self-shorthand-003.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/self-alignment/place-self-shorthand-003.html.
* web-platform-tests/css/css-align/self-alignment/place-self-shorthand-004-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/self-alignment/place-self-shorthand-004-expected.txt.
* web-platform-tests/css/css-align/self-alignment/place-self-shorthand-004.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/self-alignment/place-self-shorthand-004.html.
* web-platform-tests/css/css-align/self-alignment/place-self-shorthand-005-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/self-alignment/place-self-shorthand-005-expected.txt.
* web-platform-tests/css/css-align/self-alignment/place-self-shorthand-005.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/self-alignment/place-self-shorthand-005.html.
* web-platform-tests/css/css-align/self-alignment/place-self-shorthand-006-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/self-alignment/place-self-shorthand-006-expected.txt.
* web-platform-tests/css/css-align/self-alignment/place-self-shorthand-006.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-align-3/self-alignment/place-self-shorthand-006.html.
* web-platform-tests/css/css-align/self-alignment/w3c-import.log: Added.

Source/WebCore:

The CSS WG resolved to remove the 'left' and 'right' values from the
block/cross axis alignment properties.

w3c/csswg-drafts#1403

This patch changes the CSS parsing logic of all the CSS Box Alignment
properties, both block-axis (align-{self, items, content} and
inline-axis (justify-{self, items, content}).

Additionally, the alignment shorthands (place-{self, items, content})
have been also changed to respect the new syntax.

Despite the number of layout tests changed, I don't think this
change will break any content in current sites. The CSS values
'left' and 'right' were introduced by the new CSS Box Alignment
spec and only implemented by the CSS Grid Layout feature, shipped
last year. Additionally, the removed values have no effect on the
layout result when they are applied to the block/cross-axis CSS
Alignment properties.

Tests: imported/w3c/web-platform-tests/css/css-align/content-distribution/parse-align-content-001.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/parse-align-content-002.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/parse-align-content-003.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/parse-align-content-004.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/parse-align-content-005.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/parse-justify-content-001.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/parse-justify-content-002.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/parse-justify-content-003.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/parse-justify-content-004.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/parse-justify-content-005.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-001.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-002.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-003.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-004.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-005.html
       imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-006.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/justify-items-legacy-001.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-align-items-001.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-align-items-002.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-align-items-003.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-align-items-004.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-align-items-005.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-justify-items-001.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-justify-items-002.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-justify-items-003.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-justify-items-004.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-justify-items-005.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-justify-items-006.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-001.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-002.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-003.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-004.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-005.html
       imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-006.html
       imported/w3c/web-platform-tests/css/css-align/distribution-values/space-evenly-001.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/parse-align-self-001.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/parse-align-self-002.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/parse-align-self-003.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/parse-align-self-004.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/parse-align-self-005.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/parse-justify-self-001.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/parse-justify-self-002.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/parse-justify-self-003.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/parse-justify-self-004.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/parse-justify-self-005.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-001.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-002.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-003.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-004.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-005.html
       imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-006.html

* css/parser/CSSPropertyParser.cpp:
(WebCore::isLeftOrRightKeyword):
(WebCore::isContentPositionKeyword):
(WebCore::isContentPositionOrLeftOrRightKeyword):
(WebCore::consumeContentDistributionOverflowPosition):
(WebCore::isSelfPositionKeyword):
(WebCore::isSelfPositionOrLeftOrRightKeyword):
(WebCore::consumeSelfPositionOverflowPosition):
(WebCore::consumeAlignItems):
(WebCore::consumeJustifyItems):
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::consumeSimplifiedContentPosition):
(WebCore::CSSPropertyParser::consumePlaceContentShorthand):
(WebCore::consumeSimplifiedItemPosition):
(WebCore::CSSPropertyParser::consumePlaceItemsShorthand):
(WebCore::CSSPropertyParser::consumePlaceSelfShorthand):

LayoutTests:

Rebaseline tests because of the removal of the 'left' and right' CSS values.

* css3/parse-align-content.html:
* css3/parse-align-items.html:
* css3/parse-align-self-expected.txt:
* css3/parse-align-self.html:
* css3/parse-alignment-of-root-elements-expected.txt:


Canonical link: https://commits.webkit.org/197832@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227432 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Closed Accepted by CSSWG Resolution css-align-3 Current Work i18n-tracker Group bringing to attention of Internationalization, or tracked by i18n but not needing response.
Projects
None yet
Development

No branches or pull requests

6 participants