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

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

Issue 9568032: Merge 108127 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/963/
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 265 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 static bool isBeforeAfterContentGeneratedByAncestor(RenderObject* renderer, Rend erObject* beforeAfterContent) 276 static bool isBeforeAfterContentGeneratedByAncestor(RenderObject* renderer, Rend erObject* beforeAfterContent)
277 { 277 {
278 while (renderer) { 278 while (renderer) {
279 if (renderer->generatingNode() == beforeAfterContent->generatingNode()) 279 if (renderer->generatingNode() == beforeAfterContent->generatingNode())
280 return true; 280 return true;
281 renderer = renderer->parent(); 281 renderer = renderer->parent();
282 } 282 }
283 return false; 283 return false;
284 } 284 }
285 285
286 RenderTable* RenderObject::createAnonymousTable() const
287 {
288 RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(style());
289 newStyle->setDisplay(TABLE);
290
291 RenderTable* table = new (renderArena()) RenderTable(document() /* is anonym ous */);
292 table->setStyle(newStyle.release());
293 return table;
294 }
295
286 void RenderObject::addChild(RenderObject* newChild, RenderObject* beforeChild) 296 void RenderObject::addChild(RenderObject* newChild, RenderObject* beforeChild)
287 { 297 {
288 RenderObjectChildList* children = virtualChildren(); 298 RenderObjectChildList* children = virtualChildren();
289 ASSERT(children); 299 ASSERT(children);
290 if (!children) 300 if (!children)
291 return; 301 return;
292 302
293 RenderObject* beforeContent = 0; 303 RenderObject* beforeContent = 0;
294 bool beforeChildHasBeforeAndAfterContent = false; 304 bool beforeChildHasBeforeAndAfterContent = false;
295 if (beforeChild && (beforeChild->isTable() || beforeChild->isTableSection() || beforeChild->isTableRow() || beforeChild->isTableCell())) { 305 if (beforeChild && (beforeChild->isTable() || beforeChild->isTableSection() || beforeChild->isTableRow() || beforeChild->isTableCell())) {
(...skipping 24 matching lines...) Expand all
320 if (needsTable && isTableCell() && !children->firstChild() && !newChild- >isTableCell()) 330 if (needsTable && isTableCell() && !children->firstChild() && !newChild- >isTableCell())
321 needsTable = false; 331 needsTable = false;
322 } 332 }
323 333
324 if (needsTable) { 334 if (needsTable) {
325 RenderTable* table; 335 RenderTable* table;
326 RenderObject* afterChild = beforeChild ? beforeChild->previousSibling() : children->lastChild(); 336 RenderObject* afterChild = beforeChild ? beforeChild->previousSibling() : children->lastChild();
327 if (afterChild && afterChild->isAnonymous() && afterChild->isTable() && !afterChild->isBeforeContent()) 337 if (afterChild && afterChild->isAnonymous() && afterChild->isTable() && !afterChild->isBeforeContent())
328 table = toRenderTable(afterChild); 338 table = toRenderTable(afterChild);
329 else { 339 else {
330 table = new (renderArena()) RenderTable(document() /* is anonymous * /); 340 table = createAnonymousTable();
331 RefPtr<RenderStyle> newStyle = RenderStyle::create();
332 newStyle->inheritFrom(style());
333 newStyle->setDisplay(TABLE);
334 table->setStyle(newStyle.release());
335 addChild(table, beforeChild); 341 addChild(table, beforeChild);
336 } 342 }
337 table->addChild(newChild); 343 table->addChild(newChild);
338 } else { 344 } else {
339 // Just add it... 345 // Just add it...
340 children->insertChildNode(this, newChild, beforeChild); 346 children->insertChildNode(this, newChild, beforeChild);
341 } 347 }
342 348
343 if (newChild->isText() && newChild->style()->textTransform() == CAPITALIZE) { 349 if (newChild->isText() && newChild->style()->textTransform() == CAPITALIZE) {
344 RefPtr<StringImpl> textToTransform = toRenderText(newChild)->originalTex t(); 350 RefPtr<StringImpl> textToTransform = toRenderText(newChild)->originalTex t();
(...skipping 2476 matching lines...) Expand 10 before | Expand all | Expand 10 after
2821 { 2827 {
2822 if (object1) { 2828 if (object1) {
2823 const WebCore::RenderObject* root = object1; 2829 const WebCore::RenderObject* root = object1;
2824 while (root->parent()) 2830 while (root->parent())
2825 root = root->parent(); 2831 root = root->parent();
2826 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); 2832 root->showRenderTreeAndMark(object1, "*", object2, "-", 0);
2827 } 2833 }
2828 } 2834 }
2829 2835
2830 #endif 2836 #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