| Index: content/browser/devtools/protocol/devtools_protocol_handler_generator.py
|
| diff --git a/content/browser/devtools/protocol/devtools_protocol_handler_generator.py b/content/browser/devtools/protocol/devtools_protocol_handler_generator.py
|
| index 379e37a91f2e563cc6a7b9e7de55cc69e18e502e..f08ea9e5f085868793be5f34989638ad94ebd11c 100755
|
| --- a/content/browser/devtools/protocol/devtools_protocol_handler_generator.py
|
| +++ b/content/browser/devtools/protocol/devtools_protocol_handler_generator.py
|
| @@ -481,6 +481,9 @@ def DeclareStruct(json_properties, mapping):
|
| del prop_map["declared_name"]
|
| ResolveType(json_prop, prop_map)
|
| prop_map["declared_name"] = mapping["declared_name"]
|
| + if prop_map["pass_type"].find(mapping["declared_name"]) != -1:
|
| + prop_map["pass_type"] = prop_map["pass_type"].replace(
|
| + mapping["declared_name"], mapping["declared_name"] + "Builder<0>")
|
| if json_prop.get("optional"):
|
| methods.append(tmpl_builder_setter_opt.substitute(prop_map))
|
| else:
|
| @@ -640,6 +643,21 @@ fields = []
|
| includes = []
|
| fields_init = []
|
|
|
| +browser_domains_list = ["Inspector", "Memory", "Page", "Emulation", "Security",
|
| + "IO", "Target", "ServiceWorker", "Input", "Tracing", "Storage",
|
| + "SystemInfo", "Tethering", "Schema"]
|
| +browser_commands_list = [
|
| + "DOM.setFileInputFiles",
|
| + "Network.enable",
|
| + "Network.disable",
|
| + "Network.clearBrowserCache",
|
| + "Network.clearBrowserCookies",
|
| + "Network.getCookies",
|
| + "Network.deleteCookie",
|
| + "Network.setCookie",
|
| + "Network.canEmulateNetworkConditions",
|
| + "Network.emulateNetworkConditions"]
|
| +
|
| for json_domain in all_domains:
|
| domain_map = {}
|
| domain_map["Domain"] = json_domain["domain"]
|
| @@ -653,8 +671,9 @@ for json_domain in all_domains:
|
|
|
| if "commands" in json_domain:
|
| for json_command in json_domain["commands"]:
|
| - if (not ("handlers" in json_command) or
|
| - not ("browser" in json_command["handlers"])):
|
| + full_command_name = json_domain["domain"] + "." + json_command["name"]
|
| + if (json_domain["domain"] not in browser_domains_list and
|
| + full_command_name not in browser_commands_list):
|
| continue
|
| domain_empty = False
|
|
|
| @@ -724,9 +743,13 @@ for json_domain in all_domains:
|
| param_map = command_map.copy()
|
| param_map["proto_param"] = json_param["name"]
|
| param_map["param"] = Uncamelcase(json_param["name"])
|
| - if json_param.get("optional"):
|
| + is_string = "type" in json_param and json_param["type"] == "string"
|
| + if json_param.get("optional") and not is_string:
|
| # TODO(vkuzkokov) Implement Optional<T> for value types.
|
| - raise Exception("Optional return values are not implemented")
|
| + raise Exception(
|
| + "Optional return values are not implemented (%s.%s.%s)" %
|
| + (param_map["Domain"], param_map["command"],
|
| + param_map["proto_param"]))
|
| ResolveType(json_param, param_map)
|
| prep.append(tmpl_prep_output.substitute(param_map))
|
| args.append(param_map["arg_out"])
|
| @@ -744,8 +767,7 @@ for json_domain in all_domains:
|
|
|
| if "events" in json_domain:
|
| for json_event in json_domain["events"]:
|
| - if (not ("handlers" in json_event) or
|
| - not ("browser" in json_event["handlers"])):
|
| + if json_domain["domain"] not in browser_domains_list:
|
| continue
|
| domain_empty = False
|
| domain_needs_client = True
|
|
|