Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
| 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
| 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012 Apple Inc. All r ights reserved. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012 Apple Inc. All r ights reserved. |
| 7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) | 7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) |
| 8 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) | 8 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) |
| 9 * Copyright (C) 2013 Google Inc. All rights reserved. | 9 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 10 * | 10 * |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 23 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | 23 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
| 24 * Boston, MA 02110-1301, USA. | 24 * Boston, MA 02110-1301, USA. |
| 25 */ | 25 */ |
| 26 | 26 |
| 27 #include "sky/engine/config.h" | 27 #include "sky/engine/config.h" |
| 28 #include "sky/engine/core/dom/DocumentStyleSheetCollection.h" | 28 #include "sky/engine/core/dom/DocumentStyleSheetCollection.h" |
| 29 | 29 |
| 30 #include "gen/sky/platform/RuntimeEnabledFeatures.h" | 30 #include "gen/sky/platform/RuntimeEnabledFeatures.h" |
| 31 #include "sky/engine/core/css/resolver/StyleResolver.h" | 31 #include "sky/engine/core/css/resolver/StyleResolver.h" |
| 32 #include "sky/engine/core/dom/Document.h" | 32 #include "sky/engine/core/dom/Document.h" |
| 33 #include "sky/engine/core/dom/DocumentStyleSheetCollector.h" | |
| 34 #include "sky/engine/core/dom/StyleEngine.h" | 33 #include "sky/engine/core/dom/StyleEngine.h" |
| 35 #include "sky/engine/core/dom/StyleSheetCandidate.h" | 34 #include "sky/engine/core/html/HTMLStyleElement.h" |
| 36 | 35 |
| 37 namespace blink { | 36 namespace blink { |
| 38 | 37 |
| 39 DocumentStyleSheetCollection::DocumentStyleSheetCollection(TreeScope& treeScope) | 38 DocumentStyleSheetCollection::DocumentStyleSheetCollection(TreeScope& treeScope) |
| 40 : TreeScopeStyleSheetCollection(treeScope) | 39 : TreeScopeStyleSheetCollection(treeScope) |
| 41 { | 40 { |
| 42 ASSERT(treeScope.rootNode() == treeScope.rootNode().document()); | 41 ASSERT(treeScope.rootNode() == treeScope.rootNode().document()); |
| 43 } | 42 } |
| 44 | 43 |
| 45 void DocumentStyleSheetCollection::collectStyleSheetsFromCandidates(StyleEngine* engine, DocumentStyleSheetCollector& collector) | 44 void DocumentStyleSheetCollection::collectStyleSheetsFromCandidates(StyleEngine* engine, StyleSheetCollection& collection) |
| 46 { | 45 { |
| 47 DocumentOrderedList::iterator begin = m_styleSheetCandidateNodes.begin(); | 46 DocumentOrderedList::iterator begin = m_styleSheetCandidateNodes.begin(); |
| 48 DocumentOrderedList::iterator end = m_styleSheetCandidateNodes.end(); | 47 DocumentOrderedList::iterator end = m_styleSheetCandidateNodes.end(); |
| 49 for (DocumentOrderedList::iterator it = begin; it != end; ++it) { | 48 for (DocumentOrderedList::iterator it = begin; it != end; ++it) { |
| 50 Node* n = *it; | 49 Node* node = *it; |
| 51 StyleSheetCandidate candidate(*n); | 50 if (!isHTMLStyleElement(*node)) |
|
ojan
2014/12/12 23:38:39
Nit: This could be an assert.
| |
| 52 | |
| 53 CSSStyleSheet* sheet = candidate.sheet(); | |
| 54 if (!sheet) | |
| 55 continue; | 51 continue; |
| 56 | 52 if (CSSStyleSheet* sheet = toHTMLStyleElement(node)->sheet()) |
| 57 collector.appendSheetForList(sheet); | 53 collection.appendActiveStyleSheet(sheet); |
| 58 if (candidate.canBeActivated()) | |
| 59 collector.appendActiveStyleSheet(sheet); | |
| 60 } | 54 } |
| 61 } | 55 } |
| 62 | 56 |
| 63 void DocumentStyleSheetCollection::collectStyleSheets(StyleEngine* engine, Docum entStyleSheetCollector& collector) | 57 void DocumentStyleSheetCollection::collectStyleSheets(StyleEngine* engine, Style SheetCollection& collection) |
| 64 { | 58 { |
| 65 ASSERT(document().styleEngine() == engine); | 59 ASSERT(document().styleEngine() == engine); |
| 66 collector.appendActiveStyleSheets(engine->documentAuthorStyleSheets()); | 60 collection.appendActiveStyleSheets(engine->documentAuthorStyleSheets()); |
| 67 collectStyleSheetsFromCandidates(engine, collector); | 61 collectStyleSheetsFromCandidates(engine, collection); |
| 68 } | 62 } |
| 69 | 63 |
| 70 void DocumentStyleSheetCollection::updateActiveStyleSheets(StyleEngine* engine) | 64 void DocumentStyleSheetCollection::updateActiveStyleSheets(StyleEngine* engine) |
| 71 { | 65 { |
| 72 StyleSheetCollection collection; | 66 StyleSheetCollection collection; |
| 73 ActiveDocumentStyleSheetCollector collector(collection); | 67 collectStyleSheets(engine, collection); |
| 74 collectStyleSheets(engine, collector); | |
| 75 | 68 |
| 76 engine->clearMasterResolver(); | 69 engine->clearMasterResolver(); |
| 77 // FIMXE: The following depends on whether StyleRuleFontFace was modified or not. | 70 // FIMXE: The following depends on whether StyleRuleFontFace was modified or not. |
| 78 // No need to always-clear font cache. | 71 // No need to always-clear font cache. |
| 79 engine->clearFontCache(); | 72 engine->clearFontCache(); |
| 80 | 73 |
| 81 // TODO(esprehn): This is terrible and not needed in Sky, we should mark | 74 // TODO(esprehn): This is terrible and not needed in Sky, we should mark |
| 82 // specific tree scopes dirty instead. | 75 // specific tree scopes dirty instead. |
| 83 document().setNeedsStyleRecalc(SubtreeStyleChange); | 76 document().setNeedsStyleRecalc(SubtreeStyleChange); |
| 84 | 77 |
| 85 collection.swap(*this); | 78 collection.swap(*this); |
| 86 | 79 |
| 87 updateUsesRemUnits(); | 80 updateUsesRemUnits(); |
| 88 } | 81 } |
| 89 | 82 |
| 90 } | 83 } |
| OLD | NEW |