LGTM2 On Mon, Sep 23, 2024 at 8:01 AM Mike Taylor <miketa...@chromium.org> wrote:
> Thanks for the clarifications. > > LGTM1 > > On 9/23/24 12:00 AM, Morten Stenshorne wrote: > > Mike Taylor <miketa...@chromium.org> writes: > > > >> On 9/19/24 4:58 PM, Chromestatus wrote: > >> > >> Contact emails > >> > >> msten...@chromium.org > >> > >> Explainer > >> > >> https://github.com/mstensho/page-margin-boxes > >> > >> Specification > >> > >> https://drafts.csswg.org/css-page-3/#margin-boxes > >> > >> Summary > >> > >> Add support for page margin boxes, when printing a web document, or > exporting it as PDF. @page margin boxes > >> allows an author to define the contents in the margin area of a page, > for instance to provide custom headers and > >> footers, rather than using the built-in headers and footers generated > by the browser. A margin box is defined via an > >> at-rule inside a CSS @page rule. There are 16 rules defined, one for > each page margin box. There's one margin box > >> for each of the 4 corners on the page, and three (start, middle, end) > for each of the 4 sides. The appearance and the > >> contents of a margin box are specified with CSS properties inside the > at-rule, including the "content" property. > >> Counters are also to be supported, for page numbering. The > specification defines two special counter names: > >> "page" for the current page number, and "pages" for the total number > of pages. > >> > >> Blink component > >> > >> Blink>Layout>Printing > >> > >> TAG review > >> > >> https://github.com/w3ctag/design-reviews/issues/918 > >> > >> TAG review status > >> > >> Issues addressed > >> > >> Risks > >> > >> Interoperability and Compatibility > >> > >> The spec defines the CSS counter names 'page' and 'pages'. Both are > accessible by the document's contents, so > >> that any element may use the counters to tell the current page > number, or the total number of pages. Documents > >> that use these counter names without being aware of this feature may > be in for a surprise. Most browsers offer to > >> generate some default headers and footers, and they are usually > enabled by default. If the document has margin > >> at-rules, they may come in conflict. We need some way of making sure > that we either use the browser-default > >> headers and footers, or the author-defined @page margins. > >> > >> Can you clarify what you mean by "in for a surprise"? > >> > >> I don't think I understand the compat implications of @page+ > >> margin boxes here. > > I'll remove this at chromestatus. It is no concern for now, since > > counters in page / margin contexts will not interact with those of the > > document. I.e. it's something we don't implement yet. The spec suggests > > that they should interact, but it is vague, not too well thought through > > (the spec forgets about parallel flows, for one), and the whole thing is > > kind of weird, as counters are resolved in DOM tree order (i.e. the > > precense of out-of-flow box, floats, etc.) do not affect the counter > > scopes / values. Page / margin counters, on the other hand, need to be > > resolved during layout. So we can revisit this later. > > > > I wrote about this here (but how to fix the spec hasn't been discussed > > yet): > > https://github.com/w3c/csswg-drafts/issues/4760#issuecomment-1959298806 > > > >> Also, do you have a plan for default header/footer conflicts w/ > developer-provided ones? > > Yes, sorry, forgot to update chromestatus again. Now fixed. > > > > Most browsers offer to generate some default headers and footers, and > > they are usually enabled by default. If the document has margin > > at-rules, they may come in conflict and overlap if no action is > > taken. Our solution: When a page has author-defined @page margin boxes > > at the same edge of the page as a browser-default header or footer, the > > browser-default ones will be suppressed (not displayed). This is in a > > way similar to how the browser-default headers and footers are > > suppressed when @page margins become too small for them to fit there > > (with @page margin boxes, the author kind of takes control of the margin > > area, and therefore there's nothing left for the UA, as if the margin on > > that edge is zero). > > > >> Gecko: No signal ( > https://github.com/mozilla/standards-positions/issues/921) > >> > >> WebKit: No signal ( > https://github.com/WebKit/standards-positions/issues/275) > >> > >> Web developers: Positive > https://bugs.chromium.org/p/chromium/issues/detail?id=320370 currently > has 98 stars. > >> > >> Other signals: > >> > >> WebView application risks > >> > >> Does this intent deprecate or change behavior of existing APIs, such > that it has potentially high risk for Android > >> WebView-based applications? > >> > >> None > >> > >> Debuggability > >> > >> None > >> > >> I think it's possible to emulate the print media via DevTools. Maybe > there are other possible debug modes to visually > >> represent these named margin boxes (as follow up work)? > > Yes, we can emulate print media, as in "match @media print rules". But > > that doesn't give us pagination. Getting devtools to paginate, so that > > one could inspect the page boxes and margins (and margin box contents) > > could indeed be useful. This is something that would have been useful > > for years already, but with richer pagination support (like @page margin > > boxes) it does become even more interesting. > > > > There's crbug.com/40728089 for this. > > > >> Will this feature be supported on all six Blink platforms (Windows, > Mac, Linux, ChromeOS, Android, and Android > >> WebView)? > >> > >> Yes > >> > >> Is this feature fully tested by web-platform-tests? > >> > >> No > >> > >> WPT tests will be written and submitted while working on this feature. > >> > >> Flag name on chrome://flags > >> > >> None > >> > >> Finch feature name > >> > >> PageMarginBoxes > >> > >> Requires code in //chrome? > >> > >> False > >> > >> Tracking bug > >> > >> https://bugs.chromium.org/p/chromium/issues/detail?id=320370 > >> > >> Estimated milestones > >> > >> Shipping on desktop 131 > >> Shipping on Android 131 > >> Shipping on WebView 131 > >> > >> Anticipated spec changes > >> > >> Open questions about a feature may be a source of future web compat > or interop issues. Please list open issues > >> (e.g. links to known github issues in the project for the feature > specification) whose resolution may introduce web > >> compat/interop risk (e.g., changing to naming or structure of the API > in a non-backward-compatible way). > >> > >> None > >> > >> Link to entry on the Chrome Platform Status > >> > >> > https://chromestatus.com/feature/5195769732923392?gate=6322213557108736 > >> > >> Links to previous Intent discussions > >> > >> Intent to Prototype: > https://groups.google.com/a/chromium.org/g/blink-dev/c/ZCPkcu_dSF8 > >> > >> This intent message was generated by Chrome Platform Status. > >> -- > >> You received this message because you are subscribed to the Google > Groups "blink-dev" group. > >> To unsubscribe from this group and stop receiving emails from it, > send an email to > >> blink-dev+unsubscr...@chromium.org. > >> To view this discussion on the web visit > >> > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/66ec9090.2b0a0220.b3b1b.006b.GAE%40google.com > . > >> > > -- > You received this message because you are subscribed to the Google Groups > "blink-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to blink-dev+unsubscr...@chromium.org. > To view this discussion on the web visit > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/dff2c291-19d5-452a-a71e-3f4f0a35c1d4%40chromium.org > . > -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscr...@chromium.org. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw8UsROUMmf3J%3DqWuWoYQhLKSXimipxhz_uWVHJOgXU6tQ%40mail.gmail.com.