Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 19 additions & 7 deletions index.bs
Original file line number Diff line number Diff line change
Expand Up @@ -946,13 +946,13 @@ interface MediaSession {
<a>In parallel</a>, run the following steps:
<ol>
<li>
Let <var>applyPausePolicy</var> be <code>true</code> if the user agent
Let <var>implementPausePolicy</var> be <code>true</code> if the user agent
implements a policy of <dfn>pausing all input sources</dfn> of type
<var>captureKind</var> in response to UI and <code>false</code>
otherwise.
</li>
<li>
If <var>applyPausePolicy</var> is <code>true</code>, run the following
If <var>implementPausePolicy</var> is <code>true</code>, run the following
substeps:
<ol>
<li>
Expand Down Expand Up @@ -983,18 +983,30 @@ interface MediaSession {
</li>
<li>Resolve <var>p</var> with <code>undefined</code>.</li>
<li>
If <var>applyPausePolicy</var> is <code>true</code>, run the following
If <var>implementPausePolicy</var> is <code>true</code>, run the following
substeps:
<ol>
<li>
Let <var>newMutedState</var> be <code>true</code> if
<var>active</var> is
<code>false</code> and <code>false</code> otherwise.</li>
<li>
For each {{MediaStreamTrack}} whose source is of type
<var>captureKind</var>,
<a>queue a task</a> to [$set a track's muted state$] to
<var>newMutedState</var>.
For each {{MediaStreamTrack}} <var>track</var> whose source
is of type <var>captureKind</var>, <a>queue a task</a> to run
the following substep:
<ol>
<li>
Provided <var>track</var> is not [=MediaStreamTrack/muted=]
by the user agent for reasons that override its [=pausing all
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In this case, we might be again in capture state UI out of sync with the device mute state.
It seems to me that, in the usual case of capturing with only one device, UA should instead deny the request.

It is really only when there are multiple capture devices that is fine to do what you are suggesting (In that case the capture state UI will also be in sync since at least one device will restart capture).

It seems a note for implementors stating the reasons to override and/or deny might be helpful.

input sources | pausing policy=],
Copy link

Copilot AI Aug 21, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The reference '[=pausing all input sources | pausing policy=]' appears to have inconsistent linking syntax. Consider using consistent reference formatting throughout the specification.

Suggested change
input sources | pausing policy=],
by the user agent for reasons that override its [=pausing all input sources=],

Copilot uses AI. Check for mistakes.
[$set a track's muted state | set the muted state$] of
<var>track</var> to <var>newMutedState</var>.
</li>
<p class=note>
Overriding reasons might include a physical mute button on
the device.
</p>
</ol>
</li>
</ol>
</li>
Expand Down