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

Unified Diff: Source/WebCore/rendering/RenderObject.cpp

Issue 8666016: Merge 100630 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/912/
Patch Set: Created 9 years, 1 month 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 | « Source/WebCore/rendering/RenderObject.h ('k') | Source/WebCore/rendering/RenderObjectChildList.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/WebCore/rendering/RenderObject.cpp
===================================================================
--- Source/WebCore/rendering/RenderObject.cpp (revision 101036)
+++ Source/WebCore/rendering/RenderObject.cpp (working copy)
@@ -268,6 +268,16 @@
return node() && node()->renderer() == this && node()->hasTagName(marqueeTag);
}
+static bool isBeforeAfterContentGeneratedByAncestor(RenderObject* renderer, RenderObject* beforeAfterContent)
+{
+ while (renderer) {
+ if (renderer->generatingNode() == beforeAfterContent->generatingNode())
+ return true;
+ renderer = renderer->parent();
+ }
+ return false;
+}
+
void RenderObject::addChild(RenderObject* newChild, RenderObject* beforeChild)
{
RenderObjectChildList* children = virtualChildren();
@@ -278,9 +288,9 @@
RenderObject* beforeContent = 0;
bool beforeChildHasBeforeAndAfterContent = false;
if (beforeChild && (beforeChild->isTable() || beforeChild->isTableSection() || beforeChild->isTableRow() || beforeChild->isTableCell())) {
- beforeContent = beforeChild->findBeforeContentRenderer();
- RenderObject* afterContent = beforeChild->findAfterContentRenderer();
- if (beforeContent && afterContent) {
+ beforeContent = beforeChild->beforePseudoElementRenderer();
+ RenderObject* afterContent = beforeChild->afterPseudoElementRenderer();
+ if (beforeContent && afterContent && isBeforeAfterContentGeneratedByAncestor(this, beforeContent)) {
beforeChildHasBeforeAndAfterContent = true;
beforeContent->destroy();
}
« no previous file with comments | « Source/WebCore/rendering/RenderObject.h ('k') | Source/WebCore/rendering/RenderObjectChildList.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698