<!DOCTYPE html>
<html>
<head>
<style>
/* relative positioning ensures underlying RenderLayer */
.container {
    position: relative;
}

.span {
    display: boxed-inline;
    margin: 2px;
    border: solid;
}
</style>
<script src="../resources/shadow-test-driver.js"></script>
<script src="resources/polyfill.js"></script>
<script>

var testFuncs = [];

testFuncs.push(function contentElementInProgressElement(callIfDone) {
    document.getElementById('expect-container').innerHTML = "<div><progress><div></div></progress></div>";

    var div = document.createElement('div');
    div.appendChild(document.createElement('div'));

    document.getElementById('actual-container').appendChild(div);

    var sr = div.webkitCreateShadowRoot();

    var progress = document.createElement('progress');
    var content = document.createElement('content');
    progress.appendChild(content);
    sr.appendChild(progress);
    document.body.offsetWidth; // force style recalc.
    callIfDone();
});

</script>
</head>
<body onload="doTest(testFuncs)">

<div id="actual-container" class="container"></div>
<div id="expect-container" class="container"></div>
<pre id="console"></pre>

</body>
</html>
