void ScopedStyleResolver::appendCSSStyleSheet(CSSStyleSheet& cssSheet, const MediaQueryEvaluator& medium)
{
    unsigned index = m_authorStyleSheets.size();
    m_authorStyleSheets.append(&cssSheet);
    StyleSheetContents* sheet = cssSheet.contents();
    AddRuleFlags addRuleFlags = treeScope().document().securityOrigin()->canRequest(sheet->baseURL()) ? RuleHasDocumentSecurityOrigin : RuleHasNoSpecialState;
    const RuleSet& ruleSet = sheet->ensureRuleSet(medium, addRuleFlags);

    addKeyframeRules(ruleSet);
    addFontFaceRules(ruleSet);
    addTreeBoundaryCrossingRules(ruleSet, &cssSheet, index);
    treeScope().document().styleResolver()->addMediaQueryResults(ruleSet.viewportDependentMediaQueryResults());
}
void ScopedStyleResolver::appendActiveStyleSheets(
    unsigned index,
    const ActiveStyleSheetVector& activeSheets) {
  for (auto activeIterator = activeSheets.begin() + index;
       activeIterator != activeSheets.end(); activeIterator++) {
    CSSStyleSheet* sheet = activeIterator->first;
    if (!activeIterator->second)
      continue;
    const RuleSet& ruleSet = *activeIterator->second;
    m_authorStyleSheets.append(sheet);
    addKeyframeRules(ruleSet);
    addFontFaceRules(ruleSet);
    addTreeBoundaryCrossingRules(ruleSet, sheet, index++);
  }
}