WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-216428-20200911203449.patch (text/plain), 43.36 KB, created by
Darin Adler
on 2020-09-11 20:34:50 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Darin Adler
Created:
2020-09-11 20:34:50 PDT
Size:
43.36 KB
patch
obsolete
>Subversion Revision: 266968 >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index c9ad18f2927ff8810edea88fe3b5526165a585ba..ea162bdbb69b64b3a6e867af26ec168ae0c01291 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,72 @@ >+2020-09-11 Darin Adler <darin@apple.com> >+ >+ Send TestRendered event after running a test but before dumping >+ https://bugs.webkit.org/show_bug.cgi?id=216428 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * DumpRenderTree/CMakeLists.txt: Added the new files and directories. >+ * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: Ditto. >+ >+ * DumpRenderTree/mac/FrameLoadDelegate.mm: >+ (-[FrameLoadDelegate readyToDumpState]): Added. Calls sendTestRenderedEvent. >+ (-[FrameLoadDelegate processWork:]): Call readyToDumpState. >+ (-[FrameLoadDelegate webView:locationChangeDone:forDataSource:]): Ditto. >+ >+ * DumpRenderTree/win/FrameLoadDelegate.cpp: >+ (readyToDumpState): Added. Calls sendTestRenderedEvent. >+ (FrameLoadDelegate::processWork): Call readyToDumpState. >+ (FrameLoadDelegate::locationChangeDone): Ditto. >+ >+ * TestRunnerShared/Bindings/JSBasics.cpp: Added. >+ (WTR::JSValueMakeBooleanOrNull): Moved from JSWrappable.h. >+ (WTR::JSValueToNullableBoolean): Ditto. >+ (WTR::JSValueMakeStringOrNull): Ditto. >+ (WTR::createJSString): Ditto. >+ (WTR::makeValue): Ditto. >+ (WTR::objectProperty): Ditto. >+ (WTR::setProperty): Added. Sets a named property value to a boolean. >+ (WTR::call): Moved from JSWrappable.h. >+ (WTR::callConstructor): Added. Gets a global constructor and calls it. >+ >+ * TestRunnerShared/Bindings/JSBasics.h: Added. Declares the above functions. >+ >+ * TestRunnerShared/Bindings/JSWrappable.h: >+ (WTR::JSValueMakeBooleanOrNull): Deleted. >+ (WTR::JSValueToNullableBoolean): Deleted. >+ (WTR::JSValueMakeStringOrNull): Deleted. >+ (WTR::createJSString): Deleted. >+ (WTR::makeValue): Deleted. >+ (WTR::objectProperty): Deleted. >+ (WTR::call): Deleted. >+ (WTR::hasRefTestWaitAttribute): Deleted. >+ >+ * TestRunnerShared/Bindings/JSWrapper.h: Updated includes. >+ >+ * TestRunnerShared/ReftestFunctions.cpp: Added. >+ (WTR::sendTestRenderedEvent): Added. Creates and dispatches a TestRendered event. >+ (WTR::hasReftestWaitAttribute): Moved from JSWrappable.h and renamed to use a >+ lowercase T since that's how web-platform-tests names things. >+ >+ * TestRunnerShared/ReftestFunctions.h: Added. Declares the above functions. >+ >+ * WebKitTestRunner/CMakeLists.txt: Added the new files and directories. >+ >+ * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: >+ (WTR::sendTestRenderedEvent): Added. Calls the sendTestRenderedEvent from >+ ReftestFunctions.h with the appropriate script context. >+ (WTR::InjectedBundlePage::frameDidChangeLocation): Call sendTestRenderedEvent >+ before calling dumpAfterWaitAttributeIsRemoved. >+ >+ * WebKitTestRunner/InjectedBundle/mac/AccessibilityTextMarkerMac.mm: Added a >+ missing include of "config.h" to fix build failures I was seeing. An alternative, >+ since this is a Cocoa-only source file, would be to put config.h into a >+ precompiled prefix header. >+ * WebKitTestRunner/InjectedBundle/mac/AccessibilityTextMarkerRangeMac.mm: Ditto. >+ >+ * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj: Added the new >+ files and directories. >+ > 2020-09-11 Frank Yang <guowei_yang@apple.com> > > Adding myself as committer >diff --git a/Tools/DumpRenderTree/CMakeLists.txt b/Tools/DumpRenderTree/CMakeLists.txt >index 36e3fe86cd1e19296727f65cc098d880c4c80a1e..85542f18af1ab2570e465e7e1fb03dfe4097c524 100644 >--- a/Tools/DumpRenderTree/CMakeLists.txt >+++ b/Tools/DumpRenderTree/CMakeLists.txt >@@ -6,6 +6,8 @@ set(WebKitTestRunner_UISCRIPTCONTEXT_DIR "${TOOLS_DIR}/TestRunnerShared/UIScript > file(MAKE_DIRECTORY ${DumpRenderTree_DERIVED_SOURCES_DIR}) > > set(DumpRenderTree_SOURCES >+ ${WebKitTestRunner_SHARED_DIR}/ReftestFunctions.cpp >+ ${WebKitTestRunner_SHARED_DIR}/Bindings/JSBasics.cpp > ${WebKitTestRunner_SHARED_DIR}/Bindings/JSWrapper.cpp > > ${WebKitTestRunner_UISCRIPTCONTEXT_DIR}/UIScriptContext.cpp >@@ -34,6 +36,7 @@ set(DumpRenderTree_PRIVATE_INCLUDE_DIRECTORIES > ${CMAKE_BINARY_DIR} > ${DumpRenderTree_DERIVED_SOURCES_DIR} > ${DumpRenderTree_DIR} >+ ${WebKitTestRunner_SHARED_DIR} > ${WebKitTestRunner_SHARED_DIR}/Bindings > ${WebKitTestRunner_UISCRIPTCONTEXT_DIR} > ) >diff --git a/Tools/DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj b/Tools/DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj >index a29e0ca8d6f121b8391c5a11400234c71e2e7e4d..f28025eafacd5a4b1364ca5a8327cb90f1135dd3 100644 >--- a/Tools/DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj >+++ b/Tools/DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj >@@ -111,6 +111,8 @@ > 5DB9ACA00F722C3600684641 /* WebKitWeightWatcher900.ttf in Copy Font Files */ = {isa = PBXBuildFile; fileRef = 375F09790DAC3CB600C8B4E5 /* WebKitWeightWatcher900.ttf */; }; > 80045AEE147718E7008290A8 /* AccessibilityNotificationHandler.mm in Sources */ = {isa = PBXBuildFile; fileRef = 80045AEC147718E7008290A8 /* AccessibilityNotificationHandler.mm */; }; > 8465E2C70FFA8DF2003B8342 /* PixelDumpSupport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8465E2C60FFA8DF2003B8342 /* PixelDumpSupport.cpp */; }; >+ 93C78826250C6D3A00C0AA24 /* ReftestFunctions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93C78824250C6D3900C0AA24 /* ReftestFunctions.cpp */; }; >+ 93C7882E250C717200C0AA24 /* JSBasics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93C78829250C713400C0AA24 /* JSBasics.cpp */; }; > 9830F31F15C81181005AB206 /* DumpRenderTreeCommon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9830F31E15C81181005AB206 /* DumpRenderTreeCommon.cpp */; }; > A1158D581892740C0088C17B /* DumpRenderTreeBrowserView.mm in Sources */ = {isa = PBXBuildFile; fileRef = A1158D56189273EB0088C17B /* DumpRenderTreeBrowserView.mm */; }; > A1158D59189274360088C17B /* PixelDumpSupportIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = A1158D57189273EB0088C17B /* PixelDumpSupportIOS.mm */; }; >@@ -334,6 +336,10 @@ > 8465E2C60FFA8DF2003B8342 /* PixelDumpSupport.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = PixelDumpSupport.cpp; sourceTree = "<group>"; }; > 9335435F03D75502008635CE /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = WebKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; > 9340995408540CAF007F3BC8 /* DumpRenderTree */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = DumpRenderTree; sourceTree = BUILT_PRODUCTS_DIR; }; >+ 93C78824250C6D3900C0AA24 /* ReftestFunctions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ReftestFunctions.cpp; sourceTree = "<group>"; }; >+ 93C78825250C6D3900C0AA24 /* ReftestFunctions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReftestFunctions.h; sourceTree = "<group>"; }; >+ 93C78829250C713400C0AA24 /* JSBasics.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = JSBasics.cpp; sourceTree = "<group>"; }; >+ 93C7882B250C713400C0AA24 /* JSBasics.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JSBasics.h; sourceTree = "<group>"; }; > 9830F31E15C81181005AB206 /* DumpRenderTreeCommon.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DumpRenderTreeCommon.cpp; sourceTree = "<group>"; }; > A1103B5B1892498F00738C87 /* LayoutTestHelper.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = LayoutTestHelper.xcconfig; path = mac/Configurations/LayoutTestHelper.xcconfig; sourceTree = "<group>"; }; > A1158D55189273EB0088C17B /* DumpRenderTreeBrowserView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = DumpRenderTreeBrowserView.h; path = ios/DumpRenderTreeBrowserView.h; sourceTree = "<group>"; }; >@@ -719,11 +725,14 @@ > 3148A0651E6F90F400D3B316 /* TestRunnerShared */ = { > isa = PBXGroup; > children = ( >+ 93C78828250C713400C0AA24 /* Bindings */, > F4B6C31820E84382008AC225 /* cocoa */, > F4FED31623581EF3003C139C /* mac */, > A17A5A2B22A880D80065C5F0 /* spi */, > 3148A0551E6F90F400D3B316 /* IOSLayoutTestCommunication.cpp */, > 3148A0561E6F90F400D3B316 /* IOSLayoutTestCommunication.h */, >+ 93C78824250C6D3900C0AA24 /* ReftestFunctions.cpp */, >+ 93C78825250C6D3900C0AA24 /* ReftestFunctions.h */, > ); > name = TestRunnerShared; > path = ../TestRunnerShared; >@@ -768,6 +777,15 @@ > name = Resources; > sourceTree = "<group>"; > }; >+ 93C78828250C713400C0AA24 /* Bindings */ = { >+ isa = PBXGroup; >+ children = ( >+ 93C78829250C713400C0AA24 /* JSBasics.cpp */, >+ 93C7882B250C713400C0AA24 /* JSBasics.h */, >+ ); >+ path = Bindings; >+ sourceTree = "<group>"; >+ }; > A1158D6A18927CE10088C17B /* ios */ = { > isa = PBXGroup; > children = ( >@@ -1215,6 +1233,7 @@ > F44A531E21B89A5000DBB99C /* InstanceMethodSwizzler.mm in Sources */, > 312943F91E71F2B4001EE2CC /* IOSLayoutTestCommunication.cpp in Sources */, > 2CE88FA217124D8C00734FC0 /* JavaScriptThreading.cpp in Sources */, >+ 93C7882E250C717200C0AA24 /* JSBasics.cpp in Sources */, > 0F18E7061D6BA0230027E547 /* JSUIScriptController.cpp in Sources */, > 0F18E7131D6BC43A0027E547 /* JSWrapper.cpp in Sources */, > F4C3578D20E8444E00FA0748 /* LayoutTestSpellChecker.mm in Sources */, >@@ -1231,6 +1250,7 @@ > BCB284D60CFA83D1007E533E /* PixelDumpSupportMac.mm in Sources */, > BCA18B660C9B08C200114369 /* PolicyDelegate.mm in Sources */, > F4010B7B24DA201F00A876E2 /* PoseAsClass.mm in Sources */, >+ 93C78826250C6D3A00C0AA24 /* ReftestFunctions.cpp in Sources */, > BCA18B680C9B08C200114369 /* ResourceLoadDelegate.mm in Sources */, > A30A21F82051D8C40008FF42 /* TestOptions.cpp in Sources */, > BC0131DA0C9772010087317D /* TestRunner.cpp in Sources */, >diff --git a/Tools/DumpRenderTree/mac/FrameLoadDelegate.mm b/Tools/DumpRenderTree/mac/FrameLoadDelegate.mm >index e97749f4a32db7d921cf2cc8b5c46f2b96043410..b38f4d37f06715351c89a86fe8208b76f215aa7e 100644 >--- a/Tools/DumpRenderTree/mac/FrameLoadDelegate.mm >+++ b/Tools/DumpRenderTree/mac/FrameLoadDelegate.mm >@@ -38,6 +38,7 @@ > #import "ObjCController.h" > #import "ObjCPlugin.h" > #import "ObjCPluginFunction.h" >+#import "ReftestFunctions.h" > #import "TestRunner.h" > #import "TextInputController.h" > #import "WebCoreTestSupport.h" >@@ -141,14 +142,22 @@ - (void)dumpAfterWaitAttributeIsRemoved:(id)dummy > #if PLATFORM(IOS_FAMILY) > WebThreadLock(); > #endif >- >- if (WTR::hasRefTestWaitAttribute(mainFrame.globalContext)) >+ if (WTR::hasReftestWaitAttribute(mainFrame.globalContext)) > [self performSelector:@selector(dumpAfterWaitAttributeIsRemoved:) withObject:nil afterDelay:0]; > else > dump(); > } > >-// Exec messages in the work queue until they're all done, or one of them starts a new load >+- (void)readyToDumpState >+{ >+#if PLATFORM(IOS_FAMILY) >+ WebThreadLock(); >+#endif >+ WTR::sendTestRenderedEvent(mainFrame.globalContext); >+ [self dumpAfterWaitAttributeIsRemoved:nil]; >+} >+ >+// Execute messages in the work queue until they're all done, or one of them starts a new load. > - (void)processWork:(id)dummy > { > // if another load started, then wait for it to complete. >@@ -158,10 +167,9 @@ - (void)processWork:(id)dummy > #if PLATFORM(IOS_FAMILY) > WebThreadLock(); > #endif >- >- // if we finish all the commands, we're ready to dump state >+ // If we finish all the commands, we're ready to dump state. > if (DRT::WorkQueue::singleton().processWork() && !gTestRunner->waitToDump()) >- [self dumpAfterWaitAttributeIsRemoved:nil]; >+ [self readyToDumpState]; > } > > - (void)resetToConsistentState >@@ -179,7 +187,7 @@ - (void)webView:(WebView *)webView locationChangeDone:(NSError *)error forDataSo > if (workQueue.count()) > [self performSelector:@selector(processWork:) withObject:nil afterDelay:0]; > else >- [self dumpAfterWaitAttributeIsRemoved:nil]; >+ [self readyToDumpState]; > } > } > } >diff --git a/Tools/DumpRenderTree/win/FrameLoadDelegate.cpp b/Tools/DumpRenderTree/win/FrameLoadDelegate.cpp >index a89effa196fc63b4744817eeee4f6a3edd6188b6..755bed16f60edc01115521e158c0dbf05588bf84 100644 >--- a/Tools/DumpRenderTree/win/FrameLoadDelegate.cpp >+++ b/Tools/DumpRenderTree/win/FrameLoadDelegate.cpp >@@ -36,6 +36,7 @@ > #include "EventSender.h" > #include "GCController.h" > #include "JSWrapper.h" >+#include "ReftestFunctions.h" > #include "TestRunner.h" > #include "TextInputController.h" > #include "WebCoreTestSupport.h" >@@ -191,7 +192,7 @@ HRESULT FrameLoadDelegate::didChangeIcons(_In_opt_ IWebView*, _In_opt_ IWebFrame > static void CALLBACK dumpAfterWaitAttributeIsRemoved(HWND = nullptr, UINT = 0, UINT_PTR = 0, DWORD = 0) > { > static UINT_PTR timerID; >- if (frame && WTR::hasRefTestWaitAttribute(frame->globalContext())) { >+ if (frame && WTR::hasReftestWaitAttribute(frame->globalContext())) { > if (!timerID) > timerID = ::SetTimer(nullptr, 0, 0, dumpAfterWaitAttributeIsRemoved); > } else { >@@ -203,6 +204,13 @@ static void CALLBACK dumpAfterWaitAttributeIsRemoved(HWND = nullptr, UINT = 0, U > } > } > >+static void readyToDumpState() >+{ >+ if (frame) >+ WTR::sendTestRenderedEvent(frame->globalContext()); >+ dumpAfterWaitAttributeIsRemoved(); >+} >+ > void FrameLoadDelegate::processWork() > { > // if another load started, then wait for it to complete. >@@ -211,7 +219,7 @@ void FrameLoadDelegate::processWork() > > // if we finish all the commands, we're ready to dump state > if (DRT::WorkQueue::singleton().processWork() && !::gTestRunner->waitToDump()) >- dumpAfterWaitAttributeIsRemoved(); >+ readyToDumpState(); > } > > void FrameLoadDelegate::resetToConsistentState() >@@ -260,7 +268,7 @@ void FrameLoadDelegate::locationChangeDone(IWebError*, IWebFrame* frame) > return; > } > >- dumpAfterWaitAttributeIsRemoved(); >+ readyToDumpState(); > } > > HRESULT FrameLoadDelegate::didFinishLoadForFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame* frame) >diff --git a/Tools/TestRunnerShared/Bindings/JSBasics.cpp b/Tools/TestRunnerShared/Bindings/JSBasics.cpp >new file mode 100644 >index 0000000000000000000000000000000000000000..fff0b74990afb9e12ac9d01a710a4c5280e1e908 >--- /dev/null >+++ b/Tools/TestRunnerShared/Bindings/JSBasics.cpp >@@ -0,0 +1,96 @@ >+/* >+ * Copyright (C) 2020 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 "JSBasics.h" >+ >+namespace WTR { >+ >+JSValueRef JSValueMakeBooleanOrNull(JSContextRef context, Optional<bool> value) >+{ >+ return value ? JSValueMakeBoolean(context, value.value()) : JSValueMakeNull(context); >+} >+ >+Optional<bool> JSValueToNullableBoolean(JSContextRef context, JSValueRef value) >+{ >+ return JSValueIsUndefined(context, value) || JSValueIsNull(context, value) ? WTF::nullopt : Optional<bool>(JSValueToBoolean(context, value)); >+} >+ >+JSValueRef JSValueMakeStringOrNull(JSContextRef context, JSStringRef stringOrNull) >+{ >+ return stringOrNull ? JSValueMakeString(context, stringOrNull) : JSValueMakeNull(context); >+} >+ >+JSRetainPtr<JSStringRef> createJSString(const char* string) >+{ >+ return adopt(JSStringCreateWithUTF8CString(string)); >+} >+ >+JSValueRef makeValue(JSContextRef context, const char* string) >+{ >+ return JSValueMakeString(context, createJSString(string).get()); >+} >+ >+JSObjectRef objectProperty(JSContextRef context, JSObjectRef object, const char* name) >+{ >+ if (!object) >+ return nullptr; >+ auto value = JSObjectGetProperty(context, object, createJSString(name).get(), nullptr); >+ if (!JSValueIsObject(context, value)) >+ return nullptr; >+ return const_cast<JSObjectRef>(value); >+} >+ >+JSObjectRef objectProperty(JSContextRef context, JSObjectRef object, std::initializer_list<const char*> names) >+{ >+ for (auto name : names) >+ object = objectProperty(context, object, name); >+ return object; >+} >+ >+void setProperty(JSContextRef context, JSObjectRef object, const char* name, bool value) >+{ >+ JSObjectSetProperty(context, object, createJSString(name).get(), JSValueMakeBoolean(context, value), kJSPropertyAttributeNone, nullptr); >+} >+ >+JSValueRef call(JSContextRef context, JSObjectRef object, const char* name, std::initializer_list<JSValueRef> arguments) >+{ >+ if (!object) >+ return nullptr; >+ auto function = objectProperty(context, object, name); >+ if (!function) >+ return nullptr; >+ return JSObjectCallAsFunction(context, function, object, arguments.size(), arguments.begin(), nullptr); >+} >+ >+JSObjectRef callConstructor(JSGlobalContextRef context, const char* name, std::initializer_list<JSValueRef> arguments) >+{ >+ auto constructor = objectProperty(context, JSContextGetGlobalObject(context), { name }); >+ if (!constructor) >+ return nullptr; >+ return JSObjectCallAsConstructor(context, constructor, arguments.size(), arguments.begin(), nullptr); >+} >+ >+} // namespace WTR >diff --git a/Tools/TestRunnerShared/Bindings/JSBasics.h b/Tools/TestRunnerShared/Bindings/JSBasics.h >new file mode 100644 >index 0000000000000000000000000000000000000000..11dda5247a5ab6c040963df19ab0f5e0296ceb82 >--- /dev/null >+++ b/Tools/TestRunnerShared/Bindings/JSBasics.h >@@ -0,0 +1,48 @@ >+/* >+ * Copyright (C) 2020 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. >+ */ >+ >+#pragma once >+ >+#include <JavaScriptCore/JSRetainPtr.h> >+#include <JavaScriptCore/JavaScript.h> >+#include <initializer_list> >+#include <wtf/Optional.h> >+ >+namespace WTR { >+ >+JSValueRef JSValueMakeBooleanOrNull(JSContextRef, Optional<bool>); >+Optional<bool> JSValueToNullableBoolean(JSContextRef, JSValueRef); >+ >+JSValueRef JSValueMakeStringOrNull(JSContextRef, JSStringRef); >+ >+JSRetainPtr<JSStringRef> createJSString(const char*); >+JSValueRef makeValue(JSContextRef, const char*); >+JSObjectRef objectProperty(JSContextRef, JSObjectRef, const char* name); >+JSObjectRef objectProperty(JSContextRef, JSObjectRef, std::initializer_list<const char*> names); >+void setProperty(JSContextRef, JSObjectRef, const char* name, bool value); >+JSValueRef call(JSContextRef, JSObjectRef, const char* name, std::initializer_list<JSValueRef> arguments); >+JSObjectRef callConstructor(JSGlobalContextRef, const char* name, std::initializer_list<JSValueRef> arguments); >+ >+} // namespace WTR >diff --git a/Tools/TestRunnerShared/Bindings/JSWrappable.h b/Tools/TestRunnerShared/Bindings/JSWrappable.h >index 5a0a35fe9d362a07d280fa77f0c5ca26114a0ff3..9e0f07df5932ab30331d7b61d17353ae6e01c473 100644 >--- a/Tools/TestRunnerShared/Bindings/JSWrappable.h >+++ b/Tools/TestRunnerShared/Bindings/JSWrappable.h >@@ -1,5 +1,5 @@ > /* >- * Copyright (C) 2010 Apple Inc. All rights reserved. >+ * Copyright (C) 2010-2020 Apple Inc. All rights reserved. > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions >@@ -25,10 +25,7 @@ > > #pragma once > >-#include <JavaScriptCore/JSRetainPtr.h> > #include <JavaScriptCore/JavaScript.h> >-#include <initializer_list> >-#include <wtf/Optional.h> > #include <wtf/RefCounted.h> > > namespace WTR { >@@ -39,65 +36,4 @@ public: > virtual JSClassRef wrapperClass() = 0; > }; > >-inline JSValueRef JSValueMakeBooleanOrNull(JSContextRef context, Optional<bool> value) >-{ >- return value ? JSValueMakeBoolean(context, value.value()) : JSValueMakeNull(context); >-} >- >-inline Optional<bool> JSValueToNullableBoolean(JSContextRef context, JSValueRef value) >-{ >- return JSValueIsUndefined(context, value) || JSValueIsNull(context, value) ? WTF::nullopt : Optional<bool>(JSValueToBoolean(context, value)); >-} >- >-inline JSValueRef JSValueMakeStringOrNull(JSContextRef context, JSStringRef stringOrNull) >-{ >- return stringOrNull ? JSValueMakeString(context, stringOrNull) : JSValueMakeNull(context); >-} >- >-inline JSRetainPtr<JSStringRef> createJSString(const char* string) >-{ >- return adopt(JSStringCreateWithUTF8CString(string)); >-} >- >-inline JSValueRef makeValue(JSContextRef context, const char* string) >-{ >- return JSValueMakeString(context, createJSString(string).get()); >-} >- >-inline JSObjectRef objectProperty(JSContextRef context, JSObjectRef object, const char* name) >-{ >- if (!object) >- return nullptr; >- auto value = JSObjectGetProperty(context, object, createJSString(name).get(), nullptr); >- if (!JSValueIsObject(context, value)) >- return nullptr; >- return const_cast<JSObjectRef>(value); >-} >- >-inline JSObjectRef objectProperty(JSContextRef context, JSObjectRef object, std::initializer_list<const char*> names) >-{ >- for (auto name : names) >- object = objectProperty(context, object, name); >- return object; >-} >- >-inline JSValueRef call(JSContextRef context, JSObjectRef object, const char* name, std::initializer_list<JSValueRef> arguments) >-{ >- if (!object) >- return nullptr; >- auto function = objectProperty(context, object, name); >- if (!function) >- return nullptr; >- return JSObjectCallAsFunction(context, function, object, arguments.size(), arguments.begin(), nullptr); >-} >- >-// FIXME: Move this somewhere better. We want to share it, so it belongs in TestRunnerShared, but not as part of JSWrappable. >-inline bool hasRefTestWaitAttribute(JSContextRef context) >-{ >- if (!context) >- return false; >- auto classList = objectProperty(context, JSContextGetGlobalObject(context), { "document", "documentElement", "classList" }); >- return JSValueToBoolean(context, call(context, classList, "contains", { makeValue(context, "reftest-wait") })); >-} >- > } // namespace WTR >diff --git a/Tools/TestRunnerShared/Bindings/JSWrapper.h b/Tools/TestRunnerShared/Bindings/JSWrapper.h >index 35b34fb5620862006d80416bf23e9de1576e1223..f6798f99a4fec67563d091563b50509dfc8572da 100644 >--- a/Tools/TestRunnerShared/Bindings/JSWrapper.h >+++ b/Tools/TestRunnerShared/Bindings/JSWrapper.h >@@ -25,6 +25,7 @@ > > #pragma once > >+#include "JSBasics.h" > #include "JSWrappable.h" > > namespace WTR { >diff --git a/Tools/TestRunnerShared/ReftestFunctions.cpp b/Tools/TestRunnerShared/ReftestFunctions.cpp >new file mode 100644 >index 0000000000000000000000000000000000000000..d35c292f4a1568e02ef5c6cd34c01974344aa2d6 >--- /dev/null >+++ b/Tools/TestRunnerShared/ReftestFunctions.cpp >@@ -0,0 +1,52 @@ >+/* >+ * Copyright (C) 2020 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 "ReftestFunctions.h" >+ >+#include "JSBasics.h" >+ >+namespace WTR { >+ >+void sendTestRenderedEvent(JSGlobalContextRef context) >+{ >+ if (!context) >+ return; >+ auto initializer = JSObjectMake(context, nullptr, nullptr); >+ setProperty(context, initializer, "bubbles", true); >+ auto event = callConstructor(context, "Event", { makeValue(context, "TestRendered"), initializer }); >+ auto documentElement = objectProperty(context, JSContextGetGlobalObject(context), { "document", "documentElement" }); >+ call(context, documentElement, "dispatchEvent", { event }); >+} >+ >+bool hasReftestWaitAttribute(JSGlobalContextRef context) >+{ >+ if (!context) >+ return false; >+ auto classList = objectProperty(context, JSContextGetGlobalObject(context), { "document", "documentElement", "classList" }); >+ return JSValueToBoolean(context, call(context, classList, "contains", { makeValue(context, "reftest-wait") })); >+} >+ >+} >diff --git a/Tools/TestRunnerShared/ReftestFunctions.h b/Tools/TestRunnerShared/ReftestFunctions.h >new file mode 100644 >index 0000000000000000000000000000000000000000..9b6fd7957f0b9051c9049b0333cf10899f5d9153 >--- /dev/null >+++ b/Tools/TestRunnerShared/ReftestFunctions.h >@@ -0,0 +1,35 @@ >+/* >+ * Copyright (C) 2020 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. >+ */ >+ >+#pragma once >+ >+typedef struct OpaqueJSContext* JSGlobalContextRef; >+ >+namespace WTR { >+ >+void sendTestRenderedEvent(JSGlobalContextRef); >+bool hasReftestWaitAttribute(JSGlobalContextRef); >+ >+} >diff --git a/Tools/WebKitTestRunner/CMakeLists.txt b/Tools/WebKitTestRunner/CMakeLists.txt >index a3d051b962e80997d114b7f41d4f5d16d7d3e9c7..a2b2a3ca84e65870c2ac4b2afb0810a6c77162c8 100644 >--- a/Tools/WebKitTestRunner/CMakeLists.txt >+++ b/Tools/WebKitTestRunner/CMakeLists.txt >@@ -7,6 +7,7 @@ file(MAKE_DIRECTORY ${WebKitTestRunner_DERIVED_SOURCES_DIR}/InjectedBundle) > file(MAKE_DIRECTORY ${WebKitTestRunner_DERIVED_SOURCES_DIR}/UIScriptContext) > > set(WebKitTestRunner_SOURCES >+ ${WebKitTestRunner_BINDINGS_DIR}/JSBasics.cpp > ${WebKitTestRunner_BINDINGS_DIR}/JSWrapper.cpp > > ${WebKitTestRunner_UISCRIPTCONTEXT_DIR}/UIScriptContext.cpp >@@ -47,6 +48,9 @@ list(APPEND WebKitTestRunner_INCLUDE_DIRECTORIES > ) > > set(WebKitTestRunnerInjectedBundle_SOURCES >+ ${WebKitTestRunner_SHARED_DIR}/ReftestFunctions.cpp >+ >+ ${WebKitTestRunner_BINDINGS_DIR}/JSBasics.cpp > ${WebKitTestRunner_BINDINGS_DIR}/JSWrapper.cpp > > InjectedBundle/AccessibilityController.cpp >@@ -64,6 +68,7 @@ set(WebKitTestRunnerInjectedBundle_SOURCES > > set(WebKitTestRunnerInjectedBundle_INCLUDE_DIRECTORIES > ${CMAKE_BINARY_DIR} >+ ${WebKitTestRunner_SHARED_DIR} > ${WebKitTestRunner_BINDINGS_DIR} > ${WebKitTestRunner_DERIVED_SOURCES_DIR}/InjectedBundle > ${WebKitTestRunner_DIR} >diff --git a/Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp b/Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp >index 0d1502a63b8ae97f5115c80fb9cbeb81dd24fef6..1387e93fb97e5d1b9fe1e239593003b6f76e4ac5 100644 >--- a/Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp >+++ b/Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp >@@ -1,5 +1,5 @@ > /* >- * Copyright (C) 2010-2016 Apple Inc. All rights reserved. >+ * Copyright (C) 2010-2020 Apple Inc. All rights reserved. > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions >@@ -28,6 +28,7 @@ > > #include "ActivateFonts.h" > #include "InjectedBundle.h" >+#include "ReftestFunctions.h" > #include "StringFunctions.h" > #include "WebCoreTestSupport.h" > #include <cmath> >@@ -1954,10 +1955,21 @@ String InjectedBundlePage::platformResponseMimeType(WKURLResponseRef) > } > #endif > >-static bool hasRefTestWaitAttribute(InjectedBundlePage& page) >+static void sendTestRenderedEvent() >+{ >+ auto page = InjectedBundle::singleton().page(); >+ if (!page) >+ return; >+ auto frame = WKBundlePageGetMainFrame(page->page()); >+ if (!frame) >+ return; >+ sendTestRenderedEvent(WKBundleFrameGetJavaScriptContext(frame)); >+} >+ >+static bool hasReftestWaitAttribute(InjectedBundlePage& page) > { > auto frame = WKBundlePageGetMainFrame(page.page()); >- return frame && hasRefTestWaitAttribute(WKBundleFrameGetJavaScriptContext(frame)); >+ return frame && hasReftestWaitAttribute(WKBundleFrameGetJavaScriptContext(frame)); > } > > static void dumpAfterWaitAttributeIsRemoved(void* = nullptr) >@@ -1965,7 +1977,7 @@ static void dumpAfterWaitAttributeIsRemoved(void* = nullptr) > auto page = InjectedBundle::singleton().page(); > if (!page) > return; >- if (hasRefTestWaitAttribute(*page)) >+ if (hasReftestWaitAttribute(*page)) > WKBundlePageCallAfterTasksAndTimers(page->page(), dumpAfterWaitAttributeIsRemoved, nullptr); > else > page->dump(); >@@ -1992,6 +2004,7 @@ void InjectedBundlePage::frameDidChangeLocation(WKBundleFrameRef frame) > return; > } > >+ sendTestRenderedEvent(); > dumpAfterWaitAttributeIsRemoved(); > } > >diff --git a/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityTextMarkerMac.mm b/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityTextMarkerMac.mm >index ba289b1d6cde7a221132da18c20f962932e2d398..1fb991c208b3c37275cc6c7db7eb59f5cd92b9a7 100644 >--- a/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityTextMarkerMac.mm >+++ b/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityTextMarkerMac.mm >@@ -23,6 +23,7 @@ > * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > */ > >+#import "config.h" > #import "AccessibilityTextMarker.h" > > namespace WTR { >diff --git a/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityTextMarkerRangeMac.mm b/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityTextMarkerRangeMac.mm >index d383dfa44343514f93f76750bb2884fc8dee97c5..f5f5892a098a61ac26d8b9c24b8404e4fe5bce9c 100644 >--- a/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityTextMarkerRangeMac.mm >+++ b/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityTextMarkerRangeMac.mm >@@ -23,6 +23,7 @@ > * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > */ > >+#import "config.h" > #import "AccessibilityTextMarkerRange.h" > > namespace WTR { >diff --git a/Tools/WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj b/Tools/WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj >index e64c640658c2f179c0bd2b0afd7c0c41700a4291..3e9237be191e217e59f866b765bb478e1bd7a160 100644 >--- a/Tools/WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj >+++ b/Tools/WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj >@@ -122,6 +122,9 @@ > 8034C6621487636400AC32E9 /* AccessibilityControllerMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8034C6611487636400AC32E9 /* AccessibilityControllerMac.mm */; }; > 8097338A14874A5A008156D9 /* AccessibilityNotificationHandler.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8097338914874A5A008156D9 /* AccessibilityNotificationHandler.mm */; }; > 9376417A210D737200A3DAAE /* WebKitTestRunnerWindow.mm in Sources */ = {isa = PBXBuildFile; fileRef = 93764176210D736000A3DAAE /* WebKitTestRunnerWindow.mm */; }; >+ 93C78823250C6C2E00C0AA24 /* ReftestFunctions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93C7881F250C69E400C0AA24 /* ReftestFunctions.cpp */; }; >+ 93C78831250C719F00C0AA24 /* JSBasics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93C78830250C719900C0AA24 /* JSBasics.cpp */; }; >+ 93C78832250C71B700C0AA24 /* JSBasics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93C78830250C719900C0AA24 /* JSBasics.cpp */; }; > A185103A1B9AE0DA00744AEB /* CrashReporterInfo.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0FEB90A31905BC6A000FDBF3 /* CrashReporterInfo.mm */; }; > A185103B1B9AE0E200744AEB /* TestControllerCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2DCE2CD11B84524500C7F832 /* TestControllerCocoa.mm */; }; > A185103C1B9AE0FE00744AEB /* Options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 841CC00D181185BF0042E9B6 /* Options.cpp */; }; >@@ -352,6 +355,10 @@ > 8DD76FA10486AA7600D96B5E /* WebKitTestRunner */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = WebKitTestRunner; sourceTree = BUILT_PRODUCTS_DIR; }; > 93764176210D736000A3DAAE /* WebKitTestRunnerWindow.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebKitTestRunnerWindow.mm; sourceTree = "<group>"; }; > 93764177210D736100A3DAAE /* WebKitTestRunnerWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebKitTestRunnerWindow.h; sourceTree = "<group>"; }; >+ 93C7881F250C69E400C0AA24 /* ReftestFunctions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ReftestFunctions.cpp; path = ../TestRunnerShared/ReftestFunctions.cpp; sourceTree = "<group>"; }; >+ 93C78820250C69E400C0AA24 /* ReftestFunctions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ReftestFunctions.h; path = ../TestRunnerShared/ReftestFunctions.h; sourceTree = "<group>"; }; >+ 93C7882F250C719900C0AA24 /* JSBasics.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JSBasics.h; path = ../TestRunnerShared/Bindings/JSBasics.h; sourceTree = "<group>"; }; >+ 93C78830250C719900C0AA24 /* JSBasics.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = JSBasics.cpp; path = ../TestRunnerShared/Bindings/JSBasics.cpp; sourceTree = "<group>"; }; > 9B0D132E2036D346008FC8FB /* WebKitTestRunnerApp-iOS.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = "WebKitTestRunnerApp-iOS.entitlements"; sourceTree = "<group>"; }; > 9B36A270209453A0003E0651 /* WhatToDump.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WhatToDump.h; sourceTree = "<group>"; }; > A18510271B9ADE4800744AEB /* libWebKitTestRunner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libWebKitTestRunner.a; sourceTree = BUILT_PRODUCTS_DIR; }; >@@ -536,6 +543,8 @@ > 0F73B5471BA782FE004B3EF4 /* UIScriptContext */, > 3148A0531E6F85B600D3B316 /* IOSLayoutTestCommunication.cpp */, > 3148A0541E6F85B600D3B316 /* IOSLayoutTestCommunication.h */, >+ 93C7881F250C69E400C0AA24 /* ReftestFunctions.cpp */, >+ 93C78820250C69E400C0AA24 /* ReftestFunctions.h */, > ); > name = TestRunnerShared; > sourceTree = "<group>"; >@@ -543,6 +552,8 @@ > 0F18E71B1D6BC4E60027E547 /* Bindings */ = { > isa = PBXGroup; > children = ( >+ 93C78830250C719900C0AA24 /* JSBasics.cpp */, >+ 93C7882F250C719900C0AA24 /* JSBasics.h */, > 0F18E7141D6BC4560027E547 /* JSWrappable.h */, > 0F18E7151D6BC4560027E547 /* JSWrapper.cpp */, > 0F18E7161D6BC4560027E547 /* JSWrapper.h */, >@@ -1184,6 +1195,7 @@ > A185103F1B9AE12900744AEB /* GeolocationProviderMock.cpp in Sources */, > F44A531821B899E500DBB99C /* InstanceMethodSwizzler.mm in Sources */, > 31DA8A3D1E7205CC00E1DF2F /* IOSLayoutTestCommunication.cpp in Sources */, >+ 93C78832250C71B700C0AA24 /* JSBasics.cpp in Sources */, > 0F73B5511BA78968004B3EF4 /* JSUIScriptController.cpp in Sources */, > 0F18E7181D6BC4560027E547 /* JSWrapper.cpp in Sources */, > F4C3578C20E8444600FA0748 /* LayoutTestSpellChecker.mm in Sources */, >@@ -1241,11 +1253,13 @@ > 29A8FCCB145EF02E009045A6 /* JSAccessibilityTextMarker.cpp in Sources */, > 29A8FCDD145F0337009045A6 /* JSAccessibilityTextMarkerRange.cpp in Sources */, > 29210EE1144CDB2600835BB5 /* JSAccessibilityUIElement.cpp in Sources */, >+ 93C78831250C719F00C0AA24 /* JSBasics.cpp in Sources */, > BC8FD8D2120E545B00F3E71A /* JSEventSendingController.cpp in Sources */, > BC14E4EA120E03D800826C0C /* JSGCController.cpp in Sources */, > BC952F1F11F3C652003398B4 /* JSTestRunner.cpp in Sources */, > 5641E2D014335E95008307E5 /* JSTextInputController.cpp in Sources */, > 0F6E89031D6BC5A2008ED0FA /* JSWrapper.cpp in Sources */, >+ 93C78823250C6C2E00C0AA24 /* ReftestFunctions.cpp in Sources */, > 2E63EDA61891BDC0002A7AFC /* TestRunner.cpp in Sources */, > C0CE720B1247C93300BC0EC4 /* TestRunnerMac.mm in Sources */, > 5664A49A14326384008881BE /* TextInputController.cpp in Sources */, >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 7ae07950e75d8adbfe19a561cb425fb8d1f2ba2e..2a7898dd9b127c62d22e817ce29f98e354ca380a 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,14 @@ >+2020-09-11 Darin Adler <darin@apple.com> >+ >+ Send TestRendered event after running a test but before dumping >+ https://bugs.webkit.org/show_bug.cgi?id=216428 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * platform/gtk/TestExpectations: >+ * platform/mac/TestExpectations: >+ Unskip two tests that no longer time out since we are sending this event. >+ > 2020-09-11 Karl Rackler <rackler@apple.com> > > REGRESSION: [ BigSur wk2 ] http/tests/security/webaudio-render-remote-audio-allowed-crossorigin.html is a constant failure >diff --git a/LayoutTests/platform/gtk/TestExpectations b/LayoutTests/platform/gtk/TestExpectations >index 5d0f06fe8e04813418e4bebc10d6701c6b52f85a..21accd829c98bcdc707161f04eb17dbe761b770b 100644 >--- a/LayoutTests/platform/gtk/TestExpectations >+++ b/LayoutTests/platform/gtk/TestExpectations >@@ -78,8 +78,6 @@ webkit.org/b/216397 imported/w3c/web-platform-tests/html/rendering/replaced-elem > webkit.org/b/216397 imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-compositing-change.html [ Timeout ] > webkit.org/b/216397 imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow-aspect-ratio.html [ Timeout ] > webkit.org/b/216397 imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow.html [ Timeout ] >-webkit.org/b/216397 imported/w3c/web-platform-tests/html/semantics/forms/the-option-element/dynamic-content-change-rendering.html [ Timeout ] >-webkit.org/b/216397 imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/reset-algorithm-rendering.html [ Timeout ] > webkit.org/b/216397 imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-bar-001.html [ Timeout ] > webkit.org/b/216397 webkit.org/b/214800 imported/w3c/web-platform-tests/web-animations/timing-model/animations/infinite-duration-animation.html [ Timeout ] > webkit.org/b/216397 imported/w3c/web-platform-tests/web-animations/timing-model/animations/reverse-running-animation.html [ Timeout ] >diff --git a/LayoutTests/platform/mac/TestExpectations b/LayoutTests/platform/mac/TestExpectations >index 948fdadaae28fc9e79755c7dd8a81e731e2da735..05dc428d89435c422d160e8c646c0a38e678929e 100644 >--- a/LayoutTests/platform/mac/TestExpectations >+++ b/LayoutTests/platform/mac/TestExpectations >@@ -2197,11 +2197,9 @@ webkit.org/b/216298 imported/w3c/web-platform-tests/IndexedDB/blob-valid-after-d > webkit.org/b/186045 imported/w3c/web-platform-tests/css/css-ui/text-overflow-017.html [ Skip ] > webkit.org/b/186045 imported/w3c/web-platform-tests/css/css-values/vh_not_refreshing_on_chrome.html [ Skip ] > webkit.org/b/186045 imported/w3c/web-platform-tests/html/rendering/replaced-elements/embedded-content/cross-domain-iframe.sub.html [ Skip ] >-webkit.org/b/186045 imported/w3c/web-platform-tests/html/semantics/forms/the-option-element/dynamic-content-change-rendering.html [ Skip ] >-webkit.org/b/186045 imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/reset-algorithm-rendering.html [ Skip ] > > #<rdar://63026283> [ macOS iOS ] media/modern-media-controls/playback-support/playback-support-autoplay.html is a flaky failure/timeout > [ BigSur+ ] media/modern-media-controls/playback-support/playback-support-autoplay.html [ Pass Failure ] > > # rdar://68736735 (REGRESSION: [ BigSur < 20A2374 ] fast/images/animated-gif-loop-count.html is a constant image failure) >-[ BigSur+ ] fast/images/animated-gif-loop-count.html [ ImageOnlyFailure ] >\ No newline at end of file >+[ BigSur+ ] fast/images/animated-gif-loop-count.html [ ImageOnlyFailure ]
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
sam
:
review+
ews-feeder
:
commit-queue-
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 216428
: 408584 |
408630
|
408641
|
408642