Ensure deleteDatabase() can run concurrently with transactions in other databases

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;

dbname = "deletedatabase-transaction.html"
indexedDB.deleteDatabase(dbname)
indexedDB.open(dbname)
db.createObjectStore('store')

Start a transaction against the first database:
trans = db.transaction('store', 'readonly')
trans.objectStore('store').get(0)

Delete a different database:
dbname2 = dbname + '2'
indexedDB.deleteDatabase(dbname2)
PASS success event was fired at delete request
PASS successfullyParsed is true

TEST COMPLETE

