A Second Edition of Web Storage? [was: Re: Web Storage Rec errata?]

Thanks for bringing this up, Anssi.

The diff between the REC and the latest Editor’s Draft[1] indicated at least two normative changes, so I’d like to propose a second edition of Web Storage. What do you say?

Here’s my analysis for the current mutex. All your comments are welcome.

* ED L174, L283
- WEBIDL Updated. The getter of the Storage interface and the key of the StorageEvent are Nullable;
- The test suite has been update for these changes[2][3] . These changes are widely implemented by the browsers.
- These changes are normative and should be accepted in the second edition.

* ED L187
- The supported property names on a Storage object should be "in the order that the keys were last added to the storage area”(added).
- I wrote a test case[4] for this but the implementation doesn’t seem to follow this instruction. It’s more likely to be *in the order of keys that was defined by the user-agent*.
- Giving the fact this change is non-normative, we should either ignore it or update the instruction to be *in the order of keys that was defined by the user-agent*.

* ED L262
- Remove 4.3.1 (LocalStorage) Security.
- The former section claimed that user agents must throw a SecurityError whenever any of the members of a Storage object originally returned by the localStorage attribute are accessed by scripts whose effective script origin is not the same as the origin of the Document of the Window object on which the localStorage attribute was accessed. 
- There was discussion[5] that this section wasn’t clear enough, dating back to 2012. I couldn’t find any related topics in the mailing list about why the editor removed this section after the Rec.
- My test case[6] indicates none of Chrome/Firefox/Safari throws the SecurityError in that case.
- This is a normative change and should be accepted in the second edition.

Other changes are more editorial and can be kept in the second edition, imo. Moreover, the archives of the Issue section need to be updated in the new document because the formal archives are no longer available.

A draft second edition of WebStorage[7](diff[8]) is available in GitHub. Please feel free to raise issues or PRs there.

FYI, according to the 2014 process document[9], to modify a Rec, we can either go through FPWD->CR->PR->REC, or if we can prove wide review for the changes, things will be easier, i.e., CR->PR->REC.

Thanks.

—
xiaoqian

[1] https://www.diffchecker.com/npgkwj7d <https://www.diffchecker.com/npgkwj7d>
[2] https://github.com/w3c/web-platform-tests/pull/1784 <https://github.com/w3c/web-platform-tests/pull/1784>
[3] https://github.com/w3c/web-platform-tests/blob/master/webstorage/event_constructor.html <https://github.com/w3c/web-platform-tests/blob/master/webstorage/event_constructor.html>
[4] https://github.com/siusin/web-platform-tests/blob/add_key_order_test/webstorage/keys_added_in_order.html <https://github.com/siusin/web-platform-tests/blob/add_key_order_test/webstorage/keys_added_in_order.html>
[5] https://bugzilla.mozilla.org/show_bug.cgi?id=762409#c17 <https://bugzilla.mozilla.org/show_bug.cgi?id=762409#c17>
[6] https://github.com/w3c/web-platform-tests/compare/master...siusin:localstorage_throws_securityerror <https://github.com/w3c/web-platform-tests/compare/master...siusin:localstorage_throws_securityerror>
[7] https://github.com/w3c/webstorage <https://github.com/w3c/webstorage>
[8] https://www.diffchecker.com/dkbtofsi <https://www.diffchecker.com/dkbtofsi>
[9] http://www.w3.org/2014/Process-20140801/#rec-modify <http://www.w3.org/2014/Process-20140801/#rec-modify>
> On 2015-4-30, at 8:02pm, Kostiainen, Anssi <anssi.kostiainen@intel.com> wrote:
> 
> Hi,
> 
>> On 28 Apr 2015, at 15:46, Arthur Barstow <art.barstow@gmail.com> wrote:
>> 
>> On 4/21/15 5:39 AM, Kostiainen, Anssi wrote:
>>> Hi,
>>> 
>>> Is there a plan to publish an errata to sync the Web Storage Rec [1] with the latest? I counted 8 commits cherry picked into the Editor's Draft since Rec [2].
>>> 
>>> If no errata publication is planned, I'd expect the Rec to clearly indicate its status.
>> 
>> Re the priority of this issue, is this mostly a "truth and beauty" process-type request or is this issue actually creating a problem(s)? (If the later, I would appreciate it, if you would please provide some additional context.)
> 
> It was creating problems. Our QA was confused which spec was the authoritative one, and wrote tests (additional ones, on top of the w-p-t tests) against the Rec spec. These tests failed since Blink is compliant with the latest, not the Rec. More context at: https://crosswalk-project.org/jira/browse/XWALK-3527
> 
>> The main thing blocking the publication of errata is a commitment from someone to actually do the work. I also think Ian's automatic push of commits from the WHATWG version of Web Storage to [2] was stopped a long time ago so there could be additional changes to be considered, and the totality of changes could include normative changes. Did you check for these later changes?
> 
> No, I just observed the ED has evolved since the Rec publication. There may be additional changes in the LS that haven't been picked up to the ED.
> 
>> If you, or anyone else, would like to help with this effort, that would be great. (If it would be helpful, we could create a new webstorage repo under github/w3c/, work on the errata in that repo and redirect the CVS-backed errata document to the new repo.)
> 
> I can ask if our QA would be interested in contributing.
> 
>> Personally, I think putting errata in a separate file - as opposed to putting changes directly into [1] - is mostly "make work" and fails the "principle of least surprise". However, I think the consortium's various processes preclude us from doing what I consider is "the right thing".
> 
> The best way would be to ensure TR reflects what is broadly implemented. If that does not work out due to process reasons, then a visible note at the top pointing to the authoritative spec would be the second best option. That failing, the errata.
> 
> Thanks,
> 
> -Anssi
> 
>>> [1]http://www.w3.org/TR/webstorage/
>>> [2]http://dev.w3.org/cvsweb/html5/webstorage/Overview.html
> 

Received on Friday, 8 May 2015 16:58:31 UTC