| Index: content/browser/devtools/devtools_protocol_constants_generator.py
|
| diff --git a/content/browser/devtools/devtools_protocol_constants_generator.py b/content/browser/devtools/devtools_protocol_constants_generator.py
|
| deleted file mode 100755
|
| index 7339208d7e9ed383911f3a26c6eb6f9bb474b89e..0000000000000000000000000000000000000000
|
| --- a/content/browser/devtools/devtools_protocol_constants_generator.py
|
| +++ /dev/null
|
| @@ -1,199 +0,0 @@
|
| -#!/usr/bin/python
|
| -# Copyright 2013 The Chromium Authors. All rights reserved.
|
| -# Use of this source code is governed by a BSD-style license that can be
|
| -# found in the LICENSE file.
|
| -
|
| -import sys
|
| -import string
|
| -import json
|
| -
|
| -template_h = string.Template("""\
|
| -// Copyright 2013 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef CONTENT_BROWSER_DEVTOOLS_DEVTOOLS_PROTOCOL_CONSTANTS_H_
|
| -#define CONTENT_BROWSER_DEVTOOLS_DEVTOOLS_PROTOCOL_CONSTANTS_H_
|
| -
|
| -// THIS FILE IS AUTOGENERATED. DO NOT EDIT.
|
| -// Generated by
|
| -// content/browser/devtools/devtools_protocol_constants_generator.py from
|
| -// third_party/WebKit/Source/devtools/protocol.json and
|
| -// content/browser/devtools/browser_protocol.json).
|
| -
|
| -#include <string>
|
| -
|
| -namespace content {
|
| -namespace devtools {
|
| -
|
| -extern const char kProtocolVersion[];
|
| -
|
| -bool IsSupportedProtocolVersion(const std::string& version);
|
| -
|
| -extern const char kResult[];
|
| -$contents
|
| -
|
| -} // devtools
|
| -} // content
|
| -
|
| -#endif // CONTENT_BROWSER_DEVTOOLS_DEVTOOLS_PROTOCOL_CONSTANTS_H_
|
| -""")
|
| -
|
| -template_cc = string.Template("""\
|
| -// Copyright 2013 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -// THIS FILE IS AUTOGENERATED. DO NOT EDIT.
|
| -// Generated by
|
| -// content/browser/devtools/devtools_protocol_constants_generator.py from
|
| -// third_party/WebKit/Source/devtools/protocol.json and
|
| -// content/browser/devtools/browser_protocol.json).
|
| -
|
| -#include "base/strings/string_number_conversions.h"
|
| -#include "base/strings/string_util.h"
|
| -#include "content/browser/devtools/devtools_protocol_constants.h"
|
| -
|
| -namespace content {
|
| -namespace devtools {
|
| -
|
| -const char kProtocolVersion[] = "$major.$minor";
|
| -
|
| -bool IsSupportedProtocolVersion(const std::string& version) {
|
| - std::vector<std::string> tokens;
|
| - Tokenize(version, ".", &tokens);
|
| - int major, minor;
|
| - return tokens.size() == 2 &&
|
| - base::StringToInt(tokens[0], &major) && major == $major &&
|
| - base::StringToInt(tokens[1], &minor) && minor <= $minor;
|
| -}
|
| -
|
| -const char kResult[] = "result";
|
| -$contents
|
| -
|
| -} // devtools
|
| -} // content
|
| -""")
|
| -
|
| -def Capitalize(s):
|
| - return s[:1].capitalize() + s[1:]
|
| -
|
| -references = []
|
| -
|
| -def CreateNamespace(domain_name, data, keys, prefixes, name = None):
|
| - result = {}
|
| - if name:
|
| - result["kName"] = name
|
| - for i, key in enumerate(keys):
|
| - if key in data:
|
| - for parameter in data[key]:
|
| - parameter_name = parameter["name"];
|
| - result[prefixes[i] + Capitalize(parameter_name)] = parameter_name
|
| - if "enum" in parameter:
|
| - enum_name = Capitalize(parameter_name)
|
| - result[enum_name] = {}
|
| - for enum in parameter["enum"]:
|
| - result[enum_name]["kEnum" + Capitalize(enum)] = enum
|
| - reference = ""
|
| - if "$ref" in parameter:
|
| - reference = parameter["$ref"]
|
| - if "items" in parameter and "$ref" in parameter["items"]:
|
| - reference = parameter["items"]["$ref"]
|
| - if reference:
|
| - if not "." in reference:
|
| - reference = domain_name + "." + reference
|
| - references.append(reference)
|
| - return result
|
| -
|
| -def IsHandledInBrowser(item):
|
| - return "handlers" in item and "browser" in item["handlers"]
|
| -
|
| -def FormatContents(tree, indent, format_string):
|
| - outer = dict((key, value) for key, value in tree.iteritems()
|
| - if not isinstance(value, dict))
|
| - inner = dict((key, value) for key, value in tree.iteritems()
|
| - if isinstance(value, dict))
|
| - body = ""
|
| - body += "".join(indent + format_string.format(key, value)
|
| - for (key, value) in sorted(outer.items()))
|
| - body += "".join(FormatNamespace(key, value, indent, format_string)
|
| - for (key, value) in sorted(inner.items()))
|
| - return body
|
| -
|
| -def FormatNamespace(title, tree, indent, format_string):
|
| - if (not tree):
|
| - return ""
|
| - body = '\n' + indent + "namespace " + title + " {\n"
|
| - body += FormatContents(tree, indent + " ", format_string)
|
| - body += indent + "} // " + title + "\n"
|
| - return body
|
| -
|
| -def CreateHeader(tree, output_file):
|
| - contents = FormatContents(tree, "", "extern const char {0}[];\n")
|
| - output_file.write(template_h.substitute({"contents": contents}))
|
| -
|
| -def CreateBody(tree, version, output_file):
|
| - contents = FormatContents(tree, "", "const char {0}[] = \"{1}\";\n")
|
| - output_file.write(template_cc.substitute({
|
| - "major": version["major"],
|
| - "minor": version["minor"],
|
| - "contents": contents
|
| - }))
|
| -
|
| -blink_protocol_data = open(sys.argv[1]).read()
|
| -browser_protocol_data = open(sys.argv[2]).read()
|
| -
|
| -blink_protocol = json.loads(blink_protocol_data)
|
| -browser_protocol = json.loads(browser_protocol_data)
|
| -
|
| -blink_version = blink_protocol["version"]
|
| -
|
| -domains = blink_protocol["domains"] + browser_protocol["domains"]
|
| -
|
| -namespace_tree = {}
|
| -
|
| -for domain in domains:
|
| - domain_value = {}
|
| - domain_namespace_name = Capitalize(domain["domain"])
|
| - if "commands" in domain:
|
| - for command in domain["commands"]:
|
| - if (IsHandledInBrowser(command)):
|
| - domain_value[command["name"]] = CreateNamespace(domain["domain"],
|
| - command, ["parameters", "returns"], ["kParam", "kResponse"],
|
| - domain_namespace_name + "." + command["name"])
|
| -
|
| - if "events" in domain:
|
| - for event in domain["events"]:
|
| - if IsHandledInBrowser(event):
|
| - domain_value[event["name"]] = CreateNamespace(domain["domain"],
|
| - event, ["parameters"], ["kParam"],
|
| - domain_namespace_name + "." + event["name"])
|
| - if domain_value:
|
| - namespace_tree[domain_namespace_name] = domain_value
|
| -
|
| -while (references):
|
| - reference = references.pop();
|
| - path = reference.split(".");
|
| - parent_namespace = namespace_tree;
|
| - for path_segment in path[0:-1]:
|
| - if path_segment not in parent_namespace:
|
| - parent_namespace[path_segment] = {}
|
| - parent_namespace = parent_namespace[path_segment]
|
| - if (path[-1] not in parent_namespace):
|
| - try:
|
| - domain = [d for d in domains if d["domain"] == path[0]][0]
|
| - ref_type = [t for t in domain["types"] if t["id"] == path[1]][0]
|
| - parent_namespace[ref_type["id"]] = CreateNamespace(path[0],
|
| - ref_type, ["properties"], ["kParam"])
|
| - except IndexError:
|
| - sys.stderr.write("Failed to resolve type [{0}].\n".format(reference))
|
| - sys.exit(1)
|
| -
|
| -for (namespace_name, namespace) in namespace_tree.items():
|
| - namespace["kName"] = namespace_name
|
| -
|
| -with open(sys.argv[3], "w") as f:
|
| - CreateBody(namespace_tree, blink_version, f)
|
| -
|
| -with open(sys.argv[4], "w") as f:
|
| - CreateHeader(namespace_tree, f)
|
|
|