1 <!DOCTYPE html> 2 <html> 3 <body> 4 This test tests that the openDatabase() creation callback is called in the right world. 5 <div id="console"></div> 6 <script> 7 var creationCallbacksExecuted = 0; 8 function done() 9 { 10 if ((++creationCallbacksExecuted == 2) && (window.layoutTestController)) 11 layoutTestController.notifyDone(); 12 } 13 14 function creationCallback1(db) 15 { 16 alert("FAIL: Visible in isolated world."); 17 done(); 18 } 19 20 function creationCallback2(db) 21 { 22 alert(document.body.bar); 23 done(); 24 } 25 26 document.body.foo = "FAIL: document.body.foo visible in isolated world."; 27 document.body.bar = "PASS: document.body.bar visible in a callback created in this world."; 28 29 if (window.layoutTestController) { 30 layoutTestController.clearAllDatabases(); 31 layoutTestController.dumpAsText(); 32 layoutTestController.waitUntilDone(); 33 layoutTestController.evaluateScriptInIsolatedWorld( 34 0, 35 "function creationCallback1(db)\n" + 36 "{\n" + 37 " alert(document.body.foo);\n" + 38 " window.location='javascript:done()';\n" + 39 "}\n" + 40 "var db1 = openDatabase('OpenDatabaseCreationCallbackIsolatedWorld', '1.0', '', 1, creationCallback1);"); 41 42 var db2 = openDatabase('OpenDatabaseCreationCallbackIsolatedWorld2', '1.0', '', 1, creationCallback2); 43 } 44 </script> 45 </body> 46 </html> 47