- From: François Daoust via GitHub <sysbot+gh@w3.org>
- Date: Wed, 01 Jun 2016 10:32:07 +0000
- To: public-secondscreen@w3.org
Thanks @mfoltzgoogle. See additional comment on the note. The pull request looks good to me otherwise. Not directly related to this pull request, but re-reading the algorithm, I think it does not really achieve what we'd like it to do. My understanding is that we'd like the user agent to create or use dedicated storages in the 1UA case. However: 1. The notion of *dedicated storages* (per browsing context) or even the notion of *storage* per se may not exist in the specs that are referenced. More precisely: 1. There is only one cookie store per user agent in the cookies RFC, not one per browsing context. "Set the cookie store for C to an empty cookie store" does not mean much and implies emptying the cookie store of the controlling side as well in the 1UA case. 2. IndexedDB databases are per origin, not per browsing context. "Set the IndexedDB databases for C to an empty set of databases" does not mean much and could be interpreted as requiring user agents to drop the contents of IndexedDB databases for all future connections, even those coming from regular (non receiving) browsing contexts. There is no notion of a storage that contains all IndexedDB databases in the IndexedDB spec. 3. Unless I missed something, the HTML spec implicitly assumes that there is but one storage place for application caches. It does not explicitly define a term for that storage. 4. Same thing for HTTP authentication state, where our goal is only to reset data for this browsing context, not for all browsing contexts. 2. Some properties are set by relevant algorithms during navigation, e.g. when the Document is created. Setting them to some empty storage beforehand won't do much, unless we also explicitly say that navigation should not affect these properties. Typically: 1. sessionStorage and localStorage are set when the Document is created, which happens during navigation, c.f. two paragraphs below: http://www.w3.org/TR/webstorage/#dom-sessionstorage 2. the application cache is selected during navigation or when the HTML document is parsed, c.f. one line below: http://www.w3.org/TR/html5/browsers.html#cache-host Perhaps we can assume that the notion of storage is straightforward to grasp and tell the user agent to create new empty storages for the receiving browsing context in all cases, as in: ``` <ol> <li>Create a new <a>top-level browsing context</a> <var>C</var>, set to display content on <var>D</var>.</li> <li>Set the <a>session history</a> of <var>C</var> to be the empty list.</li> <li>Set the <a>sandboxed auxiliary navigation browsing context flag</a> on <var>C</var>.</li> <li>Create a new empty <a>cookie store</a> for <var>C</var>.</li> <li>Create a new empty store for <var>C</var> to hold <a>HTTP authentication</a> states.</li> <li>Create a new empty <a>application cache</a> storage for <var>C</var>.</li> <li>If the <a>receiving user agent</a> implements [[!PERMISSIONS]], set the <a>permission state</a> of all <a>Permissions</a> for <var> C</var> to <code>"denied"</code>.</li> <li>If the <a>receiving user agent</a> implements [[!INDEXEDDB]], create a new empty storage for IndexedDB <a>databases</a> for <var>C</var>.</li> <li>If the <a>receiving user agent</a> implements [[!WEBSTORAGE]], create a new empty storage for session storage areas and local storage areas for <var>C</var>.</li> <li><a>Navigate</a> <var>C</var> to <var>presentationUrl</var>.</li> <li>Start <a>monitoring incoming presentation connections</a> for <var>C</var> with <var>presentationId</var>.</li> </ol> ``` I don't find that entirely satisfactory though. Any better idea? -- GitHub Notification of comment by tidoust Please view or discuss this issue at https://github.com/w3c/presentation-api/pull/308#issuecomment-222954662 using your GitHub account
Received on Wednesday, 1 June 2016 10:32:08 UTC