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

Side by Side Diff: Source/core/dom/shadow/ElementShadow.cpp

Issue 192293002: Use new is*Element() helper functions in DOM code (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Add is*Element(PassRefPtr) helper Created 6 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Neither the name of Google Inc. nor the names of its 10 * * Neither the name of Google Inc. nor the names of its
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 } 81 }
82 82
83 void DistributionPool::distributeTo(InsertionPoint* insertionPoint, ElementShado w* elementShadow) 83 void DistributionPool::distributeTo(InsertionPoint* insertionPoint, ElementShado w* elementShadow)
84 { 84 {
85 ContentDistribution distribution; 85 ContentDistribution distribution;
86 86
87 for (size_t i = 0; i < m_nodes.size(); ++i) { 87 for (size_t i = 0; i < m_nodes.size(); ++i) {
88 if (m_distributed[i]) 88 if (m_distributed[i])
89 continue; 89 continue;
90 90
91 if (insertionPoint->hasTagName(HTMLNames::contentTag) && !toHTMLContentE lement(insertionPoint)->canSelectNode(m_nodes, i)) 91 if (isHTMLContentElement(*insertionPoint) && !toHTMLContentElement(inser tionPoint)->canSelectNode(m_nodes, i))
92 continue; 92 continue;
93 93
94 Node* node = m_nodes[i]; 94 Node* node = m_nodes[i];
95 distribution.append(node); 95 distribution.append(node);
96 elementShadow->didDistributeNode(node, insertionPoint); 96 elementShadow->didDistributeNode(node, insertionPoint);
97 m_distributed[i] = true; 97 m_distributed[i] = true;
98 } 98 }
99 99
100 // Distributes fallback elements 100 // Distributes fallback elements
101 if (insertionPoint->isContentInsertionPoint() && distribution.isEmpty()) { 101 if (insertionPoint->isContentInsertionPoint() && distribution.isEmpty()) {
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 Vector<HTMLShadowElement*, 32> shadowInsertionPoints; 295 Vector<HTMLShadowElement*, 32> shadowInsertionPoints;
296 DistributionPool pool(*host()); 296 DistributionPool pool(*host());
297 297
298 for (ShadowRoot* root = youngestShadowRoot(); root; root = root->olderShadow Root()) { 298 for (ShadowRoot* root = youngestShadowRoot(); root; root = root->olderShadow Root()) {
299 HTMLShadowElement* shadowInsertionPoint = 0; 299 HTMLShadowElement* shadowInsertionPoint = 0;
300 const Vector<RefPtr<InsertionPoint> >& insertionPoints = root->descendan tInsertionPoints(); 300 const Vector<RefPtr<InsertionPoint> >& insertionPoints = root->descendan tInsertionPoints();
301 for (size_t i = 0; i < insertionPoints.size(); ++i) { 301 for (size_t i = 0; i < insertionPoints.size(); ++i) {
302 InsertionPoint* point = insertionPoints[i].get(); 302 InsertionPoint* point = insertionPoints[i].get();
303 if (!point->isActive()) 303 if (!point->isActive())
304 continue; 304 continue;
305 if (point->hasTagName(HTMLNames::shadowTag)) { 305 if (isHTMLShadowElement(*point)) {
306 ASSERT(!shadowInsertionPoint); 306 ASSERT(!shadowInsertionPoint);
307 shadowInsertionPoint = toHTMLShadowElement(point); 307 shadowInsertionPoint = toHTMLShadowElement(point);
308 shadowInsertionPoints.append(shadowInsertionPoint); 308 shadowInsertionPoints.append(shadowInsertionPoint);
309 } else { 309 } else {
310 pool.distributeTo(point, this); 310 pool.distributeTo(point, this);
311 if (ElementShadow* shadow = shadowWhereNodeCanBeDistributed(*poi nt)) 311 if (ElementShadow* shadow = shadowWhereNodeCanBeDistributed(*poi nt))
312 shadow->setNeedsDistributionRecalc(); 312 shadow->setNeedsDistributionRecalc();
313 } 313 }
314 } 314 }
315 } 315 }
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 } 351 }
352 352
353 void ElementShadow::collectSelectFeatureSetFrom(ShadowRoot& root) 353 void ElementShadow::collectSelectFeatureSetFrom(ShadowRoot& root)
354 { 354 {
355 if (!root.containsShadowRoots() && !root.containsContentElements()) 355 if (!root.containsShadowRoots() && !root.containsContentElements())
356 return; 356 return;
357 357
358 for (Element* element = ElementTraversal::firstWithin(root); element; elemen t = ElementTraversal::next(*element, &root)) { 358 for (Element* element = ElementTraversal::firstWithin(root); element; elemen t = ElementTraversal::next(*element, &root)) {
359 if (ElementShadow* shadow = element->shadow()) 359 if (ElementShadow* shadow = element->shadow())
360 m_selectFeatures.add(shadow->ensureSelectFeatureSet()); 360 m_selectFeatures.add(shadow->ensureSelectFeatureSet());
361 if (!element->hasTagName(HTMLNames::contentTag)) 361 if (!isHTMLContentElement(*element))
362 continue; 362 continue;
363 const CSSSelectorList& list = toHTMLContentElement(element)->selectorLis t(); 363 const CSSSelectorList& list = toHTMLContentElement(*element).selectorLis t();
364 for (const CSSSelector* selector = list.first(); selector; selector = CS SSelectorList::next(*selector)) { 364 for (const CSSSelector* selector = list.first(); selector; selector = CS SSelectorList::next(*selector)) {
365 for (const CSSSelector* component = selector; component; component = component->tagHistory()) 365 for (const CSSSelector* component = selector; component; component = component->tagHistory())
366 m_selectFeatures.collectFeaturesFromSelector(*component); 366 m_selectFeatures.collectFeaturesFromSelector(*component);
367 } 367 }
368 } 368 }
369 } 369 }
370 370
371 void ElementShadow::didAffectSelector(AffectedSelectorMask mask) 371 void ElementShadow::didAffectSelector(AffectedSelectorMask mask)
372 { 372 {
373 if (ensureSelectFeatureSet().hasSelectorFor(mask)) 373 if (ensureSelectFeatureSet().hasSelectorFor(mask))
(...skipping 12 matching lines...) Expand all
386 386
387 void ElementShadow::clearDistribution() 387 void ElementShadow::clearDistribution()
388 { 388 {
389 m_nodeToInsertionPoints.clear(); 389 m_nodeToInsertionPoints.clear();
390 390
391 for (ShadowRoot* root = youngestShadowRoot(); root; root = root->olderShadow Root()) 391 for (ShadowRoot* root = youngestShadowRoot(); root; root = root->olderShadow Root())
392 root->setShadowInsertionPointOfYoungerShadowRoot(nullptr); 392 root->setShadowInsertionPointOfYoungerShadowRoot(nullptr);
393 } 393 }
394 394
395 } // namespace 395 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698