Confirmed users
104
edits
(more bugs) |
No edit summary |
||
Line 35: | Line 35: | ||
* Support vertical text in SVG | * Support vertical text in SVG | ||
|Feature functional spec=* Bug 0 - Prototype | |Feature functional spec=* Bug 0 - Prototype | ||
* [https://bugzilla.mozilla.org/show_bug.cgi?id=772321 Bug | * [https://bugzilla.mozilla.org/show_bug.cgi?id=772321 Bug 1] - Parse writing mode and text-orientation | ||
* [https://bugzilla.mozilla.org/show_bug.cgi?id=735577 Bug | * [https://bugzilla.mozilla.org/show_bug.cgi?id=735577 Bug 2] - Logicalize Reflow APIs | ||
* [https://bugzilla.mozilla.org/show_bug.cgi?id=789096 Bug 3] - | * [https://bugzilla.mozilla.org/show_bug.cgi?id=789096 Bug 3] - Logicalize Reflow for all frame classes | ||
* [https://bugzilla.mozilla.org/show_bug.cgi?id=649142 | * [https://bugzilla.mozilla.org/show_bug.cgi?id=649142 Bug 4] - Refactor and extend logical CSS properties | ||
* [https://bugzilla.mozilla.org/show_bug.cgi?id=789099 Bug 4] - Orthogonal Flows | * [https://bugzilla.mozilla.org/show_bug.cgi?id=789099 Bug 4] - Orthogonal Flows | ||
* [https://bugzilla.mozilla.org/show_bug.cgi?id=789103 Bug 5] - UI | * [https://bugzilla.mozilla.org/show_bug.cgi?id=789103 Bug 5] - UI | ||
Line 47: | Line 47: | ||
** Glyph layout of CJK only | ** Glyph layout of CJK only | ||
** Parsing, orthogonal flows and UI will not be included | ** Parsing, orthogonal flows and UI will not be included | ||
* [https://bugzilla.mozilla.org/show_bug.cgi?id=735577 Bug | * [https://bugzilla.mozilla.org/show_bug.cgi?id=772321 Bug 2]: Parsing of <code>writing-mode</code> and <code>text-orientation</code><br>(see [[#9._Implementation|Implementation]] below) | ||
** | |||
** | The above is done. Steps to implement (parallelizable steps preceded by --> to indicate possible forking-off): | ||
* --> [https://bugzilla.mozilla.org/show_bug.cgi?id=649142 Bug 4] - Refactor existing logical CSS properties | |||
* [https://bugzilla.mozilla.org/show_bug.cgi?id=772321 Bug 1] - Parse writing mode and text-orientation | |||
* --> Extend logical CSS properties to handle vertical text (depends only on Bugs 1 and 4) | |||
* [https://bugzilla.mozilla.org/show_bug.cgi?id=735577 Bug 2]: Logicalization of layout parameters | |||
** May involve some renaming across the layout engine, but shouldn't affect logic at this point | |||
** Note that some frame classes will continue to be physical, e.g. images, even after full logicalization | |||
* [https://bugzilla.mozilla.org/show_bug.cgi?id=789096 Bug 3]: Logicalize Block and Inline layout | |||
** Logicalize nsBlockFrame. Get vertical-only/horizontal-only documents consisting of only block frames working/tested | |||
** Note that not all properties get treated the same. For example, the offset of a <code>text-shadow</code> property is unaffected by writing mode. | ** Note that not all properties get treated the same. For example, the offset of a <code>text-shadow</code> property is unaffected by writing mode. | ||
** Get | ** Logicalize nsLineLayout, nsInlineFrame, nsTextFrame, etc. Get inline layout working for vertical-only documents. Make the text just draw sideways for now. | ||
* | * --> After block and inline layout, other frame classes can be converted set by set, e.g. | ||
* | ** Tables | ||
** | ** Flexbox | ||
* [https://bugzilla.mozilla.org/show_bug.cgi?id=789099 Bug 4]: Orthogonal flows | ** etc. | ||
* [https://bugzilla.mozilla.org/show_bug.cgi?id=789103 Bug 5]: UI features | * --> [https://bugzilla.mozilla.org/show_bug.cgi?id=789099 Bug 4]: Orthogonal flows | ||
** Probably requires a lot of rework of intrinsic sizing. This is a complicated task! | |||
* --> [https://bugzilla.mozilla.org/show_bug.cgi?id=789103 Bug 5]: UI features | |||
** scrollbars | ** scrollbars | ||
** mapping scrollwheel | ** mapping scrollwheel | ||
Line 62: | Line 73: | ||
** vertical text selection cursor | ** vertical text selection cursor | ||
** caret browsing | ** caret browsing | ||
** list boxes/combo boxes | ** list boxes/combo boxes (initial implementation should just transform the control; next pass does actual vertical layout) | ||
** menus | ** menus | ||
** other? | ** other? | ||
* [https://bugzilla.mozilla.org/show_bug.cgi?id=789104 Bug 6]: Glyph orientation | * --> [https://bugzilla.mozilla.org/show_bug.cgi?id=789104 Bug 6]: Glyph orientation | ||
** Using character properties such as those defined in [http://www.unicode.org/reports/tr50/ UTR-50] (currently under review) | ** Using character properties such as those defined in [http://www.unicode.org/reports/tr50/ UTR-50] (currently under review) | ||
** Supporting different modes as necessary (e.g. stacked vs default, cf. <code>text-orientation</code> which is in flux) | ** Supporting different modes as necessary (e.g. stacked vs default, cf. <code>text-orientation</code> which is in flux) | ||
Line 73: | Line 84: | ||
* Need to investigate how to pref CSS keyword parsing (and all writing-mode processing) on and off. (This is relatively straightforward, now that {{bug|753522}} is implemented. Just specify the pref in the property's chunk of nsCSSPropList.h, and use Preferences::GetBool() elsewhere if necessary.) | * Need to investigate how to pref CSS keyword parsing (and all writing-mode processing) on and off. (This is relatively straightforward, now that {{bug|753522}} is implemented. Just specify the pref in the property's chunk of nsCSSPropList.h, and use Preferences::GetBool() elsewhere if necessary.) | ||
* Possibly want to be able to <code>#ifdef</code> it as well? Or just back out the changes after each uplift so we don't pay the perf cost until it's ready? | * Possibly want to be able to <code>#ifdef</code> it as well? Or just back out the changes after each uplift so we don't pay the perf cost until it's ready? [There shouldn't be any perf cost.] | ||
* Multi-column vertical layout | * Multi-column vertical layout |