Bug 193321

Summary: [EME] Origin information in the instance session
Product: WebKit Reporter: Xabier Rodríguez Calvar <calvaris>
Component: WebCore Misc.Assignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: cturner, eric.carlson, jer.noble
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
propect patch none

Description Xabier Rodríguez Calvar 2019-01-10 07:41:04 PST
Created attachment 358791 [details]
propect patch

We're about to begin to implement license persistence and of course to comply with the spec (and common sense) we need to do things per-origin. I crafted this patch to provide origin information to the CDMInstanceSession so that it could communicate with CDMs should they require to perform persistence by themselves.

We are also wondering if we should provide persistence by ourselves and not rely on the CDMs for that so that we can allow users to clear information, without depending on CDMs. We don't even know if these two questions are unrelated and maybe we still need origin info in the CDMInstanceSession if we handle info by ourselves.

Input is appreciated.
Comment 1 Jer Noble 2019-01-10 09:28:01 PST
FYI, the way we handle this with FairPlay is to set the directory which the CDM is allowed to read from and write to on a per-origin basis, without exposing origin information directly to the CDM. I'm not sure if this meets your per-origin goals, but that interface exists in CDMInstance and is implemented in CDMInstanceFairPlayStreamingAVFObjC::setStorageDirectory() if you want to TAL.