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

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

Issue 2420413005: Collect @viewport before constructing RuleSets. (Closed)
Patch Set: Rebased Created 4 years, 2 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
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 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All
6 * rights reserved. 6 * rights reserved.
7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> 7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org>
8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> 8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org>
9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. 9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved.
10 * (http://www.torchmobile.com/) 10 * (http://www.torchmobile.com/)
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 // rules. 250 // rules.
251 m_universalRules.append(ruleData); 251 m_universalRules.append(ruleData);
252 } 252 }
253 } 253 }
254 254
255 void RuleSet::addPageRule(StyleRulePage* rule) { 255 void RuleSet::addPageRule(StyleRulePage* rule) {
256 ensurePendingRules(); // So that m_pageRules.shrinkToFit() gets called. 256 ensurePendingRules(); // So that m_pageRules.shrinkToFit() gets called.
257 m_pageRules.append(rule); 257 m_pageRules.append(rule);
258 } 258 }
259 259
260 void RuleSet::addViewportRule(StyleRuleViewport* rule) {
261 ensurePendingRules(); // So that m_viewportRules.shrinkToFit() gets called.
262 m_viewportRules.append(rule);
263 }
264
265 void RuleSet::addFontFaceRule(StyleRuleFontFace* rule) { 260 void RuleSet::addFontFaceRule(StyleRuleFontFace* rule) {
266 ensurePendingRules(); // So that m_fontFaceRules.shrinkToFit() gets called. 261 ensurePendingRules(); // So that m_fontFaceRules.shrinkToFit() gets called.
267 m_fontFaceRules.append(rule); 262 m_fontFaceRules.append(rule);
268 } 263 }
269 264
270 void RuleSet::addKeyframesRule(StyleRuleKeyframes* rule) { 265 void RuleSet::addKeyframesRule(StyleRuleKeyframes* rule) {
271 ensurePendingRules(); // So that m_keyframesRules.shrinkToFit() gets called. 266 ensurePendingRules(); // So that m_keyframesRules.shrinkToFit() gets called.
272 m_keyframesRules.append(rule); 267 m_keyframesRules.append(rule);
273 } 268 }
274 269
(...skipping 29 matching lines...) Expand all
304 StyleRuleMedia* mediaRule = toStyleRuleMedia(rule); 299 StyleRuleMedia* mediaRule = toStyleRuleMedia(rule);
305 if ((!mediaRule->mediaQueries() || 300 if ((!mediaRule->mediaQueries() ||
306 medium.eval(mediaRule->mediaQueries(), 301 medium.eval(mediaRule->mediaQueries(),
307 &m_viewportDependentMediaQueryResults, 302 &m_viewportDependentMediaQueryResults,
308 &m_deviceDependentMediaQueryResults))) 303 &m_deviceDependentMediaQueryResults)))
309 addChildRules(mediaRule->childRules(), medium, addRuleFlags); 304 addChildRules(mediaRule->childRules(), medium, addRuleFlags);
310 } else if (rule->isFontFaceRule()) { 305 } else if (rule->isFontFaceRule()) {
311 addFontFaceRule(toStyleRuleFontFace(rule)); 306 addFontFaceRule(toStyleRuleFontFace(rule));
312 } else if (rule->isKeyframesRule()) { 307 } else if (rule->isKeyframesRule()) {
313 addKeyframesRule(toStyleRuleKeyframes(rule)); 308 addKeyframesRule(toStyleRuleKeyframes(rule));
314 } else if (rule->isViewportRule()) {
315 addViewportRule(toStyleRuleViewport(rule));
316 } else if (rule->isSupportsRule() && 309 } else if (rule->isSupportsRule() &&
317 toStyleRuleSupports(rule)->conditionIsSupported()) { 310 toStyleRuleSupports(rule)->conditionIsSupported()) {
318 addChildRules(toStyleRuleSupports(rule)->childRules(), medium, 311 addChildRules(toStyleRuleSupports(rule)->childRules(), medium,
319 addRuleFlags); 312 addRuleFlags);
320 } 313 }
321 } 314 }
322 } 315 }
323 316
324 void RuleSet::addRulesFromSheet(StyleSheetContents* sheet, 317 void RuleSet::addRulesFromSheet(StyleSheetContents* sheet,
325 const MediaQueryEvaluator& medium, 318 const MediaQueryEvaluator& medium,
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
374 compactPendingRules(pendingRules->classRules, m_classRules); 367 compactPendingRules(pendingRules->classRules, m_classRules);
375 compactPendingRules(pendingRules->tagRules, m_tagRules); 368 compactPendingRules(pendingRules->tagRules, m_tagRules);
376 compactPendingRules(pendingRules->shadowPseudoElementRules, 369 compactPendingRules(pendingRules->shadowPseudoElementRules,
377 m_shadowPseudoElementRules); 370 m_shadowPseudoElementRules);
378 m_linkPseudoClassRules.shrinkToFit(); 371 m_linkPseudoClassRules.shrinkToFit();
379 m_cuePseudoRules.shrinkToFit(); 372 m_cuePseudoRules.shrinkToFit();
380 m_focusPseudoClassRules.shrinkToFit(); 373 m_focusPseudoClassRules.shrinkToFit();
381 m_universalRules.shrinkToFit(); 374 m_universalRules.shrinkToFit();
382 m_shadowHostRules.shrinkToFit(); 375 m_shadowHostRules.shrinkToFit();
383 m_pageRules.shrinkToFit(); 376 m_pageRules.shrinkToFit();
384 m_viewportRules.shrinkToFit();
385 m_fontFaceRules.shrinkToFit(); 377 m_fontFaceRules.shrinkToFit();
386 m_keyframesRules.shrinkToFit(); 378 m_keyframesRules.shrinkToFit();
387 m_deepCombinatorOrShadowPseudoRules.shrinkToFit(); 379 m_deepCombinatorOrShadowPseudoRules.shrinkToFit();
388 m_contentPseudoElementRules.shrinkToFit(); 380 m_contentPseudoElementRules.shrinkToFit();
389 m_slottedPseudoElementRules.shrinkToFit(); 381 m_slottedPseudoElementRules.shrinkToFit();
390 } 382 }
391 383
392 DEFINE_TRACE(MinimalRuleData) { 384 DEFINE_TRACE(MinimalRuleData) {
393 visitor->trace(m_rule); 385 visitor->trace(m_rule);
394 } 386 }
(...skipping 14 matching lines...) Expand all
409 visitor->trace(m_classRules); 401 visitor->trace(m_classRules);
410 visitor->trace(m_tagRules); 402 visitor->trace(m_tagRules);
411 visitor->trace(m_shadowPseudoElementRules); 403 visitor->trace(m_shadowPseudoElementRules);
412 visitor->trace(m_linkPseudoClassRules); 404 visitor->trace(m_linkPseudoClassRules);
413 visitor->trace(m_cuePseudoRules); 405 visitor->trace(m_cuePseudoRules);
414 visitor->trace(m_focusPseudoClassRules); 406 visitor->trace(m_focusPseudoClassRules);
415 visitor->trace(m_universalRules); 407 visitor->trace(m_universalRules);
416 visitor->trace(m_shadowHostRules); 408 visitor->trace(m_shadowHostRules);
417 visitor->trace(m_features); 409 visitor->trace(m_features);
418 visitor->trace(m_pageRules); 410 visitor->trace(m_pageRules);
419 visitor->trace(m_viewportRules);
420 visitor->trace(m_fontFaceRules); 411 visitor->trace(m_fontFaceRules);
421 visitor->trace(m_keyframesRules); 412 visitor->trace(m_keyframesRules);
422 visitor->trace(m_deepCombinatorOrShadowPseudoRules); 413 visitor->trace(m_deepCombinatorOrShadowPseudoRules);
423 visitor->trace(m_contentPseudoElementRules); 414 visitor->trace(m_contentPseudoElementRules);
424 visitor->trace(m_slottedPseudoElementRules); 415 visitor->trace(m_slottedPseudoElementRules);
425 visitor->trace(m_viewportDependentMediaQueryResults); 416 visitor->trace(m_viewportDependentMediaQueryResults);
426 visitor->trace(m_deviceDependentMediaQueryResults); 417 visitor->trace(m_deviceDependentMediaQueryResults);
427 visitor->trace(m_pendingRules); 418 visitor->trace(m_pendingRules);
428 #ifndef NDEBUG 419 #ifndef NDEBUG
429 visitor->trace(m_allRules); 420 visitor->trace(m_allRules);
430 #endif 421 #endif
431 } 422 }
432 423
433 #ifndef NDEBUG 424 #ifndef NDEBUG
434 void RuleSet::show() const { 425 void RuleSet::show() const {
435 for (const auto& rule : m_allRules) 426 for (const auto& rule : m_allRules)
436 rule.selector().show(); 427 rule.selector().show();
437 } 428 }
438 #endif 429 #endif
439 430
440 } // namespace blink 431 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/css/RuleSet.h ('k') | third_party/WebKit/Source/core/css/resolver/ScopedStyleResolver.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698