Title: [196970] trunk/Source
Revision
196970
Author
[email protected]
Date
2016-02-22 23:18:41 -0800 (Mon, 22 Feb 2016)

Log Message

Web Inspector: add 'Automation' protocol domain and generate its backend classes separately in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=154509
<rdar://problem/24759098>

Reviewed by Timothy Hatcher.

Source/_javascript_Core:

Add a new 'WebKit' framework, which is used to generate protocol code
in WebKit2.

Add --backend and --frontend flags to the main generator script.
These allow a framework to trigger two different sets of generators
so they can be separately generated and compiled.

* inspector/scripts/codegen/models.py:
(Framework.fromString):
(Frameworks): Add new framework.

* inspector/scripts/generate-inspector-protocol-bindings.py:
If neither --backend or --frontend is specified, assume both are wanted.
This matches the behavior for _javascript_Core and WebInspector frameworks.

(generate_from_specification):
Generate C++ files for the backend and Objective-C files for the frontend.

Source/WebKit2:

Add a new 'Automation' domain which presents an RPC interface
for sending automation commands to an active WebAutomationSession
in the UIProcess via RemoteInspector. This is similar to how the
Inspector backend communicates bidirectionally with a remote
Inspector frontend.

Add build system logic to generate JSON-RPC protocol bindings
for the 'Automation' domain using the inspector code generators.

Move automation-related files that are not API or SPI into their
own directory.

* Configurations/BaseTarget.xcconfig: Tell where _javascript_Core's
private headers are, since that's where the code generators live.

* CMakeLists.txt: Look in UIProcess/Automation directory.
* PlatformMac.cmake:
* DerivedSources.make: Generate protocol bindings for a single domain.
The names of the generated files will be improved in a follow-up patch
so that they do not clash with generated files in _javascript_Core.

* UIProcess/Automation/Automation.json: Added.
* UIProcess/Automation/WebAutomationSession.cpp: Renamed from Source/WebKit2/UIProcess/WebAutomationSession.cpp.
(WebKit::WebAutomationSession::WebAutomationSession):
(WebKit::WebAutomationSession::~WebAutomationSession):
Set up a backend dispatcher and frontend router. They will be used later.

(WebKit::WebAutomationSession::dispatchMessageFromRemote):
Forward messages from the remote to the backend dispatcher. When
an agent / command handler is registered, it will receive the message.

(WebKit::WebAutomationSession::connect):
(WebKit::WebAutomationSession::disconnect):
Connenct and disconnect the frontend router to the remote channel.

* UIProcess/Automation/WebAutomationSession.h: Renamed from Source/WebKit2/UIProcess/WebAutomationSession.h.
* WebKit2.xcodeproj/project.pbxproj: Add and move files.

Modified Paths

Added Paths

Removed Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (196969 => 196970)


--- trunk/Source/_javascript_Core/ChangeLog	2016-02-23 07:17:29 UTC (rev 196969)
+++ trunk/Source/_javascript_Core/ChangeLog	2016-02-23 07:18:41 UTC (rev 196970)
@@ -1,3 +1,29 @@
+2016-02-22  Brian Burg  <[email protected]>
+
+        Web Inspector: add 'Automation' protocol domain and generate its backend classes separately in WebKit2
+        https://bugs.webkit.org/show_bug.cgi?id=154509
+        <rdar://problem/24759098>
+
+        Reviewed by Timothy Hatcher.
+
+        Add a new 'WebKit' framework, which is used to generate protocol code
+        in WebKit2.
+
+        Add --backend and --frontend flags to the main generator script.
+        These allow a framework to trigger two different sets of generators
+        so they can be separately generated and compiled.
+
+        * inspector/scripts/codegen/models.py:
+        (Framework.fromString):
+        (Frameworks): Add new framework.
+
+        * inspector/scripts/generate-inspector-protocol-bindings.py:
+        If neither --backend or --frontend is specified, assume both are wanted.
+        This matches the behavior for _javascript_Core and WebInspector frameworks.
+
+        (generate_from_specification):
+        Generate C++ files for the backend and Objective-C files for the frontend.
+
 2016-02-22  Saam barati  <[email protected]>
 
         JSGlobalObject doesn't visit ProxyObjectStructure during GC

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


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/models.py	2016-02-23 07:17:29 UTC (rev 196969)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/models.py	2016-02-23 07:18:41 UTC (rev 196970)
@@ -45,6 +45,8 @@
         "export_macro": "JS_EXPORT_PRIVATE",
         "alternate_dispatchers": True,
     },
+    "WebKit": {
+    },
     "WebInspector": {
     },
     # Used for code generator tests.
@@ -78,6 +80,9 @@
         if frameworkString == "_javascript_Core":
             return Frameworks._javascript_Core
 
+        if frameworkString == "WebKit":
+            return Frameworks.WebKit
+
         if frameworkString == "WebInspector":
             return Frameworks.WebInspector
 
@@ -90,6 +95,7 @@
 class Frameworks:
     Global = Framework("Global")
     _javascript_Core = Framework("_javascript_Core")
+    WebKit = Framework("WebKit")
     WebInspector = Framework("WebInspector")
     Test = Framework("Test")
 

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


--- trunk/Source/_javascript_Core/inspector/scripts/generate-inspector-protocol-bindings.py	2016-02-23 07:17:29 UTC (rev 196969)
+++ trunk/Source/_javascript_Core/inspector/scripts/generate-inspector-protocol-bindings.py	2016-02-23 07:18:41 UTC (rev 196970)
@@ -112,7 +112,9 @@
                                 concatenate_output=False,
                                 output_dirpath=None,
                                 force_output=False,
-                                framework_name=""):
+                                framework_name="",
+                                generate_frontend=True,
+                                generate_backend=True):
 
     def load_specification(protocol, filepath, isSupplemental=False):
         try:
@@ -148,6 +150,7 @@
         generators.append(ObjCHeaderGenerator(protocol, primary_specification_filepath))
         generators.append(ObjCInternalHeaderGenerator(protocol, primary_specification_filepath))
         generators.append(ObjCProtocolTypesImplementationGenerator(protocol, primary_specification_filepath))
+
     elif protocol.framework is Frameworks._javascript_Core:
         generators.append(JSBackendCommandsGenerator(protocol, primary_specification_filepath))
         generators.append(CppAlternateBackendDispatcherHeaderGenerator(protocol, primary_specification_filepath))
@@ -157,6 +160,19 @@
         generators.append(CppFrontendDispatcherImplementationGenerator(protocol, primary_specification_filepath))
         generators.append(CppProtocolTypesHeaderGenerator(protocol, primary_specification_filepath))
         generators.append(CppProtocolTypesImplementationGenerator(protocol, primary_specification_filepath))
