[Bug 20944] EME should do more to encourage/ensure CDM-level interop

https://www.w3.org/Bugs/Public/show_bug.cgi?id=20944

--- Comment #33 from Robert O'Callahan (Mozilla) <roc@ocallahan.org> ---
(In reply to David Dorwin from comment #32)
> I think two separate issues have been raised:
> 1) CDM implementation details (i.e. to allow independent implementation
> minus the secret keys).
> 2) Documentation of APIs (platform or otherwise) that user agents can use to
> make use of the CDM.

These seem unclear and imprecise. Comment #0 is a much more precise statement
of what this bug is about.

> My comments:
> 1) Does what is being discussed address the real concerns/objections? Would
> the existence of either of these, especially the first, result in a
> measurable improvement.

Comment #4 addresses that.

> 2) If requirements for registering are too onerous, it may end up with no
> useful entries.

As proposed in comment #0, unregistered CDMs would not be considered
conforming. This doesn't prevent people from using unregistered CDMs, but they
wouldn't be able to claim compliance with EME.

> 3) The same key system string can be implemented in different ways on
> different platforms. It's unclear how we would document a key system when
> there are multiple APIs, implementations, etc. on various platforms. (We'd
> at least need to figure out how to handle multiple sub entries.)

For part 1 of comment #0, only the observable behavior required for
interoperability needs to be documented. Implementation details that vary by
platform are presumably not relevant to interoperability.

For part 2 of comment #0, for each platform that offers a DRM component which
is utilized by a CDM, documentation for how the CDM's API (via EME) maps to
that platform's DRM component would be required. But if the DRM component has
the same or similar API across platforms, producing the documentation per
platform would be trivial.

> 4) Documentation of internals of any spec implementation seems impractical
> and could lead to:
>  a) Slowed development/deployment/updates/innovation
>  b) Stale and useless documentation (even our OSS Clear Key implementation
> has changed)
>  c) A higher barrier to supporting additional platforms

These sound like generic arguments against specifying or documenting anything
anywhere.

Regarding 4a, the proposed requirement is only to document the observable
operation of CDMs needed for interoperability. It doesn't constrain the
development of CDMs in any way and it doesn't require disclosure of most of the
internals of a practical CDM implementation (e.g. the machinery protecting the
integrity of the CDM). The only additional cost to CDM developers would be the
preparation and release of the necessary documentation. Given the documentation
ought to exist internally already, this should not be much work.

Regarding 4b, the document management required is not hard, and the downside of
accumulating any obsolete documentation is very small.

Regarding 4c, I don't understand this point at all. In my experience, the
better documented a piece of software is, the easier it is to port and
maintain. If this is a reference to your point 3, see my response above.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Thursday, 14 November 2013 09:07:17 UTC