Move parseFontFaceDescriptor to CSSPropertyParser.cpp
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / fast / css-generated-content / quote-layout-focus-crash.html
blob8edfd01ab916d6ef9baff5c8374e9a3eb3227548
1 <!DOCTYPE html>
3 <style>
4 /* Must be positioned absolute or static, must have margins to push it out view. */
5 .positioned {
6 position: absolute;
7 margin-top: 100%;
10 /* Any kind of quote will do, can be either :before or :after */
11 .positioned:before,
12 .focusable:before {
13 content: open-quote;
15 </style>
17 <p>Bug 109616 - ASSERT(!layoutObject()->needsLayout()) when calling Element::focus() with generated content</p>
19 <!--
20 This is testing a case where LayoutQuote (anonymous)::updateDepth would mark the LayoutQuote (anonymous)
21 and its ancestors as needing layout in the middle of a layout of its ancestor.
22 When its ancestor finishes the layout it will mark itself and the ancestors
23 farther up as no longer needing layout. The end result is some subtree
24 needing layout, but the LayoutView and possibly other ancestors of the subtree
25 not needing layout.
27 ex.
29 LayoutView <- !needsLayout
31 LayoutBlockFlow (.focusable) <- needsLayout
33 LayoutBlockFlow (generated content) <- needsLayout
35 LayoutQuote (anonymous) <- needsLayout
36 -->
38 <div class="positioned"></div>
39 <div class="focusable" tabindex="1"></div>
41 <script>
42 if (window.testRunner)
43 testRunner.dumpAsText();
44 // .focusable still needs layout at this point, but LayoutView doesn't
45 // think any descendants need layout.
46 document.querySelector('.focusable').focus();
47 </script>