+
+    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))
+
+    elif protocol.framework is Frameworks.WebKit and generate_frontend:
+        # FIXME <rdar://problem/23466925>: This list of generators for the frontend is a placeholder.
+        generators.append(ObjCConversionHelpersGenerator(protocol, primary_specification_filepath))
+        generators.append(ObjCFrontendDispatcherImplementationGenerator(protocol, primary_specification_filepath))
+        generators.append(ObjCProtocolTypesImplementationGenerator(protocol, primary_specification_filepath))
+
     elif protocol.framework is Frameworks.WebInspector:
         generators.append(ObjCBackendDispatcherHeaderGenerator(protocol, primary_specification_filepath))
         generators.append(ObjCBackendDispatcherImplementationGenerator(protocol, primary_specification_filepath))
@@ -190,14 +206,15 @@
 
 
 if __name__ == '__main__':
-    allowed_framework_names = ['_javascript_Core', 'WebInspector', 'Test']
+    allowed_framework_names = ['_javascript_Core', 'WebInspector', 'WebKit', 'Test']
     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.")
     cli_parser.add_option("--force", action="" help="Force output of generated scripts, even if nothing changed.")
     cli_parser.add_option("-v", "--debug", action="" help="Log extra output for debugging the generator itself.")
     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.")
     options = None
 
     arg_options, arg_values = cli_parser.parse_args()
@@ -210,13 +227,22 @@
     if arg_options.debug:
         log.setLevel(logging.DEBUG)
 
+    generate_backend = arg_options.backend;
+    generate_frontend = arg_options.frontend;
+    # Default to generating both the frontend and backend if neither is specified.
+    if not generate_backend and not generate_frontend:
+        generate_backend = True
+        generate_frontend = True
+
     options = {
         'primary_specification_filepath': arg_values[0],
         'supplemental_specification_filepaths': arg_values[1:],
         'output_dirpath': arg_options.outputDir,
         'concatenate_output': arg_options.test,
         'framework_name': arg_options.framework,
-        'force_output': arg_options.force
+        'force_output': arg_options.force,
+        'generate_backend': generate_backend,
+        'generate_frontend': generate_frontend,
     }
 
     try:

Modified: trunk/Source/WebKit2/CMakeLists.txt (196969 => 196970)


--- trunk/Source/WebKit2/CMakeLists.txt	2016-02-23 07:17:29 UTC (rev 196969)
+++ trunk/Source/WebKit2/CMakeLists.txt	2016-02-23 07:18:41 UTC (rev 196970)
@@ -29,6 +29,7 @@
     "${WEBKIT2_DIR}/UIProcess/API/C"
     "${WEBKIT2_DIR}/UIProcess/API/cpp"
     "${WEBKIT2_DIR}/UIProcess/Authentication"
+    "${WEBKIT2_DIR}/UIProcess/Automation"
     "${WEBKIT2_DIR}/UIProcess/Databases"
     "${WEBKIT2_DIR}/UIProcess/Downloads"
     "${WEBKIT2_DIR}/UIProcess/InspectorServer"
@@ -155,6 +156,8 @@
     "${CMAKE_SOURCE_DIR}/WebKitLibraries"
 )
 
+set(PROTOCOL_GENERATOR_SCRIPTS_DIR "${_javascript_CORE_DIR}/inspector/scripts")
+
 set(WebKit2_SYSTEM_INCLUDE_DIRECTORIES
     ${ICU_INCLUDE_DIRS}
 )
@@ -770,6 +773,40 @@
 
 GENERATE_WEBKIT2_MESSAGE_SOURCES(WebKit2_DERIVED_SOURCES "${WebKit2_MESSAGES_IN_FILES}")
 
+set(WebKit2_AUTOMATION_PROTOCOL_GENERATOR_SCRIPTS
+    ${PROTOCOL_GENERATOR_SCRIPTS_DIR}/generate-inspector-protocol-bindings.py
+    ${PROTOCOL_GENERATOR_SCRIPTS_DIR}/codegen/cpp_generator.py
+    ${PROTOCOL_GENERATOR_SCRIPTS_DIR}/codegen/cpp_generator_templates.py
+    ${PROTOCOL_GENERATOR_SCRIPTS_DIR}/codegen/generate_cpp_backend_dispatcher_header.py
+    ${PROTOCOL_GENERATOR_SCRIPTS_DIR}/codegen/generate_cpp_backend_dispatcher_implementation.py
+    ${PROTOCOL_GENERATOR_SCRIPTS_DIR}/codegen/generate_cpp_protocol_types_header.py
+    ${PROTOCOL_GENERATOR_SCRIPTS_DIR}/codegen/generate_cpp_protocol_types_implementation.py
+    ${PROTOCOL_GENERATOR_SCRIPTS_DIR}/codegen/generator.py
+    ${PROTOCOL_GENERATOR_SCRIPTS_DIR}/codegen/generator_templates.py
+    ${PROTOCOL_GENERATOR_SCRIPTS_DIR}/codegen/models.py
+)
+
+set(WebKit2_AUTOMATION_PROTOCOL_GENERATOR_INPUTS
+    ${WEBKIT2_DIR}/UIProcess/Automation/Automation.json
+)
+
+add_custom_command(
+    OUTPUT ${DERIVED_SOURCES_WEBKIT2_DIR}/InspectorBackendDispatchers.h ${DERIVED_SOURCES_WEBKIT2_DIR}/InspectorBackendDispatchers.cpp ${DERIVED_SOURCES_WEBKIT2_DIR}/InspectorProtocolObjects.h ${DERIVED_SOURCES_WEBKIT2_DIR}/InspectorProtocolObjects.cpp
+    MAIN_DEPENDENCY ${WebKit2_AUTOMATION_PROTOCOL_GENERATOR_INPUTS}
+    DEPENDS ${WebKit2_AUTOMATION_PROTOCOL_GENERATOR_SCRIPTS}
+    COMMAND ${PYTHON_EXECUTABLE} ${PROTOCOL_GENERATOR_SCRIPTS_DIR}/generate-inspector-protocol-bindings.py --outputDir "${DERIVED_SOURCES_WEBKIT2_DIR}" --framework WebKit --backend ${WebKit2_AUTOMATION_PROTOCOL_GENERATOR_INPUTS}
+    VERBATIM)
+
+list(APPEND WebKit2_HEADERS
+    ${DERIVED_SOURCES_WEBKIT2_DIR}/InspectorBackendDispatchers.h
+    ${DERIVED_SOURCES_WEBKIT2_DIR}/InspectorProtocolObjects.h
+)
+
+list(APPEND WebKit2_SOURCES
+    ${DERIVED_SOURCES_WEBKIT2_DIR}/InspectorBackendDispatchers.cpp
+    ${DERIVED_SOURCES_WEBKIT2_DIR}/InspectorProtocolObjects.cpp
+)
+
 WEBKIT_FRAMEWORK(WebKit2)
 add_dependencies(WebKit2 WebCore ${WEBKIT2_EXTRA_DEPENDENCIES})
 add_webkit2_prefix_header(WebKit2)

