Re: the consent management use case — that's right; a directive that
disables speculative scan explicitly would help the consent use case more.
However, future optimizations would find it difficult to wiggle out of such
a contract. Hence a hint was chosen. From what Transcend described on the
issue <https://g-issues.chromium.org/issues/330802493#comment8>, they use a
CSP meta tag, which would stop the scanner in some versions of Chromium
(perhaps until this
<https://chromium-review.googlesource.com/c/chromium/src/+/5832754> landed).

Re: background thread, IIUC, speculative parsing runs on the main thread at
the moment. There might have been experiments in the past that tried to
make it run in a background thread, but those did not have the same results
as the current implementation, as far as I gathered.

For the cases that this feature is trying to help, i.e., large html
payloads that consume significant time on main thread while speculative
parsing, as well as pages that are better off with explicit header-preload
directives or inlining resources and avoid the delay altogether, a hint is
the only viable method. The browser cannot pre-determine that piece of
information (whether there's a resource coming), on its own — thus a hint
works best here.



On Fri, Dec 13, 2024 at 12:21 AM Alex Russell <slightly...@chromium.org>
wrote:

> The consent manager case seems particularly brittle, as any future
> improvements to reduce parser blockage by <script> elements will allow the
> regular document parser to process the elements in question. Presumably the
> transcend system works using document.write()?
>
> We've talked in the past about providing something like an inline worklet
> for pre-processing resource fetches (that would, conceptually, run on the
> preload scanner thread). Until we have something like that in the platform,
> I worry that hint-based workarounds are always going to fail.
>
> Best,
>
> Alex
>
> On Thursday, December 12, 2024 at 5:36:08 AM UTC-8 ale...@google.com
> wrote:
>
>> Re: additional interest, Transcend.io had expressed
>> <https://g-issues.chromium.org/issues/330802493#comment8> interest in
>> using the feature for preventing the preload scanner from loading URLs in
>> sensitive contexts, prior to consent (non-performance improvement use
>> case). Search is currently the only report available from the feature's
>> Origin Trial period.
>>
>> Additionally, I have collected benchmarks of pages where the feature
>> would add significant performance to page loading, as shared on HTML spec
>> discussion. One could do the same against a page of interest that matches
>> the target of this feature with the experimental flag it’s currently under.
>>
>> Regarding rearchitecting the scanner itself — my analysis of Gecko’s
>> speculative scanner
>> <https://developer.mozilla.org/en-US/docs/Glossary/Speculative_parsing>
>> implementation against Chromium’s separate but lightweight scanner reached
>> the conclusion that merging them will very likely regress Chromium’s
>> speculative fetch performance. Thus there are currently no planned projects
>> in that direction.
>>
>> There is an advantage to having a lighter scan as it’s done today which
>> can discover fetches earlier than in lockstep with actual tree
>> construction, and I think it’s still the right tradeoff aligned with the
>> majority of the web who benefit from speculative scanning. A hint from
>> pages that don’t benefit from the speculative scanner, which is a very
>> specific use case indeed, is a better tradeoff and incremental improvement,
>> thus this feature.
>>
>> On Wed, Dec 11, 2024 at 11:34 PM Vladimir Levin <vmp...@chromium.org>
>> wrote:
>>
>>> Hey,
>>>
>>> We discussed this at API Owners today:
>>> 1. As Stephen mentioned, it would be nice if there was more support for
>>> this feature. Do you have partners or developers that are aware of this and
>>> are looking forward to using the feature?
>>> 2. In terms of approving this feature, we typically want the spec
>>> changes to exist in a stable forum (HTML, WICG, CSS, etc). Currently this
>>> is a spec PR that has concerns from other implementors, which isn't
>>> sufficient. Please let us know when the spec changes land in one of the
>>> accepted forums.
>>>
>>> Thank you and let me know if you have questions!
>>>
>>> Vlad
>>>
>>> On Wednesday, December 11, 2024 at 9:31:21 AM UTC-5 Stephen Chenney
>>> wrote:
>>>
>>> On Tue, Dec 10, 2024 at 11:08 PM Chromestatus <
>>> ad...@cr-status.appspotmail.com> wrote:
>>>
>>> Contact emails ale...@google.com
>>>
>>> Explainer https://github.com/explainers-by-googlers/expect-no-linked-
>>> resources
>>> https://explainers-by-googlers.github.io/expect-no-linked-resources
>>>
>>> Specification https://github.com/whatwg/html/pull/10718
>>>
>>> Summary
>>>
>>> The expect-no-linked-resources configuration point in Document Policy
>>> allows a document to hint to the user agent to better optimize its loading
>>> sequence, such as not using the default speculative parsing behavior. User
>>> Agents have implemented speculative parsing of HTML to speculatively fetch
>>> resources that are present in the HTML markup, to speed up page loading.
>>> For the vast majority of pages on the Web that have resources declared in
>>> the HTML markup, the optimization is beneficial and the cost paid in
>>> determining such resources is a sound tradeoff. However, the following
>>> scenarios might result in a sub-optimal performance tradeoff vs. the
>>> explicit time spent parsing HTML for determining sub resources to fetch: *
>>> Pages that do not have any resources declared in the HTML. * Large HTML
>>> pages with minimal or no resource loads that could explicitly control
>>> preloading resources via other preload mechanisms available.
>>> `expect-no-linked-resources` Document-Policy hints the User Agent that it
>>> may choose to optimize out the time spent in such sub resource
>>> determination.
>>>
>>>
>>> Blink component Blink
>>> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%22>
>>>
>>> TAG review https://github.com/w3ctag/design-reviews/issues/1014
>>>
>>> TAG review status Pending
>>>
>>> Risks
>>>
>>>
>>> Interoperability and Compatibility
>>>
>>> Gecko has its speculative parsing pass integrated into document parser
>>> and hypothesizes that it might not have any benefit by adopting this
>>> standard. WebKit's stance is that it might want to invest in Gecko's
>>> architecture wrt. speculative parsing vs. receiving a hint from the web
>>> developer to optimize the hint. Thus this feature might not become
>>> interoperable. We believe that it is worth proceeding anyways, as our
>>> experimentation with parsing architectures suggests that there is a real
>>> tradeoff here that cannot be solved without a web developer hint. As a
>>> document-policy hint, the interoperability cost of this not being
>>> implemented everywhere is low: its presence will only cause small
>>> differences in speculative parsing timing, which are already permitted by
>>> the HTML Standard. Similarly, the compatibility risk of this feature is
>>> low. If we were to eventually remove it, it would be very hard for web
>>> developers to notice. More of the discussions at the HTML standard pull
>>> request and the subsequent WHATNOT meeting notes below:
>>> https://github.com/whatwg/html/pull/10718 WHATNOT discussion minutes:
>>> https://github.com/whatwg/html/issues/10709 https://github.com/whatwg/
>>> html/issues/10720 https://github.com/whatwg/html/issues/10734
>>> https://github.com/whatwg/html/issues/10750
>>>
>>>
>>> Did you consider investing in Gecko's architecture? In other words, is
>>> this introducing a non-compatible web feature to address a
>>> chromium-specific software design choice?
>>>
>>>
>>>
>>> *Gecko*: Negative (https://github.com/whatwg/html/pull/10718) Gecko has
>>> its speculative parsing pass integrated into document parser and
>>> hypothesizes that it might not have any benefit by adopting this standard.
>>> Given their comments on the pull requests and at WHATNOT meetings, we
>>> believe it's not necessary to file for a formal standards position.
>>>
>>> *WebKit*: Negative (https://github.com/whatwg/html/pull/10718) Given
>>> their comments on the pull requests and at WHATNOT meetings, we believe
>>> it's not necessary to file for a formal standards position.
>>>
>>> *Web developers*: Positive (https://docs.google.com/document/d/
>>> 1VhztmwDUz40sb2HEBfNJjplva8hXgAP3C6qlyTFbfr0/edit?tab=t.0#
>>> heading=h.9mt7t18673oo)
>>>
>>>
>>> Do you have more than 1 piece of public web developer feedback, ideally
>>> from a non-Google product?
>>>
>>>
>>>
>>> *Other signals*:
>>>
>>> Ergonomics
>>>
>>> None. The feature is opted-in on a per-response basis by a page that
>>> does not benefit from speculative parsing, and is off by default.
>>>
>>>
>>> Activation
>>>
>>> None.
>>>
>>>
>>> Security
>>>
>>> This feature does not change security risks.
>>>
>>>
>>> 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
>>>
>>> The feature usage, i.e., opt-in by the page, will be visible under page
>>> Headers in network panel of the DevTools interface.
>>>
>>>
>>> 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
>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
>>> ? Yes
>>>
>>> https://github.com/web-platform-tests/wpt/pull/49617
>>>
>>>
>>> Flag name on about://flags
>>>
>>> Finch feature name DocumentPolicyExpectNoEmbeddedResources
>>>
>>> Requires code in //chrome? False
>>>
>>> Tracking bug https://issues.chromium.org/issues/365632977
>>>
>>> Estimated milestones Shipping on desktop 133 Shipping on Android 133 
>>> Shipping
>>> on WebView 133
>>>
>>> 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/5202800863346688?gate=5195231151259648
>>>
>>> Links to previous Intent discussions Intent to Prototype:
>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/
>>> 00000000000050b3190621c328c4%40google.com
>>>
>>>
>>> This intent message was generated by Chrome Platform Status
>>> <https://chromestatus.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 visit https://groups.google.com/a/
>>> chromium.org/d/msgid/blink-dev/6759101e.2b0a0220.23f11c.
>>> 0000.GAE%40google.com
>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6759101e.2b0a0220.23f11c.0000.GAE%40google.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>> --
>>> 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 visit
>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/ac7397ee-386c-47b4-a170-1e0034a58966n%40chromium.org
>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/ac7397ee-386c-47b4-a170-1e0034a58966n%40chromium.org?utm_medium=email&utm_source=footer>
>>> .
>>>
>>

-- 
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 visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CA%2BN7OXep%3DC9gdwv9xQO2pgUqn-Zth5EZGP9665aaxiGnEtEE2Q%40mail.gmail.com.

Reply via email to