[prev in list] [next in list] [prev in thread] [next in thread] 

List:       webkit-dev
Subject:    Re: [webkit-dev] WebKit position on Paint Timing / (first paint, first contentful paint)
From:       Maciej Stachowiak <mjs () apple ! com>
Date:       2020-02-27 5:00:23
Message-ID: 2C35962E-07EE-42FD-BE2D-47AFF64F2D97 () apple ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


> On Feb 26, 2020, at 2:25 PM, Ryosuke Niwa <rniwa@webkit.org> wrote:
> 
> 
> On Wed, Feb 26, 2020 at 11:29 AM Maciej Stachowiak <mjs@apple.com \
> <mailto:mjs@apple.com>> wrote: 
> 
> > On Feb 26, 2020, at 10:51 AM, Noam Rosenthal <noam.j.rosenthal@gmail.com \
> > <mailto:noam.j.rosenthal@gmail.com>> wrote: 
> > 
> > 
> > On Wed, Feb 26, 2020 at 8:08 PM Maciej Stachowiak <mjs@apple.com \
> > <mailto:mjs@apple.com>> wrote: 
> > Some quick comments: 
> > 
> > the definition of First Contentful Paint here in the spec: \
> > <https://www.w3.org/TR/paint-timing/#sec-terminology \
> > <https://www.w3.org/TR/paint-timing/#sec-terminology>> does not match the \
> > definition stated at <https://web.dev/first-contentful-paint/ \
> > <https://web.dev/first-contentful-paint/>>. The Chrome definition on web.dev \
> > <http://web.dev/> specifies that iframe content is not included, the spec does \
> > not have this limitation. Would an implementation that matches the spec match \
> > Chrome? The draft version of the spec specifies that iframe content is not \
> > included in FCP:  https://w3c.github.io/paint-timing/#sec-reporting-paint-timing \
> > <https://w3c.github.io/paint-timing/#sec-reporting-paint-timing>, and has a few \
> > more comprehensive details about this. I think it's a good place to start. 
> > I am also not sure this matches the layout milestones that already exist in \
> > non-Blink browser engines. Has this spec been implemented in Gecko, for example, \
> > to verity that it's not exposing a concept that only exists in Blink? No, this \
> > has not been implemented in Gecko, I'm tracking the bug on this: \
> > https://bugzilla.mozilla.org/show_bug.cgi?id=1518999 \
> > <https://bugzilla.mozilla.org/show_bug.cgi?id=1518999>, there was some movement \
> > recently. 
> > I suggest to start from "first-paint", and to try to match chrome as much as \
> > possible in how FCP is implemented, in the cases where the spec doesn't give \
> > enough detail, if such places exist. I think that for the main use-case of \
> > catching regressions for website code, it's ok (and almost unpreventable) if the \
> > implementations have some variances between them, what matters is that the metric \
> > is reliable for the particular browser.  I also suggest to start with \
> > "first-paint" as it's perhaps a bit less "internal" than FCP, and can provide a \
> > performance-regression metric with a lesser degree of risk regarding exposing \
> > internals / privacy.
> 
> First paint that's not first meaningful/contentful paint is not a very good \
> performance metric IMO. Who cares that a paint happened if it doesn't have any \
> image or text content? 
> I also don't think this exposes less. The privacy risk here is exposing timing data \
> that might be usable for fingerprinting. 
> > 
> > 
> > Chrome team themselves have been telling web developers that First Contentful \
> > Paint is deprecated in favor of Largest Contentful Paint. Should we concerned \
> > about this? It seems even harder to define LCP in an engine-independent way. What \
> > was deprecated was "first meaningful paint" (FMP). FCP was not deprecated and has \
> > been in wide use for some time.
> 
> What's the difference between First Meaningful and First Contentful?
> 
> There is no difference in Safari because we don't do any painting of a newly \
> navigated until the first meaningful paint happens.

WebKit's notion of First Meaningful Paint is not the same as Chrome's, from the sound \
of it. It sounds closer to Chrome's First Contentful Paint, which makes no attempt to \
exclude sidebars or navigation bars or the like. (But it does exclude iframe).