Modified: trunk/Source/WebKit2/ChangeLog (196969 => 196970)


--- trunk/Source/WebKit2/ChangeLog	2016-02-23 07:17:29 UTC (rev 196969)
+++ trunk/Source/WebKit2/ChangeLog	2016-02-23 07:18:41 UTC (rev 196970)
@@ -1,3 +1,49 @@
+2016-02-22  Brian Burg  <[email protected]>
+
+        Web Inspector: add 'Automation' protocol domain and generate its backend classes separately in WebKit2
+        https://bugs.webkit.org/show_bug.cgi?id=154509
+        <rdar://problem/24759098>
+
+        Reviewed by Timothy Hatcher.
+
+        Add a new 'Automation' domain which presents an RPC interface
+        for sending automation commands to an active WebAutomationSession
+        in the UIProcess via RemoteInspector. This is similar to how the
+        Inspector backend communicates bidirectionally with a remote
+        Inspector frontend.
+
+        Add build system logic to generate JSON-RPC protocol bindings
+        for the 'Automation' domain using the inspector code generators.
+
+        Move automation-related files that are not API or SPI into their
+        own directory.
+
+        * Configurations/BaseTarget.xcconfig: Tell where _javascript_Core's
+        private headers are, since that's where the code generators live.
+
+        * CMakeLists.txt: Look in UIProcess/Automation directory.
+        * PlatformMac.cmake:
+        * DerivedSources.make: Generate protocol bindings for a single domain.
+        The names of the generated files will be improved in a follow-up patch
+        so that they do not clash with generated files in _javascript_Core.
+
+        * UIProcess/Automation/Automation.json: Added.
+        * UIProcess/Automation/WebAutomationSession.cpp: Renamed from Source/WebKit2/UIProcess/WebAutomationSession.cpp.
+        (WebKit::WebAutomationSession::WebAutomationSession):
+        (WebKit::WebAutomationSession::~WebAutomationSession):
+        Set up a backend dispatcher and frontend router. They will be used later.
+
+        (WebKit::WebAutomationSession::dispatchMessageFromRemote):
+        Forward messages from the remote to the backend dispatcher. When
+        an agent / command handler is registered, it will receive the message.
+
+        (WebKit::WebAutomationSession::connect):
+        (WebKit::WebAutomationSession::disconnect):
+        Connenct and disconnect the frontend router to the remote channel.
+
+        * UIProcess/Automation/WebAutomationSession.h: Renamed from Source/WebKit2/UIProcess/WebAutomationSession.h.
+        * WebKit2.xcodeproj/project.pbxproj: Add and move files.
+
 2016-02-16  Ada Chan  <[email protected]>
 
         Implement basic functionality in WebVideoFullscreenInterfaceMac.

Modified: trunk/Source/WebKit2/Configurations/BaseTarget.xcconfig (196969 => 196970)


--- trunk/Source/WebKit2/Configurations/BaseTarget.xcconfig	2016-02-23 07:17:29 UTC (rev 196969)
+++ trunk/Source/WebKit2/Configurations/BaseTarget.xcconfig	2016-02-23 07:18:41 UTC (rev 196970)
@@ -42,6 +42,21 @@
 WEBKIT_FRAMEWORKS_DIR_USE_OVERRIDE_FRAMEWORKS_DIR_NO = $(NORMAL_WEBKIT_FRAMEWORKS_DIR);
 WEBKIT_FRAMEWORKS_DIR_USE_OVERRIDE_FRAMEWORKS_DIR_YES = $(WK_OVERRIDE_FRAMEWORKS_DIR);
 
