void DocumentStyleSheetCollection::collectStyleSheets(StyleEngine* engine, DocumentStyleSheetCollector& collector) { ASSERT(document().styleEngine() == engine); collector.appendActiveStyleSheets(engine->injectedAuthorStyleSheets()); collector.appendActiveStyleSheets(engine->documentAuthorStyleSheets()); collectStyleSheetsFromCandidates(engine, collector); }
void DocumentStyleSheetCollection::collectStyleSheetsFromCandidates(StyleEngine* engine, DocumentStyleSheetCollector& collector) { DocumentOrderedList::iterator begin = m_styleSheetCandidateNodes.begin(); DocumentOrderedList::iterator end = m_styleSheetCandidateNodes.end(); for (DocumentOrderedList::iterator it = begin; it != end; ++it) { Node* n = *it; StyleSheetCandidate candidate(*n); StyleSheet* sheet = candidate.sheet(); if (!sheet) continue; collector.appendSheetForList(sheet); if (candidate.canBeActivated()) collector.appendActiveStyleSheet(toCSSStyleSheet(sheet)); } }
void DocumentStyleSheetCollection::collectStyleSheetsFromCandidates(StyleEngine* engine, DocumentStyleSheetCollector& collector) { DocumentOrderedList::iterator begin = m_styleSheetCandidateNodes.begin(); DocumentOrderedList::iterator end = m_styleSheetCandidateNodes.end(); for (DocumentOrderedList::iterator it = begin; it != end; ++it) { Node* n = *it; StyleSheetCandidate candidate(*n); ASSERT(!candidate.isXSL()); if (candidate.isImport()) { Document* document = candidate.importedDocument(); if (!document) continue; if (collector.hasVisited(document)) continue; collector.willVisit(document); document->styleEngine()->updateStyleSheetsInImport(collector); continue; } if (candidate.isEnabledAndLoading()) { // it is loading but we should still decide which style sheet set to use if (candidate.hasPreferrableName(engine->preferredStylesheetSetName())) engine->selectStylesheetSetName(candidate.title()); continue; } StyleSheet* sheet = candidate.sheet(); if (!sheet) continue; if (candidate.hasPreferrableName(engine->preferredStylesheetSetName())) engine->selectStylesheetSetName(candidate.title()); collector.appendSheetForList(sheet); if (candidate.canBeActivated(engine->preferredStylesheetSetName())) collector.appendActiveStyleSheet(toCSSStyleSheet(sheet)); } }