OLD | NEW |
1 /* | 1 /* |
2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) | 2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) |
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013 Apple Inc.
All rights reserved. | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013 Apple Inc.
All rights reserved. |
4 * Copyright (C) 2011 Research In Motion Limited. All rights reserved. | 4 * Copyright (C) 2011 Research In Motion Limited. All rights reserved. |
5 * Copyright (C) 2013 Intel Corporation. All rights reserved. | 5 * Copyright (C) 2013 Intel Corporation. All rights reserved. |
6 * | 6 * |
7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
312 CSSParserContext context(cssParserMode(), UseCounter::getFrom(contextStyleSh
eet)); | 312 CSSParserContext context(cssParserMode(), UseCounter::getFrom(contextStyleSh
eet)); |
313 if (contextStyleSheet) { | 313 if (contextStyleSheet) { |
314 context = contextStyleSheet->parserContext(); | 314 context = contextStyleSheet->parserContext(); |
315 context.setMode(cssParserMode()); | 315 context.setMode(cssParserMode()); |
316 } | 316 } |
317 | 317 |
318 BisonCSSParser parser(context); | 318 BisonCSSParser parser(context); |
319 parser.parseDeclaration(this, styleDeclaration, 0, contextStyleSheet); | 319 parser.parseDeclaration(this, styleDeclaration, 0, contextStyleSheet); |
320 } | 320 } |
321 | 321 |
322 void MutableStylePropertySet::addParsedProperties(const WillBeHeapVector<CSSProp
erty, 256>& properties) | 322 void MutableStylePropertySet::addParsedProperties(const Vector<CSSProperty, 256>
& properties) |
323 { | 323 { |
324 m_propertyVector.reserveCapacity(m_propertyVector.size() + properties.size()
); | 324 m_propertyVector.reserveCapacity(m_propertyVector.size() + properties.size()
); |
325 for (unsigned i = 0; i < properties.size(); ++i) | 325 for (unsigned i = 0; i < properties.size(); ++i) |
326 addParsedProperty(properties[i]); | 326 addParsedProperty(properties[i]); |
327 } | 327 } |
328 | 328 |
329 void MutableStylePropertySet::addParsedProperty(const CSSProperty& property) | 329 void MutableStylePropertySet::addParsedProperty(const CSSProperty& property) |
330 { | 330 { |
331 // Only add properties that have no !important counterpart present | 331 // Only add properties that have no !important counterpart present |
332 if (!propertyIsImportant(property.id()) || property.isImportant()) | 332 if (!propertyIsImportant(property.id()) || property.isImportant()) |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
412 bool MutableStylePropertySet::removePropertiesInSet(const CSSPropertyID* set, un
signed length) | 412 bool MutableStylePropertySet::removePropertiesInSet(const CSSPropertyID* set, un
signed length) |
413 { | 413 { |
414 if (m_propertyVector.isEmpty()) | 414 if (m_propertyVector.isEmpty()) |
415 return false; | 415 return false; |
416 | 416 |
417 // FIXME: This is always used with static sets and in that case constructing
the hash repeatedly is pretty pointless. | 417 // FIXME: This is always used with static sets and in that case constructing
the hash repeatedly is pretty pointless. |
418 HashSet<CSSPropertyID> toRemove; | 418 HashSet<CSSPropertyID> toRemove; |
419 for (unsigned i = 0; i < length; ++i) | 419 for (unsigned i = 0; i < length; ++i) |
420 toRemove.add(set[i]); | 420 toRemove.add(set[i]); |
421 | 421 |
422 WillBeHeapVector<CSSProperty> newProperties; | 422 Vector<CSSProperty> newProperties; |
423 newProperties.reserveInitialCapacity(m_propertyVector.size()); | 423 newProperties.reserveInitialCapacity(m_propertyVector.size()); |
424 | 424 |
425 unsigned size = m_propertyVector.size(); | 425 unsigned size = m_propertyVector.size(); |
426 for (unsigned n = 0; n < size; ++n) { | 426 for (unsigned n = 0; n < size; ++n) { |
427 const CSSProperty& property = m_propertyVector.at(n); | 427 const CSSProperty& property = m_propertyVector.at(n); |
428 // Not quite sure if the isImportant test is needed but it matches the e
xisting behavior. | 428 // Not quite sure if the isImportant test is needed but it matches the e
xisting behavior. |
429 if (!property.isImportant()) { | 429 if (!property.isImportant()) { |
430 if (toRemove.contains(property.id())) | 430 if (toRemove.contains(property.id())) |
431 continue; | 431 continue; |
432 } | 432 } |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
482 removeProperty(propertiesToRemove[i]); | 482 removeProperty(propertiesToRemove[i]); |
483 } | 483 } |
484 | 484 |
485 PassRefPtr<MutableStylePropertySet> StylePropertySet::mutableCopy() const | 485 PassRefPtr<MutableStylePropertySet> StylePropertySet::mutableCopy() const |
486 { | 486 { |
487 return adoptRef(new MutableStylePropertySet(*this)); | 487 return adoptRef(new MutableStylePropertySet(*this)); |
488 } | 488 } |
489 | 489 |
490 PassRefPtr<MutableStylePropertySet> StylePropertySet::copyPropertiesInSet(const
Vector<CSSPropertyID>& properties) const | 490 PassRefPtr<MutableStylePropertySet> StylePropertySet::copyPropertiesInSet(const
Vector<CSSPropertyID>& properties) const |
491 { | 491 { |
492 WillBeHeapVector<CSSProperty, 256> list; | 492 Vector<CSSProperty, 256> list; |
493 list.reserveInitialCapacity(properties.size()); | 493 list.reserveInitialCapacity(properties.size()); |
494 for (unsigned i = 0; i < properties.size(); ++i) { | 494 for (unsigned i = 0; i < properties.size(); ++i) { |
495 RefPtrWillBeRawPtr<CSSValue> value = getPropertyCSSValue(properties[i]); | 495 RefPtrWillBeRawPtr<CSSValue> value = getPropertyCSSValue(properties[i]); |
496 if (value) | 496 if (value) |
497 list.append(CSSProperty(properties[i], value.release(), false)); | 497 list.append(CSSProperty(properties[i], value.release(), false)); |
498 } | 498 } |
499 return MutableStylePropertySet::create(list.data(), list.size()); | 499 return MutableStylePropertySet::create(list.data(), list.size()); |
500 } | 500 } |
501 | 501 |
502 CSSStyleDeclaration* MutableStylePropertySet::ensureCSSStyleDeclaration() | 502 CSSStyleDeclaration* MutableStylePropertySet::ensureCSSStyleDeclaration() |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
569 result.appendLiteral(": "); | 569 result.appendLiteral(": "); |
570 result.append(propertyValue()->cssText()); | 570 result.append(propertyValue()->cssText()); |
571 if (isImportant()) | 571 if (isImportant()) |
572 result.appendLiteral(" !important"); | 572 result.appendLiteral(" !important"); |
573 result.append(';'); | 573 result.append(';'); |
574 return result.toString(); | 574 return result.toString(); |
575 } | 575 } |
576 | 576 |
577 | 577 |
578 } // namespace WebCore | 578 } // namespace WebCore |
OLD | NEW |