| <!doctype html> |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <title>Safe passing of structured data - Blob</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| </head> |
| <body> |
| <script> |
| async_test(function(t) { |
| var blob = new Blob(['<a id="a"><b id="b">hey!</b></a>'], {type:"text/plain"}); |
| window.addEventListener("message", this.step_func(function(msg) { |
| assert_true(msg.data instanceof Blob); |
| assert_equals(msg.data.size, blob.size); |
| assert_equals(msg.data.type, blob.type); |
| var cloned_content, original_content; |
| var reader = new FileReader(); |
| reader.addEventListener("loadend", this.step_func(function() { |
| original_content = reader.result; |
| var reader2 = new FileReader(); |
| reader2.addEventListener("loadend", this.step_func_done(function() { |
| cloned_content = reader2.result; |
| assert_equals(typeof cloned_content, typeof original_content); |
| assert_equals(cloned_content, original_content); |
| })); |
| reader2.readAsText(msg.data); |
| })); |
| reader.readAsText(blob); |
| }), false); |
| window.postMessage(blob, '*'); |
| }, "Cloning a Blob into the same realm"); |
| </script> |
| </body> |
| </html> |