Title: [210307] trunk/Source/_javascript_Core
Revision
210307
Author
[email protected]
Date
2017-01-04 17:16:30 -0800 (Wed, 04 Jan 2017)

Log Message

Web Inspector: teach the protocol generator about platform-specific types, events, and commands
https://bugs.webkit.org/show_bug.cgi?id=166003
<rdar://problem/28718990>

Reviewed by Joseph Pecoraro.

Add a --platform argument to generate-inspector-protocol-bindings.py and propagate
the specified platform to each generator. This will be used in the next few patches
to exclude types, events, and commands that are unsupported by the backend platform.

Covert all subclasses of Generator to pass along their positional arguments so that we
can easily change base class arguments without editing all generator constructors.

* inspector/scripts/codegen/cpp_generator.py:
(CppGenerator.__init__):
* inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py:
(CppAlternateBackendDispatcherHeaderGenerator.__init__):
* inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py:
(CppBackendDispatcherHeaderGenerator.__init__):
* inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py:
(CppBackendDispatcherImplementationGenerator.__init__):
* inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py:
(CppFrontendDispatcherHeaderGenerator.__init__):
* inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py:
(CppFrontendDispatcherImplementationGenerator.__init__):
* inspector/scripts/codegen/generate_cpp_protocol_types_header.py:
(CppProtocolTypesHeaderGenerator.__init__):
* inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py:
(CppProtocolTypesImplementationGenerator.__init__):
* inspector/scripts/codegen/generate_js_backend_commands.py:
(JSBackendCommandsGenerator.__init__):
* inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py:
(ObjCBackendDispatcherHeaderGenerator.__init__):
* inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py:
(ObjCConfigurationImplementationGenerator.__init__):
* inspector/scripts/codegen/generate_objc_configuration_header.py:
(ObjCConfigurationHeaderGenerator.__init__):
* inspector/scripts/codegen/generate_objc_configuration_implementation.py:
(ObjCBackendDispatcherImplementationGenerator.__init__):
* inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py:
(ObjCFrontendDispatcherImplementationGenerator.__init__):
* inspector/scripts/codegen/generate_objc_header.py:
(ObjCHeaderGenerator.__init__):
* inspector/scripts/codegen/generate_objc_internal_header.py:
(ObjCInternalHeaderGenerator.__init__):
* inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py:
(ObjCProtocolTypeConversionsHeaderGenerator.__init__):
* inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py:
(ObjCProtocolTypeConversionsImplementationGenerator.__init__):
* inspector/scripts/codegen/generate_objc_protocol_types_implementation.py:
(ObjCProtocolTypesImplementationGenerator.__init__):
Pass along *args instead of single positional arguments.

* inspector/scripts/codegen/generator.py:
(Generator.__init__):
Save the target platform and add a getter.

* inspector/scripts/codegen/models.py:
(Platform):
(Platform.__init__):
(Platform.fromString):
(Platforms):
Define the allowed Platform instances (iOS, macOS, and Any).

* inspector/scripts/codegen/objc_generator.py:
(ObjCGenerator.and.__init__):
* inspector/scripts/generate-inspector-protocol-bindings.py:
(generate_from_specification):
Pass along *args instead of single positional arguments.

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (210306 => 210307)


