Example #1
0
void CSSStyleSheet::addSubresourceURLStrings(HashSet<String>& urls, const String& base) const
{        
    RefPtr<CSSRuleList> ruleList = const_cast<CSSStyleSheet*>(this)->cssRules();
    
    // Add the URLs for each child import rule, and recurse for the stylesheet belonging to each of those rules.
    for (unsigned i = 0; i < ruleList->length(); ++i) {
        CSSRule* rule = ruleList->item(i);
        if (rule->type() != CSSRule::IMPORT_RULE)
            continue;

        CSSImportRule* importRule = static_cast<CSSImportRule*>(rule);
        CSSStyleSheet* ruleSheet = importRule->styleSheet();
        if (!ruleSheet)
            continue;

        KURL fullURL(KURL(base), importRule->href());
        urls.add(fullURL.string());
        ruleSheet->addSubresourceURLStrings(urls, fullURL.string());
    }
}