Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1253)

Unified Diff: Source/core/scripts/make_style_builder.py

Issue 15157002: Begin moving DeprecatedStyleBuilder properties to new generated StyleBuilder. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink@master
Patch Set: move StyleBuilder call to below DeprecatedStyleBuilder Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/css/resolver/StyleResolver.cpp ('k') | Source/core/scripts/templates/StyleBuilder.cpp.tmpl » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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)
« no previous file with comments | « Source/core/css/resolver/StyleResolver.cpp ('k') | Source/core/scripts/templates/StyleBuilder.cpp.tmpl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698