Changeset 83922 in webkit
- Timestamp:
- Apr 14, 2011 6:05:48 PM (13 years ago)
- Location:
- trunk
- Files:
-
- 3 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r83921 r83922 1 2011-04-14 Dimitri Glazkov <dglazkov@chromium.org> 2 3 Reviewed by Ojan Vafai. 4 5 Presence of shadow DOM should suppress rendering of ordinary child nodes 6 https://bugs.webkit.org/show_bug.cgi?id=58073 7 8 * fast/dom/shadow/no-renderers-for-light-children-expected.txt: Added. 9 * fast/dom/shadow/no-renderers-for-light-children.html: Added. 10 1 11 2011-04-14 James Robinson <jamesr@chromium.org> 2 12 -
trunk/Source/WebCore/ChangeLog
r83915 r83922 1 2011-04-14 Dimitri Glazkov <dglazkov@chromium.org> 2 3 Reviewed by Ojan Vafai. 4 5 Presence of shadow DOM should suppress rendering of ordinary child nodes 6 https://bugs.webkit.org/show_bug.cgi?id=58073 7 8 Test: fast/dom/shadow/no-renderers-for-light-children.html 9 10 * dom/Node.cpp: 11 (WebCore::shadowRoot): Added a helper function. 12 (WebCore::Node::setDocumentRecursively): Changed to use the helper. 13 (WebCore::shouldCreateRendererFor): Expanded a long condition check into a helper function, 14 added a check for children of an element with a shadow DOM. 15 (WebCore::Node::createRendererAndStyle): Changed to use the helper. 16 1 17 2011-04-14 Adrienne Walker <enne@google.com> 2 18 -
trunk/Source/WebCore/dom/Node.cpp
r83349 r83922 853 853 } 854 854 855 inline static ContainerNode* shadowRoot(Node* node) 856 { 857 return node->isElementNode() ? toElement(node)->shadowRoot() : 0; 858 } 859 855 860 void Node::setDocumentRecursively(Document* newDocument) 856 861 { … … 861 866 if (!node->isElementNode()) 862 867 continue; 863 if (Node* shadow = toElement(node)->shadowRoot())868 if (Node* shadow = shadowRoot(node)) 864 869 shadow->setDocumentRecursively(newDocument); 865 870 } … … 1453 1458 } 1454 1459 1460 static bool shouldCreateRendererFor(Node* node, ContainerNode* parentForRenderingAndStyle) 1461 { 1462 RenderObject* parentRenderer = parentForRenderingAndStyle->renderer(); 1463 if (!parentRenderer) 1464 return false; 1465 1466 bool atShadowBoundary = node->parentOrHostNode()->isShadowBoundary(); 1467 1468 // FIXME: Ignoring canHaveChildren() in a case of isShadowRoot() might be wrong. 1469 // See https://bugs.webkit.org/show_bug.cgi?id=52423 1470 if (!parentRenderer->canHaveChildren() && !(node->isShadowRoot() || atShadowBoundary)) 1471 return false; 1472 1473 if (shadowRoot(parentForRenderingAndStyle) && !atShadowBoundary) 1474 return false; 1475 1476 if (!parentForRenderingAndStyle->childShouldCreateRenderer(node)) 1477 return false; 1478 1479 return true; 1480 } 1481 1455 1482 RenderObject* Node::createRendererAndStyle() 1456 1483 { … … 1461 1488 ASSERT(parent); 1462 1489 1463 RenderObject* parentRenderer = parent->renderer(); 1464 1465 // FIXME: Ignoring canHaveChildren() in a case of isShadowRoot() might be wrong. 1466 // See https://bugs.webkit.org/show_bug.cgi?id=52423 1467 if (!parentRenderer || (!parentRenderer->canHaveChildren() && !(isShadowRoot() || parentNode()->isShadowBoundary())) || !parent->childShouldCreateRenderer(this)) 1490 if (!shouldCreateRendererFor(this, parent)) 1468 1491 return 0; 1469 1492 … … 1476 1499 return 0; 1477 1500 1478 if (!parent Renderer->isChildAllowed(newRenderer, style.get())) {1501 if (!parent->renderer()->isChildAllowed(newRenderer, style.get())) { 1479 1502 newRenderer->destroy(); 1480 1503 return 0;
Note: See TracChangeset
for help on using the changeset viewer.