| OLD | NEW |
| (Empty) | |
| 1 <!DOCTYPE html> |
| 2 <title>IndexedDB: Don't crash accessing cached properties in disconnected frame<
/title> |
| 3 <script src="../../resources/testharness.js"></script> |
| 4 <script src="../../resources/testharnessreport.js"></script> |
| 5 <script id="scriptid" type="javascript/frame-script"> |
| 6 // This script is run in an IFRAME. |
| 7 |
| 8 var dbname = 'db-' + String(document.location); |
| 9 indexedDB.deleteDatabase(dbname); |
| 10 var open = indexedDB.open(dbname); |
| 11 open.onupgradeneeded = function() { |
| 12 var db = open.result; |
| 13 var store = db.createObjectStore('store'); |
| 14 }; |
| 15 |
| 16 open.onsuccess = function() { |
| 17 db = open.result; |
| 18 var tx = db.transaction('store'); |
| 19 var req = tx.objectStore('store').get(0); |
| 20 req.onsuccess = function() { |
| 21 frameElement.parentNode.removeChild(frameElement); |
| 22 var result = req.result; |
| 23 }; |
| 24 }; |
| 25 </script> |
| 26 |
| 27 <script> |
| 28 async_test(function(t) { |
| 29 var script = document.querySelector('#scriptid').textContent; |
| 30 var blob = new Blob(['<script>', script, '<\/script>'], {'type': 'text/html'
}); |
| 31 var iframe = document.createElement('iframe'); |
| 32 document.documentElement.appendChild(iframe); |
| 33 iframe.src = URL.createObjectURL(blob); |
| 34 |
| 35 // Wait for IFRAME to remove itself; the test passes as long as it |
| 36 // does not crash. |
| 37 var id = setInterval(t.step_func(function() { |
| 38 if (!document.querySelector('iframe')) { |
| 39 clearInterval(id); |
| 40 t.done(); |
| 41 } |
| 42 }), 10); |
| 43 |
| 44 }, 'Accessing cached attributes after frame disconnect should not crash.'); |
| 45 </script> |
| OLD | NEW |