+NORMAL_PRODUCTION_FRAMEWORKS_DIR[sdk=iphone*] = $(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks;
+NORMAL_PRODUCTION_FRAMEWORKS_DIR[sdk=macosx*] = $(NEXT_ROOT)$(SYSTEM_LIBRARY_DIR)/Frameworks;
+
+PRODUCTION_FRAMEWORKS_DIR[sdk=iphone*] = $(NORMAL_PRODUCTION_FRAMEWORKS_DIR);
+PRODUCTION_FRAMEWORKS_DIR = $(PRODUCTION_FRAMEWORKS_DIR_USE_OVERRIDE_FRAMEWORKS_DIR_$(WK_USE_OVERRIDE_FRAMEWORKS_DIR));
+PRODUCTION_FRAMEWORKS_DIR_USE_OVERRIDE_FRAMEWORKS_DIR_NO = $(NORMAL_PRODUCTION_FRAMEWORKS_DIR);
+PRODUCTION_FRAMEWORKS_DIR_USE_OVERRIDE_FRAMEWORKS_DIR_YES = $(WK_OVERRIDE_FRAMEWORKS_DIR);
+
+_javascript_CORE_PRIVATE_HEADERS_DIR = $(_javascript_CORE_PRIVATE_HEADERS_DIR_$(CONFIGURATION));
+_javascript_CORE_PRIVATE_HEADERS_DIR_Release = $(_javascript_CORE_PRIVATE_HEADERS_engineering);
+_javascript_CORE_PRIVATE_HEADERS_DIR_Debug = $(_javascript_CORE_PRIVATE_HEADERS_engineering);
+_javascript_CORE_PRIVATE_HEADERS_DIR_Production[sdk=iphone*] = $(SDKROOT)/$(SYSTEM_LIBRARY_DIR)/Frameworks/_javascript_Core.framework/PrivateHeaders;
+_javascript_CORE_PRIVATE_HEADERS_DIR_Production[sdk=macosx*] = $(SDKROOT)$(PRODUCTION_FRAMEWORKS_DIR)/_javascript_Core.framework/PrivateHeaders;
+_javascript_CORE_PRIVATE_HEADERS_engineering = $(BUILT_PRODUCTS_DIR)/_javascript_Core.framework/PrivateHeaders;
+
 UMBRELLA_FRAMEWORKS_DIR = $(UMBRELLA_FRAMEWORKS_DIR_$(CONFIGURATION));
 UMBRELLA_FRAMEWORKS_DIR_Debug = $(UMBRELLA_FRAMEWORKS_DIR_engineering);
 UMBRELLA_FRAMEWORKS_DIR_Release = $(UMBRELLA_FRAMEWORKS_DIR_engineering);

Modified: trunk/Source/WebKit2/DerivedSources.make (196969 => 196970)


--- trunk/Source/WebKit2/DerivedSources.make	2016-02-23 07:17:29 UTC (rev 196969)
+++ trunk/Source/WebKit2/DerivedSources.make	2016-02-23 07:18:41 UTC (rev 196970)
@@ -56,6 +56,7 @@
     $(WebKit2)/WebProcess/ios \
     $(WebKit2)/WebProcess \
     $(WebKit2)/UIProcess \
+    $(WebKit2)/UIProcess/Automation \
     $(WebKit2)/UIProcess/Cocoa \
     $(WebKit2)/UIProcess/Databases \
     $(WebKit2)/UIProcess/Downloads \
@@ -192,3 +193,31 @@
 %.sb : %.sb.in
 	@echo Pre-processing $* sandbox profile...
 	$(CC) $(SDK_FLAGS) $(TEXT_PREPROCESSOR_FLAGS) $(FRAMEWORK_FLAGS) $(HEADER_FLAGS) -include "wtf/Platform.h" $< > $@
+
+AUTOMATION_PROTOCOL_GENERATOR_SCRIPTS = \
+	$(_javascript_Core_SCRIPTS_DIR)/cpp_generator_templates.py \
+	$(_javascript_Core_SCRIPTS_DIR)/cpp_generator.py \
+	$(_javascript_Core_SCRIPTS_DIR)/generate_cpp_backend_dispatcher_header.py \
+	$(_javascript_Core_SCRIPTS_DIR)/generate_cpp_backend_dispatcher_implementation.py \
+	$(_javascript_Core_SCRIPTS_DIR)/generate_cpp_protocol_types_header.py \
+	$(_javascript_Core_SCRIPTS_DIR)/generate_cpp_protocol_types_implementation.py \
+	$(_javascript_Core_SCRIPTS_DIR)/generator_templates.py \
+	$(_javascript_Core_SCRIPTS_DIR)/generator.py \
+	$(_javascript_Core_SCRIPTS_DIR)/models.py \
+	$(_javascript_Core_SCRIPTS_DIR)/generate-inspector-protocol-bindings.py \
+#
+
+AUTOMATION_PROTOCOL_INPUT_FILES = \
+    $(WebKit2)/UIProcess/Automation/Automation.json \
+#
+
+AUTOMATION_PROTOCOL_OUTPUT_FILES = \
+    InspectorBackendDispatchers.h \
+    InspectorBackendDispatchers.cpp \
+#
+
+# JSON-RPC Backend Dispatchers, Type Builders
+$(AUTOMATION_PROTOCOL_OUTPUT_FILES) : $(AUTOMATION_PROTOCOL_INPUT_FILES) $(AUTOMATION_PROTOCOL_GENERATOR_SCRIPTS)
+	$(PYTHON) $(_javascript_Core_SCRIPTS_DIR)/generate-inspector-protocol-bindings.py --framework WebKit --backend --outputDir . $(AUTOMATION_PROTOCOL_INPUT_FILES)
+
+all : $(AUTOMATION_PROTOCOL_OUTPUT_FILES)

Modified: trunk/Source/WebKit2/PlatformMac.cmake (196969 => 196970)


--- trunk/Source/WebKit2/PlatformMac.cmake	2016-02-23 07:17:29 UTC (rev 196969)
+++ trunk/Source/WebKit2/PlatformMac.cmake	2016-02-23 07:18:41 UTC (rev 196970)
@@ -140,8 +140,9 @@
     Shared/mac/WebMemorySampler.mac.mm
 
     UIProcess/ViewGestureController.cpp
-    UIProcess/WebAutomationSession.cpp
 
+    UIProcess/Automation/WebAutomationSession.cpp
+
     UIProcess/API/APIUserScript.cpp
     UIProcess/API/APIUserStyleSheet.cpp
     UIProcess/API/APIWebsiteDataRecord.cpp

Added: trunk/Source/WebKit2/UIProcess/Automation/Automation.json (0 => 196970)


--- trunk/Source/WebKit2/UIProcess/Automation/Automation.json	                        (rev 0)
+++ trunk/Source/WebKit2/UIProcess/Automation/Automation.json	2016-02-23 07:18:41 UTC (rev 196970)
@@ -0,0 +1,40 @@
+{
+    "domain": "Automation",
+    "description": "Automation domain exposes commands for automating user interactions with the browser.",
+    "types": [
+        {
+            "id": "OpaqueWindowHandle",
+            "type": "string",
+            "description": "An opaque identifier for a window."
+        },
+        {
+            "id": "BrowsingWindow",
+            "type": "object",
+            "description": "A handle representing an open window or tab in the automation session.",
+            "properties": [
+                { "name": "handle", "$ref": "OpaqueWindowHandle", "description": "Opaque handle for the window. Used as a key for window-related commands." },
+                { "name": "active", "type": "boolean", "description": "Whether the window is active at the time the command is handled." }
+            ]
+        }
+    ],
+    "commands": [
+        {
+            "name": "getWindows",
+            "returns": [
+                { "name": "windows", "type": "array", "items": { "$ref": "BrowsingWindow"}, "description": "All known windows and tabs in the browsing session." }
+            ],
+            "description": "Gets information about all open windows and tabs in the automation session."
+        },
+        {
+            "name": "openWindow",
+            "description": "Opens a new automation window in the current browsing context."
+        },
+        {
+            "name": "closeWindow",
+            "parameters": [
+                { "name": "handle", "$ref": "OpaqueWindowHandle", "description": "The handle for the window that should be closed." }
+            ],
+            "description": "Closes the specified window."
+        }
+    ]
+}

Copied: trunk/Source/WebKit2/UIProcess/Automation/WebAutomationSession.cpp (from rev 196969, trunk/Source/WebKit2/UIProcess/WebAutomationSession.cpp) (0 => 196970)


--- trunk/Source/WebKit2/UIProcess/Automation/WebAutomationSession.cpp	                        (rev 0)
+++ trunk/Source/WebKit2/UIProcess/Automation/WebAutomationSession.cpp	2016-02-23 07:18:41 UTC (rev 196970)
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "WebAutomationSession.h"
+
+#include "APIAutomationSessionClient.h"
+#include <_javascript_Core/InspectorBackendDispatcher.h>
+#include <_javascript_Core/InspectorFrontendRouter.h>
+
+using namespace Inspector;
+
+namespace WebKit {
+
+WebAutomationSession::WebAutomationSession()
+    : m_client(std::make_unique<API::AutomationSessionClient>())
+    , m_frontendRouter(FrontendRouter::create())
+    , m_backendDispatcher(BackendDispatcher::create(m_frontendRouter.copyRef()))
+{
+    // FIXME: to actually handle incoming commands, an agent needs to be created
+    // and registered with the backend dispatcher in the constructor.
+}
+
+WebAutomationSession::~WebAutomationSession()
+{
+    ASSERT(!m_client);
+}
+
+void WebAutomationSession::setClient(std::unique_ptr<API::AutomationSessionClient> client)
+{
+    m_client = WTFMove(client);
+}
+
+// NOTE: this class could be split at some point to support local and remote automation sessions.
+// For now, it only works with a remote automation driver over a RemoteInspector connection.
+
+#if ENABLE(REMOTE_INSPECTOR)
+
+// Inspector::RemoteAutomationTarget API
+
+void WebAutomationSession::dispatchMessageFromRemote(const String& message)
+{
+    m_backendDispatcher->dispatch(message);
+}
+
+void WebAutomationSession::connect(Inspector::FrontendChannel* channel, bool isAutomaticConnection)
+{
+    UNUSED_PARAM(isAutomaticConnection);
+
+    m_remoteChannel = channel;
+    m_frontendRouter->connectFrontend(channel);
+
+    setIsPaired(true);
+}
+
+void WebAutomationSession::disconnect(Inspector::FrontendChannel* channel)
+{
+    ASSERT(channel == m_remoteChannel);
+
+    m_remoteChannel = nullptr;
+    m_frontendRouter->disconnectFrontend(channel);
+
+    setIsPaired(false);
+
+    if (m_client)
+        m_client->didDisconnectFromRemote(this);
+}
+
+#endif // ENABLE(REMOTE_INSPECTOR)
+
+} // namespace WebKit

Copied: trunk/Source/WebKit2/UIProcess/Automation/WebAutomationSession.h (from rev 196969, trunk/Source/WebKit2/UIProcess/WebAutomationSession.h) (0 => 196970)


--- trunk/Source/WebKit2/UIProcess/Automation/WebAutomationSession.h	                        (rev 0)
+++ trunk/Source/WebKit2/UIProcess/Automation/WebAutomationSession.h	2016-02-23 07:18:41 UTC (rev 196970)
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WebAutomationSession_h
+#define WebAutomationSession_h
+
+#include "APIObject.h"
+#include <wtf/Forward.h>
+
+#if ENABLE(REMOTE_INSPECTOR)
+#include <_javascript_Core/RemoteAutomationTarget.h>
+#endif
+
+namespace API {
+class AutomationSessionClient;
+}
+
+namespace Inspector {
+class BackendDispatcher;
+class FrontendRouter;
+}
+
+namespace WebKit {
+
+class WebAutomationSessionClient;
+
+class WebAutomationSession final : public API::ObjectImpl<API::Object::Type::AutomationSession>
+#if ENABLE(REMOTE_INSPECTOR)
+    , public Inspector::RemoteAutomationTarget
+#endif
+{
+public:
+    WebAutomationSession();
+    ~WebAutomationSession();
+
+    void setClient(std::unique_ptr<API::AutomationSessionClient>);
+
+    void setSessionIdentifier(const String& sessionIdentifier) { m_sessionIdentifier = sessionIdentifier; }
+    String sessionIdentifier() const { return m_sessionIdentifier; }
+
+#if ENABLE(REMOTE_INSPECTOR)
+    // Inspector::RemoteAutomationTarget API
+    virtual String name() const override { return m_sessionIdentifier; }
+    virtual void dispatchMessageFromRemote(const String& message) override;
+    virtual void connect(Inspector::FrontendChannel*, bool isAutomaticConnection = false) override;
+    virtual void disconnect(Inspector::FrontendChannel*) override;
+#endif
+
+private:
+    std::unique_ptr<API::AutomationSessionClient> m_client;
+    String m_sessionIdentifier { ASCIILiteral("Untitled Session") };
+    Ref<Inspector::FrontendRouter> m_frontendRouter;
+    Ref<Inspector::BackendDispatcher> m_backendDispatcher;
+
+#if ENABLE(REMOTE_INSPECTOR)
+    Inspector::FrontendChannel* m_remoteChannel { nullptr };
+#endif
+};
+
+} // namespace WebKit
+
+#endif // WebAutomationSession_h

Deleted: trunk/Source/WebKit2/UIProcess/WebAutomationSession.cpp (196969 => 196970)


--- trunk/Source/WebKit2/UIProcess/WebAutomationSession.cpp	2016-02-23 07:17:29 UTC (rev 196969)
+++ trunk/Source/WebKit2/UIProcess/WebAutomationSession.cpp	2016-02-23 07:18:41 UTC (rev 196970)
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2016 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "WebAutomationSession.h"
-
-#include "APIAutomationSessionClient.h"
-
-namespace WebKit {
-
-WebAutomationSession::WebAutomationSession()
-    : m_client(std::make_unique<API::AutomationSessionClient>())
-{
-}
-
-WebAutomationSession::~WebAutomationSession()
-{
-    ASSERT(!m_client);
-}
-
-void WebAutomationSession::setClient(std::unique_ptr<API::AutomationSessionClient> client)
-{
-    m_client = WTFMove(client);
-}
-
-// NOTE: this class could be split at some point to support local and remote automation sessions.
-// For now, it only works with a remote automation driver over a RemoteInspector connection.
-
-#if ENABLE(REMOTE_INSPECTOR)
-
-// Inspector::RemoteAutomationTarget API
-
-void WebAutomationSession::dispatchMessageFromRemote(const String&)
-{
-    // FIXME: to be implemented.
-}
-
-void WebAutomationSession::connect(Inspector::FrontendChannel* channel, bool isAutomaticConnection)
-{
-    UNUSED_PARAM(isAutomaticConnection);
-
-    m_remoteChannel = channel;
-    setIsPaired(true);
-}
-
-void WebAutomationSession::disconnect(Inspector::FrontendChannel* channel)
-{
-    m_remoteChannel = nullptr;
-    setIsPaired(false);
-    
-    if (m_client)
-        m_client->didDisconnectFromRemote(this);
-}
-
-#endif // ENABLE(REMOTE_INSPECTOR)
-
-} // namespace WebKit

Deleted: trunk/Source/WebKit2/UIProcess/WebAutomationSession.h (196969 => 196970)


--- trunk/Source/WebKit2/UIProcess/WebAutomationSession.h	2016-02-23 07:17:29 UTC (rev 196969)
+++ trunk/Source/WebKit2/UIProcess/WebAutomationSession.h	2016-02-23 07:18:41 UTC (rev 196970)
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2016 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef WebAutomationSession_h
-#define WebAutomationSession_h
-
-#include "APIObject.h"
-#include <wtf/Forward.h>
-
-#if ENABLE(REMOTE_INSPECTOR)
-#include <_javascript_Core/RemoteAutomationTarget.h>
-#endif
-
-namespace API {
-class AutomationSessionClient;
-}
-
-namespace WebKit {
-
-class WebAutomationSessionClient;
-
-class WebAutomationSession final : public API::ObjectImpl<API::Object::Type::AutomationSession>
-#if ENABLE(REMOTE_INSPECTOR)
-    , public Inspector::RemoteAutomationTarget
-#endif
-{
-public:
-    WebAutomationSession();
-    ~WebAutomationSession();
-
-    void setClient(std::unique_ptr<API::AutomationSessionClient>);
-
-    void setSessionIdentifier(const String& sessionIdentifier) { m_sessionIdentifier = sessionIdentifier; }
-    String sessionIdentifier() const { return m_sessionIdentifier; }
-
-#if ENABLE(REMOTE_INSPECTOR)
-    // Inspector::RemoteAutomationTarget API
-    virtual String name() const override { return m_sessionIdentifier; }
-    virtual void dispatchMessageFromRemote(const String& message) override;
-    virtual void connect(Inspector::FrontendChannel*, bool isAutomaticConnection = false) override;
-    virtual void disconnect(Inspector::FrontendChannel*) override;
-#endif
-
-private:
-    std::unique_ptr<API::AutomationSessionClient> m_client;
-    String m_sessionIdentifier { ASCIILiteral("Untitled Session") };
-
-#if ENABLE(REMOTE_INSPECTOR)
-    Inspector::FrontendChannel* m_remoteChannel { nullptr };
-#endif
-};
-
-} // namespace WebKit
-
-#endif // WebAutomationSession_h

Modified: trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (196969 => 196970)


--- trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj	2016-02-23 07:17:29 UTC (rev 196969)
+++ trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj	2016-02-23 07:18:41 UTC (rev 196970)
@@ -1229,9 +1229,14 @@
 		990D28B21C65209400986977 /* _WKAutomationSession.mm in Sources */ = {isa = PBXBuildFile; fileRef = 990D28AD1C65190400986977 /* _WKAutomationSession.mm */; };
 		990D28BB1C6539D300986977 /* AutomationSessionClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 990D28B71C6539A000986977 /* AutomationSessionClient.h */; };
 		990D28BC1C6539DA00986977 /* AutomationSessionClient.mm in Sources */ = {isa = PBXBuildFile; fileRef = 990D28B81C6539A000986977 /* AutomationSessionClient.mm */; };
