{"action":"created","comment":{"url":"https://api.github.com/repos/w3c/encrypted-media/pulls/comments/61980747","id":61980747,"diff_hunk":"@@ -605,8 +605,56 @@\n \n           <section>\n             <h5>Get Supported Configuration</h5>\n-            <p>Given a <a def-id=\"keysystems\"></a> implementation <var>implementation</var>, <a>MediaKeySystemConfiguration</a> <var>candidate configuration</var>, and <var>origin</var>, this algorithm returns a supported configuration or <code>null</code> as appropriate.</p>\n-            <p class=\"note\">Unrecognized dictionary members in <var>candidate configuration</var> are ignored per [[WebIDL]] and will never reach this algorithm. Thus, they cannot be considered as part of the configuration.</p>\n+            <p>Given a <a def-id=\"keysystems\"></a> implementation <var>implementation</var>, <a>MediaKeySystemConfiguration</a> <var>candidate configuration</var>, and <var>origin</var>, this algorithm returns a supported configuration or <code>NotSupported</code> as appropriate.</p>\n+            <p class=\"note\">Unrecognized dictionary members in <var>candidate configuration</var> are ignored per [[WebIDL]] and will never reach this algorithm. Thus, they cannot be considered as part of the configuration.\n+            </p>\n+            <div class=\"note\">\n+              <p>\n+              For certain configurations, it may be required to obtain user consent or inform the user. User Agents have some flexibility to determine\n+              whether consent is required for a specific configuration and whether such consent may also apply to other configurations. For example,\n+              consent to one configuration may also imply consent for less powerful, more restricted configurations. Equally, a denial of consent for\n+              one configuration may imply denial of consent for more powerful, less restricted configurations.\n+              </p>\n+              <p>\n+              Supported configurations, including supported audio and video codecs, may depend on availability of optional capabilities such as\n+              <a def-id=\"distinctive-identifier\"></a>s and persistent state. The following algorithm iteratively tries to find a configuration\n+              that is both supported and has user consent, each iteration considering a stronger set of restrictions derived from user consent prompts.\n+              </p>\n+              <p>\n+              User Agents should persist consent responses at least for the duration of the <a def-id=\"requestMediaKeySystemAccess\"></a>\n+              algorithm in order to avoid repeated requests to the user for similar configurations.\n+              </p>\n+            </div>\n+            <ol>\n+              <li>\n+                <p>Let <var>supported configuration</var> be <code>ConsentDenied</code>.</p>\n+              </li>\n+              <li>\n+                <p>Let <var>restrictions</var> be the empty set.</p>\n+              </li>\n+              <li>\n+                <p>Repeat the following step while <var>supported configuration</var> is <code>ConsentDenied</code>:</p>\n+                <ol>\n+                  <li>\n+                    <p>\n+                    Let <var>supported configuration</var> and, if provided, <var>restrictions</var> be the result of executing the\n+                    <a def-id=\"get-supported-configuration-and-consent-algorithm\"></a> algorithm\n+                    with <var>implementation</var>, <var>candidate configuration</var>, <var>restrictions</var> and <var>origin</var>.\n+                    </p>\n+                  </li>\n+                </ol>\n+                <li>\n+                  <p>Return <var>supported configuration</var>.</p>\n+                </li>\n+              </li>\n+            </ol>\n+          </section>\n+          <section>\n+            <h5>Get Supported Configuration and Consent</h5>\n+            <p>Given a <a def-id=\"keysystems\"></a> implementation <var>implementation</var>, <a>MediaKeySystemConfiguration</a> <var>candidate configuration</var>,\n+              <var>restrictions</var> and <var>origin</var>, this algorithm returns a supported configuration, <code>NotSupported</code>, or <code>ConsentDenied</code> as appropriate and, in the <code>ConsentDenied</code> case, <var>restrictions</var>.\n+            </p>\n+            <p class=\"note\"><var>restrictions</var> consists of an implementation-specific set of configurations for which consent has been denied by the user.</p>","path":"encrypted-media-respec.html","position":64,"original_position":64,"commit_id":"73c6ce6df8883336720842e311d4e5016ed4cec1","original_commit_id":"22510744e610871386896c89cbb8f170a4272c2e","user":{"login":"mwatson2","id":7593867,"avatar_url":"https://avatars.githubusercontent.com/u/7593867?v=3","gravatar_id":"","url":"https://api.github.com/users/mwatson2","html_url":"https://github.com/mwatson2","followers_url":"https://api.github.com/users/mwatson2/followers","following_url":"https://api.github.com/users/mwatson2/following{/other_user}","gists_url":"https://api.github.com/users/mwatson2/gists{/gist_id}","starred_url":"https://api.github.com/users/mwatson2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mwatson2/subscriptions","organizations_url":"https://api.github.com/users/mwatson2/orgs","repos_url":"https://api.github.com/users/mwatson2/repos","events_url":"https://api.github.com/users/mwatson2/events{/privacy}","received_events_url":"https://api.github.com/users/mwatson2/received_events","type":"User","site_admin":false},"body":"Right, consent is denied to specific values of _accumulated configuration_: that audio codec with `required` DIs was denied, but the same audio codec with a different DI value might be allowed.\r\n\r\nThe UA is free to interpret the response as covering other configuration values as well. In this case, the UA might also add configurations that combine other audio codecs with the same `required` DI value. This is dependent on the question the UA chooses to ask. If the user is asked \"Allow _keySystem_ access to distinctive identifiers with audio codec AXX\" maybe only that specific combination is denied, but if (more likely) they are just asked \"Allow _keySystem_ access to distinctive identifiers\", maybe a whole slew of possible combinations are recorded as denied.","created_at":"2016-05-04T01:09:36Z","updated_at":"2016-05-04T01:09:36Z","html_url":"https://github.com/w3c/encrypted-media/pull/165#discussion_r61980747","pull_request_url":"https://api.github.com/repos/w3c/encrypted-media/pulls/165","_links":{"self":{"href":"https://api.github.com/repos/w3c/encrypted-media/pulls/comments/61980747"},"html":{"href":"https://github.com/w3c/encrypted-media/pull/165#discussion_r61980747"},"pull_request":{"href":"https://api.github.com/repos/w3c/encrypted-media/pulls/165"}}},"pull_request":{"url":"https://api.github.com/repos/w3c/encrypted-media/pulls/165","id":66504867,"html_url":"https://github.com/w3c/encrypted-media/pull/165","diff_url":"https://github.com/w3c/encrypted-media/pull/165.diff","patch_url":"https://github.com/w3c/encrypted-media/pull/165.patch","issue_url":"https://api.github.com/repos/w3c/encrypted-media/issues/165","number":165,"state":"open","locked":false,"title":"PR for issue #57: Repeat configuration selection on denial of user co…","user":{"login":"mwatson2","id":7593867,"avatar_url":"https://avatars.githubusercontent.com/u/7593867?v=3","gravatar_id":"","url":"https://api.github.com/users/mwatson2","html_url":"https://github.com/mwatson2","followers_url":"https://api.github.com/users/mwatson2/followers","following_url":"https://api.github.com/users/mwatson2/following{/other_user}","gists_url":"https://api.github.com/users/mwatson2/gists{/gist_id}","starred_url":"https://api.github.com/users/mwatson2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mwatson2/subscriptions","organizations_url":"https://api.github.com/users/mwatson2/orgs","repos_url":"https://api.github.com/users/mwatson2/repos","events_url":"https://api.github.com/users/mwatson2/events{/privacy}","received_events_url":"https://api.github.com/users/mwatson2/received_events","type":"User","site_admin":false},"body":"…nsent for distintive identifiers","created_at":"2016-04-14T15:31:06Z","updated_at":"2016-05-04T01:09:36Z","closed_at":null,"merged_at":null,"merge_commit_sha":"126e78c56b799942ed2c0dbb0e89390afca97a5b","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/w3c/encrypted-media/pulls/165/commits","review_comments_url":"https://api.github.com/repos/w3c/encrypted-media/pulls/165/comments","review_comment_url":"https://api.github.com/repos/w3c/encrypted-media/pulls/comments{/number}","comments_url":"https://api.github.com/repos/w3c/encrypted-media/issues/165/comments","statuses_url":"https://api.github.com/repos/w3c/encrypted-media/statuses/73c6ce6df8883336720842e311d4e5016ed4cec1","head":{"label":"mwatson2:issue-57","ref":"issue-57","sha":"73c6ce6df8883336720842e311d4e5016ed4cec1","user":{"login":"mwatson2","id":7593867,"avatar_url":"https://avatars.githubusercontent.com/u/7593867?v=3","gravatar_id":"","url":"https://api.github.com/users/mwatson2","html_url":"https://github.com/mwatson2","followers_url":"https://api.github.com/users/mwatson2/followers","following_url":"https://api.github.com/users/mwatson2/following{/other_user}","gists_url":"https://api.github.com/users/mwatson2/gists{/gist_id}","starred_url":"https://api.github.com/users/mwatson2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mwatson2/subscriptions","organizations_url":"https://api.github.com/users/mwatson2/orgs","repos_url":"https://api.github.com/users/mwatson2/repos","events_url":"https://api.github.com/users/mwatson2/events{/privacy}","received_events_url":"https://api.github.com/users/mwatson2/received_events","type":"User","site_admin":false},"repo":{"id":34878501,"name":"encrypted-media","full_name":"mwatson2/encrypted-media","owner":{"login":"mwatson2","id":7593867,"avatar_url":"https://avatars.githubusercontent.com/u/7593867?v=3","gravatar_id":"","url":"https://api.github.com/users/mwatson2","html_url":"https://github.com/mwatson2","followers_url":"https://api.github.com/users/mwatson2/followers","following_url":"https://api.github.com/users/mwatson2/following{/other_user}","gists_url":"https://api.github.com/users/mwatson2/gists{/gist_id}","starred_url":"https://api.github.com/users/mwatson2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mwatson2/subscriptions","organizations_url":"https://api.github.com/users/mwatson2/orgs","repos_url":"https://api.github.com/users/mwatson2/repos","events_url":"https://api.github.com/users/mwatson2/events{/privacy}","received_events_url":"https://api.github.com/users/mwatson2/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mwatson2/encrypted-media","description":"Encrypted Media Extensions","fork":true,"url":"https://api.github.com/repos/mwatson2/encrypted-media","forks_url":"https://api.github.com/repos/mwatson2/encrypted-media/forks","keys_url":"https://api.github.com/repos/mwatson2/encrypted-media/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mwatson2/encrypted-media/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mwatson2/encrypted-media/teams","hooks_url":"https://api.github.com/repos/mwatson2/encrypted-media/hooks","issue_events_url":"https://api.github.com/repos/mwatson2/encrypted-media/issues/events{/number}","events_url":"https://api.github.com/repos/mwatson2/encrypted-media/events","assignees_url":"https://api.github.com/repos/mwatson2/encrypted-media/assignees{/user}","branches_url":"https://api.github.com/repos/mwatson2/encrypted-media/branches{/branch}","tags_url":"https://api.github.com/repos/mwatson2/encrypted-media/tags","blobs_url":"https://api.github.com/repos/mwatson2/encrypted-media/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mwatson2/encrypted-media/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mwatson2/encrypted-media/git/refs{/sha}","trees_url":"https://api.github.com/repos/mwatson2/encrypted-media/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mwatson2/encrypted-media/statuses/{sha}","languages_url":"https://api.github.com/repos/mwatson2/encrypted-media/languages","stargazers_url":"https://api.github.com/repos/mwatson2/encrypted-media/stargazers","contributors_url":"https://api.github.com/repos/mwatson2/encrypted-media/contributors","subscribers_url":"https://api.github.com/repos/mwatson2/encrypted-media/subscribers","subscription_url":"https://api.github.com/repos/mwatson2/encrypted-media/subscription","commits_url":"https://api.github.com/repos/mwatson2/encrypted-media/commits{/sha}","git_commits_url":"https://api.github.com/repos/mwatson2/encrypted-media/git/commits{/sha}","comments_url":"https://api.github.com/repos/mwatson2/encrypted-media/comments{/number}","issue_comment_url":"https://api.github.com/repos/mwatson2/encrypted-media/issues/comments{/number}","contents_url":"https://api.github.com/repos/mwatson2/encrypted-media/contents/{+path}","compare_url":"https://api.github.com/repos/mwatson2/encrypted-media/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mwatson2/encrypted-media/merges","archive_url":"https://api.github.com/repos/mwatson2/encrypted-media/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mwatson2/encrypted-media/downloads","issues_url":"https://api.github.com/repos/mwatson2/encrypted-media/issues{/number}","pulls_url":"https://api.github.com/repos/mwatson2/encrypted-media/pulls{/number}","milestones_url":"https://api.github.com/repos/mwatson2/encrypted-media/milestones{/number}","notifications_url":"https://api.github.com/repos/mwatson2/encrypted-media/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mwatson2/encrypted-media/labels{/name}","releases_url":"https://api.github.com/repos/mwatson2/encrypted-media/releases{/id}","deployments_url":"https://api.github.com/repos/mwatson2/encrypted-media/deployments","created_at":"2015-04-30T21:49:46Z","updated_at":"2016-02-02T18:20:08Z","pushed_at":"2016-05-03T23:21:42Z","git_url":"git://github.com/mwatson2/encrypted-media.git","ssh_url":"git@github.com:mwatson2/encrypted-media.git","clone_url":"https://github.com/mwatson2/encrypted-media.git","svn_url":"https://github.com/mwatson2/encrypted-media","homepage":null,"size":3908,"stargazers_count":0,"watchers_count":0,"language":"HTML","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"gh-pages"}},"base":{"label":"w3c:gh-pages","ref":"gh-pages","sha":"304a7ef440feaa027a51bb427b78193627c50b67","user":{"login":"w3c","id":379216,"avatar_url":"https://avatars.githubusercontent.com/u/379216?v=3","gravatar_id":"","url":"https://api.github.com/users/w3c","html_url":"https://github.com/w3c","followers_url":"https://api.github.com/users/w3c/followers","following_url":"https://api.github.com/users/w3c/following{/other_user}","gists_url":"https://api.github.com/users/w3c/gists{/gist_id}","starred_url":"https://api.github.com/users/w3c/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/w3c/subscriptions","organizations_url":"https://api.github.com/users/w3c/orgs","repos_url":"https://api.github.com/users/w3c/repos","events_url":"https://api.github.com/users/w3c/events{/privacy}","received_events_url":"https://api.github.com/users/w3c/received_events","type":"Organization","site_admin":false},"repo":{"id":26567881,"name":"encrypted-media","full_name":"w3c/encrypted-media","owner":{"login":"w3c","id":379216,"avatar_url":"https://avatars.githubusercontent.com/u/379216?v=3","gravatar_id":"","url":"https://api.github.com/users/w3c","html_url":"https://github.com/w3c","followers_url":"https://api.github.com/users/w3c/followers","following_url":"https://api.github.com/users/w3c/following{/other_user}","gists_url":"https://api.github.com/users/w3c/gists{/gist_id}","starred_url":"https://api.github.com/users/w3c/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/w3c/subscriptions","organizations_url":"https://api.github.com/users/w3c/orgs","repos_url":"https://api.github.com/users/w3c/repos","events_url":"https://api.github.com/users/w3c/events{/privacy}","received_events_url":"https://api.github.com/users/w3c/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/w3c/encrypted-media","description":"Encrypted Media Extensions -- https://w3c.github.io/encrypted-media/","fork":false,"url":"https://api.github.com/repos/w3c/encrypted-media","forks_url":"https://api.github.com/repos/w3c/encrypted-media/forks","keys_url":"https://api.github.com/repos/w3c/encrypted-media/keys{/key_id}","collaborators_url":"https://api.github.com/repos/w3c/encrypted-media/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/w3c/encrypted-media/teams","hooks_url":"https://api.github.com/repos/w3c/encrypted-media/hooks","issue_events_url":"https://api.github.com/repos/w3c/encrypted-media/issues/events{/number}","events_url":"https://api.github.com/repos/w3c/encrypted-media/events","assignees_url":"https://api.github.com/repos/w3c/encrypted-media/assignees{/user}","branches_url":"https://api.github.com/repos/w3c/encrypted-media/branches{/branch}","tags_url":"https://api.github.com/repos/w3c/encrypted-media/tags","blobs_url":"https://api.github.com/repos/w3c/encrypted-media/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/w3c/encrypted-media/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/w3c/encrypted-media/git/refs{/sha}","trees_url":"https://api.github.com/repos/w3c/encrypted-media/git/trees{/sha}","statuses_url":"https://api.github.com/repos/w3c/encrypted-media/statuses/{sha}","languages_url":"https://api.github.com/repos/w3c/encrypted-media/languages","stargazers_url":"https://api.github.com/repos/w3c/encrypted-media/stargazers","contributors_url":"https://api.github.com/repos/w3c/encrypted-media/contributors","subscribers_url":"https://api.github.com/repos/w3c/encrypted-media/subscribers","subscription_url":"https://api.github.com/repos/w3c/encrypted-media/subscription","commits_url":"https://api.github.com/repos/w3c/encrypted-media/commits{/sha}","git_commits_url":"https://api.github.com/repos/w3c/encrypted-media/git/commits{/sha}","comments_url":"https://api.github.com/repos/w3c/encrypted-media/comments{/number}","issue_comment_url":"https://api.github.com/repos/w3c/encrypted-media/issues/comments{/number}","contents_url":"https://api.github.com/repos/w3c/encrypted-media/contents/{+path}","compare_url":"https://api.github.com/repos/w3c/encrypted-media/compare/{base}...{head}","merges_url":"https://api.github.com/repos/w3c/encrypted-media/merges","archive_url":"https://api.github.com/repos/w3c/encrypted-media/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/w3c/encrypted-media/downloads","issues_url":"https://api.github.com/repos/w3c/encrypted-media/issues{/number}","pulls_url":"https://api.github.com/repos/w3c/encrypted-media/pulls{/number}","milestones_url":"https://api.github.com/repos/w3c/encrypted-media/milestones{/number}","notifications_url":"https://api.github.com/repos/w3c/encrypted-media/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/w3c/encrypted-media/labels{/name}","releases_url":"https://api.github.com/repos/w3c/encrypted-media/releases{/id}","deployments_url":"https://api.github.com/repos/w3c/encrypted-media/deployments","created_at":"2014-11-13T03:02:06Z","updated_at":"2016-05-03T19:44:31Z","pushed_at":"2016-05-03T23:26:33Z","git_url":"git://github.com/w3c/encrypted-media.git","ssh_url":"git@github.com:w3c/encrypted-media.git","clone_url":"https://github.com/w3c/encrypted-media.git","svn_url":"https://github.com/w3c/encrypted-media","homepage":"","size":3704,"stargazers_count":38,"watchers_count":38,"language":"HTML","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":24,"mirror_url":null,"open_issues_count":40,"forks":24,"open_issues":40,"watchers":38,"default_branch":"gh-pages"}},"_links":{"self":{"href":"https://api.github.com/repos/w3c/encrypted-media/pulls/165"},"html":{"href":"https://github.com/w3c/encrypted-media/pull/165"},"issue":{"href":"https://api.github.com/repos/w3c/encrypted-media/issues/165"},"comments":{"href":"https://api.github.com/repos/w3c/encrypted-media/issues/165/comments"},"review_comments":{"href":"https://api.github.com/repos/w3c/encrypted-media/pulls/165/comments"},"review_comment":{"href":"https://api.github.com/repos/w3c/encrypted-media/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/w3c/encrypted-media/pulls/165/commits"},"statuses":{"href":"https://api.github.com/repos/w3c/encrypted-media/statuses/73c6ce6df8883336720842e311d4e5016ed4cec1"}}}}