tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

createImageBitmap-transfer.html (1813B)


      1 <!DOCTYPE html>
      2 <meta charset=utf-8>
      3 <title>createImageBitmap transferring test</title>
      4 <script src="/resources/testharness.js"></script>
      5 <script src="/resources/testharnessreport.js"></script>
      6 <script src="/common/media.js"></script>
      7 <script src="common.sub.js"></script>
      8 <script src="/common/get-host-info.sub.js"></script>
      9 <div id=log></div>
     10 <script>
     11 let worker, continuations = {};
     12 setup(function() {
     13    worker = new Worker("transfer-worker.js");
     14    worker.addEventListener("message", function(event) {
     15        let { name, bitmap } = event.data;
     16        if (continuations.hasOwnProperty(name)) {
     17            continuations[name](bitmap);
     18        }
     19    });
     20 });
     21 
     22 for (let { name, factory } of imageSourceTypes) {
     23    promise_test(function(t) {
     24        return factory().then(createImageBitmap).then(function(bitmap) {
     25            assert_equals(bitmap.width, 20);
     26            assert_equals(bitmap.height, 20);
     27 
     28            worker.postMessage({ name: t.name, bitmap: bitmap }, [bitmap]);
     29 
     30            assert_equals(bitmap.width, 0);
     31            assert_equals(bitmap.height, 0);
     32 
     33            return new Promise(function(resolve) {
     34                continuations[t.name] = resolve;
     35            });
     36        }).then(function(bitmap) {
     37            assert_class_string(bitmap, "ImageBitmap");
     38            assert_equals(bitmap.width, 20);
     39            assert_equals(bitmap.height, 20);
     40        });
     41    }, `Transfer ImageBitmap created from ${name}`);
     42 }
     43 
     44 promise_test(async (t) => {
     45  const url = get_host_info().REMOTE_ORIGIN + '/images/pattern.png';
     46  const image = await makeMakeHTMLImage(url)();
     47  const bitmap = await createImageBitmap(image);
     48 
     49  assert_throws_dom('DataCloneError',
     50                    () => worker.postMessage(bitmap, [bitmap]));
     51 }, 'Transferring a non-origin-clean ImageBitmap throws.');
     52 
     53 </script>