* Document and dispatch the 'onload' event</li>
* </ul>
*
*/
public TestReport runImpl() throws Exception{
ApplicationSecurityEnforcer ase
= new ApplicationSecurityEnforcer(this.getClass(),
"org/apache/batik/apps/svgbrowser/resources/svgbrowser.policy");
if (secure) {
ase.enforceSecurity(true);
}
try {
if (!restricted) {
return testImpl();
} else {
// Emulate calling from restricted code. We create a
// calling context with only the permission to read
// the file.
Policy policy = Policy.getPolicy();
URL classesURL = (new File("classes")).toURL();
CodeSource cs = new CodeSource(classesURL, (Certificate[])null);
PermissionCollection permissionsOrig
= policy.getPermissions(cs);
Permissions permissions = new Permissions();
Enumeration iter = permissionsOrig.elements();
while (iter.hasMoreElements()) {
Permission p = (Permission)iter.nextElement();
if (!(p instanceof RuntimePermission)) {
if (!(p instanceof java.security.AllPermission)) {
permissions.add(p);
}
} else {
if (!"createClassLoader".equals(p.getName())) {
permissions.add(p);
}
}
}
permissions.add(new FilePermission(fileName, "read"));
permissions.add(new RuntimePermission("accessDeclaredMembers"));
ProtectionDomain domain;
AccessControlContext ctx;
domain = new ProtectionDomain(null, permissions);
ctx = new AccessControlContext(new ProtectionDomain[]{domain});
try {
return (TestReport)AccessController.doPrivileged
(new PrivilegedExceptionAction() {
public Object run() throws Exception {
return testImpl();
}
}, ctx);
} catch (PrivilegedActionException pae) {
throw pae.getException();
}
}
} finally {
ase.enforceSecurity(false);
}
}