OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) | 3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) |
4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) | 4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) |
5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc.
All rights reserved. | 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc.
All rights reserved. |
6 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 6 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
7 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> | 7 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> |
8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) | 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) |
9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. | 9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. |
10 * Copyright (C) Research In Motion Limited 2011. All rights reserved. | 10 * Copyright (C) Research In Motion Limited 2011. All rights reserved. |
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
212 newProperties.whitelistType = propertyWhitelistType; | 212 newProperties.whitelistType = propertyWhitelistType; |
213 matchedRules.append(rule); | 213 matchedRules.append(rule); |
214 } | 214 } |
215 | 215 |
216 StyleResolver::StyleResolver(Document* document, bool matchAuthorAndUserStyles) | 216 StyleResolver::StyleResolver(Document* document, bool matchAuthorAndUserStyles) |
217 : m_matchedPropertiesCacheAdditionsSinceLastSweep(0) | 217 : m_matchedPropertiesCacheAdditionsSinceLastSweep(0) |
218 , m_matchedPropertiesCacheSweepTimer(this, &StyleResolver::sweepMatchedPrope
rtiesCache) | 218 , m_matchedPropertiesCacheSweepTimer(this, &StyleResolver::sweepMatchedPrope
rtiesCache) |
219 , m_document(document) | 219 , m_document(document) |
220 , m_matchAuthorAndUserStyles(matchAuthorAndUserStyles) | 220 , m_matchAuthorAndUserStyles(matchAuthorAndUserStyles) |
221 , m_fontSelector(CSSFontSelector::create(document)) | 221 , m_fontSelector(CSSFontSelector::create(document)) |
222 #if ENABLE(CSS_DEVICE_ADAPTATION) | |
223 , m_viewportStyleResolver(ViewportStyleResolver::create(document)) | 222 , m_viewportStyleResolver(ViewportStyleResolver::create(document)) |
224 #endif | |
225 , m_styleBuilder(DeprecatedStyleBuilder::sharedStyleBuilder()) | 223 , m_styleBuilder(DeprecatedStyleBuilder::sharedStyleBuilder()) |
226 , m_styleMap(this) | 224 , m_styleMap(this) |
227 { | 225 { |
228 Element* root = document->documentElement(); | 226 Element* root = document->documentElement(); |
229 | 227 |
230 CSSDefaultStyleSheets::initDefaultStyle(root); | 228 CSSDefaultStyleSheets::initDefaultStyle(root); |
231 | 229 |
232 // construct document root element default style. this is needed | 230 // construct document root element default style. this is needed |
233 // to evaluate media queries that contain relative constraints, like "screen
and (max-width: 10em)" | 231 // to evaluate media queries that contain relative constraints, like "screen
and (max-width: 10em)" |
234 // This is here instead of constructor, because when constructor is run, | 232 // This is here instead of constructor, because when constructor is run, |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
287 lastUpdatedResolver = resolver; | 285 lastUpdatedResolver = resolver; |
288 } | 286 } |
289 | 287 |
290 if (lastUpdatedResolver) | 288 if (lastUpdatedResolver) |
291 lastUpdatedResolver->postAddRulesFromSheet(); | 289 lastUpdatedResolver->postAddRulesFromSheet(); |
292 collectFeatures(); | 290 collectFeatures(); |
293 | 291 |
294 if (document()->renderer() && document()->renderer()->style()) | 292 if (document()->renderer() && document()->renderer()->style()) |
295 document()->renderer()->style()->font().update(fontSelector()); | 293 document()->renderer()->style()->font().update(fontSelector()); |
296 | 294 |
297 #if ENABLE(CSS_DEVICE_ADAPTATION) | 295 if (RuntimeEnabledFeatures::cssViewportEnabled()) |
298 viewportStyleResolver()->resolve(); | 296 viewportStyleResolver()->resolve(); |
299 #endif | |
300 } | 297 } |
301 | 298 |
302 void StyleResolver::resetAuthorStyle() | 299 void StyleResolver::resetAuthorStyle() |
303 { | 300 { |
304 m_styleTree.clear(); | 301 m_styleTree.clear(); |
305 } | 302 } |
306 | 303 |
307 static PassOwnPtr<RuleSet> makeRuleSet(const Vector<RuleFeature>& rules) | 304 static PassOwnPtr<RuleSet> makeRuleSet(const Vector<RuleFeature>& rules) |
308 { | 305 { |
309 size_t size = rules.size(); | 306 size_t size = rules.size(); |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
368 // This is a simplified style setting function for keyframe styles | 365 // This is a simplified style setting function for keyframe styles |
369 void StyleResolver::addKeyframeStyle(PassRefPtr<StyleRuleKeyframes> rule) | 366 void StyleResolver::addKeyframeStyle(PassRefPtr<StyleRuleKeyframes> rule) |
370 { | 367 { |
371 AtomicString s(rule->name()); | 368 AtomicString s(rule->name()); |
372 m_keyframesRuleMap.set(s.impl(), rule); | 369 m_keyframesRuleMap.set(s.impl(), rule); |
373 } | 370 } |
374 | 371 |
375 StyleResolver::~StyleResolver() | 372 StyleResolver::~StyleResolver() |
376 { | 373 { |
377 m_fontSelector->clearDocument(); | 374 m_fontSelector->clearDocument(); |
378 | |
379 #if ENABLE(CSS_DEVICE_ADAPTATION) | |
380 m_viewportStyleResolver->clearDocument(); | 375 m_viewportStyleResolver->clearDocument(); |
381 #endif | |
382 } | 376 } |
383 | 377 |
384 void StyleResolver::sweepMatchedPropertiesCache(Timer<StyleResolver>*) | 378 void StyleResolver::sweepMatchedPropertiesCache(Timer<StyleResolver>*) |
385 { | 379 { |
386 // Look for cache entries containing a style declaration with a single ref a
nd remove them. | 380 // Look for cache entries containing a style declaration with a single ref a
nd remove them. |
387 // This may happen when an element attribute mutation causes it to generate
a new inlineStyle() | 381 // This may happen when an element attribute mutation causes it to generate
a new inlineStyle() |
388 // or presentationAttributeStyle(), potentially leaving this cache with the
last ref on the old one. | 382 // or presentationAttributeStyle(), potentially leaving this cache with the
last ref on the old one. |
389 Vector<unsigned, 16> toRemove; | 383 Vector<unsigned, 16> toRemove; |
390 MatchedPropertiesCache::iterator it = m_matchedPropertiesCache.begin(); | 384 MatchedPropertiesCache::iterator it = m_matchedPropertiesCache.begin(); |
391 MatchedPropertiesCache::iterator end = m_matchedPropertiesCache.end(); | 385 MatchedPropertiesCache::iterator end = m_matchedPropertiesCache.end(); |
(...skipping 2923 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3315 case CSSPropertyWebkitShapeInside: | 3309 case CSSPropertyWebkitShapeInside: |
3316 case CSSPropertyWebkitShapeOutside: | 3310 case CSSPropertyWebkitShapeOutside: |
3317 case CSSPropertyWhiteSpace: | 3311 case CSSPropertyWhiteSpace: |
3318 case CSSPropertyWidows: | 3312 case CSSPropertyWidows: |
3319 case CSSPropertyWidth: | 3313 case CSSPropertyWidth: |
3320 case CSSPropertyWordBreak: | 3314 case CSSPropertyWordBreak: |
3321 case CSSPropertyWordSpacing: | 3315 case CSSPropertyWordSpacing: |
3322 case CSSPropertyWordWrap: | 3316 case CSSPropertyWordWrap: |
3323 case CSSPropertyZIndex: | 3317 case CSSPropertyZIndex: |
3324 case CSSPropertyZoom: | 3318 case CSSPropertyZoom: |
3325 #if ENABLE(CSS_DEVICE_ADAPTATION) | |
3326 case CSSPropertyMaxZoom: | 3319 case CSSPropertyMaxZoom: |
3327 case CSSPropertyMinZoom: | 3320 case CSSPropertyMinZoom: |
3328 case CSSPropertyOrientation: | 3321 case CSSPropertyOrientation: |
3329 case CSSPropertyUserZoom: | 3322 case CSSPropertyUserZoom: |
3330 #endif | |
3331 ASSERT_NOT_REACHED(); | 3323 ASSERT_NOT_REACHED(); |
3332 return; | 3324 return; |
3333 default: | 3325 default: |
3334 // Try the SVG properties | 3326 // Try the SVG properties |
3335 applySVGProperty(id, value); | 3327 applySVGProperty(id, value); |
3336 return; | 3328 return; |
3337 } | 3329 } |
3338 } | 3330 } |
3339 | 3331 |
3340 PassRefPtr<StyleImage> StyleResolver::styleImage(CSSPropertyID property, CSSValu
e* value) | 3332 PassRefPtr<StyleImage> StyleResolver::styleImage(CSSPropertyID property, CSSValu
e* value) |
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3739 info.addMember(m_state, "state"); | 3731 info.addMember(m_state, "state"); |
3740 | 3732 |
3741 // FIXME: move this to a place where it would be called only once? | 3733 // FIXME: move this to a place where it would be called only once? |
3742 info.addMember(CSSDefaultStyleSheets::defaultStyle, "defaultStyle"); | 3734 info.addMember(CSSDefaultStyleSheets::defaultStyle, "defaultStyle"); |
3743 info.addMember(CSSDefaultStyleSheets::defaultQuirksStyle, "defaultQuirksStyl
e"); | 3735 info.addMember(CSSDefaultStyleSheets::defaultQuirksStyle, "defaultQuirksStyl
e"); |
3744 info.addMember(CSSDefaultStyleSheets::defaultPrintStyle, "defaultPrintStyle"
); | 3736 info.addMember(CSSDefaultStyleSheets::defaultPrintStyle, "defaultPrintStyle"
); |
3745 info.addMember(CSSDefaultStyleSheets::defaultViewSourceStyle, "defaultViewSo
urceStyle"); | 3737 info.addMember(CSSDefaultStyleSheets::defaultViewSourceStyle, "defaultViewSo
urceStyle"); |
3746 } | 3738 } |
3747 | 3739 |
3748 } // namespace WebCore | 3740 } // namespace WebCore |
OLD | NEW |