I don't consider it a showstopper for the experiment, but whenever we add or change or improve timing functions or functionality we need to consider if we have made timing attacks possible or simpler. Please highlight that risk when you are in contact with privacy and security reviewers.

/Daniel

On 2026-08-05 17:08, Chris Harrelson wrote:
Please provide an end milestone for this trial. (Note: please take into account that releases are switching to 2-week).

On Tue, Aug 4, 2026 at 3:30 PM Chromestatus <[email protected]> wrote:

    *Contact emails*
    [email protected], [email protected]

    *Explainer*
    https://github.com/WICG/js-self-profiling/blob/main/markers.md

    *Specification*
    https://github.com/WICG/js-self-profiling/pull/89

    *Design docs*

    https://github.com/WICG/js-self-profiling/blob/main/markers.md
    https://github.com/WICG/js-self-profiling/pull/89

    *Summary*
    The JavaScript Self-Profiling API lets a web application sample
    its own call stacks to measure performance on real user devices.
    This feature adds an optional marker field to each captured sample
    that identifies the type of browser activity running when the
    sample was taken: script, gc, style, layout, paint, or other. A
    trace normally shows gaps between stacks that cannot be
    interpreted, markers let developers attribute that time to browser
    work happening outside their JavaScript, for example
    distinguishing script execution from style recalculation, layout,
    or a garbage collection pause, making slow traces easier to
    analyze and optimize.

    *Blink component*
    Blink>PerformanceAPIs
    
<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EPerformanceAPIs%22>

    *Web Feature ID*
    4217 <https://webstatus.dev/features/4217>

    *TAG review*
    https://github.com/w3ctag/design-reviews/issues/1251

    *TAG review status*
    Pending

    *Goals for experimentation*
    Validate that JS Self-Profiling markers provide actionable
    performance signal for large real-world web applications when
    collected from real users, and confirm the marker data flows
    correctly end-to-end through production RUM pipelines.
    Specifically, we want to learn: - Whether per-sample markers let
    developers attribute slow field traces to browser activity outside
    their JavaScript (rendering, style/layout, GC) and act on it. -
    Whether the sampled marker data is accurate and stable enough at
    production scale (real devices, real workloads) to drive
    optimization decisions. - Whether the API shape
    (ProfilerSample.marker) is ergonomic for existing self-profiling
    consumers to adopt with minimal code change. Interested partners
    include Excel Online, which will consume the trial to enrich its
    existing JS self-profiling telemetry, and Datadog, which collects
    JS self-profiling data as part of its RUM product.

    *Origin Trial documentation link*
    https://github.com/WICG/js-self-profiling/blob/main/markers.md

    *Risks*


    *Interoperability and Compatibility*
    /No information provided/

    /Gecko/: No signal

    /WebKit/: No signal

    /Web developers/: No signals

    /Other signals/:

    *Ergonomics*
    Low. Markers add a single optional marker field to the existing
    ProfilerSample, no new API surface or call pattern. The main
    ergonomic subtlety is graduated disclosure: style/layout are
    available everywhere, while script, gc, and paint appear only in
    cross-origin-isolated documents. The same profiling code therefore
    yields different marker sets depending on the document's isolation
    state, which could surprise developers who expect the full set.
    This degrades gracefully, a missing/absent marker is simply
    interpreted as idle/unknown, so it does not break existing traces,
    and analysis tooling can treat markers as best-effort annotations

    *Activation*
    Low to moderate. The feature is a small additive extension to the
    already-shipped JS Self-Profiling API, so adoption cost is minimal
    for developers already using it. The main activation barrier is
    that the restricted markers (script/gc/paint) require cross-origin
    isolation (COOP: same-origin + COEP: require-corp), which some
    large applications cannot easily deploy. This is mitigated by
    exposing the safe style/layout markers in non-isolated contexts,
    so developers get useful signal even without COI, and by the
    Origin Trial allowing partners to evaluate the feature on stable
    before committing to isolation.

    *Security*
    Moderate, and mitigated by design. Some browser work is shared
    across documents in a process, so exposing it could leak
    cross-origin timing: gc is not attributable to a single origin,
    and paint could act as a proxy for the render time of cross-origin
    opaque resources that fail a TAO check. To mitigate, script, gc,
    and paint markers are gated behind cross-origin isolation, in a
    COI process the document can already observe process-wide signals
    (Spectre threat model, performance.measureMemory, WeakRef), so
    these markers add no new leverage. style and layout are exposed
    without isolation because their timing is already observable
    through existing DOM/CSSOM APIs (getBoundingClientRect,
    getComputedStyle), consistent with Long Animation Frames. Markers
    attributable to a document are only attached when that document is
    same-origin with the profiler. Security discussion is tracked in
    https://github.com/WICG/js-self-profiling/issues/61 (Chrome
    security reviewed the COI-gated design in 2021, the non-isolated
    style/layout exposure is under active review).

    *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?

    /No information provided/


    *Ongoing technical constraints*
    The restricted markers (script, gc, paint) remain permanently
    gated behind cross-origin isolation; only style and layout are
    exposed in non-isolated documents. Markers are best-effort,
    sampled annotations (≈10 ms interval), attached only when the
    responsible document is same-origin with the profiler — they are
    not a precise or guaranteed signal and must not be relied upon for
    correctness.

    *Debuggability*
    /No information provided/

    *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://wpt.fyi/results/js-self-profiling/tentative/marker-vm-state.https.html

    *DevTrial instructions*
    https://github.com/victorhuangwq/js-profiler-markers-demo

    *Flag name on about://flags*
    --enable-blink-features=ExperimentalJSProfilerMarkers

    *Finch feature name*
    JSSelfProfilingMarkers

    *Requires code in //chrome?*
    False

    *Tracking bug*
    https://issues.chromium.org/issues/40800459

    *Estimated milestones*
    Origin trial desktop first  152



    *Link to entry on the Chrome Platform Status*
    https://chromestatus.com/feature/5201297767792640?gate=5361868559482880

    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 [email protected].
    To view this discussion visit
    
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6a72681c.c91ea2f1.3ad85a.01ad.GAE%40google.com
    
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6a72681c.c91ea2f1.3ad85a.01ad.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 [email protected]. To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw8RKNxCE9Xtt%2B%3DzdyAfmA1OGqnFkv5gXpvTnggGeMTyNA%40mail.gmail.com <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw8RKNxCE9Xtt%2B%3DzdyAfmA1OGqnFkv5gXpvTnggGeMTyNA%40mail.gmail.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 [email protected].
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/3268be9f-d153-4a40-b3da-58f29d836c9c%40gmail.com.

Reply via email to