summaryrefslogtreecommitdiffstats
path: root/browser/components/resistfingerprinting/test/browser/file_hwconcurrency_blob_popupmaker.html
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/resistfingerprinting/test/browser/file_hwconcurrency_blob_popupmaker.html')
-rw-r--r--browser/components/resistfingerprinting/test/browser/file_hwconcurrency_blob_popupmaker.html67
1 files changed, 67 insertions, 0 deletions
diff --git a/browser/components/resistfingerprinting/test/browser/file_hwconcurrency_blob_popupmaker.html b/browser/components/resistfingerprinting/test/browser/file_hwconcurrency_blob_popupmaker.html
new file mode 100644
index 0000000000..ae08111e61
--- /dev/null
+++ b/browser/components/resistfingerprinting/test/browser/file_hwconcurrency_blob_popupmaker.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<meta charset="utf8">
+<script src="shared_test_funcs.js"></script>
+<script type="text/javascript">
+var popup;
+async function runTheTest(iframe_domain, cross_origin_domain, mode) {
+ let s = `<html><script>
+ console.log("TKTK: Loaded popup");
+ function give_result() {
+ console.log("TKTK: popup: give_result()");
+ return {
+ hardwareConcurrency : navigator.hardwareConcurrency
+ };
+ }
+ window.addEventListener('load', async function listener(event) {
+ console.log("TKTK: popup: loaded");
+ window.opener.postMessage(["popup_ready"], "*");
+ });
+ window.addEventListener('message', async function listener(event) {
+ console.log("TKTK: popup: message");
+ if (event.data[0] == 'popup_request') {
+ console.log("TKTK: popup: popup_request");
+ let result = give_result();
+ window.opener.postMessage(['popup_response', result], '*');
+ window.close();
+ }
+ });`;
+ // eslint-disable-next-line
+ s += `</` + `script></html>`;
+
+ let params = new URLSearchParams(document.location.search);
+ let options = "";
+ if (params.get("submode") == "noopener") {
+ options = "noopener";
+ }
+
+ let b = new Blob([s], { type: "text/html" });
+ let url = URL.createObjectURL(b);
+ popup = window.open(url, "", options);
+
+ if (params.get("submode") == "noopener") {
+ return {};
+ }
+
+ console.log("TKTK: popup created");
+ await waitForMessage("popup_ready", `*`);
+ console.log("TKTK: got ready message");
+
+ const promiseForRFPTest = new Promise(resolve => {
+ window.addEventListener("message", event => {
+ console.log("TKTK: got response message");
+ resolve(event.data[1]);
+ }, { once: true });
+ });
+
+ popup.postMessage(["popup_request", cross_origin_domain], "*");
+ var result = await promiseForRFPTest;
+
+ popup.close();
+ console.log("TKTK: closed popup");
+
+ return result;
+}
+</script>
+<body>
+<output id="result"></output>
+</body>