Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(756)

Unified Diff: Source/core/dom/Position.cpp

Issue 1204203002: Bug fix: toPositionInComposedTree should treat positions with shadow roots (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | Source/core/dom/PositionTest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/dom/Position.cpp
diff --git a/Source/core/dom/Position.cpp b/Source/core/dom/Position.cpp
index 47dd2ba12d41d1d0847a05be9004b4e8acc3a4ad..45bf6b8ff03a83fdda2489d769ee3b2a35d2e197 100644
--- a/Source/core/dom/Position.cpp
+++ b/Source/core/dom/Position.cpp
@@ -1411,11 +1411,17 @@ PositionInComposedTree toPositionInComposedTree(const Position& pos)
ASSERT(!isActiveInsertionPoint(*anchor));
int offset = pos.computeOffsetInContainerNode();
Node* child = NodeTraversal::childAt(*anchor, offset);
- if (!child)
+ if (!child) {
+ if (anchor->isShadowRoot())
+ return PositionInComposedTree(anchor->shadowHost(), PositionInComposedTree::PositionIsAfterChildren);
return PositionInComposedTree(anchor, PositionInComposedTree::PositionIsAfterChildren);
+ }
child->updateDistribution();
- if (isActiveInsertionPoint(*child))
+ if (isActiveInsertionPoint(*child)) {
+ if (anchor->isShadowRoot())
+ return PositionInComposedTree(anchor->shadowHost(), offset, PositionInComposedTree::PositionIsOffsetInAnchor);
return PositionInComposedTree(anchor, offset, PositionInComposedTree::PositionIsOffsetInAnchor);
+ }
return PositionInComposedTree(ComposedTreeTraversal::parent(*child), ComposedTreeTraversal::index(*child), PositionInComposedTree::PositionIsOffsetInAnchor);
}
« no previous file with comments | « no previous file | Source/core/dom/PositionTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698