[Webkit-unassigned] [Bug 76453] [CSSRegions]Fix region style code in CSSStyleSelector
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Tue Jan 17 08:26:47 PST 2012
https://bugs.webkit.org/show_bug.cgi?id=76453
Antti Koivisto <koivisto at iki.fi> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #122765|review?, commit-queue? |review-, commit-queue-
Flag| |
--- Comment #2 from Antti Koivisto <koivisto at iki.fi> 2012-01-17 08:26:47 PST ---
(From update of attachment 122765)
View in context: https://bugs.webkit.org/attachment.cgi?id=122765&action=review
Looks good. I would still like to see another patch due to some factoring and naming issues, and other nits.
> Source/WebCore/css/CSSStyleSelector.cpp:257
> + Vector<pair<CSSSelector*, RuleSet*> > m_regionSelectorsAndRuleSets;
I would prefer
struct SelectorRuleSetPair {
CSSSelector* selector;
OwnPtr<RuleSet> ruleSet;
};
instead of pair<>, the resulting code will read better (which is why I said "roughly" in the comment that where I told to use a pair :).
You should use use OwnPtr<RuleSet> so you don't need explicit deletion.
> Source/WebCore/css/CSSStyleSelector.cpp:636
> -void CSSStyleSelector::matchRules(RuleSet* rules, int& firstRuleIndex, int& lastRuleIndex, bool includeEmptyRules)
> +void CSSStyleSelector::collectRules(RuleSet* rules, int& firstRuleIndex, int& lastRuleIndex, bool includeEmptyRules)
collectRules() is somewhat vague.
How about collectMatchingRules()? Also rename matchRulesForList() to -> collectMatchingRulesForList().
> Source/WebCore/css/CSSStyleSelector.cpp:682
> + collectRules(rules, firstRuleIndex, lastRuleIndex, includeEmptyRules);
> +
> + if (m_regionForStyling) {
> + for (unsigned index = 0; index < rules->m_regionSelectorsAndRuleSets.size(); ++index) {
> + CSSSelector* regionSelector = rules->m_regionSelectorsAndRuleSets.at(index).first;
> + if (checkRegionSelector(regionSelector, static_cast<Element*>(m_regionForStyling->node()))) {
> + RuleSet* regionRules = rules->m_regionSelectorsAndRuleSets.at(index).second;
> + collectRules(regionRules, firstRuleIndex, lastRuleIndex, includeEmptyRules);
> + }
> + }
> + }
I think the loop should be factored into a separate function, collectMatchingRulesForRegion() or similar.
You should copy the size to variable before looping.
unsigned size = rules->m_regionSelectorsAndRuleSets.size();
Please use the usual 'i' instead of 'index' as the loop variable name.
> Source/WebCore/css/CSSStyleSelector.cpp:1758
> + for (unsigned index = 0; index < m_authorStyle->m_regionSelectorsAndRuleSets.size(); ++index) {
The same comment about index variable name and size in a local.
> Source/WebCore/css/CSSStyleSelector.cpp:1764
> + for (unsigned index = 0; index < m_userStyle->m_regionSelectorsAndRuleSets.size(); ++index) {
The same comment about index variable name and size in a local.
> Source/WebCore/css/CSSStyleSelector.cpp:2041
> +RuleSet::~RuleSet()
> +{
> + for (unsigned index = 0; index < m_regionSelectorsAndRuleSets.size(); ++index)
> + delete m_regionSelectorsAndRuleSets.at(index).second;
> +}
With OwnPtr this won't be needed.
> Source/WebCore/css/CSSStyleSelector.cpp:2098
> + for (unsigned index = 0; index < regionStylingRules->length(); ++index) {
The same comment about index variable name and size in a local.
> Source/WebCore/css/CSSStyleSelector.cpp:2248
> + bool styleDeclarationInsideRegionRule = false;
> + if (m_regionForStyling) {
> + CSSRule* parentRule = styleDeclaration->parentRule();
> + while (parentRule) {
> + if (parentRule->isRegionRule()) {
> + styleDeclarationInsideRegionRule = true;
> + break;
> + }
> + parentRule = parentRule->parentRule();
> + }
> + }
You should factor this into an inline function, isInRegionRule(CSSStyleDeclaration*) or something.
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list