summaryrefslogtreecommitdiffstats
path: root/browser/components/resistfingerprinting/test/browser/file_hwconcurrency_aboutblank_popupmaker.html
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/resistfingerprinting/test/browser/file_hwconcurrency_aboutblank_popupmaker.html')
-rw-r--r--browser/components/resistfingerprinting/test/browser/file_hwconcurrency_aboutblank_popupmaker.html65
1 files changed, 65 insertions, 0 deletions
diff --git a/browser/components/resistfingerprinting/test/browser/file_hwconcurrency_aboutblank_popupmaker.html b/browser/components/resistfingerprinting/test/browser/file_hwconcurrency_aboutblank_popupmaker.html
new file mode 100644
index 0000000000..23fd058c44
--- /dev/null
+++ b/browser/components/resistfingerprinting/test/browser/file_hwconcurrency_aboutblank_popupmaker.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<meta charset="utf8">
+<script src="shared_test_funcs.js"></script>
+<script>
+var popup = undefined;
+function createPopup() {
+ if(popup === undefined) {
+ console.log("TKTK: Creating popup");
+ let s = `
+ window.addEventListener('message', async function listener(event) {
+ if (event.data[0] == 'popup_is_ready') {
+ window.opener.postMessage(["popup_ready"], "*");
+ } else if (event.data[0] == 'popup_request') {
+ let result = {
+ hardwareConcurrency : navigator.hardwareConcurrency
+ };
+ window.opener.postMessage(['popup_response', result], '*');
+ window.close();
+ }
+ });
+ setInterval(function() {
+ if(!window.opener || window.opener.closed) {
+ window.close();
+ }
+ }, 50);`;
+
+ popup = window.open("about:blank", "");
+ popup.eval(s);
+ } else {
+ console.log("TKTK: popup already exists");
+ }
+}
+window.addEventListener("load", createPopup);
+console.log("TKTK: Adding initial load");
+
+async function runTheTest(iframe_domain, cross_origin_domain, mode) {
+ await new Promise(r => setTimeout(r, 2000));
+ console.log("TKTK: runTheTest() popup =", (popup === undefined ? "undefined" : "something"));
+ if (document.readyState !== 'complete') {
+ console.log("TKTK: !== complete");
+ createPopup();
+ } else if(popup === undefined) {
+ console.log("TKTK: popup is undefined");
+ createPopup();
+ }
+ console.log("TKTK: now popup =", (popup === undefined ? "undefined" : "something"));
+ popup.postMessage(["popup_is_ready", cross_origin_domain], "*");
+ await waitForMessage("popup_ready", `*`);
+
+ const promiseForRFPTest = new Promise(resolve => {
+ window.addEventListener("message", event => {
+ resolve(event.data[1]);
+ }, { once: true });
+ });
+
+ popup.postMessage(["popup_request", cross_origin_domain], "*");
+ var result = await promiseForRFPTest;
+
+ popup.close();
+
+ return result;
+}
+
+</script>
+<output id="result"></output>