--- trunk/Source/_javascript_Core/ChangeLog	2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/_javascript_Core/ChangeLog	2017-01-05 01:16:30 UTC (rev 210307)
@@ -1,3 +1,75 @@
+2017-01-03  Brian Burg  <[email protected]>
+
+        Web Inspector: teach the protocol generator about platform-specific types, events, and commands
+        https://bugs.webkit.org/show_bug.cgi?id=166003
+        <rdar://problem/28718990>
+
+        Reviewed by Joseph Pecoraro.
+
+        Add a --platform argument to generate-inspector-protocol-bindings.py and propagate
+        the specified platform to each generator. This will be used in the next few patches
+        to exclude types, events, and commands that are unsupported by the backend platform.
+
+        Covert all subclasses of Generator to pass along their positional arguments so that we
+        can easily change base class arguments without editing all generator constructors.
+
+        * inspector/scripts/codegen/cpp_generator.py:
+        (CppGenerator.__init__):
+        * inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py:
+        (CppAlternateBackendDispatcherHeaderGenerator.__init__):
+        * inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py:
+        (CppBackendDispatcherHeaderGenerator.__init__):
+        * inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py:
+        (CppBackendDispatcherImplementationGenerator.__init__):
+        * inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py:
+        (CppFrontendDispatcherHeaderGenerator.__init__):
+        * inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py:
+        (CppFrontendDispatcherImplementationGenerator.__init__):
+        * inspector/scripts/codegen/generate_cpp_protocol_types_header.py:
+        (CppProtocolTypesHeaderGenerator.__init__):
+        * inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py:
+        (CppProtocolTypesImplementationGenerator.__init__):
+        * inspector/scripts/codegen/generate_js_backend_commands.py:
+        (JSBackendCommandsGenerator.__init__):
+        * inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py:
+        (ObjCBackendDispatcherHeaderGenerator.__init__):
+        * inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py:
+        (ObjCConfigurationImplementationGenerator.__init__):
+        * inspector/scripts/codegen/generate_objc_configuration_header.py:
+        (ObjCConfigurationHeaderGenerator.__init__):
+        * inspector/scripts/codegen/generate_objc_configuration_implementation.py:
+        (ObjCBackendDispatcherImplementationGenerator.__init__):
+        * inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py:
+        (ObjCFrontendDispatcherImplementationGenerator.__init__):
+        * inspector/scripts/codegen/generate_objc_header.py:
+        (ObjCHeaderGenerator.__init__):
+        * inspector/scripts/codegen/generate_objc_internal_header.py:
+        (ObjCInternalHeaderGenerator.__init__):
+        * inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py:
+        (ObjCProtocolTypeConversionsHeaderGenerator.__init__):
+        * inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py:
+        (ObjCProtocolTypeConversionsImplementationGenerator.__init__):
+        * inspector/scripts/codegen/generate_objc_protocol_types_implementation.py:
+        (ObjCProtocolTypesImplementationGenerator.__init__):
+        Pass along *args instead of single positional arguments.
+
+        * inspector/scripts/codegen/generator.py:
+        (Generator.__init__):
+        Save the target platform and add a getter.
+
+        * inspector/scripts/codegen/models.py:
+        (Platform):
+        (Platform.__init__):
+        (Platform.fromString):
+        (Platforms):
+        Define the allowed Platform instances (iOS, macOS, and Any).
+
+        * inspector/scripts/codegen/objc_generator.py:
+        (ObjCGenerator.and.__init__):
+        * inspector/scripts/generate-inspector-protocol-bindings.py:
+        (generate_from_specification):
+        Pass along *args instead of single positional arguments.
+
 2017-01-04  JF Bastien  <[email protected]>
 
         WebAssembly JS API: add Module.sections

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/cpp_generator.py (210306 => 210307)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/cpp_generator.py	2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/cpp_generator.py	2017-01-05 01:16:30 UTC (rev 210307)
@@ -44,8 +44,8 @@
 }
 
 class CppGenerator(Generator):
-    def __init__(self, model, input_filepath):
-        Generator.__init__(self, model, input_filepath)
+    def __init__(self, *args, **kwargs):
+        Generator.__init__(self, *args, **kwargs)
 
     def protocol_name(self):
         return self.model().framework.setting('cpp_protocol_group', '')

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py (210306 => 210307)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py	2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py	2017-01-05 01:16:30 UTC (rev 210307)
@@ -37,8 +37,8 @@
 
 
 class CppAlternateBackendDispatcherHeaderGenerator(CppGenerator):
-    def __init__(self, model, input_filepath):
-        CppGenerator.__init__(self, model, input_filepath)
+    def __init__(self, *args, **kwargs):
+        CppGenerator.__init__(self, *args, **kwargs)
 
     def output_filename(self):
         return '%sAlternateBackendDispatchers.h' % self.protocol_name()

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py (210306 => 210307)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py	2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py	2017-01-05 01:16:30 UTC (rev 210307)
@@ -39,8 +39,8 @@
 
 
 class CppBackendDispatcherHeaderGenerator(CppGenerator):
