diff --git a/docs/pages/advanced/sandbox.md b/docs/pages/advanced/sandbox.md index f0f5029..8324f00 100644 --- a/docs/pages/advanced/sandbox.md +++ b/docs/pages/advanced/sandbox.md @@ -6,8 +6,9 @@ index: 4 `Browser.newPage()` supports a `sandbox` mode, which use [Deno permissions](https://docs.deno.com/runtime/manual/basics/permissions) to -validate network requests (using `--allow-net` permissions) and file requests -(using `--allow-read` permissions) on the opened page. +validate network requests (using `--allow-net` permissions), file requests +(using `--allow-read` permissions) and imported ``; for ( - const { url, code, sandbox } of [ + const { url, code, sandbox, includes } of [ { url: "http://example.com", code: 200, @@ -150,6 +175,48 @@ Deno.test("Sandbox supports granular permissions", { sandbox: { permissions: { read: false } }, }, { url: import.meta.url, code: 0, sandbox: { permissions: { read: [] } } }, + { + url: importPermissionTestUrl, + code: 202, + sandbox: { permissions: "inherit" as const }, + includes: "IMPORT_SUCCESS", + }, + { + url: importPermissionTestUrl, + code: 202, + sandbox: { permissions: { import: true } }, + includes: "IMPORT_SUCCESS", + }, + { + url: importPermissionTestUrl, + code: 202, + sandbox: { permissions: { import: undefined } }, + includes: "IMPORT_SUCCESS", // inherit from parent context + }, + { + url: importPermissionTestUrl, + code: 202, + sandbox: { permissions: { import: ["127.0.0.1"] } }, + includes: "IMPORT_SUCCESS", + }, + { + url: importPermissionTestUrl, + code: 200, + sandbox: { permissions: "none" as const }, + includes: "IMPORT_PENDING", + }, + { + url: importPermissionTestUrl, + code: 200, + sandbox: { permissions: { import: false } }, + includes: "IMPORT_PENDING", + }, + { + url: importPermissionTestUrl, + code: 200, + sandbox: { permissions: { import: [] } }, + includes: "IMPORT_PENDING", + }, ] ) { await t.step( @@ -160,6 +227,9 @@ Deno.test("Sandbox supports granular permissions", { await using browser = await launch(); await using page = await browser.newPage(url, { sandbox }); assertStrictEquals(await page.evaluate(status), code); + if (includes) { + assertStringIncludes(await page.content(), includes); + } }, ); }