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

Unified Diff: Source/core/rendering/RenderRuby.cpp

Issue 563763002: Ruby: Update beforeChild when redirecting renderer insertion to a child. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: code review Created 6 years, 2 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
Index: Source/core/rendering/RenderRuby.cpp
diff --git a/Source/core/rendering/RenderRuby.cpp b/Source/core/rendering/RenderRuby.cpp
index a7f0c7000a039a7bd862da767f305ef9f6dd1366..563ce62cf1a019d8bbec18668706c1c91c072e08 100644
--- a/Source/core/rendering/RenderRuby.cpp
+++ b/Source/core/rendering/RenderRuby.cpp
@@ -165,11 +165,13 @@ void RenderRubyAsInline::addChild(RenderObject* child, RenderObject* beforeChild
if (beforeChild && !isAfterContent(beforeChild)) {
// insert child into run
- ASSERT(!beforeChild->isRubyRun());
RenderObject* run = beforeChild;
while (run && !run->isRubyRun())
run = run->parent();
if (run) {
+ if (beforeChild == run)
+ beforeChild = toRenderRubyRun(beforeChild)->firstChild();
+ ASSERT(!beforeChild || beforeChild->isDescendantOf(run));
run->addChild(child, beforeChild);
return;
}
@@ -271,11 +273,13 @@ void RenderRubyAsBlock::addChild(RenderObject* child, RenderObject* beforeChild)
if (beforeChild && !isAfterContent(beforeChild)) {
// insert child into run
- ASSERT(!beforeChild->isRubyRun());
RenderObject* run = beforeChild;
while (run && !run->isRubyRun())
run = run->parent();
if (run) {
+ if (beforeChild == run)
+ beforeChild = toRenderRubyRun(beforeChild)->firstChild();
+ ASSERT(!beforeChild || beforeChild->isDescendantOf(run));
run->addChild(child, beforeChild);
return;
}
« no previous file with comments | « LayoutTests/fast/ruby/list-item-marker-in-block-ruby-expected.txt ('k') | Source/core/rendering/RenderRubyRun.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698