-    def __init__(self, model, input_filepath):
-        CppGenerator.__init__(self, model, input_filepath)
+    def __init__(self, *args, **kwargs):
+        CppGenerator.__init__(self, *args, **kwargs)
 
     def output_filename(self):
         return "%sBackendDispatchers.h" % self.protocol_name()

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py (210306 => 210307)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py	2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py	2017-01-05 01:16:30 UTC (rev 210307)
@@ -38,8 +38,8 @@
 
 
 class CppBackendDispatcherImplementationGenerator(CppGenerator):
-    def __init__(self, model, input_filepath):
-        CppGenerator.__init__(self, model, input_filepath)
+    def __init__(self, *args, **kwargs):
+        CppGenerator.__init__(self, *args, **kwargs)
 
     def output_filename(self):
         return "%sBackendDispatchers.cpp" % self.protocol_name()

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py (210306 => 210307)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py	2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py	2017-01-05 01:16:30 UTC (rev 210307)
@@ -39,8 +39,8 @@
 
 
 class CppFrontendDispatcherHeaderGenerator(CppGenerator):
-    def __init__(self, model, input_filepath):
-        CppGenerator.__init__(self, model, input_filepath)
+    def __init__(self, *args, **kwargs):
+        CppGenerator.__init__(self, *args, **kwargs)
 
     def output_filename(self):
         return "%sFrontendDispatchers.h" % self.protocol_name()

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py (210306 => 210307)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py	2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py	2017-01-05 01:16:30 UTC (rev 210307)
@@ -38,8 +38,8 @@
 
 
 class CppFrontendDispatcherImplementationGenerator(CppGenerator):
-    def __init__(self, model, input_filepath):
-        CppGenerator.__init__(self, model, input_filepath)
+    def __init__(self, *args, **kwargs):
+        CppGenerator.__init__(self, *args, **kwargs)
 
     def output_filename(self):
         return "%sFrontendDispatchers.cpp" % self.protocol_name()

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_protocol_types_header.py (210306 => 210307)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_protocol_types_header.py	2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_protocol_types_header.py	2017-01-05 01:16:30 UTC (rev 210307)
@@ -40,8 +40,8 @@
 
 
 class CppProtocolTypesHeaderGenerator(CppGenerator):
-    def __init__(self, model, input_filepath):
-        CppGenerator.__init__(self, model, input_filepath)
+    def __init__(self, *args, **kwargs):
+        CppGenerator.__init__(self, *args, **kwargs)
 
     def output_filename(self):
         return "%sProtocolObjects.h" % self.protocol_name()

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py (210306 => 210307)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py	2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py	2017-01-05 01:16:30 UTC (rev 210307)
@@ -39,8 +39,8 @@
 
 
 class CppProtocolTypesImplementationGenerator(CppGenerator):
-    def __init__(self, model, input_filepath):
-        CppGenerator.__init__(self, model, input_filepath)
+    def __init__(self, *args, **kwargs):
+        CppGenerator.__init__(self, *args, **kwargs)
 
     def output_filename(self):
         return "%sProtocolObjects.cpp" % self.protocol_name()

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_js_backend_commands.py (210306 => 210307)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_js_backend_commands.py	2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_js_backend_commands.py	2017-01-05 01:16:30 UTC (rev 210307)
@@ -37,8 +37,8 @@
 
 
 class JSBackendCommandsGenerator(Generator):
-    def __init__(self, model, input_filepath):
-        Generator.__init__(self, model, input_filepath)
+    def __init__(self, *args, **kwargs):
+        Generator.__init__(self, *args, **kwargs)
 
     def output_filename(self):
         return "InspectorBackendCommands.js"

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py (210306 => 210307)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py	2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py	2017-01-05 01:16:30 UTC (rev 210307)
@@ -40,8 +40,8 @@
 
 
 class ObjCBackendDispatcherHeaderGenerator(ObjCGenerator):
