diff --git a/webkit2gtk3-python3.patch b/webkit2gtk3-python3.patch deleted file mode 100644 index 3ee7ed2..0000000 --- a/webkit2gtk3-python3.patch +++ /dev/null @@ -1,1943 +0,0 @@ -Index: webkitgtk-2.21.5/Source/cmake/WebKitCommon.cmake -=================================================================== ---- webkitgtk-2.21.5.orig/Source/cmake/WebKitCommon.cmake 2018-07-03 11:11:27.000000000 +0200 -+++ webkitgtk-2.21.5/Source/cmake/WebKitCommon.cmake 2018-07-24 11:54:06.378074739 +0200 -@@ -21,9 +21,6 @@ if (NOT HAS_RUN_WEBKIT_COMMON) - find_package(PerlModules COMPONENTS JSON::PP REQUIRED) - - find_package(PythonInterp 2.7.0 REQUIRED) -- if (PYTHON_VERSION_MAJOR GREATER 2) -- message(FATAL_ERROR "Python 2 is required, but Python ${PYTHON_VERSION_MAJOR} was found.") -- endif () - - # We cannot check for RUBY_FOUND because it is set only when the full package is installed and - # the only thing we need is the interpreter. Unlike Python, cmake does not provide a macro -Index: webkitgtk-2.21.5/Source/JavaScriptCore/disassembler/udis86/ud_opcode.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/disassembler/udis86/ud_opcode.py 2018-04-18 08:26:39.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/disassembler/udis86/ud_opcode.py 2018-07-24 11:54:06.378074739 +0200 -@@ -550,10 +550,10 @@ class UdOpcodeTables(object): - entries = tbl.entries() - for k, e in entries: - if isinstance(e, UdOpcodeTable): -- self.log("%s |-<%02x> %s" % (indent, k, e)) -+ self.log("%s |-<%02x> %s" % (indent, int(k), e)) - printWalk(e, indent + " |") - elif isinstance(e, UdInsnDef): -- self.log("%s |-<%02x> %s" % (indent, k, e)) -+ self.log("%s |-<%02x> %s" % (indent, int(k), e)) - printWalk(self.root) - - -Index: webkitgtk-2.21.5/Source/JavaScriptCore/generate-bytecode-files -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/generate-bytecode-files 2018-05-23 16:18:48.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/generate-bytecode-files 2018-07-24 11:54:06.378074739 +0200 -@@ -94,6 +94,12 @@ def openOrExit(path, mode): - print("I/O error opening {0}, ({1}): {2}".format(path, e.errno, e.strerror)) - exit(1) - -+def dowrite(file, str): -+ if sys.version_info.major == 2: -+ file.write(str) -+ else: -+ file.write(bytes(str, "utf-8")) -+ - def hashFile(file): - sha1 = hashlib.sha1() - file.seek(0) -@@ -112,31 +118,31 @@ def toCpp(name): - - - def writeInstructionAccessor(bytecodeHFile, typeName, name): -- bytecodeHFile.write(" {0}& {1}() {{ return *bitwise_cast<{0}*>(&m_{1}); }}\n".format(typeName, name)) -- bytecodeHFile.write(" const {0}& {1}() const {{ return *bitwise_cast(&m_{1}); }}\n".format(typeName, name)) -+ dowrite(bytecodeHFile, " {0}& {1}() {{ return *bitwise_cast<{0}*>(&m_{1}); }}\n".format(typeName, name)) -+ dowrite(bytecodeHFile, " const {0}& {1}() const {{ return *bitwise_cast(&m_{1}); }}\n".format(typeName, name)) - - - def writeInstructionMember(bytecodeHFile, typeName, name): -- bytecodeHFile.write(" std::aligned_storage::type m_{1};\n".format(typeName, name)) -- bytecodeHFile.write(" static_assert(sizeof({0}) <= sizeof(Instruction), \"Size of {0} shouldn't be bigger than an Instruction.\");\n".format(typeName, name)) -+ dowrite(bytecodeHFile, " std::aligned_storage::type m_{1};\n".format(typeName, name)) -+ dowrite(bytecodeHFile, " static_assert(sizeof({0}) <= sizeof(Instruction), \"Size of {0} shouldn't be bigger than an Instruction.\");\n".format(typeName, name)) - - def writeStruct(bytecodeHFile, bytecode): -- bytecodeHFile.write("struct {0} {{\n".format(toCpp(bytecode["name"]))) -- bytecodeHFile.write("public:\n") -+ dowrite(bytecodeHFile, "struct {0} {{\n".format(toCpp(bytecode["name"]))) -+ dowrite(bytecodeHFile, "public:\n") - - writeInstructionAccessor(bytecodeHFile, "Opcode", "opcode") - for offset in bytecode["offsets"]: -- for name, typeName in offset.iteritems(): -+ for name, typeName in offset.items(): - writeInstructionAccessor(bytecodeHFile, typeName, name) - -- bytecodeHFile.write("\nprivate:\n") -- bytecodeHFile.write(" friend class LLIntOffsetsExtractor;\n\n") -+ dowrite(bytecodeHFile, "\nprivate:\n") -+ dowrite(bytecodeHFile, " friend class LLIntOffsetsExtractor;\n\n") - - writeInstructionMember(bytecodeHFile, "Opcode", "opcode") - for offset in bytecode["offsets"]: -- for name, typeName in offset.iteritems(): -+ for name, typeName in offset.items(): - writeInstructionMember(bytecodeHFile, typeName, name) -- bytecodeHFile.write("};\n\n") -+ dowrite(bytecodeHFile, "};\n\n") - - - if __name__ == "__main__": -@@ -220,25 +226,25 @@ if __name__ == "__main__": - print("Unexpected error parsing {0}: {1}".format(bytecodeJSONFile, sys.exc_info())) - - if bytecodeHFilename: -- bytecodeHFile.write(hFileHashString) -- bytecodeHFile.write(cCopyrightMsg % bytecodeJSONFile) -- bytecodeHFile.write("#pragma once\n\n") -+ dowrite(bytecodeHFile, hFileHashString) -+ dowrite(bytecodeHFile, cCopyrightMsg % bytecodeJSONFile) -+ dowrite(bytecodeHFile, "#pragma once\n\n") - - if bytecodeStructsHFilename: -- bytecodeStructsHFile.write(hFileHashString) -- bytecodeStructsHFile.write(cCopyrightMsg % bytecodeJSONFile) -- bytecodeStructsHFile.write("#pragma once\n\n") -- bytecodeStructsHFile.write("#include \"Instruction.h\"\n") -- bytecodeStructsHFile.write("\n") -+ dowrite(bytecodeStructsHFile, hFileHashString) -+ dowrite(bytecodeStructsHFile, cCopyrightMsg % bytecodeJSONFile) -+ dowrite(bytecodeStructsHFile, "#pragma once\n\n") -+ dowrite(bytecodeStructsHFile, "#include \"Instruction.h\"\n") -+ dowrite(bytecodeStructsHFile, "\n") - - if initASMFileName: -- initBytecodesFile.write(asmFileHashString) -- initBytecodesFile.write(asmCopyrightMsg % bytecodeJSONFile) -+ dowrite(initBytecodesFile, asmFileHashString) -+ dowrite(initBytecodesFile, asmCopyrightMsg % bytecodeJSONFile) - initASMBytecodeNum = 0 - - for section in bytecodeSections: - if bytecodeHFilename and section['emitInHFile']: -- bytecodeHFile.write("#define FOR_EACH_{0}_ID(macro) \\\n".format(section["macroNameComponent"])) -+ dowrite(bytecodeHFile, "#define FOR_EACH_{0}_ID(macro) \\\n".format(section["macroNameComponent"])) - firstMacro = True - defaultLength = 1 - if "defaultLength" in section: -@@ -247,7 +253,7 @@ if __name__ == "__main__": - bytecodeNum = 0 - for bytecode in section["bytecodes"]: - if not firstMacro: -- bytecodeHFile.write(" \\\n") -+ dowrite(bytecodeHFile, " \\\n") - - length = defaultLength - if "length" in bytecode: -@@ -256,39 +262,39 @@ if __name__ == "__main__": - # Add one for the opcode - length = len(bytecode["offsets"]) + 1 - -- bytecodeHFile.write(" macro({0}, {1})".format(bytecode["name"], length)) -+ dowrite(bytecodeHFile, " macro({0}, {1})".format(bytecode["name"], length)) - firstMacro = False - bytecodeNum = bytecodeNum + 1 - -- bytecodeHFile.write("\n\n") -- bytecodeHFile.write("#define NUMBER_OF_{0}_IDS {1}\n\n".format(section["macroNameComponent"], bytecodeNum)) -+ dowrite(bytecodeHFile, "\n\n") -+ dowrite(bytecodeHFile, "#define NUMBER_OF_{0}_IDS {1}\n\n".format(section["macroNameComponent"], bytecodeNum)) - - - if bytecodeStructsHFilename and section['emitInStructsFile']: -- bytecodeStructsHFile.write("namespace JSC {\n\n") -+ dowrite(bytecodeStructsHFile, "namespace JSC {\n\n") - - for bytecode in section["bytecodes"]: - if not "offsets" in bytecode: - continue - writeStruct(bytecodeStructsHFile, bytecode) - -- bytecodeStructsHFile.write("} // namespace JSC \n") -+ dowrite(bytecodeStructsHFile, "} // namespace JSC \n") - - if bytecodeHFilename and section['emitOpcodeIDStringValuesInHFile']: - bytecodeNum = 0 - for bytecode in section["bytecodes"]: -- bytecodeHFile.write("#define {0}_value_string \"{1}\"\n".format(bytecode["name"], bytecodeNum)) -+ dowrite(bytecodeHFile, "#define {0}_value_string \"{1}\"\n".format(bytecode["name"], bytecodeNum)) - firstMacro = False - bytecodeNum = bytecodeNum + 1 - -- bytecodeHFile.write("\n") -+ dowrite(bytecodeHFile, "\n") - - if initASMFileName and section['emitInASMFile']: - prefix = "" - if "asmPrefix" in section: - prefix = section["asmPrefix"] - for bytecode in section["bytecodes"]: -- initBytecodesFile.write("setEntryAddress({0}, _{1}{2})\n".format(initASMBytecodeNum, prefix, bytecode["name"])) -+ dowrite(initBytecodesFile, "setEntryAddress({0}, _{1}{2})\n".format(initASMBytecodeNum, prefix, bytecode["name"])) - initASMBytecodeNum = initASMBytecodeNum + 1 - - if bytecodeHFilename: -Index: webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator.py 2018-04-18 08:26:39.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator.py 2018-07-24 11:54:06.378074739 +0200 -@@ -28,8 +28,8 @@ import logging - import os.path - import re - --from generator import ucfirst, Generator --from models import PrimitiveType, ObjectType, ArrayType, EnumType, AliasedType, Frameworks -+from .generator import ucfirst, Generator -+from .models import PrimitiveType, ObjectType, ArrayType, EnumType, AliasedType, Frameworks - - log = logging.getLogger('global') - -Index: webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py 2018-04-18 08:26:39.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py 2018-07-24 11:54:06.378074739 +0200 -@@ -30,8 +30,8 @@ import string - import re - from string import Template - --from cpp_generator import CppGenerator --from cpp_generator_templates import CppGeneratorTemplates as CppTemplates -+from .cpp_generator import CppGenerator -+from .cpp_generator_templates import CppGeneratorTemplates as CppTemplates - - log = logging.getLogger('global') - -@@ -52,7 +52,7 @@ class CppAlternateBackendDispatcherHeade - sections = [] - sections.append(self.generate_license()) - sections.append(Template(CppTemplates.AlternateDispatchersHeaderPrelude).substitute(None, **template_args)) -- sections.append('\n'.join(filter(None, map(self._generate_handler_declarations_for_domain, domains)))) -+ sections.append('\n'.join([_f for _f in map(self._generate_handler_declarations_for_domain, domains) if _f])) - sections.append(Template(CppTemplates.AlternateDispatchersHeaderPostlude).substitute(None, **template_args)) - return '\n\n'.join(sections) - -Index: webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py 2018-04-18 08:26:39.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py 2018-07-24 11:54:06.378074739 +0200 -@@ -30,10 +30,10 @@ import re - import string - from string import Template - --from cpp_generator import CppGenerator --from cpp_generator_templates import CppGeneratorTemplates as CppTemplates --from generator import Generator, ucfirst --from models import EnumType -+from .cpp_generator import CppGenerator -+from .cpp_generator_templates import CppGeneratorTemplates as CppTemplates -+from .generator import Generator, ucfirst -+from .models import EnumType - - log = logging.getLogger('global') - -@@ -46,7 +46,7 @@ class CppBackendDispatcherHeaderGenerato - return "%sBackendDispatchers.h" % self.protocol_name() - - def domains_to_generate(self): -- return filter(lambda domain: len(self.commands_for_domain(domain)) > 0, Generator.domains_to_generate(self)) -+ return [domain for domain in Generator.domains_to_generate(self) if len(self.commands_for_domain(domain)) > 0] - - def generate_output(self): - typedefs = [('String', 'ErrorString')] -@@ -62,8 +62,8 @@ class CppBackendDispatcherHeaderGenerato - sections.append(Template(CppTemplates.HeaderPrelude).substitute(None, **header_args)) - if self.model().framework.setting('alternate_dispatchers', False): - sections.append(self._generate_alternate_handler_forward_declarations_for_domains(domains)) -- sections.extend(map(self._generate_handler_declarations_for_domain, domains)) -- sections.extend(map(self._generate_dispatcher_declarations_for_domain, domains)) -+ sections.extend(list(map(self._generate_handler_declarations_for_domain, domains))) -+ sections.extend(list(map(self._generate_dispatcher_declarations_for_domain, domains))) - sections.append(Template(CppTemplates.HeaderPostlude).substitute(None, **header_args)) - return "\n\n".join(sections) - -@@ -198,7 +198,7 @@ class CppBackendDispatcherHeaderGenerato - commands = self.commands_for_domain(domain) - if len(commands) > 0: - declarations.append('private:') -- declarations.extend(map(self._generate_dispatcher_declaration_for_command, commands)) -+ declarations.extend(list(map(self._generate_dispatcher_declaration_for_command, commands))) - - declaration_args = { - 'domainName': domain.domain_name, -Index: webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py 2018-06-25 08:30:04.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py 2018-07-24 11:54:06.378074739 +0200 -@@ -29,10 +29,10 @@ import logging - import string - from string import Template - --from cpp_generator import CppGenerator --from cpp_generator_templates import CppGeneratorTemplates as CppTemplates --from generator import Generator, ucfirst --from models import ObjectType, ArrayType -+from .cpp_generator import CppGenerator -+from .cpp_generator_templates import CppGeneratorTemplates as CppTemplates -+from .generator import Generator, ucfirst -+from .models import ObjectType, ArrayType - - log = logging.getLogger('global') - -@@ -45,7 +45,7 @@ class CppBackendDispatcherImplementation - return "%sBackendDispatchers.cpp" % self.protocol_name() - - def domains_to_generate(self): -- return filter(lambda domain: len(self.commands_for_domain(domain)) > 0, Generator.domains_to_generate(self)) -+ return [domain for domain in Generator.domains_to_generate(self) if len(self.commands_for_domain(domain)) > 0] - - def generate_output(self): - secondary_includes = self._generate_secondary_header_includes() -@@ -65,7 +65,7 @@ class CppBackendDispatcherImplementation - sections.append(self.generate_license()) - sections.append(Template(CppTemplates.ImplementationPrelude).substitute(None, **header_args)) - sections.append("\n".join(map(self._generate_handler_class_destructor_for_domain, self.domains_to_generate()))) -- sections.extend(map(self._generate_dispatcher_implementations_for_domain, self.domains_to_generate())) -+ sections.extend(list(map(self._generate_dispatcher_implementations_for_domain, self.domains_to_generate()))) - sections.append(Template(CppTemplates.ImplementationPostlude).substitute(None, **header_args)) - return "\n\n".join(sections) - -Index: webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py 2018-04-18 08:26:39.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py 2018-07-24 11:54:06.378074739 +0200 -@@ -30,10 +30,10 @@ import re - import string - from string import Template - --from cpp_generator import CppGenerator --from cpp_generator_templates import CppGeneratorTemplates as CppTemplates --from generator import Generator, ucfirst --from models import EnumType -+from .cpp_generator import CppGenerator -+from .cpp_generator_templates import CppGeneratorTemplates as CppTemplates -+from .generator import Generator, ucfirst -+from .models import EnumType - - log = logging.getLogger('global') - -@@ -46,7 +46,7 @@ class CppFrontendDispatcherHeaderGenerat - return "%sFrontendDispatchers.h" % self.protocol_name() - - def domains_to_generate(self): -- return filter(lambda domain: len(self.events_for_domain(domain)) > 0, Generator.domains_to_generate(self)) -+ return [domain for domain in Generator.domains_to_generate(self) if len(self.events_for_domain(domain)) > 0] - - def generate_output(self): - header_args = { -@@ -57,7 +57,7 @@ class CppFrontendDispatcherHeaderGenerat - sections = [] - sections.append(self.generate_license()) - sections.append(Template(CppTemplates.HeaderPrelude).substitute(None, **header_args)) -- sections.extend(map(self._generate_dispatcher_declarations_for_domain, self.domains_to_generate())) -+ sections.extend(list(map(self._generate_dispatcher_declarations_for_domain, self.domains_to_generate()))) - sections.append(Template(CppTemplates.HeaderPostlude).substitute(None, **header_args)) - return "\n\n".join(sections) - -Index: webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py 2018-06-25 08:30:04.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py 2018-07-24 11:54:06.378074739 +0200 -@@ -29,10 +29,10 @@ import logging - import string - from string import Template - --from cpp_generator import CppGenerator --from cpp_generator_templates import CppGeneratorTemplates as CppTemplates --from generator import Generator, ucfirst --from models import ObjectType, ArrayType -+from .cpp_generator import CppGenerator -+from .cpp_generator_templates import CppGeneratorTemplates as CppTemplates -+from .generator import Generator, ucfirst -+from .models import ObjectType, ArrayType - - log = logging.getLogger('global') - -@@ -45,7 +45,7 @@ class CppFrontendDispatcherImplementatio - return "%sFrontendDispatchers.cpp" % self.protocol_name() - - def domains_to_generate(self): -- return filter(lambda domain: len(self.events_for_domain(domain)) > 0, Generator.domains_to_generate(self)) -+ return [domain for domain in Generator.domains_to_generate(self) if len(self.events_for_domain(domain)) > 0] - - def generate_output(self): - header_args = { -@@ -56,7 +56,7 @@ class CppFrontendDispatcherImplementatio - sections = [] - sections.append(self.generate_license()) - sections.append(Template(CppTemplates.ImplementationPrelude).substitute(None, **header_args)) -- sections.extend(map(self._generate_dispatcher_implementations_for_domain, self.domains_to_generate())) -+ sections.extend(list(map(self._generate_dispatcher_implementations_for_domain, self.domains_to_generate()))) - sections.append(Template(CppTemplates.ImplementationPostlude).substitute(None, **header_args)) - return "\n\n".join(sections) - -Index: webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py 2018-06-25 08:30:04.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py 2018-07-24 11:54:06.378074739 +0200 -@@ -31,10 +31,10 @@ import string - from operator import methodcaller - from string import Template - --from cpp_generator import CppGenerator --from cpp_generator_templates import CppGeneratorTemplates as CppTemplates --from generator import Generator, ucfirst --from models import EnumType, ObjectType, PrimitiveType, AliasedType, ArrayType, Frameworks -+from .cpp_generator import CppGenerator -+from .cpp_generator_templates import CppGeneratorTemplates as CppTemplates -+from .generator import Generator, ucfirst -+from .models import EnumType, ObjectType, PrimitiveType, AliasedType, ArrayType, Frameworks - - log = logging.getLogger('global') - -@@ -62,8 +62,8 @@ class CppProtocolTypesHeaderGenerator(Cp - sections.append(self._generate_forward_declarations(domains)) - sections.append(self._generate_typedefs(domains)) - sections.extend(self._generate_enum_constant_value_conversion_methods()) -- builder_sections = map(self._generate_builders_for_domain, domains) -- sections.extend(filter(lambda section: len(section) > 0, builder_sections)) -+ builder_sections = list(map(self._generate_builders_for_domain, domains)) -+ sections.extend([section for section in builder_sections if len(section) > 0]) - sections.append(self._generate_forward_declarations_for_binding_traits()) - sections.extend(self._generate_declarations_for_enum_conversion_methods()) - sections.append('} // namespace Protocol') -@@ -87,8 +87,8 @@ class CppProtocolTypesHeaderGenerator(Cp - - for domain in domains: - declaration_types = [decl.type for decl in self.type_declarations_for_domain(domain)] -- object_types = filter(lambda _type: isinstance(_type, ObjectType), declaration_types) -- enum_types = filter(lambda _type: isinstance(_type, EnumType), declaration_types) -+ object_types = [_type for _type in declaration_types if isinstance(_type, ObjectType)] -+ enum_types = [_type for _type in declaration_types if isinstance(_type, EnumType)] - sorted(object_types, key=methodcaller('raw_name')) - sorted(enum_types, key=methodcaller('raw_name')) - -@@ -113,8 +113,8 @@ class CppProtocolTypesHeaderGenerator(Cp - """ % '\n\n'.join(sections) - - def _generate_typedefs(self, domains): -- sections = map(self._generate_typedefs_for_domain, domains) -- sections = filter(lambda text: len(text) > 0, sections) -+ sections = list(map(self._generate_typedefs_for_domain, domains)) -+ sections = [text for text in sections if len(text) > 0] - - if len(sections) == 0: - return '' -@@ -125,8 +125,8 @@ class CppProtocolTypesHeaderGenerator(Cp - - def _generate_typedefs_for_domain(self, domain): - type_declarations = self.type_declarations_for_domain(domain) -- primitive_declarations = filter(lambda decl: isinstance(decl.type, AliasedType), type_declarations) -- array_declarations = filter(lambda decl: isinstance(decl.type, ArrayType), type_declarations) -+ primitive_declarations = [decl for decl in type_declarations if isinstance(decl.type, AliasedType)] -+ array_declarations = [decl for decl in type_declarations if isinstance(decl.type, ArrayType)] - if len(primitive_declarations) == 0 and len(array_declarations) == 0: - return '' - -@@ -186,7 +186,7 @@ class CppProtocolTypesHeaderGenerator(Cp - elif isinstance(type_declaration.type, ObjectType): - sections.append(self._generate_class_for_object_declaration(type_declaration, domain)) - -- sections = filter(lambda section: len(section) > 0, sections) -+ sections = [section for section in sections if len(section) > 0] - if len(sections) == 0: - return '' - -@@ -200,9 +200,9 @@ class CppProtocolTypesHeaderGenerator(Cp - if len(type_declaration.type_members) == 0: - return '' - -- enum_members = filter(lambda member: isinstance(member.type, EnumType) and member.type.is_anonymous, type_declaration.type_members) -- required_members = filter(lambda member: not member.is_optional, type_declaration.type_members) -- optional_members = filter(lambda member: member.is_optional, type_declaration.type_members) -+ enum_members = [member for member in type_declaration.type_members if isinstance(member.type, EnumType) and member.type.is_anonymous] -+ required_members = [member for member in type_declaration.type_members if not member.is_optional] -+ optional_members = [member for member in type_declaration.type_members if member.is_optional] - object_name = type_declaration.type_name - - lines = [] -@@ -261,7 +261,7 @@ class CppProtocolTypesHeaderGenerator(Cp - else: - return ' ' + line - -- indented_lines = map(apply_indentation, self._generate_struct_for_enum_type(enum_member.member_name, enum_member.type)) -+ indented_lines = list(map(apply_indentation, self._generate_struct_for_enum_type(enum_member.member_name, enum_member.type))) - return '\n'.join(indented_lines) - - def _generate_struct_for_enum_type(self, enum_name, enum_type): -@@ -275,7 +275,7 @@ class CppProtocolTypesHeaderGenerator(Cp - - def _generate_builder_state_enum(self, type_declaration): - lines = [] -- required_members = filter(lambda member: not member.is_optional, type_declaration.type_members) -+ required_members = [member for member in type_declaration.type_members if not member.is_optional] - enum_values = [] - - lines.append(' enum {') -@@ -343,7 +343,7 @@ class CppProtocolTypesHeaderGenerator(Cp - - for domain in self.domains_to_generate(): - type_declarations = self.type_declarations_for_domain(domain) -- declarations_to_generate = filter(lambda decl: self.type_needs_shape_assertions(decl.type), type_declarations) -+ declarations_to_generate = [decl for decl in type_declarations if self.type_needs_shape_assertions(decl.type)] - - for type_declaration in declarations_to_generate: - for type_member in type_declaration.type_members: -@@ -392,8 +392,8 @@ class CppProtocolTypesHeaderGenerator(Cp - for domain in self.domains_to_generate(): - type_declarations = self.type_declarations_for_domain(domain) - declaration_types = [decl.type for decl in type_declarations] -- object_types = filter(lambda _type: isinstance(_type, ObjectType), declaration_types) -- enum_types = filter(lambda _type: isinstance(_type, EnumType), declaration_types) -+ object_types = [_type for _type in declaration_types if isinstance(_type, ObjectType)] -+ enum_types = [_type for _type in declaration_types if isinstance(_type, EnumType)] - if len(object_types) + len(enum_types) == 0: - continue - -Index: webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py 2018-06-25 08:30:04.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py 2018-07-24 11:54:06.378074739 +0200 -@@ -30,10 +30,10 @@ import string - from string import Template - from operator import methodcaller - --from cpp_generator import CppGenerator --from cpp_generator_templates import CppGeneratorTemplates as CppTemplates --from generator import Generator, ucfirst --from models import AliasedType, ArrayType, EnumType, ObjectType -+from .cpp_generator import CppGenerator -+from .cpp_generator_templates import CppGeneratorTemplates as CppTemplates -+from .generator import Generator, ucfirst -+from .models import AliasedType, ArrayType, EnumType, ObjectType - - log = logging.getLogger('global') - -@@ -65,8 +65,8 @@ class CppProtocolTypesImplementationGene - sections.append('namespace Protocol {') - sections.extend(self._generate_enum_mapping_and_conversion_methods(domains)) - sections.append(self._generate_open_field_names()) -- builder_sections = map(self._generate_builders_for_domain, domains) -- sections.extend(filter(lambda section: len(section) > 0, builder_sections)) -+ builder_sections = list(map(self._generate_builders_for_domain, domains)) -+ sections.extend([section for section in builder_sections if len(section) > 0]) - sections.append('} // namespace Protocol') - sections.append(Template(CppTemplates.ImplementationPostlude).substitute(None, **header_args)) - -@@ -128,8 +128,8 @@ class CppProtocolTypesImplementationGene - - type_declarations = self.type_declarations_for_domain(domain) - declaration_types = [decl.type for decl in type_declarations] -- object_types = filter(lambda _type: isinstance(_type, ObjectType), declaration_types) -- enum_types = filter(lambda _type: isinstance(_type, EnumType), declaration_types) -+ object_types = [_type for _type in declaration_types if isinstance(_type, ObjectType)] -+ enum_types = [_type for _type in declaration_types if isinstance(_type, EnumType)] - if len(object_types) + len(enum_types) == 0: - return '' - -@@ -156,8 +156,8 @@ class CppProtocolTypesImplementationGene - sections = [] - sections.append('namespace %s {' % self.helpers_namespace()) - sections.extend(self._generate_enum_mapping()) -- enum_parser_sections = map(self._generate_enum_conversion_methods_for_domain, domains) -- sections.extend(filter(lambda section: len(section) > 0, enum_parser_sections)) -+ enum_parser_sections = list(map(self._generate_enum_conversion_methods_for_domain, domains)) -+ sections.extend([section for section in enum_parser_sections if len(section) > 0]) - if len(sections) == 1: - return [] # No declarations to emit, just the namespace. - -@@ -168,7 +168,7 @@ class CppProtocolTypesImplementationGene - lines = [] - for domain in self.domains_to_generate(): - type_declarations = self.type_declarations_for_domain(domain) -- for type_declaration in filter(lambda decl: Generator.type_has_open_fields(decl.type), type_declarations): -+ for type_declaration in [decl for decl in type_declarations if Generator.type_has_open_fields(decl.type)]: - open_members = Generator.open_fields(type_declaration) - for type_member in sorted(open_members, key=lambda member: member.member_name): - field_name = '::'.join(['Inspector', 'Protocol', domain.domain_name, ucfirst(type_declaration.type_name), ucfirst(type_member.member_name)]) -@@ -179,7 +179,7 @@ class CppProtocolTypesImplementationGene - def _generate_builders_for_domain(self, domain): - sections = [] - type_declarations = self.type_declarations_for_domain(domain) -- declarations_to_generate = filter(lambda decl: self.type_needs_shape_assertions(decl.type), type_declarations) -+ declarations_to_generate = [decl for decl in type_declarations if self.type_needs_shape_assertions(decl.type)] - - for type_declaration in declarations_to_generate: - for type_member in type_declaration.type_members: -@@ -200,8 +200,8 @@ class CppProtocolTypesImplementationGene - return Template(CppTemplates.ProtocolObjectRuntimeCast).substitute(None, **args) - - def _generate_assertion_for_object_declaration(self, object_declaration): -- required_members = filter(lambda member: not member.is_optional, object_declaration.type_members) -- optional_members = filter(lambda member: member.is_optional, object_declaration.type_members) -+ required_members = [member for member in object_declaration.type_members if not member.is_optional] -+ optional_members = [member for member in object_declaration.type_members if member.is_optional] - should_count_properties = not Generator.type_has_open_fields(object_declaration.type) - lines = [] - -Index: webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_js_backend_commands.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/inspector/scripts/codegen/generate_js_backend_commands.py 2018-04-18 08:26:39.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_js_backend_commands.py 2018-07-24 11:54:06.382074787 +0200 -@@ -30,9 +30,9 @@ import logging - import string - from string import Template - --from generator import Generator, ucfirst --from generator_templates import GeneratorTemplates as Templates --from models import EnumType -+from .generator import Generator, ucfirst -+from .generator_templates import GeneratorTemplates as Templates -+from .models import EnumType - - log = logging.getLogger('global') - -@@ -46,16 +46,16 @@ class JSBackendCommandsGenerator(Generat - - def should_generate_domain(self, domain): - type_declarations = self.type_declarations_for_domain(domain) -- domain_enum_types = filter(lambda declaration: isinstance(declaration.type, EnumType), type_declarations) -+ domain_enum_types = [declaration for declaration in type_declarations if isinstance(declaration.type, EnumType)] - return len(self.commands_for_domain(domain)) > 0 or len(self.events_for_domain(domain)) > 0 or len(domain_enum_types) > 0 - - def domains_to_generate(self): -- return filter(self.should_generate_domain, Generator.domains_to_generate(self)) -+ return list(filter(self.should_generate_domain, Generator.domains_to_generate(self))) - - def generate_output(self): - sections = [] - sections.append(self.generate_license()) -- sections.extend(map(self.generate_domain, self.domains_to_generate())) -+ sections.extend(list(map(self.generate_domain, self.domains_to_generate()))) - return "\n\n".join(sections) - - def generate_domain(self, domain): -@@ -70,7 +70,7 @@ class JSBackendCommandsGenerator(Generat - commands = self.commands_for_domain(domain) - events = self.events_for_domain(domain) - -- has_async_commands = any(map(lambda command: command.is_async, commands)) -+ has_async_commands = any([command.is_async for command in commands]) - if len(events) > 0 or has_async_commands: - lines.append('InspectorBackend.register%(domain)sDispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, "%(domain)s");' % args) - -Index: webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py 2018-04-18 08:26:39.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py 2018-07-24 11:54:06.382074787 +0200 -@@ -30,11 +30,11 @@ import string - import re - from string import Template - --from cpp_generator import CppGenerator --from generator import Generator --from models import Frameworks --from objc_generator import ObjCGenerator --from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates -+from .cpp_generator import CppGenerator -+from .generator import Generator -+from .models import Frameworks -+from .objc_generator import ObjCGenerator -+from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates - - log = logging.getLogger('global') - -@@ -47,7 +47,7 @@ class ObjCBackendDispatcherHeaderGenerat - return '%sBackendDispatchers.h' % self.protocol_name() - - def domains_to_generate(self): -- return filter(self.should_generate_commands_for_domain, Generator.domains_to_generate(self)) -+ return list(filter(self.should_generate_commands_for_domain, Generator.domains_to_generate(self))) - - def generate_output(self): - headers = [ -@@ -64,7 +64,7 @@ class ObjCBackendDispatcherHeaderGenerat - sections = [] - sections.append(self.generate_license()) - sections.append(Template(ObjCTemplates.BackendDispatcherHeaderPrelude).substitute(None, **header_args)) -- sections.extend(map(self._generate_objc_handler_declarations_for_domain, domains)) -+ sections.extend(list(map(self._generate_objc_handler_declarations_for_domain, domains))) - sections.append(Template(ObjCTemplates.BackendDispatcherHeaderPostlude).substitute(None, **header_args)) - return '\n\n'.join(sections) - -Index: webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py 2018-06-25 08:30:04.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py 2018-07-24 11:54:06.382074787 +0200 -@@ -30,11 +30,11 @@ import string - import re - from string import Template - --from cpp_generator import CppGenerator --from generator import Generator --from models import PrimitiveType, EnumType, AliasedType, Frameworks --from objc_generator import ObjCTypeCategory, ObjCGenerator, join_type_and_name --from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates -+from .cpp_generator import CppGenerator -+from .generator import Generator -+from .models import PrimitiveType, EnumType, AliasedType, Frameworks -+from .objc_generator import ObjCTypeCategory, ObjCGenerator, join_type_and_name -+from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates - - log = logging.getLogger('global') - -@@ -47,7 +47,7 @@ class ObjCBackendDispatcherImplementatio - return '%sBackendDispatchers.mm' % self.protocol_name() - - def domains_to_generate(self): -- return filter(self.should_generate_commands_for_domain, Generator.domains_to_generate(self)) -+ return list(filter(self.should_generate_commands_for_domain, Generator.domains_to_generate(self))) - - def generate_output(self): - secondary_headers = [ -@@ -65,7 +65,7 @@ class ObjCBackendDispatcherImplementatio - sections = [] - sections.append(self.generate_license()) - sections.append(Template(ObjCTemplates.BackendDispatcherImplementationPrelude).substitute(None, **header_args)) -- sections.extend(map(self._generate_handler_implementation_for_domain, domains)) -+ sections.extend(list(map(self._generate_handler_implementation_for_domain, domains))) - sections.append(Template(ObjCTemplates.BackendDispatcherImplementationPostlude).substitute(None, **header_args)) - return '\n\n'.join(sections) - -@@ -114,7 +114,7 @@ class ObjCBackendDispatcherImplementatio - if command.return_parameters: - lines.append(' Ref resultObject = JSON::Object::create();') - -- required_pointer_parameters = filter(lambda parameter: not parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type), command.return_parameters) -+ required_pointer_parameters = [parameter for parameter in command.return_parameters if not parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type)] - for parameter in required_pointer_parameters: - var_name = ObjCGenerator.identifier_to_objc_identifier(parameter.parameter_name) - lines.append(' THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(%s, @"%s");' % (var_name, var_name)) -@@ -122,7 +122,7 @@ class ObjCBackendDispatcherImplementatio - if objc_array_class and objc_array_class.startswith(self.objc_prefix()): - lines.append(' THROW_EXCEPTION_FOR_BAD_TYPE_IN_ARRAY(%s, [%s class]);' % (var_name, objc_array_class)) - -- optional_pointer_parameters = filter(lambda parameter: parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type), command.return_parameters) -+ optional_pointer_parameters = [parameter for parameter in command.return_parameters if parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type)] - for parameter in optional_pointer_parameters: - var_name = ObjCGenerator.identifier_to_objc_identifier(parameter.parameter_name) - lines.append(' THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(%s, @"%s");' % (var_name, var_name)) -Index: webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_header.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_header.py 2018-04-18 08:26:39.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_header.py 2018-07-24 11:54:06.382074787 +0200 -@@ -29,9 +29,9 @@ import logging - import string - from string import Template - --from generator import Generator --from objc_generator import ObjCGenerator --from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates -+from .generator import Generator -+from .objc_generator import ObjCGenerator -+from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates - - log = logging.getLogger('global') - -Index: webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_implementation.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_implementation.py 2018-04-18 08:26:39.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_implementation.py 2018-07-24 11:54:06.382074787 +0200 -@@ -29,9 +29,9 @@ import logging - import string - from string import Template - --from generator import Generator --from objc_generator import ObjCGenerator --from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates -+from .generator import Generator -+from .objc_generator import ObjCGenerator -+from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates - - log = logging.getLogger('global') - -Index: webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py 2018-06-25 08:30:04.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py 2018-07-24 11:54:06.382074787 +0200 -@@ -29,10 +29,10 @@ import logging - import string - from string import Template - --from cpp_generator import CppGenerator --from generator import Generator, ucfirst --from objc_generator import ObjCGenerator --from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates -+from .cpp_generator import CppGenerator -+from .generator import Generator, ucfirst -+from .objc_generator import ObjCGenerator -+from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates - - log = logging.getLogger('global') - -@@ -45,7 +45,7 @@ class ObjCFrontendDispatcherImplementati - return '%sEventDispatchers.mm' % self.protocol_name() - - def domains_to_generate(self): -- return filter(self.should_generate_events_for_domain, Generator.domains_to_generate(self)) -+ return list(filter(self.should_generate_events_for_domain, Generator.domains_to_generate(self))) - - def generate_output(self): - secondary_headers = [ -@@ -62,7 +62,7 @@ class ObjCFrontendDispatcherImplementati - sections = [] - sections.append(self.generate_license()) - sections.append(Template(ObjCTemplates.ImplementationPrelude).substitute(None, **header_args)) -- sections.extend(map(self._generate_event_dispatcher_implementations, domains)) -+ sections.extend(list(map(self._generate_event_dispatcher_implementations, domains))) - sections.append(Template(ObjCTemplates.ImplementationPostlude).substitute(None, **header_args)) - return '\n\n'.join(sections) - -@@ -100,7 +100,7 @@ class ObjCFrontendDispatcherImplementati - lines.append(' const FrontendRouter& router = _controller->frontendRouter();') - lines.append('') - -- required_pointer_parameters = filter(lambda parameter: not parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type), event.event_parameters) -+ required_pointer_parameters = [parameter for parameter in event.event_parameters if not parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type)] - for parameter in required_pointer_parameters: - var_name = ObjCGenerator.identifier_to_objc_identifier(parameter.parameter_name) - lines.append(' THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(%s, @"%s");' % (var_name, var_name)) -@@ -108,7 +108,7 @@ class ObjCFrontendDispatcherImplementati - if objc_array_class and objc_array_class.startswith(self.objc_prefix()): - lines.append(' THROW_EXCEPTION_FOR_BAD_TYPE_IN_ARRAY(%s, [%s class]);' % (var_name, objc_array_class)) - -- optional_pointer_parameters = filter(lambda parameter: parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type), event.event_parameters) -+ optional_pointer_parameters = [parameter for parameter in event.event_parameters if parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type)] - for parameter in optional_pointer_parameters: - var_name = ObjCGenerator.identifier_to_objc_identifier(parameter.parameter_name) - lines.append(' THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(%s, @"%s");' % (var_name, var_name)) -Index: webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_header.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_header.py 2018-04-18 08:26:39.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_header.py 2018-07-24 11:54:06.382074787 +0200 -@@ -29,10 +29,10 @@ import logging - import string - from string import Template - --from generator import Generator, ucfirst --from models import ObjectType, EnumType, Platforms --from objc_generator import ObjCGenerator, join_type_and_name --from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates -+from .generator import Generator, ucfirst -+from .models import ObjectType, EnumType, Platforms -+from .objc_generator import ObjCGenerator, join_type_and_name -+from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates - - log = logging.getLogger('global') - -@@ -60,9 +60,9 @@ class ObjCHeaderGenerator(ObjCGenerator) - } - - domains = self.domains_to_generate() -- type_domains = filter(self.should_generate_types_for_domain, domains) -- command_domains = filter(self.should_generate_commands_for_domain, domains) -- event_domains = filter(self.should_generate_events_for_domain, domains) -+ type_domains = list(filter(self.should_generate_types_for_domain, domains)) -+ command_domains = list(filter(self.should_generate_commands_for_domain, domains)) -+ event_domains = list(filter(self.should_generate_events_for_domain, domains)) - - # FIXME: Web Inspector: Reduce unnecessary enums/types generated in ObjC Protocol Interfaces - # Currently we generate enums/types for all types in the type_domains. For the built-in -@@ -72,14 +72,14 @@ class ObjCHeaderGenerator(ObjCGenerator) - sections = [] - sections.append(self.generate_license()) - sections.append(Template(ObjCTemplates.HeaderPrelude).substitute(None, **header_args)) -- sections.append('\n'.join(filter(None, map(self._generate_forward_declarations, type_domains)))) -+ sections.append('\n'.join([_f for _f in map(self._generate_forward_declarations, type_domains) if _f])) - sections.append(self._generate_enum_for_platforms()) -- sections.append('\n'.join(filter(None, map(self._generate_enums, type_domains)))) -- sections.append('\n'.join(filter(None, map(self._generate_types, type_domains)))) -+ sections.append('\n'.join([_f for _f in map(self._generate_enums, type_domains) if _f])) -+ sections.append('\n'.join([_f for _f in map(self._generate_types, type_domains) if _f])) - - if self.get_generator_setting('generate_backend', False): -- sections.append('\n\n'.join(filter(None, map(self._generate_command_protocols, command_domains)))) -- sections.append('\n\n'.join(filter(None, map(self._generate_event_interfaces, event_domains)))) -+ sections.append('\n\n'.join([_f for _f in map(self._generate_command_protocols, command_domains) if _f])) -+ sections.append('\n\n'.join([_f for _f in map(self._generate_event_interfaces, event_domains) if _f])) - - sections.append(Template(ObjCTemplates.HeaderPostlude).substitute(None)) - return '\n\n'.join(sections) -@@ -171,8 +171,8 @@ class ObjCHeaderGenerator(ObjCGenerator) - lines.append('- (instancetype)initWithPayload:(NSDictionary *)payload;') - lines.append('- (instancetype)initWithProtocolObject:(RWIProtocolJSONObject *)jsonObject;') - -- required_members = filter(lambda member: not member.is_optional, declaration.type_members) -- optional_members = filter(lambda member: member.is_optional, declaration.type_members) -+ required_members = [member for member in declaration.type_members if not member.is_optional] -+ optional_members = [member for member in declaration.type_members if member.is_optional] - if required_members: - lines.append(self._generate_init_method_for_required_members(domain, declaration, required_members)) - for member in required_members: -Index: webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_internal_header.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_internal_header.py 2018-04-18 08:26:39.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_internal_header.py 2018-07-24 11:54:06.382074787 +0200 -@@ -29,9 +29,9 @@ import logging - import string - from string import Template - --from generator import Generator, ucfirst --from objc_generator import ObjCGenerator --from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates -+from .generator import Generator, ucfirst -+from .objc_generator import ObjCGenerator -+from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates - - log = logging.getLogger('global') - -@@ -55,12 +55,12 @@ class ObjCInternalHeaderGenerator(ObjCGe - 'includes': '\n'.join(['#import ' + header for header in sorted(headers)]), - } - -- event_domains = filter(self.should_generate_events_for_domain, self.domains_to_generate()) -+ event_domains = list(filter(self.should_generate_events_for_domain, self.domains_to_generate())) - - sections = [] - sections.append(self.generate_license()) - sections.append(Template(ObjCTemplates.GenericHeaderPrelude).substitute(None, **header_args)) -- sections.append('\n\n'.join(filter(None, map(self._generate_event_dispatcher_private_interfaces, event_domains)))) -+ sections.append('\n\n'.join([_f for _f in map(self._generate_event_dispatcher_private_interfaces, event_domains) if _f])) - sections.append(Template(ObjCTemplates.GenericHeaderPostlude).substitute(None, **header_args)) - return '\n\n'.join(sections) - -Index: webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py 2018-06-25 08:30:04.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py 2018-07-24 11:54:06.382074787 +0200 -@@ -29,10 +29,10 @@ import logging - import string - from string import Template - --from generator import Generator --from models import EnumType, Frameworks, Platforms --from objc_generator import ObjCGenerator --from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates -+from .generator import Generator -+from .models import EnumType, Frameworks, Platforms -+from .objc_generator import ObjCGenerator -+from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates - - log = logging.getLogger('global') - -@@ -51,7 +51,7 @@ class ObjCProtocolTypeConversionsHeaderG - return '%sTypeConversions.h' % self.protocol_name() - - def domains_to_generate(self): -- return filter(self.should_generate_types_for_domain, Generator.domains_to_generate(self)) -+ return list(filter(self.should_generate_types_for_domain, Generator.domains_to_generate(self))) - - def generate_output(self): - headers = [ -@@ -70,7 +70,7 @@ class ObjCProtocolTypeConversionsHeaderG - sections.append(Template(ObjCTemplates.TypeConversionsHeaderPrelude).substitute(None, **header_args)) - sections.append(Template(ObjCTemplates.TypeConversionsHeaderStandard).substitute(None)) - sections.append(self._generate_enum_conversion_for_platforms()) -- sections.extend(map(self._generate_enum_conversion_functions, domains)) -+ sections.extend(list(map(self._generate_enum_conversion_functions, domains))) - sections.append(Template(ObjCTemplates.TypeConversionsHeaderPostlude).substitute(None, **header_args)) - return '\n\n'.join(sections) - -Index: webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py 2018-04-18 08:26:39.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py 2018-07-24 11:54:06.382074787 +0200 -@@ -28,10 +28,10 @@ import logging - import string - from string import Template - --from generator import Generator --from models import EnumType, ObjectType, ArrayType, AliasedType, PrimitiveType, Frameworks --from objc_generator import ObjCGenerator --from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates -+from .generator import Generator -+from .models import EnumType, ObjectType, ArrayType, AliasedType, PrimitiveType, Frameworks -+from .objc_generator import ObjCGenerator -+from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates - - log = logging.getLogger('global') - -@@ -50,7 +50,7 @@ class ObjCProtocolTypeConversionsImpleme - return '%sTypeConversions.mm' % self.protocol_name() - - def domains_to_generate(self): -- return filter(self.should_generate_types_for_domain, Generator.domains_to_generate(self)) -+ return list(filter(self.should_generate_types_for_domain, Generator.domains_to_generate(self))) - - def generate_output(self): - secondary_headers = [ -Index: webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py 2018-04-18 08:26:39.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py 2018-07-24 11:54:06.382074787 +0200 -@@ -29,10 +29,10 @@ import logging - import string - from string import Template - --from generator import Generator, ucfirst --from models import ObjectType, EnumType, Frameworks --from objc_generator import ObjCTypeCategory, ObjCGenerator --from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates -+from .generator import Generator, ucfirst -+from .models import ObjectType, EnumType, Frameworks -+from .objc_generator import ObjCTypeCategory, ObjCGenerator -+from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates - - log = logging.getLogger('global') - -@@ -51,7 +51,7 @@ class ObjCProtocolTypesImplementationGen - return '%sTypes.mm' % self.protocol_name() - - def domains_to_generate(self): -- return filter(self.should_generate_types_for_domain, Generator.domains_to_generate(self)) -+ return list(filter(self.should_generate_types_for_domain, Generator.domains_to_generate(self))) - - def generate_output(self): - secondary_headers = [ -@@ -75,7 +75,7 @@ class ObjCProtocolTypesImplementationGen - sections = [] - sections.append(self.generate_license()) - sections.append(Template(ObjCTemplates.ImplementationPrelude).substitute(None, **header_args)) -- sections.extend(map(self.generate_type_implementations, domains)) -+ sections.extend(list(map(self.generate_type_implementations, domains))) - sections.append(Template(ObjCTemplates.ImplementationPostlude).substitute(None, **header_args)) - return '\n\n'.join(sections) - -@@ -95,7 +95,7 @@ class ObjCProtocolTypesImplementationGen - lines.append('') - lines.append(self._generate_init_method_for_payload(domain, declaration)) - lines.append(self._generate_init_method_for_protocol_object(domain, declaration)) -- required_members = filter(lambda member: not member.is_optional, declaration.type_members) -+ required_members = [member for member in declaration.type_members if not member.is_optional] - if required_members: - lines.append('') - lines.append(self._generate_init_method_for_required_members(domain, declaration, required_members)) -@@ -167,7 +167,7 @@ class ObjCProtocolTypesImplementationGen - lines.append(' return nil;') - lines.append('') - -- required_pointer_members = filter(lambda member: ObjCGenerator.is_type_objc_pointer_type(member.type), required_members) -+ required_pointer_members = [member for member in required_members if ObjCGenerator.is_type_objc_pointer_type(member.type)] - if required_pointer_members: - for member in required_pointer_members: - var_name = ObjCGenerator.identifier_to_objc_identifier(member.member_name) -Index: webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generator.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/inspector/scripts/codegen/generator.py 2018-04-18 08:26:39.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/generator.py 2018-07-24 11:54:06.382074787 +0200 -@@ -29,8 +29,8 @@ import os.path - import re - from string import Template - --from generator_templates import GeneratorTemplates as Templates --from models import PrimitiveType, ObjectType, ArrayType, EnumType, AliasedType, Frameworks, Platforms -+from .generator_templates import GeneratorTemplates as Templates -+from .models import PrimitiveType, ObjectType, ArrayType, EnumType, AliasedType, Frameworks, Platforms - - log = logging.getLogger('global') - -@@ -140,7 +140,7 @@ class Generator: - - # These methods are overridden by subclasses. - def non_supplemental_domains(self): -- return filter(lambda domain: not domain.is_supplemental, self.model().domains) -+ return [domain for domain in self.model().domains if not domain.is_supplemental] - - def domains_to_generate(self): - return self.non_supplemental_domains() -@@ -176,7 +176,7 @@ class Generator: - fields = set(_TYPES_WITH_OPEN_FIELDS.get(type_declaration.type.qualified_name(), [])) - if not fields: - return type_declaration.type_members -- return filter(lambda member: member.member_name in fields, type_declaration.type_members) -+ return [member for member in type_declaration.type_members if member.member_name in fields] - - def type_needs_shape_assertions(self, _type): - if not hasattr(self, "_types_needing_shape_assertions"): -@@ -189,7 +189,7 @@ class Generator: - # set of types will not be automatically regenerated on subsequent calls to - # Generator.types_needing_shape_assertions(). - def calculate_types_requiring_shape_assertions(self, domains): -- domain_names = map(lambda domain: domain.domain_name, domains) -+ domain_names = [domain.domain_name for domain in domains] - log.debug("> Calculating types that need shape assertions (eligible domains: %s)" % ", ".join(domain_names)) - - # Mutates the passed-in set; this simplifies checks to prevent infinite recursion. -@@ -245,7 +245,7 @@ class Generator: - for _type in all_types: - if not isinstance(_type, EnumType): - continue -- map(self._assign_encoding_for_enum_value, _type.enum_values()) -+ list(map(self._assign_encoding_for_enum_value, _type.enum_values())) - - def _assign_encoding_for_enum_value(self, enum_value): - if enum_value in self._enum_value_encodings: -@@ -279,7 +279,7 @@ class Generator: - return _ALWAYS_SPECIALCASED_ENUM_VALUE_LOOKUP_TABLE[match.group(1).upper()] - - # Split on hyphen, introduce camelcase, and force uppercasing of acronyms. -- subwords = map(ucfirst, _ENUM_IDENTIFIER_RENAME_MAP.get(enum_value, enum_value).split('-')) -+ subwords = list(map(ucfirst, _ENUM_IDENTIFIER_RENAME_MAP.get(enum_value, enum_value).split('-'))) - return re.sub(re.compile(regex, re.IGNORECASE), replaceCallback, "".join(subwords)) - - @staticmethod -Index: webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/__init__.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/inspector/scripts/codegen/__init__.py 2018-04-18 08:26:39.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/__init__.py 2018-07-24 11:54:06.382074787 +0200 -@@ -1,25 +1,25 @@ - # Required for Python to search this directory for module files - --from models import * --from generator import * --from cpp_generator import * --from objc_generator import * -+from .models import * -+from .generator import * -+from .cpp_generator import * -+from .objc_generator import * - --from generate_cpp_alternate_backend_dispatcher_header import * --from generate_cpp_backend_dispatcher_header import * --from generate_cpp_backend_dispatcher_implementation import * --from generate_cpp_frontend_dispatcher_header import * --from generate_cpp_frontend_dispatcher_implementation import * --from generate_cpp_protocol_types_header import * --from generate_cpp_protocol_types_implementation import * --from generate_js_backend_commands import * --from generate_objc_backend_dispatcher_header import * --from generate_objc_backend_dispatcher_implementation import * --from generate_objc_configuration_header import * --from generate_objc_configuration_implementation import * --from generate_objc_frontend_dispatcher_implementation import * --from generate_objc_header import * --from generate_objc_internal_header import * --from generate_objc_protocol_types_implementation import * --from generate_objc_protocol_type_conversions_header import * --from generate_objc_protocol_type_conversions_implementation import * -+from .generate_cpp_alternate_backend_dispatcher_header import * -+from .generate_cpp_backend_dispatcher_header import * -+from .generate_cpp_backend_dispatcher_implementation import * -+from .generate_cpp_frontend_dispatcher_header import * -+from .generate_cpp_frontend_dispatcher_implementation import * -+from .generate_cpp_protocol_types_header import * -+from .generate_cpp_protocol_types_implementation import * -+from .generate_js_backend_commands import * -+from .generate_objc_backend_dispatcher_header import * -+from .generate_objc_backend_dispatcher_implementation import * -+from .generate_objc_configuration_header import * -+from .generate_objc_configuration_implementation import * -+from .generate_objc_frontend_dispatcher_implementation import * -+from .generate_objc_header import * -+from .generate_objc_internal_header import * -+from .generate_objc_protocol_types_implementation import * -+from .generate_objc_protocol_type_conversions_header import * -+from .generate_objc_protocol_type_conversions_implementation import * -Index: webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/models.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/inspector/scripts/codegen/models.py 2018-04-18 08:26:39.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/models.py 2018-07-24 11:54:06.382074787 +0200 -@@ -35,7 +35,7 @@ def ucfirst(str): - - - def find_duplicates(l): -- return [key for key, count in collections.Counter(l).items() if count > 1] -+ return [key for key, count in list(collections.Counter(l).items()) if count > 1] - - - _FRAMEWORK_CONFIG_MAP = { -Index: webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/objc_generator.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/inspector/scripts/codegen/objc_generator.py 2018-04-18 08:26:39.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/inspector/scripts/codegen/objc_generator.py 2018-07-24 11:54:06.382074787 +0200 -@@ -24,8 +24,8 @@ - # THE POSSIBILITY OF SUCH DAMAGE. - - import logging --from generator import Generator, ucfirst --from models import PrimitiveType, ObjectType, ArrayType, EnumType, AliasedType, Frameworks -+from .generator import Generator, ucfirst -+from .models import PrimitiveType, ObjectType, ArrayType, EnumType, AliasedType, Frameworks - - log = logging.getLogger('global') - -@@ -50,7 +50,7 @@ _OBJC_IDENTIFIER_RENAME_MAP = { - 'id': 'identifier', # Page.Frame.id, Runtime.ExecutionContextDescription.id, Debugger.BreakpointAction.id - } - --_OBJC_IDENTIFIER_REVERSE_RENAME_MAP = dict((v, k) for k, v in _OBJC_IDENTIFIER_RENAME_MAP.iteritems()) -+_OBJC_IDENTIFIER_REVERSE_RENAME_MAP = dict((v, k) for k, v in _OBJC_IDENTIFIER_RENAME_MAP.items()) - - - class ObjCTypeCategory: -Index: webkitgtk-2.21.5/Source/JavaScriptCore/Scripts/builtins/builtins_generate_combined_header.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/Scripts/builtins/builtins_generate_combined_header.py 2018-04-18 08:26:38.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/Scripts/builtins/builtins_generate_combined_header.py 2018-07-24 11:54:06.382074787 +0200 -@@ -158,7 +158,7 @@ extern const JSC::ConstructAbility s_%(c - - lines = [] - lines.append("#define %(macroPrefix)s_FOREACH_BUILTIN_FUNCTION_PRIVATE_GLOBAL_NAME(macro) \\" % args) -- functions = filter(lambda function: function.is_global_private, self.model().all_functions()) -+ functions = [function for function in self.model().all_functions() if function.is_global_private] - functions.sort(key=lambda x: x.function_name) - for function in functions: - function_args = { -Index: webkitgtk-2.21.5/Source/JavaScriptCore/Scripts/builtins/builtins_generate_internals_wrapper_header.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/Scripts/builtins/builtins_generate_internals_wrapper_header.py 2018-04-18 08:26:38.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/Scripts/builtins/builtins_generate_internals_wrapper_header.py 2018-07-24 11:54:06.386074836 +0200 -@@ -36,7 +36,7 @@ log = logging.getLogger('global') - class BuiltinsInternalsWrapperHeaderGenerator(BuiltinsGenerator): - def __init__(self, model): - BuiltinsGenerator.__init__(self, model) -- self.internals = filter(lambda object: 'internal' in object.annotations, model.objects) -+ self.internals = [object for object in model.objects if 'internal' in object.annotations] - - def output_filename(self): - return "%sJSBuiltinInternals.h" % self.model().framework.setting('namespace') -Index: webkitgtk-2.21.5/Source/JavaScriptCore/Scripts/builtins/builtins_generate_internals_wrapper_implementation.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/Scripts/builtins/builtins_generate_internals_wrapper_implementation.py 2018-04-18 08:26:38.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/Scripts/builtins/builtins_generate_internals_wrapper_implementation.py 2018-07-24 11:54:06.386074836 +0200 -@@ -36,7 +36,7 @@ log = logging.getLogger('global') - class BuiltinsInternalsWrapperImplementationGenerator(BuiltinsGenerator): - def __init__(self, model): - BuiltinsGenerator.__init__(self, model) -- self.internals = filter(lambda object: 'internal' in object.annotations, model.objects) -+ self.internals = [object for object in model.objects if 'internal' in object.annotations] - - def output_filename(self): - return "%sJSBuiltinInternals.cpp" % self.model().framework.setting('namespace') -Index: webkitgtk-2.21.5/Source/JavaScriptCore/Scripts/builtins/builtins_model.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/Scripts/builtins/builtins_model.py 2018-04-18 08:26:38.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/Scripts/builtins/builtins_model.py 2018-07-24 11:54:06.386074836 +0200 -@@ -26,6 +26,7 @@ - import logging - import re - import os -+import sys - - from builtins_templates import BuiltinsGeneratorTemplates as Templates - -@@ -155,6 +156,8 @@ class BuiltinFunction: - - return interface - -+ def __lt__(a,b): -+ return a.function_name < b.function_name - - class BuiltinsCollection: - def __init__(self, framework_name): -@@ -210,7 +213,7 @@ class BuiltinsCollection: - - result = [] - -- for owner, years in owner_to_years.items(): -+ for owner, years in list(owner_to_years.items()): - sorted_years = list(years) - sorted_years.sort() - result.append("%s %s" % (', '.join(sorted_years), owner)) -@@ -303,4 +306,4 @@ class BuiltinsCollection: - functionBounds.append((start, end)) - - functionStrings = [text[start:end].strip() for (start, end) in functionBounds] -- return map(BuiltinFunction.fromString, functionStrings) -+ return list(map(BuiltinFunction.fromString, functionStrings)) -Index: webkitgtk-2.21.5/Source/JavaScriptCore/Scripts/cssmin.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/Scripts/cssmin.py 2018-04-18 08:26:38.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/Scripts/cssmin.py 2018-07-24 11:54:06.386074836 +0200 -@@ -46,4 +46,7 @@ if __name__ == "__main__": - if sys.version_info[0] == 3 and sys.stdin.encoding != 'UTF-8': - import io - sys.stdin = io.TextIOWrapper(sys.stdin.buffer, encoding='UTF-8') -+ if sys.version_info[0] == 3 and sys.stdout.encoding != 'UTF-8': -+ import io -+ sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='UTF-8') - sys.stdout.write(cssminify(sys.stdin.read())) -Index: webkitgtk-2.21.5/Source/JavaScriptCore/Scripts/generate-js-builtins.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/Scripts/generate-js-builtins.py 2018-04-18 08:26:38.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/Scripts/generate-js-builtins.py 2018-07-24 11:54:06.386074836 +0200 -@@ -31,20 +31,33 @@ import fnmatch - import logging - import optparse - import os -+import sys - - logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.ERROR) - log = logging.getLogger('global') - - from lazywriter import LazyFileWriter - --from builtins import * -- -+from builtins_model import * -+from builtins_generate_combined_header import * -+from builtins_generate_combined_implementation import * -+from builtins_generate_separate_header import * -+from builtins_generate_separate_implementation import * -+from builtins_generate_wrapper_header import * -+from builtins_generate_wrapper_implementation import * -+from builtins_generate_internals_wrapper_header import * -+from builtins_generate_internals_wrapper_implementation import * - - def concatenated_output_filename(builtins_files, framework_name, generate_only_wrapper_files): - if generate_only_wrapper_files: - return framework_name + 'JSBuiltins.h-result' - return os.path.basename(builtins_files[0]) + '-result' - -+def doopen(file, mode): -+ if sys.version_info.major == 2: -+ return open(file, mode) -+ else: -+ return open(file, mode, encoding="UTF-8") - - def generate_bindings_for_builtins_files(builtins_files=[], - output_path=None, -@@ -59,7 +72,7 @@ def generate_bindings_for_builtins_files - model = BuiltinsCollection(framework_name=framework_name) - - for filepath in builtins_files: -- with open(filepath, "r") as file: -+ with doopen(filepath, "r") as file: - file_text = file.read() - file_name = os.path.basename(filepath) - -@@ -146,7 +159,7 @@ if __name__ == '__main__': - for filepath in os.listdir(arg_options.input_directory): - input_filepaths.append(os.path.join(arg_options.input_directory, filepath)) - -- input_filepaths = sorted(filter(lambda name: fnmatch.fnmatch(name, '*.js'), input_filepaths)) -+ input_filepaths = sorted([name for name in input_filepaths if fnmatch.fnmatch(name, '*.js')]) - - options = { - 'output_path': arg_options.output_directory, -@@ -159,7 +172,7 @@ if __name__ == '__main__': - - log.debug("Generating code for builtins.") - log.debug("Parsed options:") -- for option, value in options.items(): -+ for option, value in list(options.items()): - log.debug(" %s: %s" % (option, value)) - log.debug("") - log.debug("Input files:") -Index: webkitgtk-2.21.5/Source/JavaScriptCore/Scripts/generateYarrUnicodePropertyTables.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/Scripts/generateYarrUnicodePropertyTables.py 2018-06-20 10:33:05.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/Scripts/generateYarrUnicodePropertyTables.py 2018-07-24 11:54:06.386074836 +0200 -@@ -90,7 +90,10 @@ aliases = None - - def openOrExit(path, mode): - try: -- return open(path, mode) -+ if sys.version_info.major == 2 or mode == "wb" or mode == "rb": -+ return open(path, mode) -+ else: -+ return open(path, mode, encoding = "UTF-8") - except IOError as e: - print("I/O error opening {0}, ({1}): {2}".format(path, e.errno, e.strerror)) - exit(1) -@@ -214,6 +217,12 @@ class Aliases: - return "" - return self.aliasToScript[name] - -+def dowrite(file, str): -+ if sys.version_info.major == 2: -+ file.write(str) -+ else: -+ file.write(bytes(str, "utf-8")) -+ - - class PropertyData: - allPropertyData = [] -@@ -322,7 +331,7 @@ class PropertyData: - insertLocation = None - lowCodePoint = None - highCodePoint = None -- for idx in xrange(len(matches)): -+ for idx in range(len(matches)): - match = matches[idx] - if codePoint == match + 1: - lowCodePoint = match -@@ -351,22 +360,22 @@ class PropertyData: - lowCodePoint = codePoint - highCodePoint = codePoint - -- for idx in xrange(len(ranges)): -- range = ranges[idx] -- if lowCodePoint >= range[0] and highCodePoint <= range[1]: -+ for idx in range(len(ranges)): -+ cur_range = ranges[idx] -+ if lowCodePoint >= cur_range[0] and highCodePoint <= cur_range[1]: - return -- if lowCodePoint <= (range[1] + 1) and highCodePoint >= (range[0] - 1): -+ if lowCodePoint <= (cur_range[1] + 1) and highCodePoint >= (cur_range[0] - 1): - while idx < len(ranges) and highCodePoint >= (ranges[idx][0] - 1): -- range = ranges[idx] -- lowCodePoint = min(lowCodePoint, range[0]) -- highCodePoint = max(highCodePoint, range[1]) -+ cur_range = ranges[idx] -+ lowCodePoint = min(lowCodePoint, cur_range[0]) -+ highCodePoint = max(highCodePoint, cur_range[1]) - del ranges[idx] -- self.codePointCount = self.codePointCount - (range[1] - range[0]) - 1 -+ self.codePointCount = self.codePointCount - (cur_range[1] - cur_range[0]) - 1 - - ranges.insert(idx, (lowCodePoint, highCodePoint)) - self.codePointCount = self.codePointCount + (highCodePoint - lowCodePoint) + 1 - return -- elif highCodePoint < range[0]: -+ elif highCodePoint < cur_range[0]: - if lowCodePoint != highCodePoint: - ranges.insert(idx, (lowCodePoint, highCodePoint)) - self.codePointCount = self.codePointCount + (highCodePoint - lowCodePoint) + 1 -@@ -384,7 +393,7 @@ class PropertyData: - - def addRangeUnorderedForMatchesAndRanges(self, lowCodePoint, highCodePoint, matches, ranges): - if len(matches) and highCodePoint >= matches[0] and lowCodePoint <= matches[-1]: -- for idx in xrange(len(matches)): -+ for idx in range(len(matches)): - match = matches[idx] - if lowCodePoint <= match and highCodePoint >= match: - while idx < len(matches) and highCodePoint >= matches[idx]: -@@ -414,22 +423,22 @@ class PropertyData: - elif highCodePoint < match: - break - -- for idx in xrange(len(ranges)): -- range = ranges[idx] -- if lowCodePoint >= range[0] and highCodePoint <= range[1]: -+ for idx in range(len(ranges)): -+ cur_range = ranges[idx] -+ if lowCodePoint >= cur_range[0] and highCodePoint <= cur_range[1]: - return -- if lowCodePoint <= (range[1] + 1) and highCodePoint >= (range[0] - 1): -+ if lowCodePoint <= (cur_range[1] + 1) and highCodePoint >= (cur_range[0] - 1): - while idx < len(ranges) and highCodePoint >= (ranges[idx][0] - 1): -- range = ranges[idx] -- lowCodePoint = min(lowCodePoint, range[0]) -- highCodePoint = max(highCodePoint, range[1]) -+ cur_range = ranges[idx] -+ lowCodePoint = min(lowCodePoint, cur_range[0]) -+ highCodePoint = max(highCodePoint, cur_range[1]) - del ranges[idx] -- self.codePointCount = self.codePointCount - (range[1] - range[0]) - 1 -+ self.codePointCount = self.codePointCount - (cur_range[1] - cur_range[0]) - 1 - - ranges.insert(idx, (lowCodePoint, highCodePoint)) - self.codePointCount = self.codePointCount + (highCodePoint - lowCodePoint) + 1 - return -- elif highCodePoint < range[0]: -+ elif highCodePoint < cur_range[0]: - ranges.insert(idx, (lowCodePoint, highCodePoint)) - self.codePointCount = self.codePointCount + (highCodePoint - lowCodePoint) + 1 - return -@@ -459,13 +468,13 @@ class PropertyData: - self.addRangeUnorderedForMatchesAndRanges(firstUnicodeCodePoint, highCodePoint, self.unicodeMatches, self.unicodeRanges) - - def removeMatchFromRanges(self, codePoint, ranges): -- for idx in xrange(len(ranges)): -- range = ranges[idx] -- if range[0] <= codePoint and codePoint <= range[1]: -+ for idx in range(len(ranges)): -+ cur_range = ranges[idx] -+ if cur_range[0] <= codePoint and codePoint <= cur_range[1]: - ranges.pop(idx) -- if range[0] < codePoint and codePoint < range[1]: -- lowRange = (range[0], codePoint - 1) -- highRange = (codePoint + 1, range[1]) -+ if cur_range[0] < codePoint and codePoint < cur_range[1]: -+ lowRange = (cur_range[0], codePoint - 1) -+ highRange = (codePoint + 1, cur_range[1]) - # Since list.insert inserts before the index given, handle the high range first - if highRange[0] == highRange[1]: - self.addMatchUnordered(highRange[0]) -@@ -476,14 +485,14 @@ class PropertyData: - else: - ranges.insert(idx, lowRange) - else: -- if range[0] == codePoint: -- range = (codePoint + 1, range[1]) -+ if cur_range[0] == codePoint: -+ cur_range = (codePoint + 1, cur_range[1]) - else: -- range = (range[0], codePoint - 1) -- if range[0] == range[1]: -- self.addMatchUnordered(range[0]) -+ cur_range = (cur_range[0], codePoint - 1) -+ if cur_range[0] == cur_range[1]: -+ self.addMatchUnordered(cur_range[0]) - else: -- ranges.insert(idx, range) -+ ranges.insert(idx, cur_range) - self.codePointCount = self.codePointCount - 1 - return - -@@ -505,59 +514,59 @@ class PropertyData: - valuesThisLine = 0 - firstValue = True - -- file.write("{") -+ dowrite(file, "{") - for elem in dataList: - if firstValue: - firstValue = False - else: -- file.write(", ") -+ dowrite(file, ", ") - valuesThisLine = valuesThisLine + 1 - if valuesThisLine > valuesPerLine: -- file.write("\n ") -+ dowrite(file, "\n ") - valuesThisLine = 1 - formatter(file, elem) -- file.write("}") -+ dowrite(file, "}") - - def dump(self, file, commaAfter): -- file.write("static std::unique_ptr {}()\n{{\n".format(self.getCreateFuncName())) -- file.write(" // Name = {}, number of codePoints: {}\n".format(self.name, self.codePointCount)) -- file.write(" auto characterClass = std::make_unique(\n") -- file.write(" std::initializer_list(") -- self.dumpMatchData(file, 8, self.matches, lambda file, match: (file.write("{0:0=#4x}".format(match)))) -- file.write("),\n") -- file.write(" std::initializer_list(") -- self.dumpMatchData(file, 4, self.ranges, lambda file, range: (file.write("{{{0:0=#4x}, {1:0=#4x}}}".format(range[0], range[1])))) -- file.write("),\n") -- file.write(" std::initializer_list(") -- self.dumpMatchData(file, 8, self.unicodeMatches, lambda file, match: (file.write("{0:0=#6x}".format(match)))) -- file.write("),\n") -- file.write(" std::initializer_list(") -- self.dumpMatchData(file, 4, self.unicodeRanges, lambda file, range: (file.write("{{{0:0=#6x}, {1:0=#6x}}}".format(range[0], range[1])))) -- file.write("));\n") -+ dowrite(file, "static std::unique_ptr {}()\n{{\n".format(self.getCreateFuncName())) -+ dowrite(file, " // Name = {}, number of codePoints: {}\n".format(self.name, self.codePointCount)) -+ dowrite(file, " auto characterClass = std::make_unique(\n") -+ dowrite(file, " std::initializer_list(") -+ self.dumpMatchData(file, 8, self.matches, lambda file, match: (dowrite(file, "{0:0=#4x}".format(match)))) -+ dowrite(file, "),\n") -+ dowrite(file, " std::initializer_list(") -+ self.dumpMatchData(file, 4, self.ranges, lambda file, range: (dowrite(file, "{{{0:0=#4x}, {1:0=#4x}}}".format(range[0], range[1])))) -+ dowrite(file, "),\n") -+ dowrite(file, " std::initializer_list(") -+ self.dumpMatchData(file, 8, self.unicodeMatches, lambda file, match: (dowrite(file, "{0:0=#6x}".format(match)))) -+ dowrite(file, "),\n") -+ dowrite(file, " std::initializer_list(") -+ self.dumpMatchData(file, 4, self.unicodeRanges, lambda file, range: (dowrite(file, "{{{0:0=#6x}, {1:0=#6x}}}".format(range[0], range[1])))) -+ dowrite(file, "));\n") - -- file.write(" characterClass->m_hasNonBMPCharacters = {};\n".format(("false", "true")[self.hasNonBMPCharacters])) -- file.write(" return characterClass;\n}\n\n") -+ dowrite(file, " characterClass->m_hasNonBMPCharacters = {};\n".format(("false", "true")[self.hasNonBMPCharacters])) -+ dowrite(file, " return characterClass;\n}\n\n") - - @classmethod - def dumpAll(cls, file): - for propertyData in cls.allPropertyData: - propertyData.dump(file, propertyData != cls.allPropertyData[-1]) - -- file.write("typedef std::unique_ptr (*CreateCharacterClass)();\n") -- file.write("static CreateCharacterClass createFunctions[{}] = {{\n ".format(len(cls.allPropertyData))) -+ dowrite(file, "typedef std::unique_ptr (*CreateCharacterClass)();\n") -+ dowrite(file, "static CreateCharacterClass createFunctions[{}] = {{\n ".format(len(cls.allPropertyData))) - functionsOnThisLine = 0 - for propertyData in cls.allPropertyData: -- file.write(" {},".format(propertyData.getCreateFuncName())) -+ dowrite(file, " {},".format(propertyData.getCreateFuncName())) - functionsOnThisLine = functionsOnThisLine + 1 - if functionsOnThisLine == 4: -- file.write("\n ") -+ dowrite(file, "\n ") - functionsOnThisLine = 0 - -- file.write("};\n\n") -+ dowrite(file, "};\n\n") - - @classmethod - def createAndDumpHashTable(self, file, propertyDict, tablePrefix): -- propertyKeys = propertyDict.keys() -+ propertyKeys = list(propertyDict.keys()) - numberOfKeys = len(propertyKeys) - hashSize = ceilingToPowerOf2(numberOfKeys * 2) - hashMask = hashSize - 1 -@@ -587,7 +596,7 @@ class PropertyData: - hashTable[hash] = (len(valueTable), None) - valueTable.append((key, keyValue[1])) - -- file.write("static const struct HashIndex {}TableIndex[{}] = {{\n".format(tablePrefix, len(hashTable))) -+ dowrite(file, "static const struct HashIndex {}TableIndex[{}] = {{\n".format(tablePrefix, len(hashTable))) - - for tableIndex in hashTable: - value = -1 -@@ -597,17 +606,17 @@ class PropertyData: - if tableIndex[1] is not None: - next = tableIndex[1] - -- file.write(" {{ {}, {} }},\n".format(value, next)) -+ dowrite(file, " {{ {}, {} }},\n".format(value, next)) - -- file.write("};\n\n") -+ dowrite(file, "};\n\n") - -- file.write("static const struct HashValue {}TableValue[{}] = {{\n".format(tablePrefix, len(valueTable))) -+ dowrite(file, "static const struct HashValue {}TableValue[{}] = {{\n".format(tablePrefix, len(valueTable))) - for value in valueTable: -- file.write(" {{ \"{}\", {} }},\n".format(value[0], value[1])) -- file.write("};\n\n") -+ dowrite(file, " {{ \"{}\", {} }},\n".format(value[0], value[1])) -+ dowrite(file, "};\n\n") - -- file.write("static const struct HashTable {}HashTable = \n".format(tablePrefix)) -- file.write(" {{ {}, {}, {}TableValue, {}TableIndex }};\n\n".format(len(valueTable), hashMask, tablePrefix, tablePrefix)) -+ dowrite(file, "static const struct HashTable {}HashTable = \n".format(tablePrefix)) -+ dowrite(file, " {{ {}, {}, {}TableValue, {}TableIndex }};\n\n".format(len(valueTable), hashMask, tablePrefix, tablePrefix)) - - - class Scripts: -@@ -742,21 +751,21 @@ class Scripts: - lowCodePoint = int(codePoints[:dotDot], 16) - highCodePoint = int(codePoints[dotDot + 2:], 16) - currentPropertyData.addRange(lowCodePoint, highCodePoint) -- for codePoint in xrange(lowCodePoint, highCodePoint + 1): -+ for codePoint in range(lowCodePoint, highCodePoint + 1): - commonScriptExtenstionPropertyData.removeMatch(codePoint) - inheritedScriptExtensionPropertyData.removeMatch(codePoint) - - # For the scripts that don't have any additional extension codePoints, copy the script - # data to the script extension with the same name -- for scriptName, propertyData in self.scriptsByName.iteritems(): -+ for scriptName, propertyData in self.scriptsByName.items(): - if scriptName not in self.scriptExtensionsByName: - self.scriptExtensionsByName[scriptName] = propertyData - - def dump(self, file): -- file.write("// Scripts:\n") -+ dowrite(file, "// Scripts:\n") - PropertyData.createAndDumpHashTable(file, self.scriptsByName, "script") - -- file.write("// Script_Extensions:\n") -+ dowrite(file, "// Script_Extensions:\n") - PropertyData.createAndDumpHashTable(file, self.scriptExtensionsByName, "scriptExtension") - - -@@ -877,7 +886,7 @@ class GeneralCategory: - propertyDatas[1].addRange(self.lastAddedCodePoint + 1, MaxUnicode) - - def dump(self, file): -- file.write("// General_Category:\n") -+ dowrite(file, "// General_Category:\n") - PropertyData.createAndDumpHashTable(file, self.propertyDataByCategory, "generalCategory") - - -@@ -920,7 +929,7 @@ class BinaryProperty: - currentPropertyData.addRange(int(codePoints[:dotDot], 16), int(codePoints[dotDot + 2:], 16)) - - def dump(self, file): -- file.write("// binary properties:\n") -+ dowrite(file, "// binary properties:\n") - PropertyData.createAndDumpHashTable(file, self.propertyDataByProperty, "binaryProperty") - - if __name__ == "__main__": -@@ -950,7 +959,7 @@ if __name__ == "__main__": - - propertyDataHFile = openOrExit(unicodeProertyDataHPath, "wb") - -- propertyDataHFile.write(header) -+ dowrite(propertyDataHFile, header) - - aliases.parsePropertyAliasesFile(propertyAliasesFile) - aliases.parsePropertyValueAliasesFile(propertyValueAliasesFile) -@@ -974,6 +983,6 @@ if __name__ == "__main__": - binaryProperty.dump(propertyDataHFile) - scripts.dump(propertyDataHFile) - -- propertyDataHFile.write(footer) -+ dowrite(propertyDataHFile, footer) - - exit(0) -Index: webkitgtk-2.21.5/Source/JavaScriptCore/Scripts/hasher.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/Scripts/hasher.py 2018-04-18 08:26:38.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/Scripts/hasher.py 2018-07-24 11:54:06.386074836 +0200 -@@ -36,7 +36,7 @@ def stringHash(str): - hash = stringHashingStartValue - - strLength = len(str) -- characterPairs = strLength / 2 -+ characterPairs = int(strLength / 2) - remainder = strLength & 1 - - # Main loop -Index: webkitgtk-2.21.5/Source/JavaScriptCore/Scripts/jsmin.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/Scripts/jsmin.py 2016-08-30 18:10:50.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/Scripts/jsmin.py 2018-07-24 11:54:06.386074836 +0200 -@@ -79,10 +79,13 @@ class JavascriptMinify(object): - def write(char): - # all of this is to support literal regular expressions. - # sigh -- if char in 'return': -+ if str(char) in 'return': - self.return_buf += char - self.is_return = self.return_buf == 'return' -- self.outs.write(char) -+ if sys.version_info.major == 2: -+ self.outs.write(char) -+ else: -+ self.outs.write(str(char)) - if self.is_return: - self.return_buf = '' - -@@ -118,8 +121,8 @@ class JavascriptMinify(object): - write(previous) - elif not previous: - return -- elif previous >= '!': -- if previous in "'\"": -+ elif str(previous) >= "!": -+ if str(previous) in "'\"": - in_quote = previous - write(previous) - previous_non_space = previous -@@ -166,7 +169,7 @@ class JavascriptMinify(object): - if numslashes % 2 == 0: - in_quote = '' - write(''.join(quote_buf)) -- elif next1 in '\r\n': -+ elif str(next1) in '\r\n': - if previous_non_space in newlineend_strings \ - or previous_non_space > '~': - while 1: -@@ -179,7 +182,7 @@ class JavascriptMinify(object): - or next2 > '~' or next2 == '/': - do_newline = True - break -- elif next1 < '!' and not in_re: -+ elif str(next1) < '!' and not in_re: - if (previous_non_space in space_strings \ - or previous_non_space > '~') \ - and (next2 in space_strings or next2 > '~'): -@@ -217,14 +220,14 @@ class JavascriptMinify(object): - do_newline = False - - write(next1) -- if not in_re and next1 in "'\"`": -+ if not in_re and str(next1) in "'\"`": - in_quote = next1 - quote_buf = [] - - previous = next1 - next1 = next2 - -- if previous >= '!': -+ if str(previous) >= '!': - previous_non_space = previous - - if previous == '\\': -Index: webkitgtk-2.21.5/Source/JavaScriptCore/Scripts/make-js-file-arrays.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/Scripts/make-js-file-arrays.py 2018-04-18 08:26:38.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/Scripts/make-js-file-arrays.py 2018-07-24 11:54:06.386074836 +0200 -@@ -25,7 +25,11 @@ from __future__ import print_function - import io - import os - from optparse import OptionParser --from StringIO import StringIO -+import sys -+if sys.version_info.major == 2: -+ from StringIO import StringIO -+else: -+ from io import StringIO - from jsmin import JavascriptMinify - - -@@ -37,7 +41,7 @@ def stringifyCodepoint(code): - - - def chunk(list, chunkSize): -- for i in xrange(0, len(list), chunkSize): -+ for i in range(0, len(list), chunkSize): - yield list[i:i + chunkSize] - - -@@ -85,7 +89,7 @@ def main(): - print('extern const char {0:s}JavaScript[{1:d}];'.format(variableName, size), file=headerFile) - print('const char {0:s}JavaScript[{1:d}] = {{'.format(variableName, size), file=sourceFile) - -- codepoints = map(ord, characters) -+ codepoints = list(map(ord, characters)) - for codepointChunk in chunk(codepoints, 16): - print(' {0:s},'.format(','.join(map(stringifyCodepoint, codepointChunk))), file=sourceFile) - -Index: webkitgtk-2.21.5/Source/JavaScriptCore/wasm/generateWasm.py -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/wasm/generateWasm.py 2018-04-18 08:26:39.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/wasm/generateWasm.py 2018-07-24 11:54:06.386074836 +0200 -@@ -71,7 +71,7 @@ class Wasm: - # We need to do this because python is dumb and won't let me use self in the lambda, which is ridiculous. - if ret == None: - ret = lambda op: {"name": op, "opcode": self.opcodes[op]} -- for op in self.opcodes.iterkeys(): -+ for op in self.opcodes.keys(): - if filter(self.opcodes[op]): - yield ret(op) - -Index: webkitgtk-2.21.5/Source/JavaScriptCore/yarr/generateYarrCanonicalizeUnicode -=================================================================== ---- webkitgtk-2.21.5.orig/Source/JavaScriptCore/yarr/generateYarrCanonicalizeUnicode 2018-04-18 08:26:39.000000000 +0200 -+++ webkitgtk-2.21.5/Source/JavaScriptCore/yarr/generateYarrCanonicalizeUnicode 2018-07-24 11:54:06.386074836 +0200 -@@ -31,7 +31,6 @@ import optparse - import os - import re - import sys --from sets import Set - - header = """/* - * Copyright (C) 2016 Apple Inc. All rights reserved. -@@ -78,11 +77,21 @@ def openOrExit(path, mode): - dirname = os.path.dirname(path) - if not os.path.isdir(dirname): - os.makedirs(dirname) -- return open(path, mode) -+ if sys.version_info.major == 2 or mode == "wb" or mode == "rb": -+ return open(path, mode) -+ else: -+ return open(path, mode, encoding = "UTF-8") - except IOError as e: -- print "I/O error opening {0}, ({1}): {2}".format(path, e.errno, e.strerror) -+ print("I/O error opening {0}, ({1}): {2}".format(path, e.errno, e.strerror)) - exit(1) - -+def dowrite(file, str): -+ if sys.version_info.major == 2: -+ file.write(str) -+ else: -+ file.write(bytes(str, "utf-8")) -+ -+ - class Canonicalize: - def __init__(self): - self.canonicalGroups = {}; -@@ -93,7 +102,7 @@ class Canonicalize: - self.canonicalGroups[mapping].append(code) - - def readCaseFolding(self, file): -- codesSeen = Set() -+ codesSeen = set() - for line in file: - line = line.split('#', 1)[0] - line = line.rstrip() -@@ -157,26 +166,26 @@ class Canonicalize: - set = characterSets[i] - for ch in set: - characters = characters + "0x{character:04x}, ".format(character=ch) -- file.write("const UChar32 unicodeCharacterSet{index:d}[] = {{ {characters}0 }};\n".format(index=i, characters=characters)) -+ dowrite(file, "const UChar32 unicodeCharacterSet{index:d}[] = {{ {characters}0 }};\n".format(index=i, characters=characters)) - -- file.write("\n") -- file.write("static const size_t UNICODE_CANONICALIZATION_SETS = {setCount:d};\n".format(setCount=len(characterSets))) -- file.write("const UChar32* const unicodeCharacterSetInfo[UNICODE_CANONICALIZATION_SETS] = {\n") -+ dowrite(file, "\n") -+ dowrite(file, "static const size_t UNICODE_CANONICALIZATION_SETS = {setCount:d};\n".format(setCount=len(characterSets))) -+ dowrite(file, "const UChar32* const unicodeCharacterSetInfo[UNICODE_CANONICALIZATION_SETS] = {\n") - - for i in range(len(characterSets)): -- file.write(" unicodeCharacterSet{setNumber:d},\n".format(setNumber=i)) -+ dowrite(file, " unicodeCharacterSet{setNumber:d},\n".format(setNumber=i)) - -- file.write("};\n") -- file.write("\n") -- file.write("const size_t UNICODE_CANONICALIZATION_RANGES = {rangeCount:d};\n".format(rangeCount=len(rangeInfo))) -- file.write("const CanonicalizationRange unicodeRangeInfo[UNICODE_CANONICALIZATION_RANGES] = {\n") -+ dowrite(file, "};\n") -+ dowrite(file, "\n") -+ dowrite(file, "const size_t UNICODE_CANONICALIZATION_RANGES = {rangeCount:d};\n".format(rangeCount=len(rangeInfo))) -+ dowrite(file, "const CanonicalizationRange unicodeRangeInfo[UNICODE_CANONICALIZATION_RANGES] = {\n") - - for info in rangeInfo: - typeAndValue = info["type"].split(":") -- file.write(" {{ 0x{begin:04x}, 0x{end:04x}, 0x{value:04x}, {type} }},\n".format(begin=info["begin"], end=info["end"], value=int(typeAndValue[1]), type=typeAndValue[0])) -+ dowrite(file, " {{ 0x{begin:04x}, 0x{end:04x}, 0x{value:04x}, {type} }},\n".format(begin=info["begin"], end=info["end"], value=int(typeAndValue[1]), type=typeAndValue[0])) - -- file.write("};\n") -- file.write("\n") -+ dowrite(file, "};\n") -+ dowrite(file, "\n") - - - if __name__ == "__main__": -@@ -194,9 +203,9 @@ if __name__ == "__main__": - canonicalize = Canonicalize() - canonicalize.readCaseFolding(caseFoldingTxtFile) - -- canonicalizeHFile.write(header); -+ dowrite(canonicalizeHFile, header) - canonicalize.createTables(canonicalizeHFile) -- canonicalizeHFile.write(footer); -+ dowrite(canonicalizeHFile, footer) - - caseFoldingTxtFile.close() - canonicalizeHFile.close() -Index: webkitgtk-2.21.5/Source/WebCore/platform/network/create-http-header-name-table -=================================================================== ---- webkitgtk-2.21.5.orig/Source/WebCore/platform/network/create-http-header-name-table 2018-05-16 09:13:10.000000000 +0200 -+++ webkitgtk-2.21.5/Source/WebCore/platform/network/create-http-header-name-table 2018-07-24 11:54:06.386074836 +0200 -@@ -42,7 +42,7 @@ input_file = open(input_path) - http_header_name_to_id = { } - http_header_names = [] - --for line in input_file.xreadlines(): -+for line in input_file: - http_header_name = line.strip() - if not http_header_name or http_header_name[:2] == '//': - continue -Index: webkitgtk-2.21.5/Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl -=================================================================== ---- webkitgtk-2.21.5.orig/Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl 2018-07-11 09:18:36.000000000 +0200 -+++ webkitgtk-2.21.5/Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl 2018-07-24 11:54:06.386074836 +0200 -@@ -176,6 +176,8 @@ my $eslintLicense = readLicenseFile(File - my $threejsLicense = readLicenseFile(File::Spec->catfile($threejsPath, 'LICENSE')); - make_path($protocolDir, $targetResourcePath); - -+$python = $ENV{"PYTHON"} if defined($ENV{"PYTHON"}); -+ - # Copy over dynamically loaded files from other frameworks, even if we aren't combining resources. - copy(File::Spec->catfile($ENV{'JAVASCRIPTCORE_PRIVATE_HEADERS_DIR'}, 'InspectorBackendCommands.js'), File::Spec->catfile($protocolDir, 'InspectorBackendCommands.js')) or die "Copy of InspectorBackendCommands.js failed: $!"; - -diff -urp webkitgtk-2.22.2.orig/Source/JavaScriptCore/Scripts/generateIntlCanonicalizeLanguage.py webkitgtk-2.22.2/Source/JavaScriptCore/Scripts/generateIntlCanonicalizeLanguage.py ---- webkitgtk-2.22.2.orig/Source/JavaScriptCore/Scripts/generateIntlCanonicalizeLanguage.py 2018-09-21 14:59:46.000000000 -0500 -+++ webkitgtk-2.22.2/Source/JavaScriptCore/Scripts/generateIntlCanonicalizeLanguage.py 2018-10-11 09:19:50.540740664 -0500 -@@ -44,7 +44,10 @@ footer = """ - - def openOrExit(path, mode): - try: -- return open(path, mode) -+ if sys.version_info.major >= 3: -+ return open(path, mode, encoding="UTF-8") -+ else: -+ return open(path, mode) - except IOError as e: - print("I/O error opening {0}, ({1}): {2}".format(path, e.errno, e.strerror)) - exit(1) -@@ -189,7 +192,7 @@ if __name__ == "__main__": - intlCanonHPath = args[1] - - registryFile = openOrExit(registryPath, "r") -- intlCanonHFile = openOrExit(intlCanonHPath, "wb") -+ intlCanonHFile = openOrExit(intlCanonHPath, "w") - - intlCanonHFile.write(header) - diff --git a/webkit2gtk3.changes b/webkit2gtk3.changes index e10ab01..beaf892 100644 --- a/webkit2gtk3.changes +++ b/webkit2gtk3.changes @@ -1,3 +1,102 @@ +------------------------------------------------------------------- +Wed Mar 13 13:40:11 UTC 2019 - Bjørn Lie + +- Update to version 2.24.0: + + Added support fot content filtering. + + Variation fonts support. + + Fully emoji rendering support. + + Added navigation and pinch zoom gestures for touchpads. + + Support for JPEG2000 images. + + Script dialogs are now modal to the current web view only. + + New API to convert URI to format for display. + +------------------------------------------------------------------- +Wed Mar 6 16:25:48 UTC 2019 - Bjørn Lie + +- Update to version 2.23.92: + + Fix constructors returning a GObject in JSC GLib API. + + Do not scan NPAPI plugins when plugins are disabled in + settings. + + Add WebKitUserContentFilterStore to the API docs. + + Fix several crashes and rendering issues. + + Updated translations. + +------------------------------------------------------------------- +Sun Mar 3 18:37:51 UTC 2019 - bjorn.lie@gmail.com + +- Update to version 2.23.91: + + Add new API to handle user content filters. + + Fix a UI process crash while filling selection data during drag + and drop. + + Fix deadlock on Linux/x64 between SamplingProfiler and VMTraps. + + Fix several crashes and rendering issues. + + Updated translations. + +------------------------------------------------------------------- +Sun Mar 3 16:05:51 UTC 2019 - bjorn.lie@gmail.com + +- Update to version 2.23.90: + + Add a new setting to disable JavaScript elments from documents + during parsing. + + Add new API to expose JavaScriptCore options. + + Add support for JPEG2000 images. + + Add support for back/forward touchpad gesture. + + Add support for pinch zoom on touchpad. + + Use a scrolled window in alert dialogs to handle long contents. + + Sleep disabler now inhibits idle when a "System" sleep disabler + is requested. + + Remove experimental sandboxing support, it's not yet ready for + stable release. + + Fix a web process deadlock when starting the remote inspector. + + Fix a crash when browsing inspector:// URI without port set. + + Fix several crashes and rendering issues. +- Add openjpeg2 and openjpeg2-devel BuildRequires: New + dependencies. +- Drop webkit2gtk3-python3.patch: Not needed anymore. +- Disable bubblewrap, xdg-dbus-proxy and pkgconfig(libseccomp) + BuildRequires and bubblewrap, xdg-dbus-proxy Requires: Sandbox + support was disabled by upstream again. +- Stop passing -DENABLE_ACCELERATED_2D_CANVAS=ON to cmake, follow + upstream default. + +------------------------------------------------------------------- +Sun Mar 3 16:05:50 UTC 2019 - bjorn.lie@gmail.com + +- Update to version 2.23.3: + + Fix rendering of emoji sequences containing zero with joiner. + + Fallback to a colored font when rendering emojis. + + Fix rendering artifacts on Youtube while scrolling under X11. + + Remove DConf permissions from sandbox. + + Fix build from release tarball with gtkdoc enabled. + + Fix several crashes and rendering issues. + + Updated translations. + +------------------------------------------------------------------- +Sun Mar 3 16:05:49 UTC 2019 - bjorn.lie@gmail.com + +- Update to version 2.23.2: + + Fix rendering artifacts in some websites with accelerated + compositing enabled. + + Add initial support for variation fonts. + + Add new API to convert a URI to a format for display. + + Make scrollbars follow gtk-primary-button-warps-slider setting. + + Fix crashes when closing the WebDriver session. + + Fix the build with OpenGL disabled. + + Fix several crashes and rendering issues. +- Changes from version 2.23.1: + + Add initial support for subprocess sandboxing in Linux. + + Add new permission request type for media device information. + + Make scrollbars follow gtk-primary-button-warps-slider setting. + + Script dialogs are now modal to the current web view only. + + Fix several crashes and rendering issues. +- Add bubblewrap, xdg-dbus-proxy and pkgconfig(libseccomp) + BuildRequires: New dependencies for subprocess sandboxing. +- Add bubblewrap and xdg-dbus-proxy Requires: They are needed at + runtime. +- Disable webkit2gtk3-python3.patch: Needs rebase or possibly + outright dropping as fixed, as some parts of them are checked in + upstream. + ------------------------------------------------------------------- Sat Mar 2 16:34:27 UTC 2019 - Bjørn Lie diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index 940e402..90bd5b7 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -42,19 +42,17 @@ %bcond_with python3 %endif Name: webkit2gtk3 -Version: 2.22.7 +Version: 2.24.0 Release: 0 Summary: Library for rendering web content, GTK+ Port License: LGPL-2.0-or-later AND BSD-3-Clause Group: Development/Libraries/C and C++ URL: https://webkitgtk.org/ -Source0: http://webkitgtk.org/releases/%{_name}-%{version}.tar.xz -Source1: http://webkitgtk.org/releases/%{_name}-%{version}.tar.xz.asc +Source0: https://webkitgtk.org/releases/%{_name}-%{version}.tar.xz +Source1: https://webkitgtk.org/releases/%{_name}-%{version}.tar.xz.asc Source98: baselibs.conf Source99: webkit2gtk3.keyring -# PATCH-FIX-UPSTREAM webkit2gtk3-python3.patch bsc#1079812 mgorse@suse.com -- port to Python 3. -Patch0: webkit2gtk3-python3.patch -# PATCh-FIX-UPSTREAM webkit2gtk3-boo1088932-a11y-state-set.patch boo#1088932 webkit#184366 mgorse@suse.com -- fix crash when atk_object_ref_state_set is called on an AtkObject that's being destroyed. +# PATCH-FIX-UPSTREAM webkit2gtk3-boo1088932-a11y-state-set.patch boo#1088932 webkit#184366 mgorse@suse.com -- fix crash when atk_object_ref_state_set is called on an AtkObject that's being destroyed Patch1: webkit2gtk3-boo1088932-a11y-state-set.patch BuildRequires: Mesa-libEGL-devel @@ -63,6 +61,7 @@ BuildRequires: Mesa-libGLESv1_CM-devel BuildRequires: Mesa-libGLESv2-devel BuildRequires: Mesa-libGLESv3-devel BuildRequires: bison >= 2.3 +#BuildRequires: bubblewrap BuildRequires: cmake BuildRequires: enchant-devel %if 0%{?suse_version} == 1315 @@ -76,9 +75,12 @@ BuildRequires: hyphen-devel BuildRequires: libicu-devel BuildRequires: libjpeg-devel BuildRequires: ninja +BuildRequires: openjpeg2 +BuildRequires: openjpeg2-devel BuildRequires: perl >= 5.10.0 BuildRequires: pkgconfig BuildRequires: ruby >= 1.8.7 +#BuildRequires: xdg-dbus-proxy BuildRequires: pkgconfig(atk) BuildRequires: pkgconfig(atspi-2) >= 2.5.3 BuildRequires: pkgconfig(cairo) >= 1.10.2 @@ -104,6 +106,7 @@ BuildRequires: pkgconfig(harfbuzz) >= 0.9.2 BuildRequires: pkgconfig(libbrotlidec) >= 1.0.1 BuildRequires: pkgconfig(libnotify) BuildRequires: pkgconfig(libpng) +#BuildRequires: pkgconfig(libseccomp) BuildRequires: pkgconfig(libsecret-1) BuildRequires: pkgconfig(libsoup-2.4) >= 2.61.90 BuildRequires: pkgconfig(libwebp) @@ -129,6 +132,8 @@ BuildRequires: binutils-gold # We require gtk2 for the Gtk2 plugin wrapper BuildRequires: pkgconfig(gtk+-2.0) >= 2.24.10 %endif +#Requires: bubblewrap +#Requires: xdg-dbus-proxy %description WebKit is a web content engine, derived from KHTML and KJS from KDE, @@ -283,9 +288,6 @@ A small test browswer from webkit, useful for testing features. %prep %setup -q -n webkitgtk-%{version} -%if %{with python3} -%patch0 -p1 -%endif %patch1 -p1 %build @@ -318,6 +320,10 @@ export PYTHON=%{_bindir}/python3 -DCMAKE_BUILD_TYPE=Release \ -DLIBEXEC_INSTALL_DIR=%{_libexecdir}/libwebkit2gtk%{_wk2sover} \ -DPORT=GTK \ + -DENABLE_MINIBROWSER=ON \ + -DCMAKE_EXE_LINKER_FLAGS="-Wl,--as-needed -Wl,-z,now -pthread" \ + -DCMAKE_MODULE_LINKER_FLAGS="-Wl,--as-needed -Wl,-z,now -pthread" \ + -DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed -Wl,-z,now -pthread" \ %if 0%{?suse_version} == 1315 -DCMAKE_C_COMPILER=gcc-7 \ -DCMAKE_CXX_COMPILER=g++-7 \ @@ -328,8 +334,6 @@ export PYTHON=%{_bindir}/python3 -DUSE_WOFF2=false \ -DENABLE_MEDIA_SOURCE=OFF \ %endif - -DENABLE_MINIBROWSER=ON \ - -DENABLE_ACCELERATED_2D_CANVAS=ON \ %if %{with python3} -DPYTHON_EXECUTABLE=%{_bindir}/python3 \ %endif @@ -340,9 +344,6 @@ export PYTHON=%{_bindir}/python3 -DENABLE_JIT=OFF \ %endif -DUSE_SYSTEM_MALLOC=ON \ - -DCMAKE_EXE_LINKER_FLAGS="-Wl,--as-needed -Wl,-z,now -pthread" \ - -DCMAKE_MODULE_LINKER_FLAGS="-Wl,--as-needed -Wl,-z,now -pthread" \ - -DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed -Wl,-z,now -pthread" %ninja_build -j $max_link_jobs diff --git a/webkitgtk-2.22.7.tar.xz b/webkitgtk-2.22.7.tar.xz deleted file mode 100644 index 1756fcb..0000000 --- a/webkitgtk-2.22.7.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4be6f7d605cd0a690fd26e8aa83b089a33ad9d419148eafcfb60580dd2af30ff -size 16777676 diff --git a/webkitgtk-2.22.7.tar.xz.asc b/webkitgtk-2.22.7.tar.xz.asc deleted file mode 100644 index dea7e05..0000000 --- a/webkitgtk-2.22.7.tar.xz.asc +++ /dev/null @@ -1,6 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iF0EABECAB0WIQRao7wzT9fjNp58d7KRxVnb5MkSOwUCXHlxIQAKCRCRxVnb5MkS -O553AJ9jvJOicYohdrVKJYpLGwdfzSCFwACfWP9BK19+cQR4csHiVzeeei7L2Nk= -=aqhN ------END PGP SIGNATURE----- diff --git a/webkitgtk-2.24.0.tar.xz b/webkitgtk-2.24.0.tar.xz new file mode 100644 index 0000000..8220a9e --- /dev/null +++ b/webkitgtk-2.24.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e4ad1503fe482ceb5a83cf70ac9cd42f37eb718555a4d6844fe4c59a9214407 +size 17894000 diff --git a/webkitgtk-2.24.0.tar.xz.asc b/webkitgtk-2.24.0.tar.xz.asc new file mode 100644 index 0000000..a06be1a --- /dev/null +++ b/webkitgtk-2.24.0.tar.xz.asc @@ -0,0 +1,6 @@ +-----BEGIN PGP SIGNATURE----- + +iF0EABEDAB0WIQTX/PYc+aLeqzHYG9Pz0yLQ7EWCwwUCXIjSEgAKCRDz0yLQ7EWC +w3XeAJ4ihDVCxdmR3bu1ZnJA2+fmSo7rhgCg0jQJCPD1XIrb+zuqPNxWT/wDQwg= +=MBZW +-----END PGP SIGNATURE-----