Bug 1448757 part 1 - Add more filters for InspectorUtils.getCSSPropertyNames. r=heycam

MozReview-Commit-ID: 4io5CRLE7op

--HG--
extra : rebase_source : bcb3fe53647ee3c0526decff7ad30ac7da0b11d6
This commit is contained in:
Xidorn Quan 2018-04-20 13:42:14 +10:00
Родитель 15041846e1
Коммит 2fe625751b
2 изменённых файлов: 19 добавлений и 14 удалений

Просмотреть файл

@ -88,6 +88,8 @@ namespace InspectorUtils {
dictionary PropertyNamesOptions { dictionary PropertyNamesOptions {
boolean includeAliases = false; boolean includeAliases = false;
boolean includeShorthands = true;
boolean includeExperimentals = false;
}; };
dictionary InspectorRGBATuple { dictionary InspectorRGBATuple {

Просмотреть файл

@ -369,34 +369,37 @@ InspectorUtils::GetCSSPropertyNames(GlobalObject& aGlobalObject,
const PropertyNamesOptions& aOptions, const PropertyNamesOptions& aOptions,
nsTArray<nsString>& aResult) nsTArray<nsString>& aResult)
{ {
#define DO_PROP(_prop) \ CSSEnabledState enabledState = aOptions.mIncludeExperimentals
PR_BEGIN_MACRO \ ? CSSEnabledState::eIgnoreEnabledState
nsCSSPropertyID cssProp = nsCSSPropertyID(_prop); \ : CSSEnabledState::eForAllContent;
if (nsCSSProps::IsEnabled(cssProp, CSSEnabledState::eForAllContent)) { \
nsDependentCString name(kCSSRawProperties[_prop]); \ auto appendProperty = [enabledState, &aResult](uint32_t prop) {
aResult.AppendElement(NS_ConvertASCIItoUTF16(name)); \ nsCSSPropertyID cssProp = nsCSSPropertyID(prop);
} \ if (nsCSSProps::IsEnabled(cssProp, enabledState)) {
PR_END_MACRO nsDependentCString name(kCSSRawProperties[prop]);
aResult.AppendElement(NS_ConvertASCIItoUTF16(name));
}
};
uint32_t prop = 0; uint32_t prop = 0;
for ( ; prop < eCSSProperty_COUNT_no_shorthands; ++prop) { for ( ; prop < eCSSProperty_COUNT_no_shorthands; ++prop) {
if (nsCSSProps::PropertyParseType(nsCSSPropertyID(prop)) != if (nsCSSProps::PropertyParseType(nsCSSPropertyID(prop)) !=
CSS_PROPERTY_PARSE_INACCESSIBLE) { CSS_PROPERTY_PARSE_INACCESSIBLE) {
DO_PROP(prop); appendProperty(prop);
} }
} }
for ( ; prop < eCSSProperty_COUNT; ++prop) { if (aOptions.mIncludeShorthands) {
DO_PROP(prop); for ( ; prop < eCSSProperty_COUNT; ++prop) {
appendProperty(prop);
}
} }
if (aOptions.mIncludeAliases) { if (aOptions.mIncludeAliases) {
for (prop = eCSSProperty_COUNT; prop < eCSSProperty_COUNT_with_aliases; ++prop) { for (prop = eCSSProperty_COUNT; prop < eCSSProperty_COUNT_with_aliases; ++prop) {
DO_PROP(prop); appendProperty(prop);
} }
} }
#undef DO_PROP
} }
static void InsertNoDuplicates(nsTArray<nsString>& aArray, static void InsertNoDuplicates(nsTArray<nsString>& aArray,