Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(128)

Unified Diff: third_party/WebKit/Source/core/css/cssom/InlineStylePropertyMap.cpp

Issue 2227503002: Allow use of @apply and custom properties in InlineStylePropertyMap::getProperties() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove extra DCHECK Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/LayoutTests/typedcssom/inlinestyle/inlineStylePropertyMap_getProperties.html ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/core/css/cssom/InlineStylePropertyMap.cpp
diff --git a/third_party/WebKit/Source/core/css/cssom/InlineStylePropertyMap.cpp b/third_party/WebKit/Source/core/css/cssom/InlineStylePropertyMap.cpp
index 43299903125d63987626dbe3b4c2c8309ca39f4f..06b39b29952a36c3b2e4181cfbd765b9995f6465 100644
--- a/third_party/WebKit/Source/core/css/cssom/InlineStylePropertyMap.cpp
+++ b/third_party/WebKit/Source/core/css/cssom/InlineStylePropertyMap.cpp
@@ -50,11 +50,24 @@ CSSStyleValueVector InlineStylePropertyMap::getAllInternal(AtomicString customPr
Vector<String> InlineStylePropertyMap::getProperties()
{
+ DEFINE_STATIC_LOCAL(const String, kAtApply, ("@apply"));
Vector<String> result;
+ bool containsAtApply = false;
StylePropertySet& inlineStyleSet = m_ownerElement->ensureMutableInlineStyle();
for (unsigned i = 0; i < inlineStyleSet.propertyCount(); i++) {
CSSPropertyID propertyID = inlineStyleSet.propertyAt(i).id();
- result.append(getPropertyNameString(propertyID));
+ if (propertyID == CSSPropertyVariable) {
+ StylePropertySet::PropertyReference propertyReference = inlineStyleSet.propertyAt(i);
+ const CSSCustomPropertyDeclaration& customDeclaration = toCSSCustomPropertyDeclaration(propertyReference.value());
+ result.append(customDeclaration.name());
+ } else if (propertyID == CSSPropertyApplyAtRule) {
+ if (!containsAtApply) {
+ result.append(kAtApply);
+ containsAtApply = true;
+ }
+ } else {
+ result.append(getPropertyNameString(propertyID));
+ }
}
return result;
}
@@ -146,6 +159,7 @@ void InlineStylePropertyMap::remove(CSSPropertyID propertyID, ExceptionState& ex
HeapVector<StylePropertyMap::StylePropertyMapEntry> InlineStylePropertyMap::getIterationEntries()
{
+ DEFINE_STATIC_LOCAL(const String, kAtApply, ("@apply"));
HeapVector<StylePropertyMap::StylePropertyMapEntry> result;
StylePropertySet& inlineStyleSet = m_ownerElement->ensureMutableInlineStyle();
for (unsigned i = 0; i < inlineStyleSet.propertyCount(); i++) {
@@ -159,7 +173,7 @@ HeapVector<StylePropertyMap::StylePropertyMapEntry> InlineStylePropertyMap::getI
// TODO(meade): Eventually custom properties will support other types, so actually return them instead of always returning a CSSUnsupportedStyleValue.
value.setCSSStyleValue(CSSUnsupportedStyleValue::create(customDeclaration.customCSSText()));
} else if (propertyID == CSSPropertyApplyAtRule) {
- name = "@apply";
+ name = kAtApply;
value.setCSSStyleValue(CSSUnsupportedStyleValue::create(toCSSCustomIdentValue(propertyReference.value()).value()));
} else {
name = getPropertyNameString(propertyID);
« no previous file with comments | « third_party/WebKit/LayoutTests/typedcssom/inlinestyle/inlineStylePropertyMap_getProperties.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698