feat: Add conditional marker exposure based on cross-origin isolation (supersedes #85) - #89
Open
monica-ch wants to merge 6 commits into
Open
feat: Add conditional marker exposure based on cross-origin isolation (supersedes #85)#89monica-ch wants to merge 6 commits into
monica-ch wants to merge 6 commits into
Conversation
Contributor
Author
|
@acomminos @camillelamy @ArthurSonzogni Can I get your review on this change? |
Open
2 tasks
acomminos
approved these changes
Aug 5, 2026
acomminos
left a comment
Collaborator
There was a problem hiding this comment.
Overall looks good to me, but I'd like @camillelamy / @ArthurSonzogni to provide some feedback on the security design choices here.
…tional marker exposure
PaulKinlan
added a commit
to PaulKinlan/chrome-platform-showcase
that referenced
this pull request
Aug 23, 2026
Concepts: marker-gates-probe, live-trace-explorer, gap-attribution-workbench The markers proposal (WICG/js-self-profiling#89) adds a per-sample marker member (script/gc/style/layout/paint/other), [CrossOriginIsolated]-gated. Route support: v153/js-self-profiling-markers pages and their conformance route now serve Document-Policy: js-profiling — the same targeted special case the repo already ships for v147/js-profiling-in-dedicated-workers — so every demo runs REAL Profiler sessions on this origin (verified: 120+ samples captured headlessly, genuine stackless gap samples plotted, honest zero-marker verdicts on Chromium 141 with the COI gate explained). 0px overflow mobile+desktop, zero console errors. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CNfiPLAVbcuK4uL2qZX4ur
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Supersedes #85 (picking up the conditional-marker-exposure work from @HeathcliffAC — thanks for the initial draft).
This PR retains the original commit from #85 and adds one follow-up commit that:
Bug fixes
Trace with markersexample inmarkers.md— the closing}was glued onto the same line as"timestamp": 150, breaking the code block.github.com/MSEdgeExplainers/ConditionalMarkersExposure, corrected togithub.com/MicrosoftEdge/MSEdgeExplainers/blob/main/ConditionalMarkersExposure/explainer.md.</p>and<section data-dfn-for="ProfilerSample">inindex.htmlthat was collapsed by the previous edit.Normative gap
The original PR replaced the
[CrossOriginIsolated]IDL extended attribute with prose ("availability depends on the context''s cross-origin isolation status"), but never specified how themarkerfield is populated. That left two conforming UAs free to ship different subsets.This adds a normative
filter a markeralgorithm in the Processing Model section, invoked fromtake a samplewhen settingProfilerSample.marker:The
<dfn>marker</dfn>prose is tightened to point at the algorithm rather than restating the exposure rule informally.Opt-in hook
Adds a non-normative note reserving room for UA-defined opt-in mechanisms (e.g. origin trials, document policies) that may widen the set returned by
filter a markerfor a specific settings object, while still forbidding cross-origin marker exposure.Implementation status
Chromium implementation of the algorithm as specified here is in flight https://chromium-review.googlesource.com/c/chromium/src/+/6012522. The filtering behavior in
ProfilerTraceBuilder::GetMarker()—ProfileMarkerToPublicMarker— matches this algorithm exactly for the non-opt-in path.Preview | Diff