From 36d22d82aa202bb199967e9512281e9a53db42c9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 21:33:14 +0200 Subject: Adding upstream version 115.7.0esr. Signed-off-by: Daniel Baumann --- dom/base/gen-usecounters.py | 74 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100755 dom/base/gen-usecounters.py (limited to 'dom/base/gen-usecounters.py') diff --git a/dom/base/gen-usecounters.py b/dom/base/gen-usecounters.py new file mode 100755 index 0000000000..bd0dba7b0b --- /dev/null +++ b/dom/base/gen-usecounters.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python + +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +import os +import sys + +sys.path.append(os.path.dirname(__file__)) + +import usecounters + +AUTOGENERATED_WARNING_COMMENT = ( + "/* THIS FILE IS AUTOGENERATED BY gen-usecounters.py - DO NOT EDIT */" +) + + +def generate_list(f, counters): + def print_optional_macro_declare(name): + print( + """ +#ifndef %(name)s +#define %(name)s(interface_, name_) // nothing +#define DEFINED_%(name)s +#endif +""" + % {"name": name}, + file=f, + ) + + def print_optional_macro_undeclare(name): + print( + """ +#ifdef DEFINED_%(name)s +#undef DEFINED_%(name)s +#undef %(name)s +#endif +""" + % {"name": name}, + file=f, + ) + + print(AUTOGENERATED_WARNING_COMMENT, file=f) + + print_optional_macro_declare("USE_COUNTER_DOM_METHOD") + print_optional_macro_declare("USE_COUNTER_DOM_ATTRIBUTE") + print_optional_macro_declare("USE_COUNTER_CUSTOM") + + for counter in counters: + if counter["type"] == "method": + print( + "USE_COUNTER_DOM_METHOD(%s, %s)" + % (counter["interface_name"], counter["method_name"]), + file=f, + ) + elif counter["type"] == "attribute": + print( + "USE_COUNTER_DOM_ATTRIBUTE(%s, %s)" + % (counter["interface_name"], counter["attribute_name"]), + file=f, + ) + elif counter["type"] == "custom": + desc = counter["desc"].replace("\\", r"\\").replace('"', r"\"") + print('USE_COUNTER_CUSTOM(%s, "%s")' % (counter["name"], desc), file=f) + + print_optional_macro_undeclare("USE_COUNTER_DOM_METHOD") + print_optional_macro_undeclare("USE_COUNTER_DOM_ATTRIBUTE") + print_optional_macro_undeclare("USE_COUNTER_CUSTOM") + + +def use_counter_list(output_header, conf_filename): + counters = usecounters.read_conf(conf_filename) + generate_list(output_header, counters) -- cgit v1.2.3