Changeset 155109 in webkit
- Timestamp:
- Sep 5, 2013 3:33:05 AM (11 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r155108 r155109 1 2013-09-05 Mihnea Ovidenie <mihnea@adobe.com> 2 3 Replace node() calls with generatingNode() for RenderRegion code 4 https://bugs.webkit.org/show_bug.cgi?id=120397 5 6 Reviewed by Darin Adler. 7 8 As regions will become anonymous blocks nested inside elements with the flow-from property, a first step 9 would be to change the calls to node() with calls to generatingNode(). In the case of regions, generatingNode() 10 will always return an Element* and not a Node*. Therefore, to get rid of toElement() casts, i created 11 a specific method RenderRegion::generatingElement that will return the generating node as Element. 12 No new tests as no functional change was introduced. 13 14 Original patch by Catalin Badea. 15 16 * css/ElementRuleCollector.cpp: 17 (WebCore::ElementRuleCollector::collectMatchingRulesForRegion): 18 * dom/WebKitNamedFlow.cpp: 19 (WebCore::WebKitNamedFlow::getRegionsByContent): 20 (WebCore::WebKitNamedFlow::getRegions): 21 * rendering/RenderRegion.cpp: 22 (WebCore::RenderRegion::regionOversetState): 23 (WebCore::RenderRegion::setRegionOversetState): 24 (WebCore::RenderRegion::checkRegionStyle): 25 * rendering/RenderRegion.h: 26 (WebCore::RenderRegion::generatingElement): 27 * rendering/RenderTreeAsText.cpp: 28 (WebCore::writeRenderRegionList): For pseudo-elements as regions, i want to print 29 {pseudo} instead of {div} marker for the parent. 30 1 31 2013-09-05 Csaba Osztrogonác <ossy@webkit.org> 2 32 -
trunk/Source/WebCore/css/ElementRuleCollector.cpp
r154887 r155109 183 183 for (unsigned i = 0; i < size; ++i) { 184 184 const CSSSelector* regionSelector = matchRequest.ruleSet->regionSelectorsAndRuleSets().at(i).selector; 185 if (checkRegionSelector(regionSelector, toElement(m_regionForStyling->node()))) {185 if (checkRegionSelector(regionSelector, m_regionForStyling->generatingElement())) { 186 186 RuleSet* regionRules = matchRequest.ruleSet->regionSelectorsAndRuleSets().at(i).ruleSet.get(); 187 187 ASSERT(regionRules); -
trunk/Source/WebCore/dom/WebKitNamedFlow.cpp
r154982 r155109 141 141 continue; 142 142 if (m_parentFlowThread->objectInFlowRegion(contentNode->renderer(), renderRegion)) 143 regionNodes.append(renderRegion-> node());143 regionNodes.append(renderRegion->generatingElement()); 144 144 } 145 145 } … … 168 168 if (renderRegion->isPseudoElement()) 169 169 continue; 170 regionNodes.append(renderRegion-> node());170 regionNodes.append(renderRegion->generatingElement()); 171 171 } 172 172 -
trunk/Source/WebCore/rendering/RenderRegion.cpp
r155026 r155109 140 140 RegionOversetState RenderRegion::regionOversetState() const 141 141 { 142 ASSERT( node());142 ASSERT(generatingElement()); 143 143 144 144 if (!isValid()) 145 145 return RegionUndefined; 146 146 147 if (Element* element = toElement(node())) 148 return element->regionOversetState(); 149 150 return RegionUndefined; 147 return generatingElement()->regionOversetState(); 151 148 } 152 149 153 150 void RenderRegion::setRegionOversetState(RegionOversetState state) 154 151 { 155 ASSERT(node()); 156 157 if (Element* element = toElement(node())) 158 element->setRegionOversetState(state); 152 ASSERT(generatingElement()); 153 154 generatingElement()->setRegionOversetState(state); 159 155 } 160 156 … … 232 228 233 229 // FIXME: Region styling doesn't work for pseudo elements. 234 if (node()) { 235 Element* regionElement = toElement(node()); 236 customRegionStyle = view().document().ensureStyleResolver().checkRegionStyle(regionElement); 237 } 230 if (!isPseudoElement()) 231 customRegionStyle = view().document().ensureStyleResolver().checkRegionStyle(generatingElement()); 238 232 setHasCustomRegionStyle(customRegionStyle); 239 233 m_flowThread->checkRegionsWithStyling(); -
trunk/Source/WebCore/rendering/RenderRegion.h
r155026 r155109 36 36 namespace WebCore { 37 37 38 class Element; 38 39 struct LayerFragment; 39 40 typedef Vector<LayerFragment, 1> LayerFragments; … … 152 153 153 154 LayoutRect rectFlowPortionForBox(const RenderBox*, const LayoutRect&) const; 155 156 Element* generatingElement() const { return toElement(RenderObject::generatingNode()); } 154 157 155 158 protected: -
trunk/Source/WebCore/rendering/RenderTreeAsText.cpp
r154937 r155109 670 670 writeIndent(ts, indent + 2); 671 671 ts << "RenderRegion"; 672 if (renderRegion->generating Node()) {673 String tagName = getTagName(renderRegion-> generatingNode());672 if (renderRegion->generatingElement()) { 673 String tagName = getTagName(renderRegion->node()); 674 674 if (!tagName.isEmpty()) 675 675 ts << " {" << tagName << "}"; 676 if (renderRegion->generatingNode()->isElementNode() && toElement(renderRegion->generatingNode())->hasID()) { 677 Element* element = toElement(renderRegion->generatingNode()); 678 ts << " #" << element->idForStyleResolution(); 679 } 676 if (renderRegion->generatingElement()->hasID()) 677 ts << " #" << renderRegion->generatingElement()->idForStyleResolution(); 680 678 if (renderRegion->hasLayer()) 681 679 ts << " hasLayer";
Note: See TracChangeset
for help on using the changeset viewer.