gecko-dev/layout/style/moz.build
Emilio Cobos Álvarez e6314d1382 Bug 1435939: Make media feature changes always async. r=bz
Much in the spirit of bug 1434474.

We right now call MediaFeatureChanges sync or async pretty randomly. This has
caused bugs in the past like bug 1413143.

Unify media feature changes, and only post them async, and flush them from
FlushPendingNotifications.

This also fixes a pre-existing problem where style wasn't flushed correctly from
getComputedStyle when there were pending media feature values.

MozReview-Commit-ID: H9S1M8fk5H4
2018-02-07 15:27:30 +01:00

361 lines
8.9 KiB
Python

# -*- Mode: python; 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/.
with Files('**'):
BUG_COMPONENT = ('Core', 'CSS Parsing and Computation')
with Files('nsComputedDOMStyle.*'):
BUG_COMPONENT = ('Core', 'DOM: CSS Object Model')
with Files('nsROCSSPrimitiveValue.*'):
BUG_COMPONENT = ('Core', 'DOM: CSS Object Model')
with Files('CSSRuleList.*'):
BUG_COMPONENT = ('Core', 'DOM: CSS Object Model')
with Files('nsDOM*'):
BUG_COMPONENT = ('Core', 'DOM: CSS Object Model')
DIRS += ['xbl-marquee']
TEST_DIRS += ['test']
EXPORTS += [
'!nsStyleStructList.h',
'AnimationCommon.h',
'CounterStyleManager.h',
'nsAnimationManager.h',
'nsComputedDOMStylePropertyList.h',
'nsCSSAnonBoxes.h',
'nsCSSAnonBoxList.h',
'nsCSSCounterDescList.h',
'nsCSSCounterStyleRule.h',
'nsCSSFontDescList.h',
'nsCSSFontFaceRule.h',
'nsCSSKeywordList.h',
'nsCSSKeywords.h',
'nsCSSParser.h',
'nsCSSPropAliasList.h',
'nsCSSPropertyID.h',
'nsCSSPropertyIDSet.h',
'nsCSSPropList.h',
'nsCSSPropLogicalGroupList.h',
'nsCSSProps.h',
'nsCSSPseudoClasses.h',
'nsCSSPseudoClassList.h',
'nsCSSPseudoElementList.h',
'nsCSSPseudoElements.h',
'nsCSSScanner.h',
'nsCSSValue.h',
'nsDOMCSSAttrDeclaration.h',
'nsDOMCSSDeclaration.h',
'nsDOMCSSRGBColor.h',
'nsICSSDeclaration.h',
'nsICSSLoaderObserver.h',
'nsLayoutStylesheetCache.h',
'nsMediaFeatures.h',
'nsRuleProcessorData.h',
'nsStyleAutoArray.h',
'nsStyleConsts.h',
'nsStyleContext.h',
'nsStyleContextInlines.h',
'nsStyleCoord.h',
'nsStyleStruct.h',
'nsStyleStructFwd.h',
'nsStyleStructInlines.h',
'nsStyleTransformMatrix.h',
'nsStyleUtil.h',
]
if CONFIG['MOZ_OLD_STYLE']:
EXPORTS += [
'nsCSSRuleProcessor.h',
'nsIStyleRule.h',
'nsIStyleRuleProcessor.h',
'nsMediaList.h',
'nsRuleData.h',
'nsRuleNode.h',
'nsRuleWalker.h',
'nsStyleSet.h',
]
EXPORTS.mozilla += [
'AnimationCollection.h',
'BindingStyleRule.h',
'CachedInheritingStyles.h',
'CSSEnabledState.h',
'DeclarationBlock.h',
'DeclarationBlockInlines.h',
'DocumentStyleRootIterator.h',
'GenericSpecifiedValues.h',
'GenericSpecifiedValuesInlines.h',
'LayerAnimationInfo.h',
'MediaFeatureChange.h',
'PostTraversalTask.h',
'PreloadedStyleSheet.h',
'RuleNodeCacheConditions.h',
'ServoArcTypeList.h',
'ServoBindingList.h',
'ServoBindings.h',
'ServoBindingTypes.h',
'ServoCSSParser.h',
'ServoCSSRuleList.h',
'ServoDeclarationBlock.h',
'ServoDocumentRule.h',
'ServoElementSnapshot.h',
'ServoElementSnapshotTable.h',
'ServoFontFeatureValuesRule.h',
'ServoImportRule.h',
'ServoKeyframeRule.h',
'ServoKeyframesRule.h',
'ServoMediaList.h',
'ServoMediaRule.h',
'ServoNamespaceRule.h',
'ServoPageRule.h',
'ServoPropPrefList.h',
'ServoSpecifiedValues.h',
'ServoStyleContext.h',
'ServoStyleContextInlines.h',
'ServoStyleRule.h',
'ServoStyleSet.h',
'ServoStyleSheet.h',
'ServoSupportsRule.h',
'ServoTypes.h',
'ServoUtils.h',
'SheetType.h',
'StyleAnimationValue.h',
'StyleBackendType.h',
'StyleComplexColor.h',
'StylePrefs.h',
'StyleSetHandle.h',
'StyleSetHandleInlines.h',
'StyleSheet.h',
'StyleSheetInfo.h',
'StyleSheetInlines.h',
'URLExtraData.h',
]
if CONFIG['MOZ_OLD_STYLE']:
EXPORTS.mozilla += [
'CSSStyleSheet.h',
'CSSVariableDeclarations.h',
'CSSVariableResolver.h',
'CSSVariableValues.h',
'GeckoStyleContext.h',
'IncrementalClearCOMRuleArray.h',
'RuleProcessorCache.h',
]
EXPORTS.mozilla.dom += [
'CSS.h',
'CSSFontFeatureValuesRule.h',
'CSSImportRule.h',
'CSSKeyframeRule.h',
'CSSKeyframesRule.h',
'CSSLexer.h',
'CSSMediaRule.h',
'CSSMozDocumentRule.h',
'CSSNamespaceRule.h',
'CSSPageRule.h',
'CSSRuleList.h',
'CSSSupportsRule.h',
'CSSValue.h',
'FontFace.h',
'FontFaceSet.h',
'FontFaceSetIterator.h',
'MediaList.h',
'MediaQueryList.h',
]
EXPORTS.mozilla.css += [
'ErrorReporter.h',
'GroupRule.h',
'ImageLoader.h',
'Loader.h',
'Rule.h',
'SheetLoadData.h',
'SheetParsingMode.h',
'StreamLoader.h',
'URLMatchingFunction.h',
]
if CONFIG['MOZ_OLD_STYLE']:
EXPORTS.mozilla.css += [
'Declaration.h',
'ImportRule.h',
'NameSpaceRule.h',
'StyleRule.h',
]
UNIFIED_SOURCES += [
'AnimationCollection.cpp',
'BindingStyleRule.cpp',
'CachedInheritingStyles.cpp',
'CounterStyleManager.cpp',
'CSS.cpp',
'CSSFontFeatureValuesRule.cpp',
'CSSImportRule.cpp',
'CSSKeyframeRule.cpp',
'CSSKeyframesRule.cpp',
'CSSLexer.cpp',
'CSSMediaRule.cpp',
'CSSMozDocumentRule.cpp',
'CSSPageRule.cpp',
'CSSRuleList.cpp',
'CSSSupportsRule.cpp',
'DocumentStyleRootIterator.cpp',
'ErrorReporter.cpp',
'FontFace.cpp',
'FontFaceSet.cpp',
'FontFaceSetIterator.cpp',
'GroupRule.cpp',
'ImageLoader.cpp',
'LayerAnimationInfo.cpp',
'Loader.cpp',
'MediaList.cpp',
'MediaQueryList.cpp',
'nsAnimationManager.cpp',
'nsComputedDOMStyle.cpp',
'nsCSSAnonBoxes.cpp',
'nsCSSCounterStyleRule.cpp',
'nsCSSFontFaceRule.cpp',
'nsCSSKeywords.cpp',
'nsCSSProps.cpp',
'nsCSSPseudoClasses.cpp',
'nsCSSScanner.cpp',
'nsCSSValue.cpp',
'nsDOMCSSAttrDeclaration.cpp',
'nsDOMCSSDeclaration.cpp',
'nsDOMCSSRect.cpp',
'nsDOMCSSRGBColor.cpp',
'nsDOMCSSValueList.cpp',
'nsFontFaceLoader.cpp',
'nsFontFaceUtils.cpp',
'nsHTMLCSSStyleSheet.cpp',
'nsHTMLStyleSheet.cpp',
'nsICSSDeclaration.cpp',
'nsMediaFeatures.cpp',
'nsROCSSPrimitiveValue.cpp',
'nsStyleContext.cpp',
'nsStyleCoord.cpp',
'nsStyleStruct.cpp',
'nsStyleTransformMatrix.cpp',
'nsStyleUtil.cpp',
'nsTransitionManager.cpp',
'PostTraversalTask.cpp',
'PreloadedStyleSheet.cpp',
'Rule.cpp',
'ServoBindings.cpp',
'ServoCSSParser.cpp',
'ServoCSSRuleList.cpp',
'ServoDeclarationBlock.cpp',
'ServoDocumentRule.cpp',
'ServoElementSnapshot.cpp',
'ServoFontFeatureValuesRule.cpp',
'ServoImportRule.cpp',
'ServoKeyframeRule.cpp',
'ServoKeyframesRule.cpp',
'ServoMediaList.cpp',
'ServoMediaRule.cpp',
'ServoNamespaceRule.cpp',
'ServoPageRule.cpp',
'ServoSpecifiedValues.cpp',
'ServoStyleContext.cpp',
'ServoStyleRule.cpp',
'ServoStyleSet.cpp',
'ServoStyleSheet.cpp',
'ServoSupportsRule.cpp',
'StreamLoader.cpp',
'StyleAnimationValue.cpp',
'StylePrefs.cpp',
'StyleSheet.cpp',
'URLExtraData.cpp',
]
if CONFIG['MOZ_OLD_STYLE']:
UNIFIED_SOURCES += [
'CSSStyleSheet.cpp',
'CSSVariableDeclarations.cpp',
'CSSVariableResolver.cpp',
'CSSVariableValues.cpp',
'Declaration.cpp',
'GeckoStyleContext.cpp',
'IncrementalClearCOMRuleArray.cpp',
'nsCSSDataBlock.cpp',
'nsCSSParser.cpp',
'nsCSSRuleProcessor.cpp',
'nsCSSRules.cpp',
'nsMediaList.cpp',
'nsNthIndexCache.cpp',
'nsRuleData.cpp',
'nsRuleNode.cpp',
'nsStyleSet.cpp',
'RuleNodeCacheConditions.cpp',
'RuleProcessorCache.cpp',
'StyleRule.cpp',
]
SOURCES += [
# Both nsCSSPseudoElements.cpp and nsCSSPseudoClasses.cpp defined a
# 'mozPlaceholder' static atom.
'nsCSSPseudoElements.cpp',
# nsLayoutStylesheetCache.cpp uses nsExceptionHandler.h, which includes
# windows.h.
'nsLayoutStylesheetCache.cpp',
]
include('/ipc/chromium/chromium-config.mozbuild')
FINAL_LIBRARY = 'xul'
LOCAL_INCLUDES += [
'../base',
'../generic',
'../svg',
'../xul',
'/dom/base',
'/dom/html',
'/dom/xbl',
'/dom/xul',
'/image',
]
JAR_MANIFESTS += ['jar.mn']
RESOURCE_FILES += [
'contenteditable.css',
'designmode.css',
]
CONTENT_ACCESSIBLE_FILES += [
'ImageDocument.css',
'res/plaintext.css',
'res/viewsource.css',
'TopLevelImageDocument.css',
'TopLevelVideoDocument.css',
]
GENERATED_FILES += [
'nsStyleStructList.h',
]
style_struct_list = GENERATED_FILES['nsStyleStructList.h']
style_struct_list.script = 'generate-stylestructlist.py'
if CONFIG['COMPILE_ENVIRONMENT']:
GENERATED_FILES += [
'nsCSSPropsGenerated.inc',
]
css_props = GENERATED_FILES['nsCSSPropsGenerated.inc']
css_props.script = 'GenerateCSSPropsGenerated.py:generate'
css_props.inputs = [
'nsCSSPropsGenerated.inc.in',
'PythonCSSProps.h',
]
CONFIGURE_SUBST_FILES += [
'bindgen.toml',
]