File: postback.html

package info (click to toggle)
firefox 145.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,653,528 kB
  • sloc: cpp: 7,594,999; javascript: 6,459,658; ansic: 3,752,909; python: 1,403,455; xml: 629,809; asm: 438,679; java: 186,421; sh: 67,287; makefile: 19,169; objc: 13,086; perl: 12,982; yacc: 4,583; cs: 3,846; pascal: 3,448; lex: 1,720; ruby: 1,003; exp: 762; php: 436; lisp: 258; awk: 247; sql: 66; sed: 54; csh: 10
file content (45 lines) | stat: -rw-r--r-- 1,487 bytes parent folder | download | duplicates (18)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<!doctype html>
<meta charset=utf-8>
<script src="/common/dispatcher/dispatcher.js"></script>
<script>
const params = new URL(location).searchParams;
const channelName = params.get("channel");
const responseToken = params.get("responseToken");
const iframeToken = params.get("iframeToken");

// If the channel parameter is set, use the BroadcastChannel-based communication
// method. Otherwise, use the dispatcher (useful in cases where this is embedded
// in a third-party iframe that doesn't share a partition with the top-level
// site).
if (channelName != "null") {
  const bc = new BroadcastChannel(channelName);
  // Handle the close message from the test-cleanup, forwarding it to the
  // top level document, as this iframe and the opening document might not
  // be able to close the popup.
  bc.onmessage = event => {
    if (event.data == "close") {
       top.postMessage("close", "*");
     }
  };

  window.addEventListener("message", event => {
    bc.postMessage(event.data);
  });

} else {
  window.addEventListener("message", event => {
    send(responseToken, JSON.stringify(event.data));
  });

  async function waitToClose() {
    response = await receive(iframeToken);
    // Handle the close message from the test-cleanup, forwarding it to the
    // top level document, as this iframe and the opening document might not
    // be able to close the popup.
    if (response == "close") {
      top.postMessage("close", "*");
    }
  }
  waitToClose();
}
</script>