OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004, 2005, 2006, 2009 Apple Inc. All rights reserved. | 2 * Copyright (C) 2004, 2005, 2006, 2009 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 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
386 | 386 |
387 PositionInComposedTree toPositionInComposedTree(const Position& pos) | 387 PositionInComposedTree toPositionInComposedTree(const Position& pos) |
388 { | 388 { |
389 if (pos.isNull()) | 389 if (pos.isNull()) |
390 return PositionInComposedTree(); | 390 return PositionInComposedTree(); |
391 | 391 |
392 if (pos.isOffsetInAnchor()) { | 392 if (pos.isOffsetInAnchor()) { |
393 Node* anchor = pos.anchorNode(); | 393 Node* anchor = pos.anchorNode(); |
394 if (anchor->offsetInCharacters()) | 394 if (anchor->offsetInCharacters()) |
395 return PositionInComposedTree(anchor, pos.computeOffsetInContainerNo
de()); | 395 return PositionInComposedTree(anchor, pos.computeOffsetInContainerNo
de()); |
396 ASSERT(!isActiveInsertionPoint(*anchor)); | 396 ASSERT(!anchor->isSlotOrActiveInsertionPoint()); |
397 int offset = pos.computeOffsetInContainerNode(); | 397 int offset = pos.computeOffsetInContainerNode(); |
398 Node* child = NodeTraversal::childAt(*anchor, offset); | 398 Node* child = NodeTraversal::childAt(*anchor, offset); |
399 if (!child) { | 399 if (!child) { |
400 if (anchor->isShadowRoot()) | 400 if (anchor->isShadowRoot()) |
401 return PositionInComposedTree(anchor->shadowHost(), PositionAnch
orType::AfterChildren); | 401 return PositionInComposedTree(anchor->shadowHost(), PositionAnch
orType::AfterChildren); |
402 return PositionInComposedTree(anchor, PositionAnchorType::AfterChild
ren); | 402 return PositionInComposedTree(anchor, PositionAnchorType::AfterChild
ren); |
403 } | 403 } |
404 child->updateDistribution(); | 404 child->updateDistribution(); |
405 if (isActiveInsertionPoint(*child)) { | 405 if (child->isSlotOrActiveInsertionPoint()) { |
406 if (anchor->isShadowRoot()) | 406 if (anchor->isShadowRoot()) |
407 return PositionInComposedTree(anchor->shadowHost(), offset); | 407 return PositionInComposedTree(anchor->shadowHost(), offset); |
408 return PositionInComposedTree(anchor, offset); | 408 return PositionInComposedTree(anchor, offset); |
409 } | 409 } |
410 if (Node* parent = ComposedTreeTraversal::parent(*child)) | 410 if (Node* parent = ComposedTreeTraversal::parent(*child)) |
411 return PositionInComposedTree(parent, ComposedTreeTraversal::index(*
child)); | 411 return PositionInComposedTree(parent, ComposedTreeTraversal::index(*
child)); |
412 // When |pos| isn't appeared in composed tree, we map |pos| to after | 412 // When |pos| isn't appeared in composed tree, we map |pos| to after |
413 // children of shadow host. | 413 // children of shadow host. |
414 // e.g. "foo",0 in <progress>foo</progress> | 414 // e.g. "foo",0 in <progress>foo</progress> |
415 if (anchor->isShadowRoot()) | 415 if (anchor->isShadowRoot()) |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
540 | 540 |
541 void showTree(const blink::Position* pos) | 541 void showTree(const blink::Position* pos) |
542 { | 542 { |
543 if (pos) | 543 if (pos) |
544 pos->showTreeForThis(); | 544 pos->showTreeForThis(); |
545 else | 545 else |
546 fprintf(stderr, "Cannot showTree for (nil)\n"); | 546 fprintf(stderr, "Cannot showTree for (nil)\n"); |
547 } | 547 } |
548 | 548 |
549 #endif | 549 #endif |
OLD | NEW |