<html> <head> <script> function createXHR() { var xhr = new XMLHttpRequest(); xhr.expando = "foo"; return xhr; } function tryToUseXHR(xhr, ok) { function expectException(op, reason) { try { var result = op(); ok(false, "should have thrown an exception, got: " + result); } catch (e) { ok(/Permission denied/.test(e.toString()), reason); } } expectException(function() { xhr.open(); }, "should not have access to any functions"); expectException(function() { xhr.foo = "foo"; }, "should not be able to add expandos"); expectException(function() { xhr.withCredentials = true; }, "should not be able to set attributes"); } </script> </head> <body> </body> </html>