Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V1: Remove the at-risk persistent-usage-record feature and the related MediaKeySession destroyed algorithm, and remove the at risk notation for setting the media element readyState based on key availabity in two algorithms #353

Closed
jdsmith3000 opened this issue Nov 1, 2016 · 62 comments
Assignees
Milestone

Comments

@jdsmith3000
Copy link
Contributor

These features are marked at-risk in the July 5, 2016 EME CR document. Based on the criteria applied by the working group for features to remain in the spec:

  1. persistent-usage-record and the MediaKeySystem destroyed algorithm, with no currently passing implementations, shall be removed from the spec before it may advance.
  2. The readyState behaviors may yet qualify as they are still being actively implemented and tested, and shall remain in the spec for the time being.
  3. At-risk notations for both (along with the at-risk section in general) shall be removed from the spec.
@jdsmith3000 jdsmith3000 added this to the V1 milestone Nov 1, 2016
@jdsmith3000 jdsmith3000 self-assigned this Nov 1, 2016
@paulbrucecotton
Copy link

The recommendation to remove the persistent-usage-record feature from EME V1 was discussed at the HME WG meeting on Oct 25. See meeting minutes.

@jdsmith3000
Copy link
Contributor Author

I've self-assigned this bug. My plan is to:

  1. Remove the at-risk section and listed features
  2. Remove the MediaKeySystem destroyed algorithm and any references to it
  3. Remove persistent-usage-record from the MediaKeySessionsType enum
  4. Remove persistent-usage-record specific operations in various algorithms and methods (15 locations)

If other changes are needed, please add to this bug with details. I intend to start on a PR for this soon.

@mwatson2
Copy link
Contributor

mwatson2 commented Nov 1, 2016

I believe the conclusion of the discussion with plh was that we should create the Proposed Recommendation version without this feature, meaning that the ED becomes the ED for a future version. Is that your plan ?

@ddorwin
Copy link
Contributor

ddorwin commented Nov 1, 2016

There are also references to record of key usage, the session object's record of key usage, first decryption time, and latest decryption time as well as some specific text and an example in the Clear Key sections. Some instances may not be obvious when implementing in the above plan.

@jdsmith3000
Copy link
Contributor Author

jdsmith3000 commented Nov 1, 2016

I noted most of these, but do see some record of key usage references that aren't directly associated with a persistent-usage-record instance. I can make sure to remove those as well.

@plehegar: Please advise on whether we want to leave this content in the working EME document, and do the at-risk changes in a PR specific copy.

@mwatson2
Copy link
Contributor

mwatson2 commented Nov 1, 2016

On Tue, Nov 1, 2016 at 4:17 PM, jdsmith3000 [email protected]
wrote:

I noted most of these, but do see some record of key usage references that
aren't directly associated with a persistent-usage-record instance. I can
make sure to remove those as well.

@plehegar https://github.com/plehegar: Please advise on whether we want
to leave this content in the working EME document, and do the at-risk
changes in a PR specific copy.

​The idea would be to create a branch in the w3c repo and then make your
Pull Request against that branch rather than gh-pages.​


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
#353 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHPfiz3m2oiMvoULu1By99auz-6lx1jaks5q58iMgaJpZM4KmrPn
.

@paulbrucecotton
Copy link

meaning that the ED becomes the ED for a future version

As Chair, I am okay with that plan as I indicated in my Editors email.

But my absolute min-bar is that I need a draft Proposed Recommendation for EME with this feature.

@ddorwin
Copy link
Contributor

ddorwin commented Nov 1, 2016

I'm not sure making an "ED for a future version" makes sense before we've figured out the process for such a version. I think the simplest and safest thing to do is to make this change in mainline then revert the persistent-usage-record-related changes when and where appropriate.

