Re: What happens if input ArrayBufferView changes during a WebCrypto operation ?

On Mar 6, 2013, at 11:41 AM, Ryan Sleevi wrote:

> On Wed, Mar 6, 2013 at 11:33 AM, Mark Watson <watsonm@netflix.com> wrote:
>> Our operations are asynchronous. We pass in ArrayBufferView objects. What is the expected behavior if the application changes the ArrayBufferView before the WebCrypto operation completes ?
>> 
>> If the expectation is that the operation completes normally on the input data as it was when the call was made, then the UA either needs to make a copy of the data when the call is first made or do some fancy lazy copy-on-write thing to ensure the web crypto operation retains access to the original data.
> 
> Correct. That is what I was trying to express through the description
> of pending data, but I recognize this needs work, and have been
> working on rewriting this.
> 
>> 
>> Alternatively, we may say that the behavior is undefined if you modify the ArrayBuffer that you pass in.
> 
> If there is anything I have learned from C/C++, it's that undefined
> behaviour is the root of all error.
> 
>> 
>> Are there other async web APIs that accept ArrayBufferView objects that have established a precedent for this ?
>> 
>> …Mark
> 
> We can force it to be ArrayBuffer, to make it explicit there's a copy,
> but the intent of using ABV was to give greater implementation
> flexibility in optimization, while also allowing easier use for
> developers.

Ok. Are you aware of anywhere else in the web platform where this problem exists and what solution they've chosen ?

…Mark

> 

Received on Wednesday, 6 March 2013 20:02:47 UTC