| Index: Source/core/scripts/make_style_builder.py
|
| diff --git a/Source/core/scripts/make_internal_runtime_flags.py b/Source/core/scripts/make_style_builder.py
|
| old mode 100755
|
| new mode 100644
|
| similarity index 50%
|
| copy from Source/core/scripts/make_internal_runtime_flags.py
|
| copy to Source/core/scripts/make_style_builder.py
|
| index dc333235ff3fcbe1567e2fbb2a1bc08961476568..d6b4cc31a3702c595f3cedf8ce2a93acbb67aa71
|
| --- a/Source/core/scripts/make_internal_runtime_flags.py
|
| +++ b/Source/core/scripts/make_style_builder.py
|
| @@ -27,32 +27,64 @@
|
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
| -import os.path
|
| +import re
|
| import sys
|
|
|
| import in_generator
|
| -import make_runtime_features
|
|
|
|
|
| -# We want exactly the same parsing as RuntimeFeatureWriter
|
| -# but generate different files.
|
| -class InternalRuntimeFlagsWriter(make_runtime_features.RuntimeFeatureWriter):
|
| - class_name = "InternalRuntimeFlags"
|
| +class StyleBuilderWriter(in_generator.Writer):
|
| + class_name = 'StyleBuilder'
|
|
|
| - def generate_idl(self):
|
| - return {
|
| - 'features': self._features,
|
| - }
|
| + valid_values = {
|
| + 'applytype': ['default'],
|
| + }
|
| + defaults = {
|
| + 'condition': None,
|
| + 'applytype': 'default',
|
| + 'nameformethods': None,
|
| +# depends on property name by default
|
| + 'typename': None,
|
| + 'getter': None,
|
| + 'setter': None,
|
| + 'initial': None,
|
| + }
|
|
|
| - def generate_header(self):
|
| - return {
|
| - 'features': self._features,
|
| - 'feature_sets': self._feature_sets(),
|
| - }
|
| + def __init__(self, in_file_path):
|
| + super(StyleBuilderWriter, self).__init__(in_file_path)
|
| + self._properties = self.in_file.name_dictionaries
|
| +
|
| + def set_if_none(property, key, value):
|
| + if property[key] is None:
|
| + property[key] = value
|
| +
|
| + for property in self._properties:
|
| + cc = self._camelcase_property_name(property["name"])
|
| + property["propertyid"] = "CSSProperty" + cc
|
| + cc = property["nameformethods"] or cc.replace("Webkit", "")
|
| + set_if_none(property, "typename", "E" + cc)
|
| + set_if_none(property, "getter", self._lower_first(cc))
|
| + set_if_none(property, "setter", "set" + cc)
|
| + set_if_none(property, "initial", "initial" + cc)
|
| +
|
| +# FIXME: some of these might be better in a utils file
|
| + @staticmethod
|
| + def _camelcase_property_name(property_name):
|
| + return re.sub(r'(^[^-])|-(.)', lambda match: (match.group(1) or match.group(2)).upper(), property_name)
|
| +
|
| + @staticmethod
|
| + def _lower_first(s):
|
| + return s[0].lower() + s[1:]
|
| +
|
| + @staticmethod
|
| + def _upper_first(s):
|
| + return s[0].upper() + s[1:]
|
|
|
| def generate_implementation(self):
|
| - return None
|
| + return {
|
| + "properties": self._properties,
|
| + }
|
|
|
|
|
| if __name__ == "__main__":
|
| - in_generator.Maker(InternalRuntimeFlagsWriter).main(sys.argv)
|
| + in_generator.Maker(StyleBuilderWriter).main(sys.argv)
|
|
|