OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004 Zack Rusin <zack@kde.org> | 2 * Copyright (C) 2004 Zack Rusin <zack@kde.org> |
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc.
All rights reserved. | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc.
All rights reserved. |
4 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 4 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> | 5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> |
6 * Copyright (C) 2011 Sencha, Inc. All rights reserved. | 6 * Copyright (C) 2011 Sencha, Inc. All rights reserved. |
7 * | 7 * |
8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
9 * modify it under the terms of the GNU Lesser General Public | 9 * modify it under the terms of the GNU Lesser General Public |
10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
(...skipping 14 matching lines...) Expand all Loading... |
25 #include "core/css/CSSComputedStyleDeclaration.h" | 25 #include "core/css/CSSComputedStyleDeclaration.h" |
26 | 26 |
27 #include "bindings/core/v8/ExceptionState.h" | 27 #include "bindings/core/v8/ExceptionState.h" |
28 #include "core/CSSPropertyNames.h" | 28 #include "core/CSSPropertyNames.h" |
29 #include "core/css/CSSPrimitiveValueMappings.h" | 29 #include "core/css/CSSPrimitiveValueMappings.h" |
30 #include "core/css/CSSPropertyMetadata.h" | 30 #include "core/css/CSSPropertyMetadata.h" |
31 #include "core/css/CSSSelector.h" | 31 #include "core/css/CSSSelector.h" |
32 #include "core/css/CSSValuePool.h" | 32 #include "core/css/CSSValuePool.h" |
33 #include "core/css/ComputedStyleCSSValueMapping.h" | 33 #include "core/css/ComputedStyleCSSValueMapping.h" |
34 #include "core/css/parser/CSSParser.h" | 34 #include "core/css/parser/CSSParser.h" |
| 35 #include "core/css/parser/CSSVariableParser.h" |
35 #include "core/css/resolver/StyleResolver.h" | 36 #include "core/css/resolver/StyleResolver.h" |
36 #include "core/dom/Document.h" | 37 #include "core/dom/Document.h" |
37 #include "core/dom/ExceptionCode.h" | 38 #include "core/dom/ExceptionCode.h" |
38 #include "core/dom/PseudoElement.h" | 39 #include "core/dom/PseudoElement.h" |
39 #include "core/layout/LayoutObject.h" | 40 #include "core/layout/LayoutObject.h" |
40 #include "core/style/ComputedStyle.h" | 41 #include "core/style/ComputedStyle.h" |
41 #include "wtf/text/StringBuilder.h" | 42 #include "wtf/text/StringBuilder.h" |
42 | 43 |
43 namespace blink { | 44 namespace blink { |
44 | 45 |
(...skipping 476 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
521 { | 522 { |
522 if (!m_node) | 523 if (!m_node) |
523 return nullptr; | 524 return nullptr; |
524 if (m_node->isElementNode()) { | 525 if (m_node->isElementNode()) { |
525 if (PseudoElement* element = toElement(m_node)->pseudoElement(m_pseudoEl
ementSpecifier)) | 526 if (PseudoElement* element = toElement(m_node)->pseudoElement(m_pseudoEl
ementSpecifier)) |
526 return element; | 527 return element; |
527 } | 528 } |
528 return m_node.get(); | 529 return m_node.get(); |
529 } | 530 } |
530 | 531 |
| 532 PassRefPtrWillBeRawPtr<CSSValue> CSSComputedStyleDeclaration::getPropertyCSSValu
e(AtomicString customPropertyName) const |
| 533 { |
| 534 return ComputedStyleCSSValueMapping::get(customPropertyName, *computeCompute
dStyle()); |
| 535 } |
| 536 |
531 PassRefPtrWillBeRawPtr<CSSValue> CSSComputedStyleDeclaration::getPropertyCSSValu
e(CSSPropertyID propertyID) const | 537 PassRefPtrWillBeRawPtr<CSSValue> CSSComputedStyleDeclaration::getPropertyCSSValu
e(CSSPropertyID propertyID) const |
532 { | 538 { |
533 Node* styledNode = this->styledNode(); | 539 Node* styledNode = this->styledNode(); |
534 if (!styledNode) | 540 if (!styledNode) |
535 return nullptr; | 541 return nullptr; |
536 LayoutObject* layoutObject = styledNode->layoutObject(); | 542 LayoutObject* layoutObject = styledNode->layoutObject(); |
537 const ComputedStyle* style; | 543 const ComputedStyle* style; |
538 | 544 |
539 Document& document = styledNode->document(); | 545 Document& document = styledNode->document(); |
540 | 546 |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
627 } | 633 } |
628 | 634 |
629 CSSRule* CSSComputedStyleDeclaration::parentRule() const | 635 CSSRule* CSSComputedStyleDeclaration::parentRule() const |
630 { | 636 { |
631 return nullptr; | 637 return nullptr; |
632 } | 638 } |
633 | 639 |
634 String CSSComputedStyleDeclaration::getPropertyValue(const String& propertyName) | 640 String CSSComputedStyleDeclaration::getPropertyValue(const String& propertyName) |
635 { | 641 { |
636 CSSPropertyID propertyID = cssPropertyID(propertyName); | 642 CSSPropertyID propertyID = cssPropertyID(propertyName); |
637 if (!propertyID) | 643 if (!propertyID) { |
638 return String(); | 644 if (!RuntimeEnabledFeatures::cssVariablesEnabled() || !CSSVariableParser
::isValidVariableName(propertyName)) |
| 645 return String(); |
| 646 return getPropertyCSSValue(AtomicString(propertyName))->cssText(); |
| 647 } |
639 ASSERT(CSSPropertyMetadata::isEnabledProperty(propertyID)); | 648 ASSERT(CSSPropertyMetadata::isEnabledProperty(propertyID)); |
640 return getPropertyValue(propertyID); | 649 return getPropertyValue(propertyID); |
641 } | 650 } |
642 | 651 |
643 String CSSComputedStyleDeclaration::getPropertyPriority(const String&) | 652 String CSSComputedStyleDeclaration::getPropertyPriority(const String&) |
644 { | 653 { |
645 // All computed styles have a priority of not "important". | 654 // All computed styles have a priority of not "important". |
646 return ""; | 655 return ""; |
647 } | 656 } |
648 | 657 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
683 exceptionState.throwDOMException(NoModificationAllowedError, "These styles a
re computed, and therefore the '" + getPropertyNameString(id) + "' property is r
ead-only."); | 692 exceptionState.throwDOMException(NoModificationAllowedError, "These styles a
re computed, and therefore the '" + getPropertyNameString(id) + "' property is r
ead-only."); |
684 } | 693 } |
685 | 694 |
686 DEFINE_TRACE(CSSComputedStyleDeclaration) | 695 DEFINE_TRACE(CSSComputedStyleDeclaration) |
687 { | 696 { |
688 visitor->trace(m_node); | 697 visitor->trace(m_node); |
689 CSSStyleDeclaration::trace(visitor); | 698 CSSStyleDeclaration::trace(visitor); |
690 } | 699 } |
691 | 700 |
692 } // namespace blink | 701 } // namespace blink |
OLD | NEW |