| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2008 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 297 RenderObject* previousSibling = 0; | 297 RenderObject* previousSibling = 0; |
| 298 | 298 |
| 299 // Case 1: The node is a block and is an inline's continuation. In that case
, the inline's | 299 // Case 1: The node is a block and is an inline's continuation. In that case
, the inline's |
| 300 // last child is our previous sibling (or further back in the continuation c
hain) | 300 // last child is our previous sibling (or further back in the continuation c
hain) |
| 301 RenderInline* startOfConts; | 301 RenderInline* startOfConts; |
| 302 if (m_renderer->isRenderBlock() && (startOfConts = startOfContinuations(m_re
nderer))) | 302 if (m_renderer->isRenderBlock() && (startOfConts = startOfContinuations(m_re
nderer))) |
| 303 previousSibling = childBeforeConsideringContinuations(startOfConts, m_re
nderer); | 303 previousSibling = childBeforeConsideringContinuations(startOfConts, m_re
nderer); |
| 304 | 304 |
| 305 // Case 2: Anonymous block parent of the end of a continuation - skip all th
e way to before | 305 // Case 2: Anonymous block parent of the end of a continuation - skip all th
e way to before |
| 306 // the parent of the start, since everything in between will be linked up vi
a the continuation. | 306 // the parent of the start, since everything in between will be linked up vi
a the continuation. |
| 307 else if (m_renderer->isAnonymousBlock() && firstChildIsInlineContinuation(m_
renderer)) | 307 else if (m_renderer->isAnonymousBlock() && firstChildIsInlineContinuation(m_
renderer)) { |
| 308 previousSibling = startOfContinuations(m_renderer->firstChild())->parent
()->previousSibling(); | 308 RenderObject* firstParent = startOfContinuations(m_renderer->firstChild(
))->parent(); |
| 309 while (firstChildIsInlineContinuation(firstParent)) |
| 310 firstParent = startOfContinuations(firstParent->firstChild())->paren
t(); |
| 311 previousSibling = firstParent->previousSibling(); |
| 312 } |
| 309 | 313 |
| 310 // Case 3: The node has an actual previous sibling | 314 // Case 3: The node has an actual previous sibling |
| 311 else if (RenderObject* ps = m_renderer->previousSibling()) | 315 else if (RenderObject* ps = m_renderer->previousSibling()) |
| 312 previousSibling = ps; | 316 previousSibling = ps; |
| 313 | 317 |
| 314 // Case 4: This node has no previous siblings, but its parent is an inline, | 318 // Case 4: This node has no previous siblings, but its parent is an inline, |
| 315 // and is another node's inline continutation. Follow the continuation chain
. | 319 // and is another node's inline continutation. Follow the continuation chain
. |
| 316 else if (m_renderer->parent()->isRenderInline() && (startOfConts = startOfCo
ntinuations(m_renderer->parent()))) | 320 else if (m_renderer->parent()->isRenderInline() && (startOfConts = startOfCo
ntinuations(m_renderer->parent()))) |
| 317 previousSibling = childBeforeConsideringContinuations(startOfConts, m_re
nderer->parent()->firstChild()); | 321 previousSibling = childBeforeConsideringContinuations(startOfConts, m_re
nderer->parent()->firstChild()); |
| 318 | 322 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 335 RenderObject* nextSibling = 0; | 339 RenderObject* nextSibling = 0; |
| 336 | 340 |
| 337 // Case 1: node is a block and has an inline continuation. Next sibling is t
he inline continuation's | 341 // Case 1: node is a block and has an inline continuation. Next sibling is t
he inline continuation's |
| 338 // first child. | 342 // first child. |
| 339 RenderInline* inlineContinuation; | 343 RenderInline* inlineContinuation; |
| 340 if (m_renderer->isRenderBlock() && (inlineContinuation = toRenderBlock(m_ren
derer)->inlineElementContinuation())) | 344 if (m_renderer->isRenderBlock() && (inlineContinuation = toRenderBlock(m_ren
derer)->inlineElementContinuation())) |
| 341 nextSibling = firstChildConsideringContinuation(inlineContinuation); | 345 nextSibling = firstChildConsideringContinuation(inlineContinuation); |
| 342 | 346 |
| 343 // Case 2: Anonymous block parent of the start of a continuation - skip all
the way to | 347 // Case 2: Anonymous block parent of the start of a continuation - skip all
the way to |
| 344 // after the parent of the end, since everything in between will be linked u
p via the continuation. | 348 // after the parent of the end, since everything in between will be linked u
p via the continuation. |
| 345 else if (m_renderer->isAnonymousBlock() && lastChildHasContinuation(m_render
er)) | 349 else if (m_renderer->isAnonymousBlock() && lastChildHasContinuation(m_render
er)) { |
| 346 nextSibling = endOfContinuations(m_renderer->lastChild())->parent()->nex
tSibling(); | 350 RenderObject* lastParent = endOfContinuations(m_renderer->lastChild())->
parent(); |
| 351 while (lastChildHasContinuation(lastParent)) |
| 352 lastParent = endOfContinuations(lastParent->lastChild())->parent(); |
| 353 nextSibling = lastParent->nextSibling(); |
| 354 } |
| 347 | 355 |
| 348 // Case 3: node has an actual next sibling | 356 // Case 3: node has an actual next sibling |
| 349 else if (RenderObject* ns = m_renderer->nextSibling()) | 357 else if (RenderObject* ns = m_renderer->nextSibling()) |
| 350 nextSibling = ns; | 358 nextSibling = ns; |
| 351 | 359 |
| 352 // Case 4: node is an inline with a continuation. Next sibling is the next s
ibling of the end | 360 // Case 4: node is an inline with a continuation. Next sibling is the next s
ibling of the end |
| 353 // of the continuation chain. | 361 // of the continuation chain. |
| 354 else if (isInlineWithContinuation(m_renderer)) | 362 else if (isInlineWithContinuation(m_renderer)) |
| 355 nextSibling = endOfContinuations(m_renderer)->nextSibling(); | 363 nextSibling = endOfContinuations(m_renderer)->nextSibling(); |
| 356 | 364 |
| (...skipping 3398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3755 | 3763 |
| 3756 m_roleForMSAA = msaaRoleForRenderer(m_renderer); | 3764 m_roleForMSAA = msaaRoleForRenderer(m_renderer); |
| 3757 | 3765 |
| 3758 if (m_roleForMSAA == UnknownRole) | 3766 if (m_roleForMSAA == UnknownRole) |
| 3759 m_roleForMSAA = roleValue(); | 3767 m_roleForMSAA = roleValue(); |
| 3760 | 3768 |
| 3761 return m_roleForMSAA; | 3769 return m_roleForMSAA; |
| 3762 } | 3770 } |
| 3763 | 3771 |
| 3764 } // namespace WebCore | 3772 } // namespace WebCore |
| OLD | NEW |