-    def __init__(self, model, input_filepath):
-        ObjCGenerator.__init__(self, model, input_filepath)
+    def __init__(self, *args, **kwargs):
+        ObjCGenerator.__init__(self, *args, **kwargs)
 
     def output_filename(self):
         return '%sBackendDispatchers.h' % self.protocol_name()

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py (210306 => 210307)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py	2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py	2017-01-05 01:16:30 UTC (rev 210307)
@@ -40,8 +40,8 @@
 
 
 class ObjCConfigurationImplementationGenerator(ObjCGenerator):
-    def __init__(self, model, input_filepath):
-        ObjCGenerator.__init__(self, model, input_filepath)
+    def __init__(self, *args, **kwargs):
+        ObjCGenerator.__init__(self, *args, **kwargs)
 
     def output_filename(self):
         return '%sBackendDispatchers.mm' % self.protocol_name()

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_configuration_header.py (210306 => 210307)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_configuration_header.py	2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_configuration_header.py	2017-01-05 01:16:30 UTC (rev 210307)
@@ -37,8 +37,8 @@
 
 
 class ObjCConfigurationHeaderGenerator(ObjCGenerator):
-    def __init__(self, model, input_filepath):
-        ObjCGenerator.__init__(self, model, input_filepath)
+    def __init__(self, *args, **kwargs):
+        ObjCGenerator.__init__(self, *args, **kwargs)
 
     def output_filename(self):
         return '%sConfiguration.h' % self.protocol_name()

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_configuration_implementation.py (210306 => 210307)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_configuration_implementation.py	2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_configuration_implementation.py	2017-01-05 01:16:30 UTC (rev 210307)
@@ -37,8 +37,8 @@
 
 
 class ObjCBackendDispatcherImplementationGenerator(ObjCGenerator):
-    def __init__(self, model, input_filepath):
-        ObjCGenerator.__init__(self, model, input_filepath)
+    def __init__(self, *args, **kwargs):
+        ObjCGenerator.__init__(self, *args, **kwargs)
 
     def output_filename(self):
         return '%sConfiguration.mm' % self.protocol_name()

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py (210306 => 210307)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py	2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py	2017-01-05 01:16:30 UTC (rev 210307)
@@ -38,8 +38,8 @@
 
 
 class ObjCFrontendDispatcherImplementationGenerator(ObjCGenerator):
-    def __init__(self, model, input_filepath):
-        ObjCGenerator.__init__(self, model, input_filepath)
+    def __init__(self, *args, **kwargs):
+        ObjCGenerator.__init__(self, *args, **kwargs)
 
     def output_filename(self):
         return '%sEventDispatchers.mm' % self.protocol_name()

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_header.py (210306 => 210307)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_header.py	2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_header.py	2017-01-05 01:16:30 UTC (rev 210307)
@@ -44,8 +44,8 @@
 
 
 class ObjCHeaderGenerator(ObjCGenerator):
-    def __init__(self, model, input_filepath):
-        ObjCGenerator.__init__(self, model, input_filepath)
+    def __init__(self, *args, **kwargs):
+        ObjCGenerator.__init__(self, *args, **kwargs)
 
     def output_filename(self):
         return '%s.h' % self.protocol_name()

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_internal_header.py (210306 => 210307)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_internal_header.py	2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_internal_header.py	2017-01-05 01:16:30 UTC (rev 210307)
@@ -37,8 +37,8 @@
 
 
 class ObjCInternalHeaderGenerator(ObjCGenerator):
-    def __init__(self, model, input_filepath):
-        ObjCGenerator.__init__(self, model, input_filepath)
+    def __init__(self, *args, **kwargs):
+        ObjCGenerator.__init__(self, *args, **kwargs)
 
     def output_filename(self):
         return '%sInternal.h' % self.protocol_name()

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py (210306 => 210307)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py	2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py	2017-01-05 01:16:30 UTC (rev 210307)
@@ -44,8 +44,8 @@
 
 
 class ObjCProtocolTypeConversionsHeaderGenerator(ObjCGenerator):
-    def __init__(self, model, input_filepath):
-        ObjCGenerator.__init__(self, model, input_filepath)
+    def __init__(self, *args, **kwargs):
+        ObjCGenerator.__init__(self, *args, **kwargs)
 
     def output_filename(self):
         return '%sTypeConversions.h' % self.protocol_name()

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py (210306 => 210307)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py	2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py	2017-01-05 01:16:30 UTC (rev 210307)
@@ -43,8 +43,8 @@
 
 
 class ObjCProtocolTypeConversionsImplementationGenerator(ObjCGenerator):