To make such a revert as easy as possible, I suggest a two commit approach:

  1. Remove persistent-usage-record-related text (@jdsmith3000's steps 2-4)
  2. Remove the at-risk section (@jdsmith3000's step 1)

That will allow (1) to be reverted cleanly without adding the at-risk section, especially the part about readyState.

@mwatson2
Copy link
Contributor

mwatson2 commented Nov 1, 2016

So, then, I think we do disagree about the process. The reason we are removing persistent-usage-record is that we do not have passing tests, but people are working on it and I expect we will have those passing tests in due course. Just not in time for our process here. As soon as we do have passing tests, I would expect to be able to publish this feature (through whatever process we are in at that time).

So, since implementations are ongoing, we should not just discard the text. That's why I believe we should create a new branch for the PR. We can also discuss where the work should continue and when we agree on that we can transfer the ED there. But for that we will need an ED to transfer.

@ddorwin
Copy link
Contributor

ddorwin commented Nov 2, 2016

There is currently no process for maintaining this repository after the WG charter expires. The only changes we know we can make are those outlined in https://lists.w3.org/Archives/Public/public-hme-editors/2016Oct/0005.html. Thus, we shouldn’t leave the repository (and primary URL, https://w3c.github.io/encrypted-media/) in a state that is unclear.

Furthermore, before repurposing the main repository from V1/REC-track, we’d have to decide how to identify it as distinct from V1/REC, and we haven't discussed, let alone reached consensus on (or a charter for), what that would be. With the WG charter coming to an end, we'd also need to update the SotD. The most appropriate and expeditious path is to keep the main repository as V1.

So, since implementations are ongoing, we should not just discard the text. That's why I believe we should create a new branch for the PR.

The removed text is not discarded. It is still in the Git history, and with the proposal above, there should be a single commit that can be reverted to restore the text.

We can also discuss where the work should continue and when we agree on that we can transfer the ED there. But for that we will need an ED to transfer.

I don’t see why we should diverge mainline now or why we need an ED now. As I said, we can always create an ED later from the Git history, and anyone can create a fork of the repository that includes the feature and any future changes. (This model also puts the responsibility for merging on the fork owner rather than requiring the editors and staff to merge every change for V1 between a branch and mainline.)

@mwatson2
Copy link
Contributor

mwatson2 commented Nov 2, 2016

The removed text is not discarded. It is still in the Git history, and with the proposal above, there should be a single commit that can be reverted to restore the text.

I don't think this adequately represents the status of the work. Can you give me any example where a web API that is actively being implemented, with some implementations nearly complete and an earlier version already widely deployed, is only documented in GitHub history ?

I'm open to other suggestions, but I think we do need a way to maintain a draft containing the persistent-usage-record feature so that we can move that forward as soon as possible and publish as soon as implementations are ready.

There is currently no process for maintaining this repository after the WG charter expires.

The GitHub repo does not cease to exist and our ability to make changes there is not revoked. The Charter constrains what we can do on the formal Recommendation track and of course we should not accept new material outside of either a WG Charter of CG Contribution License, but we can still maintain a draft in preparation for moving it to wherever we decide (probably WICG or WAVE CG).

@jdsmith3000 jdsmith3000 changed the title V1; Remove the at-risk persistent-usage-record feature and the related MediaKeySession destroyed algorithm, and remove the at risk notation for setting the media element readyState based on key availabity in two algorithms V1: Remove the at-risk persistent-usage-record feature and the related MediaKeySession destroyed algorithm, and remove the at risk notation for setting the media element readyState based on key availabity in two algorithms Nov 2, 2016
@jdsmith3000
Copy link
Contributor Author

From the email referenced by @paulbrucecotton, @plehegar recommends this approach:

here is what I would recommend we do:

We don't touch the gh-pages branch. Instead, we create a V1 branch for now and use that one to remove whatever we need to.

@mwatson2 clarifies this by asking:

Ok, so in this case the Editor's Draft at the normal ED github link will still contain the feature and I suppose becomes (de facto, but not officially) an ED of V2.

To which @plehegar responds,

correct.

@ddorwin: There seems little harm to this approach, and it is largely endorsed by the working group. I think we should accept it and move forward with the edits.

@ddorwin
Copy link
Contributor

ddorwin commented Nov 2, 2016

The Working Group’s protocols for handling at-risk items and what the main repo should contain appears to have already been established with MSE. That precedence is that the MSE GitHub repo and https://w3c.github.io/media-source/ both reflect V1 and do not contain the at-risk features removed from V1. The commit messages even reference “revert[ing] it… if we wish to refine the spec and implementation in
VNext, in the appropriate branch.”

To avoid spending more cycles making a decision, EME should be consistent with this precedent. This path also ensures that we don’t further delay PR working on and debating new text, such as for the SotD. Meanwhile, there are a variety of options to maintain a version of the spec with the removed text. My recommendation is a fork, whether that be in a WICG repo or (short-term) someplace else.

@mwatson2
Copy link
Contributor

mwatson2 commented Nov 2, 2016

There are two very different reasons that a "feature-at-risk" might be removed at PR: a feature may turn out to have no implementation interest or it may have implementation interest but simply not have met the criteria for inclusion at the time of publication.

In the former case, the material can simply be removed. In the latter case, the draft specification should be maintained for those implementors, somewhere. In the MSE case, the feature-at-risk in the second category had already been moved to WICG.

So, EME is in a different situation from MSE. I don't think the "precedent" applies.

Again, other suggestions are welcome, but treating persistent-usage-record in the first category isn't appropriate.

@jdsmith3000
Copy link
Contributor Author

I believe @ddorwin has proposed that we archive the copy of EME w/persistent-usage-record in a fork off of gh-pages, and that we continue to do our edits in gh-pages, like we've been doing. I think that can meet everyone's objectives.

@jdsmith3000
Copy link
Contributor Author

If we agree on this, I can start on a PR now while someone else prepares the fork. We just need to have the archive done before we merge the PR.

@mwatson2
Copy link
Contributor

mwatson2 commented Nov 2, 2016

Do you mean fork or branch ?

If branch, I'd prefer that we keep at least the HTML gh-pages (with a different filename), so that it still has a github.io address.

@ddorwin
Copy link
Contributor

ddorwin commented Nov 2, 2016

I meant a fork. A fork would have its own gh-pages.

@jdsmith3000, SGTM. Note that we don't need to have the archive complete before the PR since the fork can reference any point in time and may want to include some of the changes as we prepare for PR. I don't expect it to be an issue, but there is no technical reason we'd need to delay the PR draft.

@jdsmith3000
Copy link
Contributor Author

Makes sense to me. Thanks.

@mwatson2
Copy link
Contributor

mwatson2 commented Nov 2, 2016

A fork is fine, yes. Where should it be ?

@ddorwin
Copy link
Contributor

ddorwin commented Nov 2, 2016

@mwatson2, any GitHub account or organization can create a fork. I'm looking into this more and will report back.

@mwatson2
Copy link
Contributor

mwatson2 commented Nov 2, 2016

I assumed it would be either w3c or WICG and was asking which ?

@jdsmith3000
Copy link
Contributor Author

MediaKeySession Destroyed is called outside of persistent-usage-record in this text under MediaKeySession:

If a MediaKeySession object becomes inaccessible to the page and is not closed, the User Agent MUST run the MediaKeySession destroyed algorithm before User Agent state associated with the session is deleted.

It's listed at-risk as associated with persistent-usage-record, but appears to be independent. I'm leaving it in for now.

@ddorwin
Copy link
Contributor

ddorwin commented Nov 3, 2016

The only remaining potentially actionable step in the MediaKeySession Destroyed algorithm is 3.1:

Close the session associated with session.

I guess it doesn't hurt, but it's not that useful either.

This is probably similar to step 5.2 in close():

Use cdm to close the session associated with session.

Neither step normatively defines what "close the session" means, though the latter has a non-normative note. Completely separate from this issue, we might want to add an algorithm for closing the CDM session or copy the note to this algorithm.

In this PR, we should collapse step 3 and its substep into the step from close() above.

@jdsmith3000
Copy link
Contributor Author

It sounds like I should remove MediaKeySession Destroyed completely and revise the paragraph that calls it now:

If a MediaKeySession object becomes inaccessible to the page and is not closed, the User Agent MUST use the cdm to close the session before User Agent state associated with the session is deleted.

@ddorwin
Copy link
Contributor

ddorwin commented Nov 3, 2016

SGTM. There is no cdm variable at that point, so just use "CDM."

@ddorwin
Copy link
Contributor

ddorwin commented Nov 3, 2016

Yes, I could ask that the same thing be done for MSE. I'm trying to understand the general approach for parallel incubations of the same spec, and this would apply to both EME and MSE.

I think that probably means master tracks upstream, at least initially, and individual features are incubated in branches. (Note, branches can also reference other branches.) I believe the material could be accessed via https://rawgit.com/wicg/encrypted-media/incubated-feature/. The content at the non-CDN URL expires after a few minutes and thus should be updated periodically, meaning the content would be no more than a few minutes out of date.

@mwatson2
Copy link
Contributor

mwatson2 commented Nov 3, 2016

Everything in WICG is incubation (by definition), so I see no reason why the master branch of the WICG repo wouldn't just contain the work-in-progress specification, like it does for all other WICG repos.

@ddorwin
Copy link
Contributor

ddorwin commented Nov 3, 2016

An important part of incubation is exploring ideas in a lightweight way. Thus, we should enable them to occur independently and not assume they will all happen in master. An alternative mechanism would be to use independent forks, but GitHub doesn't appear to allow that.

@paulbrucecotton
Copy link

What do we do about all the VNEXT issues if we move the content of the spec to another location?

@mwatson2
Copy link
Contributor

mwatson2 commented Nov 3, 2016

@ddorwin Sure, and people can create branches for exploring new ideas. But our starting point for the master branch should (obviously, I think) be where we left off in this group, there being no indication of lack of developer interest in the persistent-usage-record feature.

@ddorwin
Copy link
Contributor

ddorwin commented Nov 3, 2016

@paulbrucecotton, that's something we should clarify with WICG. We can probably discuss most of them in place. For that are non-trivial feature requests, we actual development could then move to a WICG branch.

@mwatson2
Copy link
Contributor

mwatson2 commented Nov 3, 2016

@mwatson2
Copy link
Contributor

mwatson2 commented Nov 4, 2016

So, are we agree we will create a fork wicg (wicg/encrypted-media) ? Who is going to create it and when ?

jdsmith3000 added a commit to jdsmith3000/encrypted-media that referenced this issue Nov 4, 2016
@jdsmith3000
Copy link
Contributor Author

Is someone actively looking into this?

From: mwatson2 [mailto:[email protected]]
Sent: Friday, November 4, 2016 10:50 AM
To: w3c/encrypted-media [email protected]
Cc: Jerry Smith (WPT) [email protected]; Mention [email protected]
Subject: Re: [w3c/encrypted-media] V1: Remove the at-risk persistent-usage-record feature and the related MediaKeySession destroyed algorithm, and remove the at risk notation for setting the media element readyState based on key availabity in two algorithms (#353)

So, are we agree we will create a fork wicghttps://github.com/wicg/ (wicg/encrypted-media) ? Who is going to create it and when ?


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com//issues/353#issuecomment-258501840, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AH8DH8YRZ0XnpHRN2z0n44ZIOUFaRaKiks5q63BggaJpZM4KmrPn.

@ddorwin
Copy link
Contributor

ddorwin commented Nov 4, 2016

I believe we have to request a repository from the WICG chairs. I think we should request EME and MSE at the same time. My WICG contact is busy through next week, but I can work with him on this the following week. I believe we should address #355 before we create that fork anyway.

@jdsmith3000
Copy link
Contributor Author

Still need to remove the list of at-risk features in the SOTD.

jdsmith3000 added a commit to jdsmith3000/encrypted-media that referenced this issue Nov 4, 2016
@jdsmith3000
Copy link
Contributor Author

This language in the SOTD also seems like it should be removed. When should that happen?

The working group maintains a list of all bug reports that the editors have not yet tried to address; there are also open bugs in the previous bug tracker. This draft highlights some of the pending issues that are still to be discussed in the working group. No decision has been taken on the outcome of these issues including whether they are valid.
Implementors should be aware that this specification is not stable. Implementors who are not taking part in the discussions are likely to find the specification changing out from under them in incompatible ways. Vendors interested in implementing this specification before it eventually reaches the Candidate Recommendation stage should join the mailing list mentioned below and take part in the discussions.

jdsmith3000 added a commit to jdsmith3000/encrypted-media that referenced this issue Nov 4, 2016
@ddorwin
Copy link
Contributor

ddorwin commented Nov 4, 2016

I assume @plehegar will take care of that as he prepares the spec for PR.

@paulbrucecotton
Copy link

@plehegar, @wolenetz, @ddorwin, @mwatson2, @jdsmith3000:

Before forking the MSE and EME repositories the Team and Editors should consider if the MSE V2 and EME V2 specifications should be incubated in the new W3C Media API CG.

The CTA GIVE project submitted MSE V2 and EME V2 requirements and some of these were discussed at the TPAC meeting in Sept. I believe the many of the CTA GIVE project members are now joining the W3C Media API CG (which was created after TPAC) and that is where they would like to incubate new features for MSE and EME.

Therefore I suggest the Team and Editors should consult with the community before deciding where to fork the MSE and EME repositories.

/paulc

@jdsmith3000
Copy link
Contributor Author

I recommend we use WICG for both MSE and EME incubation, and create the spec forks in it.

The W3C Media API CG, as I understand it, is being created to provide informative guidance to future W3C media spec efforts. I know incubation in it has been suggested, but see value in maintaining a clear separation between CGs that develop guidelines and the incubation process that inherently leads to at least preliminary normative spec development. The WICG was specifically created to serve that role, and I don’t see a reason it shouldn’t continue to be used for that by us.

Jerry

From: Paul Cotton [mailto:[email protected]]
Sent: Friday, November 11, 2016 11:10 AM
To: w3c/encrypted-media [email protected]
Cc: Jerry Smith (WPT) [email protected]; Mention [email protected]
Subject: Re: [w3c/encrypted-media] V1: Remove the at-risk persistent-usage-record feature and the related MediaKeySession destroyed algorithm, and remove the at risk notation for setting the media element readyState based on key availabity in two algorithms (#353)

@plehegarhttps://github.com/plehegar, @wolenetzhttps://github.com/wolenetz, @ddorwinhttps://github.com/ddorwin, @mwatson2https://github.com/mwatson2, @jdsmith3000https://github.com/jdsmith3000:

Before forking the MSE and EME repositories the Team and Editors should consider if the MSE V2 and EME V2 specifications should be incubated in the new W3C Media API CGhttps://www.w3.org/community/webmediaapi/.

The CTA GIVE project submitted MSE V2 and EME V2 requirements https://www.w3.org/wiki/File:Mse-eme-v2-use-cases-reqs-wave.pdf and some of these were discussed at the TPAC meeting in Sept. I believe the many of the CTA GIVE project members are now joining the W3C Media API CG (which was created after TPAC) and that is where they would like to incubate new features for MSE and EME.

Therefore I suggest the Team and Editors should consult with the community before deciding where to fork the MSE and EME repositories.

/paulc


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com//issues/353#issuecomment-260031867, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AH8DHwfUfV37XBJq8vjZ8jT_3noXNObCks5q9L2VgaJpZM4KmrPn.

@mwatson2
Copy link
Contributor

@jdsmith3000's recommendation is fine for me.

@mavgit
Copy link

mavgit commented Nov 19, 2016

Paul,

I strongly agree with Jerry that the next versions of EME and MSE should be incubated in the WICG, for three reasons:

  1. In general, I think that next versions of Web Platform WG Recommendations should be in either the WP WG or the WICG.
  2. Specifically in this case, I believe that the important role for the Web Media API CG (WMACG) is to provide requirements, not API design, for the next generation of EME & MSE, just as the Web & TV IG provided requirements for first generation EME & MSE. Requirements are easily transmitted by the WMACG via WICG GitHub issues.
  3. The location of the spec needs to be where the API will be crafted, which should be the most convenient location for web client implementers, which seems to be the WICG.

Note that this is my opinion and not necessarily the opinion of the Web Media API CG (cc’d) nor CTA WAVE (formerly GIVE). I encourage other WMA CG members to speak for themselves.

Thanks,
mav

@plehegar
Copy link
Member

plehegar commented Nov 22, 2016

My only reservation with only doing the next version of MSE and EME in WICG is that it's preventing us from making substantive changes to the v1 if we have the need to. ie, changes of type 3 in the W3C Process:
https://dvcs.w3.org/hg/AB/raw-file/default/cover.html#correction-classes
(note: we don't need a WG to make changes of type 1 and 2, but we do need one to make changes of type 3).
One alternative is to have a minimal WG charter that only allows work on type 1,, 2, and 3. I wonder if @cwilso has an opinion on this front.

@mavgit
Copy link

mavgit commented Nov 22, 2016

Philippe,

To be clear, my comment was only favoring WICG over WMACG as a CG location for EME & MSE. As far as a WG vs. WICG, I defer to whatever works best with the W3C process and for the browser vendors.

Thanks,
mav

@jdsmith3000
Copy link
Contributor Author

I've assumed we will keep the WG responsible for V1, including Type 1, 2 & 3 changes. Type 4 changes (new features) only would be considered VNext and handled in incubation, and I believe that should be done in WICG.

@plehegar: How much spec activity do you expect on V1 going forward?

@plehegar
Copy link
Member

I don't expect a lot of work on V1 going forward but if we do want to allow ourselves to make substantive fixes, we'll keep the wg around.

hubot pushed a commit to WebKit/WebKit-http that referenced this issue Dec 19, 2016
https://bugs.webkit.org/show_bug.cgi?id=166012

Reviewed by Xabier Rodriguez-Calvar.

Remove the "persistent-usage-record" value from the MediaKeySessionType.
This was removed from the spec as an at-risk feature.
w3c/encrypted-media#353

No non-imported tests need to be updated. This is still present in the
tests imported from the W3C's web-platform-tests repository, but the
tests haven't yet been updated upstream.

* Modules/encryptedmedia/CDM.cpp:
(WebCore::CDM::isPersistentType):
* Modules/encryptedmedia/MediaKeySessionType.h:
* Modules/encryptedmedia/MediaKeySessionType.idl:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@209983 268f45cc-cd09-0410-ab3c-d52691b4dbfc
mwatson2 added a commit to mwatson2/encrypted-media that referenced this issue Sep 19, 2017
ryanhaddad pushed a commit to WebKit/WebKit that referenced this issue Dec 22, 2020
https://bugs.webkit.org/show_bug.cgi?id=166012

Reviewed by Xabier Rodriguez-Calvar.

Remove the "persistent-usage-record" value from the MediaKeySessionType.
This was removed from the spec as an at-risk feature.
w3c/encrypted-media#353

No non-imported tests need to be updated. This is still present in the
tests imported from the W3C's web-platform-tests repository, but the
tests haven't yet been updated upstream.

* Modules/encryptedmedia/CDM.cpp:
(WebCore::CDM::isPersistentType):
* Modules/encryptedmedia/MediaKeySessionType.h:
* Modules/encryptedmedia/MediaKeySessionType.idl:


Canonical link: https://commits.webkit.org/183612@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@209983 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants