+import { wrt } from '../browser/wrt';
+
const Module = require('module');
function checkSystemInfoApiPrivilege(func: any, permissions: string[]) {
return false;
}
-export function initialize(permissions: string[]) {
+export function initialize(packageId:string, permissions: string[]) {
+ wrt.security?.dropThreadPrivilege(packageId);
let tizen = global.tizen;
if (!permissions.includes("http://tizen.org/privilege/alarm")) {
tizen.alarm.add =
}
-export function refineResolveFilename(permissions: string[]) {
+export function refineResolveFilename(packageId: string, permissions: string[]) {
const originalResolveFilename = Module._resolveFilename;
Module._resolveFilename = function(...args: any[]) {
let path = '';
} else {
path = originalResolveFilename(...args);
}
- const webapis = global.webapis;
- if (path.startsWith('/') &&
- !webapis.security.checkSmack(webapis.getPackageId(), path, 'r'))
+ if (path.startsWith('/') && !wrt.security?.checkSmack(packageId, path, 'r'))
throw new Error(`Invalid access to ${path}`);
return path;
}
initAccessControlManager() {
console.log(`permissions : ${this.permissions}`);
const AccessControlManager = require('./access_control_manager');
- AccessControlManager.initialize(this.permissions);
+ AccessControlManager.initialize(this.packageId, this.permissions);
}
refineResolveFilename() {
const AccessControlManager = require('./access_control_manager');
- AccessControlManager.refineResolveFilename(this.permissions);
+ AccessControlManager.refineResolveFilename(this.packageId, this.permissions);
}
getServiceId() {