File: file_drawImage_document_domain.html

package info (click to toggle)
thunderbird 1%3A143.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 4,703,968 kB
  • sloc: cpp: 7,770,492; javascript: 5,943,842; ansic: 3,918,754; python: 1,418,263; xml: 653,354; asm: 474,045; java: 183,079; sh: 111,238; makefile: 20,410; perl: 14,359; objc: 13,059; yacc: 4,583; pascal: 3,405; lex: 1,720; ruby: 999; exp: 762; sql: 715; awk: 580; php: 436; lisp: 430; sed: 69; csh: 10
file content (31 lines) | stat: -rw-r--r-- 980 bytes parent folder | download | duplicates (14)
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
<!DOCTYPE html>
  <canvas id="c" width="1" height="1"></canvas>
  <img id="img" src="image_green-1x1.png">
<script>
  window.onmessage = function(ev) {
    if (ev.data != "start") {
      parent.postMessage({ msg: "unknown_message", data: ev.data }, "*");
      return;
    }

    // Set document.domain to itself, so we trigger the
    // "set effective script origin" cases.
    // eslint-disable-next-line no-self-assign
    document.domain = document.domain
    var ctx = document.getElementById("c").getContext("2d");
    ctx.drawImage(document.getElementById("img"), 0, 0);
    try {
      var data = ctx.getImageData(0, 0, 1, 1).data;
      parent.postMessage(
        {
          msg: "color",
          data: "rgba(" + data[0] + ", " + data[1] + ", " + data[2] + ", " + data[3]/255 + ")"
        },
        "*");
    } catch (e) {
      parent.postMessage({ msg: "exception", data: e.toString() }, "*");
    }

    parent.postMessage({ msg: "done" }, "*");
  }
</script>