Skip to content

Commit aa8962e

Browse files
committed
Better origin guess for requests from sandboxed iframes (thanks NDevTK for reporting).
1 parent 96ec2c2 commit aa8962e

1 file changed

Lines changed: 17 additions & 1 deletion

File tree

src/bg/RequestGuard.js

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,13 +355,29 @@ var RequestGuard = (() => {
355355
return redirected;
356356
}
357357

358-
let normalizeRequest = UA.isMozilla ? () => {} : request => {
358+
let normalizeRequest = request => {
359359
if ("initiator" in request && !("originUrl" in request)) {
360+
if (request.frameId > 0 && request.initiator === "null") {
361+
// Chromium sandboxed frame?
362+
try {
363+
request.initiator = request.originUrl = request.documentUrl = TabCache.get(request.tabId).url;
364+
} catch (e) {}
365+
}
360366
request.originUrl = request.initiator;
361367
if (request.type !== "main_frame" && !("documentUrl" in request)) {
362368
request.documentUrl = request.initiator;
363369
}
364370
}
371+
if ("frameAncestors" in request && (!request.originUrl || request.documentUrl) && request.frameAncestors.length > 0) {
372+
// Gecko sandboxed frame?
373+
for (let f of request.frameAncestors) {
374+
if (f.url !== "null" && !f.url.startsWith("moz-nullprincipal:")) {
375+
request.originUrl = request.documentUrl = f.url;
376+
break;
377+
}
378+
}
379+
380+
}
365381
};
366382

367383
function intersectCapabilities(perms, request) {

0 commit comments

Comments
 (0)