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

Side by Side Diff: Source/WebCore/rendering/RenderObject.cpp

Issue 10264007: Merge 113252 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1084/
Patch Set: Created 8 years, 7 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 unified diff | Download patch
« no previous file with comments | « Source/WebCore/rendering/RenderObject.h ('k') | Source/WebCore/rendering/RenderTable.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com)
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed.
7 * Copyright (C) 2009 Google Inc. All rights reserved. 7 * Copyright (C) 2009 Google Inc. All rights reserved.
8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
9 * 9 *
10 * This library is free software; you can redistribute it and/or 10 * This library is free software; you can redistribute it and/or
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 static bool isBeforeAfterContentGeneratedByAncestor(RenderObject* renderer, Rend erObject* beforeAfterContent) 262 static bool isBeforeAfterContentGeneratedByAncestor(RenderObject* renderer, Rend erObject* beforeAfterContent)
263 { 263 {
264 while (renderer) { 264 while (renderer) {
265 if (renderer->generatingNode() == beforeAfterContent->generatingNode()) 265 if (renderer->generatingNode() == beforeAfterContent->generatingNode())
266 return true; 266 return true;
267 renderer = renderer->parent(); 267 renderer = renderer->parent();
268 } 268 }
269 return false; 269 return false;
270 } 270 }
271 271
272 RenderTable* RenderObject::createAnonymousTable() const
273 {
274 RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(style());
275 newStyle->setDisplay(TABLE);
276
277 RenderTable* table = new (renderArena()) RenderTable(document() /* is anonym ous */);
278 table->setStyle(newStyle.release());
279 return table;
280 }
281
282 void RenderObject::addChild(RenderObject* newChild, RenderObject* beforeChild) 272 void RenderObject::addChild(RenderObject* newChild, RenderObject* beforeChild)
283 { 273 {
284 RenderObjectChildList* children = virtualChildren(); 274 RenderObjectChildList* children = virtualChildren();
285 ASSERT(children); 275 ASSERT(children);
286 if (!children) 276 if (!children)
287 return; 277 return;
288 278
289 RenderObject* beforeContent = 0; 279 RenderObject* beforeContent = 0;
290 bool beforeChildHasBeforeAndAfterContent = false; 280 bool beforeChildHasBeforeAndAfterContent = false;
291 if (beforeChild && (beforeChild->isTable() || beforeChild->isTableSection() || beforeChild->isTableRow() || beforeChild->isTableCell())) { 281 if (beforeChild && (beforeChild->isTable() || beforeChild->isTableSection() || beforeChild->isTableRow() || beforeChild->isTableCell())) {
(...skipping 24 matching lines...) Expand all
316 if (needsTable && isTableCell() && !children->firstChild() && !newChild- >isTableCell()) 306 if (needsTable && isTableCell() && !children->firstChild() && !newChild- >isTableCell())
317 needsTable = false; 307 needsTable = false;
318 } 308 }
319 309
320 if (needsTable) { 310 if (needsTable) {
321 RenderTable* table; 311 RenderTable* table;
322 RenderObject* afterChild = beforeChild ? beforeChild->previousSibling() : children->lastChild(); 312 RenderObject* afterChild = beforeChild ? beforeChild->previousSibling() : children->lastChild();
323 if (afterChild && afterChild->isAnonymous() && afterChild->isTable() && !afterChild->isBeforeContent()) 313 if (afterChild && afterChild->isAnonymous() && afterChild->isTable() && !afterChild->isBeforeContent())
324 table = toRenderTable(afterChild); 314 table = toRenderTable(afterChild);
325 else { 315 else {
326 table = createAnonymousTable(); 316 table = RenderTable::createAnonymousWithParentRenderer(this);
327 addChild(table, beforeChild); 317 addChild(table, beforeChild);
328 } 318 }
329 table->addChild(newChild); 319 table->addChild(newChild);
330 } else { 320 } else {
331 // Just add it... 321 // Just add it...
332 children->insertChildNode(this, newChild, beforeChild); 322 children->insertChildNode(this, newChild, beforeChild);
333 } 323 }
334 324
335 if (newChild->isText() && newChild->style()->textTransform() == CAPITALIZE) 325 if (newChild->isText() && newChild->style()->textTransform() == CAPITALIZE)
336 toRenderText(newChild)->transformText(); 326 toRenderText(newChild)->transformText();
(...skipping 2585 matching lines...) Expand 10 before | Expand all | Expand 10 after
2922 { 2912 {
2923 if (object1) { 2913 if (object1) {
2924 const WebCore::RenderObject* root = object1; 2914 const WebCore::RenderObject* root = object1;
2925 while (root->parent()) 2915 while (root->parent())
2926 root = root->parent(); 2916 root = root->parent();
2927 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); 2917 root->showRenderTreeAndMark(object1, "*", object2, "-", 0);
2928 } 2918 }
2929 } 2919 }
2930 2920
2931 #endif 2921 #endif
OLDNEW
« no previous file with comments | « Source/WebCore/rendering/RenderObject.h ('k') | Source/WebCore/rendering/RenderTable.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698