On Wednesday, January 25, 2012 4:26 PM, Jonas Sicking wrote:
> On Wed, Jan 25, 2012 at 3:40 PM, Israel Hilerio <[email protected]>
> wrote:
> > Should we allow the creation of READ_ONLY or READ_WRITE transactions
> inside the oncomplete event handler of a VERSION_CHANGE transaction?
> > IE allows this behavior today.  However, we noticed that FF's nightly
> doesn't.
> 
> Yeah, it'd make sense to me to allow this.
> 
> > In either case, we should define this behavior in the spec.
> 
> Agreed. I can't even find anything in the spec that says that calling the
> transaction() function should fail if you call it while the VERSION_CHANGE
> transaction is still running.
> 
> I think we should spec that if transaction() is called before either the
> VERSION_CHANGE transaction is committed (i.e. the "complete" event has
> *started* firing), or the "success" event has *started* firing on the
> IDBRequest returned from .open, we should throw a InvalidStateError.
> 
> Does this sound good?
> 
> / Jonas

Just to make sure we understood you correctly!

We looked again at the spec and noticed that the IDBDatabase.transaction method 
says the following:
* This method must throw a DOMException of type InvalidStateError if called 
before the success event for an open call has been dispatched.

This implies that we're not allowed to open a new transaction inside the 
oncomplete event handler of the VERSION_CHANGE transaction.
>From your statement above, it seems you agree with IE's behavior which negates 
>this statement.  That implies we'll need to remove this line from the spec.

Also, we'll have to remove the last part of your proposed statement to 
something like:
If the transaction method is called before the VERSION_CHANGE transaction is 
committed (i.e. the "complete" event has *started* firing), we should throw an 
InvalidStateError exception.  Otherwise, the method returns an IDBTransaction 
object representing the transaction returned by the steps above.

Israel



Reply via email to