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 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
335 removePropertiesInSet(shorthand.properties(), shorthand.length()); | 335 removePropertiesInSet(shorthand.properties(), shorthand.length()); |
336 | 336 |
337 RefPtrWillBeRawPtr<CSSValue> value = prpValue; | 337 RefPtrWillBeRawPtr<CSSValue> value = prpValue; |
338 for (unsigned i = 0; i < shorthand.length(); ++i) | 338 for (unsigned i = 0; i < shorthand.length(); ++i) |
339 m_propertyVector.append(CSSProperty(shorthand.properties()[i], value, im
portant)); | 339 m_propertyVector.append(CSSProperty(shorthand.properties()[i], value, im
portant)); |
340 } | 340 } |
341 | 341 |
342 bool MutableStylePropertySet::setProperty(const CSSProperty& property, CSSProper
ty* slot) | 342 bool MutableStylePropertySet::setProperty(const CSSProperty& property, CSSProper
ty* slot) |
343 { | 343 { |
344 if (!removeShorthandProperty(property.id())) { | 344 if (!removeShorthandProperty(property.id())) { |
345 CSSProperty* toReplace = slot ? slot : findCSSPropertyWithID(property.id
()); | 345 const AtomicString& name = (property.id() == CSSPropertyVariable) ? |
| 346 toCSSCustomPropertyDeclaration(property.value())->name() : nullAtom; |
| 347 CSSProperty* toReplace = slot ? slot : findCSSPropertyWithID(property.id
(), name); |
346 if (toReplace && *toReplace == property) | 348 if (toReplace && *toReplace == property) |
347 return false; | 349 return false; |
348 if (toReplace) { | 350 if (toReplace) { |
349 *toReplace = property; | 351 *toReplace = property; |
350 return true; | 352 return true; |
351 } | 353 } |
352 } | 354 } |
353 m_propertyVector.append(property); | 355 m_propertyVector.append(property); |
354 return true; | 356 return true; |
355 } | 357 } |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
448 // Modify m_propertyVector in-place since this method is performance-sen
sitive. | 450 // Modify m_propertyVector in-place since this method is performance-sen
sitive. |
449 properties[newIndex++] = properties[oldIndex]; | 451 properties[newIndex++] = properties[oldIndex]; |
450 } | 452 } |
451 if (newIndex != oldSize) { | 453 if (newIndex != oldSize) { |
452 m_propertyVector.shrink(newIndex); | 454 m_propertyVector.shrink(newIndex); |
453 return true; | 455 return true; |
454 } | 456 } |
455 return false; | 457 return false; |
456 } | 458 } |
457 | 459 |
458 CSSProperty* MutableStylePropertySet::findCSSPropertyWithID(CSSPropertyID proper
tyID) | 460 CSSProperty* MutableStylePropertySet::findCSSPropertyWithID(CSSPropertyID proper
tyID, const AtomicString& customPropertyName) |
459 { | 461 { |
460 // TODO(leviw): Calling this with a custom property should probably assert,
or this | 462 int foundPropertyIndex = -1; |
461 // method should alternatively take a string used for custom properties and
check it | 463 if (propertyID == CSSPropertyVariable && !customPropertyName.isNull()) { |
462 // in that case. | 464 // TODO(shanestephens): fix call sites so we always have a customPropert
yName |
463 if (propertyID == CSSPropertyVariable) | 465 // here. |
464 return nullptr; | 466 foundPropertyIndex = findPropertyIndex(customPropertyName); |
465 | 467 } else { |
466 int foundPropertyIndex = findPropertyIndex(propertyID); | 468 ASSERT(customPropertyName.isNull()); |
| 469 foundPropertyIndex = findPropertyIndex(propertyID); |
| 470 } |
467 if (foundPropertyIndex == -1) | 471 if (foundPropertyIndex == -1) |
468 return nullptr; | 472 return nullptr; |
469 return &m_propertyVector.at(foundPropertyIndex); | 473 return &m_propertyVector.at(foundPropertyIndex); |
470 } | 474 } |
471 | 475 |
472 bool StylePropertySet::propertyMatches(CSSPropertyID propertyID, const CSSValue*
propertyValue) const | 476 bool StylePropertySet::propertyMatches(CSSPropertyID propertyID, const CSSValue*
propertyValue) const |
473 { | 477 { |
474 int foundPropertyIndex = findPropertyIndex(propertyID); | 478 int foundPropertyIndex = findPropertyIndex(propertyID); |
475 if (foundPropertyIndex == -1) | 479 if (foundPropertyIndex == -1) |
476 return false; | 480 return false; |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
584 { | 588 { |
585 return adoptRefWillBeNoop(new MutableStylePropertySet(cssParserMode)); | 589 return adoptRefWillBeNoop(new MutableStylePropertySet(cssParserMode)); |
586 } | 590 } |
587 | 591 |
588 PassRefPtrWillBeRawPtr<MutableStylePropertySet> MutableStylePropertySet::create(
const CSSProperty* properties, unsigned count) | 592 PassRefPtrWillBeRawPtr<MutableStylePropertySet> MutableStylePropertySet::create(
const CSSProperty* properties, unsigned count) |
589 { | 593 { |
590 return adoptRefWillBeNoop(new MutableStylePropertySet(properties, count)); | 594 return adoptRefWillBeNoop(new MutableStylePropertySet(properties, count)); |
591 } | 595 } |
592 | 596 |
593 } // namespace blink | 597 } // namespace blink |
OLD | NEW |