/** * Make a new sandbox that inherits given `source`'s principals. Source can be * URI string, DOMWindow or `null` for system principals. */ function sandbox(target, options) { options = options || {}; options.metadata = options.metadata ? options.metadata : {}; options.metadata.addonID = options.metadata.addonID ? options.metadata.addonID : self.id; let sandbox = Cu.Sandbox(target || systemPrincipal, options); Cu.setSandboxMetadata(sandbox, options.metadata); let innerWindowID = options.metadata['inner-window-id'] if (innerWindowID) { addContentGlobal({ global: sandbox, 'inner-window-id': innerWindowID }); } return sandbox; }