-    def __init__(self, model, input_filepath):
-        ObjCGenerator.__init__(self, model, input_filepath)
+    def __init__(self, *args, **kwargs):
+        ObjCGenerator.__init__(self, *args, **kwargs)
 
     def output_filename(self):
         return '%sTypeConversions.mm' % self.protocol_name()

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py (210306 => 210307)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py	2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py	2017-01-05 01:16:30 UTC (rev 210307)
@@ -44,8 +44,8 @@
 
 
 class ObjCProtocolTypesImplementationGenerator(ObjCGenerator):
-    def __init__(self, model, input_filepath):
-        ObjCGenerator.__init__(self, model, input_filepath)
+    def __init__(self, *args, **kwargs):
+        ObjCGenerator.__init__(self, *args, **kwargs)
 
     def output_filename(self):
         return '%sTypes.mm' % self.protocol_name()

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generator.py (210306 => 210307)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generator.py	2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generator.py	2017-01-05 01:16:30 UTC (rev 210307)
@@ -76,8 +76,9 @@
 
 
 class Generator:
-    def __init__(self, model, input_filepath):
+    def __init__(self, model, platform, input_filepath):
         self._model = model
+        self._platform = platform
         self._input_filepath = input_filepath
         self._settings = {}
 
@@ -84,6 +85,9 @@
     def model(self):
         return self._model
 
+    def platform(self):
+        return self._platform
+
     def set_generator_setting(self, key, value):
         self._settings[key] = value
 

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/models.py (210306 => 210307)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/models.py	2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/models.py	2017-01-05 01:16:30 UTC (rev 210307)
@@ -109,6 +109,35 @@
     Test = Framework("Test")
 
 
+class Platform:
+    def __init__(self, name):
+        self.name = name
+
+    @staticmethod
+    def fromString(platformString):
+        platformString = platformString.lower()
+        if platformString == "ios":
+            return Platforms.iOS
+
+        if platformString == "macos":
+            return Platforms.macOS
+
+        if platformString == "all":
+            return Platforms.All
+
+        if platformString == "generic" or not platformString:
+            return Platforms.Generic
+
+        raise ParseException("Unknown platform: %s" % platformString)
+
+
+class Platforms:
+    All = Platform("All")
+    Generic = Platform("generic")
+    iOS = Platform("iOS")
+    macOS = Platform("macOS")
+
+
 class TypeReference:
     def __init__(self, type_kind, referenced_type_name, enum_values, array_items):
         self.type_kind = type_kind

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/objc_generator.py (210306 => 210307)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/objc_generator.py	2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/objc_generator.py	2017-01-05 01:16:30 UTC (rev 210307)
@@ -89,8 +89,8 @@
     OBJC_SHARED_PREFIX = 'Protocol'
     OBJC_STATIC_PREFIX = '%s%s' % (OBJC_HELPER_PREFIX, OBJC_SHARED_PREFIX)
 
-    def __init__(self, model, input_filepath):
-        Generator.__init__(self, model, input_filepath)
+    def __init__(self, *args, **kwargs):
+        Generator.__init__(self, *args, **kwargs)
 
     # The 'protocol name' is used to prefix filenames for a protocol group (a set of domains generated together).
     def protocol_name(self):

Modified: trunk/Source/_javascript_Core/inspector/scripts/generate-inspector-protocol-bindings.py (210306 => 210307)


--- trunk/Source/_javascript_Core/inspector/scripts/generate-inspector-protocol-bindings.py	2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/_javascript_Core/inspector/scripts/generate-inspector-protocol-bindings.py	2017-01-05 01:16:30 UTC (rev 210307)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 #
-# Copyright (c) 2014 Apple Inc. All rights reserved.
+# Copyright (c) 2014, 2016 Apple Inc. All rights reserved.
 # Copyright (c) 2014 University of Washington. All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -114,6 +114,7 @@
                                 output_dirpath=None,
                                 force_output=False,
                                 framework_name="",
