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

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

Issue 9562026: Merge 108127 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1025/
Patch Set: Created 8 years, 9 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') | no next file » | 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 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 static bool isBeforeAfterContentGeneratedByAncestor(RenderObject* renderer, Rend erObject* beforeAfterContent) 259 static bool isBeforeAfterContentGeneratedByAncestor(RenderObject* renderer, Rend erObject* beforeAfterContent)
260 { 260 {
261 while (renderer) { 261 while (renderer) {
262 if (renderer->generatingNode() == beforeAfterContent->generatingNode()) 262 if (renderer->generatingNode() == beforeAfterContent->generatingNode())
263 return true; 263 return true;
264 renderer = renderer->parent(); 264 renderer = renderer->parent();
265 } 265 }
266 return false; 266 return false;
267 } 267 }
268 268
269 RenderTable* RenderObject::createAnonymousTable() const
270 {
271 RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(style());
272 newStyle->setDisplay(TABLE);
273
274 RenderTable* table = new (renderArena()) RenderTable(document() /* is anonym ous */);
275 table->setStyle(newStyle.release());
276 return table;
277 }
278
269 void RenderObject::addChild(RenderObject* newChild, RenderObject* beforeChild) 279 void RenderObject::addChild(RenderObject* newChild, RenderObject* beforeChild)
270 { 280 {
271 RenderObjectChildList* children = virtualChildren(); 281 RenderObjectChildList* children = virtualChildren();
272 ASSERT(children); 282 ASSERT(children);
273 if (!children) 283 if (!children)
274 return; 284 return;
275 285
276 RenderObject* beforeContent = 0; 286 RenderObject* beforeContent = 0;
277 bool beforeChildHasBeforeAndAfterContent = false; 287 bool beforeChildHasBeforeAndAfterContent = false;
278 if (beforeChild && (beforeChild->isTable() || beforeChild->isTableSection() || beforeChild->isTableRow() || beforeChild->isTableCell())) { 288 if (beforeChild && (beforeChild->isTable() || beforeChild->isTableSection() || beforeChild->isTableRow() || beforeChild->isTableCell())) {
(...skipping 24 matching lines...) Expand all
303 if (needsTable && isTableCell() && !children->firstChild() && !newChild- >isTableCell()) 313 if (needsTable && isTableCell() && !children->firstChild() && !newChild- >isTableCell())
304 needsTable = false; 314 needsTable = false;
305 } 315 }
306 316
307 if (needsTable) { 317 if (needsTable) {
308 RenderTable* table; 318 RenderTable* table;
309 RenderObject* afterChild = beforeChild ? beforeChild->previousSibling() : children->lastChild(); 319 RenderObject* afterChild = beforeChild ? beforeChild->previousSibling() : children->lastChild();
310 if (afterChild && afterChild->isAnonymous() && afterChild->isTable() && !afterChild->isBeforeContent()) 320 if (afterChild && afterChild->isAnonymous() && afterChild->isTable() && !afterChild->isBeforeContent())
311 table = toRenderTable(afterChild); 321 table = toRenderTable(afterChild);
312 else { 322 else {
313 table = new (renderArena()) RenderTable(document() /* is anonymous * /); 323 table = createAnonymousTable();
314 RefPtr<RenderStyle> newStyle = RenderStyle::create();
315 newStyle->inheritFrom(style());
316 newStyle->setDisplay(TABLE);
317 table->setStyle(newStyle.release());
318 addChild(table, beforeChild); 324 addChild(table, beforeChild);
319 } 325 }
320 table->addChild(newChild); 326 table->addChild(newChild);
321 } else { 327 } else {
322 // Just add it... 328 // Just add it...
323 children->insertChildNode(this, newChild, beforeChild); 329 children->insertChildNode(this, newChild, beforeChild);
324 } 330 }
325 331
326 if (newChild->isText() && newChild->style()->textTransform() == CAPITALIZE) { 332 if (newChild->isText() && newChild->style()->textTransform() == CAPITALIZE) {
327 RefPtr<StringImpl> textToTransform = toRenderText(newChild)->originalTex t(); 333 RefPtr<StringImpl> textToTransform = toRenderText(newChild)->originalTex t();
(...skipping 2492 matching lines...) Expand 10 before | Expand all | Expand 10 after
2820 { 2826 {
2821 if (object1) { 2827 if (object1) {
2822 const WebCore::RenderObject* root = object1; 2828 const WebCore::RenderObject* root = object1;
2823 while (root->parent()) 2829 while (root->parent())
2824 root = root->parent(); 2830 root = root->parent();
2825 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); 2831 root->showRenderTreeAndMark(object1, "*", object2, "-", 0);
2826 } 2832 }
2827 } 2833 }
2828 2834
2829 #endif 2835 #endif
OLDNEW
« no previous file with comments | « Source/WebCore/rendering/RenderObject.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698