summaryrefslogtreecommitdiffstats
path: root/dom/tests/mochitest/general/file_clonewrapper.html
blob: 811147d7804d67af816b5f887df017fcc86e9adf (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
<!doctype html>
<html>
<head>
<script type="application/javascript">

  function waitForMessage() {
    return new Promise(function(resolve) {
      window.addEventListener('message', function l(evt) {
        window.removeEventListener('message', l);
        resolve(evt.data);
      });
    });
  }

  // Set up the objects for cloning.
  function setup() {
    window.testObject = { myNumber: 42,
                          myString: "hello",
                          myImageData: new ImageData(10, 10) };
  }

  // Called by the chrome parent window.
  function tryToClone(obj, shouldSucceed, message) {
    var success = false;
    try { window.postMessage(obj, '*'); success = true; }
    catch (e) { message = message + ' (threw: ' + e.message + ')'; }
    is(success, shouldSucceed, message);
    return (success && shouldSucceed) ? waitForMessage() : Promise.resolve();
  }

</script>
</head>
<body onload="setup()">
<input id="fileinput" type="file"></input>
</body>
</html>