+                                platform_name="",
                                 generate_frontend=True,
                                 generate_backend=True):
 
@@ -125,6 +126,7 @@
         except ValueError as e:
             raise Exception("Error parsing valid JSON in file: " + filepath + "\nParse error: " + str(e))
 
+    platform = Platform.fromString(platform_name)
     protocol = models.Protocol(framework_name)
     for specification in supplemental_specification_filepaths:
         load_specification(protocol, specification, isSupplemental=True)
@@ -132,59 +134,61 @@
 
     protocol.resolve_types()
 
+    generator_arguments = [protocol, platform, primary_specification_filepath]
     generators = []
+
     if protocol.framework is Frameworks.Test:
-        generators.append(JSBackendCommandsGenerator(protocol, primary_specification_filepath))
-        generators.append(CppAlternateBackendDispatcherHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(CppBackendDispatcherHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(CppBackendDispatcherImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(CppFrontendDispatcherHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(CppFrontendDispatcherImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(CppProtocolTypesHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(CppProtocolTypesImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCBackendDispatcherHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCBackendDispatcherImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCConfigurationHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCConfigurationImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCFrontendDispatcherImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCInternalHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCProtocolTypeConversionsHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCProtocolTypeConversionsImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCProtocolTypesImplementationGenerator(protocol, primary_specification_filepath))
+        generators.append(JSBackendCommandsGenerator(*generator_arguments))
+        generators.append(CppAlternateBackendDispatcherHeaderGenerator(*generator_arguments))
+        generators.append(CppBackendDispatcherHeaderGenerator(*generator_arguments))
+        generators.append(CppBackendDispatcherImplementationGenerator(*generator_arguments))
+        generators.append(CppFrontendDispatcherHeaderGenerator(*generator_arguments))
+        generators.append(CppFrontendDispatcherImplementationGenerator(*generator_arguments))
+        generators.append(CppProtocolTypesHeaderGenerator(*generator_arguments))
+        generators.append(CppProtocolTypesImplementationGenerator(*generator_arguments))
+        generators.append(ObjCBackendDispatcherHeaderGenerator(*generator_arguments))
+        generators.append(ObjCBackendDispatcherImplementationGenerator(*generator_arguments))
+        generators.append(ObjCConfigurationHeaderGenerator(*generator_arguments))
+        generators.append(ObjCConfigurationImplementationGenerator(*generator_arguments))
+        generators.append(ObjCFrontendDispatcherImplementationGenerator(*generator_arguments))
+        generators.append(ObjCHeaderGenerator(*generator_arguments))
+        generators.append(ObjCInternalHeaderGenerator(*generator_arguments))
+        generators.append(ObjCProtocolTypeConversionsHeaderGenerator(*generator_arguments))
+        generators.append(ObjCProtocolTypeConversionsImplementationGenerator(*generator_arguments))
+        generators.append(ObjCProtocolTypesImplementationGenerator(*generator_arguments))
 
     elif protocol.framework is Frameworks._javascript_Core:
-        generators.append(JSBackendCommandsGenerator(protocol, primary_specification_filepath))
-        generators.append(CppAlternateBackendDispatcherHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(CppBackendDispatcherHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(CppBackendDispatcherImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(CppFrontendDispatcherHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(CppFrontendDispatcherImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(CppProtocolTypesHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(CppProtocolTypesImplementationGenerator(protocol, primary_specification_filepath))
+        generators.append(JSBackendCommandsGenerator(*generator_arguments))
+        generators.append(CppAlternateBackendDispatcherHeaderGenerator(*generator_arguments))
+        generators.append(CppBackendDispatcherHeaderGenerator(*generator_arguments))
+        generators.append(CppBackendDispatcherImplementationGenerator(*generator_arguments))
+        generators.append(CppFrontendDispatcherHeaderGenerator(*generator_arguments))
+        generators.append(CppFrontendDispatcherImplementationGenerator(*generator_arguments))
+        generators.append(CppProtocolTypesHeaderGenerator(*generator_arguments))
+        generators.append(CppProtocolTypesImplementationGenerator(*generator_arguments))
 
     elif protocol.framework is Frameworks.WebKit and generate_backend:
-        generators.append(CppBackendDispatcherHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(CppBackendDispatcherImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(CppProtocolTypesHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(CppProtocolTypesImplementationGenerator(protocol, primary_specification_filepath))
+        generators.append(CppBackendDispatcherHeaderGenerator(*generator_arguments))
+        generators.append(CppBackendDispatcherImplementationGenerator(*generator_arguments))
+        generators.append(CppProtocolTypesHeaderGenerator(*generator_arguments))
+        generators.append(CppProtocolTypesImplementationGenerator(*generator_arguments))
 
     elif protocol.framework is Frameworks.WebKit and generate_frontend:
-        generators.append(ObjCHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCProtocolTypeConversionsHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCProtocolTypeConversionsImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCProtocolTypesImplementationGenerator(protocol, primary_specification_filepath))
+        generators.append(ObjCHeaderGenerator(*generator_arguments))
+        generators.append(ObjCProtocolTypeConversionsHeaderGenerator(*generator_arguments))
+        generators.append(ObjCProtocolTypeConversionsImplementationGenerator(*generator_arguments))
+        generators.append(ObjCProtocolTypesImplementationGenerator(*generator_arguments))
 
     elif protocol.framework is Frameworks.WebInspector:
-        generators.append(ObjCBackendDispatcherHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCBackendDispatcherImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCConfigurationHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCConfigurationImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCFrontendDispatcherImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCInternalHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCProtocolTypeConversionsHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCProtocolTypesImplementationGenerator(protocol, primary_specification_filepath))
+        generators.append(ObjCBackendDispatcherHeaderGenerator(*generator_arguments))
+        generators.append(ObjCBackendDispatcherImplementationGenerator(*generator_arguments))
+        generators.append(ObjCConfigurationHeaderGenerator(*generator_arguments))
+        generators.append(ObjCConfigurationImplementationGenerator(*generator_arguments))
+        generators.append(ObjCFrontendDispatcherImplementationGenerator(*generator_arguments))
+        generators.append(ObjCHeaderGenerator(*generator_arguments))
+        generators.append(ObjCInternalHeaderGenerator(*generator_arguments))
+        generators.append(ObjCProtocolTypeConversionsHeaderGenerator(*generator_arguments))
+        generators.append(ObjCProtocolTypesImplementationGenerator(*generator_arguments))
 
     single_output_file_contents = []
 
@@ -216,6 +220,7 @@
 
 if __name__ == '__main__':
     allowed_framework_names = ['_javascript_Core', 'WebInspector', 'WebKit', 'Test']
+    allowed_platform_names = ['iOS', 'macOS', 'all', 'generic']
     cli_parser = optparse.OptionParser(usage="usage: %prog [options] PrimaryProtocol.json [SupplementalProtocol.json ...]")
     cli_parser.add_option("-o", "--outputDir", help="Directory where generated files should be written.")
     cli_parser.add_option("--framework", type="choice", choices=allowed_framework_names, help="The framework that the primary specification belongs to.")
@@ -224,6 +229,7 @@
     cli_parser.add_option("-t", "--test", action="" help="Enable test mode. Use unique output filenames created by prepending the input filename.")
     cli_parser.add_option("--frontend", action="" help="Generate code for the frontend-side of the protocol only.")
     cli_parser.add_option("--backend", action="" help="Generate code for the backend-side of the protocol only.")
+    cli_parser.add_option("--platform", default="generic", help="The platform of the backend being generated. For example, we compile WebKit2 for either macOS or iOS. This value is case-insensitive. Allowed values: %s" % ", ".join(allowed_platform_names))
     options = None
 
     arg_options, arg_values = cli_parser.parse_args()
@@ -249,6 +255,7 @@
         'output_dirpath': arg_options.outputDir,
         'concatenate_output': arg_options.test,
         'framework_name': arg_options.framework,
+        'platform_name': arg_options.platform,
         'force_output': arg_options.force,
         'generate_backend': generate_backend,
         'generate_frontend': generate_frontend,
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to