<!DOCTYPE html>
<html>
<head>
<script src="resources/polyfill.js"></script>
</head>

<body>

<p>When the 'enabled' state of a button tag is changed, we have to invalidate distribution.</p>

<div id="host1">
    <button id="button1">Button 1</button>
    <button id="button2">Button 2</button>
</div>

<div id="host2">
    <button id="button3" disabled>Button 3</button>
    <button id="button4" disabled>Button 4</button>
</div>

<script>
if (window.testRunner)
    testRunner.waitUntilDone();

host1.webkitCreateShadowRoot().innerHTML = '<content select=":enabled"></content>';
host2.webkitCreateShadowRoot().innerHTML = '<content select=":enabled"></content>';

setTimeout(function() {
    button2.setAttribute('disabled', true);
    button4.removeAttribute('disabled');
    testRunner.notifyDone();
}, 0);

</script>
</body>
</html>

