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 */,