On Fri, 29 Jan 2021 14:15:13 GMT, Alexey Ivanov <aiva...@openjdk.org> wrote:
>> This PR supersedes #2223. >> The original PR was created from master, whereas this PR is created from a >> fresh branch. >> >> Below is a copy of the original description, but as @mrserb correctly >> [pointed >> out](https://github.com/openjdk/jdk/pull/2223#issuecomment-767048399), there >> is actually no relevant change from CSS 2.1 to CSS 2.2, so I <strike>striked >> out</strike> that part. >> >> ### Original Description >> >> @prsadhuk asked me to take over his pull request #1628, since I filed the >> bug an suggested this fix. >> >> I thought the current behavior would be buggy, but actually the units are >> quite precise. I checked the size of a text in font-size of 1 in, and it >> really was approximately 1 inch. The problem is just that browsers behave >> differently. >> >> <strike> >> Swing follows the CSS 2.1 spec: >> https://www.w3.org/TR/CSS21/syndata.html#length-units. >> But in CSS 2.2, length units where redefined: >> https://www.w3.org/TR/CSS22/syndata.html#length-units. >> Now px is also an absolute unit, and there are constant conversion factors >> between all absolute units. >> >> The CSS 2.2 spec includes the following two notes regarding this change: >> >> Note that if the anchor unit is the pixel unit, the physical units might >> not match their physical measurements. Alternatively if the anchor unit is a >> physical unit, the pixel unit might not map to a whole number of device >> pixels. >> >> Note that this definition of the pixel unit and the physical units >> differs from previous versions of CSS. In particular, in previous versions >> of CSS the pixel unit and the physical units were not related by a fixed >> ratio: the physical units were always tied to their physical measurements >> while the pixel unit would vary to most closely match the reference pixel. >> (This change was made because too much existing content relies on the >> assumption of 96dpi, and breaking that assumption breaks the content.) >> >> So the spec changed the behavior to better support high-DPI devices with >> existing content, and that is exactly my intention with this PR as well. >> </strike> > > src/java.desktop/share/classes/javax/swing/text/html/CSS.java line 2870: > >> 2868: w3cLengthMapping.put("cm", 37.7952f); //96px/2.54 >> 2869: w3cLengthMapping.put("pc", 16f); //1/6 of 1in >> 2870: w3cLengthMapping.put("in", 96f); //96px > > I suggest adding a space after `//`. > Align the comments? > > As for *px*, CSS defines, “1px is equal to 0.75pt”, then 1pt is 4/3px — this > is where 1.3f comes from (=96/72). Copyright year in CSS.java needs updating to 2021 too. ------------- PR: https://git.openjdk.java.net/jdk/pull/2256