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

Side by Side Diff: content/browser/devtools/protocol/devtools_protocol_handler_generator.py

Issue 2478703002: [DevTools] Remove handlers = browser from protocol definition. (Closed)
Patch Set: Created 4 years, 1 month 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 unified diff | Download patch
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2014 The Chromium Authors. All rights reserved. 2 # Copyright 2014 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 import sys 6 import sys
7 import string 7 import string
8 import json 8 import json
9 9
10 blink_protocol_path = sys.argv[1] 10 blink_protocol_path = sys.argv[1]
(...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after
474 req_fields_num = 0 474 req_fields_num = 0
475 for json_prop in json_properties: 475 for json_prop in json_properties:
476 prop_map = mapping.copy() 476 prop_map = mapping.copy()
477 prop_map["proto_param"] = json_prop["name"] 477 prop_map["proto_param"] = json_prop["name"]
478 prop_map["param"] = Uncamelcase(json_prop["name"]) 478 prop_map["param"] = Uncamelcase(json_prop["name"])
479 prop_map["Param"] = Capitalize(json_prop["name"]) 479 prop_map["Param"] = Capitalize(json_prop["name"])
480 prop_map["subdomain"] = Uncamelcase(prop_map["declared_name"]) 480 prop_map["subdomain"] = Uncamelcase(prop_map["declared_name"])
481 del prop_map["declared_name"] 481 del prop_map["declared_name"]
482 ResolveType(json_prop, prop_map) 482 ResolveType(json_prop, prop_map)
483 prop_map["declared_name"] = mapping["declared_name"] 483 prop_map["declared_name"] = mapping["declared_name"]
484 if prop_map["pass_type"].find(mapping["declared_name"]) != -1:
485 prop_map["pass_type"] = prop_map["pass_type"].replace(
486 mapping["declared_name"], mapping["declared_name"] + "Builder<0>")
484 if json_prop.get("optional"): 487 if json_prop.get("optional"):
485 methods.append(tmpl_builder_setter_opt.substitute(prop_map)) 488 methods.append(tmpl_builder_setter_opt.substitute(prop_map))
486 else: 489 else:
487 methods.append(tmpl_builder_setter_req.substitute(prop_map)) 490 methods.append(tmpl_builder_setter_req.substitute(prop_map))
488 enum_items.append("k%s" % prop_map["Param"]); 491 enum_items.append("k%s" % prop_map["Param"]);
489 fields_enum.append(tmpl_builder_enum.substitute(prop_map, 492 fields_enum.append(tmpl_builder_enum.substitute(prop_map,
490 ordinal = req_fields_num)) 493 ordinal = req_fields_num))
491 req_fields_num += 1 494 req_fields_num += 1
492 495
493 all_fields = "kAllSet" 496 all_fields = "kAllSet"
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
633 else: 636 else:
634 raise Exception("Unknown type at %s.%s %s" % 637 raise Exception("Unknown type at %s.%s %s" %
635 (mapping["Domain"], mapping["command"], mapping["proto_param"])) 638 (mapping["Domain"], mapping["command"], mapping["proto_param"]))
636 639
637 setters = [] 640 setters = []
638 fields = [] 641 fields = []
639 642
640 includes = [] 643 includes = []
641 fields_init = [] 644 fields_init = []
642 645
646 domains_list = ["Inspector", "Memory", "Page", "Emulation", "Security",
caseq 2016/11/04 01:20:40 browser_domains_list?
dgozman 2016/11/04 01:52:27 Done.
647 "IO", "Target", "ServiceWorker", "Input", "Tracing", "Storage",
648 "SystemInfo", "Tethering", "Schema"]
649 commands_list = ["DOM.setFileInputFiles", "Network.enable", "Network.disable",
650 "Network.clearBrowserCache", "Network.clearBrowserCookies",
651 "Network.getCookies", "Network.deleteCookie", "Network.setCookie",
652 "Network.canEmulateNetworkConditions", "Network.emulateNetworkConditions"]
653
643 for json_domain in all_domains: 654 for json_domain in all_domains:
644 domain_map = {} 655 domain_map = {}
645 domain_map["Domain"] = json_domain["domain"] 656 domain_map["Domain"] = json_domain["domain"]
646 domain_map["domain"] = Uncamelcase(json_domain["domain"]) 657 domain_map["domain"] = Uncamelcase(json_domain["domain"])
647 658
648 initializations = [] 659 initializations = []
649 client_methods = [] 660 client_methods = []
650 client_method_impls = [] 661 client_method_impls = []
651 domain_empty = True 662 domain_empty = True
652 domain_needs_client = False 663 domain_needs_client = False
653 664
654 if "commands" in json_domain: 665 if "commands" in json_domain:
655 for json_command in json_domain["commands"]: 666 for json_command in json_domain["commands"]:
656 if (not ("handlers" in json_command) or 667 full_command_name = json_domain["domain"] + "." + json_command["name"]
657 not ("browser" in json_command["handlers"])): 668 if (json_domain["domain"] not in domains_list and
669 full_command_name not in commands_list):
658 continue 670 continue
659 domain_empty = False 671 domain_empty = False
660 672
661 command_map = domain_map.copy() 673 command_map = domain_map.copy()
662 command_map["command"] = json_command["name"] 674 command_map["command"] = json_command["name"]
663 command_map["Command"] = Capitalize(json_command["name"]) 675 command_map["Command"] = Capitalize(json_command["name"])
664 676
665 if "redirect" in json_command: 677 if "redirect" in json_command:
666 redirect_domain = json_command["redirect"] 678 redirect_domain = json_command["redirect"]
667 if not (redirect_domain in redirects): 679 if not (redirect_domain in redirects):
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
717 args = "\n " + ",\n ".join(args))) 729 args = "\n " + ",\n ".join(args)))
718 client_methods.append(tmpl_response.substitute(command_map)) 730 client_methods.append(tmpl_response.substitute(command_map))
719 client_method_impls.append(tmpl_response_impl.substitute(command_map)) 731 client_method_impls.append(tmpl_response_impl.substitute(command_map))
720 else: 732 else:
721 wrap = [] 733 wrap = []
722 if "returns" in json_command: 734 if "returns" in json_command:
723 for json_param in json_command["returns"]: 735 for json_param in json_command["returns"]:
724 param_map = command_map.copy() 736 param_map = command_map.copy()
725 param_map["proto_param"] = json_param["name"] 737 param_map["proto_param"] = json_param["name"]
726 param_map["param"] = Uncamelcase(json_param["name"]) 738 param_map["param"] = Uncamelcase(json_param["name"])
727 if json_param.get("optional"): 739 is_string = "type" in json_param and json_param["type"] == "string"
740 if json_param.get("optional") and not is_string:
728 # TODO(vkuzkokov) Implement Optional<T> for value types. 741 # TODO(vkuzkokov) Implement Optional<T> for value types.
729 raise Exception("Optional return values are not implemented") 742 raise Exception(
743 "Optional return values are not implemented (%s.%s.%s)" %
744 (param_map["Domain"], param_map["command"],
745 param_map["proto_param"]))
730 ResolveType(json_param, param_map) 746 ResolveType(json_param, param_map)
731 prep.append(tmpl_prep_output.substitute(param_map)) 747 prep.append(tmpl_prep_output.substitute(param_map))
732 args.append(param_map["arg_out"]) 748 args.append(param_map["arg_out"])
733 wrap.append(tmpl_wrap.substitute(param_map)) 749 wrap.append(tmpl_wrap.substitute(param_map))
734 args_str = "" 750 args_str = ""
735 if len(args) > 0: 751 if len(args) > 0:
736 args_str = "\n " + ",\n ".join(args) 752 args_str = "\n " + ",\n ".join(args)
737 handler_method_impls.append(tmpl_callback_impl.substitute(command_map, 753 handler_method_impls.append(tmpl_callback_impl.substitute(command_map,
738 prep = "".join(prep), 754 prep = "".join(prep),
739 args = args_str, 755 args = args_str,
740 wrap = "".join(wrap))) 756 wrap = "".join(wrap)))
741 757
742 initializations.append(tmpl_register.substitute(command_map)) 758 initializations.append(tmpl_register.substitute(command_map))
743 handler_methods.append(tmpl_callback.substitute(command_map)) 759 handler_methods.append(tmpl_callback.substitute(command_map))
744 760
745 if "events" in json_domain: 761 if "events" in json_domain:
746 for json_event in json_domain["events"]: 762 for json_event in json_domain["events"]:
747 if (not ("handlers" in json_event) or 763 if json_domain["domain"] not in domains_list:
748 not ("browser" in json_event["handlers"])):
749 continue 764 continue
750 domain_empty = False 765 domain_empty = False
751 domain_needs_client = True 766 domain_needs_client = True
752 767
753 event_map = domain_map.copy() 768 event_map = domain_map.copy()
754 event_map["command"] = json_event["name"] 769 event_map["command"] = json_event["name"]
755 event_map["Command"] = Capitalize(json_event["name"]) 770 event_map["Command"] = Capitalize(json_event["name"])
756 771
757 json_parameters = [] 772 json_parameters = []
758 if "parameters" in json_event: 773 if "parameters" in json_event:
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
796 output_h_file.close() 811 output_h_file.close()
797 812
798 output_cc_file.write(template_cc.substitute({}, 813 output_cc_file.write(template_cc.substitute({},
799 major = blink_protocol["version"]["major"], 814 major = blink_protocol["version"]["major"],
800 minor = blink_protocol["version"]["minor"], 815 minor = blink_protocol["version"]["minor"],
801 includes = "".join(sorted(includes)), 816 includes = "".join(sorted(includes)),
802 fields_init = ",\n ".join(fields_init), 817 fields_init = ",\n ".join(fields_init),
803 methods = "\n".join(handler_method_impls), 818 methods = "\n".join(handler_method_impls),
804 types = "\n".join(type_impls))) 819 types = "\n".join(type_impls)))
805 output_cc_file.close() 820 output_cc_file.close()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698