summaryrefslogtreecommitdiffstats
path: root/dom/file/tests/file_mozfiledataurl_inner.html
blob: a2e539bef7c612634f31960378c0e794662c7658 (plain)
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<!doctype html>
<html>
<script type="application/javascript">
var img;
var audio;
var iframe;

addEventListener("message", function(e) {
  mess = JSON.parse(e.data);
  
  if ("img" in mess)
    img.src = mess.img;
  else if ("audio" in mess)
    audio.src = mess.audio
  else if ("iframe" in mess)
    iframe.src = mess.iframe;
  else if ("xhr" in mess) {
    let xhr = new XMLHttpRequest();
    xhr.onerror = function() {
      sendItUp({ didError: true });
    }
    xhr.onload = function() {
      sendItUp({ text: xhr.responseText });
    }
    try {
      xhr.open("GET", mess.xhr);
      xhr.send();
    }
    catch (ex) {
      sendItUp({ didThrow: true });
    }
  }

}, false);

function sendItUp(obj) {
  window.parent.postMessage(JSON.stringify(obj), "*");
}

function audioNotifyParent(e) {
  sendItUp({ type: e.type });
}

function imgNotifyParent(e) {
  sendItUp({ type: e.type,
             width: e.target.width,
             height: e.target.height });
}

function iframeNotifyParent(e) {
  res = { type: e.type };
  try {
    res.text = e.target.contentDocument.getElementsByTagName("p")[0].textContent;
  } catch (ex) {}
  try {
    res.imgWidth = e.target.contentDocument.getElementById("img").width;
  } catch (ex) {}

  sendItUp(res);
}

onload = function() {
  img = document.getElementById('img');
  img.onerror = img.onload = imgNotifyParent;
  iframe = document.getElementById('iframe');
  iframe.onerror = iframe.onload = iframeNotifyParent;
  audio = document.getElementById('audio');
  audio.onerror = audio.onloadeddata = audioNotifyParent;
}

</script>
<body>
<img id=img>
<audio id=audio>
<iframe id=iframe></iframe>
</html>