Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (219873 => 219874)
--- trunk/Source/_javascript_Core/ChangeLog 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/_javascript_Core/ChangeLog 2017-07-25 18:03:02 UTC (rev 219874)
@@ -1,3 +1,42 @@
+2017-07-25 Brian Burg <bb...@apple.com>
+
+ Web Automation: add support for uploading files
+ https://bugs.webkit.org/show_bug.cgi?id=174797
+ <rdar://problem/28485063>
+
+ Reviewed by Joseph Pecoraro.
+
+ * inspector/scripts/generate-inspector-protocol-bindings.py:
+ (generate_from_specification):
+ Start generating frontend dispatcher code if the target framework is 'WebKit'.
+
+ * inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py:
+ (CppFrontendDispatcherImplementationGenerator.generate_output):
+ Use a framework include for InspectorFrontendRouter.h since this generated code
+ will be compiled outside of WebCore.framework.
+
+ * inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result:
+ * inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result:
+ * inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result:
+ * inspector/scripts/tests/generic/expected/definitions-with-mac-platform.json-result:
+ * inspector/scripts/tests/generic/expected/domain-availability.json-result:
+ * inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result:
+ * inspector/scripts/tests/generic/expected/enum-values.json-result:
+ * inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result:
+ * inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result:
+ * inspector/scripts/tests/generic/expected/same-type-id-different-domain.json-result:
+ * inspector/scripts/tests/generic/expected/shadowed-optional-type-setters.json-result:
+ * inspector/scripts/tests/generic/expected/type-declaration-aliased-primitive-type.json-result:
+ * inspector/scripts/tests/generic/expected/type-declaration-array-type.json-result:
+ * inspector/scripts/tests/generic/expected/type-declaration-enum-type.json-result:
+ * inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result:
+ * inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result:
+ * inspector/scripts/tests/generic/expected/type-with-open-parameters.json-result:
+ * inspector/scripts/tests/generic/expected/worker-supported-domains.json-result:
+ * inspector/scripts/tests/ios/expected/definitions-with-mac-platform.json-result:
+ * inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result:
+ Rebaseline code generator tests.
+
2017-07-24 Mark Lam <mark....@apple.com>
Gardening: fixed C Loop build after r219790.
Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py (219873 => 219874)
--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py 2017-07-25 18:03:02 UTC (rev 219874)
@@ -49,7 +49,7 @@
def generate_output(self):
secondary_headers = [
- '"InspectorFrontendRouter.h"',
+ '<inspector/InspectorFrontendRouter.h>',
'<wtf/text/CString.h>',
]
Modified: trunk/Source/_javascript_Core/inspector/scripts/generate-inspector-protocol-bindings.py (219873 => 219874)
--- trunk/Source/_javascript_Core/inspector/scripts/generate-inspector-protocol-bindings.py 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/_javascript_Core/inspector/scripts/generate-inspector-protocol-bindings.py 2017-07-25 18:03:02 UTC (rev 219874)
@@ -170,6 +170,8 @@
elif protocol.framework is Frameworks.WebKit and generate_backend:
generators.append(CppBackendDispatcherHeaderGenerator(*generator_arguments))
generators.append(CppBackendDispatcherImplementationGenerator(*generator_arguments))
+ generators.append(CppFrontendDispatcherHeaderGenerator(*generator_arguments))
+ generators.append(CppFrontendDispatcherImplementationGenerator(*generator_arguments))
generators.append(CppProtocolTypesHeaderGenerator(*generator_arguments))
generators.append(CppProtocolTypesImplementationGenerator(*generator_arguments))
Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result (219873 => 219874)
--- trunk/Source/_javascript_Core/inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result 2017-07-25 18:03:02 UTC (rev 219874)
@@ -350,7 +350,7 @@
#include "config.h"
#include "TestFrontendDispatchers.h"
-#include "InspectorFrontendRouter.h"
+#include <inspector/InspectorFrontendRouter.h>
#include <wtf/text/CString.h>
namespace Inspector {
Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result (219873 => 219874)
--- trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result 2017-07-25 18:03:02 UTC (rev 219874)
@@ -566,7 +566,7 @@
#include "config.h"
#include "TestFrontendDispatchers.h"
-#include "InspectorFrontendRouter.h"
+#include <inspector/InspectorFrontendRouter.h>
#include <wtf/text/CString.h>
namespace Inspector {
Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result (219873 => 219874)
--- trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result 2017-07-25 18:03:02 UTC (rev 219874)
@@ -467,7 +467,7 @@
#include "config.h"
#include "TestFrontendDispatchers.h"
-#include "InspectorFrontendRouter.h"
+#include <inspector/InspectorFrontendRouter.h>
#include <wtf/text/CString.h>
namespace Inspector {
Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/definitions-with-mac-platform.json-result (219873 => 219874)
--- trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/definitions-with-mac-platform.json-result 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/definitions-with-mac-platform.json-result 2017-07-25 18:03:02 UTC (rev 219874)
@@ -262,7 +262,7 @@
#include "config.h"
#include "TestFrontendDispatchers.h"
-#include "InspectorFrontendRouter.h"
+#include <inspector/InspectorFrontendRouter.h>
#include <wtf/text/CString.h>
namespace Inspector {
Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/domain-availability.json-result (219873 => 219874)
--- trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/domain-availability.json-result 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/domain-availability.json-result 2017-07-25 18:03:02 UTC (rev 219874)
@@ -419,7 +419,7 @@
#include "config.h"
#include "TestFrontendDispatchers.h"
-#include "InspectorFrontendRouter.h"
+#include <inspector/InspectorFrontendRouter.h>
#include <wtf/text/CString.h>
namespace Inspector {
Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result (219873 => 219874)
--- trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result 2017-07-25 18:03:02 UTC (rev 219874)
@@ -581,7 +581,7 @@
#include "config.h"
#include "TestFrontendDispatchers.h"
-#include "InspectorFrontendRouter.h"
+#include <inspector/InspectorFrontendRouter.h>
#include <wtf/text/CString.h>
namespace Inspector {
Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/enum-values.json-result (219873 => 219874)
--- trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/enum-values.json-result 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/enum-values.json-result 2017-07-25 18:03:02 UTC (rev 219874)
@@ -374,7 +374,7 @@
#include "config.h"
#include "TestFrontendDispatchers.h"
-#include "InspectorFrontendRouter.h"
+#include <inspector/InspectorFrontendRouter.h>
#include <wtf/text/CString.h>
namespace Inspector {
Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result (219873 => 219874)
--- trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result 2017-07-25 18:03:02 UTC (rev 219874)
@@ -277,7 +277,7 @@
#include "config.h"
#include "TestFrontendDispatchers.h"
-#include "InspectorFrontendRouter.h"
+#include <inspector/InspectorFrontendRouter.h>
#include <wtf/text/CString.h>
namespace Inspector {
Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result (219873 => 219874)
--- trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result 2017-07-25 18:03:02 UTC (rev 219874)
@@ -367,7 +367,7 @@
#include "config.h"
#include "TestFrontendDispatchers.h"
-#include "InspectorFrontendRouter.h"
+#include <inspector/InspectorFrontendRouter.h>
#include <wtf/text/CString.h>
namespace Inspector {
Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/same-type-id-different-domain.json-result (219873 => 219874)
--- trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/same-type-id-different-domain.json-result 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/same-type-id-different-domain.json-result 2017-07-25 18:03:02 UTC (rev 219874)
@@ -262,7 +262,7 @@
#include "config.h"
#include "TestFrontendDispatchers.h"
-#include "InspectorFrontendRouter.h"
+#include <inspector/InspectorFrontendRouter.h>
#include <wtf/text/CString.h>
namespace Inspector {
Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/shadowed-optional-type-setters.json-result (219873 => 219874)
--- trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/shadowed-optional-type-setters.json-result 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/shadowed-optional-type-setters.json-result 2017-07-25 18:03:02 UTC (rev 219874)
@@ -262,7 +262,7 @@
#include "config.h"
#include "TestFrontendDispatchers.h"
-#include "InspectorFrontendRouter.h"
+#include <inspector/InspectorFrontendRouter.h>
#include <wtf/text/CString.h>
namespace Inspector {
Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/type-declaration-aliased-primitive-type.json-result (219873 => 219874)
--- trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/type-declaration-aliased-primitive-type.json-result 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/type-declaration-aliased-primitive-type.json-result 2017-07-25 18:03:02 UTC (rev 219874)
@@ -262,7 +262,7 @@
#include "config.h"
#include "TestFrontendDispatchers.h"
-#include "InspectorFrontendRouter.h"
+#include <inspector/InspectorFrontendRouter.h>
#include <wtf/text/CString.h>
namespace Inspector {
Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/type-declaration-array-type.json-result (219873 => 219874)
--- trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/type-declaration-array-type.json-result 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/type-declaration-array-type.json-result 2017-07-25 18:03:02 UTC (rev 219874)
@@ -265,7 +265,7 @@
#include "config.h"
#include "TestFrontendDispatchers.h"
-#include "InspectorFrontendRouter.h"
+#include <inspector/InspectorFrontendRouter.h>
#include <wtf/text/CString.h>
namespace Inspector {
Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/type-declaration-enum-type.json-result (219873 => 219874)
--- trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/type-declaration-enum-type.json-result 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/type-declaration-enum-type.json-result 2017-07-25 18:03:02 UTC (rev 219874)
@@ -266,7 +266,7 @@
#include "config.h"
#include "TestFrontendDispatchers.h"
-#include "InspectorFrontendRouter.h"
+#include <inspector/InspectorFrontendRouter.h>
#include <wtf/text/CString.h>
namespace Inspector {
Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result (219873 => 219874)
--- trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result 2017-07-25 18:03:02 UTC (rev 219874)
@@ -267,7 +267,7 @@
#include "config.h"
#include "TestFrontendDispatchers.h"
-#include "InspectorFrontendRouter.h"
+#include <inspector/InspectorFrontendRouter.h>
#include <wtf/text/CString.h>
namespace Inspector {
Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result (219873 => 219874)
--- trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result 2017-07-25 18:03:02 UTC (rev 219874)
@@ -266,7 +266,7 @@
#include "config.h"
#include "TestFrontendDispatchers.h"
-#include "InspectorFrontendRouter.h"
+#include <inspector/InspectorFrontendRouter.h>
#include <wtf/text/CString.h>
namespace Inspector {
Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/type-with-open-parameters.json-result (219873 => 219874)
--- trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/type-with-open-parameters.json-result 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/type-with-open-parameters.json-result 2017-07-25 18:03:02 UTC (rev 219874)
@@ -262,7 +262,7 @@
#include "config.h"
#include "TestFrontendDispatchers.h"
-#include "InspectorFrontendRouter.h"
+#include <inspector/InspectorFrontendRouter.h>
#include <wtf/text/CString.h>
namespace Inspector {
Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/worker-supported-domains.json-result (219873 => 219874)
--- trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/worker-supported-domains.json-result 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/worker-supported-domains.json-result 2017-07-25 18:03:02 UTC (rev 219874)
@@ -420,7 +420,7 @@
#include "config.h"
#include "TestFrontendDispatchers.h"
-#include "InspectorFrontendRouter.h"
+#include <inspector/InspectorFrontendRouter.h>
#include <wtf/text/CString.h>
namespace Inspector {
Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/ios/expected/definitions-with-mac-platform.json-result (219873 => 219874)
--- trunk/Source/_javascript_Core/inspector/scripts/tests/ios/expected/definitions-with-mac-platform.json-result 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/ios/expected/definitions-with-mac-platform.json-result 2017-07-25 18:03:02 UTC (rev 219874)
@@ -262,7 +262,7 @@
#include "config.h"
#include "TestFrontendDispatchers.h"
-#include "InspectorFrontendRouter.h"
+#include <inspector/InspectorFrontendRouter.h>
#include <wtf/text/CString.h>
namespace Inspector {
Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result (219873 => 219874)
--- trunk/Source/_javascript_Core/inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result 2017-07-25 18:03:02 UTC (rev 219874)
@@ -350,7 +350,7 @@
#include "config.h"
#include "TestFrontendDispatchers.h"
-#include "InspectorFrontendRouter.h"
+#include <inspector/InspectorFrontendRouter.h>
#include <wtf/text/CString.h>
namespace Inspector {
Modified: trunk/Source/WebKit/CMakeLists.txt (219873 => 219874)
--- trunk/Source/WebKit/CMakeLists.txt 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/WebKit/CMakeLists.txt 2017-07-25 18:03:02 UTC (rev 219874)
@@ -783,6 +783,8 @@
${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_frontend_dispatcher_header.py
+ ${PROTOCOL_GENERATOR_SCRIPTS_DIR}/codegen/generate_cpp_frontend_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
@@ -795,7 +797,7 @@
)
add_custom_command(
- OUTPUT ${DERIVED_SOURCES_WEBKIT2_DIR}/AutomationBackendDispatchers.h ${DERIVED_SOURCES_WEBKIT2_DIR}/AutomationBackendDispatchers.cpp ${DERIVED_SOURCES_WEBKIT2_DIR}/AutomationProtocolObjects.h ${DERIVED_SOURCES_WEBKIT2_DIR}/AutomationProtocolObjects.cpp
+ OUTPUT ${DERIVED_SOURCES_WEBKIT2_DIR}/AutomationBackendDispatchers.h ${DERIVED_SOURCES_WEBKIT2_DIR}/AutomationBackendDispatchers.cpp ${DERIVED_SOURCES_WEBKIT2_DIR}/AutomationProtocolObjects.h ${DERIVED_SOURCES_WEBKIT2_DIR}/AutomationProtocolObjects.cpp ${DERIVED_SOURCES_WEBKIT2_DIR}/AutomationFrontendDispatchers.h ${DERIVED_SOURCES_WEBKIT2_DIR}/AutomationFrontendDispatchers.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 ${WebKit2_AUTOMATION_PROTOCOL_GENERATOR_EXTRA_FLAGS} --backend ${WebKit2_AUTOMATION_PROTOCOL_GENERATOR_INPUTS}
@@ -803,11 +805,13 @@
list(APPEND WebKit2_HEADERS
${DERIVED_SOURCES_WEBKIT2_DIR}/AutomationBackendDispatchers.h
+ ${DERIVED_SOURCES_WEBKIT2_DIR}/AutomationFrontendDispatchers.h
${DERIVED_SOURCES_WEBKIT2_DIR}/AutomationProtocolObjects.h
)
list(APPEND WebKit2_SOURCES
${DERIVED_SOURCES_WEBKIT2_DIR}/AutomationBackendDispatchers.cpp
+ ${DERIVED_SOURCES_WEBKIT2_DIR}/AutomationFrontendDispatchers.cpp
${DERIVED_SOURCES_WEBKIT2_DIR}/AutomationProtocolObjects.cpp
)
Modified: trunk/Source/WebKit/ChangeLog (219873 => 219874)
--- trunk/Source/WebKit/ChangeLog 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/WebKit/ChangeLog 2017-07-25 18:03:02 UTC (rev 219874)
@@ -1,3 +1,58 @@
+2017-07-25 Brian Burg <bb...@apple.com>
+
+ Web Automation: add support for uploading files
+ https://bugs.webkit.org/show_bug.cgi?id=174797
+ <rdar://problem/28485063>
+
+ Reviewed by Joseph Pecoraro.
+
+ The general strategy is to have automation clients set the list of files they want
+ to select ahead of time. Then, the client simulates a click on the <input type="file"> element.
+ When that causes WebPageProxy to ask the UI delegate to runOpenPanel, it instead
+ gives WebAutomationSession a chance to select files if the page is under control of
+ automation. WebAutomationSession validates its file list and selects the files if valid.
+
+ * CMakeLists.txt: Add frontend dispatcher files.
+ * DerivedSources.make:
+ Add frontend dispatcher code generator scripts as dependencies of the generated code.
+ Add generated frontend dispatcher files to the list of output files.
+
+ * UIProcess/Automation/Automation.json:
+ Add a command to set the canned list of files that should be selected when prompted.
+ If no files are selected, then the effect is as if the user had clicked "cancel" in
+ the file chooser dialog.
+
+ Add an event to signal to the WebDriver service that the file selection request has
+ been either fulfilled or cancelled. This event is necessary because otherwise remotes
+ cannot distinguish whether selecting the files failed for some reason, or if the
+ UIProcess has not yet selected the files and sent them to the web content process.
+ In either case, the input element's "files" attribute would return an empty FileList.
+
+ * UIProcess/Automation/WebAutomationSession.h:
+ * UIProcess/Automation/WebAutomationSession.cpp:
+ (WebKit::WebAutomationSession::WebAutomationSession):
+ Add the frontend dispatcher for Automation domain. This is named m_domainNotifier since
+ m_domainDispatcher is already being used for the backend command dispatcher.
+
+ (WebKit::WebAutomationSession::handleRunOpenPanel):
+ Validate that the files-to-select list has valid entries and select the files if so.
+ If anything goes wrong, pretend to cancel out of the file chooser. Either way, notify the
+ frontend with an event that the file chooser was dismissed due to selecting files or cancelling.
+ Automation protocol clients may implement additional strategies to further restrict
+ the conditions upon which local files can be uploaded.
+
+ (WebKit::WebAutomationSession::setFilesToSelectForFileUpload): Added.
+ Store the list of files as a vector of strings. The file list is always replaced.
+
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::runOpenPanel):
+ If the page is under automation, delegating the runOpenPanel is likely to hang
+ because WebDriver cannot interact directly with the file chooser dialog. Instead,
+ give WebAutomationSession a chance to select files and don't tell the delegate.
+
+ * WebKit.xcodeproj/project.pbxproj:
+ Add frontend dispatcher files to "Derived Sources" group.
+
2017-07-25 Alex Christensen <achristen...@webkit.org>
Modernize NavigationAction code
Modified: trunk/Source/WebKit/DerivedSources.make (219873 => 219874)
--- trunk/Source/WebKit/DerivedSources.make 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/WebKit/DerivedSources.make 2017-07-25 18:03:02 UTC (rev 219874)
@@ -230,6 +230,8 @@
$(_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_frontend_dispatcher_header.py \
+ $(_javascript_Core_SCRIPTS_DIR)/generate_cpp_frontend_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 \
@@ -245,6 +247,8 @@
AUTOMATION_PROTOCOL_OUTPUT_FILES = \
AutomationBackendDispatchers.h \
AutomationBackendDispatchers.cpp \
+ AutomationFrontendDispatchers.h \
+ AutomationFrontendDispatchers.cpp \
#
ifeq ($(OS),MACOS)
@@ -255,7 +259,7 @@
endif
endif # MACOS
-# JSON-RPC Backend Dispatchers, Type Builders
+# JSON-RPC Frontend Dispatchers, Backend Dispatchers, Type Builders
$(firstword $(AUTOMATION_PROTOCOL_OUTPUT_FILES)) : $(AUTOMATION_PROTOCOL_INPUT_FILES) $(AUTOMATION_PROTOCOL_GENERATOR_SCRIPTS)
$(PYTHON) $(_javascript_Core_SCRIPTS_DIR)/generate-inspector-protocol-bindings.py --framework WebKit $(AUTOMATION_BACKEND_PLATFORM_ARGUMENTS) --backend --outputDir . $(AUTOMATION_PROTOCOL_INPUT_FILES)
Modified: trunk/Source/WebKit/UIProcess/Automation/Automation.json (219873 => 219874)
--- trunk/Source/WebKit/UIProcess/Automation/Automation.json 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/WebKit/UIProcess/Automation/Automation.json 2017-07-25 18:03:02 UTC (rev 219874)
@@ -469,6 +469,14 @@
]
},
{
+ "name": "setFilesToSelectForFileUpload",
+ "description": "Sets the files to be selected when a file input type element becomes active in a browsing context.",
+ "parameters": [
+ { "name": "browsingContextHandle", "$ref": "BrowsingContextHandle", "description": "The handle for the browsing context." },
+ { "name": "filenames", "type": "array", "items": { "$ref": "string" }, "description": "Absolute paths to the files that should be selected." }
+ ]
+ },
+ {
"name": "getAllCookies",
"description": "Returns all cookies visible to the specified browsing context.",
"parameters": [
@@ -504,5 +512,15 @@
{ "name": "browsingContextHandle", "$ref": "BrowsingContextHandle", "description": "The handle for the browsing context." }
]
}
+ ],
+ "events": [
+ {
+ "name": "fileChooserDismissed",
+ "description": "Fired when a file chooser for a file input element is dismissed by selecting files or cancelling.",
+ "parameters": [
+ { "name": "browsingContextHandle", "$ref": "BrowsingContextHandle", "description": "The handle for the browsing context." },
+ { "name": "selectionCancelled", "type": "boolean", "description": "If true, the chooser was dismissed because file selection was cancelled." }
+ ]
+ }
]
}
Modified: trunk/Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp (219873 => 219874)
--- trunk/Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp 2017-07-25 18:03:02 UTC (rev 219874)
@@ -27,6 +27,7 @@
#include "WebAutomationSession.h"
#include "APIAutomationSessionClient.h"
+#include "APIOpenPanelParameters.h"
#include "AutomationProtocolObjects.h"
#include "WebAutomationSessionMacros.h"
#include "WebAutomationSessionMessages.h"
@@ -33,6 +34,7 @@
#include "WebAutomationSessionProxyMessages.h"
#include "WebCookieManagerProxy.h"
#include "WebInspectorProxy.h"
+#include "WebOpenPanelResultListenerProxy.h"
#include "WebProcessPool.h"
#include <_javascript_Core/InspectorBackendDispatcher.h>
#include <_javascript_Core/InspectorFrontendRouter.h>
@@ -56,6 +58,7 @@
, m_frontendRouter(FrontendRouter::create())
, m_backendDispatcher(BackendDispatcher::create(m_frontendRouter.copyRef()))
, m_domainDispatcher(AutomationBackendDispatcher::create(m_backendDispatcher, this))
+ , m_domainNotifier(std::make_unique<AutomationFrontendDispatcher>(m_frontendRouter))
, m_loadTimer(RunLoop::main(), this, &WebAutomationSession::loadTimerFired)
{
}
@@ -516,6 +519,35 @@
callback->sendSuccess(InspectorObject::create());
}
+void WebAutomationSession::handleRunOpenPanel(const WebPageProxy& page, const WebFrameProxy&, const API::OpenPanelParameters& parameters, WebOpenPanelResultListenerProxy& resultListener)
+{
+ if (!m_filesToSelectForFileUpload.size()) {
+ resultListener.cancel();
+ m_domainNotifier->fileChooserDismissed(m_activeBrowsingContextHandle, true);
+ return;
+ }
+
+ if (m_filesToSelectForFileUpload.size() > 1 && !parameters.allowMultipleFiles()) {
+ resultListener.cancel();
+ m_domainNotifier->fileChooserDismissed(m_activeBrowsingContextHandle, true);
+ return;
+ }
+
+ // Per ยง14.3.10.5 in the W3C spec, if at least one file no longer exists, the command should fail.
+ // The REST API service can tell that this failed by checking the "value" attribute of the input element.
+ for (const String& filename : m_filesToSelectForFileUpload) {
+ if (!WebCore::fileExists(filename)) {
+ resultListener.cancel();
+ m_domainNotifier->fileChooserDismissed(m_activeBrowsingContextHandle, true);
+ return;
+ }
+ }
+
+ // FIXME: validate filenames against allowed MIME types before choosing them. <https://webkit.org/b/174803>
+ resultListener.chooseFiles(m_filesToSelectForFileUpload);
+ m_domainNotifier->fileChooserDismissed(m_activeBrowsingContextHandle, false);
+}
+
void WebAutomationSession::evaluateJavaScriptFunction(Inspector::ErrorString& errorString, const String& browsingContextHandle, const String* optionalFrameHandle, const String& function, const Inspector::InspectorArray& arguments, const bool* optionalExpectsImplicitCallbackArgument, const int* optionalCallbackTimeout, Ref<EvaluateJavaScriptFunctionCallback>&& callback)
{
WebPageProxy* page = webPageProxyForHandle(browsingContextHandle);
@@ -755,6 +787,22 @@
m_client->setUserInputForCurrentJavaScriptPromptOnPage(*this, *page, promptValue);
}
+void WebAutomationSession::setFilesToSelectForFileUpload(ErrorString& errorString, const String& browsingContextHandle, const Inspector::InspectorArray& filenames)
+{
+ Vector<String> newFileList;
+ newFileList.reserveInitialCapacity(filenames.length());
+
+ for (auto item : filenames) {
+ String filename;
+ if (!item->asString(filename))
+ FAIL_WITH_PREDEFINED_ERROR(InternalError);
+
+ newFileList.append(filename);
+ }
+
+ m_filesToSelectForFileUpload.swap(newFileList);
+}
+
void WebAutomationSession::getAllCookies(ErrorString& errorString, const String& browsingContextHandle, Ref<GetAllCookiesCallback>&& callback)
{
WebPageProxy* page = webPageProxyForHandle(browsingContextHandle);
Modified: trunk/Source/WebKit/UIProcess/Automation/WebAutomationSession.h (219873 => 219874)
--- trunk/Source/WebKit/UIProcess/Automation/WebAutomationSession.h 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/WebKit/UIProcess/Automation/WebAutomationSession.h 2017-07-25 18:03:02 UTC (rev 219874)
@@ -27,6 +27,7 @@
#include "APIObject.h"
#include "AutomationBackendDispatchers.h"
+#include "AutomationFrontendDispatchers.h"
#include "Connection.h"
#include "ShareableBitmap.h"
#include "WebEvent.h"
@@ -62,10 +63,15 @@
OBJC_CLASS NSEvent;
#endif
+namespace API {
+class OpenPanelParameters;
+}
+
namespace WebKit {
class WebAutomationSessionClient;
class WebFrameProxy;
+class WebOpenPanelResultListenerProxy;
class WebPageProxy;
class WebProcessPool;
@@ -90,6 +96,7 @@
void navigationOccurredForFrame(const WebFrameProxy&);
void inspectorFrontendLoaded(const WebPageProxy&);
void keyboardEventsFlushedForPage(const WebPageProxy&);
+ void handleRunOpenPanel(const WebPageProxy&, const WebFrameProxy&, const API::OpenPanelParameters&, WebOpenPanelResultListenerProxy&);
#if ENABLE(REMOTE_INSPECTOR)
// Inspector::RemoteAutomationTarget API
@@ -129,6 +136,7 @@
void acceptCurrentJavaScriptDialog(Inspector::ErrorString&, const String& browsingContextHandle) override;
void messageOfCurrentJavaScriptDialog(Inspector::ErrorString&, const String& browsingContextHandle, String* text) override;
void setUserInputForCurrentJavaScriptPrompt(Inspector::ErrorString&, const String& browsingContextHandle, const String& text) override;
+ void setFilesToSelectForFileUpload(Inspector::ErrorString&, const String& browsingContextHandle, const Inspector::InspectorArray& filenames) override;
void getAllCookies(Inspector::ErrorString&, const String& browsingContextHandle, Ref<GetAllCookiesCallback>&&) override;
void deleteSingleCookie(Inspector::ErrorString&, const String& browsingContextHandle, const String& cookieName, Ref<DeleteSingleCookieCallback>&&) override;
void addSingleCookie(Inspector::ErrorString&, const String& browsingContextHandle, const Inspector::InspectorObject& cookie, Ref<AddSingleCookieCallback>&&) override;
@@ -194,6 +202,7 @@
Ref<Inspector::FrontendRouter> m_frontendRouter;
Ref<Inspector::BackendDispatcher> m_backendDispatcher;
Ref<Inspector::AutomationBackendDispatcher> m_domainDispatcher;
+ std::unique_ptr<Inspector::AutomationFrontendDispatcher> m_domainNotifier;
HashMap<uint64_t, String> m_webPageHandleMap;
HashMap<String, uint64_t> m_handleWebPageMap;
@@ -229,6 +238,7 @@
HashMap<uint64_t, RefPtr<Inspector::AutomationBackendDispatcherHandler::DeleteSingleCookieCallback>> m_deleteCookieCallbacks;
RunLoop::Timer<WebAutomationSession> m_loadTimer;
+ Vector<String> m_filesToSelectForFileUpload;
#if ENABLE(REMOTE_INSPECTOR)
Inspector::FrontendChannel* m_remoteChannel { nullptr };
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (219873 => 219874)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2017-07-25 18:03:02 UTC (rev 219874)
@@ -4118,10 +4118,17 @@
Ref<API::OpenPanelParameters> parameters = API::OpenPanelParameters::create(settings);
m_openPanelResultListener = WebOpenPanelResultListenerProxy::create(this);
+ if (m_controlledByAutomation) {
+ if (auto* automationSession = process().processPool().automationSession())
+ automationSession->handleRunOpenPanel(*this, *frame, parameters.get(), *m_openPanelResultListener);
+
+ // Don't show a file chooser, since automation will be unable to interact with it.
+ return;
+ }
+
// Since runOpenPanel() can spin a nested run loop we need to turn off the responsiveness timer.
m_process->responsivenessTimer().stop();
-
if (!m_uiClient->runOpenPanel(this, frame, frameSecurityOrigin, parameters.ptr(), m_openPanelResultListener.get())) {
if (!m_pageClient.handleRunOpenPanel(this, frame, parameters.ptr(), m_openPanelResultListener.get()))
didCancelForOpenPanel();
Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (219873 => 219874)
--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2017-07-25 18:02:57 UTC (rev 219873)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2017-07-25 18:03:02 UTC (rev 219874)
@@ -1413,6 +1413,8 @@
990D28BB1C6539D300986977 /* AutomationSessionClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 990D28B71C6539A000986977 /* AutomationSessionClient.h */; };
990D28BC1C6539DA00986977 /* AutomationSessionClient.mm in Sources */ = {isa = PBXBuildFile; fileRef = 990D28B81C6539A000986977 /* AutomationSessionClient.mm */; };
990D28C01C6553F100986977 /* APIAutomationSessionClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 990D28B31C6526D400986977 /* APIAutomationSessionClient.h */; };
+ 99249AD51F1F1E5600B62FBB /* AutomationFrontendDispatchers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 99249AD31F1F1E3300B62FBB /* AutomationFrontendDispatchers.cpp */; };
+ 99249AD61F1F1E5F00B62FBB /* AutomationFrontendDispatchers.h in Headers */ = {isa = PBXBuildFile; fileRef = 99249AD41F1F1E3300B62FBB /* AutomationFrontendDispatchers.h */; };
9946EF861E7B027000541E79 /* WebAutomationSessionIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9946EF851E7B026600541E79 /* WebAutomationSessionIOS.mm */; };
9955A6EC1C7980C200EB6A93 /* WebAutomationSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 9955A6EB1C7980BB00EB6A93 /* WebAutomationSession.h */; };
9955A6ED1C7980CA00EB6A93 /* WebAutomationSession.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9955A6EA1C7980BB00EB6A93 /* WebAutomationSession.cpp */; };
@@ -3702,6 +3704,8 @@
990D28B31C6526D400986977 /* APIAutomationSessionClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIAutomationSessionClient.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>"; };
+ 99249AD31F1F1E3300B62FBB /* AutomationFrontendDispatchers.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AutomationFrontendDispatchers.cpp; sourceTree = "<group>"; };
+ 99249AD41F1F1E3300B62FBB /* AutomationFrontendDispatchers.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AutomationFrontendDispatchers.h; sourceTree = "<group>"; };
9946EF851E7B026600541E79 /* WebAutomationSessionIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebAutomationSessionIOS.mm; 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>"; };
@@ -5724,9 +5728,9 @@
1A66BF8E18A052ED002071B4 /* WKWebViewInternal.h */,
26F9A83A18A3463F00AEB88A /* WKWebViewPrivate.h */,
1AD60F5C18E20F4C0020C034 /* WKWindowFeatures.h */,
- 6A5080BE1F0EDAAA00E617C5 /* WKWindowFeaturesPrivate.h */,
1AD60F5B18E20F4C0020C034 /* WKWindowFeatures.mm */,
1AD60F5F18E20F740020C034 /* WKWindowFeaturesInternal.h */,
+ 6A5080BE1F0EDAAA00E617C5 /* WKWindowFeaturesPrivate.h */,
);
path = Cocoa;
sourceTree = "<group>";
@@ -7729,6 +7733,8 @@
512F58A112A883AD00629530 /* AuthenticationManagerMessages.h */,
9955A6F01C79866400EB6A93 /* AutomationBackendDispatchers.cpp */,
9955A6F11C79866400EB6A93 /* AutomationBackendDispatchers.h */,
+ 99249AD31F1F1E3300B62FBB /* AutomationFrontendDispatchers.cpp */,
+ 99249AD41F1F1E3300B62FBB /* AutomationFrontendDispatchers.h */,
9955A6F21C79866400EB6A93 /* AutomationProtocolObjects.cpp */,
9955A6F31C79866400EB6A93 /* AutomationProtocolObjects.h */,
51FAEC361B0657310009C4E7 /* ChildProcessMessageReceiver.cpp */,
@@ -8240,7 +8246,6 @@
1AD4C1931B39F33200ABC28E /* ApplicationStateTracker.h in Headers */,
1AEFD27911D16C81008219D3 /* ArgumentCoder.h in Headers */,
1AEFD2F711D1807B008219D3 /* ArgumentCoders.h in Headers */,
- 83850C0D1F16BA9000C15E52 /* ResourceLoadStatisticsPersistentStorage.h in Headers */,
1AAF0C4A12B16334008E49E2 /* ArgumentCodersCF.h in Headers */,
E179FD9C134D38060015B883 /* ArgumentCodersMac.h in Headers */,
CE1A0BD21A48E6C60054EF74 /* AssertionServicesSPI.h in Headers */,
@@ -8256,6 +8261,7 @@
9955A6EF1C79810800EB6A93 /* Automation.json in Headers */,
9955A6F51C7986E000EB6A93 /* AutomationBackendDispatchers.h in Headers */,
99C81D5A1C20E7E2005C4C82 /* AutomationClient.h in Headers */,
+ 99249AD61F1F1E5F00B62FBB /* AutomationFrontendDispatchers.h in Headers */,
9955A6F71C7986E500EB6A93 /* AutomationProtocolObjects.h in Headers */,
990D28BB1C6539D300986977 /* AutomationSessionClient.h in Headers */,
CDA041F41ACE2105004A13EC /* BackBoardServicesSPI.h in Headers */,
@@ -8526,6 +8532,7 @@
A55BA8171BA23E12007CD33D /* RemoteWebInspectorUI.h in Headers */,
6BE969CD1E54E054008B7483 /* ResourceLoadStatisticsClassifier.h in Headers */,
6BE969CB1E54D4CF008B7483 /* ResourceLoadStatisticsClassifierCocoa.h in Headers */,
+ 83850C0D1F16BA9000C15E52 /* ResourceLoadStatisticsPersistentStorage.h in Headers */,
1A30066E1110F4F70031937C /* ResponsivenessTimer.h in Headers */,
410482CE1DDD324F00F006D0 /* RTCNetwork.h in Headers */,
BC2D021712AC41CB00E732A3 /* SameDocumentNavigationType.h in Headers */,
@@ -8725,7 +8732,6 @@
CDA29A2B1CBEB67A00901CCF /* WebPlaybackSessionManagerProxyMessages.h in Headers */,
31D5929F166E060000E6BF02 /* WebPlugInClient.h in Headers */,
BC5744F012638FB3006F0F12 /* WebPopupItem.h in Headers */,
- 6A5080BF1F0EDAAA00E617C5 /* WKWindowFeaturesPrivate.h in Headers */,
D3B9484711FF4B6500032B39 /* WebPopupMenu.h in Headers */,
BC574E631267D080006F0F12 /* WebPopupMenuProxy.h in Headers */,
BC5750971268F3C6006F0F12 /* WebPopupMenuProxyMac.h in Headers */,
@@ -9126,6 +9132,7 @@
26F9A83B18A3468100AEB88A /* WKWebViewPrivate.h in Headers */,
1AD60F5E18E20F4C0020C034 /* WKWindowFeatures.h in Headers */,
1AD60F6018E20F740020C034 /* WKWindowFeaturesInternal.h in Headers */,
+ 6A5080BF1F0EDAAA00E617C5 /* WKWindowFeaturesPrivate.h in Headers */,
1A7C0DF71B7D1F1000A9B848 /* WKWindowFeaturesRef.h in Headers */,
BCBECDE816B6416800047A1A /* XPCServiceEntryPoint.h in Headers */,
);
@@ -9799,6 +9806,7 @@
512F58A212A883AD00629530 /* AuthenticationManagerMessageReceiver.cpp in Sources */,
9955A6F41C7986DC00EB6A93 /* AutomationBackendDispatchers.cpp in Sources */,
99C81D591C20E1E5005C4C82 /* AutomationClient.mm in Sources */,
+ 99249AD51F1F1E5600B62FBB /* AutomationFrontendDispatchers.cpp in Sources */,
9955A6F61C7986E300EB6A93 /* AutomationProtocolObjects.cpp in Sources */,
990D28BC1C6539DA00986977 /* AutomationSessionClient.mm in Sources */,
46A2B6081E5676A600C3DEDA /* BackgroundProcessResponsivenessTimer.cpp in Sources */,
@@ -9820,6 +9828,7 @@
1A30EAC6115D7DA30053E937 /* ConnectionMac.mm in Sources */,
5106D7C218BDBE73000AB166 /* ContextMenuContextData.cpp in Sources */,
CDC3831017212440008A2FC3 /* CookieStorageShim.mm in Sources */,
+ 5104F5A21F19D7D2004CF821 /* CookieStorageUtilsCF.mm in Sources */,
B878B616133428DC006888E9 /* CorrectionPanel.mm in Sources */,
51E351FF180F5D0F00E53BE9 /* DatabaseProcess.cpp in Sources */,
515E772B184008B90007203F /* DatabaseProcessCreationParameters.cpp in Sources */,
@@ -9874,7 +9883,6 @@
935EEBA3127761D3003322B8 /* InjectedBundleBackForwardListItem.cpp in Sources */,
BCEE7DC6128B645D009827DA /* InjectedBundleClient.cpp in Sources */,
1A53C2A21A323004004E8C70 /* InjectedBundleCSSStyleDeclarationHandle.cpp in Sources */,
- 5104F5A21F19D7D2004CF821 /* CookieStorageUtilsCF.mm in Sources */,
51FA2D7415212DF100C1BA0B /* InjectedBundleDOMWindowExtension.cpp in Sources */,
7CBB811C1AA0F8B1006B1942 /* InjectedBundleFileHandle.cpp in Sources */,
BC498619124D10E200D834E1 /* InjectedBundleHitTestResult.cpp in Sources */,
@@ -9954,7 +9962,6 @@
E4436ECD1A0D040B00EAD204 /* NetworkCacheKey.cpp in Sources */,
831EEBBE1BD85C4300BB64C3 /* NetworkCacheSpeculativeLoad.cpp in Sources */,
832AE2531BE2E8CD00FAAE10 /* NetworkCacheSpeculativeLoadManager.cpp in Sources */,
- 83850C0C1F16BA9000C15E52 /* ResourceLoadStatisticsPersistentStorage.cpp in Sources */,
83BDCCB91AC5FDB6003F6441 /* NetworkCacheStatistics.cpp in Sources */,
E4436ED01A0D040B00EAD204 /* NetworkCacheStorage.cpp in Sources */,
8310428C1BD6B66F00A715E4 /* NetworkCacheSubresourcesEntry.cpp in Sources */,
@@ -10095,6 +10102,8 @@
1BBBE4A019B66C53006B7D81 /* RemoteWebInspectorUIMessageReceiver.cpp in Sources */,
6BE969C71E54D4B6008B7483 /* ResourceLoadStatisticsClassifier.cpp in Sources */,
6BE969CA1E54D4CF008B7483 /* ResourceLoadStatisticsClassifierCocoa.cpp in Sources */,
+ 83850C0C1F16BA9000C15E52 /* ResourceLoadStatisticsPersistentStorage.cpp in Sources */,
+ 8324355C1F1714670035AA3A /* ResourceLoadStatisticsPersistentStorageIOS.mm in Sources */,
BC111B09112F5E3C00337BAB /* ResponsivenessTimer.cpp in Sources */,
410482CD1DDD324C00F006D0 /* RTCNetwork.cpp in Sources */,
1AAB4AAA1296F1540023952F /* SandboxExtensionMac.mm in Sources */,
@@ -10537,7 +10546,6 @@
1ACC50F11CBC381D003C7D03 /* WKOpenPanelParameters.mm in Sources */,
BC85806312B8505700EDEB2E /* WKOpenPanelParametersRef.cpp in Sources */,
BC85806212B8505700EDEB2E /* WKOpenPanelResultListener.cpp in Sources */,
- 8324355C1F1714670035AA3A /* ResourceLoadStatisticsPersistentStorageIOS.mm in Sources */,
BCD597D6112B56DC00EC8C23 /* WKPage.cpp in Sources */,
7C89D29B1A67837B003A5FDE /* WKPageConfigurationRef.cpp in Sources */,
BC7B633812A45ABA00D174A4 /* WKPageGroup.cpp in Sources */,