import changes from `dev' branch of rmottola/Arctic-Fox:

- Bug 1123516 - Implement maplike/setlike in WebIDL parser; r=bz (5d62bcd93)
- Bug 1140324 - Remove __noSuchMethod__ handling from WebIDL parser and throw an exception instead. r=peterv (f7ea99339)
- Bug 1123516 - Implement maplike/setlike in WebIDL Codegen; r=b (0ca39b335)
- Bug 1183604, add some more assertions to help implementing new cycle collectable classes, r=mccr8 (1e66d29fe)
- Bug 1178665 - Part 1: Make Promise::DispatchToMicroTask public. r=khuey (b962e6006)
- Bug 1178665 - Part 2 - Adapt to latest Animation.finish procedure changes. r=bbirtles (33219fc0d)
- Bug 1178665 - Part 3: Make finish notifications asynchronously in most cases. r=bbirtles, r=smaug (144c0944a)
- Bug 1180770 part 1. Remove the unused ThrowNotEnoughArgsError. r=peterv (8bc1690f5)
- Bug 1180770 part 2. Remove the unused ifaceName/memberName arguments of ThrowMethodFailedWithDetails and rename it to ThrowMethodFailed. r=peterv (ee4900547)
- Bug 1135961. Implement subclassing of DOM objects. r=peterv (8e7e67b88)
- Bug 1170691 - part 1 - add the generating script's directory to sys.path in file_generate.py; r=glandium (dd1520952)
- Bug 1168409 - part 1 - avoid importing buildconfig in histogram_tools.py; r=gfritzsche (6a46dce23)
- Bug 1168409 - part 2 - avoiding importing usecounters in histogram_tools.py; r=gfritzsche (21a468303)
- Bug 1144397. Disallow using fill when dedent would do. r=peterv (544d4978d)
- Bug 1158806. Don't try to include stuff for a generated hasInstance hook if we have no interface object, since in that case we don't need the include. r=peterv (d280a1608)
- missing bit of Bug 1161627 - part 2 - machine-convert TemporaryRef<T> to already_AddRefed<T> (c51384311)
- Bug 1166910 followup: Add missing 'override' keyword to HTMLImageElement method GetImageReferrerPolicy. rs=ehsan (9e3dc8e6d)
- Bug 1174913 - remove unnecessary attribute parsing. r=bz (fdb769eda)
- Bug 1170680 - Do not add non-animated images to the visible list in response to UNLOCKED_DRAW. r=tn (a594883e8)
- Bug 1174923 - Stop delaying the document load event until images are decoded. r=tn a=kwierso (caee1b25f)
- Bug 968923 - part 3b - propagating use counters from SVG images into owning/parent documents; r=seth (234a41484)
- Bug 968923 - part 3a - add core DOM use counter functionality; r=smaug (98bb77358)
- Bug 968923 - part 3c - miscellaneous telemetry changes for use counters; r=gfritzsche (83adec291)
- Bug 968923 - part 4 - hook up use counters to WebIDL bindings; r=bz (8545e9a9b)
- Bug 771367 - Update test_animations_omta.html to support testing pseudo-elements. r=dbaron (4b2e5481b)
- Bug 1177563 - Test that we share agent rule processors across different documents. r=dbaron (d64146359)
- Bug 1181450 - Make GENERATED_FILES more visible during the build by printing their name when they are being generated. r=gps (b0c2166e8)
- Bug 1215526 - part 1 - pass dependencies file to file_generate.py; r=glandium (a14ea304a)
- Bug 1215526 - part 2 - write dependencies to file_generate.py's depfile; r=glandium (dc49ad380)
This commit is contained in:
2021-06-29 09:54:02 +08:00
parent 3697b9103c
commit 604a6d61ce
92 changed files with 4040 additions and 376 deletions
@@ -15,6 +15,7 @@ import sys
import traceback
from mozbuild.util import FileAvoidWrite
from mozbuild.makeutil import Makefile
def main(argv):
parser = argparse.ArgumentParser('Generate a file from a Python script',
@@ -25,12 +26,24 @@ def main(argv):
help='The method of the script to invoke')
parser.add_argument('output_file', metavar='output-file', type=str,
help='The file to generate')
parser.add_argument('dep_file', metavar='dep-file', type=str,
help='File to write any additional make dependencies to')
parser.add_argument('additional_arguments', metavar='arg', nargs='*',
help="Additional arguments to the script's main() method")
args = parser.parse_args(argv)
script = args.python_script
# Permit the script to import modules from the same directory in which it
# resides. The justification for doing this is that if we were invoking
# the script as:
#
# python script arg1...
#
# then importing modules from the script's directory would come for free.
# Since we're invoking the script in a roundabout way, we provide this
# bit of convenience.
sys.path.append(os.path.dirname(script))
with open(script, 'r') as fh:
module = imp.load_module('script', fh, script,
('.py', 'r', imp.PY_SOURCE))
@@ -44,6 +57,16 @@ def main(argv):
try:
with FileAvoidWrite(args.output_file) as output:
ret = module.__dict__[method](output, *args.additional_arguments)
# We treat sets as a statement of success. Everything else
# is an error (so scripts can conveniently |return 1| or
# similar).
if isinstance(ret, set) and ret:
mk = Makefile()
mk.create_rule([args.output_file]).add_dependencies(ret)
with FileAvoidWrite(args.dep_file) as dep_file:
mk.dump(dep_file)
# The script succeeded, so reset |ret| to indicate that.
ret = None
except IOError as e:
print('Error opening file "{0}"'.format(e.filename), file=sys.stderr)
traceback.print_exc()
@@ -502,12 +502,16 @@ class RecursiveMakeBackend(CommonBackend):
self._process_exports(obj, obj.exports, backend_file)
elif isinstance(obj, GeneratedFile):
dep_file = "%s.pp" % obj.output
backend_file.write('GENERATED_FILES += %s\n' % obj.output)
backend_file.write('EXTRA_MDDEPEND_FILES += %s\n' % dep_file)
if obj.script:
backend_file.write("""{output}: {script}{inputs}
\t$(call py_action,file_generate,{script} {method} {output}{inputs})
\t$(REPORT_BUILD)
\t$(call py_action,file_generate,{script} {method} {output} $(MDDEPDIR)/{dep_file}{inputs})
""".format(output=obj.output,
dep_file=dep_file,
inputs=' ' + ' '.join(obj.inputs) if obj.inputs else '',
script=obj.script,
method=obj.method))
@@ -693,6 +693,9 @@ VARIABLES = {
GENERATED_FILES += ['bar.c']
bar = GENERATED_FILES['bar.c']
bar.script = 'generate.py:make_bar'
The chosen script entry point may optionally return a set of strings,
indicating extra files the output depends on.
""", 'export'),
'DEFINES': (OrderedDict, dict,
@@ -375,14 +375,19 @@ class TestRecursiveMakeBackend(BackendTester):
expected = [
'GENERATED_FILES += bar.c',
'EXTRA_MDDEPEND_FILES += bar.c.pp',
'bar.c: %s/generate-bar.py' % env.topsrcdir,
'$(call py_action,file_generate,%s/generate-bar.py baz bar.c)' % env.topsrcdir,
'$(REPORT_BUILD)',
'$(call py_action,file_generate,%s/generate-bar.py baz bar.c $(MDDEPDIR)/bar.c.pp)' % env.topsrcdir,
'',
'GENERATED_FILES += foo.c',
'EXTRA_MDDEPEND_FILES += foo.c.pp',
'foo.c: %s/generate-foo.py %s/foo-data' % (env.topsrcdir, env.topsrcdir),
'$(call py_action,file_generate,%s/generate-foo.py main foo.c %s/foo-data)' % (env.topsrcdir, env.topsrcdir),
'$(REPORT_BUILD)',
'$(call py_action,file_generate,%s/generate-foo.py main foo.c $(MDDEPDIR)/foo.c.pp %s/foo-data)' % (env.topsrcdir, env.topsrcdir),
'',
'GENERATED_FILES += quux.c',
'EXTRA_MDDEPEND_FILES += quux.c.pp',
]
self.maxDiff = None