mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-26 09:45:06 +02:00
LibWeb/Bindings: Implement [SecureContext] extended attribute
Unfortunately this is a bit of a pain to test as it is surprisingly difficult to create a non secure context in our test harness. This is because both file scheme URLs and localhost are considered secure contexts. To test this, add a very specific internals setter to change the top level origin of the environment for the current realm.
This commit is contained in:
committed by
Shannon Booth
parent
6bdced0014
commit
bc93ba4530
Notes:
github-actions[bot]
2026-02-14 19:35:46 +00:00
Author: https://github.com/shannonbooth Commit: https://github.com/LadybirdBrowser/ladybird/commit/bc93ba45306 Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/7518
35
Tests/LibWeb/Text/input/secure-context.html
Normal file
35
Tests/LibWeb/Text/input/secure-context.html
Normal file
@@ -0,0 +1,35 @@
|
||||
<!DOCTYPE html>
|
||||
<script src="include.js"></script>
|
||||
<script>
|
||||
asyncTest(async (done) => {
|
||||
const httpServer = httpTestServer();
|
||||
const url = await httpServer.createEcho("GET", "/secure-context-idl", {
|
||||
status: 200,
|
||||
headers: {
|
||||
"Access-Control-Allow-Origin": "*",
|
||||
"Content-Type": "text/html",
|
||||
},
|
||||
body: `
|
||||
<script>
|
||||
// HTTP is not a secure context.
|
||||
internals.setEnvironmentsTopLevelURL('http://ladybird.org');
|
||||
|
||||
parent.postMessage({
|
||||
SubtleCrypto: !!crypto?.subtle,
|
||||
Clipboard: typeof navigator.clipboard === "object",
|
||||
CookieChangeEvent: typeof CookieChangeEvent === "function",
|
||||
}, "*");
|
||||
<\/script>`,
|
||||
});
|
||||
|
||||
const frame = document.createElement('iframe');
|
||||
frame.src = url;
|
||||
|
||||
addEventListener("message", (event) => {
|
||||
println(JSON.stringify(event.data, null, 2));
|
||||
done();
|
||||
}, false);
|
||||
|
||||
document.body.appendChild(frame);
|
||||
});
|
||||
</script>
|
||||
Reference in New Issue
Block a user