Diff
Modified: trunk/ChangeLog (238097 => 238098)
--- trunk/ChangeLog 2018-11-12 18:55:17 UTC (rev 238097)
+++ trunk/ChangeLog 2018-11-12 18:58:01 UTC (rev 238098)
@@ -1,3 +1,12 @@
+2018-11-12 Takashi Komori <takashi.kom...@sony.com>
+
+ Resurrect WebKitTestRunner for Windows port
+ https://bugs.webkit.org/show_bug.cgi?id=189257
+
+ Reviewed by Fujii Hironori.
+
+ * Source/cmake/OptionsWin.cmake:
+
2018-11-07 Carlos Garcia Campos <cgar...@igalia.com>
[Linux] Use memfd_create when available in SharedMemory implementation
Modified: trunk/Source/WebKit/ChangeLog (238097 => 238098)
--- trunk/Source/WebKit/ChangeLog 2018-11-12 18:55:17 UTC (rev 238097)
+++ trunk/Source/WebKit/ChangeLog 2018-11-12 18:58:01 UTC (rev 238098)
@@ -1,3 +1,12 @@
+2018-11-12 Takashi Komori <takashi.kom...@sony.com>
+
+ Resurrect WebKitTestRunner for Windows port
+ https://bugs.webkit.org/show_bug.cgi?id=189257
+
+ Reviewed by Fujii Hironori.
+
+ * PlatformWin.cmake:
+
2018-11-12 Antoine Quint <grao...@apple.com>
[Web Animations] Turn Web Animations experimental
Modified: trunk/Source/WebKit/PlatformWin.cmake (238097 => 238098)
--- trunk/Source/WebKit/PlatformWin.cmake 2018-11-12 18:55:17 UTC (rev 238097)
+++ trunk/Source/WebKit/PlatformWin.cmake 2018-11-12 18:58:01 UTC (rev 238098)
@@ -195,6 +195,7 @@
set(WebKit_FORWARDING_HEADERS_DIRECTORIES
Shared/API/c
+ Shared/API/c/cairo
Shared/API/c/cf
Shared/API/c/win
Modified: trunk/Source/cmake/OptionsWin.cmake (238097 => 238098)
--- trunk/Source/cmake/OptionsWin.cmake 2018-11-12 18:55:17 UTC (rev 238097)
+++ trunk/Source/cmake/OptionsWin.cmake 2018-11-12 18:58:01 UTC (rev 238098)
@@ -84,6 +84,7 @@
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INTL PUBLIC ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PUBLIC_SUFFIX_LIST PRIVATE ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBGL PUBLIC ON)
+ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ACCESSIBILITY PRIVATE ON)
# FIXME: Implement plugin process on Modern WebKit. https://bugs.webkit.org/show_bug.cgi?id=185313
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETSCAPE_PLUGIN_API PRIVATE OFF)
Modified: trunk/Tools/ChangeLog (238097 => 238098)
--- trunk/Tools/ChangeLog 2018-11-12 18:55:17 UTC (rev 238097)
+++ trunk/Tools/ChangeLog 2018-11-12 18:58:01 UTC (rev 238098)
@@ -1,3 +1,274 @@
+2018-11-12 Takashi Komori <takashi.kom...@sony.com>
+
+ Resurrect WebKitTestRunner for Windows port
+ https://bugs.webkit.org/show_bug.cgi?id=189257
+
+ Reviewed by Fujii Hironori.
+
+ Implement WebKitTestRunner for WinCairo.
+
+ * PlatformWin.cmake:
+ * Scripts/build-webkittestrunner:
+ * WebKitTestRunner/CMakeLists.txt:
+ * WebKitTestRunner/EventSenderProxy.h:
+ * WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:
+ * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
+ * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
+ * WebKitTestRunner/InjectedBundle/InjectedBundleMain.cpp:
+ * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
+ (WTR::rangeToStr):
+ (WTR::InjectedBundlePage::dumpDOMAsWebArchive):
+ * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
+ (WTR::TestRunner::TestRunner):
+ * WebKitTestRunner/InjectedBundle/TestRunner.h:
+ * WebKitTestRunner/InjectedBundle/win/AccessibilityControllerWin.cpp: Added.
+ (WTR::AccessibilityController::resetToConsistentState):
+ (WTR::AccessibilityController::accessibleElementById):
+ (WTR::AccessibilityController::platformName):
+ (WTR::AccessibilityController::rootElement):
+ (WTR::AccessibilityController::focusedElement):
+ (WTR::AccessibilityController::addNotificationListener):
+ (WTR::AccessibilityController::removeNotificationListener):
+ * WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp: Added.
+ (WTR::AccessibilityUIElement::AccessibilityUIElement):
+ (WTR::AccessibilityUIElement::~AccessibilityUIElement):
+ (WTR::AccessibilityUIElement::isEqual):
+ (WTR::AccessibilityUIElement::getChildren):
+ (WTR::AccessibilityUIElement::getChildrenWithRange):
+ (WTR::AccessibilityUIElement::childrenCount):
+ (WTR::AccessibilityUIElement::elementAtPoint):
+ (WTR::AccessibilityUIElement::indexOfChild):
+ (WTR::AccessibilityUIElement::childAtIndex):
+ (WTR::AccessibilityUIElement::linkedUIElementAtIndex):
+ (WTR::AccessibilityUIElement::ariaOwnsElementAtIndex):
+ (WTR::AccessibilityUIElement::ariaFlowToElementAtIndex):
+ (WTR::AccessibilityUIElement::ariaControlsElementAtIndex):
+ (WTR::AccessibilityUIElement::disclosedRowAtIndex):
+ (WTR::AccessibilityUIElement::rowAtIndex):
+ (WTR::AccessibilityUIElement::selectedChildAtIndex const):
+ (WTR::AccessibilityUIElement::selectedChildrenCount const):
+ (WTR::AccessibilityUIElement::selectedRowAtIndex):
+ (WTR::AccessibilityUIElement::titleUIElement):
+ (WTR::AccessibilityUIElement::parentElement):
+ (WTR::AccessibilityUIElement::disclosedByRow):
+ (WTR::AccessibilityUIElement::attributesOfLinkedUIElements):
+ (WTR::AccessibilityUIElement::attributesOfDocumentLinks):
+ (WTR::AccessibilityUIElement::attributesOfChildren):
+ (WTR::AccessibilityUIElement::allAttributes):
+ (WTR::AccessibilityUIElement::stringAttributeValue):
+ (WTR::AccessibilityUIElement::numberAttributeValue):
+ (WTR::AccessibilityUIElement::uiElementArrayAttributeValue const):
+ (WTR::AccessibilityUIElement::rowHeaders const):
+ (WTR::AccessibilityUIElement::columnHeaders const):
+ (WTR::AccessibilityUIElement::uiElementAttributeValue const):
+ (WTR::AccessibilityUIElement::boolAttributeValue):
+ (WTR::AccessibilityUIElement::isAttributeSettable):
+ (WTR::AccessibilityUIElement::isAttributeSupported):
+ (WTR::AccessibilityUIElement::parameterizedAttributeNames):
+ (WTR::AccessibilityUIElement::role):
+ (WTR::AccessibilityUIElement::subrole):
+ (WTR::AccessibilityUIElement::roleDescription):
+ (WTR::AccessibilityUIElement::computedRoleString):
+ (WTR::AccessibilityUIElement::title):
+ (WTR::AccessibilityUIElement::description):
+ (WTR::AccessibilityUIElement::orientation const):
+ (WTR::AccessibilityUIElement::stringValue):
+ (WTR::AccessibilityUIElement::language):
+ (WTR::AccessibilityUIElement::helpText const):
+ (WTR::AccessibilityUIElement::x):
+ (WTR::AccessibilityUIElement::y):
+ (WTR::AccessibilityUIElement::width):
+ (WTR::AccessibilityUIElement::height):
+ (WTR::AccessibilityUIElement::clickPointX):
+ (WTR::AccessibilityUIElement::clickPointY):
+ (WTR::AccessibilityUIElement::intValue const):
+ (WTR::AccessibilityUIElement::minValue):
+ (WTR::AccessibilityUIElement::maxValue):
+ (WTR::AccessibilityUIElement::valueDescription):
+ (WTR::AccessibilityUIElement::insertionPointLineNumber):
+ (WTR::AccessibilityUIElement::isPressActionSupported):
+ (WTR::AccessibilityUIElement::isIncrementActionSupported):
+ (WTR::AccessibilityUIElement::isDecrementActionSupported):
+ (WTR::AccessibilityUIElement::isEnabled):
+ (WTR::AccessibilityUIElement::isRequired const):
+ (WTR::AccessibilityUIElement::isFocused const):
+ (WTR::AccessibilityUIElement::isSelected const):
+ (WTR::AccessibilityUIElement::isSelectedOptionActive const):
+ (WTR::AccessibilityUIElement::isExpanded const):
+ (WTR::AccessibilityUIElement::isChecked const):
+ (WTR::AccessibilityUIElement::isIndeterminate const):
+ (WTR::AccessibilityUIElement::hierarchicalLevel const):
+ (WTR::AccessibilityUIElement::speakAs):
+ (WTR::AccessibilityUIElement::ariaIsGrabbed const):
+ (WTR::AccessibilityUIElement::ariaDropEffects const):
+ (WTR::AccessibilityUIElement::lineForIndex):
+ (WTR::AccessibilityUIElement::rangeForLine):
+ (WTR::AccessibilityUIElement::rangeForPosition):
+ (WTR::AccessibilityUIElement::boundsForRange):
+ (WTR::AccessibilityUIElement::stringForRange):
+ (WTR::AccessibilityUIElement::attributedStringForRange):
+ (WTR::AccessibilityUIElement::attributedStringRangeIsMisspelled):
+ (WTR::AccessibilityUIElement::uiElementCountForSearchPredicate):
+ (WTR::AccessibilityUIElement::uiElementForSearchPredicate):
+ (WTR::AccessibilityUIElement::selectTextWithCriteria):
+ (WTR::AccessibilityUIElement::attributesOfColumnHeaders):
+ (WTR::AccessibilityUIElement::attributesOfRowHeaders):
+ (WTR::AccessibilityUIElement::attributesOfColumns):
+ (WTR::AccessibilityUIElement::attributesOfRows):
+ (WTR::AccessibilityUIElement::attributesOfVisibleCells):
+ (WTR::AccessibilityUIElement::attributesOfHeader):
+ (WTR::AccessibilityUIElement::rowCount):
+ (WTR::AccessibilityUIElement::columnCount):
+ (WTR::AccessibilityUIElement::indexInTable):
+ (WTR::AccessibilityUIElement::rowIndexRange):
+ (WTR::AccessibilityUIElement::columnIndexRange):
+ (WTR::AccessibilityUIElement::cellForColumnAndRow):
+ (WTR::AccessibilityUIElement::horizontalScrollbar const):
+ (WTR::AccessibilityUIElement::verticalScrollbar const):
+ (WTR::AccessibilityUIElement::selectedTextRange):
+ (WTR::AccessibilityUIElement::setSelectedTextRange):
+ (WTR::AccessibilityUIElement::increment):
+ (WTR::AccessibilityUIElement::decrement):
+ (WTR::AccessibilityUIElement::showMenu):
+ (WTR::AccessibilityUIElement::press):
+ (WTR::AccessibilityUIElement::setSelectedChild const):
+ (WTR::AccessibilityUIElement::setSelectedChildAtIndex const):
+ (WTR::AccessibilityUIElement::removeSelectionAtIndex const):
+ (WTR::AccessibilityUIElement::clearSelectedChildren const):
+ (WTR::AccessibilityUIElement::accessibilityValue const):
+ (WTR::AccessibilityUIElement::documentEncoding):
+ (WTR::AccessibilityUIElement::documentURI):
+ (WTR::AccessibilityUIElement::url):
+ (WTR::AccessibilityUIElement::addNotificationListener):
+ (WTR::AccessibilityUIElement::removeNotificationListener):
+ (WTR::AccessibilityUIElement::isFocusable const):
+ (WTR::AccessibilityUIElement::isSelectable const):
+ (WTR::AccessibilityUIElement::isMultiSelectable const):
+ (WTR::AccessibilityUIElement::isVisible const):
+ (WTR::AccessibilityUIElement::isOffScreen const):
+ (WTR::AccessibilityUIElement::isCollapsed const):
+ (WTR::AccessibilityUIElement::isIgnored const):
+ (WTR::AccessibilityUIElement::isSingleLine const):
+ (WTR::AccessibilityUIElement::isMultiLine const):
+ (WTR::AccessibilityUIElement::hasPopup const):
+ (WTR::AccessibilityUIElement::takeFocus):
+ (WTR::AccessibilityUIElement::takeSelection):
+ (WTR::AccessibilityUIElement::addSelection):
+ (WTR::AccessibilityUIElement::removeSelection):
+ (WTR::AccessibilityUIElement::lineTextMarkerRangeForTextMarker):
+ (WTR::AccessibilityUIElement::textMarkerRangeForElement):
+ (WTR::AccessibilityUIElement::textMarkerRangeLength):
+ (WTR::AccessibilityUIElement::previousTextMarker):
+ (WTR::AccessibilityUIElement::nextTextMarker):
+ (WTR::AccessibilityUIElement::stringForTextMarkerRange):
+ (WTR::AccessibilityUIElement::textMarkerRangeForMarkers):
+ (WTR::AccessibilityUIElement::startTextMarkerForTextMarkerRange):
+ (WTR::AccessibilityUIElement::endTextMarkerForTextMarkerRange):
+ (WTR::AccessibilityUIElement::endTextMarkerForBounds):
+ (WTR::AccessibilityUIElement::startTextMarkerForBounds):
+ (WTR::AccessibilityUIElement::textMarkerForPoint):
+ (WTR::AccessibilityUIElement::accessibilityElementForTextMarker):
+ (WTR::AccessibilityUIElement::attributedStringForTextMarkerRange):
+ (WTR::AccessibilityUIElement::attributedStringForTextMarkerRangeWithOptions):
+ (WTR::AccessibilityUIElement::attributedStringForTextMarkerRangeContainsAttribute):
+ (WTR::AccessibilityUIElement::indexForTextMarker):
+ (WTR::AccessibilityUIElement::isTextMarkerValid):
+ (WTR::AccessibilityUIElement::textMarkerForIndex):
+ (WTR::AccessibilityUIElement::startTextMarker):
+ (WTR::AccessibilityUIElement::endTextMarker):
+ (WTR::AccessibilityUIElement::setSelectedVisibleTextRange):
+ (WTR::AccessibilityUIElement::scrollToMakeVisible):
+ (WTR::AccessibilityUIElement::scrollToGlobalPoint):
+ (WTR::AccessibilityUIElement::scrollToMakeVisibleWithSubFocus):
+ (WTR::AccessibilityUIElement::supportedActions const):
+ (WTR::AccessibilityUIElement::pathDescription const):
+ (WTR::AccessibilityUIElement::mathPostscriptsDescription const):
+ (WTR::AccessibilityUIElement::mathPrescriptsDescription const):
+ (WTR::AccessibilityUIElement::classList const):
+ (WTR::AccessibilityUIElement::characterAtOffset):
+ (WTR::AccessibilityUIElement::wordAtOffset):
+ (WTR::AccessibilityUIElement::lineAtOffset):
+ (WTR::AccessibilityUIElement::sentenceAtOffset):
+ * WebKitTestRunner/InjectedBundle/win/ActivateFontsWin.cpp: Copied from Tools/WebKitTestRunner/InjectedBundle/InjectedBundleMain.cpp.
+ (WTR::activateFonts):
+ (WTR::installFakeHelvetica):
+ (WTR::uninstallFakeHelvetica):
+ * WebKitTestRunner/InjectedBundle/win/InjectedBundleWin.cpp: Copied from Tools/WebKitTestRunner/InjectedBundle/InjectedBundleMain.cpp.
+ (WTR::InjectedBundle::platformInitialize):
+ * WebKitTestRunner/InjectedBundle/win/TestRunnerInjectedBundlePrefix.cpp: Added.
+ * WebKitTestRunner/InjectedBundle/win/TestRunnerInjectedBundlePrefix.h: Copied from Tools/WebKitTestRunner/InjectedBundle/InjectedBundleMain.cpp.
+ * WebKitTestRunner/InjectedBundle/win/TestRunnerWin.cpp: Copied from Tools/WebKitTestRunner/InjectedBundle/InjectedBundleMain.cpp.
+ (WTR::TestRunner::pathToLocalResource):
+ (WTR::TestRunner::inspectorTestStubURL):
+ (WTR::TestRunner::invalidateWaitToDumpWatchdogTimer):
+ (WTR::TestRunner::platformInitialize):
+ (WTR::TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded):
+ (WTR::TestRunner::installFakeHelvetica):
+ * WebKitTestRunner/PlatformWebView.h:
+ * WebKitTestRunner/PlatformWin.cmake: Added.
+ * WebKitTestRunner/TestController.cpp:
+ (WTR::TestController::resetStateToConsistentValues):
+ (WTR::createTestURL):
+ * WebKitTestRunner/TestInvocation.cpp:
+ * WebKitTestRunner/WebKitTestRunnerPrefix.h:
+ * WebKitTestRunner/win/EventSenderProxyWin.cpp: Added.
+ (WTR::EventSenderProxy::EventSenderProxy):
+ (WTR::EventSenderProxy::~EventSenderProxy):
+ (WTR::EventSenderProxy::mouseDown):
+ (WTR::EventSenderProxy::mouseUp):
+ (WTR::EventSenderProxy::mouseMoveTo):
+ (WTR::EventSenderProxy::mouseScrollBy):
+ (WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases):
+ (WTR::EventSenderProxy::continuousMouseScrollBy):
+ (WTR::EventSenderProxy::leapForward):
+ (WTR::EventSenderProxy::keyDown):
+ * WebKitTestRunner/win/PlatformWebViewWin.cpp: Added.
+ (WTR::registerWindowClass):
+ (WTR::PlatformWebView::PlatformWebView):
+ (WTR::PlatformWebView::~PlatformWebView):
+ (WTR::PlatformWebView::resizeTo):
+ (WTR::PlatformWebView::page):
+ (WTR::PlatformWebView::focus):
+ (WTR::PlatformWebView::windowFrame):
+ (WTR::PlatformWebView::setWindowFrame):
+ (WTR::PlatformWebView::didInitializeClients):
+ (WTR::PlatformWebView::addChromeInputField):
+ (WTR::PlatformWebView::removeChromeInputField):
+ (WTR::PlatformWebView::addToWindow):
+ (WTR::PlatformWebView::removeFromWindow):
+ (WTR::PlatformWebView::setWindowIsKey):
+ (WTR::PlatformWebView::makeWebViewFirstResponder):
+ (WTR::generateCairoSurfaceFromBitmap):
+ (WTR::PlatformWebView::windowSnapshotImage):
+ (WTR::PlatformWebView::changeWindowScaleIfNeeded):
+ (WTR::PlatformWebView::setNavigationGesturesEnabled):
+ (WTR::PlatformWebView::forceWindowFramesChanged):
+ (WTR::PlatformWebView::drawsBackground const):
+ (WTR::PlatformWebView::setDrawsBackground):
+ * WebKitTestRunner/win/TestControllerWin.cpp: Added.
+ (WTR::exceptionFilter):
+ (WTR::runRunLoopUntil):
+ (WTR::TestController::notifyDone):
+ (WTR::TestController::setHidden):
+ (WTR::TestController::platformInitialize):
+ (WTR::TestController::platformPreferences):
+ (WTR::TestController::platformDestroy):
+ (WTR::toWK):
+ (WTR::TestController::platformInitializeContext):
+ (WTR::TestController::platformRunUntil):
+ (WTR::TestController::platformDidCommitLoadForFrame):
+ (WTR::TestController::initializeInjectedBundlePath):
+ (WTR::TestController::initializeTestPluginDirectory):
+ (WTR::TestController::runModal):
+ (WTR::TestController::platformContext):
+ (WTR::TestController::platformLibraryPathForTesting):
+ (WTR::TestController::platformConfigureViewForTest):
+ (WTR::TestController::platformResetPreferencesToConsistentValues):
+ (WTR::TestController::updatePlatformSpecificTestOptionsForTest const):
+ * WebKitTestRunner/win/WebKitTestRunnerPrefix.cpp: Added.
+ * WebKitTestRunner/win/main.cpp: Copied from Tools/WebKitTestRunner/InjectedBundle/InjectedBundleMain.cpp.
+ (dllLauncherEntryPoint):
+
2018-11-12 Alicia Boya GarcĂa <ab...@igalia.com>
[MSE][GStreamer] Introduce AbortableTaskQueue
Modified: trunk/Tools/PlatformWin.cmake (238097 => 238098)
--- trunk/Tools/PlatformWin.cmake 2018-11-12 18:55:17 UTC (rev 238097)
+++ trunk/Tools/PlatformWin.cmake 2018-11-12 18:58:01 UTC (rev 238098)
@@ -4,3 +4,7 @@
if (ENABLE_WEBKIT_LEGACY)
add_subdirectory(MiniBrowser/win)
endif ()
+
+if (ENABLE_WEBKIT)
+ add_subdirectory(WebKitTestRunner)
+endif ()
Modified: trunk/Tools/Scripts/build-webkittestrunner (238097 => 238098)
--- trunk/Tools/Scripts/build-webkittestrunner 2018-11-12 18:55:17 UTC (rev 238097)
+++ trunk/Tools/Scripts/build-webkittestrunner 2018-11-12 18:58:01 UTC (rev 238098)
@@ -62,8 +62,8 @@
my $result;
if (isAppleCocoaWebKit()) {
$result = buildXCodeProject("WebKitTestRunner", $clean, XcodeOptions(), @ARGV);
-} elsif (isGtk() || isWPE() || isPlayStation()) {
- # GTK+, WPE, and PlayStation build everything in one shot. No need to build anything here.
+} elsif (isGtk() || isWPE() || isPlayStation() || isAnyWindows()) {
+ # GTK+, WPE, PlayStation, and Windows build everything in one shot. No need to build anything here.
$result = 0;
} else {
die "WebKitTestRunner is not supported on this platform.\n";
Modified: trunk/Tools/WebKitTestRunner/CMakeLists.txt (238097 => 238098)
--- trunk/Tools/WebKitTestRunner/CMakeLists.txt 2018-11-12 18:55:17 UTC (rev 238097)
+++ trunk/Tools/WebKitTestRunner/CMakeLists.txt 2018-11-12 18:58:01 UTC (rev 238098)
@@ -129,6 +129,9 @@
WEBKIT_ADD_TARGET_CXX_FLAGS(WebKitTestRunner -Wno-unused-parameter)
endif ()
-if (NOT APPLE)
+if (WIN32)
+ add_dependencies(WebKitTestRunnerLib WebKitTestRunnerBindings)
+ add_dependencies(WebKitTestRunner WebKitTestRunnerLib)
+elseif (NOT APPLE)
add_dependencies(WebKit ${ForwardingHeadersForWebKitTestRunner_NAME})
endif ()
Modified: trunk/Tools/WebKitTestRunner/EventSenderProxy.h (238097 => 238098)
--- trunk/Tools/WebKitTestRunner/EventSenderProxy.h 2018-11-12 18:55:17 UTC (rev 238097)
+++ trunk/Tools/WebKitTestRunner/EventSenderProxy.h 2018-11-12 18:58:01 UTC (rev 238098)
@@ -24,8 +24,7 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef EventSenderProxy_h
-#define EventSenderProxy_h
+#pragma once
#include <wtf/Deque.h>
#include <wtf/HashMap.h>
@@ -144,9 +143,10 @@
uint32_t m_mouseButtonsCurrentlyDown { 0 };
Vector<struct wpe_input_touch_event_raw> m_touchEvents;
HashSet<unsigned, DefaultHash<unsigned>::Hash, WTF::UnsignedWithZeroKeyHashTraits<unsigned>> m_updatedTouchEvents;
+#elif PLATFORM(WIN)
+ uint32_t m_buttonState;
+ uint32_t m_mouseButtonsCurrentlyDown { 0 };
#endif
};
} // namespace WTR
-
-#endif // EventSenderProxy_h
Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityController.cpp (238097 => 238098)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityController.cpp 2018-11-12 18:55:17 UTC (rev 238097)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityController.cpp 2018-11-12 18:58:01 UTC (rev 238098)
@@ -70,7 +70,7 @@
return WKAccessibilityEnhancedAccessibilityEnabled();
}
-#if !PLATFORM(GTK) && !PLATFORM(WPE)
+#if PLATFORM(COCOA)
Ref<AccessibilityUIElement> AccessibilityController::rootElement()
{
WKBundlePageRef page = InjectedBundle::singleton().page()->page();
@@ -100,4 +100,3 @@
#endif
} // namespace WTR
-
Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp (238097 => 238098)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp 2018-11-12 18:55:17 UTC (rev 238097)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp 2018-11-12 18:58:01 UTC (rev 238098)
@@ -79,7 +79,7 @@
#endif
// Unsupported methods on various platforms. As they're implemented on other platforms this list should be modified.
-#if (!PLATFORM(GTK) && !PLATFORM(WPE)) || !HAVE(ACCESSIBILITY)
+#if PLATFORM(COCOA) || !HAVE(ACCESSIBILITY)
JSRetainPtr<JSStringRef> AccessibilityUIElement::characterAtOffset(int) { return nullptr; }
JSRetainPtr<JSStringRef> AccessibilityUIElement::wordAtOffset(int) { return nullptr; }
JSRetainPtr<JSStringRef> AccessibilityUIElement::lineAtOffset(int) { return nullptr; }
@@ -107,4 +107,3 @@
#endif
} // namespace WTR
-
Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h (238097 => 238098)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h 2018-11-12 18:55:17 UTC (rev 238097)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h 2018-11-12 18:58:01 UTC (rev 238098)
@@ -362,10 +362,8 @@
void getUIElementsWithAttribute(JSStringRef, Vector<RefPtr<AccessibilityUIElement> >&) const;
#endif
-#if PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE)
void getChildren(Vector<RefPtr<AccessibilityUIElement> >&);
void getChildrenWithRange(Vector<RefPtr<AccessibilityUIElement> >&, unsigned location, unsigned length);
-#endif
#if PLATFORM(GTK)
RefPtr<AccessibilityNotificationHandler> m_notificationHandler;
Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundleMain.cpp (238097 => 238098)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundleMain.cpp 2018-11-12 18:55:17 UTC (rev 238097)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundleMain.cpp 2018-11-12 18:58:01 UTC (rev 238098)
@@ -24,11 +24,15 @@
*/
#include "config.h"
+#include "InjectedBundle.h"
-#include "InjectedBundle.h"
#include <WebKit/WKBundleInitialize.h>
+#if defined(WIN32)
+extern "C" __declspec(dllexport)
+#else
extern "C"
+#endif
void WKBundleInitialize(WKBundleRef bundle, WKTypeRef initializationUserData)
{
WTR::InjectedBundle::singleton().initialize(bundle, initializationUserData);
Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp (238097 => 238098)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp 2018-11-12 18:55:17 UTC (rev 238097)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp 2018-11-12 18:58:01 UTC (rev 238098)
@@ -50,7 +50,7 @@
#include <wtf/text/CString.h>
#include <wtf/text/StringBuilder.h>
-#if USE(CF)
+#if USE(CF) && !PLATFORM(WIN_CAIRO)
#include "WebArchiveDumpSupport.h"
#endif
@@ -123,7 +123,7 @@
{
if (!rangeRef)
return "(null)";
-
+
WKBundleFrameRef frame = WKBundlePageGetMainFrame(page);
JSGlobalContextRef context = WKBundleFrameGetJavaScriptContextForWorld(frame, world);
@@ -879,7 +879,7 @@
void InjectedBundlePage::dumpDOMAsWebArchive(WKBundleFrameRef frame, StringBuilder& stringBuilder)
{
-#if USE(CF)
+#if USE(CF) && !PLATFORM(WIN_CAIRO)
WKRetainPtr<WKDataRef> wkData = adoptWK(WKBundleFrameCopyWebArchive(frame));
RetainPtr<CFDataRef> cfData = adoptCF(CFDataCreate(0, WKDataGetBytes(wkData.get()), WKDataGetSize(wkData.get())));
RetainPtr<CFStringRef> cfString = adoptCF(WebCoreTestSupport::createXMLStringFromWebArchiveData(cfData.get()));
Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp (238097 => 238098)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp 2018-11-12 18:55:17 UTC (rev 238097)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp 2018-11-12 18:58:01 UTC (rev 238098)
@@ -93,7 +93,7 @@
, m_databaseMaxQuota(-1)
, m_userStyleSheetEnabled(false)
, m_userStyleSheetLocation(adoptWK(WKStringCreateWithUTF8CString("")))
-#if PLATFORM(GTK) || PLATFORM(WPE)
+#if !PLATFORM(COCOA)
, m_waitToDumpWatchdogTimer(RunLoop::main(), this, &TestRunner::waitToDumpWatchdogTimerFired)
#endif
{
Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h (238097 => 238098)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h 2018-11-12 18:55:17 UTC (rev 238097)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h 2018-11-12 18:58:01 UTC (rev 238098)
@@ -40,7 +40,7 @@
#include <wtf/RetainPtr.h>
#include <CoreFoundation/CFRunLoop.h>
typedef RetainPtr<CFRunLoopTimerRef> PlatformTimerRef;
-#elif PLATFORM(GTK) || PLATFORM(WPE)
+#else
#include <wtf/RunLoop.h>
namespace WTR {
class TestRunner;
Added: trunk/Tools/WebKitTestRunner/InjectedBundle/win/AccessibilityControllerWin.cpp (0 => 238098)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/win/AccessibilityControllerWin.cpp (rev 0)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/win/AccessibilityControllerWin.cpp 2018-11-12 18:58:01 UTC (rev 238098)
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2018 Sony Interactive Entertainment Inc.
+ *
+ * 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. ``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
+ * 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 "AccessibilityController.h"
+
+#if HAVE(ACCESSIBILITY)
+
+#include <WebCore/NotImplemented.h>
+
+namespace WTR {
+
+void AccessibilityController::resetToConsistentState()
+{
+ notImplemented();
+}
+
+RefPtr<AccessibilityUIElement> AccessibilityController::accessibleElementById(JSStringRef id)
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityController::platformName()
+{
+ notImplemented();
+ return nullptr;
+}
+
+Ref<AccessibilityUIElement> AccessibilityController::rootElement()
+{
+ notImplemented();
+ return AccessibilityUIElement::create(nullptr);
+}
+
+Ref<AccessibilityUIElement> AccessibilityController::focusedElement()
+{
+ notImplemented();
+ return AccessibilityUIElement::create(nullptr);
+}
+
+bool AccessibilityController::addNotificationListener(JSValueRef)
+{
+ notImplemented();
+ return false;
+}
+
+bool AccessibilityController::removeNotificationListener()
+{
+ notImplemented();
+ return false;
+}
+
+} // namespace WTR
+
+#endif // HAVE(ACCESSIBILITY)
Added: trunk/Tools/WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp (0 => 238098)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp (rev 0)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp 2018-11-12 18:58:01 UTC (rev 238098)
@@ -0,0 +1,978 @@
+/*
+ * Copyright (C) 2018 Sony Interactive Entertainment Inc.
+ *
+ * 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. ``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
+ * 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 "AccessibilityUIElement.h"
+
+#if HAVE(ACCESSIBILITY)
+
+#include <WebCore/NotImplemented.h>
+
+namespace WTR {
+
+AccessibilityUIElement::AccessibilityUIElement(PlatformUIElement)
+{
+ notImplemented();
+}
+
+AccessibilityUIElement::AccessibilityUIElement(const AccessibilityUIElement&)
+{
+ notImplemented();
+}
+
+AccessibilityUIElement::~AccessibilityUIElement()
+{
+ notImplemented();
+}
+
+bool AccessibilityUIElement::isEqual(AccessibilityUIElement*)
+{
+ notImplemented();
+ return false;
+}
+
+void AccessibilityUIElement::getChildren(Vector<RefPtr<AccessibilityUIElement>>&)
+{
+ notImplemented();
+}
+
+void AccessibilityUIElement::getChildrenWithRange(Vector<RefPtr<AccessibilityUIElement>>&, unsigned, unsigned)
+{
+ notImplemented();
+}
+
+int AccessibilityUIElement::childrenCount()
+{
+ notImplemented();
+ return 0;
+}
+
+RefPtr<AccessibilityUIElement> AccessibilityUIElement::elementAtPoint(int, int)
+{
+ notImplemented();
+ return nullptr;
+}
+
+unsigned AccessibilityUIElement::indexOfChild(AccessibilityUIElement*)
+{
+ notImplemented();
+ return 0;
+}
+
+
+RefPtr<AccessibilityUIElement> AccessibilityUIElement::childAtIndex(unsigned)
+{
+ notImplemented();
+ return nullptr;
+}
+
+RefPtr<AccessibilityUIElement> AccessibilityUIElement::linkedUIElementAtIndex(unsigned)
+{
+ notImplemented();
+ return nullptr;
+}
+
+RefPtr<AccessibilityUIElement> AccessibilityUIElement::ariaOwnsElementAtIndex(unsigned)
+{
+ notImplemented();
+ return nullptr;
+}
+
+RefPtr<AccessibilityUIElement> AccessibilityUIElement::ariaFlowToElementAtIndex(unsigned)
+{
+ notImplemented();
+ return nullptr;
+}
+
+RefPtr<AccessibilityUIElement> AccessibilityUIElement::ariaControlsElementAtIndex(unsigned)
+{
+ notImplemented();
+ return nullptr;
+}
+
+RefPtr<AccessibilityUIElement> AccessibilityUIElement::disclosedRowAtIndex(unsigned)
+{
+ notImplemented();
+ return nullptr;
+}
+
+RefPtr<AccessibilityUIElement> AccessibilityUIElement::rowAtIndex(unsigned)
+{
+ notImplemented();
+ return nullptr;
+}
+
+RefPtr<AccessibilityUIElement> AccessibilityUIElement::selectedChildAtIndex(unsigned) const
+{
+ notImplemented();
+ return nullptr;
+}
+
+unsigned AccessibilityUIElement::selectedChildrenCount() const
+{
+ notImplemented();
+ return 0;
+}
+
+RefPtr<AccessibilityUIElement> AccessibilityUIElement::selectedRowAtIndex(unsigned)
+{
+ notImplemented();
+ return nullptr;
+}
+
+RefPtr<AccessibilityUIElement> AccessibilityUIElement::titleUIElement()
+{
+ notImplemented();
+ return nullptr;
+}
+
+RefPtr<AccessibilityUIElement> AccessibilityUIElement::parentElement()
+{
+ notImplemented();
+ return nullptr;
+}
+
+RefPtr<AccessibilityUIElement> AccessibilityUIElement::disclosedByRow()
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::attributesOfLinkedUIElements()
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::attributesOfDocumentLinks()
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::attributesOfChildren()
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::allAttributes()
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::stringAttributeValue(JSStringRef)
+{
+ notImplemented();
+ return nullptr;
+}
+
+double AccessibilityUIElement::numberAttributeValue(JSStringRef attribute)
+{
+ notImplemented();
+ return 0;
+}
+
+JSValueRef AccessibilityUIElement::uiElementArrayAttributeValue(JSStringRef attribute) const
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSValueRef AccessibilityUIElement::rowHeaders() const
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSValueRef AccessibilityUIElement::columnHeaders() const
+{
+ notImplemented();
+ return nullptr;
+}
+
+RefPtr<AccessibilityUIElement> AccessibilityUIElement::uiElementAttributeValue(JSStringRef attribute) const
+{
+ notImplemented();
+ return nullptr;
+}
+
+bool AccessibilityUIElement::boolAttributeValue(JSStringRef attribute)
+{
+ notImplemented();
+ return false;
+}
+
+bool AccessibilityUIElement::isAttributeSettable(JSStringRef attribute)
+{
+ notImplemented();
+ return false;
+}
+
+bool AccessibilityUIElement::isAttributeSupported(JSStringRef attribute)
+{
+ notImplemented();
+ return false;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::parameterizedAttributeNames()
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::role()
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::subrole()
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::roleDescription()
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::computedRoleString()
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::title()
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::description()
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::orientation() const
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::stringValue()
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::language()
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::helpText() const
+{
+ notImplemented();
+ return nullptr;
+}
+
+double AccessibilityUIElement::x()
+{
+ notImplemented();
+ return 0;
+}
+
+double AccessibilityUIElement::y()
+{
+ notImplemented();
+ return 0;
+}
+
+double AccessibilityUIElement::width()
+{
+ notImplemented();
+ return 0;
+}
+
+double AccessibilityUIElement::height()
+{
+ notImplemented();
+ return 0;
+}
+
+double AccessibilityUIElement::clickPointX()
+{
+ notImplemented();
+ return 0;
+}
+
+double AccessibilityUIElement::clickPointY()
+{
+ notImplemented();
+ return 0;
+}
+
+double AccessibilityUIElement::intValue() const
+{
+ notImplemented();
+ return 0;
+}
+
+double AccessibilityUIElement::minValue()
+{
+ notImplemented();
+ return 0;
+}
+
+double AccessibilityUIElement::maxValue()
+{
+ notImplemented();
+ return 0;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::valueDescription()
+{
+ notImplemented();
+ return nullptr;
+}
+
+int AccessibilityUIElement::insertionPointLineNumber()
+{
+ notImplemented();
+ return 0;
+}
+
+bool AccessibilityUIElement::isPressActionSupported()
+{
+ notImplemented();
+ return false;
+}
+
+bool AccessibilityUIElement::isIncrementActionSupported()
+{
+ notImplemented();
+ return false;
+}
+
+bool AccessibilityUIElement::isDecrementActionSupported()
+{
+ notImplemented();
+ return false;
+}
+
+bool AccessibilityUIElement::isEnabled()
+{
+ notImplemented();
+ return false;
+}
+
+bool AccessibilityUIElement::isRequired() const
+{
+ notImplemented();
+ return false;
+}
+
+bool AccessibilityUIElement::isFocused() const
+{
+ notImplemented();
+ return false;
+}
+
+bool AccessibilityUIElement::isSelected() const
+{
+ notImplemented();
+ return false;
+}
+
+bool AccessibilityUIElement::isSelectedOptionActive() const
+{
+ notImplemented();
+ return false;
+}
+
+bool AccessibilityUIElement::isExpanded() const
+{
+ notImplemented();
+ return false;
+}
+
+bool AccessibilityUIElement::isChecked() const
+{
+ notImplemented();
+ return false;
+}
+
+bool AccessibilityUIElement::isIndeterminate() const
+{
+ notImplemented();
+ return false;
+}
+
+int AccessibilityUIElement::hierarchicalLevel() const
+{
+ notImplemented();
+ return 0;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::speakAs()
+{
+ notImplemented();
+ return nullptr;
+}
+
+bool AccessibilityUIElement::ariaIsGrabbed() const
+{
+ notImplemented();
+ return false;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::ariaDropEffects() const
+{
+ notImplemented();
+ return nullptr;
+}
+
+int AccessibilityUIElement::lineForIndex(int)
+{
+ notImplemented();
+ return 0;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::rangeForLine(int)
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::rangeForPosition(int, int)
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::boundsForRange(unsigned, unsigned)
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::stringForRange(unsigned, unsigned)
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::attributedStringForRange(unsigned, unsigned)
+{
+ notImplemented();
+ return nullptr;
+}
+
+bool AccessibilityUIElement::attributedStringRangeIsMisspelled(unsigned, unsigned)
+{
+ notImplemented();
+ return false;
+}
+
+unsigned AccessibilityUIElement::uiElementCountForSearchPredicate(JSContextRef, AccessibilityUIElement*, bool, JSValueRef, JSStringRef, bool, bool)
+{
+ notImplemented();
+ return 0;
+}
+
+RefPtr<AccessibilityUIElement> AccessibilityUIElement::uiElementForSearchPredicate(JSContextRef, AccessibilityUIElement*, bool, JSValueRef, JSStringRef, bool, bool)
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::selectTextWithCriteria(JSContextRef, JSStringRef, JSValueRef, JSStringRef, JSStringRef)
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::attributesOfColumnHeaders()
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::attributesOfRowHeaders()
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::attributesOfColumns()
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::attributesOfRows()
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::attributesOfVisibleCells()
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::attributesOfHeader()
+{
+ notImplemented();
+ return nullptr;
+}
+
+int AccessibilityUIElement::rowCount()
+{
+ notImplemented();
+ return 0;
+}
+
+int AccessibilityUIElement::columnCount()
+{
+ notImplemented();
+ return 0;
+}
+
+int AccessibilityUIElement::indexInTable()
+{
+ notImplemented();
+ return 0;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::rowIndexRange()
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::columnIndexRange()
+{
+ notImplemented();
+ return nullptr;
+}
+
+RefPtr<AccessibilityUIElement> AccessibilityUIElement::cellForColumnAndRow(unsigned, unsigned)
+{
+ notImplemented();
+ return nullptr;
+}
+
+RefPtr<AccessibilityUIElement> AccessibilityUIElement::horizontalScrollbar() const
+{
+ notImplemented();
+ return nullptr;
+}
+
+RefPtr<AccessibilityUIElement> AccessibilityUIElement::verticalScrollbar() const
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::selectedTextRange()
+{
+ notImplemented();
+ return nullptr;
+}
+
+bool AccessibilityUIElement::setSelectedTextRange(unsigned, unsigned)
+{
+ notImplemented();
+ return false;
+}
+
+void AccessibilityUIElement::increment()
+{
+ notImplemented();
+}
+
+void AccessibilityUIElement::decrement()
+{
+ notImplemented();
+}
+
+void AccessibilityUIElement::showMenu()
+{
+ notImplemented();
+}
+
+void AccessibilityUIElement::press()
+{
+ notImplemented();
+}
+
+void AccessibilityUIElement::setSelectedChild(AccessibilityUIElement* element) const
+{
+ notImplemented();
+}
+
+void AccessibilityUIElement::setSelectedChildAtIndex(unsigned index) const
+{
+ notImplemented();
+}
+
+void AccessibilityUIElement::removeSelectionAtIndex(unsigned index) const
+{
+ notImplemented();
+}
+
+void AccessibilityUIElement::clearSelectedChildren() const
+{
+ notImplemented();
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::accessibilityValue() const
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::documentEncoding()
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::documentURI()
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::url()
+{
+ notImplemented();
+ return nullptr;
+}
+
+bool AccessibilityUIElement::addNotificationListener(JSValueRef functionCallback)
+{
+ notImplemented();
+ return false;
+}
+
+bool AccessibilityUIElement::removeNotificationListener()
+{
+ notImplemented();
+ return false;
+}
+
+bool AccessibilityUIElement::isFocusable() const
+{
+ notImplemented();
+ return false;
+}
+
+bool AccessibilityUIElement::isSelectable() const
+{
+ notImplemented();
+ return false;
+}
+
+bool AccessibilityUIElement::isMultiSelectable() const
+{
+ notImplemented();
+ return false;
+}
+
+bool AccessibilityUIElement::isVisible() const
+{
+ notImplemented();
+ return false;
+}
+
+bool AccessibilityUIElement::isOffScreen() const
+{
+ notImplemented();
+ return false;
+}
+
+bool AccessibilityUIElement::isCollapsed() const
+{
+ notImplemented();
+ return false;
+}
+
+bool AccessibilityUIElement::isIgnored() const
+{
+ notImplemented();
+ return false;
+}
+
+bool AccessibilityUIElement::isSingleLine() const
+{
+ notImplemented();
+ return false;
+}
+
+bool AccessibilityUIElement::isMultiLine() const
+{
+ notImplemented();
+ return false;
+}
+
+bool AccessibilityUIElement::hasPopup() const
+{
+ notImplemented();
+ return false;
+}
+
+void AccessibilityUIElement::takeFocus()
+{
+ notImplemented();
+}
+
+void AccessibilityUIElement::takeSelection()
+{
+ notImplemented();
+}
+
+void AccessibilityUIElement::addSelection()
+{
+ notImplemented();
+}
+
+void AccessibilityUIElement::removeSelection()
+{
+ notImplemented();
+}
+
+RefPtr<AccessibilityTextMarkerRange> AccessibilityUIElement::lineTextMarkerRangeForTextMarker(AccessibilityTextMarker*)
+{
+ notImplemented();
+ return nullptr;
+}
+
+RefPtr<AccessibilityTextMarkerRange> AccessibilityUIElement::textMarkerRangeForElement(AccessibilityUIElement*)
+{
+ notImplemented();
+ return nullptr;
+}
+
+int AccessibilityUIElement::textMarkerRangeLength(AccessibilityTextMarkerRange*)
+{
+ notImplemented();
+ return 0;
+}
+
+RefPtr<AccessibilityTextMarker> AccessibilityUIElement::previousTextMarker(AccessibilityTextMarker*)
+{
+ notImplemented();
+ return nullptr;
+}
+
+RefPtr<AccessibilityTextMarker> AccessibilityUIElement::nextTextMarker(AccessibilityTextMarker*)
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::stringForTextMarkerRange(AccessibilityTextMarkerRange*)
+{
+ notImplemented();
+ return nullptr;
+}
+
+RefPtr<AccessibilityTextMarkerRange> AccessibilityUIElement::textMarkerRangeForMarkers(AccessibilityTextMarker*, AccessibilityTextMarker*)
+{
+ notImplemented();
+ return nullptr;
+}
+
+RefPtr<AccessibilityTextMarker> AccessibilityUIElement::startTextMarkerForTextMarkerRange(AccessibilityTextMarkerRange*)
+{
+ notImplemented();
+ return nullptr;
+}
+
+RefPtr<AccessibilityTextMarker> AccessibilityUIElement::endTextMarkerForTextMarkerRange(AccessibilityTextMarkerRange*)
+{
+ notImplemented();
+ return nullptr;
+}
+
+RefPtr<AccessibilityTextMarker> AccessibilityUIElement::endTextMarkerForBounds(int, int, int, int)
+{
+ notImplemented();
+ return nullptr;
+}
+
+RefPtr<AccessibilityTextMarker> AccessibilityUIElement::startTextMarkerForBounds(int, int, int, int)
+{
+ notImplemented();
+ return nullptr;
+}
+
+RefPtr<AccessibilityTextMarker> AccessibilityUIElement::textMarkerForPoint(int, int)
+{
+ notImplemented();
+ return nullptr;
+}
+
+RefPtr<AccessibilityUIElement> AccessibilityUIElement::accessibilityElementForTextMarker(AccessibilityTextMarker*)
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::attributedStringForTextMarkerRange(AccessibilityTextMarkerRange*)
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::attributedStringForTextMarkerRangeWithOptions(AccessibilityTextMarkerRange*, bool)
+{
+ notImplemented();
+ return nullptr;
+}
+
+bool AccessibilityUIElement::attributedStringForTextMarkerRangeContainsAttribute(JSStringRef, AccessibilityTextMarkerRange*)
+{
+ notImplemented();
+ return false;
+}
+
+int AccessibilityUIElement::indexForTextMarker(AccessibilityTextMarker*)
+{
+ notImplemented();
+ return 0;
+}
+
+bool AccessibilityUIElement::isTextMarkerValid(AccessibilityTextMarker*)
+{
+ notImplemented();
+ return false;
+}
+
+RefPtr<AccessibilityTextMarker> AccessibilityUIElement::textMarkerForIndex(int)
+{
+ notImplemented();
+ return nullptr;
+}
+
+RefPtr<AccessibilityTextMarker> AccessibilityUIElement::startTextMarker()
+{
+ notImplemented();
+ return nullptr;
+}
+
+RefPtr<AccessibilityTextMarker> AccessibilityUIElement::endTextMarker()
+{
+ notImplemented();
+ return nullptr;
+}
+
+bool AccessibilityUIElement::setSelectedVisibleTextRange(AccessibilityTextMarkerRange*)
+{
+ notImplemented();
+ return false;
+}
+
+void AccessibilityUIElement::scrollToMakeVisible()
+{
+ notImplemented();
+}
+
+void AccessibilityUIElement::scrollToGlobalPoint(int, int)
+{
+ notImplemented();
+}
+
+void AccessibilityUIElement::scrollToMakeVisibleWithSubFocus(int, int, int, int)
+{
+ notImplemented();
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::supportedActions() const
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::pathDescription() const
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::mathPostscriptsDescription() const
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::mathPrescriptsDescription() const
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::classList() const
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::characterAtOffset(int)
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::wordAtOffset(int)
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::lineAtOffset(int)
+{
+ notImplemented();
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::sentenceAtOffset(int)
+{
+ notImplemented();
+ return nullptr;
+}
+
+} // namespace WTF
+
+#endif // HAVE(ACCESSIBILITY)
Copied: trunk/Tools/WebKitTestRunner/InjectedBundle/win/ActivateFontsWin.cpp (from rev 238097, trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundleMain.cpp) (0 => 238098)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/win/ActivateFontsWin.cpp (rev 0)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/win/ActivateFontsWin.cpp 2018-11-12 18:58:01 UTC (rev 238098)
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2014 Igalia S.L.
+ *
+ * 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 "ActivateFonts.h"
+
+namespace WTR {
+
+void activateFonts()
+{
+}
+
+void installFakeHelvetica(WKStringRef)
+{
+}
+
+void uninstallFakeHelvetica()
+{
+}
+
+} // namespace WTR
Copied: trunk/Tools/WebKitTestRunner/InjectedBundle/win/InjectedBundleWin.cpp (from rev 238097, trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundleMain.cpp) (0 => 238098)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/win/InjectedBundleWin.cpp (rev 0)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/win/InjectedBundleWin.cpp 2018-11-12 18:58:01 UTC (rev 238098)
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2014 Igalia S.L.
+ *
+ * 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 "InjectedBundle.h"
+
+namespace WTR {
+
+void InjectedBundle::platformInitialize(WKTypeRef)
+{
+}
+
+} // namespace WTR
Added: trunk/Tools/WebKitTestRunner/InjectedBundle/win/TestRunnerInjectedBundlePrefix.cpp (0 => 238098)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/win/TestRunnerInjectedBundlePrefix.cpp (rev 0)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/win/TestRunnerInjectedBundlePrefix.cpp 2018-11-12 18:58:01 UTC (rev 238098)
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ * Copyright (C) 2018 Sony Interactive Entertainment Inc.
+ *
+ * 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.
+ * 3. Neither the name of Apple Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE 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 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 "TestRunnerInjectedBundlePrefix.h"
Copied: trunk/Tools/WebKitTestRunner/InjectedBundle/win/TestRunnerInjectedBundlePrefix.h (from rev 238097, trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundleMain.cpp) (0 => 238098)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/win/TestRunnerInjectedBundlePrefix.h (rev 0)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/win/TestRunnerInjectedBundlePrefix.h 2018-11-12 18:58:01 UTC (rev 238098)
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2010 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.
+ */
+
+#undef WEBCORE_EXPORT
+#define WEBCORE_EXPORT WTF_IMPORT_DECLARATION
Copied: trunk/Tools/WebKitTestRunner/InjectedBundle/win/TestRunnerWin.cpp (from rev 238097, trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundleMain.cpp) (0 => 238098)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/win/TestRunnerWin.cpp (rev 0)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/win/TestRunnerWin.cpp 2018-11-12 18:58:01 UTC (rev 238098)
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2014 Igalia S.L.
+ *
+ * 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 "TestRunner.h"
+
+#include "ActivateFonts.h"
+
+namespace WTR {
+
+JSRetainPtr<JSStringRef> TestRunner::pathToLocalResource(JSStringRef)
+{
+ return nullptr;
+}
+
+JSRetainPtr<JSStringRef> TestRunner::inspectorTestStubURL()
+{
+ return JSStringCreateWithUTF8CString("");
+}
+
+void TestRunner::invalidateWaitToDumpWatchdogTimer()
+{
+ m_waitToDumpWatchdogTimer.stop();
+}
+
+void TestRunner::platformInitialize()
+{
+}
+
+void TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded()
+{
+ if (!m_waitToDumpWatchdogTimer.isActive())
+ m_waitToDumpWatchdogTimer.startOneShot(m_timeout);
+}
+
+void TestRunner::installFakeHelvetica(JSStringRef configuration)
+{
+ WTR::installFakeHelvetica(toWK(configuration).get());
+}
+
+} // namespace WTR
Modified: trunk/Tools/WebKitTestRunner/PlatformWebView.h (238097 => 238098)
--- trunk/Tools/WebKitTestRunner/PlatformWebView.h 2018-11-12 18:55:17 UTC (rev 238097)
+++ trunk/Tools/WebKitTestRunner/PlatformWebView.h 2018-11-12 18:58:01 UTC (rev 238098)
@@ -23,8 +23,7 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef PlatformWebView_h
-#define PlatformWebView_h
+#pragma once
#include "TestOptions.h"
@@ -49,7 +48,6 @@
typedef struct _GtkWidget GtkWidget;
typedef WKViewRef PlatformWKView;
typedef GtkWidget* PlatformWindow;
-typedef cairo_surface_t *PlatformImage;
#elif PLATFORM(WPE)
namespace WPEToolingBackends {
class HeadlessViewBackend;
@@ -56,6 +54,14 @@
}
typedef WKViewRef PlatformWKView;
typedef WPEToolingBackends::HeadlessViewBackend* PlatformWindow;
+#elif PLATFORM(WIN)
+#include <cairo.h>
+class TestRunnerWindow;
+typedef HWND PlatformWindow;
+typedef WKViewRef PlatformWKView;
+#endif
+
+#if USE(CAIRO)
typedef cairo_surface_t* PlatformImage;
#endif
@@ -125,5 +131,3 @@
};
} // namespace WTR
-
-#endif // PlatformWebView_h
Added: trunk/Tools/WebKitTestRunner/PlatformWin.cmake (0 => 238098)
--- trunk/Tools/WebKitTestRunner/PlatformWin.cmake (rev 0)
+++ trunk/Tools/WebKitTestRunner/PlatformWin.cmake 2018-11-12 18:58:01 UTC (rev 238098)
@@ -0,0 +1,85 @@
+set(WebKitTestRunnerLib_SOURCES
+ ${WebKitTestRunner_SOURCES}
+ ${WEBKIT_TESTRUNNER_DIR}/cairo/TestInvocationCairo.cpp
+ win/EventSenderProxyWin.cpp
+ win/PlatformWebViewWin.cpp
+ win/TestControllerWin.cpp
+ win/main.cpp
+)
+
+set(WebKitTestRunner_SOURCES
+ ${TOOLS_DIR}/win/DLLLauncher/DLLLauncherMain.cpp
+)
+
+list(APPEND WebKitTestRunnerInjectedBundle_SOURCES
+ ${WEBKIT_TESTRUNNER_INJECTEDBUNDLE_DIR}/win/ActivateFontsWin.cpp
+ ${WEBKIT_TESTRUNNER_INJECTEDBUNDLE_DIR}/win/InjectedBundleWin.cpp
+ ${WEBKIT_TESTRUNNER_INJECTEDBUNDLE_DIR}/win/TestRunnerWin.cpp
+ ${WEBKIT_TESTRUNNER_INJECTEDBUNDLE_DIR}/win/AccessibilityControllerWin.cpp
+ ${WEBKIT_TESTRUNNER_INJECTEDBUNDLE_DIR}/win/AccessibilityUIElementWin.cpp
+)
+
+
+list(APPEND WebKitTestRunner_INCLUDE_DIRECTORIES
+ cairo
+ win
+ ${CAIRO_INCLUDE_DIRS}
+ ${FORWARDING_HEADERS_DIR}
+ ${WEBKIT_TESTRUNNER_INJECTEDBUNDLE_DIR}/win
+)
+
+
+set(WebKitTestRunnerLib_LIBRARIES
+ ${WebKitTestRunner_LIBRARIES}
+ Comsuppw
+ Oleacc
+)
+
+list(APPEND WebKitTestRunner_LIBRARIES
+ WTF
+ WebKit
+)
+
+set(WebKitTestRunnerInjectedBundle_LIBRARIES
+ WebCoreTestSupport
+ WebKit
+)
+
+
+list(REMOVE_ITEM
+ WebKitTestRunnerLib_SOURCES
+ ${WEBKIT_TESTRUNNER_BINDINGS_DIR}/JSWrapper.cpp
+)
+list(REMOVE_ITEM
+ WebKitTestRunnerInjectedBundle_SOURCES
+ ${WEBKIT_TESTRUNNER_BINDINGS_DIR}/JSWrapper.cpp
+)
+
+WEBKIT_ADD_PRECOMPILED_HEADER(WebKitTestRunnerPrefix.h
+ ${WEBKIT_TESTRUNNER_DIR}/win/WebKitTestRunnerPrefix.cpp
+ WebKitTestRunnerLib_SOURCES
+)
+WEBKIT_ADD_PRECOMPILED_HEADER(TestRunnerInjectedBundlePrefix.h
+ ${WEBKIT_TESTRUNNER_INJECTEDBUNDLE_DIR}/win/TestRunnerInjectedBundlePrefix.cpp
+ WebKitTestRunnerInjectedBundle_SOURCES
+)
+
+list(APPEND
+ WebKitTestRunnerLib_SOURCES
+ ${WEBKIT_TESTRUNNER_BINDINGS_DIR}/JSWrapper.cpp
+)
+list(APPEND
+ WebKitTestRunnerInjectedBundle_SOURCES
+ ${WEBKIT_TESTRUNNER_BINDINGS_DIR}/JSWrapper.cpp
+)
+
+
+set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${MSVC_RUNTIME_LINKER_FLAGS}")
+add_library(WebKitTestRunnerLib SHARED ${WebKitTestRunnerLib_SOURCES})
+target_link_libraries(WebKitTestRunnerLib ${WebKitTestRunnerLib_LIBRARIES})
+
+add_definitions(
+ -DWIN_CAIRO
+ -DUSE_CONSOLE_ENTRY_POINT
+ -D_UNICODE
+)
Modified: trunk/Tools/WebKitTestRunner/TestController.cpp (238097 => 238098)
--- trunk/Tools/WebKitTestRunner/TestController.cpp 2018-11-12 18:55:17 UTC (rev 238097)
+++ trunk/Tools/WebKitTestRunner/TestController.cpp 2018-11-12 18:58:01 UTC (rev 238098)
@@ -68,7 +68,6 @@
#include <fstream>
#include <stdlib.h>
#include <string>
-#include <unistd.h>
#include <wtf/AutodrainedPool.h>
#include <wtf/CryptographicallyRandomNumber.h>
#include <wtf/HexNumber.h>
@@ -86,6 +85,14 @@
#include <WebKit/WKPagePrivateMac.h>
#endif
+#if PLATFORM(WIN)
+#include <direct.h>
+#define getcwd _getcwd
+#define PATH_MAX _MAX_PATH
+#else
+#include <unistd.h>
+#endif
+
namespace WTR {
const unsigned TestController::viewWidth = 800;
@@ -872,7 +879,7 @@
// some other code doing this, it should probably be responsible for cleanup too.
resetPreferencesToConsistentValues(options);
-#if !PLATFORM(COCOA) && !PLATFORM(WPE)
+#if PLATFORM(GTK)
WKTextCheckerContinuousSpellCheckingEnabledStateChanged(true);
#endif
@@ -1091,8 +1098,15 @@
if (!length)
return 0;
+#if PLATFORM(WIN)
+ const char separator = '\\';
+ bool isAbsolutePath = false;
+ if (strlen(pathOrURL) >= 3 && pathOrURL[1] == ':' && pathOrURL[2] == separator)
+ isAbsolutePath = true;
+#else
const char separator = '/';
bool isAbsolutePath = pathOrURL[0] == separator;
+#endif
const char* filePrefix = "file://";
static const size_t prefixLength = strlen(filePrefix);
Modified: trunk/Tools/WebKitTestRunner/TestInvocation.cpp (238097 => 238098)
--- trunk/Tools/WebKitTestRunner/TestInvocation.cpp 2018-11-12 18:55:17 UTC (rev 238097)
+++ trunk/Tools/WebKitTestRunner/TestInvocation.cpp 2018-11-12 18:58:01 UTC (rev 238098)
@@ -42,7 +42,6 @@
#include <WebKit/WKWebsiteDataStoreRef.h>
#include <climits>
#include <cstdio>
-#include <unistd.h>
#include <wtf/StdLibExtras.h>
#include <wtf/text/CString.h>
@@ -54,6 +53,13 @@
#include <WebKit/WKPagePrivateMac.h>
#endif
+#if PLATFORM(WIN)
+#include <io.h>
+#define isatty _isatty
+#else
+#include <unistd.h>
+#endif
+
using namespace JSC;
using namespace WebKit;
using namespace std;
Modified: trunk/Tools/WebKitTestRunner/WebKitTestRunnerPrefix.h (238097 => 238098)
--- trunk/Tools/WebKitTestRunner/WebKitTestRunnerPrefix.h 2018-11-12 18:55:17 UTC (rev 238097)
+++ trunk/Tools/WebKitTestRunner/WebKitTestRunnerPrefix.h 2018-11-12 18:58:01 UTC (rev 238098)
@@ -44,3 +44,7 @@
#undef catch
#endif
+#if OS(WINDOWS)
+#undef WEBCORE_EXPORT
+#define WEBCORE_EXPORT WTF_IMPORT_DECLARATION
+#endif
Added: trunk/Tools/WebKitTestRunner/win/EventSenderProxyWin.cpp (0 => 238098)
--- trunk/Tools/WebKitTestRunner/win/EventSenderProxyWin.cpp (rev 0)
+++ trunk/Tools/WebKitTestRunner/win/EventSenderProxyWin.cpp 2018-11-12 18:58:01 UTC (rev 238098)
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2014 Igalia S.L.
+ * Copyright (C) 2018 Sony Interactive Entertainment Inc.
+ *
+ * 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 "EventSenderProxy.h"
+
+#include "PlatformWebView.h"
+#include "TestController.h"
+#include <WebCore/NotImplemented.h>
+
+namespace WTR {
+
+// Key event location code defined in DOM Level 3.
+enum KeyLocationCode {
+ DOMKeyLocationStandard = 0x00,
+ DOMKeyLocationLeft = 0x01,
+ DOMKeyLocationRight = 0x02,
+ DOMKeyLocationNumpad = 0x03
+};
+
+enum ButtonState {
+ ButtonReleased = 0,
+ ButtonPressed = 1
+};
+
+enum PointerAxis {
+ VerticalScroll = 0,
+ HorizontalScroll = 1
+};
+
+EventSenderProxy::EventSenderProxy(TestController* testController)
+ : m_testController(testController)
+ , m_time(0)
+ , m_leftMouseButtonDown(false)
+ , m_clickCount(0)
+ , m_clickTime(0)
+ , m_clickButton(kWKEventMouseButtonNoButton)
+ , m_buttonState(ButtonReleased)
+{
+}
+
+EventSenderProxy::~EventSenderProxy()
+{
+}
+
+void EventSenderProxy::mouseDown(unsigned button, WKEventModifiers wkModifiers)
+{
+ notImplemented();
+}
+
+void EventSenderProxy::mouseUp(unsigned button, WKEventModifiers wkModifiers)
+{
+ notImplemented();
+}
+
+void EventSenderProxy::mouseMoveTo(double x, double y)
+{
+ notImplemented();
+}
+
+void EventSenderProxy::mouseScrollBy(int horizontal, int vertical)
+{
+ notImplemented();
+}
+
+void EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases(int horizontal, int vertical, int, int)
+{
+ notImplemented();
+}
+
+void EventSenderProxy::continuousMouseScrollBy(int, int, bool)
+{
+}
+
+void EventSenderProxy::leapForward(int milliseconds)
+{
+ m_time += milliseconds / 1000.0;
+}
+
+void EventSenderProxy::keyDown(WKStringRef keyRef, WKEventModifiers wkModifiers, unsigned location)
+{
+ notImplemented();
+}
+
+} // namespace WTR
Added: trunk/Tools/WebKitTestRunner/win/PlatformWebViewWin.cpp (0 => 238098)
--- trunk/Tools/WebKitTestRunner/win/PlatformWebViewWin.cpp (rev 0)
+++ trunk/Tools/WebKitTestRunner/win/PlatformWebViewWin.cpp 2018-11-12 18:58:01 UTC (rev 238098)
@@ -0,0 +1,261 @@
+/*
+ * Copyright (C) 2009 Brent Fulgham <bfulg...@webkit.org>
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 Igalia S.L.
+ * Copyright (C) 2018 Sony Interactive Entertainment Inc.
+ *
+ * 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 "PlatformWebView.h"
+
+#include <HWndDC.h>
+#include <cairo.h>
+#include <cstdio>
+#include <windows.h>
+#include <wtf/RunLoop.h>
+#include <wtf/win/GDIObject.h>
+
+
+namespace WTR {
+
+static LPCWSTR hostWindowClassName = L"WTRWebViewHostWindow";
+static LPCWSTR testRunnerWindowName = L"WebKitTestRunner";
+
+static void registerWindowClass()
+{
+ static bool initialized = false;
+ if (initialized)
+ return;
+ initialized = true;
+
+ WNDCLASSEXW wndClass = {0};
+ wndClass.cbSize = sizeof(wndClass);
+ wndClass.style = CS_HREDRAW | CS_VREDRAW;
+ wndClass.lpfnWndProc = DefWindowProc;
+ wndClass.hCursor = LoadCursor(0, IDC_ARROW);
+ wndClass.hInstance = GetModuleHandle(0);
+ wndClass.lpszClassName = hostWindowClassName;
+
+ ::RegisterClassExW(&wndClass);
+}
+
+PlatformWebView::PlatformWebView(WKPageConfigurationRef configuration, const TestOptions& options)
+ : m_window(nullptr)
+ , m_windowIsKey(true)
+ , m_options(options)
+{
+ registerWindowClass();
+
+ RECT viewRect = {0, 0, 800, 600};
+ m_window = ::CreateWindowEx(
+ 0,
+ hostWindowClassName,
+ testRunnerWindowName,
+ WS_OVERLAPPEDWINDOW,
+ 0,
+ 0,
+ viewRect.right,
+ viewRect.bottom,
+ 0,
+ 0,
+ GetModuleHandle(0),
+ 0);
+ m_view = WKViewCreate(viewRect, configuration, m_window);
+ WKViewSetIsInWindow(m_view, true);
+
+ ShowWindow(m_window, SW_SHOW);
+}
+
+PlatformWebView::~PlatformWebView()
+{
+ if (::IsWindow(m_window))
+ ::DestroyWindow(m_window);
+}
+
+void PlatformWebView::resizeTo(unsigned width, unsigned height, WebViewSizingMode)
+{
+ ::SetWindowPos(
+ WKViewGetWindow(m_view),
+ 0,
+ 0,
+ 0,
+ width,
+ height,
+ SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOCOPYBITS);
+}
+
+WKPageRef PlatformWebView::page()
+{
+ return WKViewGetPage(m_view);
+}
+
+void PlatformWebView::focus()
+{
+ ::SetFocus(::WKViewGetWindow(m_view));
+}
+
+WKRect PlatformWebView::windowFrame()
+{
+ WKRect wkFrame = {0};
+ RECT r;
+
+ if (::GetWindowRect(m_window, &r)) {
+ wkFrame.origin.x = r.left;
+ wkFrame.origin.y = r.top;
+ wkFrame.size.width = r.right - r.left;
+ wkFrame.size.height = r.bottom - r.top;
+ }
+
+ return wkFrame;
+}
+
+void PlatformWebView::setWindowFrame(WKRect frame, WebViewSizingMode)
+{
+ ::SetWindowPos(
+ m_window,
+ 0,
+ frame.origin.x,
+ frame.origin.y,
+ frame.size.width,
+ frame.size.height,
+ SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOCOPYBITS);
+}
+
+void PlatformWebView::didInitializeClients()
+{
+}
+
+void PlatformWebView::addChromeInputField()
+{
+}
+
+void PlatformWebView::removeChromeInputField()
+{
+}
+
+void PlatformWebView::addToWindow()
+{
+}
+
+void PlatformWebView::removeFromWindow()
+{
+}
+
+void PlatformWebView::setWindowIsKey(bool windowIsKey)
+{
+ m_windowIsKey = windowIsKey;
+}
+
+void PlatformWebView::makeWebViewFirstResponder()
+{
+}
+
+#if USE(CAIRO)
+static cairo_surface_t* generateCairoSurfaceFromBitmap(BITMAP bitmapTag)
+{
+ cairo_surface_t* image = cairo_image_surface_create(
+ CAIRO_FORMAT_ARGB32,
+ bitmapTag.bmWidth,
+ bitmapTag.bmHeight);
+
+ unsigned char* src = "" char*)bitmapTag.bmBits;
+ int srcPitch = bitmapTag.bmWidthBytes;
+ unsigned char* dst = cairo_image_surface_get_data(image);
+ int dstPitch = cairo_image_surface_get_stride(image);
+
+ for (int y = 0; y < bitmapTag.bmHeight; y++) {
+ memcpy(dst, src, dstPitch);
+ src += srcPitch;
+ dst += dstPitch;
+ }
+
+ return image;
+}
+
+cairo_surface_t* PlatformWebView::windowSnapshotImage()
+{
+ RECT windowRect;
+ ::GetClientRect(m_window, &windowRect);
+ LONG width = windowRect.right - windowRect.left;
+ LONG height = windowRect.bottom - windowRect.top;
+
+ WebCore::HWndDC windowDC(m_window);
+ auto memoryDC = adoptGDIObject(::CreateCompatibleDC(windowDC));
+
+ BITMAPINFO bitmapInfo = {0};
+ WKRect wkFrame = windowFrame();
+ bitmapInfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
+ bitmapInfo.bmiHeader.biWidth = width;
+ bitmapInfo.bmiHeader.biHeight = -height;
+ bitmapInfo.bmiHeader.biPlanes = 1;
+ bitmapInfo.bmiHeader.biBitCount = 32;
+ bitmapInfo.bmiHeader.biCompression = BI_RGB;
+ bitmapInfo.bmiHeader.biSizeImage = width * height * 4;
+
+ void* bitsPointer = 0;
+ auto bitmap = adoptGDIObject(::CreateDIBSection(windowDC, &bitmapInfo, DIB_RGB_COLORS, &bitsPointer, 0, 0));
+ if (!bitmap)
+ return nullptr;
+
+ ::SelectObject(memoryDC.get(), bitmap.get());
+ ::BitBlt(memoryDC.get(),
+ 0,
+ 0,
+ width,
+ height,
+ windowDC,
+ 0,
+ 0,
+ SRCCOPY);
+
+ BITMAP bitmapTag = {0};
+ GetObject(bitmap.get(), sizeof(bitmapTag), &bitmapTag);
+ ASSERT(bitmapTag.bmBitsPixel == 32);
+
+ return generateCairoSurfaceFromBitmap(bitmapTag);
+}
+#endif
+
+void PlatformWebView::changeWindowScaleIfNeeded(float)
+{
+}
+
+void PlatformWebView::setNavigationGesturesEnabled(bool)
+{
+}
+
+void PlatformWebView::forceWindowFramesChanged()
+{
+}
+
+bool PlatformWebView::drawsBackground() const
+{
+ return false;
+}
+
+void PlatformWebView::setDrawsBackground(bool)
+{
+}
+
+} // namespace WTR
Added: trunk/Tools/WebKitTestRunner/win/TestControllerWin.cpp (0 => 238098)
--- trunk/Tools/WebKitTestRunner/win/TestControllerWin.cpp (rev 0)
+++ trunk/Tools/WebKitTestRunner/win/TestControllerWin.cpp 2018-11-12 18:58:01 UTC (rev 238098)
@@ -0,0 +1,226 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 Igalia S.L.
+ *
+ * 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 "TestController.h"
+
+#include <WebCore/NotImplemented.h>
+#include <WinBase.h>
+#include <fcntl.h>
+#include <io.h>
+#include <shlwapi.h>
+#include <string>
+#include <windows.h>
+#include <wtf/RunLoop.h>
+
+
+#define INJECTED_BUNDLE_DLL_NAME "TestRunnerInjectedBundle.dll"
+
+namespace WTR {
+
+static HANDLE webProcessCrashingEvent;
+static const char webProcessCrashingEventName[] = "WebKitTestRunner.WebProcessCrashing";
+// This is the longest we'll wait (in seconds) for the web process to finish crashing and a crash
+// log to be saved. This interval should be just a tiny bit longer than it will ever reasonably
+// take to save a crash log.
+static const double maximumWaitForWebProcessToCrash = 60;
+
+
+static LONG WINAPI exceptionFilter(EXCEPTION_POINTERS*)
+{
+ fputs("#CRASHED\n", stderr);
+ fflush(stderr);
+ return EXCEPTION_CONTINUE_SEARCH;
+}
+
+enum RunLoopResult { TimedOut, ObjectSignaled, ConditionSatisfied };
+
+static RunLoopResult runRunLoopUntil(bool& condition, HANDLE object, double timeout)
+{
+ DWORD end = ::GetTickCount() + timeout * 1000;
+ if (timeout < 0)
+ end = ULONG_MAX;
+
+ while (!condition) {
+ DWORD now = ::GetTickCount();
+ if (now > end)
+ return TimedOut;
+
+ DWORD wait = end - now;
+ DWORD objectCount = object ? 1 : 0;
+ const HANDLE* objects = object ? &object : 0;
+
+ DWORD result = ::MsgWaitForMultipleObjectsEx(objectCount, objects, wait, QS_ALLINPUT, MWMO_INPUTAVAILABLE);
+ if (result == WAIT_TIMEOUT)
+ return TimedOut;
+
+ if (objectCount && result >= WAIT_OBJECT_0 && result < WAIT_OBJECT_0 + objectCount)
+ return ObjectSignaled;
+
+ ASSERT(result == WAIT_OBJECT_0 + objectCount);
+ // There are messages in the queue. Process them.
+ MSG msg;
+ while (::PeekMessageW(&msg, 0, 0, 0, PM_REMOVE)) {
+ ::TranslateMessage(&msg);
+ ::DispatchMessageW(&msg);
+ }
+ }
+
+ return ConditionSatisfied;
+}
+
+void TestController::notifyDone()
+{
+}
+
+void TestController::setHidden(bool)
+{
+}
+
+void TestController::platformInitialize()
+{
+ // Cygwin calls ::SetErrorMode(SEM_FAILCRITICALERRORS), which we will inherit. This is bad for
+ // testing/debugging, as it causes the post-mortem debugger not to be invoked. We reset the
+ // error mode here to work around Cygwin's behavior. See <http://webkit.org/b/55222>.
+ ::SetErrorMode(0);
+
+ ::SetUnhandledExceptionFilter(exceptionFilter);
+
+ _setmode(1, _O_BINARY);
+ _setmode(2, _O_BINARY);
+
+ webProcessCrashingEvent = ::CreateEventA(0, FALSE, FALSE, webProcessCrashingEventName);
+}
+
+WKPreferencesRef TestController::platformPreferences()
+{
+ return WKPageGroupGetPreferences(m_pageGroup.get());
+}
+
+void TestController::platformDestroy()
+{
+}
+
+static WKRetainPtr<WKStringRef> toWK(const char* string)
+{
+ return WKRetainPtr<WKStringRef>(AdoptWK, WKStringCreateWithUTF8CString(string));
+}
+
+void TestController::platformInitializeContext()
+{
+ // FIXME: FIXME! NO WKContextSetShouldPaintNativeControls in API list
+ // FIXME: Make DRT pass with Windows native controls. <http://webkit.org/b/25592>
+ // WKContextSetShouldPaintNativeControls(m_context.get(), false);
+
+ WKContextSetInitializationUserDataForInjectedBundle(m_context.get(), toWK(webProcessCrashingEventName).get());
+}
+
+void TestController::platformRunUntil(bool& condition, WTF::Seconds timeout)
+{
+ RunLoopResult result = runRunLoopUntil(condition, webProcessCrashingEvent, timeout.seconds());
+ if (result == TimedOut || result == ConditionSatisfied)
+ return;
+ ASSERT(result == ObjectSignaled);
+
+ // The web process is crashing. A crash log might be being saved, which can take a long
+ // time, and we don't want to time out while that happens.
+
+ // First, let the test harness know this happened so it won't think we've hung. But
+ // make sure we don't exit just yet!
+ m_shouldExitWhenWebProcessCrashes = false;
+ processDidCrash();
+ m_shouldExitWhenWebProcessCrashes = true;
+
+ // Then spin a run loop until it finishes crashing to give time for a crash log to be saved. If
+ // it takes too long for a crash log to be saved, we'll just give up.
+ bool neverSetCondition = false;
+ result = runRunLoopUntil(neverSetCondition, 0, maximumWaitForWebProcessToCrash);
+ ASSERT_UNUSED(result, result == TimedOut);
+ exit(1);
+}
+
+void TestController::platformDidCommitLoadForFrame(WKPageRef, WKFrameRef)
+{
+ notImplemented();
+}
+
+void TestController::initializeInjectedBundlePath()
+{
+ m_injectedBundlePath.adopt(WKStringCreateWithUTF8CString(INJECTED_BUNDLE_DLL_NAME));
+}
+
+void TestController::initializeTestPluginDirectory()
+{
+ wchar_t exePath[MAX_PATH];
+ if (::GetModuleFileName(nullptr, exePath, MAX_PATH)) {
+ wchar_t drive[_MAX_DRIVE];
+ wchar_t dir[_MAX_DIR];
+ _wsplitpath(exePath, drive, dir, nullptr, nullptr);
+
+ wchar_t bundleDir[MAX_PATH];
+ wcsncpy(bundleDir, drive, MAX_PATH);
+ wcsncat(bundleDir, dir, MAX_PATH - _MAX_DRIVE);
+
+ char bundleDirUTF8[MAX_PATH];
+ ::WideCharToMultiByte(CP_UTF8, 0, bundleDir, -1, bundleDirUTF8, MAX_PATH, nullptr, nullptr);
+
+ m_testPluginDirectory.adopt(WKStringCreateWithUTF8CString(bundleDirUTF8));
+ }
+}
+
+void TestController::runModal(PlatformWebView*)
+{
+ // FIXME: Need to implement this to test showModalDialog.
+ notImplemented();
+}
+
+WKContextRef TestController::platformContext()
+{
+ return m_context.get();
+}
+
+const char* TestController::platformLibraryPathForTesting()
+{
+ notImplemented();
+ return nullptr;
+}
+
+void TestController::platformConfigureViewForTest(const TestInvocation&)
+{
+ notImplemented();
+}
+
+void TestController::platformResetPreferencesToConsistentValues()
+{
+ notImplemented();
+}
+
+void TestController::updatePlatformSpecificTestOptionsForTest(TestOptions&, const std::string&) const
+{
+ notImplemented();
+}
+
+} // namespace WTR
Added: trunk/Tools/WebKitTestRunner/win/WebKitTestRunnerPrefix.cpp (0 => 238098)
--- trunk/Tools/WebKitTestRunner/win/WebKitTestRunnerPrefix.cpp (rev 0)
+++ trunk/Tools/WebKitTestRunner/win/WebKitTestRunnerPrefix.cpp 2018-11-12 18:58:01 UTC (rev 238098)
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2015 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.
+ * 3. Neither the name of Apple Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE 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 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 "WebKitTestRunnerPrefix.h"
Copied: trunk/Tools/WebKitTestRunner/win/main.cpp (from rev 238097, trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundleMain.cpp) (0 => 238098)
--- trunk/Tools/WebKitTestRunner/win/main.cpp (rev 0)
+++ trunk/Tools/WebKitTestRunner/win/main.cpp 2018-11-12 18:58:01 UTC (rev 238098)
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2010 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 "TestController.h"
+
+extern "C" __declspec(dllexport) int WINAPI dllLauncherEntryPoint(int argc, const char* argv[])
+{
+ WTR::TestController controller(argc, argv);
+ return 0;
+}