Commit 4daa43e0 authored by sergeyv@chromium.org's avatar sergeyv@chromium.org

DevTools: Code clean up in CodeGeneratorInspector.py

* Get rid of unused methods
* Get rid of code duplication
* Ease return values: Classes with a static string field are replaced with a string

BUG=

Review URL: https://codereview.chromium.org/558593003

git-svn-id: svn://svn.chromium.org/blink/trunk@181967 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent c7a76273
...@@ -160,15 +160,9 @@ VALIDATOR_IFDEF_NAME = "ENABLE(ASSERT)" ...@@ -160,15 +160,9 @@ VALIDATOR_IFDEF_NAME = "ENABLE(ASSERT)"
class DomainNameFixes: class DomainNameFixes:
@classmethod @staticmethod
def get_fixed_data(cls, domain_name): def get_fixed_data(domain_name):
field_name_res = Capitalizer.upper_camel_case_to_lower(domain_name) + "Agent" return Capitalizer.upper_camel_case_to_lower(domain_name) + "Agent"
class Res(object):
agent_field_name = field_name_res
return Res
class RawTypes(object): class RawTypes(object):
@staticmethod @staticmethod
...@@ -211,20 +205,13 @@ class RawTypes(object): ...@@ -211,20 +205,13 @@ class RawTypes(object):
return "&" return "&"
class BaseType(object): class BaseType(object):
need_internal_runtime_cast_ = False
@classmethod
def request_raw_internal_runtime_cast(cls):
if not cls.need_internal_runtime_cast_:
cls.need_internal_runtime_cast_ = True
@classmethod @classmethod
def get_raw_validator_call_text(cls): def get_raw_validator_call_text(cls):
return "RuntimeCastHelper::assertType<JSONValue::Type%s>" % cls.get_validate_method_params().template_type return "RuntimeCastHelper::assertType<JSONValue::Type%s>" % cls.get_getter_name()
@staticmethod @staticmethod
def get_validate_method_params(): def get_getter_name():
raise Exception("Abstract method") raise Exception("Unsupported")
class String(BaseType): class String(BaseType):
@staticmethod @staticmethod
...@@ -237,16 +224,6 @@ class RawTypes(object): ...@@ -237,16 +224,6 @@ class RawTypes(object):
def get_constructor_pattern(): def get_constructor_pattern():
return "InspectorString::create(%s)" return "InspectorString::create(%s)"
@staticmethod
def get_c_initializer():
return "\"\""
@staticmethod
def get_validate_method_params():
class ValidateMethodParams:
template_type = "String"
return ValidateMethodParams
@staticmethod @staticmethod
def get_output_pass_model(): def get_output_pass_model():
return RawTypes.OutputPassModel.ByPointer return RawTypes.OutputPassModel.ByPointer
...@@ -276,10 +253,6 @@ class RawTypes(object): ...@@ -276,10 +253,6 @@ class RawTypes(object):
def get_constructor_pattern(): def get_constructor_pattern():
return "InspectorBasicValue::create(%s)" return "InspectorBasicValue::create(%s)"
@staticmethod
def get_c_initializer():
return "0"
@classmethod @classmethod
def get_raw_validator_call_text(cls): def get_raw_validator_call_text(cls):
return "RuntimeCastHelper::assertInt" return "RuntimeCastHelper::assertInt"
...@@ -314,14 +287,8 @@ class RawTypes(object): ...@@ -314,14 +287,8 @@ class RawTypes(object):
return "InspectorBasicValue::create(%s)" return "InspectorBasicValue::create(%s)"
@staticmethod @staticmethod
def get_c_initializer(): def get_raw_validator_call_text():
return "0" return "RuntimeCastHelper::assertType<JSONValue::TypeNumber>"
@staticmethod
def get_validate_method_params():
class ValidateMethodParams:
template_type = "Number"
return ValidateMethodParams
@staticmethod @staticmethod
def get_output_pass_model(): def get_output_pass_model():
...@@ -350,16 +317,6 @@ class RawTypes(object): ...@@ -350,16 +317,6 @@ class RawTypes(object):
def get_constructor_pattern(): def get_constructor_pattern():
return "InspectorBasicValue::create(%s)" return "InspectorBasicValue::create(%s)"
@staticmethod
def get_c_initializer():
return "false"
@staticmethod
def get_validate_method_params():
class ValidateMethodParams:
template_type = "Boolean"
return ValidateMethodParams
@staticmethod @staticmethod
def get_output_pass_model(): def get_output_pass_model():
return RawTypes.OutputPassModel.ByPointer return RawTypes.OutputPassModel.ByPointer
...@@ -389,20 +346,10 @@ class RawTypes(object): ...@@ -389,20 +346,10 @@ class RawTypes(object):
def get_constructor_pattern(): def get_constructor_pattern():
return "%s" return "%s"
@staticmethod
def get_c_initializer():
return "JSONObject::create()"
@staticmethod @staticmethod
def get_output_argument_prefix(): def get_output_argument_prefix():
return "" return ""
@staticmethod
def get_validate_method_params():
class ValidateMethodParams:
template_type = "Object"
return ValidateMethodParams
@staticmethod @staticmethod
def get_output_pass_model(): def get_output_pass_model():
return RawTypes.OutputPassModel.ByReference return RawTypes.OutputPassModel.ByReference
...@@ -426,10 +373,6 @@ class RawTypes(object): ...@@ -426,10 +373,6 @@ class RawTypes(object):
get_setter_name = get_getter_name get_setter_name = get_getter_name
@staticmethod
def get_c_initializer():
raise Exception("Unsupported")
@staticmethod @staticmethod
def get_constructor_pattern(): def get_constructor_pattern():
raise Exception("Unsupported") raise Exception("Unsupported")
...@@ -467,20 +410,10 @@ class RawTypes(object): ...@@ -467,20 +410,10 @@ class RawTypes(object):
def get_constructor_pattern(): def get_constructor_pattern():
return "%s" return "%s"
@staticmethod
def get_c_initializer():
return "JSONArray::create()"
@staticmethod @staticmethod
def get_output_argument_prefix(): def get_output_argument_prefix():
return "" return ""
@staticmethod
def get_validate_method_params():
class ValidateMethodParams:
template_type = "Array"
return ValidateMethodParams
@staticmethod @staticmethod
def get_output_pass_model(): def get_output_pass_model():
return RawTypes.OutputPassModel.ByReference return RawTypes.OutputPassModel.ByReference
...@@ -754,9 +687,6 @@ class Writer: ...@@ -754,9 +687,6 @@ class Writer:
def get_indent(self): def get_indent(self):
return self.indent return self.indent
def get_indented(self, additional_indent):
return Writer(self.output, self.indent + additional_indent)
def insert_writer(self, additional_indent): def insert_writer(self, additional_indent):
new_output = [] new_output = []
self.output.append(new_output) self.output.append(new_output)
...@@ -859,8 +789,6 @@ class TypeBindings: ...@@ -859,8 +789,6 @@ class TypeBindings:
@classmethod @classmethod
def get_code_generator(enum_binding_cls): def get_code_generator(enum_binding_cls):
#FIXME: generate ad-hoc enums too once we figure out how to better implement them in C++.
comment_out = helper.is_ad_hoc
class CodeGenerator: class CodeGenerator:
@staticmethod @staticmethod
...@@ -896,8 +824,6 @@ class TypeBindings: ...@@ -896,8 +824,6 @@ class TypeBindings:
validator_writer = generate_context.validator_writer validator_writer = generate_context.validator_writer
domain_fixes = DomainNameFixes.get_fixed_data(context_domain_name)
validator_writer.newline("void %s%s::assertCorrectValue(JSONValue* value)\n" % (helper.full_name_prefix_for_impl, enum_name)) validator_writer.newline("void %s%s::assertCorrectValue(JSONValue* value)\n" % (helper.full_name_prefix_for_impl, enum_name))
validator_writer.newline("{\n") validator_writer.newline("{\n")
validator_writer.newline(" WTF::String s;\n") validator_writer.newline(" WTF::String s;\n")
...@@ -1003,7 +929,7 @@ class TypeBindings: ...@@ -1003,7 +929,7 @@ class TypeBindings:
@staticmethod @staticmethod
def request_internal_runtime_cast(): def request_internal_runtime_cast():
RawTypes.String.request_raw_internal_runtime_cast() pass
@staticmethod @staticmethod
def get_code_generator(): def get_code_generator():
...@@ -1196,7 +1122,6 @@ class TypeBindings: ...@@ -1196,7 +1122,6 @@ class TypeBindings:
for prop_data in resolve_data.main_properties: for prop_data in resolve_data.main_properties:
prop_name = prop_data.p["name"] prop_name = prop_data.p["name"]
param_type_binding = prop_data.param_type_binding param_type_binding = prop_data.param_type_binding
raw_type = param_type_binding.reduce_to_raw_type()
if isinstance(param_type_binding.get_type_model(), TypeModel.ValueType): if isinstance(param_type_binding.get_type_model(), TypeModel.ValueType):
writer.append_multiline("\n void %s" % prop_name) writer.append_multiline("\n void %s" % prop_name)
writer.append("(%s value)\n" % param_type_binding.get_type_model().get_command_return_pass_model().get_output_parameter_type()) writer.append("(%s value)\n" % param_type_binding.get_type_model().get_command_return_pass_model().get_output_parameter_type())
...@@ -1244,8 +1169,6 @@ class TypeBindings: ...@@ -1244,8 +1169,6 @@ class TypeBindings:
validator_writer = generate_context.validator_writer validator_writer = generate_context.validator_writer
domain_fixes = DomainNameFixes.get_fixed_data(context_domain_name)
validator_writer.newline("void %s%s::assertCorrectValue(JSONValue* value)\n" % (helper.full_name_prefix_for_impl, class_name)) validator_writer.newline("void %s%s::assertCorrectValue(JSONValue* value)\n" % (helper.full_name_prefix_for_impl, class_name))
validator_writer.newline("{\n") validator_writer.newline("{\n")
validator_writer.newline(" RefPtr<JSONObject> object;\n") validator_writer.newline(" RefPtr<JSONObject> object;\n")
...@@ -1369,7 +1292,7 @@ class TypeBindings: ...@@ -1369,7 +1292,7 @@ class TypeBindings:
@staticmethod @staticmethod
def request_internal_runtime_cast(): def request_internal_runtime_cast():
RawTypes.Object.request_raw_internal_runtime_cast() pass
@staticmethod @staticmethod
def get_code_generator(): def get_code_generator():
...@@ -1516,7 +1439,7 @@ class RawTypeBinding: ...@@ -1516,7 +1439,7 @@ class RawTypeBinding:
raise Exception("Unsupported") raise Exception("Unsupported")
def request_internal_runtime_cast(self): def request_internal_runtime_cast(self):
self.raw_type_.request_raw_internal_runtime_cast() pass
def get_code_generator(self): def get_code_generator(self):
return None return None
...@@ -1803,30 +1726,11 @@ class Generator: ...@@ -1803,30 +1726,11 @@ class Generator:
def go(): def go():
Generator.process_types(type_map) Generator.process_types(type_map)
first_cycle_guardable_list_list = [
Generator.backend_method_declaration_list,
Generator.backend_method_implementation_list,
Generator.backend_method_name_declaration_list,
Generator.backend_method_name_declaration_index_list,
Generator.backend_agent_interface_list,
Generator.frontend_class_field_lines,
Generator.frontend_constructor_init_list,
Generator.frontend_domain_class_lines,
Generator.frontend_method_list,
Generator.method_handler_list,
Generator.method_name_enum_list,
Generator.backend_constructor_init_list,
Generator.backend_virtual_setters_list,
Generator.backend_setters_list,
Generator.backend_field_list]
for json_domain in json_api["domains"]: for json_domain in json_api["domains"]:
domain_name = json_domain["domain"] domain_name = json_domain["domain"]
domain_name_lower = domain_name.lower() domain_name_lower = domain_name.lower()
domain_fixes = DomainNameFixes.get_fixed_data(domain_name) agent_field_name = DomainNameFixes.get_fixed_data(domain_name)
agent_field_name = domain_fixes.agent_field_name
frontend_method_declaration_lines = [] frontend_method_declaration_lines = []
...@@ -1914,7 +1818,6 @@ class Generator: ...@@ -1914,7 +1818,6 @@ class Generator:
method_in_code = "" method_in_code = ""
method_out_code = "" method_out_code = ""
result_object_declaration = ""
agent_call_param_list = ["&error"] agent_call_param_list = ["&error"]
agent_call_params_declaration_list = [" ErrorString error;"] agent_call_params_declaration_list = [" ErrorString error;"]
send_response_call_params_list = ["error"] send_response_call_params_list = ["error"]
...@@ -1947,10 +1850,6 @@ class Generator: ...@@ -1947,10 +1850,6 @@ class Generator:
optional = json_parameter.get("optional") optional = json_parameter.get("optional")
non_optional_type_model = param_raw_type.get_raw_type_model() non_optional_type_model = param_raw_type.get_raw_type_model()
if optional:
type_model = non_optional_type_model.get_optional()
else:
type_model = non_optional_type_model
if optional: if optional:
code = (" bool %s_valueFound = false;\n" code = (" bool %s_valueFound = false;\n"
...@@ -2031,7 +1930,6 @@ class Generator: ...@@ -2031,7 +1930,6 @@ class Generator:
raw_type = return_type_binding.reduce_to_raw_type() raw_type = return_type_binding.reduce_to_raw_type()
setter_type = raw_type.get_setter_name() setter_type = raw_type.get_setter_name()
initializer = raw_type.get_c_initializer()
type_model = return_type_binding.get_type_model() type_model = return_type_binding.get_type_model()
if optional: if optional:
...@@ -2070,8 +1968,7 @@ class Generator: ...@@ -2070,8 +1968,7 @@ class Generator:
# Redirect to another agent's implementation. # Redirect to another agent's implementation.
agent_field = "m_" + agent_field_name agent_field = "m_" + agent_field_name
if "redirect" in json_command: if "redirect" in json_command:
domain_fixes = DomainNameFixes.get_fixed_data(json_command.get("redirect")) agent_field = "m_" + DomainNameFixes.get_fixed_data(json_command.get("redirect"))
agent_field = "m_" + domain_fixes.agent_field_name
Generator.backend_method_implementation_list.append(Templates.backend_method.substitute(None, Generator.backend_method_implementation_list.append(Templates.backend_method.substitute(None,
domainName=domain_name, methodName=json_command_name, domainName=domain_name, methodName=json_command_name,
...@@ -2211,8 +2108,6 @@ class Generator: ...@@ -2211,8 +2108,6 @@ class Generator:
def generate_all_domains_code(out, type_data_callback): def generate_all_domains_code(out, type_data_callback):
writer = Writer(out, "") writer = Writer(out, "")
for domain_data in type_map.domains(): for domain_data in type_map.domains():
domain_fixes = DomainNameFixes.get_fixed_data(domain_data.name())
namespace_declared = [] namespace_declared = []
def namespace_lazy_generator(): def namespace_lazy_generator():
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment