Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ sm64config.txt

# Deterministic local prepare/build output
build/generated/
build/oracles/
build/package-inputs/
build/release/
build/reports/
Expand Down
2 changes: 2 additions & 0 deletions astro.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ const generatedAssetRoots = new Map([
"csscyclone/",
"csschaos/",
"cssblackhole/",
"csscityflow/",
].map((prefix) => [prefix, generatedPublicRoot]),
]);

Expand Down Expand Up @@ -78,6 +79,7 @@ function generatedAssetsPlugin() {
function mediaTypeForPath(path) {
return ({
".avif": "image/avif",
".css": "text/css; charset=utf-8",
".gz": "application/gzip",
".json": "application/json",
".png": "image/png",
Expand Down
5 changes: 5 additions & 0 deletions netlify.toml
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,11 @@
[headers.values]
Cache-Control = "public, max-age=31536000, immutable"

[[headers]]
for = "/csscityflow/*"
[headers.values]
Cache-Control = "no-cache"

[[headers]]
for = "/csschaos/*.bin.br"
[headers.values]
Expand Down
20 changes: 19 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
"dev:flowerbox": "vite --config src/adapters/flowerbox/vite.config.mjs --host 127.0.0.1",
"dev:cloth": "vite --config src/adapters/cloth/vite.config.mjs --host 127.0.0.1",
"dev:flipflop": "vite --config src/adapters/flipflop/vite.config.mjs --host 127.0.0.1",
"dev:cityflow": "vite --config src/adapters/cityflow/vite.config.mjs --host 127.0.0.1",
"dev:gears": "vite --config src/adapters/gears/vite.config.mjs --host 127.0.0.1",
"dev:gravitywell": "vite --config src/adapters/gravitywell/vite.config.mjs --host 127.0.0.1",
"dev:cyclone": "vite --config src/adapters/cyclone/vite.config.mjs --host 127.0.0.1",
Expand All @@ -62,6 +63,9 @@
"build:cloth:deploy": "CSSCLOTH_DEPLOY_BUILD=1 pnpm build:cloth",
"build:flipflop": "vite build --config src/adapters/flipflop/vite.config.mjs",
"build:flipflop:full": "pnpm prepare:flipflop && pnpm build:flipflop",
"build:cityflow": "vite build --config src/adapters/cityflow/vite.config.mjs",
"build:cityflow:full": "pnpm prepare:cityflow && pnpm build:cityflow",
"build:cityflow:deploy": "CSSCITYFLOW_DEPLOY_BUILD=1 pnpm build:cityflow",
"build:flowerbox:full": "pnpm prepare:flowerbox:artifact && pnpm build:flowerbox",
"build:gears": "vite build --config src/adapters/gears/vite.config.mjs",
"build:gears:full": "pnpm prepare:gears:source && pnpm build:gears",
Expand Down Expand Up @@ -92,7 +96,7 @@
"build:solitaire": "vite build --config src/adapters/solitaire/vite.config.mjs",
"build:solitaire:full": "pnpm prepare:solitaire && pnpm build:solitaire",
"build:solitaire:deploy": "CSSSOLITAIRE_DEPLOY_BUILD=1 pnpm build:solitaire",
"build:deploy": "pnpm prepare:3dpipes:artifact && pnpm prepare:cloth:artifact && pnpm prepare:gears:artifact && pnpm prepare:cyclone:artifact && pnpm prepare:galaxy:artifact && pnpm prepare:menger:artifact && pnpm prepare:maze:artifact && pnpm prepare:electropaint:deploy && pnpm prepare:solitaire:artifact && pnpm prepare:luminet && pnpm prepare:chaos && node scripts/copy-deploy-products.mjs && CSSGRAPHICS_DEPLOY_BUILD=1 pnpm build:site",
"build:deploy": "pnpm prepare:3dpipes:artifact && pnpm prepare:cloth:artifact && pnpm prepare:gears:artifact && pnpm prepare:cyclone:artifact && pnpm prepare:galaxy:artifact && pnpm prepare:menger:artifact && pnpm prepare:maze:artifact && pnpm prepare:electropaint:deploy && pnpm prepare:solitaire:artifact && pnpm prepare:luminet && pnpm prepare:chaos && pnpm prepare:cityflow && node scripts/copy-deploy-products.mjs && CSSGRAPHICS_DEPLOY_BUILD=1 pnpm build:site",
"prepack": "pnpm build:lib",
"preview": "astro preview --host 127.0.0.1",
"prepare:super-mario-64": "pnpm build:lib && node scripts/prepare/super-mario-64.mjs",
Expand All @@ -104,6 +108,9 @@
"prepare:cloth:artifact": "node scripts/prepare/csscloth-product-bank.mjs",
"package:cloth:artifact": "node src/adapters/cloth/tools/package-product-bank.mjs --source build/generated/public/csscloth --archive build/release/csscloth-product-bank-v2.tar.gz",
"prepare:flipflop": "node src/adapters/flipflop/tools/prepare-cssflipflop.mjs",
"prepare:cityflow": "node src/adapters/cityflow/tools/prepare-csscityflow.mjs",
"prepare:cityflow:check": "node src/adapters/cityflow/tools/check-prepare-determinism.mjs",
"capture:cityflow:preview": "node src/adapters/cityflow/tools/capture-preview.mjs",
"prepare:gears:artifact": "node scripts/prepare/cssgears-product-bank.mjs",
"prepare:gears:source": "node src/adapters/gears/tools/prepare-cssgears.mjs && node src/adapters/gears/tools/prepare-polycss-snapshot.mjs",
"prepare:gravitywell:artifact": "node scripts/prepare/cssgravitywell-product-bank.mjs",
Expand Down Expand Up @@ -153,6 +160,17 @@
"test:cloth:assets": "node --test src/adapters/cloth/test/csscloth-assets.test.mjs",
"test:flipflop": "node --test src/adapters/flipflop/test/*.test.mjs",
"oracle:flipflop:native": "node src/adapters/flipflop/tools/run-native-oracle.mjs",
"test:cityflow": "node --test src/adapters/cityflow/test/*.test.mjs",
"test:cityflow:assets": "node --test src/adapters/cityflow/test/csscityflow-assets.test.mjs",
"test:cityflow:browser": "node src/adapters/cityflow/tools/smoke-browser.mjs",
"test:cityflow:sparse-publication": "node src/adapters/cityflow/tools/audit-sparse-color-publication.mjs",
"test:cityflow:deploy": "node --test src/adapters/cityflow/test/csscityflow-deploy.deploy.mjs && node src/adapters/cityflow/tools/smoke-browser.mjs --deploy",
"oracle:cityflow:native": "node src/adapters/cityflow/tools/run-native-oracle.mjs",
"oracle:cityflow:visual": "node src/adapters/cityflow/tools/oracle/run-visual-oracle.mjs",
"oracle:cityflow:visual:full": "CSSCITYFLOW_VISUAL_ORACLE_FRAMES=251 node src/adapters/cityflow/tools/oracle/run-visual-oracle.mjs",
"audit:cityflow:motion": "node src/adapters/cityflow/tools/oracle/capture-motion-face-audit.mjs",
"audit:cityflow:smoothness": "node src/adapters/cityflow/tools/analyze-motion-smoothness.mjs",
"perf:cityflow:trace": "node src/adapters/cityflow/tools/trace-performance.mjs",
"test:flowerbox:deploy": "node src/adapters/flowerbox/tools/smoke-browser.mjs --deploy",
"verify:gears:bank": "node src/adapters/gears/tools/verify-product-bank.mjs",
"test:gears": "node --test src/adapters/gears/test/cssgears-route-state.test.mjs src/adapters/gears/test/cssgears-shell.test.mjs src/adapters/gears/test/cssgears-source-profile.test.mjs",
Expand Down
1 change: 1 addition & 0 deletions scripts/copy-deploy-products.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ const products = [
[resolve(generatedPublicRoot, "cssmaze"), "cssmaze"],
[resolve(generatedPublicRoot, "cssselectropaint"), "cssselectropaint"],
[resolve(generatedPublicRoot, "csssolitaire"), "csssolitaire"],
[resolve(generatedPublicRoot, "csscityflow"), "csscityflow"],
];

await rm(deployRoot, { recursive: true, force: true });
Expand Down
12 changes: 10 additions & 2 deletions scripts/frame-sleuth-trace.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,13 @@ export function captureOutputPaths(tracePath) {
});
}

export async function captureFrameSleuthTrace(options, { browserType = chromium } = {}) {
export async function captureFrameSleuthTrace(options, {
browserType = chromium,
activatePage = null,
} = {}) {
if (activatePage !== null && typeof activatePage !== "function") {
throw new TypeError("FrameSleuth page activation must be a function");
}
const paths = captureOutputPaths(options.output);
await assertOutputsAbsent(paths, options.screenshots, options.frameSleuthFilter === true);
await mkdir(dirname(paths.trace), { recursive: true });
Expand Down Expand Up @@ -179,6 +185,7 @@ export async function captureFrameSleuthTrace(options, { browserType = chromium
let navigationError = null;
try {
await page.goto(options.url, { waitUntil: "commit", timeout: 30_000 });
if (activatePage) await activatePage(page);
await page.waitForTimeout(Math.max(0, recordingEndsAt - Date.now()));
} catch (error) {
navigationError = error;
Expand Down Expand Up @@ -237,7 +244,8 @@ export async function captureFrameSleuthTrace(options, { browserType = chromium
},
viewport: options.width == null ? "browser-default" : { width: options.width, height: options.height },
cache: "disabled-fresh-context",
untouchedPage: true,
untouchedPage: activatePage === null,
pageActivation: activatePage === null ? null : "programmatic-after-navigation-commit",
categories,
screenshotsRequested: options.screenshots,
leanCategories: options.lean === true,
Expand Down
Loading