> 
> - R. Niwa
> 
> > 
> > Finally, we should do a privacy review to consider whether exposing this info to \
> > webpages creates fingerprinting risk or otherwise exposes user data. Great, what \
> > is needed for such review?
> 
> We will discuss with Apple's privacy experts what they think of the privacy risk. \
> I'm just giving you a rain check for results of this discussion. \
> _______________________________________________ webkit-dev mailing list
> webkit-dev@lists.webkit.org <mailto:webkit-dev@lists.webkit.org>
> https://lists.webkit.org/mailman/listinfo/webkit-dev \
> <https://lists.webkit.org/mailman/listinfo/webkit-dev>


[Attachment #5 (unknown)]

<html><head><meta http-equiv="Content-Type" content="text/html; \
charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; \
line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote \
type="cite" class=""><div class="">On Feb 26, 2020, at 2:25 PM, Ryosuke Niwa &lt;<a \
href="mailto:rniwa@webkit.org" class="">rniwa@webkit.org</a>&gt; wrote:</div><br \
class="Apple-interchange-newline"><div class=""><div dir="ltr" class="gmail_attr" \
style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; \
font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: \
normal; text-align: start; text-indent: 0px; text-transform: none; white-space: \
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: \
none;"><br class="Apple-interchange-newline">On Wed, Feb 26, 2020 at 11:29 AM Maciej \
Stachowiak &lt;<a href="mailto:mjs@apple.com" target="_blank" \
class="">mjs@apple.com</a>&gt; wrote:<br class=""></div><blockquote \
class="gmail_quote" style="caret-color: rgb(0, 0, 0); font-family: Helvetica; \
font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; \
letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; \
white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; \
text-decoration: none; margin: 0px 0px 0px 0.8ex; border-left-width: 1px; \
border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: \
1ex;"><div style="word-wrap: break-word; line-break: after-white-space;" class=""><br \
class=""><div class=""><br class=""><blockquote type="cite" class=""><div class="">On \
Feb 26, 2020, at 10:51 AM, Noam Rosenthal &lt;<a \
href="mailto:noam.j.rosenthal@gmail.com" target="_blank" \
class="">noam.j.rosenthal@gmail.com</a>&gt; wrote:</div><br class=""><div \
class=""><div dir="ltr" class=""><div dir="ltr" class=""><br class=""></div><br \
class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Feb 26, \
2020 at 8:08 PM Maciej Stachowiak &lt;<a href="mailto:mjs@apple.com" target="_blank" \
class="">mjs@apple.com</a>&gt; wrote:<br class=""></div><blockquote \
class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; \
border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: \
1ex;"><div class=""><div class=""><br class=""></div><div class="">Some quick \
comments:&nbsp;</div></div></blockquote><blockquote class="gmail_quote" \
style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; \
border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div class=""><div \
class=""><br class=""></div><div class="">the definition of First Contentful Paint \
here in the spec: &lt;<a href="https://www.w3.org/TR/paint-timing/#sec-terminology" \
target="_blank" class="">https://www.w3.org/TR/paint-timing/#sec-terminology</a>&gt; \
does not match the definition stated at &lt;<a \
href="https://web.dev/first-contentful-paint/" target="_blank" \
class="">https://web.dev/first-contentful-paint/</a>&gt;. The Chrome definition \
on<span class="Apple-converted-space">&nbsp;</span><a href="http://web.dev/" \
target="_blank" class="">web.dev</a><span \
class="Apple-converted-space">&nbsp;</span>specifies that iframe content is not \
included, the spec does not have this limitation. Would an implementation that \
matches the spec match Chrome?</div></div></blockquote><div class="">The draft \
version of the spec specifies that iframe content is not included in \
FCP:&nbsp;&nbsp;<a href="https://w3c.github.io/paint-timing/#sec-reporting-paint-timing" \
target="_blank" class="">https://w3c.github.io/paint-timing/#sec-reporting-paint-timing</a>, \
and has a few more comprehensive details about this. I think it's a good place to \
start.<br class=""><br class=""></div><blockquote class="gmail_quote" style="margin: \
0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; \
border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div class=""><div \
class="">I am also not sure this matches the layout milestones that already exist in \
non-Blink browser engines. Has this spec been implemented in Gecko, for example, to \
verity that it's not exposing a concept that only exists in \
Blink?</div></div></blockquote><div class="">No, this has not been implemented in \
Gecko, I'm tracking the bug on this:&nbsp;<a \
href="https://bugzilla.mozilla.org/show_bug.cgi?id=1518999" target="_blank" \
class="">https://bugzilla.mozilla.org/show_bug.cgi?id=1518999</a>, there was some \
movement recently.<br class=""><br class="">I suggest to start from "first-paint", \
and to try to match chrome as much as possible in how FCP is implemented, in the \
cases where the spec doesn't give enough detail, if such places exist. I think that \
for the main use-case of catching regressions for website code, it's ok (and almost \
unpreventable) if the implementations have some variances between them, what matters \
is that the metric is reliable for the particular browser.&nbsp;<br class="">I also \
suggest to start with "first-paint" as it's perhaps a bit less "internal" than FCP, \
and can provide a performance-regression metric with a lesser degree of risk \
regarding exposing internals / privacy.</div></div></div></div></blockquote><div \
class=""><br class=""></div><div class="">First paint that's not first \
meaningful/contentful paint is not a very good performance metric IMO. Who cares that \
a paint happened if it doesn't have any image or text content?</div><div class=""><br \
class=""></div><div class="">I also don't think this exposes less. The privacy risk \
here is exposing timing data that might be usable for fingerprinting.</div><br \
class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div \
class="gmail_quote"><div class="">&nbsp;</div><blockquote class="gmail_quote" \
style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; \
border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div class=""><div \
class=""><br class=""></div><div class="">Chrome team themselves have been telling \
web developers that First Contentful Paint is deprecated in favor of Largest \
Contentful Paint. Should we concerned about this? It seems even harder to define LCP \
in an engine-independent way.</div></div></blockquote><div class="">What was \
deprecated was "first meaningful paint" (FMP). FCP was not deprecated and has been in \
wide use for some time.<br class=""></div></div></div></div></blockquote><div \
class=""><br class=""></div><div class="">What's the difference between First \
Meaningful and First Contentful?</div></div></div></blockquote><div \
style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; \
font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: \
normal; text-align: start; text-indent: 0px; text-transform: none; white-space: \
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" \
class=""><br class=""></div><div style="caret-color: rgb(0, 0, 0); font-family: \
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; \
font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; \
text-transform: none; white-space: normal; word-spacing: 0px; \
-webkit-text-stroke-width: 0px; text-decoration: none;" class="">There is no \
difference in Safari because we don't do any painting of a newly navigated until the \
first meaningful paint happens.</div></div></blockquote><div><br \
class=""></div><div>WebKit's notion of First Meaningful Paint is not the same as \
Chrome's, from the sound of it. It sounds closer to Chrome's First Contentful Paint, \
which makes no attempt to exclude sidebars or navigation bars or the like. (But it \
does exclude iframe).</div><br class=""><blockquote type="cite" class=""><div \
class=""><div style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: \
12px; font-style: normal; font-variant-caps: normal; font-weight: normal; \
letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; \
white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; \
text-decoration: none;" class=""><br class=""></div><div style="caret-color: rgb(0, \
0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; \
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: \
start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: \
0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">- R. \
Niwa</div><div style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: \
12px; font-style: normal; font-variant-caps: normal; font-weight: normal; \
letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; \
white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; \
text-decoration: none;" class=""><br class=""></div><blockquote class="gmail_quote" \
style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; \
font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: \
normal; text-align: start; text-indent: 0px; text-transform: none; white-space: \
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; \
margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; \
border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div style="word-wrap: \
break-word; line-break: after-white-space;" class=""><div class=""><blockquote \
type="cite" class=""><div dir="ltr" class=""><div class="gmail_quote"><blockquote \
class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; \
border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: \
1ex;"><div class=""><div class=""><br class=""></div><div class="">Finally, we should \
do a privacy review to consider whether exposing this info to webpages creates \
fingerprinting risk or otherwise exposes user data.</div></div></blockquote><div \
class="">Great, what is needed for such review?<br \
class=""></div></div></div></blockquote></div><br class=""><div class="">We will \
discuss with Apple's privacy experts what they think of the privacy risk. I'm just \
giving you a rain check for results of this \
discussion.</div></div>_______________________________________________<br \
class="">webkit-dev mailing list<br class=""><a \
href="mailto:webkit-dev@lists.webkit.org" target="_blank" \
class="">webkit-dev@lists.webkit.org</a><br class=""><a \
href="https://lists.webkit.org/mailman/listinfo/webkit-dev" rel="noreferrer" \
target="_blank" class="">https://lists.webkit.org/mailman/listinfo/webkit-dev</a></blockquote></div></blockquote></div><br \
class=""></body></html>



_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic