OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 | 2 |
3 <style> | 3 <style> |
4 /* Must be positioned absolute or static, must have margins to push it out v
iew. */ | 4 /* Must be positioned absolute or static, must have margins to push it out v
iew. */ |
5 .positioned { | 5 .positioned { |
6 position: absolute; | 6 position: absolute; |
7 margin-top: 100%; | 7 margin-top: 100%; |
8 } | 8 } |
9 | 9 |
10 /* Any kind of quote will do, can be either :before or :after */ | 10 /* Any kind of quote will do, can be either :before or :after */ |
11 .positioned:before, | 11 .positioned:before, |
12 .focusable:before { | 12 .focusable:before { |
13 content: open-quote; | 13 content: open-quote; |
14 } | 14 } |
15 </style> | 15 </style> |
16 | 16 |
17 <p>Bug 109616 - ASSERT(!renderer()->needsLayout()) when calling Element::focus()
with generated content</p> | 17 <p>Bug 109616 - ASSERT(!renderer()->needsLayout()) when calling Element::focus()
with generated content</p> |
18 | 18 |
19 <!-- | 19 <!-- |
20 This is testing a case where RenderQuote::updateDepth would mark the RenderQ
uote | 20 This is testing a case where LayoutQuote::updateDepth would mark the LayoutQ
uote |
21 and its ancestors as needing layout in the middle of a layout of its ancesto
r. | 21 and its ancestors as needing layout in the middle of a layout of its ancesto
r. |
22 When its ancestor finishes the layout it will mark itself and the ancestors | 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 | 23 farther up as no longer needing layout. The end result is some subtree |
24 needing layout, but the RenderView and possibly other ancestors of the subtr
ee | 24 needing layout, but the RenderView and possibly other ancestors of the subtr
ee |
25 not needing layout. | 25 not needing layout. |
26 | 26 |
27 ex. | 27 ex. |
28 | 28 |
29 RenderView <- !needsLayout | 29 RenderView <- !needsLayout |
30 \ | 30 \ |
31 RenderBlock (.focusable) <- needsLayout | 31 RenderBlock (.focusable) <- needsLayout |
32 \ | 32 \ |
33 RenderBlock (generated content) <- needsLayout | 33 RenderBlock (generated content) <- needsLayout |
34 \ | 34 \ |
35 RenderQuote <- needsLayout | 35 LayoutQuote <- needsLayout |
36 --> | 36 --> |
37 | 37 |
38 <div class="positioned"></div> | 38 <div class="positioned"></div> |
39 <div class="focusable" tabindex="1"></div> | 39 <div class="focusable" tabindex="1"></div> |
40 | 40 |
41 <script> | 41 <script> |
42 if (window.testRunner) | 42 if (window.testRunner) |
43 testRunner.dumpAsText(); | 43 testRunner.dumpAsText(); |
44 // .focusable still needs layout at this point, but RenderView doesn't | 44 // .focusable still needs layout at this point, but RenderView doesn't |
45 // think any descendants need layout. | 45 // think any descendants need layout. |
46 document.querySelector('.focusable').focus(); | 46 document.querySelector('.focusable').focus(); |
47 </script> | 47 </script> |
OLD | NEW |