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

Side by Side Diff: third_party/WebKit/Source/core/css/RuleSet.cpp

Issue 1523843004: Add support for new CSS ::slotted() pseudo element (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: WIP Created 5 years 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) 3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com)
4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) 4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com)
5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All r ights reserved. 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All r ights reserved.
6 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> 6 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org>
7 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> 7 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org>
8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/)
9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. 9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved.
10 * Copyright (C) Research In Motion Limited 2011. All rights reserved. 10 * Copyright (C) Research In Motion Limited 2011. All rights reserved.
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 256
257 if (rule->isStyleRule()) { 257 if (rule->isStyleRule()) {
258 StyleRule* styleRule = toStyleRule(rule); 258 StyleRule* styleRule = toStyleRule(rule);
259 259
260 const CSSSelectorList& selectorList = styleRule->selectorList(); 260 const CSSSelectorList& selectorList = styleRule->selectorList();
261 for (size_t selectorIndex = 0; selectorIndex != kNotFound; selectorI ndex = selectorList.indexOfNextSelectorAfter(selectorIndex)) { 261 for (size_t selectorIndex = 0; selectorIndex != kNotFound; selectorI ndex = selectorList.indexOfNextSelectorAfter(selectorIndex)) {
262 if (selectorList.selectorUsesDeepCombinatorOrShadowPseudo(select orIndex)) { 262 if (selectorList.selectorUsesDeepCombinatorOrShadowPseudo(select orIndex)) {
263 m_deepCombinatorOrShadowPseudoRules.append(MinimalRuleData(s tyleRule, selectorIndex, addRuleFlags)); 263 m_deepCombinatorOrShadowPseudoRules.append(MinimalRuleData(s tyleRule, selectorIndex, addRuleFlags));
264 } else if (selectorList.selectorHasShadowDistributed(selectorInd ex)) { 264 } else if (selectorList.selectorHasShadowDistributed(selectorInd ex)) {
265 m_shadowDistributedRules.append(MinimalRuleData(styleRule, s electorIndex, addRuleFlags)); 265 m_shadowDistributedRules.append(MinimalRuleData(styleRule, s electorIndex, addRuleFlags));
266 } else if (selectorList.selectorHasShadowSlotted(selectorIndex)) {
267 m_shadowSlottedRules.append(MinimalRuleData(styleRule, selec torIndex, addRuleFlags));
266 } else { 268 } else {
267 addRule(styleRule, selectorIndex, addRuleFlags); 269 addRule(styleRule, selectorIndex, addRuleFlags);
268 } 270 }
269 } 271 }
270 } else if (rule->isPageRule()) { 272 } else if (rule->isPageRule()) {
271 addPageRule(toStyleRulePage(rule)); 273 addPageRule(toStyleRulePage(rule));
272 } else if (rule->isMediaRule()) { 274 } else if (rule->isMediaRule()) {
273 StyleRuleMedia* mediaRule = toStyleRuleMedia(rule); 275 StyleRuleMedia* mediaRule = toStyleRuleMedia(rule);
274 if ((!mediaRule->mediaQueries() || medium.eval(mediaRule->mediaQueri es(), &m_viewportDependentMediaQueryResults))) 276 if ((!mediaRule->mediaQueries() || medium.eval(mediaRule->mediaQueri es(), &m_viewportDependentMediaQueryResults)))
275 addChildRules(mediaRule->childRules(), medium, addRuleFlags); 277 addChildRules(mediaRule->childRules(), medium, addRuleFlags);
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 m_cuePseudoRules.shrinkToFit(); 338 m_cuePseudoRules.shrinkToFit();
337 m_focusPseudoClassRules.shrinkToFit(); 339 m_focusPseudoClassRules.shrinkToFit();
338 m_universalRules.shrinkToFit(); 340 m_universalRules.shrinkToFit();
339 m_shadowHostRules.shrinkToFit(); 341 m_shadowHostRules.shrinkToFit();
340 m_pageRules.shrinkToFit(); 342 m_pageRules.shrinkToFit();
341 m_viewportRules.shrinkToFit(); 343 m_viewportRules.shrinkToFit();
342 m_fontFaceRules.shrinkToFit(); 344 m_fontFaceRules.shrinkToFit();
343 m_keyframesRules.shrinkToFit(); 345 m_keyframesRules.shrinkToFit();
344 m_deepCombinatorOrShadowPseudoRules.shrinkToFit(); 346 m_deepCombinatorOrShadowPseudoRules.shrinkToFit();
345 m_shadowDistributedRules.shrinkToFit(); 347 m_shadowDistributedRules.shrinkToFit();
348 m_shadowSlottedRules.shrinkToFit();
346 } 349 }
347 350
348 DEFINE_TRACE(MinimalRuleData) 351 DEFINE_TRACE(MinimalRuleData)
349 { 352 {
350 visitor->trace(m_rule); 353 visitor->trace(m_rule);
351 } 354 }
352 355
353 DEFINE_TRACE(RuleData) 356 DEFINE_TRACE(RuleData)
354 { 357 {
355 visitor->trace(m_rule); 358 visitor->trace(m_rule);
(...skipping 21 matching lines...) Expand all
377 visitor->trace(m_focusPseudoClassRules); 380 visitor->trace(m_focusPseudoClassRules);
378 visitor->trace(m_universalRules); 381 visitor->trace(m_universalRules);
379 visitor->trace(m_shadowHostRules); 382 visitor->trace(m_shadowHostRules);
380 visitor->trace(m_features); 383 visitor->trace(m_features);
381 visitor->trace(m_pageRules); 384 visitor->trace(m_pageRules);
382 visitor->trace(m_viewportRules); 385 visitor->trace(m_viewportRules);
383 visitor->trace(m_fontFaceRules); 386 visitor->trace(m_fontFaceRules);
384 visitor->trace(m_keyframesRules); 387 visitor->trace(m_keyframesRules);
385 visitor->trace(m_deepCombinatorOrShadowPseudoRules); 388 visitor->trace(m_deepCombinatorOrShadowPseudoRules);
386 visitor->trace(m_shadowDistributedRules); 389 visitor->trace(m_shadowDistributedRules);
390 visitor->trace(m_shadowSlottedRules);
387 visitor->trace(m_viewportDependentMediaQueryResults); 391 visitor->trace(m_viewportDependentMediaQueryResults);
388 visitor->trace(m_pendingRules); 392 visitor->trace(m_pendingRules);
389 #ifndef NDEBUG 393 #ifndef NDEBUG
390 visitor->trace(m_allRules); 394 visitor->trace(m_allRules);
391 #endif 395 #endif
392 #endif 396 #endif
393 } 397 }
394 398
395 #ifndef NDEBUG 399 #ifndef NDEBUG
396 void RuleSet::show() const 400 void RuleSet::show() const
397 { 401 {
398 for (const auto& rule: m_allRules) 402 for (const auto& rule: m_allRules)
399 rule.selector().show(); 403 rule.selector().show();
400 } 404 }
401 #endif 405 #endif
402 406
403 } // namespace blink 407 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698