48 lines
1.4 KiB
HTML
48 lines
1.4 KiB
HTML
<!DOCTYPE html>
|
|
|
|
<style>
|
|
/* Must be positioned absolute or static, must have margins to push it out view. */
|
|
.positioned {
|
|
position: absolute;
|
|
margin-top: 100%;
|
|
}
|
|
|
|
/* Any kind of quote will do, can be either :before or :after */
|
|
.positioned:before,
|
|
.focusable:before {
|
|
content: open-quote;
|
|
}
|
|
</style>
|
|
|
|
<p>Bug 109616 - ASSERT(!renderer()->needsLayout()) when calling Element::focus() with generated content</p>
|
|
|
|
<!--
|
|
This is testing a case where RenderQuote::updateDepth would mark the RenderQuote
|
|
and its ancestors as needing layout in the middle of a layout of its ancestor.
|
|
When its ancestor finishes the layout it will mark itself and the ancestors
|
|
farther up as no longer needing layout. The end result is some subtree
|
|
needing layout, but the RenderView and possibly other ancestors of the subtree
|
|
not needing layout.
|
|
|
|
ex.
|
|
|
|
RenderView <- !needsLayout
|
|
\
|
|
RenderBlock (.focusable) <- needsLayout
|
|
\
|
|
RenderBlock (generated content) <- needsLayout
|
|
\
|
|
RenderQuote <- needsLayout
|
|
-->
|
|
|
|
<div class="positioned"></div>
|
|
<div class="focusable" tabindex="1"></div>
|
|
|
|
<script>
|
|
if (window.testRunner)
|
|
testRunner.dumpAsText();
|
|
// .focusable still needs layout at this point, but RenderView doesn't
|
|
// think any descendants need layout.
|
|
document.querySelector('.focusable').focus();
|
|
</script>
|