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, 2011, 2012 Apple Inc. All r
ights reserved. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 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) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. | 8 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. |
9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) | 9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) |
10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved. | 10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved. |
(...skipping 23 matching lines...) Expand all Loading... |
34 #include "core/css/StyleInvalidationAnalysis.h" | 34 #include "core/css/StyleInvalidationAnalysis.h" |
35 #include "core/css/StyleSheetContents.h" | 35 #include "core/css/StyleSheetContents.h" |
36 #include "core/css/resolver/StyleResolver.h" | 36 #include "core/css/resolver/StyleResolver.h" |
37 #include "core/dom/Document.h" | 37 #include "core/dom/Document.h" |
38 #include "core/dom/DocumentStyleSheetCollection.h" | 38 #include "core/dom/DocumentStyleSheetCollection.h" |
39 #include "core/dom/Element.h" | 39 #include "core/dom/Element.h" |
40 #include "core/dom/ProcessingInstruction.h" | 40 #include "core/dom/ProcessingInstruction.h" |
41 #include "core/dom/WebCoreMemoryInstrumentation.h" | 41 #include "core/dom/WebCoreMemoryInstrumentation.h" |
42 #include "core/html/HTMLIFrameElement.h" | 42 #include "core/html/HTMLIFrameElement.h" |
43 #include "core/html/HTMLLinkElement.h" | 43 #include "core/html/HTMLLinkElement.h" |
| 44 #include "core/html/HTMLMetaElement.h" |
44 #include "core/html/HTMLStyleElement.h" | 45 #include "core/html/HTMLStyleElement.h" |
45 #include "core/page/Page.h" | 46 #include "core/page/Page.h" |
46 #include "core/page/PageGroup.h" | 47 #include "core/page/PageGroup.h" |
47 #include "core/page/Settings.h" | 48 #include "core/page/Settings.h" |
48 #include "core/page/UserContentURLPattern.h" | 49 #include "core/page/UserContentURLPattern.h" |
49 #include "core/svg/SVGStyleElement.h" | 50 #include "core/svg/SVGStyleElement.h" |
50 #include "wtf/MemoryInstrumentationListHashSet.h" | 51 #include "wtf/MemoryInstrumentationListHashSet.h" |
51 #include "wtf/MemoryInstrumentationVector.h" | 52 #include "wtf/MemoryInstrumentationVector.h" |
52 | 53 |
53 namespace WebCore { | 54 namespace WebCore { |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 // Don't apply XSL transforms to already transformed documents -- <r
dar://problem/4132806> | 101 // Don't apply XSL transforms to already transformed documents -- <r
dar://problem/4132806> |
101 if (pi->isXSL() && !document()->transformSourceDocument()) { | 102 if (pi->isXSL() && !document()->transformSourceDocument()) { |
102 // Don't apply XSL transforms until loading is finished. | 103 // Don't apply XSL transforms until loading is finished. |
103 if (!document()->parsing()) | 104 if (!document()->parsing()) |
104 document()->applyXSLTransform(pi); | 105 document()->applyXSLTransform(pi); |
105 return; | 106 return; |
106 } | 107 } |
107 sheet = pi->sheet(); | 108 sheet = pi->sheet(); |
108 if (sheet && !sheet->disabled() && sheet->isCSSStyleSheet()) | 109 if (sheet && !sheet->disabled() && sheet->isCSSStyleSheet()) |
109 activeSheet = static_cast<CSSStyleSheet*>(sheet); | 110 activeSheet = static_cast<CSSStyleSheet*>(sheet); |
110 } else if ((n->isHTMLElement() && (n->hasTagName(linkTag) || n->hasTagNa
me(styleTag))) || (n->isSVGElement() && n->hasTagName(SVGNames::styleTag))) { | 111 } else if ((n->isHTMLElement() && (n->hasTagName(linkTag) || n->hasTagNa
me(styleTag) || n->hasTagName(metaTag))) || (n->isSVGElement() && n->hasTagName(
SVGNames::styleTag))) { |
111 Element* e = toElement(n); | 112 Element* e = toElement(n); |
112 AtomicString title = e->getAttribute(titleAttr); | 113 AtomicString title = e->getAttribute(titleAttr); |
113 bool enabledViaScript = false; | 114 bool enabledViaScript = false; |
114 if (e->hasLocalName(linkTag)) { | 115 if (e->hasLocalName(linkTag)) { |
115 // <LINK> element | 116 // <LINK> element |
116 HTMLLinkElement* linkElement = toHTMLLinkElement(n); | 117 HTMLLinkElement* linkElement = toHTMLLinkElement(n); |
117 enabledViaScript = linkElement->isEnabledViaScript(); | 118 enabledViaScript = linkElement->isEnabledViaScript(); |
118 if (!linkElement->isDisabled() && linkElement->styleSheetIsLoadi
ng()) { | 119 if (!linkElement->isDisabled() && linkElement->styleSheetIsLoadi
ng()) { |
119 // it is loading but we should still decide which style shee
t set to use | 120 // it is loading but we should still decide which style shee
t set to use |
120 if (!enabledViaScript && !title.isEmpty() && collections->pr
eferredStylesheetSetName().isEmpty()) { | 121 if (!enabledViaScript && !title.isEmpty() && collections->pr
eferredStylesheetSetName().isEmpty()) { |
121 const AtomicString& rel = e->getAttribute(relAttr); | 122 const AtomicString& rel = e->getAttribute(relAttr); |
122 if (!rel.contains("alternate")) { | 123 if (!rel.contains("alternate")) { |
123 collections->setPreferredStylesheetSetName(title); | 124 collections->setPreferredStylesheetSetName(title); |
124 collections->setSelectedStylesheetSetName(title); | 125 collections->setSelectedStylesheetSetName(title); |
125 } | 126 } |
126 } | 127 } |
127 | 128 |
128 continue; | 129 continue; |
129 } | 130 } |
130 sheet = linkElement->sheet(); | 131 sheet = linkElement->sheet(); |
131 if (!sheet) | 132 if (!sheet) |
132 title = nullAtom; | 133 title = nullAtom; |
133 } else if (n->isSVGElement() && n->hasTagName(SVGNames::styleTag)) { | 134 } else if (n->isSVGElement() && n->hasTagName(SVGNames::styleTag)) { |
134 sheet = static_cast<SVGStyleElement*>(n)->sheet(); | 135 sheet = static_cast<SVGStyleElement*>(n)->sheet(); |
| 136 } else if (n->hasTagName(styleTag)) { |
| 137 sheet = static_cast<HTMLStyleElement*>(n)->sheet(); |
135 } else { | 138 } else { |
136 sheet = static_cast<HTMLStyleElement*>(n)->sheet(); | 139 sheet = static_cast<HTMLMetaElement*>(n)->sheet(); |
137 } | 140 } |
138 | 141 |
139 if (sheet && !sheet->disabled() && sheet->isCSSStyleSheet()) | 142 if (sheet && !sheet->disabled() && sheet->isCSSStyleSheet()) |
140 activeSheet = static_cast<CSSStyleSheet*>(sheet); | 143 activeSheet = static_cast<CSSStyleSheet*>(sheet); |
141 | 144 |
142 // Check to see if this sheet belongs to a styleset | 145 // Check to see if this sheet belongs to a styleset |
143 // (thus making it PREFERRED or ALTERNATE rather than | 146 // (thus making it PREFERRED or ALTERNATE rather than |
144 // PERSISTENT). | 147 // PERSISTENT). |
145 AtomicString rel = e->getAttribute(relAttr); | 148 AtomicString rel = e->getAttribute(relAttr); |
146 if (!enabledViaScript && sheet && !title.isEmpty()) { | 149 if (!enabledViaScript && sheet && !title.isEmpty()) { |
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
284 void StyleSheetCollection::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo)
const | 287 void StyleSheetCollection::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo)
const |
285 { | 288 { |
286 MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM); | 289 MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM); |
287 info.addMember(m_activeAuthorStyleSheets, "activeAuthorStyleSheets"); | 290 info.addMember(m_activeAuthorStyleSheets, "activeAuthorStyleSheets"); |
288 info.addMember(m_styleSheetsForStyleSheetList, "styleSheetsForStyleSheetList
"); | 291 info.addMember(m_styleSheetsForStyleSheetList, "styleSheetsForStyleSheetList
"); |
289 info.addMember(m_styleSheetCandidateNodes, "styleSheetCandidateNodes"); | 292 info.addMember(m_styleSheetCandidateNodes, "styleSheetCandidateNodes"); |
290 info.addMember(m_treeScope, "treeScope"); | 293 info.addMember(m_treeScope, "treeScope"); |
291 } | 294 } |
292 | 295 |
293 } | 296 } |
OLD | NEW |