-		990D28BF1C654D3900986977 /* WebAutomationSession.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 990D28BD1C65490A00986977 /* WebAutomationSession.cpp */; };
 		990D28C01C6553F100986977 /* APIAutomationSessionClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 990D28B31C6526D400986977 /* APIAutomationSessionClient.h */; };
-		990D28C11C65626500986977 /* WebAutomationSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 990D28B51C6526F500986977 /* WebAutomationSession.h */; };
+		9955A6EC1C7980C200EB6A93 /* WebAutomationSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 9955A6EB1C7980BB00EB6A93 /* WebAutomationSession.h */; };
+		9955A6ED1C7980CA00EB6A93 /* WebAutomationSession.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9955A6EA1C7980BB00EB6A93 /* WebAutomationSession.cpp */; };
+		9955A6EF1C79810800EB6A93 /* Automation.json in Headers */ = {isa = PBXBuildFile; fileRef = 9955A6E91C7980BB00EB6A93 /* Automation.json */; settings = {ATTRIBUTES = (Private, ); }; };
+		9955A6F41C7986DC00EB6A93 /* InspectorBackendDispatchers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9955A6F01C79866400EB6A93 /* InspectorBackendDispatchers.cpp */; };
+		9955A6F51C7986E000EB6A93 /* InspectorBackendDispatchers.h in Headers */ = {isa = PBXBuildFile; fileRef = 9955A6F11C79866400EB6A93 /* InspectorBackendDispatchers.h */; };
+		9955A6F61C7986E300EB6A93 /* InspectorProtocolObjects.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9955A6F21C79866400EB6A93 /* InspectorProtocolObjects.cpp */; };
+		9955A6F71C7986E500EB6A93 /* InspectorProtocolObjects.h in Headers */ = {isa = PBXBuildFile; fileRef = 9955A6F31C79866400EB6A93 /* InspectorProtocolObjects.h */; };
 		99C81D591C20E1E5005C4C82 /* AutomationClient.mm in Sources */ = {isa = PBXBuildFile; fileRef = 99C81D561C20DFBE005C4C82 /* AutomationClient.mm */; };
 		99C81D5A1C20E7E2005C4C82 /* AutomationClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 99C81D551C20DFBE005C4C82 /* AutomationClient.h */; };
 		99C81D5D1C21F38B005C4C82 /* APIAutomationClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 99C81D5B1C20E817005C4C82 /* APIAutomationClient.h */; };
