Index: mojo/public/tools/bindings/pylib/mojom/generate/mojom_translator.py |
diff --git a/mojo/public/tools/bindings/pylib/mojom/generate/mojom_translator.py b/mojo/public/tools/bindings/pylib/mojom/generate/mojom_translator.py |
index 061adefaf19c44e1883a3bf84a1a034e05a58073..222261d47ec9fa38e43e1b6c622a3fe14316933a 100755 |
--- a/mojo/public/tools/bindings/pylib/mojom/generate/mojom_translator.py |
+++ b/mojo/public/tools/bindings/pylib/mojom/generate/mojom_translator.py |
@@ -454,6 +454,7 @@ class FileTranslator(object): |
self.PopulateModuleOrImportedFrom(interface, mojom_interface) |
interface.name = mojom_interface.decl_data.short_name |
interface.spec = interface.name |
+ interface.version = mojom_interface.current_version |
interface.service_name = mojom_interface.service_name |
if interface.attributes: |
assert interface.service_name == interface.attributes.get( |
@@ -463,12 +464,12 @@ class FileTranslator(object): |
# Translate the dictionary of methods into a list of module.Methods. |
- # In order to have a deterministic ordering we sort by method ordinal. |
- # TODO(rudominer) Consider ordering by declaration order instead once |
- # this field is populated by the front-end. |
interface.methods = [self.MethodFromMojom(mojom_method, interface) |
- for ordinal, mojom_method in sorted(mojom_interface.methods.iteritems(), |
- key=operator.itemgetter(0))] |
+ for ordinal, mojom_method in mojom_interface.methods.iteritems()] |
+ # We want the methods in an interface to be in some deterministic order |
+ # and we choose declaration order (i.e. lexical order within the |
+ # .mojom file.) |
+ interface.methods.sort(key=lambda method: method.declaration_order) |
self.PopulateContainedDeclarationsFromMojom( |
interface, mojom_interface.decl_data.contained_declarations) |
@@ -484,6 +485,7 @@ class FileTranslator(object): |
""" |
method = module.Method(interface, mojom_method.decl_data.short_name) |
method.ordinal = mojom_method.ordinal |
+ method.declaration_order = mojom_method.decl_data.declaration_order |
method.param_struct = module.Struct() |
self.StructFromMojomStruct(method.param_struct, mojom_method.parameters) |
# The name of a synthetic request parameter struct is not guaranteed by |
@@ -505,13 +507,7 @@ class FileTranslator(object): |
method.response_parameters = [self.ParamFromMojom(param) |
for param in mojom_method.response_params.fields] |
- # Set the min_version attribute on the method. |
- method.min_version=None |
- # TODO(rudominer) For now we parse the "MinVersion" attribute here but |
- # after we add a min_version field to mojom_types_mojom.MojomMethod then |
- # we should take the value from there instead. |
- if method.attributes: |
- method.min_version=method.get('MinVersion') |
+ method.min_version=mojom_method.min_version |
return method |