blob: 71c61f17921f9c5b363e15d0b7114b20035ba181 [file] [log] [blame]
<!DOCTYPE html>
<div id="element"></div>
<pre id="output"></pre>
<script>
if (window.testRunner) {
testRunner.dumpAsText();
}
function print(text) {
output.textContent += text + '\n';
}
print('This test documents Blink\'s web-exposed CSS properties.');
print('All changes to this list should go through Blink\'s feature review process: http://www.chromium.org/blink#new-features');
print('');
let style = element.style;
function isExposedProperty(property) {
style[property] = 'inherit';
let isExposed = style.length > 0;
style.cssText = '';
return isExposed;
}
function getLonghands(shorthand) {
style[shorthand] = 'inherit';
let longhands = Array.from(style);
longhands.sort();
style.cssText = '';
return longhands;
}
function getAliasedProperty(alias) {
style[alias] = 'inherit';
let aliasedProperty = /([\w-]+):/.exec(style.cssText)[1];
style.cssText = '';
return aliasedProperty;
}
print('[LONGHANDS]');
for (let longhand of internals.getCSSPropertyLonghands().sort()) {
if (!isExposedProperty(longhand)) {
continue;
}
print(' ' + longhand);
}
print('');
print('[SHORTHANDS]');
for (let shorthand of internals.getCSSPropertyShorthands().sort()) {
if (!isExposedProperty(shorthand)) {
continue;
}
print(' ' + shorthand);
for (let longhand of getLonghands(shorthand)) {
print(' ' + longhand);
}
}
print('');
print('[ALIASES]');
for (let alias of internals.getCSSPropertyAliases().sort()) {
if (!isExposedProperty(alias)) {
continue;
}
print(' ' + alias);
print(' ' + getAliasedProperty(alias));
}
</script>