@@ -3252,10 +3257,15 @@
 		990D28AD1C65190400986977 /* _WKAutomationSession.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = _WKAutomationSession.mm; sourceTree = "<group>"; };
 		990D28AF1C65203900986977 /* _WKAutomationSessionInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKAutomationSessionInternal.h; sourceTree = "<group>"; };
 		990D28B31C6526D400986977 /* APIAutomationSessionClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIAutomationSessionClient.h; sourceTree = "<group>"; };
-		990D28B51C6526F500986977 /* WebAutomationSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAutomationSession.h; sourceTree = "<group>"; };
 		990D28B71C6539A000986977 /* AutomationSessionClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutomationSessionClient.h; sourceTree = "<group>"; };
 		990D28B81C6539A000986977 /* AutomationSessionClient.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AutomationSessionClient.mm; sourceTree = "<group>"; };
-		990D28BD1C65490A00986977 /* WebAutomationSession.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebAutomationSession.cpp; sourceTree = "<group>"; };
+		9955A6E91C7980BB00EB6A93 /* Automation.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = Automation.json; sourceTree = "<group>"; };
+		9955A6EA1C7980BB00EB6A93 /* WebAutomationSession.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebAutomationSession.cpp; sourceTree = "<group>"; };
+		9955A6EB1C7980BB00EB6A93 /* WebAutomationSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAutomationSession.h; sourceTree = "<group>"; };
+		9955A6F01C79866400EB6A93 /* InspectorBackendDispatchers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorBackendDispatchers.cpp; sourceTree = "<group>"; };
+		9955A6F11C79866400EB6A93 /* InspectorBackendDispatchers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorBackendDispatchers.h; sourceTree = "<group>"; };
+		9955A6F21C79866400EB6A93 /* InspectorProtocolObjects.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorProtocolObjects.cpp; sourceTree = "<group>"; };
+		9955A6F31C79866400EB6A93 /* InspectorProtocolObjects.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorProtocolObjects.h; sourceTree = "<group>"; };
 		99C81D551C20DFBE005C4C82 /* AutomationClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutomationClient.h; sourceTree = "<group>"; };
 		99C81D561C20DFBE005C4C82 /* AutomationClient.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AutomationClient.mm; sourceTree = "<group>"; };
 		99C81D5B1C20E817005C4C82 /* APIAutomationClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIAutomationClient.h; sourceTree = "<group>"; };
@@ -5607,6 +5617,16 @@
 			path = mac;
 			sourceTree = "<group>";
 		};
+		9955A6E81C79809000EB6A93 /* Automation */ = {
+			isa = PBXGroup;
+			children = (
+				9955A6E91C7980BB00EB6A93 /* Automation.json */,
+				9955A6EA1C7980BB00EB6A93 /* WebAutomationSession.cpp */,
+				9955A6EB1C7980BB00EB6A93 /* WebAutomationSession.h */,
+			);
+			path = Automation;
+			sourceTree = "<group>";
+		};
 		A182D5B11BE6BCF40087A7CC /* ios */ = {
 			isa = PBXGroup;
 			children = (
@@ -5801,6 +5821,7 @@
 			children = (
 				BC032DC410F4387C0058C15A /* API */,
 				512F588D12A8836F00629530 /* Authentication */,
+				9955A6E81C79809000EB6A93 /* Automation */,
 				1ABC3DF21899E415004F0626 /* Cocoa */,
 				1AB7D4C71288AA9A00CFD08C /* Downloads */,
 				2DA944A81884E9AB00ED86DB /* ios */,
@@ -5852,8 +5873,6 @@
 				1A0F29E1120B44420053D1B9 /* VisitedLinkStore.cpp */,
 				1A0F29E2120B44420053D1B9 /* VisitedLinkStore.h */,
 				1A60224918C16B0800C3E8C9 /* VisitedLinkStore.messages.in */,
-				990D28BD1C65490A00986977 /* WebAutomationSession.cpp */,
-				990D28B51C6526F500986977 /* WebAutomationSession.h */,
 				BC72BA1B11E64907001EB4EA /* WebBackForwardList.cpp */,
 				BC72BA1C11E64907001EB4EA /* WebBackForwardList.h */,
 				F036978715F4BF0500C3A80E /* WebColorPicker.cpp */,
@@ -6824,6 +6843,10 @@
 				1A64230712DD09EB00CAAE2C /* DrawingAreaProxyMessages.h */,
 				1AA575FF1496B7C000A4EE06 /* EventDispatcherMessageReceiver.cpp */,
 				1AA576001496B7C000A4EE06 /* EventDispatcherMessages.h */,
+				9955A6F01C79866400EB6A93 /* InspectorBackendDispatchers.cpp */,
+				9955A6F11C79866400EB6A93 /* InspectorBackendDispatchers.h */,
+				9955A6F21C79866400EB6A93 /* InspectorProtocolObjects.cpp */,
+				9955A6F31C79866400EB6A93 /* InspectorProtocolObjects.h */,
 				51DD9F2616367DA2001578E9 /* NetworkConnectionToWebProcessMessageReceiver.cpp */,
 				51DD9F2716367DA2001578E9 /* NetworkConnectionToWebProcessMessages.h */,
 				517CF0E1163A486C00C2950E /* NetworkProcessConnectionMessageReceiver.cpp */,
@@ -7166,6 +7189,7 @@
 				93E6A4EE1BC5DD3900F8A0E7 /* _WKHitTestResult.h in Headers */,
 				93A88B3B1BC710D900ABA5C2 /* _WKHitTestResultInternal.h in Headers */,
 				37A64E5518F38E3C00EB30F1 /* _WKInputDelegate.h in Headers */,
+				9955A6EF1C79810800EB6A93 /* Automation.json in Headers */,
 				2D790A9D1AD7050D00AB90B3 /* _WKLayoutMode.h in Headers */,
 				A118A9F31908B8EA00F7C92B /* _WKNSFileManagerExtras.h in Headers */,
 				9323611E1B015DA800FA9232 /* _WKOverlayScrollbarStyle.h in Headers */,
@@ -7346,12 +7370,12 @@
 				E1EE53E311F8CFC000CCBEE4 /* InjectedBundlePageEditorClient.h in Headers */,
 				BC14E10A120B905E00826C0C /* InjectedBundlePageFormClient.h in Headers */,
 				510523821C7541FF007993CB /* LegacyUniqueIDBDatabaseIdentifier.h in Headers */,
-				990D28C11C65626500986977 /* WebAutomationSession.h in Headers */,
 				CD5C66A1134B9D38004FE2A8 /* InjectedBundlePageFullScreenClient.h in Headers */,
 				BCA8C6A911E3BA5F00812FB7 /* InjectedBundlePageLoaderClient.h in Headers */,
 				510523801C7541FF007993CB /* LegacyUniqueIDBDatabase.h in Headers */,
 				BC8147A912F64CDA007B2C32 /* InjectedBundlePagePolicyClient.h in Headers */,
 				BCA8C6B011E3C08700812FB7 /* InjectedBundlePageUIClient.h in Headers */,
+				9955A6F71C7986E500EB6A93 /* InspectorProtocolObjects.h in Headers */,
 				BC33E0D112408E8600360F3F /* InjectedBundleRangeHandle.h in Headers */,
 				BC14DF77120B5B7900826C0C /* InjectedBundleScriptWorld.h in Headers */,
 				C58CDF2A1887548B00871536 /* InteractionInformationAtPosition.h in Headers */,
@@ -7416,6 +7440,7 @@
 				E14A954A16E016A40068DE82 /* NetworkProcessPlatformStrategies.h in Headers */,
 				5179556E162877B300FA43B6 /* NetworkProcessProxy.h in Headers */,
 				513A163D163088F6005D7D22 /* NetworkProcessProxyMessages.h in Headers */,
+				9955A6F51C7986E000EB6A93 /* InspectorBackendDispatchers.h in Headers */,
 				51FD18B61651FBAD00DBE1CE /* NetworkResourceLoader.h in Headers */,
 				E152551B17011819003D7ADB /* NetworkResourceLoaderMessages.h in Headers */,
 				5C20CBA01BB1ECD800895BB1 /* NetworkSession.h in Headers */,
@@ -7518,6 +7543,7 @@
 				1A002D49196B345D00B9AD44 /* SessionStateCoding.h in Headers */,
 				753E3E0E1887398900188496 /* SessionTracker.h in Headers */,
 				99C81D5A1C20E7E2005C4C82 /* AutomationClient.h in Headers */,
+				9955A6EC1C7980C200EB6A93 /* WebAutomationSession.h in Headers */,
 				1A6420E512DCE2FF00CAAE2C /* ShareableBitmap.h in Headers */,
 				51217461164C20E30037A5C1 /* ShareableResource.h in Headers */,
 				1A24BED5120894D100FBB059 /* SharedMemory.h in Headers */,
@@ -8606,7 +8632,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "mkdir -p \"${BUILT_PRODUCTS_DIR}/DerivedSources/WebKit2\"\ncd \"${BUILT_PRODUCTS_DIR}/DerivedSources/WebKit2\"\n\nexport WebKit2=\"${SRCROOT}\"\n\nif [ ! $CC ]; then\n    export CC=\"`xcrun -find clang`\"\nfi\n\nMAKEFILE_INCLUDE_FLAGS=$(echo \"${WEBKITADDITIONS_HEADER_SEARCH_PATHS}\" | perl -e 'print \"-I\" . join(\" -I\", split(\" \", <>));')\n\nif [ \"${ACTION}\" = \"build\" -o \"${ACTION}\" = \"install\" -o \"${ACTION}\" = \"installhdrs\" ]; then\n    make --no-builtin-rules ${MAKEFILE_INCLUDE_FLAGS} -f \"${WebKit2}/DerivedSources.make\" -j `/usr/sbin/sysctl -n hw.activecpu` SDKROOT=${SDKROOT}\nfi\n";
+			shellScript = "mkdir -p \"${BUILT_PRODUCTS_DIR}/DerivedSources/WebKit2\"\ncd \"${BUILT_PRODUCTS_DIR}/DerivedSources/WebKit2\"\n\nexport WebKit2=\"${SRCROOT}\"\n\n/bin/ln -sfh \"${_javascript_CORE_PRIVATE_HEADERS_DIR}\" _javascript_CorePrivateHeaders\nexport _javascript_Core_SCRIPTS_DIR=\"_javascript_CorePrivateHeaders\"\n\nif [ ! $CC ]; then\n    export CC=\"`xcrun -find clang`\"\nfi\n\nMAKEFILE_INCLUDE_FLAGS=$(echo \"${WEBKITADDITIONS_HEADER_SEARCH_PATHS}\" | perl -e 'print \"-I\" . join(\" -I\", split(\" \", <>));')\n\nif [ \"${ACTION}\" = \"build\" -o \"${ACTION}\" = \"install\" -o \"${ACTION}\" = \"installhdrs\" ]; then\n    make --no-builtin-rules ${MAKEFILE_INCLUDE_FLAGS} -f \"${WebKit2}/DerivedSources.make\" -j `/usr/sbin/sysctl -n hw.activecpu` SDKROOT=${SDKROOT}\nfi\n";
 		};
 /* End PBXShellScriptBuildPhase section */
 
@@ -8641,6 +8667,7 @@
 			files = (
 				37A5E01318BBF937000A081E /* _WKActivatedElementInfo.mm in Sources */,
 				1A5704F71BE01FF400874AF1 /* _WKContextMenuElementInfo.mm in Sources */,
+				9955A6F41C7986DC00EB6A93 /* InspectorBackendDispatchers.cpp in Sources */,
 				A1A4FE5B18DCE9FA00B5EA8A /* _WKDownload.mm in Sources */,
 				379A873918BBFE0F00588AF2 /* _WKElementAction.mm in Sources */,
 				1A5704F11BE0173F00874AF1 /* _WKElementInfo.mm in Sources */,
@@ -9015,6 +9042,7 @@
 				1AC1336718565B5700F3EC05 /* UserData.cpp in Sources */,
 				15739BBC1B42040300D258C1 /* UserMediaPermissionRequestManager.cpp in Sources */,
 				4A3CC18A19B063E700D14AEF /* UserMediaPermissionRequestManagerProxy.cpp in Sources */,
+				9955A6ED1C7980CA00EB6A93 /* WebAutomationSession.cpp in Sources */,
 				4A3CC18C19B0641500D14AEF /* UserMediaPermissionRequestProxy.cpp in Sources */,
 				E4E864921B16750100C82F40 /* VersionChecks.mm in Sources */,
 				2DAF4FFB1B636181006013D6 /* ViewGestureController.cpp in Sources */,
@@ -9149,6 +9177,7 @@
 				BC857FB612B830E600EDEB2E /* WebOpenPanelParameters.cpp in Sources */,
 				BC857F8612B82D0B00EDEB2E /* WebOpenPanelResultListener.cpp in Sources */,
 				BC857F7E12B82CEE00EDEB2E /* WebOpenPanelResultListenerProxy.cpp in Sources */,
+				9955A6F61C7986E300EB6A93 /* InspectorProtocolObjects.cpp in Sources */,
 				BC963D6B113DD19200574BE2 /* WebPage.cpp in Sources */,
 				C06C6095124C144B0001682F /* WebPageCreationParameters.cpp in Sources */,
 				8372DB281A67562800C697C5 /* WebPageDiagnosticLoggingClient.cpp in Sources */,
@@ -9335,7 +9364,6 @@
 				C98C48A91B6FD5B500145103 /* WKMediaSessionFocusManager.cpp in Sources */,
 				C9CD439E1B4B025300239E33 /* WKMediaSessionMetadata.cpp in Sources */,
 				BC4075FD124FF0270068F20A /* WKMutableArray.cpp in Sources */,
-				990D28BF1C654D3900986977 /* WebAutomationSession.cpp in Sources */,
 				BC4075FF124FF0270068F20A /* WKMutableDictionary.cpp in Sources */,
 				1A5B1C501898606F004FCF9B /* WKNavigation.mm in Sources */,
 				1A256E3718A1A788006FB922 /* WKNavigationAction.mm in Sources */,
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to