mirror of
https://github.com/norandom/OpenUltraSAST.git
synced 2026-10-18 20:49:28 +00:00
39 lines
1.0 KiB
TypeScript
39 lines
1.0 KiB
TypeScript
// Provenance: Anas329796/Anastasios (fixed).
|
|||
|
|
// repo: Anas329796/Anastasios
|
||
|
|
// commit: 14ec1ac50f9e4e255d875236d30129c6207401d4
|
||
|
|
// parent: adb7b0d5d6b81c46d56451c709e7eac9d0dc93fb
|
||
|
|
// commit_url: https://github.com/Anas329796/Anastasios/commit/14ec1ac50f9e4e255d875236d30129c6207401d4
|
||
|
|
// cve:
|
||
|
|
// license: MIT
|
||
|
|
// function: isTopLevelNavigationRequest
|
||
|
|
// relpath: extensions/browser/src/browser/pw-session.ts
|
||
|
|
// provenance: agent
|
||
|
|
// mechanism: source_reaches_sink
|
||
|
|
|
||
|
|
function isTopLevelNavigationRequest(page: Page, request: Request): boolean {
|
||
|
|
let sameMainFrame = false;
|
||
|
|
try {
|
||
|
|
sameMainFrame = request.frame() === page.mainFrame();
|
||
|
|
} catch {
|
||
|
|
// Frame resolution can fail during redirect/renderer churn; fail closed.
|
||
|
|
sameMainFrame = true;
|
||
|
|
}
|
||
|
|
if (!sameMainFrame) {
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
|
||
|
|
try {
|
||
|
|
if (request.isNavigationRequest()) {
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
} catch {
|
||
|
|
// Ignore and fall back to resource-type check below.
|
||
|
|
}
|
||
|
|
|
||
|
|
try {
|
||
|
|
return request.resourceType() === "document";
|
||
|
|
} catch {
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
}
|