<!DOCTYPE html>
<div id="container"></div>
<script src="../../../../resources/testharness.js"></script>
<script src="../../../../resources/testharnessreport.js"></script>
<script>

var test = async_test("This test checks that a compositor proxy can be mutated from the compositor worker thread.");

function processMessage(msg) {
    assert_equals('success', msg.data);
    test.done();
}

var worker = new CompositorWorker('resources/proxy-mutate.js');
worker.onmessage = processMessage;
var proxy = new CompositorProxy(document.getElementById('container'), ['opacity']);
assert_true(proxy.supports('opacity'));
assert_false(proxy.supports('touch'));
assert_false(proxy.supports('transform'));
assert_false(proxy.supports('scrollTop'));
worker.postMessage([proxy, 'opacity']);

</script>
