| OLD | NEW |
| 1 {%- for method in interface.methods %} | 1 {%- for method in interface.methods %} |
| 2 {%- set interface_method_id = | 2 var k{{interface.name}}_{{method.name}}_Name = {{method.ordinal}}; |
| 3 interface.mojom_name ~ "_" ~ method.mojom_name %} | |
| 4 var k{{interface_method_id}}_Name = {{method.ordinal}}; | |
| 5 {%- endfor %} | 3 {%- endfor %} |
| 6 | 4 |
| 7 function {{interface.name}}Ptr(handleOrPtrInfo) { | 5 function {{interface.name}}Ptr(handleOrPtrInfo) { |
| 8 this.ptr = new bindings.InterfacePtrController({{interface.name}}, | 6 this.ptr = new bindings.InterfacePtrController({{interface.name}}, |
| 9 handleOrPtrInfo); | 7 handleOrPtrInfo); |
| 10 } | 8 } |
| 11 | 9 |
| 12 function Associated{{interface.name}}Ptr(associatedInterfacePtrInfo) { | 10 function Associated{{interface.name}}Ptr(associatedInterfacePtrInfo) { |
| 13 this.ptr = new associatedBindings.AssociatedInterfacePtrController( | 11 this.ptr = new associatedBindings.AssociatedInterfacePtrController( |
| 14 {{interface.name}}, associatedInterfacePtrInfo); | 12 {{interface.name}}, associatedInterfacePtrInfo); |
| 15 } | 13 } |
| 16 | 14 |
| 17 Associated{{interface.name}}Ptr.prototype = | 15 Associated{{interface.name}}Ptr.prototype = |
| 18 Object.create({{interface.name}}Ptr.prototype); | 16 Object.create({{interface.name}}Ptr.prototype); |
| 19 Associated{{interface.name}}Ptr.prototype.constructor = | 17 Associated{{interface.name}}Ptr.prototype.constructor = |
| 20 Associated{{interface.name}}Ptr; | 18 Associated{{interface.name}}Ptr; |
| 21 | 19 |
| 22 function {{interface.name}}Proxy(receiver) { | 20 function {{interface.name}}Proxy(receiver) { |
| 23 this.receiver_ = receiver; | 21 this.receiver_ = receiver; |
| 24 } | 22 } |
| 25 | 23 |
| 26 {%- for method in interface.methods %} | 24 {%- for method in interface.methods %} |
| 27 {%- set interface_method_id = | 25 {{interface.name}}Ptr.prototype.{{method.name|stylize_method}} = function() { |
| 28 interface.mojom_name ~ "_" ~ method.mojom_name %} | 26 return {{interface.name}}Proxy.prototype.{{method.name|stylize_method}} |
| 29 {{interface.name}}Ptr.prototype.{{method.name}} = function() { | |
| 30 return {{interface.name}}Proxy.prototype.{{method.name}} | |
| 31 .apply(this.ptr.getProxy(), arguments); | 27 .apply(this.ptr.getProxy(), arguments); |
| 32 }; | 28 }; |
| 33 | 29 |
| 34 {{interface.name}}Proxy.prototype.{{method.name}} = function( | 30 {{interface.name}}Proxy.prototype.{{method.name|stylize_method}} = function( |
| 35 {%- for parameter in method.parameters -%} | 31 {%- for parameter in method.parameters -%} |
| 36 {{parameter.name}}{% if not loop.last %}, {% endif %} | 32 {{parameter.name}}{% if not loop.last %}, {% endif %} |
| 37 {%- endfor -%} | 33 {%- endfor -%} |
| 38 ) { | 34 ) { |
| 39 var params = new {{interface_method_id}}_Params(); | 35 var params = new {{interface.name}}_{{method.name}}_Params(); |
| 40 {%- for parameter in method.parameters %} | 36 {%- for parameter in method.parameters %} |
| 41 params.{{parameter.name}} = {{parameter.name}}; | 37 params.{{parameter.name}} = {{parameter.name}}; |
| 42 {%- endfor %} | 38 {%- endfor %} |
| 43 | 39 |
| 44 {%- if method.response_parameters == None %} | 40 {%- if method.response_parameters == None %} |
| 45 {%- if method|method_passes_associated_kinds and not use_new_js_bindings %} | 41 {%- if method|method_passes_associated_kinds and not use_new_js_bindings %} |
| 46 var builder = new codec.MessageV2Builder( | 42 var builder = new codec.MessageV2Builder( |
| 47 k{{interface_method_id}}_Name, | 43 k{{interface.name}}_{{method.name}}_Name, |
| 48 codec.align({{interface_method_id}}_Params.encodedSize)); | 44 codec.align({{interface.name}}_{{method.name}}_Params.encodedSize)); |
| 49 builder.setPayload({{interface_method_id}}_Params, params); | 45 builder.setPayload({{interface.name}}_{{method.name}}_Params, params); |
| 50 {%- else %} | 46 {%- else %} |
| 51 var builder = new codec.MessageV0Builder( | 47 var builder = new codec.MessageV0Builder( |
| 52 k{{interface_method_id}}_Name, | 48 k{{interface.name}}_{{method.name}}_Name, |
| 53 codec.align({{interface_method_id}}_Params.encodedSize)); | 49 codec.align({{interface.name}}_{{method.name}}_Params.encodedSize)); |
| 54 builder.encodeStruct({{interface_method_id}}_Params, params); | 50 builder.encodeStruct({{interface.name}}_{{method.name}}_Params, params); |
| 55 {%- endif %} | 51 {%- endif %} |
| 56 var message = builder.finish(); | 52 var message = builder.finish(); |
| 57 this.receiver_.accept(message); | 53 this.receiver_.accept(message); |
| 58 {%- else %} | 54 {%- else %} |
| 59 return new Promise(function(resolve, reject) { | 55 return new Promise(function(resolve, reject) { |
| 60 {%- if method|method_passes_associated_kinds and not use_new_js_bindings %} | 56 {%- if method|method_passes_associated_kinds and not use_new_js_bindings %} |
| 61 var builder = new codec.MessageV2Builder( | 57 var builder = new codec.MessageV2Builder( |
| 62 k{{interface_method_id}}_Name, | 58 k{{interface.name}}_{{method.name}}_Name, |
| 63 codec.align({{interface_method_id}}_Params.encodedSize), | 59 codec.align({{interface.name}}_{{method.name}}_Params.encodedSize), |
| 64 codec.kMessageExpectsResponse, 0); | 60 codec.kMessageExpectsResponse, 0); |
| 65 builder.setPayload({{interface_method_id}}_Params, params); | 61 builder.setPayload({{interface.name}}_{{method.name}}_Params, params); |
| 66 {%- else %} | 62 {%- else %} |
| 67 var builder = new codec.MessageV1Builder( | 63 var builder = new codec.MessageV1Builder( |
| 68 k{{interface_method_id}}_Name, | 64 k{{interface.name}}_{{method.name}}_Name, |
| 69 codec.align({{interface_method_id}}_Params.encodedSize), | 65 codec.align({{interface.name}}_{{method.name}}_Params.encodedSize), |
| 70 codec.kMessageExpectsResponse, 0); | 66 codec.kMessageExpectsResponse, 0); |
| 71 builder.encodeStruct({{interface_method_id}}_Params, params); | 67 builder.encodeStruct({{interface.name}}_{{method.name}}_Params, params); |
| 72 {%- endif %} | 68 {%- endif %} |
| 73 var message = builder.finish(); | 69 var message = builder.finish(); |
| 74 this.receiver_.acceptAndExpectResponse(message).then(function(message) { | 70 this.receiver_.acceptAndExpectResponse(message).then(function(message) { |
| 75 var reader = new codec.MessageReader(message); | 71 var reader = new codec.MessageReader(message); |
| 76 var responseParams = | 72 var responseParams = |
| 77 reader.decodeStruct({{interface_method_id}}_ResponseParams); | 73 reader.decodeStruct({{interface.name}}_{{method.name}}_ResponseParam
s); |
| 78 resolve(responseParams); | 74 resolve(responseParams); |
| 79 }).catch(function(result) { | 75 }).catch(function(result) { |
| 80 reject(Error("Connection error: " + result)); | 76 reject(Error("Connection error: " + result)); |
| 81 }); | 77 }); |
| 82 }.bind(this)); | 78 }.bind(this)); |
| 83 {%- endif %} | 79 {%- endif %} |
| 84 }; | 80 }; |
| 85 {%- endfor %} | 81 {%- endfor %} |
| 86 | 82 |
| 87 function {{interface.name}}Stub(delegate) { | 83 function {{interface.name}}Stub(delegate) { |
| 88 this.delegate_ = delegate; | 84 this.delegate_ = delegate; |
| 89 } | 85 } |
| 90 | 86 |
| 91 {%- for method in interface.methods %} | 87 {%- for method in interface.methods %} |
| 92 {{interface.name}}Stub.prototype.{{method.name}} = function({{method.parameter
s|map(attribute='name')|join(', ')}}) { | 88 {%- set js_method_name = method.name|stylize_method %} |
| 93 return this.delegate_ && this.delegate_.{{method.name}} && this.delegate_.{{
method.name}}({{method.parameters|map(attribute='name')|join(', ')}}); | 89 {{interface.name}}Stub.prototype.{{js_method_name}} = function({{method.parame
ters|map(attribute='name')|join(', ')}}) { |
| 90 return this.delegate_ && this.delegate_.{{js_method_name}} && this.delegate_
.{{js_method_name}}({{method.parameters|map(attribute='name')|join(', ')}}); |
| 94 } | 91 } |
| 95 {%- endfor %} | 92 {%- endfor %} |
| 96 | 93 |
| 97 {{interface.name}}Stub.prototype.accept = function(message) { | 94 {{interface.name}}Stub.prototype.accept = function(message) { |
| 98 var reader = new codec.MessageReader(message); | 95 var reader = new codec.MessageReader(message); |
| 99 switch (reader.messageName) { | 96 switch (reader.messageName) { |
| 100 {%- for method in interface.methods %} | 97 {%- for method in interface.methods %} |
| 101 {%- set interface_method_id = | |
| 102 interface.mojom_name ~ "_" ~ method.mojom_name %} | |
| 103 {%- if method.response_parameters == None %} | 98 {%- if method.response_parameters == None %} |
| 104 case k{{interface_method_id}}_Name: | 99 case k{{interface.name}}_{{method.name}}_Name: |
| 105 var params = reader.decodeStruct({{interface_method_id}}_Params); | 100 var params = reader.decodeStruct({{interface.name}}_{{method.name}}_Params
); |
| 106 this.{{method.name}}( | 101 this.{{method.name|stylize_method}}( |
| 107 {%- for parameter in method.parameters -%} | 102 {%- for parameter in method.parameters -%} |
| 108 params.{{parameter.name}}{% if not loop.last %}, {% endif %} | 103 params.{{parameter.name}}{% if not loop.last %}, {% endif %} |
| 109 {%- endfor %}); | 104 {%- endfor %}); |
| 110 return true; | 105 return true; |
| 111 {%- endif %} | 106 {%- endif %} |
| 112 {%- endfor %} | 107 {%- endfor %} |
| 113 default: | 108 default: |
| 114 return false; | 109 return false; |
| 115 } | 110 } |
| 116 }; | 111 }; |
| 117 | 112 |
| 118 {{interface.name}}Stub.prototype.acceptWithResponder = | 113 {{interface.name}}Stub.prototype.acceptWithResponder = |
| 119 function(message, responder) { | 114 function(message, responder) { |
| 120 var reader = new codec.MessageReader(message); | 115 var reader = new codec.MessageReader(message); |
| 121 switch (reader.messageName) { | 116 switch (reader.messageName) { |
| 122 {%- for method in interface.methods %} | 117 {%- for method in interface.methods %} |
| 123 {%- set interface_method_id = | |
| 124 interface.mojom_name ~ "_" ~ method.mojom_name %} | |
| 125 {%- if method.response_parameters != None %} | 118 {%- if method.response_parameters != None %} |
| 126 case k{{interface_method_id}}_Name: | 119 case k{{interface.name}}_{{method.name}}_Name: |
| 127 var params = reader.decodeStruct({{interface_method_id}}_Params); | 120 var params = reader.decodeStruct({{interface.name}}_{{method.name}}_Params
); |
| 128 this.{{method.name}}( | 121 this.{{method.name|stylize_method}}( |
| 129 {%- for parameter in method.parameters -%} | 122 {%- for parameter in method.parameters -%} |
| 130 params.{{parameter.name}}{% if not loop.last %}, {% endif -%} | 123 params.{{parameter.name}}{% if not loop.last %}, {% endif -%} |
| 131 {%- endfor %}).then(function(response) { | 124 {%- endfor %}).then(function(response) { |
| 132 var responseParams = | 125 var responseParams = |
| 133 new {{interface_method_id}}_ResponseParams(); | 126 new {{interface.name}}_{{method.name}}_ResponseParams(); |
| 134 {%- for parameter in method.response_parameters %} | 127 {%- for parameter in method.response_parameters %} |
| 135 responseParams.{{parameter.name}} = response.{{parameter.name}}; | 128 responseParams.{{parameter.name}} = response.{{parameter.name}}; |
| 136 {%- endfor %} | 129 {%- endfor %} |
| 137 {%- if method|method_passes_associated_kinds and not use_new_js_bindings %} | 130 {%- if method|method_passes_associated_kinds and not use_new_js_bindings %} |
| 138 var builder = new codec.MessageV2Builder( | 131 var builder = new codec.MessageV2Builder( |
| 139 k{{interface_method_id}}_Name, | 132 k{{interface.name}}_{{method.name}}_Name, |
| 140 codec.align({{interface_method_id}}_ResponseParams | 133 codec.align({{interface.name}}_{{method.name}}_ResponseParams |
| 141 .encodedSize), | 134 .encodedSize), |
| 142 codec.kMessageIsResponse, reader.requestID); | 135 codec.kMessageIsResponse, reader.requestID); |
| 143 builder.setPayload({{interface_method_id}}_ResponseParams, | 136 builder.setPayload({{interface.name}}_{{method.name}}_ResponseParams, |
| 144 responseParams); | 137 responseParams); |
| 145 {%- else %} | 138 {%- else %} |
| 146 var builder = new codec.MessageV1Builder( | 139 var builder = new codec.MessageV1Builder( |
| 147 k{{interface_method_id}}_Name, | 140 k{{interface.name}}_{{method.name}}_Name, |
| 148 codec.align({{interface_method_id}}_ResponseParams.encodedSize), | 141 codec.align({{interface.name}}_{{method.name}}_ResponseParams.encode
dSize), |
| 149 codec.kMessageIsResponse, reader.requestID); | 142 codec.kMessageIsResponse, reader.requestID); |
| 150 builder.encodeStruct({{interface_method_id}}_ResponseParams, | 143 builder.encodeStruct({{interface.name}}_{{method.name}}_ResponseParams, |
| 151 responseParams); | 144 responseParams); |
| 152 {%- endif %} | 145 {%- endif %} |
| 153 var message = builder.finish(); | 146 var message = builder.finish(); |
| 154 responder.accept(message); | 147 responder.accept(message); |
| 155 }); | 148 }); |
| 156 return true; | 149 return true; |
| 157 {%- endif %} | 150 {%- endif %} |
| 158 {%- endfor %} | 151 {%- endfor %} |
| 159 default: | 152 default: |
| 160 return false; | 153 return false; |
| 161 } | 154 } |
| 162 }; | 155 }; |
| 163 | 156 |
| 164 {#--- Validation #} | 157 {#--- Validation #} |
| 165 | 158 |
| 166 function validate{{interface.name}}Request(messageValidator) { | 159 function validate{{interface.name}}Request(messageValidator) { |
| 167 {%- if not(interface.methods) %} | 160 {%- if not(interface.methods) %} |
| 168 return validator.validationError.NONE; | 161 return validator.validationError.NONE; |
| 169 {%- else %} | 162 {%- else %} |
| 170 var message = messageValidator.message; | 163 var message = messageValidator.message; |
| 171 var paramsClass = null; | 164 var paramsClass = null; |
| 172 switch (message.getName()) { | 165 switch (message.getName()) { |
| 173 {%- for method in interface.methods %} | 166 {%- for method in interface.methods %} |
| 174 {%- set interface_method_id = | 167 case k{{interface.name}}_{{method.name}}_Name: |
| 175 interface.mojom_name ~ "_" ~ method.mojom_name %} | |
| 176 case k{{interface_method_id}}_Name: | |
| 177 {%- if method.response_parameters == None %} | 168 {%- if method.response_parameters == None %} |
| 178 if (!message.expectsResponse() && !message.isResponse()) | 169 if (!message.expectsResponse() && !message.isResponse()) |
| 179 paramsClass = {{interface_method_id}}_Params; | 170 paramsClass = {{interface.name}}_{{method.name}}_Params; |
| 180 {%- else %} | 171 {%- else %} |
| 181 if (message.expectsResponse()) | 172 if (message.expectsResponse()) |
| 182 paramsClass = {{interface_method_id}}_Params; | 173 paramsClass = {{interface.name}}_{{method.name}}_Params; |
| 183 {%- endif %} | 174 {%- endif %} |
| 184 break; | 175 break; |
| 185 {%- endfor %} | 176 {%- endfor %} |
| 186 } | 177 } |
| 187 if (paramsClass === null) | 178 if (paramsClass === null) |
| 188 return validator.validationError.NONE; | 179 return validator.validationError.NONE; |
| 189 return paramsClass.validate(messageValidator, messageValidator.message.getHe
aderNumBytes()); | 180 return paramsClass.validate(messageValidator, messageValidator.message.getHe
aderNumBytes()); |
| 190 {%- endif %} | 181 {%- endif %} |
| 191 } | 182 } |
| 192 | 183 |
| 193 function validate{{interface.name}}Response(messageValidator) { | 184 function validate{{interface.name}}Response(messageValidator) { |
| 194 {%- if not(interface|has_callbacks) %} | 185 {%- if not(interface|has_callbacks) %} |
| 195 return validator.validationError.NONE; | 186 return validator.validationError.NONE; |
| 196 {%- else %} | 187 {%- else %} |
| 197 var message = messageValidator.message; | 188 var message = messageValidator.message; |
| 198 var paramsClass = null; | 189 var paramsClass = null; |
| 199 switch (message.getName()) { | 190 switch (message.getName()) { |
| 200 {%- for method in interface.methods %} | 191 {%- for method in interface.methods %} |
| 201 {%- set interface_method_id = | |
| 202 interface.mojom_name ~ "_" ~ method.mojom_name %} | |
| 203 {%- if method.response_parameters != None %} | 192 {%- if method.response_parameters != None %} |
| 204 case k{{interface_method_id}}_Name: | 193 case k{{interface.name}}_{{method.name}}_Name: |
| 205 if (message.isResponse()) | 194 if (message.isResponse()) |
| 206 paramsClass = {{interface_method_id}}_ResponseParams; | 195 paramsClass = {{interface.name}}_{{method.name}}_ResponseParams; |
| 207 break; | 196 break; |
| 208 {%- endif %} | 197 {%- endif %} |
| 209 {%- endfor %} | 198 {%- endfor %} |
| 210 } | 199 } |
| 211 if (paramsClass === null) | 200 if (paramsClass === null) |
| 212 return validator.validationError.NONE; | 201 return validator.validationError.NONE; |
| 213 return paramsClass.validate(messageValidator, messageValidator.message.getHe
aderNumBytes()); | 202 return paramsClass.validate(messageValidator, messageValidator.message.getHe
aderNumBytes()); |
| 214 {%- endif %} | 203 {%- endif %} |
| 215 } | 204 } |
| 216 | 205 |
| 217 var {{interface.name}} = { | 206 var {{interface.name}} = { |
| 218 name: '{{module.mojom_namespace|replace(".","::")}}::{{interface.mojom_name}
}', | 207 name: '{{module.namespace|replace(".","::")}}::{{interface.name}}', |
| 219 kVersion: {{interface.version}}, | 208 kVersion: {{interface.version}}, |
| 220 ptrClass: {{interface.name}}Ptr, | 209 ptrClass: {{interface.name}}Ptr, |
| 221 proxyClass: {{interface.name}}Proxy, | 210 proxyClass: {{interface.name}}Proxy, |
| 222 stubClass: {{interface.name}}Stub, | 211 stubClass: {{interface.name}}Stub, |
| 223 validateRequest: validate{{interface.name}}Request, | 212 validateRequest: validate{{interface.name}}Request, |
| 224 {%- if interface|has_callbacks %} | 213 {%- if interface|has_callbacks %} |
| 225 validateResponse: validate{{interface.name}}Response, | 214 validateResponse: validate{{interface.name}}Response, |
| 226 {%- else %} | 215 {%- else %} |
| 227 validateResponse: null, | 216 validateResponse: null, |
| 228 {%- endif %} | 217 {%- endif %} |
| 229 }; | 218 }; |
| 230 {#--- Interface Constants #} | 219 {#--- Interface Constants #} |
| 231 {%- for constant in interface.constants %} | 220 {%- for constant in interface.constants %} |
| 232 {{interface.name}}.{{constant.name}} = {{constant.value|expression_to_text}}, | 221 {{interface.name}}.{{constant.name}} = {{constant.value|expression_to_text}}, |
| 233 {%- endfor %} | 222 {%- endfor %} |
| 234 {#--- Interface Enums #} | 223 {#--- Interface Enums #} |
| 235 {%- from "enum_definition.tmpl" import enum_def -%} | 224 {%- from "enum_definition.tmpl" import enum_def -%} |
| 236 {%- for enum in interface.enums %} | 225 {%- for enum in interface.enums %} |
| 237 {{ enum_def("%s.%s"|format(interface.name, enum.name), enum) }} | 226 {{ enum_def("%s.%s"|format(interface.name, enum.name), enum) }} |
| 238 {%- endfor %} | 227 {%- endfor %} |
| 239 {{interface.name}}Stub.prototype.validator = validate{{interface.name}}Request
; | 228 {{interface.name}}Stub.prototype.validator = validate{{interface.name}}Request
; |
| 240 {%- if interface|has_callbacks %} | 229 {%- if interface|has_callbacks %} |
| 241 {{interface.name}}Proxy.prototype.validator = validate{{interface.name}}Respon
se; | 230 {{interface.name}}Proxy.prototype.validator = validate{{interface.name}}Respon
se; |
| 242 {%- else %} | 231 {%- else %} |
| 243 {{interface.name}}Proxy.prototype.validator = null; | 232 {{interface.name}}Proxy.prototype.validator = null; |
| 244 {%- endif %} | 233 {%- endif %} |
| OLD | NEW |