mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
5edbefbd77
Patch co-authored by Emmanuele Bassi <ebassi@gmail.com> This defines a CSSVariableDeclarations class that holds a set of variable declarations. This is at the specified value stage, so values can either be 'initial', 'inherit' or a token stream (which is what you normally have). The variables are stored in a hash table. Although it's a bit of a hack, we store 'initial' and 'inherit' using special string values that can't be valid token streams (we use "!" and ";"). Declaration objects now can have two CSSVariableDeclarations objects on them, to store normal and !important variable declarations. So that we keep preserving the order of declarations on the object, we inflate mOrder to store uint32_ts, where values from eCSSProperty_COUNT onwards represent custom properties. mVariableOrder stores the names of the variables corresponding to those entries in mOrder. We also add a new nsCSSProperty value, eCSSPropertyExtra_variable, which is used to represent any custom property name. nsCSSProps::LookupProperty can return this value. The changes to nsCSSParser are straightforward. Custom properties are parsed and checked for syntactic validity (e.g. "var(a,)" being invalid) and stored on the Declaration. We use nsCSSScanner's recording ability to grab the unparsed CSS string corresponding to the variable's value.
152 lines
3.6 KiB
Python
152 lines
3.6 KiB
Python
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
|
|
# vim: set filetype=python:
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
DIRS += ['xbl-marquee']
|
|
TEST_TOOL_DIRS += ['test']
|
|
|
|
EXPORTS += [
|
|
'AnimationCommon.h',
|
|
'nsAnimationManager.h',
|
|
'nsComputedDOMStylePropertyList.h',
|
|
'nsCSSAnonBoxes.h',
|
|
'nsCSSAnonBoxList.h',
|
|
'nsCSSFontDescList.h',
|
|
'nsCSSKeywordList.h',
|
|
'nsCSSKeywords.h',
|
|
'nsCSSParser.h',
|
|
'nsCSSPropAliasList.h',
|
|
'nsCSSProperty.h',
|
|
'nsCSSPropList.h',
|
|
'nsCSSProps.h',
|
|
'nsCSSPseudoClasses.h',
|
|
'nsCSSPseudoClassList.h',
|
|
'nsCSSPseudoElementList.h',
|
|
'nsCSSPseudoElements.h',
|
|
'nsCSSRuleProcessor.h',
|
|
'nsCSSStyleSheet.h',
|
|
'nsCSSValue.h',
|
|
'nsDOMCSSAttrDeclaration.h',
|
|
'nsDOMCSSDeclaration.h',
|
|
'nsDOMCSSRGBColor.h',
|
|
'nsDOMMediaQueryList.h',
|
|
'nsICSSDeclaration.h',
|
|
'nsICSSLoaderObserver.h',
|
|
'nsICSSPseudoComparator.h',
|
|
'nsICSSRuleList.h',
|
|
'nsICSSStyleRuleDOMWrapper.h',
|
|
'nsIStyleRule.h',
|
|
'nsIStyleRuleProcessor.h',
|
|
'nsIStyleSheet.h',
|
|
'nsLayoutStylesheetCache.h',
|
|
'nsRuleData.h',
|
|
'nsRuleNode.h',
|
|
'nsRuleProcessorData.h',
|
|
'nsRuleWalker.h',
|
|
'nsStyleAnimation.h',
|
|
'nsStyleConsts.h',
|
|
'nsStyleContext.h',
|
|
'nsStyleCoord.h',
|
|
'nsStyleSet.h',
|
|
'nsStyleStruct.h',
|
|
'nsStyleStructFwd.h',
|
|
'nsStyleStructInlines.h',
|
|
'nsStyleTransformMatrix.h',
|
|
'nsStyleUtil.h',
|
|
]
|
|
|
|
EXPORTS.mozilla += [
|
|
'CSSVariableDeclarations.h',
|
|
]
|
|
|
|
EXPORTS.mozilla.dom += [
|
|
'CSS.h',
|
|
'CSSValue.h',
|
|
]
|
|
|
|
EXPORTS.mozilla.css += [
|
|
'Declaration.h',
|
|
'ErrorReporter.h',
|
|
'GroupRule.h',
|
|
'ImageLoader.h',
|
|
'ImportRule.h',
|
|
'Loader.h',
|
|
'NameSpaceRule.h',
|
|
'Rule.h',
|
|
'StyleRule.h',
|
|
]
|
|
|
|
UNIFIED_SOURCES += [
|
|
'AnimationCommon.cpp',
|
|
'CSS.cpp',
|
|
'CSSVariableDeclarations.cpp',
|
|
'Declaration.cpp',
|
|
'ErrorReporter.cpp',
|
|
'ImageLoader.cpp',
|
|
'Loader.cpp',
|
|
'nsAnimationManager.cpp',
|
|
'nsComputedDOMStyle.cpp',
|
|
'nsCSSAnonBoxes.cpp',
|
|
'nsCSSDataBlock.cpp',
|
|
'nsCSSKeywords.cpp',
|
|
'nsCSSParser.cpp',
|
|
'nsCSSProps.cpp',
|
|
'nsCSSPseudoClasses.cpp',
|
|
'nsCSSPseudoElements.cpp',
|
|
'nsCSSRules.cpp',
|
|
'nsCSSScanner.cpp',
|
|
'nsCSSStyleSheet.cpp',
|
|
'nsCSSValue.cpp',
|
|
'nsDOMCSSAttrDeclaration.cpp',
|
|
'nsDOMCSSDeclaration.cpp',
|
|
'nsDOMCSSRect.cpp',
|
|
'nsDOMCSSRGBColor.cpp',
|
|
'nsDOMCSSValueList.cpp',
|
|
'nsDOMMediaQueryList.cpp',
|
|
'nsHTMLCSSStyleSheet.cpp',
|
|
'nsHTMLStyleSheet.cpp',
|
|
'nsLayoutStylesheetCache.cpp',
|
|
'nsMediaFeatures.cpp',
|
|
'nsNthIndexCache.cpp',
|
|
'nsROCSSPrimitiveValue.cpp',
|
|
'nsRuleData.cpp',
|
|
'nsRuleNode.cpp',
|
|
'nsStyleAnimation.cpp',
|
|
'nsStyleContext.cpp',
|
|
'nsStyleCoord.cpp',
|
|
'nsStyleSet.cpp',
|
|
'nsStyleStruct.cpp',
|
|
'nsStyleTransformMatrix.cpp',
|
|
'nsStyleUtil.cpp',
|
|
'nsTransitionManager.cpp',
|
|
'StyleRule.cpp',
|
|
]
|
|
|
|
# nsCSSRuleProcessor.cpp needs to be built separately because it uses plarena.h.
|
|
# nsFontFaceLoader.cpp needs to be built separately because it forces NSPR logging.
|
|
SOURCES += [
|
|
'nsCSSRuleProcessor.cpp',
|
|
'nsFontFaceLoader.cpp',
|
|
]
|
|
|
|
FAIL_ON_WARNINGS = True
|
|
|
|
MSVC_ENABLE_PGO = True
|
|
|
|
include('/ipc/chromium/chromium-config.mozbuild')
|
|
|
|
FINAL_LIBRARY = 'gklayout'
|
|
|
|
LOCAL_INCLUDES += [
|
|
'../../content/base/src',
|
|
'../../content/html/content/src',
|
|
'../../content/xbl/src',
|
|
'../../content/xul/document/src',
|
|
'../base',
|
|
'../generic',
|
|
'../xul',
|
|
'/dom/base',
|
|
]
|