<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><br class=""></div><div class="">Additional spec concerns:</div><div class=""><br class=""></div><div class="">(1) The RW header is unimplementable because image requests are sent before the display width of the image is known.</div><div class=""><br class=""></div><div class="">(2) The MD header is defined in a way that’s probably not useful to rely on; if I’m on 802.11g on a home WiFi network where the next hop is a cable modem, the nominal speed of 802.11g is not helpful for knowing how long it would take to load a large resource.</div><div class=""><br class=""></div><div class="">(3) The MD header references a table of values in the W3C’s Network Information API spec, but that is a Working Group Note with no technical content and a warning that work has been discontinued because “while working on this specification the&nbsp;Device APIs Working Group&nbsp;encountered issues related to estimating network&nbsp;bandwidth and with providing useful information”. In other words, the WG concluded that there isn’t a sensible way to do what the MD header is trying to do.</div><div class=""><br class=""></div><div class="">(4) The RQ header seems silly. It’s supposed to be a number 0-100, with fractional values allowed, that let the client specify it’s desired “resource quality”. &nbsp;Why would you conceivably need this level of fine-grained selection? Will there really be a server with so many different versions of a resource that there’s a difference between quality 55.431 and 55.432? Furthermore, how is a client supposed to set this? Without knowing what the server will do or what value thresholds are important, is there anything useful WebKit could do other than always send 100?</div><div class=""><br class=""></div><div class="">Regards,</div><div class="">Maciej</div><br class=""><div><blockquote type="cite" class=""><div class="">On Apr 23, 2015, at 9:46 AM, Maciej Stachowiak &lt;<a href="mailto:mjs@apple.com" class="">mjs@apple.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 14px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><blockquote type="cite" class=""><div class=""><br class="Apple-interchange-newline">On Apr 23, 2015, at 12:48 AM, Yoav Weiss &lt;<a href="mailto:yoav@yoav.ws" class="">yoav@yoav.ws</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><span class="" style="font-size: 12.8000001907349px;">Hi,</span><div class="" style="font-size: 12.8000001907349px;"><br class=""></div><div class="" style="font-size: 12.8000001907349px;">As I've discussed during my session at the contributor's meetup, I'm interested in implementing&nbsp;<a href="http://igrigorik.github.io/http-client-hints/" target="_blank" class="">Client-Hints</a>&nbsp;in WebKit.</div><div class="" style="font-size: 12.8000001907349px;"><br class=""></div><div class="" style="font-size: 12.8000001907349px;">For those unfamiliar with it,&nbsp;<span class="" style="font-size: 12.8000001907349px;">Client</span><span class="" style="font-size: 12.8000001907349px;">-</span><span class="" style="font-size: 12.8000001907349px;">Hints</span><span class="" style="font-size: 12.8000001907349px;">&nbsp;is a standard destined to improve content negotiation, and enable the browser to advertise various characteristics to the server along with resource requests, so that the server can adapt its responses to these characteristics in a cache friendly way.</span></div><div class="" style="font-size: 12.8000001907349px;"><br class=""></div><div class="" style="font-size: 12.8000001907349px;">It was conceived to enable and facilitate server-side based responsive images solutions. The main use-cases for that are automatic optimization of legacy Web content, where it's not always easy to go back and modify the HTML, as well as external image optimization solutions that prefer content negotiation over HTML modification.</div><div class="" style="font-size: 12.8000001907349px;"><br class=""></div><div class="" style="font-size: 12.8000001907349px;">I'd like to emphasize that this effort is orthogonal to the &lt;picture&gt; effort. (and the use-cases covered by each are orthogonal as well)</div><div class="" style="font-size: 12.8000001907349px;"><br class=""></div><div class="" style="font-size: 12.8000001907349px;">Since I intend to go ahead with implementation soon, I wanted to share my intentions with the wider WebKit community and gather feedback at this early stage.</div></div></div></blockquote><br class=""></div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 14px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">Is the Internet-Draft for this planned to become a standards-track RFC? Is there an IETF Working Group that has adopted it?</div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 14px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""></div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 14px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">On the use cases: is there really anyone who is able to provide new higher resolution versions of their images, but cannot modify the HTML that references them?</div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 14px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""></div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 14px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">On the spec contents: I’m wary of the fact that the header names are very opaque. That’s not in the HTTP tradition, where header names are generally human-readable. I am skeptical that the HTTP WG would be satisfied with these header names as-is.</div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 14px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""></div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 14px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">The &lt;meta&gt; requirement is problematic for two reasons:</div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 14px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">- Most &lt;meta http-equiv&gt; values are not processed as the equivalent http header. HTML5 limits it to a whitelist. It doesn’t seem like a good idea to extend this legacy facility.</div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 14px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">- Browser engines may issue image requests before actually parsing the document (e.g. WebKit’s preloading feature) so it doesn’t seem safe to rely on &lt;meta&gt; being processed before image requests are sent.</div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 14px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""></div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 14px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">Also, if a content author is able to add a &lt;meta&gt; header, that contradicts the use case assumption that&nbsp;</div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 14px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""></div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 14px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">Finally, content negotiation has mostly been a giant failure on the Web, so I’m not sure why we would want to expand it. Is there a reason to believe this spec will be less of a failure than existing content negotiation.</div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 14px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""></div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 14px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">I know spec feedback may be off-topic for an implementation thread, but I’m not sure where else to send it since it’s not clear if this Internet-Draft is associated with a working group.</div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 14px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""></div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 14px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">These issues make me wonder if the spec is really mature enough to implement.</div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 14px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""></div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 14px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">Regards,</div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 14px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">Maciej</div></div></blockquote></div><br class=""></body></html>