v152 · ssm multicast · capability probe
Isolated-context probe
Before explaining what sourceAddress does, prove what this page can see. Every row below is a real read of this browsing context — and the headline result on a normal web page is absence: Direct Sockets interfaces carry [IsolatedContext] in their IDL, so they only exist inside an installed Isolated Web App. Absent here means policy gate, not missing implementation or old browser.
Probe this context
| probe | this page, right now | inside an installed IWA (with the flag) |
|---|
The IDL that explains the table
[
Exposed=(Window, DedicatedWorker),
SecureContext,
IsolatedContext // ← the gate this page fails, by design
]
interface MulticastController {
Promise<undefined> joinGroup(DOMString groupAddress,
optional MulticastGroupOptions options = {});
Promise<undefined> leaveGroup(DOMString groupAddress,
optional MulticastGroupOptions options = {});
readonly attribute FrozenArray<(DOMString or MulticastMembership)> joinedGroups;
};
dictionary MulticastGroupOptions {
DOMString sourceAddress; // ← the entire v152 feature
};
To exercise this for real you need all three layers: (1) an installed Isolated Web App (signed web bundle; isolated-app: origin) — that is what makes UDPSocket exist at all; (2) the direct-sockets / direct-sockets-multicast permissions policies granted in its manifest — without the multicast policy, join/leave and multicast sends reject with NotAllowedError; (3) the SSM flag: SourceSpecificMulticastInDirectSockets has status test on trunk, which means even --enable-experimental-web-platform-features does not turn it on — launch Chrome with --enable-blink-features=SourceSpecificMulticastInDirectSockets. No origin trial exists.