[webkit-changes] [250122] releases/Apple
Title: [250122] releases/Apple Revision 250122 Author m...@apple.com Date 2019-09-19 22:32:52 -0700 (Thu, 19 Sep 2019) Log Message Added a tag for Safari 13.0. Added Paths releases/Apple/Safari 13.0/ releases/Apple/Safari 13.0/ANGLE/ releases/Apple/Safari 13.0/_javascript_Core/ releases/Apple/Safari 13.0/WTF/ releases/Apple/Safari 13.0/WebCore/ releases/Apple/Safari 13.0/WebInspectorUI/ releases/Apple/Safari 13.0/WebKit/ releases/Apple/Safari 13.0/WebKitLegacy/ releases/Apple/Safari 13.0/bmalloc/ releases/Apple/Safari 13.0/libwebrtc/ Diff Index: releases/Apple/Safari 13.0/ANGLE === --- tags/Safari-608.1.49/Source/ThirdParty/ANGLE 2019-09-20 04:55:55 UTC (rev 250121) +++ releases/Apple/Safari 13.0/ANGLE 2019-09-20 05:32:52 UTC (rev 250122) Property changes: releases/Apple/Safari 13.0/ANGLE Added: allow-tabs +true \ No newline at end of property Added: svn:mergeinfo +/trunk/Source/ThirdParty/ANGLE:53455 \ No newline at end of property Index: releases/Apple/Safari 13.0/_javascript_Core === --- tags/Safari-608.1.49/Source/_javascript_Core 2019-09-20 04:55:55 UTC (rev 250121) +++ releases/Apple/Safari 13.0/_javascript_Core 2019-09-20 05:32:52 UTC (rev 250122) Property changes: releases/Apple/Safari 13.0/_javascript_Core Added: svn:mergeinfo +/trunk/Source/_javascript_Core:53455 \ No newline at end of property Index: releases/Apple/Safari 13.0/WTF === --- tags/Safari-608.1.49/Source/WTF 2019-09-20 04:55:55 UTC (rev 250121) +++ releases/Apple/Safari 13.0/WTF 2019-09-20 05:32:52 UTC (rev 250122) Property changes: releases/Apple/Safari 13.0/WTF Added: svn:mergeinfo +/trunk/Source/WTF:53455 \ No newline at end of property Index: releases/Apple/Safari 13.0/WebInspectorUI === --- tags/Safari-608.1.49/Source/WebInspectorUI 2019-09-20 04:55:55 UTC (rev 250121) +++ releases/Apple/Safari 13.0/WebInspectorUI 2019-09-20 05:32:52 UTC (rev 250122) Property changes: releases/Apple/Safari 13.0/WebInspectorUI Added: svn:mergeinfo +/trunk/Source/WebInspectorUI:53455 \ No newline at end of property Index: releases/Apple/Safari 13.0/bmalloc === --- tags/Safari-608.1.49/Source/bmalloc 2019-09-20 04:55:55 UTC (rev 250121) +++ releases/Apple/Safari 13.0/bmalloc 2019-09-20 05:32:52 UTC (rev 250122) Property changes: releases/Apple/Safari 13.0/bmalloc Added: svn:mergeinfo +/trunk/Source/bmalloc:53455 \ No newline at end of property Index: releases/Apple/Safari 13.0/libwebrtc === --- tags/Safari-608.1.49/Source/ThirdParty/libwebrtc 2019-09-20 04:55:55 UTC (rev 250121) +++ releases/Apple/Safari 13.0/libwebrtc 2019-09-20 05:32:52 UTC (rev 250122) Property changes: releases/Apple/Safari 13.0/libwebrtc Added: svn:mergeinfo +/trunk/Source/ThirdParty/libwebrtc:53455 \ No newline at end of property ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [250121] trunk/Tools
Title: [250121] trunk/Tools Revision 250121 Author bfulg...@apple.com Date 2019-09-19 21:55:55 -0700 (Thu, 19 Sep 2019) Log Message [FTW] Enable WebKitTestRunner build https://bugs.webkit.org/show_bug.cgi?id=201996 Reviewed by Fujii Hironori. It's time to start getting the test system up and running for FTW. This patch does the following: 1. Adds relevant CMake changes to get things building. 2. Adds a "--ftw" flag to the build scripts that will trigger a relevant build. 3. Updates 'webkitpy' to recognize the 'ftw' port. Note: Pixel tests are not yet supported. * PlatformFTW.cmake: Build the WK2 test runner. * Scripts/build-webkit: Update to recognize the FTW port. * Scripts/webkitdirs.pm: Ditto. * Scripts/webkitperl/webkitdirs_unittest/extractNonMacOSHostConfiguration.pl: Ditto. * Scripts/webkitpy/common/config/ports.py: Ditto. * Scripts/webkitpy/common/config/ports_unittest.py: Ditto. * Scripts/webkitpy/common/version_name_map.py: Ditto. * Scripts/webkitpy/port/factory.py: Ditto. * Scripts/webkitpy/port/win.py: Ditto. * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: (WTR::InjectedBundlePage::dumpDOMAsWebArchive): Don't build or run this method on Windows. * WebKitTestRunner/PlatformFTW.cmake: Added. * WebKitTestRunner/PlatformWebView.h: * WebKitTestRunner/win/PlatformWebViewWin.cpp: * WebKitTestRunner/win/TestInvocationDirect2D.cpp: Added. (WTR::TestInvocation::dumpPixelsAndCompareWithExpected): Add stub implementation. Modified Paths trunk/Tools/ChangeLog trunk/Tools/PlatformFTW.cmake trunk/Tools/Scripts/build-webkit trunk/Tools/Scripts/webkitdirs.pm trunk/Tools/Scripts/webkitperl/webkitdirs_unittest/extractNonMacOSHostConfiguration.pl trunk/Tools/Scripts/webkitpy/common/config/ports.py trunk/Tools/Scripts/webkitpy/common/config/ports_unittest.py trunk/Tools/Scripts/webkitpy/common/version_name_map.py trunk/Tools/Scripts/webkitpy/port/factory.py trunk/Tools/Scripts/webkitpy/port/win.py trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp trunk/Tools/WebKitTestRunner/PlatformWebView.h trunk/Tools/WebKitTestRunner/win/PlatformWebViewWin.cpp Added Paths trunk/Tools/WebKitTestRunner/PlatformFTW.cmake trunk/Tools/WebKitTestRunner/win/TestInvocationDirect2D.cpp Diff Modified: trunk/Tools/ChangeLog (250120 => 250121) --- trunk/Tools/ChangeLog 2019-09-20 04:47:51 UTC (rev 250120) +++ trunk/Tools/ChangeLog 2019-09-20 04:55:55 UTC (rev 250121) @@ -1,3 +1,38 @@ +2019-09-19 Brent Fulgham + +[FTW] Enable WebKitTestRunner build +https://bugs.webkit.org/show_bug.cgi?id=201996 + +Reviewed by Fujii Hironori. + +It's time to start getting the test system up and running for FTW. + +This patch does the following: + +1. Adds relevant CMake changes to get things building. +2. Adds a "--ftw" flag to the build scripts that will trigger a relevant build. +3. Updates 'webkitpy' to recognize the 'ftw' port. + +Note: Pixel tests are not yet supported. + +* PlatformFTW.cmake: Build the WK2 test runner. +* Scripts/build-webkit: Update to recognize the FTW port. +* Scripts/webkitdirs.pm: Ditto. +* Scripts/webkitperl/webkitdirs_unittest/extractNonMacOSHostConfiguration.pl: Ditto. +* Scripts/webkitpy/common/config/ports.py: Ditto. +* Scripts/webkitpy/common/config/ports_unittest.py: Ditto. +* Scripts/webkitpy/common/version_name_map.py: Ditto. +* Scripts/webkitpy/port/factory.py: Ditto. +* Scripts/webkitpy/port/win.py: Ditto. +* WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: +(WTR::InjectedBundlePage::dumpDOMAsWebArchive): Don't build or run this method +on Windows. +* WebKitTestRunner/PlatformFTW.cmake: Added. +* WebKitTestRunner/PlatformWebView.h: +* WebKitTestRunner/win/PlatformWebViewWin.cpp: +* WebKitTestRunner/win/TestInvocationDirect2D.cpp: Added. +(WTR::TestInvocation::dumpPixelsAndCompareWithExpected): Add stub implementation. + 2019-09-19 Fujii Hironori [Win][MiniBrowser] Use _com_ptr_t methods instead of calling QueryInterface explictly Modified: trunk/Tools/PlatformFTW.cmake (250120 => 250121) --- trunk/Tools/PlatformFTW.cmake 2019-09-20 04:47:51 UTC (rev 250120) +++ trunk/Tools/PlatformFTW.cmake 2019-09-20 04:55:55 UTC (rev 250121) @@ -5,6 +5,6 @@ add_subdirectory(MiniBrowser/win) endif () -#if (ENABLE_WEBKIT) -#add_subdirectory(WebKitTestRunner) -#endif () +if (ENABLE_WEBKIT) +add_subdirectory(WebKitTestRunner) +endif () Modified: trunk/Tools/Scripts/build-webkit (250120 => 250121) --- trunk/Tools/Scripts/build-webkit 2019-09-20 04:47:51 UTC (rev 250120) +++ trunk/Tools/Scripts/build-webkit 2019-09-20 04:55:55 UTC (rev 250121) @@ -1,6 +1,6 @@ #!/usr/bin/env perl -# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Apple Inc. All rights reserved. +# Copyright (C) 2005-2019 Apple Inc. All rights
[webkit-changes] [250119] trunk/Source/WebKit
Title: [250119] trunk/Source/WebKit Revision 250119 Author bfulg...@apple.com Date 2019-09-19 20:51:38 -0700 (Thu, 19 Sep 2019) Log Message [FTW, WinCairo] Support running tests in Release mode https://bugs.webkit.org/show_bug.cgi?id=202021 Reviewed by Don Olmstead. In Bug 201597, we added new features to better lock down JSC features in the potentially untrusted WebContent process. Unfortunately, this change included XPC Dictionary items used at startup to lock down JSC features before entering the main execution of the process. These changes were not done for the WinCairo or FTW ports. We need to pass the state of the JIT and whether to enable certain JSC features at process launch. Since the XPC mechanisms we use on macOS and iOS do not exist on Windows, I am implementing them as command-line flags. -configure-jsc-for-testing: Sets the JSC in testing mode. -disable-jit: Disables the JIT. See r249808 for the equivalent changes on macOS and iOS. * PlatformFTW.cmake: Add some missing header files needed when building tests. * Shared/win/AuxiliaryProcessMainWin.cpp: (WebKit::AuxiliaryProcessMainBase::parseCommandLine): * UIProcess/Launcher/win/ProcessLauncherWin.cpp: (WebKit::ProcessLauncher::launchProcess): Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/PlatformFTW.cmake trunk/Source/WebKit/Shared/win/AuxiliaryProcessMainWin.cpp trunk/Source/WebKit/UIProcess/Launcher/win/ProcessLauncherWin.cpp Diff Modified: trunk/Source/WebKit/ChangeLog (250118 => 250119) --- trunk/Source/WebKit/ChangeLog 2019-09-20 03:36:15 UTC (rev 250118) +++ trunk/Source/WebKit/ChangeLog 2019-09-20 03:51:38 UTC (rev 250119) @@ -1,3 +1,32 @@ +2019-09-19 Brent Fulgham + +[FTW, WinCairo] Support running tests in Release mode +https://bugs.webkit.org/show_bug.cgi?id=202021 + +Reviewed by Don Olmstead. + +In Bug 201597, we added new features to better lock down JSC features in the +potentially untrusted WebContent process. + +Unfortunately, this change included XPC Dictionary items used at startup to +lock down JSC features before entering the main execution of the process. These +changes were not done for the WinCairo or FTW ports. + +We need to pass the state of the JIT and whether to enable certain JSC features +at process launch. Since the XPC mechanisms we use on macOS and iOS do not exist +on Windows, I am implementing them as command-line flags. + +-configure-jsc-for-testing: Sets the JSC in testing mode. +-disable-jit: Disables the JIT. + +See r249808 for the equivalent changes on macOS and iOS. + +* PlatformFTW.cmake: Add some missing header files needed when building tests. +* Shared/win/AuxiliaryProcessMainWin.cpp: +(WebKit::AuxiliaryProcessMainBase::parseCommandLine): +* UIProcess/Launcher/win/ProcessLauncherWin.cpp: +(WebKit::ProcessLauncher::launchProcess): + 2019-09-19 Chris Dumez Add better logging for when the view visibility state changes Modified: trunk/Source/WebKit/PlatformFTW.cmake (250118 => 250119) --- trunk/Source/WebKit/PlatformFTW.cmake 2019-09-20 03:36:15 UTC (rev 250118) +++ trunk/Source/WebKit/PlatformFTW.cmake 2019-09-20 03:51:38 UTC (rev 250119) @@ -262,6 +262,7 @@ UIProcess/API/C/WKGeolocationManager.h UIProcess/API/C/WKGeolocationPermissionRequest.h UIProcess/API/C/WKGeolocationPosition.h +UIProcess/API/C/WKHTTPCookieStoreRef.h UIProcess/API/C/WKHitTestResult.h UIProcess/API/C/WKIconDatabase.h UIProcess/API/C/WKInspector.h @@ -293,8 +294,8 @@ UIProcess/API/C/WKPageNavigationClient.h UIProcess/API/C/WKPagePolicyClient.h UIProcess/API/C/WKPagePrivate.h +UIProcess/API/C/WKPageRenderingProgressEvents.h UIProcess/API/C/WKPageStateClient.h -UIProcess/API/C/WKPageRenderingProgressEvents.h UIProcess/API/C/WKPageUIClient.h UIProcess/API/C/WKPluginLoadPolicy.h UIProcess/API/C/WKPreferencesRef.h @@ -312,6 +313,7 @@ UIProcess/API/C/WKUserMediaPermissionRequest.h UIProcess/API/C/WKUserScriptRef.h UIProcess/API/C/WKViewportAttributes.h +UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h UIProcess/API/C/WKWebsiteDataStoreRef.h UIProcess/API/C/WKWebsitePolicies.h UIProcess/API/C/WKWindowFeaturesRef.h Modified: trunk/Source/WebKit/Shared/win/AuxiliaryProcessMainWin.cpp (250118 => 250119) --- trunk/Source/WebKit/Shared/win/AuxiliaryProcessMainWin.cpp 2019-09-20 03:36:15 UTC (rev 250118) +++ trunk/Source/WebKit/Shared/win/AuxiliaryProcessMainWin.cpp 2019-09-20 03:51:38 UTC (rev 250119) @@ -26,6 +26,7 @@ #include "config.h" #include "AuxiliaryProcessMain.h" +#include <_javascript_Core/ExecutableAllocator.h> #include #include @@ -40,7 +41,10 @@ } else if (!strcmp(argv[i], "-processIdentifier") && i + 1 < argc) { String str(argv[++i]);
[webkit-changes] [250118] trunk/Source/WebInspectorUI
Title: [250118] trunk/Source/WebInspectorUI Revision 250118 Author pecor...@apple.com Date 2019-09-19 20:36:15 -0700 (Thu, 19 Sep 2019) Log Message Web Inspector: searching in overrides doesn't work https://bugs.webkit.org/show_bug.cgi?id=202020 Reviewed by Devin Rousso. * UserInterface/Views/SourceCodeTextEditor.js: (WI.SourceCodeTextEditor.prototype.customPerformSearch): Do not go to agents for a local resource. Search locally in the TextEditor. Modified Paths trunk/Source/WebInspectorUI/ChangeLog trunk/Source/WebInspectorUI/UserInterface/Views/SourceCodeTextEditor.js Diff Modified: trunk/Source/WebInspectorUI/ChangeLog (250117 => 250118) --- trunk/Source/WebInspectorUI/ChangeLog 2019-09-20 03:18:45 UTC (rev 250117) +++ trunk/Source/WebInspectorUI/ChangeLog 2019-09-20 03:36:15 UTC (rev 250118) @@ -1,3 +1,14 @@ +2019-09-19 Joseph Pecoraro + +Web Inspector: searching in overrides doesn't work +https://bugs.webkit.org/show_bug.cgi?id=202020 + +Reviewed by Devin Rousso. + +* UserInterface/Views/SourceCodeTextEditor.js: +(WI.SourceCodeTextEditor.prototype.customPerformSearch): +Do not go to agents for a local resource. Search locally in the TextEditor. + 2019-09-19 Devin Rousso Web Inspector: Canvas: show WebGPU shader pipelines Modified: trunk/Source/WebInspectorUI/UserInterface/Views/SourceCodeTextEditor.js (250117 => 250118) --- trunk/Source/WebInspectorUI/UserInterface/Views/SourceCodeTextEditor.js 2019-09-20 03:18:45 UTC (rev 250117) +++ trunk/Source/WebInspectorUI/UserInterface/Views/SourceCodeTextEditor.js 2019-09-20 03:36:15 UTC (rev 250118) @@ -250,6 +250,8 @@ if (this._sourceCode instanceof WI.SourceMapResource) return false; +if (this._sourceCode instanceof WI.LocalResource) +return false; let caseSensitive = WI.SearchUtilities.defaultSettings.caseSensitive.value; let isRegex = WI.SearchUtilities.defaultSettings.regularExpression.value; ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [250117] trunk/Tools
Title: [250117] trunk/Tools Revision 250117 Author hironori.fu...@sony.com Date 2019-09-19 20:18:45 -0700 (Thu, 19 Sep 2019) Log Message [Win][MiniBrowser] Use _com_ptr_t methods instead of calling QueryInterface explictly https://bugs.webkit.org/show_bug.cgi?id=201976 Reviewed by Don Olmstead. This change consists of three refactorings: 1. Replaced explicit QueryInterface with _com_ptr_t methods 2. Replaced typedef with _COM_SMARTPTR_TYPEDEF macro 3. Replaced WebCore's COMPtr with _com_ptr_t because it is not a public WebKit API * MiniBrowser/win/MiniBrowserWebHost.cpp: (MiniBrowserWebHost::didFirstLayoutInFrame): Deleted. * MiniBrowser/win/MiniBrowserWebHost.h: (MiniBrowserWebHost::didFirstLayoutInFrame): * MiniBrowser/win/PrintWebUIDelegate.cpp: (getHandleFromWebView): (PrintWebUIDelegate::webViewPrintingMarginRect): (PrintWebUIDelegate::runModal): (PrintWebUIDelegate::createModalDialog): * MiniBrowser/win/WebKitLegacyBrowserWindow.cpp: (WebKitLegacyBrowserWindow::init): (WebKitLegacyBrowserWindow::setToDefaultPreferences): (WebKitLegacyBrowserWindow::showLastVisitedSites): (WebKitLegacyBrowserWindow::reload): (WebKitLegacyBrowserWindow::resetZoom): (WebKitLegacyBrowserWindow::zoomIn): (WebKitLegacyBrowserWindow::zoomOut): (WebKitLegacyBrowserWindow::showLayerTree): (WebKitLegacyBrowserWindow::print): * MiniBrowser/win/WebKitLegacyBrowserWindow.h: (WebKitLegacyBrowserWindow::privatePreferences): * MiniBrowser/win/WinMain.cpp: (wWinMain): * MiniBrowser/win/stdafx.h: Modified Paths trunk/Tools/ChangeLog trunk/Tools/MiniBrowser/win/MiniBrowserWebHost.cpp trunk/Tools/MiniBrowser/win/MiniBrowserWebHost.h trunk/Tools/MiniBrowser/win/PrintWebUIDelegate.cpp trunk/Tools/MiniBrowser/win/WebKitLegacyBrowserWindow.cpp trunk/Tools/MiniBrowser/win/WebKitLegacyBrowserWindow.h trunk/Tools/MiniBrowser/win/WinMain.cpp trunk/Tools/MiniBrowser/win/stdafx.h Diff Modified: trunk/Tools/ChangeLog (250116 => 250117) --- trunk/Tools/ChangeLog 2019-09-20 02:31:45 UTC (rev 250116) +++ trunk/Tools/ChangeLog 2019-09-20 03:18:45 UTC (rev 250117) @@ -1,3 +1,40 @@ +2019-09-19 Fujii Hironori + +[Win][MiniBrowser] Use _com_ptr_t methods instead of calling QueryInterface explictly +https://bugs.webkit.org/show_bug.cgi?id=201976 + +Reviewed by Don Olmstead. + +This change consists of three refactorings: +1. Replaced explicit QueryInterface with _com_ptr_t methods +2. Replaced typedef with _COM_SMARTPTR_TYPEDEF macro +3. Replaced WebCore's COMPtr with _com_ptr_t because it is not a public WebKit API + +* MiniBrowser/win/MiniBrowserWebHost.cpp: +(MiniBrowserWebHost::didFirstLayoutInFrame): Deleted. +* MiniBrowser/win/MiniBrowserWebHost.h: +(MiniBrowserWebHost::didFirstLayoutInFrame): +* MiniBrowser/win/PrintWebUIDelegate.cpp: +(getHandleFromWebView): +(PrintWebUIDelegate::webViewPrintingMarginRect): +(PrintWebUIDelegate::runModal): +(PrintWebUIDelegate::createModalDialog): +* MiniBrowser/win/WebKitLegacyBrowserWindow.cpp: +(WebKitLegacyBrowserWindow::init): +(WebKitLegacyBrowserWindow::setToDefaultPreferences): +(WebKitLegacyBrowserWindow::showLastVisitedSites): +(WebKitLegacyBrowserWindow::reload): +(WebKitLegacyBrowserWindow::resetZoom): +(WebKitLegacyBrowserWindow::zoomIn): +(WebKitLegacyBrowserWindow::zoomOut): +(WebKitLegacyBrowserWindow::showLayerTree): +(WebKitLegacyBrowserWindow::print): +* MiniBrowser/win/WebKitLegacyBrowserWindow.h: +(WebKitLegacyBrowserWindow::privatePreferences): +* MiniBrowser/win/WinMain.cpp: +(wWinMain): +* MiniBrowser/win/stdafx.h: + 2019-09-19 Joanmarie Diggs [GTK] Dependency hunspell-en-gb cannot be found on Fedora 30 Modified: trunk/Tools/MiniBrowser/win/MiniBrowserWebHost.cpp (250116 => 250117) --- trunk/Tools/MiniBrowser/win/MiniBrowserWebHost.cpp 2019-09-20 02:31:45 UTC (rev 250116) +++ trunk/Tools/MiniBrowser/win/MiniBrowserWebHost.cpp 2019-09-20 03:18:45 UTC (rev 250117) @@ -32,8 +32,6 @@ #include "WebKitLegacyBrowserWindow.h" #include -typedef _com_ptr_t<_com_IIID> IWebDataSourcePtr; - HRESULT MiniBrowserWebHost::didCommitLoadForFrame(_In_opt_ IWebView* webView, _In_opt_ IWebFrame* frame) { return didChangeLocationWithinPageForFrame(webView, frame); @@ -149,18 +147,6 @@ return S_OK; } -HRESULT MiniBrowserWebHost::didFirstLayoutInFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame* frame) -{ -if (!frame) -return E_POINTER; - -IWebFrame2Ptr frame2; -if (FAILED(frame->QueryInterface(( -return S_OK; - -return S_OK; -} - HRESULT MiniBrowserWebHost::onNotify(_In_opt_ IWebNotification* notification) { _bstr_t name; Modified: trunk/Tools/MiniBrowser/win/MiniBrowserWebHost.h (250116 => 250117) --- trunk/Tools/MiniBrowser/win/MiniBrowserWebHost.h 2019-09-20 02:31:45
[webkit-changes] [250116] trunk
Title: [250116] trunk Revision 250116 Author ysuz...@apple.com Date 2019-09-19 19:31:45 -0700 (Thu, 19 Sep 2019) Log Message [JSC] DFG op_call_varargs should not assume that one-previous-local of freeReg is usable https://bugs.webkit.org/show_bug.cgi?id=202014 Reviewed by Saam Barati. JSTests: * stress/call-varargs-inlining-should-not-clobber-previous-to-free-register.js: Added. (__v0): Source/_javascript_Core: Let's look into the bytecode generated by the test. [ 0] enter [ 1] get_scope loc4 [ 3] movloc5, loc4 [ 6] check_traps [ 7] movloc6, callee [ 10] create_direct_arguments loc7 [ 12] to_thisthis [ 15] movloc8, loc7 [ 18] movloc9, loc6 [ 21] movloc12, Undefined(const0) [ 24] get_by_id loc11, loc6, 0 [ 29] jneq_ptr loc11, ApplyFunction, 18(->47) [ 34] movloc11, loc6 [ 37] call_varargs loc11, loc11, this, loc8, loc13, 0 [ 45] jmp17(->62) [ 47] movloc16, loc6 [ 50] movloc15, this [ 53] movloc14, loc8 [ 56] call loc11, loc11, 3, 22 ... call_varargs uses loc13 as firstFreeReg (first usable bottom register in the current stack-frame to spread variadic arguments after this). This is correct. And call_varargs uses |this| as this argument for the call_varargs. This |this| argument is not in a region starting from loc13. And it is not in the previous place to loc13 (|this| is not loc12). On the other hand, DFG::ByteCodeParser's inlining path is always assuming that the previous to firstFreeReg is usable and part of arguments. But this is wrong. loc12 in the above bytecode is used for `[ 56] call loc11, loc11, 3, 22`'s argument later, and this call assumes that loc12 is not clobbered by call_varargs. But DFG and FTL clobbers it. The test is recursively calling the same function, and we inline the same function one-level. And stack-overflow error happens when inlined CallForwardVarargs (from op_call_varargs) is called. FTL recovers the frames, and at this point, outer function's loc12 is recovered to garbage since LoadVarargs clobbers it. And we eventually use it and crash. 60: LoadVarargs(Check:Untyped:Kill:@30, MustGen, start = loc13, count = loc15, machineStart = loc7, machineCount = loc9, offset = 0, mandatoryMinimum = 0, limit = 2, R:World, W:Stack(-16),Stack(-14),Stack(-13),Heap, Exits, ClobbersExit, bc#37, ExitValid) This LoadVarargs clobbers loc12, loc13, and loc15 while loc12 is used. In all the tiers, op_call_varargs first allocates enough region to hold varargs including |this|. And we store |this| value to a correct place. DFG should not assume that the previous register to firstFreeReg is used for |this|. This patch fixes DFG::ByteCodeParser's stack region calculation for op_call_varargs inlining. And we rename maxNumArguments to maxArgumentCountIncludingThis to represent that `maxArgumentCountIncludingThis` includes |this| count. * bytecode/CallLinkInfo.cpp: (JSC::CallLinkInfo::setMaxArgumentCountIncludingThis): (JSC::CallLinkInfo::setMaxNumArguments): Deleted. * bytecode/CallLinkInfo.h: (JSC::CallLinkInfo::addressOfMaxArgumentCountIncludingThis): (JSC::CallLinkInfo::maxArgumentCountIncludingThis): (JSC::CallLinkInfo::addressOfMaxNumArguments): Deleted. (JSC::CallLinkInfo::maxNumArguments): Deleted. * bytecode/CallLinkStatus.cpp: (JSC::CallLinkStatus::computeFor): (JSC::CallLinkStatus::dump const): * bytecode/CallLinkStatus.h: (JSC::CallLinkStatus::maxArgumentCountIncludingThis const): (JSC::CallLinkStatus::maxNumArguments const): Deleted. * dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::handleVarargsInlining): * dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::emitCall): * dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::emitCall): * ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileDirectCallOrConstruct): * jit/JITCall.cpp: (JSC::JIT::compileSetupFrame): * jit/JITCall32_64.cpp: (JSC::JIT::compileSetupFrame): * jit/JITOperations.cpp: Modified Paths trunk/JSTests/ChangeLog trunk/Source/_javascript_Core/ChangeLog trunk/Source/_javascript_Core/bytecode/CallLinkInfo.cpp trunk/Source/_javascript_Core/bytecode/CallLinkInfo.h trunk/Source/_javascript_Core/bytecode/CallLinkStatus.cpp trunk/Source/_javascript_Core/bytecode/CallLinkStatus.h trunk/Source/_javascript_Core/dfg/DFGByteCodeParser.cpp trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp trunk/Source/_javascript_Core/ftl/FTLLowerDFGToB3.cpp trunk/Source/_javascript_Core/jit/JITCall.cpp trunk/Source/_javascript_Core/jit/JITCall32_64.cpp trunk/Source/_javascript_Core/jit/JITOperations.cpp Added Paths
[webkit-changes] [250113] trunk/Tools
Title: [250113] trunk/Tools Revision 250113 Author jbed...@apple.com Date 2019-09-19 17:46:11 -0700 (Thu, 19 Sep 2019) Log Message results.webkit.org: Collapse results with the same version name https://bugs.webkit.org/show_bug.cgi?id=201779 Rubber-stamped by Aakash Jain. * resultsdbpy/resultsdbpy/view/static/js/configuration.js: (Configuration.prototype.const.ending.this.version_name.substring): (Configuration.prototype.toKey): Prefer version_name over version number in key. (Configuration.prototype.compare): version_name comparison should always override version comparison. (Configuration.prototype.compareSDKs): Make SDK regex global. (Configuration.prototype.toParams): Remove E tag on version_name. (Configuration): Append E tag on the version_name based on the SDK. * resultsdbpy/resultsdbpy/view/static/js/timeline.js: (TimelineFromEndpoint.prototype.toString): Print version number with SDK. Modified Paths trunk/Tools/ChangeLog trunk/Tools/resultsdbpy/resultsdbpy/view/static/js/configuration.js trunk/Tools/resultsdbpy/resultsdbpy/view/static/js/timeline.js Diff Modified: trunk/Tools/ChangeLog (250112 => 250113) --- trunk/Tools/ChangeLog 2019-09-20 00:29:56 UTC (rev 250112) +++ trunk/Tools/ChangeLog 2019-09-20 00:46:11 UTC (rev 250113) @@ -1,3 +1,20 @@ +2019-09-19 Jonathan Bedard + +results.webkit.org: Collapse results with the same version name +https://bugs.webkit.org/show_bug.cgi?id=201779 + +Rubber-stamped by Aakash Jain. + +* resultsdbpy/resultsdbpy/view/static/js/configuration.js: +(Configuration.prototype.const.ending.this.version_name.substring): +(Configuration.prototype.toKey): Prefer version_name over version number in key. +(Configuration.prototype.compare): version_name comparison should always override version comparison. +(Configuration.prototype.compareSDKs): Make SDK regex global. +(Configuration.prototype.toParams): Remove E tag on version_name. +(Configuration): Append E tag on the version_name based on the SDK. +* resultsdbpy/resultsdbpy/view/static/js/timeline.js: +(TimelineFromEndpoint.prototype.toString): Print version number with SDK. + 2019-09-19 Ryan Haddad REGRESSION: [iOS 13?] TestWebKitAPI.SharedBufferTest.tryCreateArrayBufferLargeSegments is failing Modified: trunk/Tools/resultsdbpy/resultsdbpy/view/static/js/configuration.js (250112 => 250113) --- trunk/Tools/resultsdbpy/resultsdbpy/view/static/js/configuration.js 2019-09-20 00:29:56 UTC (rev 250112) +++ trunk/Tools/resultsdbpy/resultsdbpy/view/static/js/configuration.js 2019-09-20 00:46:11 UTC (rev 250113) @@ -29,6 +29,7 @@ const OPTIONAL_MEMBERS = ['flavor', 'style', 'model', 'version_name']; const FILTERING_MEMBERS = ['sdk']; const VERSION_OFFSET_CONSTANT = 1000; +const SDK_REGEX = /(\d+)([A-Z])(\d+)(.*)/; // This class is very similar to the Python Configuration class class Configuration { @@ -105,15 +106,28 @@ this.flavor = json.flavor ? json.flavor : null; this.model = json.model ? json.model : null; this.architecture = json.architecture ? json.architecture : null; + +// Mid-year releases really need to be treated with an entirely different version_name. The only way to reliably +// identify such a release is with the SDK (version numbers have historically ranged between .2 and .4) +// While appending E to all realese with an SDK after a mid-year release isn't entirely correct, it's close enough +// that the user can quickly dicern the differences by inspecting the specific SDK differences +if (this.sdk && this.version_name && !(json instanceof Configuration)) { +const match = this.sdk.match(SDK_REGEX); +const ending = this.version_name.substring(this.version_name.length - 2) +if (match && ending !== ' E' && match[2].localeCompare('E') >= 0) +this.version_name = `${this.version_name} E`; +else if (!match) +console.error(`'${this.sdk}' does not match the SDK regular _expression_`); +} } toKey() { let result = '' if (this.platform != null) result += ' ' + this.platform -if (this.version != null) +if (this.version_name != null) +result += ' ' + this.version_name; +else if (this.version != null) result += ' ' + Configuration.integerToVersion(this.version); -else if (this.version_name != null) -result += ' ' + this.version_name; if (this.sdk != null) result += ' (' + this.sdk + ')'; if (this.is_simulator != null && this.is_simulator) @@ -163,20 +177,28 @@ if (configuration === null) return 1; -const lst = ['platform', 'is_simulator', 'version', 'version_name', 'flavor', 'style', 'architecture', 'model']; +const lst = [['platform'], ['is_simulator'],
[webkit-changes] [250112] trunk/Source/JavaScriptCore
Title: [250112] trunk/Source/_javascript_Core Revision 250112 Author mark@apple.com Date 2019-09-19 17:29:56 -0700 (Thu, 19 Sep 2019) Log Message Rename VMInspector::m_list to m_vmList. https://bugs.webkit.org/show_bug.cgi?id=202015 Reviewed by Yusuke Suzuki. m_vmList is more descriptive, and this rename helps grep-ability by disambiguating it from other m_lists in the code base. * tools/VMInspector.cpp: (JSC::VMInspector::add): (JSC::VMInspector::remove): * tools/VMInspector.h: (JSC::VMInspector::iterate): Modified Paths trunk/Source/_javascript_Core/ChangeLog trunk/Source/_javascript_Core/tools/VMInspector.cpp trunk/Source/_javascript_Core/tools/VMInspector.h Diff Modified: trunk/Source/_javascript_Core/ChangeLog (250111 => 250112) --- trunk/Source/_javascript_Core/ChangeLog 2019-09-20 00:11:57 UTC (rev 250111) +++ trunk/Source/_javascript_Core/ChangeLog 2019-09-20 00:29:56 UTC (rev 250112) @@ -1,5 +1,21 @@ 2019-09-19 Mark Lam +Rename VMInspector::m_list to m_vmList. +https://bugs.webkit.org/show_bug.cgi?id=202015 + +Reviewed by Yusuke Suzuki. + +m_vmList is more descriptive, and this rename helps grep-ability by disambiguating +it from other m_lists in the code base. + +* tools/VMInspector.cpp: +(JSC::VMInspector::add): +(JSC::VMInspector::remove): +* tools/VMInspector.h: +(JSC::VMInspector::iterate): + +2019-09-19 Mark Lam + Reduce the number of required tag bits for the JSValue. https://bugs.webkit.org/show_bug.cgi?id=201990 Modified: trunk/Source/_javascript_Core/tools/VMInspector.cpp (250111 => 250112) --- trunk/Source/_javascript_Core/tools/VMInspector.cpp 2019-09-20 00:11:57 UTC (rev 250111) +++ trunk/Source/_javascript_Core/tools/VMInspector.cpp 2019-09-20 00:29:56 UTC (rev 250112) @@ -56,13 +56,13 @@ void VMInspector::add(VM* vm) { auto locker = holdLock(m_lock); -m_list.append(vm); +m_vmList.append(vm); } void VMInspector::remove(VM* vm) { auto locker = holdLock(m_lock); -m_list.remove(vm); +m_vmList.remove(vm); } auto VMInspector::lock(Seconds timeout) -> Expected Modified: trunk/Source/_javascript_Core/tools/VMInspector.h (250111 => 250112) --- trunk/Source/_javascript_Core/tools/VMInspector.h 2019-09-20 00:11:57 UTC (rev 250111) +++ trunk/Source/_javascript_Core/tools/VMInspector.h 2019-09-20 00:29:56 UTC (rev 250112) @@ -83,7 +83,7 @@ private: template void iterate(const Functor& functor) { -for (VM* vm = m_list.head(); vm; vm = vm->next()) { +for (VM* vm = m_vmList.head(); vm; vm = vm->next()) { FunctorStatus status = functor(*vm); if (status == FunctorStatus::Done) return; @@ -91,7 +91,7 @@ } Lock m_lock; -DoublyLinkedList m_list; +DoublyLinkedList m_vmList; }; } // namespace JSC ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [250111] trunk/Source/WebKit
Title: [250111] trunk/Source/WebKit Revision 250111 Author cdu...@apple.com Date 2019-09-19 17:11:57 -0700 (Thu, 19 Sep 2019) Log Message Add better logging for when the view visibility state changes https://bugs.webkit.org/show_bug.cgi?id=202008 Reviewed by Geoffrey Garen. * UIProcess/ApplicationStateTracker.mm: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::updateActivityState): * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::applicationDidEnterBackground): (WebKit::WebPageProxy::applicationWillEnterForeground): Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/UIProcess/ApplicationStateTracker.mm trunk/Source/WebKit/UIProcess/WebPageProxy.cpp trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm Diff Modified: trunk/Source/WebKit/ChangeLog (250110 => 250111) --- trunk/Source/WebKit/ChangeLog 2019-09-19 23:55:36 UTC (rev 250110) +++ trunk/Source/WebKit/ChangeLog 2019-09-20 00:11:57 UTC (rev 250111) @@ -1,5 +1,19 @@ 2019-09-19 Chris Dumez +Add better logging for when the view visibility state changes +https://bugs.webkit.org/show_bug.cgi?id=202008 + +Reviewed by Geoffrey Garen. + +* UIProcess/ApplicationStateTracker.mm: +* UIProcess/WebPageProxy.cpp: +(WebKit::WebPageProxy::updateActivityState): +* UIProcess/ios/WebPageProxyIOS.mm: +(WebKit::WebPageProxy::applicationDidEnterBackground): +(WebKit::WebPageProxy::applicationWillEnterForeground): + +2019-09-19 Chris Dumez + Regression(r248832): Unable to quicklook HTML files in Mail https://bugs.webkit.org/show_bug.cgi?id=202012 Modified: trunk/Source/WebKit/UIProcess/ApplicationStateTracker.mm (250110 => 250111) --- trunk/Source/WebKit/UIProcess/ApplicationStateTracker.mm 2019-09-19 23:55:36 UTC (rev 250110) +++ trunk/Source/WebKit/UIProcess/ApplicationStateTracker.mm 2019-09-20 00:11:57 UTC (rev 250111) @@ -105,11 +105,14 @@ switch (applicationType(window)) { case ApplicationType::Application: { m_isInBackground = application.applicationState == UIApplicationStateBackground; +RELEASE_LOG(ProcessSuspension, "%p - ApplicationStateTracker::ApplicationStateTracker(): m_isInBackground: %d", this, m_isInBackground); #if HAVE(UISCENE) m_didEnterBackgroundObserver = [notificationCenter addObserverForName:UISceneDidEnterBackgroundNotification object:window.windowScene queue:nil usingBlock:[this](NSNotification *) { +RELEASE_LOG(ProcessSuspension, "%p - ApplicationStateTracker: UISceneDidEnterBackground", this); #else m_didEnterBackgroundObserver = [notificationCenter addObserverForName:UIApplicationDidEnterBackgroundNotification object:application queue:nil usingBlock:[this](NSNotification *) { +RELEASE_LOG(ProcessSuspension, "%p - ApplicationStateTracker: UIApplicationDidEnterBackground", this); #endif applicationDidEnterBackground(); }]; @@ -116,8 +119,10 @@ #if HAVE(UISCENE) m_willEnterForegroundObserver = [notificationCenter addObserverForName:UISceneWillEnterForegroundNotification object:window.windowScene queue:nil usingBlock:[this](NSNotification *) { +RELEASE_LOG(ProcessSuspension, "%p - ApplicationStateTracker: UISceneWillEnterForeground", this); #else m_willEnterForegroundObserver = [notificationCenter addObserverForName:UIApplicationWillEnterForegroundNotification object:application queue:nil usingBlock:[this](NSNotification *) { +RELEASE_LOG(ProcessSuspension, "%p - ApplicationStateTracker: UIApplicationWillEnterForeground", this); #endif applicationWillEnterForeground(); }]; Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (250110 => 250111) --- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2019-09-19 23:55:36 UTC (rev 250110) +++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2019-09-20 00:11:57 UTC (rev 250111) @@ -1726,13 +1726,19 @@ void WebPageProxy::updateActivityState(OptionSet flagsToUpdate) { +bool wasVisible = isViewVisible(); m_activityState.remove(flagsToUpdate); if (flagsToUpdate & ActivityState::IsFocused && pageClient().isViewFocused()) m_activityState.add(ActivityState::IsFocused); if (flagsToUpdate & ActivityState::WindowIsActive && pageClient().isViewWindowActive()) m_activityState.add(ActivityState::WindowIsActive); -if (flagsToUpdate & ActivityState::IsVisible && pageClient().isViewVisible()) -m_activityState.add(ActivityState::IsVisible); +if (flagsToUpdate & ActivityState::IsVisible) { +bool isNowVisible = pageClient().isViewVisible(); +if (isNowVisible) +m_activityState.add(ActivityState::IsVisible); +if (wasVisible != isNowVisible) +RELEASE_LOG_IF_ALLOWED(ViewState, "updateActivityState: view visibility state changed %d -> %d", wasVisible, isNowVisible); +} if (flagsToUpdate &
[webkit-changes] [250110] trunk/Source/WebKit
Title: [250110] trunk/Source/WebKit Revision 250110 Author cdu...@apple.com Date 2019-09-19 16:55:36 -0700 (Thu, 19 Sep 2019) Log Message Regression(r248832): Unable to quicklook HTML files in Mail https://bugs.webkit.org/show_bug.cgi?id=202012 Reviewed by Geoff Garen and Brent Fulgham. r248832 inadvertently reverted the fix for Mail that landed in r247400 by not using the same logic to initialize the sandbox extension if the process had already finished launching or not. In particular, the new code path that happens on process launch unconditionally used '/' as resource directory for the sandbox extension if the client did not provide one. The logic in maybeInitializeSandboxExtensionHandle() would use the file URL's base URL as resource directory when creating a sandbox extension for '/' would fail (which it often does). To address the issue, have the logic that runs on process launch call maybeInitializeSandboxExtensionHandle() so avoid duplicating code and make sure both cases now have the Mail fix. * UIProcess/AuxiliaryProcessProxy.cpp: (WebKit::AuxiliaryProcessProxy::didFinishLaunching): * UIProcess/AuxiliaryProcessProxy.h: (WebKit::AuxiliaryProcessProxy::isLaunching const): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle): (WebKit::WebPageProxy::loadRequestWithNavigationShared): (WebKit::WebPageProxy::loadFile): * UIProcess/WebPageProxy.h: * WebProcess/WebPage/WebPage.messages.in: Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp trunk/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h trunk/Source/WebKit/UIProcess/WebPageProxy.cpp trunk/Source/WebKit/UIProcess/WebPageProxy.h trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp trunk/Source/WebKit/WebProcess/WebPage/WebPage.h trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in Diff Modified: trunk/Source/WebKit/ChangeLog (250109 => 250110) --- trunk/Source/WebKit/ChangeLog 2019-09-19 23:34:06 UTC (rev 250109) +++ trunk/Source/WebKit/ChangeLog 2019-09-19 23:55:36 UTC (rev 250110) @@ -1,3 +1,34 @@ +2019-09-19 Chris Dumez + +Regression(r248832): Unable to quicklook HTML files in Mail +https://bugs.webkit.org/show_bug.cgi?id=202012 + + +Reviewed by Geoff Garen and Brent Fulgham. + +r248832 inadvertently reverted the fix for Mail that landed in r247400 by not using +the same logic to initialize the sandbox extension if the process had already +finished launching or not. In particular, the new code path that happens on process +launch unconditionally used '/' as resource directory for the sandbox extension if +the client did not provide one. The logic in maybeInitializeSandboxExtensionHandle() +would use the file URL's base URL as resource directory when creating a sandbox +extension for '/' would fail (which it often does). + +To address the issue, have the logic that runs on process launch call +maybeInitializeSandboxExtensionHandle() so avoid duplicating code and make sure +both cases now have the Mail fix. + +* UIProcess/AuxiliaryProcessProxy.cpp: +(WebKit::AuxiliaryProcessProxy::didFinishLaunching): +* UIProcess/AuxiliaryProcessProxy.h: +(WebKit::AuxiliaryProcessProxy::isLaunching const): +* UIProcess/WebPageProxy.cpp: +(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle): +(WebKit::WebPageProxy::loadRequestWithNavigationShared): +(WebKit::WebPageProxy::loadFile): +* UIProcess/WebPageProxy.h: +* WebProcess/WebPage/WebPage.messages.in: + 2019-09-19 Tim Horton macCatalyst apps crash under TextCheckingControllerProxy::replaceRelativeToSelection when spell checking Modified: trunk/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp (250109 => 250110) --- trunk/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp 2019-09-19 23:34:06 UTC (rev 250109) +++ trunk/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp 2019-09-19 23:55:36 UTC (rev 250110) @@ -30,6 +30,8 @@ #include "LoadParameters.h" #include "Logging.h" #include "WebPageMessages.h" +#include "WebPageProxy.h" +#include "WebProcessProxy.h" #include namespace WebKit { @@ -217,12 +219,16 @@ auto bufferSize = encoder->bufferSize(); std::unique_ptr decoder = makeUnique(buffer, bufferSize, nullptr, Vector { }); LoadParameters loadParameters; -String sandboxExtensionPath; -if (decoder->decode(loadParameters) && decoder->decode(sandboxExtensionPath)) { -SandboxExtension::createHandleForReadByPid(sandboxExtensionPath, processIdentifier(), loadParameters.sandboxExtensionHandle); -send(Messages::WebPage::LoadRequest(loadParameters), decoder->destinationID()); -continue; -} +URL resourceDirectoryURL; +WebPageProxyIdentifier
[webkit-changes] [250109] tags/Safari-608.2.11.1.8/
Title: [250109] tags/Safari-608.2.11.1.8/ Revision 250109 Author alanc...@apple.com Date 2019-09-19 16:34:06 -0700 (Thu, 19 Sep 2019) Log Message Tag Safari-608.2.11.1.8. Added Paths tags/Safari-608.2.11.1.8/ Diff ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [250108] trunk/Source/WebKit
Title: [250108] trunk/Source/WebKit Revision 250108 Author timothy_hor...@apple.com Date 2019-09-19 16:15:52 -0700 (Thu, 19 Sep 2019) Log Message macCatalyst apps crash under TextCheckingControllerProxy::replaceRelativeToSelection when spell checking https://bugs.webkit.org/show_bug.cgi?id=202010 Reviewed by Beth Dakin. * WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm: (WebKit::TextCheckingControllerProxy::replaceRelativeToSelection): relativeReplacementRange is in the coordinate space of the document's text, not the replacement string. We need to adjust into replacement string coordinates before slicing the replacement, or we'll throw an exception trying to read past the end of the string, in the case where the replacement string is shorter than the replaced string (by more than 2 characters). Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm Diff Modified: trunk/Source/WebKit/ChangeLog (250107 => 250108) --- trunk/Source/WebKit/ChangeLog 2019-09-19 22:23:50 UTC (rev 250107) +++ trunk/Source/WebKit/ChangeLog 2019-09-19 23:15:52 UTC (rev 250108) @@ -1,3 +1,19 @@ +2019-09-19 Tim Horton + +macCatalyst apps crash under TextCheckingControllerProxy::replaceRelativeToSelection when spell checking +https://bugs.webkit.org/show_bug.cgi?id=202010 + + +Reviewed by Beth Dakin. + +* WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm: +(WebKit::TextCheckingControllerProxy::replaceRelativeToSelection): +relativeReplacementRange is in the coordinate space of the document's text, +not the replacement string. We need to adjust into replacement string +coordinates before slicing the replacement, or we'll throw an exception +trying to read past the end of the string, in the case where the +replacement string is shorter than the replaced string (by more than 2 characters). + 2019-09-19 Yury Semikhatsky WebStorageNamespaceProvider / StorageNamespaceImpl no longer need SessionIDs Modified: trunk/Source/WebKit/WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm (250107 => 250108) --- trunk/Source/WebKit/WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm 2019-09-19 22:23:50 UTC (rev 250107) +++ trunk/Source/WebKit/WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm 2019-09-19 23:15:52 UTC (rev 250108) @@ -113,7 +113,7 @@ auto replacementRange = rangeAndOffsetOfReplacement->range; if (replacementRange) { bool restoreSelection = frameSelection.selection().isRange(); -frame.editor().replaceRangeForSpellChecking(*replacementRange, [[annotatedString.string string] substringWithRange:NSMakeRange(relativeReplacementLocation, relativeReplacementLength)]); +frame.editor().replaceRangeForSpellChecking(*replacementRange, [[annotatedString.string string] substringWithRange:NSMakeRange(relativeReplacementLocation, relativeReplacementLength + [annotatedString.string length] - length)]); size_t selectionLocationToRestore = locationInRoot - selectionOffset; if (restoreSelection && selectionLocationToRestore > locationInRoot + relativeReplacementLocation + relativeReplacementLength) { ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [250107] trunk/Source/JavaScriptCore
Title: [250107] trunk/Source/_javascript_Core Revision 250107 Author mark@apple.com Date 2019-09-19 15:23:50 -0700 (Thu, 19 Sep 2019) Log Message Reduce the number of required tag bits for the JSValue. https://bugs.webkit.org/show_bug.cgi?id=201990 Reviewed by Yusuke Suzuki. We're reducing the number of tag bits to 15. It should just work. How did we arrive at 15 bits? Currently, the minimum number of top bits used by doubles is 13-bits. The highest double bit encoding are: "negative" pureNaN: starts with 0xfff8 negative infinity: starts with 0xfff0 highest number: starts with 0xffe* lowest number: starts with 0x Requirements: 1. We need tags for 2 range of numbers: pointers (all 0s at the top), and ints (all 1s at the top). 2. We want to be able to add an offset to double bits and ensure that they never end up in the ranges for pointers and ints. 3. The int tag must be higher than whatever value is produced in the top bits when boxing a double. We have code that relies on this relationship being true and checks if a JSValue is an int by checking if the tag bits are above or equal to the int tag. 4. We don't want to burn more than 2 CPU registers for tag / mask registers. Based on the bit encoding of doubles, the full number range of the top 13 bits are used in valid double numbers. This means the minimum tag bits must be greater than 13. Consider a 14-bit tag. The DoubleEncodeOffset will be 1 << 50 i.e. starts with 0x0004. With this encoding, "negative" pureNaN: maps to 0xfff8 + 0x0004 => 0xfffc i.e. the top 14 bits are all set. This conflicts with the int number range. Next, consider a 15-bit tag. The DoubleEncodeOffset will be 1 << 49 i.e. starts with 0x0002. With this encoding: "negative" pureNaN: maps to 0xfff8 + 0x0002 => 0xfffa negative infinity: maps to 0xfff0 + 0x0002 => 0xfff2 i.e. 0xfffe (top 5 bits set) is available to represent ints. This is the encoding that we'll adopt in this patch. Alternate encodings schemes to consider in the future: = 1. If we're willing and able to purifyNaN at all the places that can produce a "negative" pureNaN, e.g. after a division, then we can remove the "negative" pureNaN as a valid double bit encoding. With this, we can now box doubles with just a 14-bit tag, and DoubleEncodeOffset will be 1 << 50 i.e. starts with 0x0004. With this encoding, the top double, negative infinity, is encoded as follows: negative infinity: maps to 0xfff0 + 0x0004 => 0xfff4 i.e. leaving 0xfffc as the tag for ints. We didn't adopt this scheme at this time because it adds complexity, and may have performance impact from the extra purifyNaN checks. Ref: https://bugs.webkit.org/show_bug.cgi?id=202002 2. If we're willing to use 3 tag registers or always materialize one of them, we can also adopt a 14-bit tag as follows: Pointer { ::: / 0002::: Double { ... \ FFFC::: Integer { ::: where ... NumberMask is 0xfffc: any bits set in the top 14 bits is a number. IntMask is 0x: value is int if value & IntMask == IntMask. NotCellMask is NumberMask | OtherTag. Since the highest double is "negative" pureNaN i.e. starts with 0xfff8, adding a DoubleEncodeOffset of 1<<50 (starts with 0x0004) produces 0xfffc which is still less than 0x. We didn't adopt this scheme at this time because it adds complexity and may have a performance impact from either burning another register, or materializing the 3rd mask. Ref: https://bugs.webkit.org/show_bug.cgi?id=202005 * runtime/JSCJSValue.h: Modified Paths trunk/Source/_javascript_Core/ChangeLog trunk/Source/_javascript_Core/runtime/JSCJSValue.h Diff Modified: trunk/Source/_javascript_Core/ChangeLog (250106 => 250107) --- trunk/Source/_javascript_Core/ChangeLog 2019-09-19 21:46:03 UTC (rev 250106) +++ trunk/Source/_javascript_Core/ChangeLog 2019-09-19 22:23:50 UTC (rev 250107) @@ -1,5 +1,101 @@ 2019-09-19 Mark Lam +Reduce the number of required tag bits for the JSValue. +https://bugs.webkit.org/show_bug.cgi?id=201990 + +Reviewed by Yusuke Suzuki. + +We're reducing the number of tag bits to 15. It should just work. + +How did we arrive at 15 bits? + +Currently, the minimum number of top bits used by doubles is 13-bits. The +highest double bit encoding are: + +"negative" pureNaN: starts with 0xfff8 +negative infinity: starts with 0xfff0 +highest number: starts with 0xffe* +lowest number: starts with 0x + +Requirements: +1. We need tags for 2 range of numbers: pointers (all 0s at the top), and
[webkit-changes] [250106] trunk/Source/WebKit
Title: [250106] trunk/Source/WebKit Revision 250106 Author commit-qu...@webkit.org Date 2019-09-19 14:46:03 -0700 (Thu, 19 Sep 2019) Log Message WebStorageNamespaceProvider / StorageNamespaceImpl no longer need SessionIDs https://bugs.webkit.org/show_bug.cgi?id=201922 Patch by Yury Semikhatsky on 2019-09-19 Reviewed by Chris Dumez. Fix GTK Debug compilation after https://trac.webkit.org/changeset/250083: ../../Source/WebKit/WebProcess/WebStorage/WebStorageNamespaceProvider.cpp:75:55: error: no member named 'singleton' in namespace 'WebCore::Process' ASSERT_UNUSED(sessionID, sessionID == WebProcess::singleton().sessionID()); ^ * WebProcess/WebStorage/WebStorageNamespaceProvider.cpp: Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/WebProcess/WebStorage/WebStorageNamespaceProvider.cpp Diff Modified: trunk/Source/WebKit/ChangeLog (250105 => 250106) --- trunk/Source/WebKit/ChangeLog 2019-09-19 21:34:10 UTC (rev 250105) +++ trunk/Source/WebKit/ChangeLog 2019-09-19 21:46:03 UTC (rev 250106) @@ -1,3 +1,18 @@ +2019-09-19 Yury Semikhatsky + +WebStorageNamespaceProvider / StorageNamespaceImpl no longer need SessionIDs +https://bugs.webkit.org/show_bug.cgi?id=201922 + + +Reviewed by Chris Dumez. + +Fix GTK Debug compilation after https://trac.webkit.org/changeset/250083: +../../Source/WebKit/WebProcess/WebStorage/WebStorageNamespaceProvider.cpp:75:55: error: no member named 'singleton' in namespace 'WebCore::Process' +ASSERT_UNUSED(sessionID, sessionID == WebProcess::singleton().sessionID()); + ^ + +* WebProcess/WebStorage/WebStorageNamespaceProvider.cpp: + 2019-09-19 Chris Dumez WorkerGlobalScope does not need a SessionID Modified: trunk/Source/WebKit/WebProcess/WebStorage/WebStorageNamespaceProvider.cpp (250105 => 250106) --- trunk/Source/WebKit/WebProcess/WebStorage/WebStorageNamespaceProvider.cpp 2019-09-19 21:34:10 UTC (rev 250105) +++ trunk/Source/WebKit/WebProcess/WebStorage/WebStorageNamespaceProvider.cpp 2019-09-19 21:46:03 UTC (rev 250106) @@ -29,6 +29,7 @@ #include "StorageNamespaceImpl.h" #include "WebPage.h" #include "WebPageGroupProxy.h" +#include "WebProcess.h" #include #include ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [250105] trunk/Tools
Title: [250105] trunk/Tools Revision 250105 Author ryanhad...@apple.com Date 2019-09-19 14:34:10 -0700 (Thu, 19 Sep 2019) Log Message REGRESSION: [iOS 13?] TestWebKitAPI.SharedBufferTest.tryCreateArrayBufferLargeSegments is failing https://bugs.webkit.org/show_bug.cgi?id=201902 Unreviewed test gardening. * TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp: Disable the test on iOS. Modified Paths trunk/Tools/ChangeLog trunk/Tools/TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp Diff Modified: trunk/Tools/ChangeLog (250104 => 250105) --- trunk/Tools/ChangeLog 2019-09-19 21:19:21 UTC (rev 250104) +++ trunk/Tools/ChangeLog 2019-09-19 21:34:10 UTC (rev 250105) @@ -1,3 +1,12 @@ +2019-09-19 Ryan Haddad + +REGRESSION: [iOS 13?] TestWebKitAPI.SharedBufferTest.tryCreateArrayBufferLargeSegments is failing +https://bugs.webkit.org/show_bug.cgi?id=201902 + +Unreviewed test gardening. + +* TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp: Disable the test on iOS. + 2019-09-19 Aakash Jain [ews] Fix platform for JSC EWS Modified: trunk/Tools/TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp (250104 => 250105) --- trunk/Tools/TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp 2019-09-19 21:19:21 UTC (rev 250104) +++ trunk/Tools/TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp 2019-09-19 21:34:10 UTC (rev 250105) @@ -101,6 +101,7 @@ EXPECT_EQ(0, memcmp(expectedConcatenation, arrayBuffer->data(), strlen(expectedConcatenation))); } +#if !PLATFORM(IOS) // FIXME: webkit.org/b/201902 REGRESSION: [iOS 13?] TestWebKitAPI.SharedBufferTest.tryCreateArrayBufferLargeSegments is failing TEST_F(SharedBufferTest, tryCreateArrayBufferLargeSegments) { Vector vector0(0x4000, 'a'); @@ -126,6 +127,7 @@ ++position; } } +#endif // !PLATFORM(IOS) TEST_F(SharedBufferTest, copy) { ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [250104] trunk/Source
Title: [250104] trunk/Source Revision 250104 Author cdu...@apple.com Date 2019-09-19 14:19:21 -0700 (Thu, 19 Sep 2019) Log Message WorkerGlobalScope does not need a SessionID https://bugs.webkit.org/show_bug.cgi?id=201991 Reviewed by Alex Christensen. WorkerGlobalScope does not need a SessionID, now that we have a single session per WebProcess. Source/WebCore: * dom/Document.cpp: (WebCore::Document::resume): (WebCore::Document::privateBrowsingStateDidChange): * dom/Document.h: * dom/ScriptExecutionContext.h: * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::matchRegistration): (WebCore::DocumentLoader::commitData): (WebCore::DocumentLoader::registerTemporaryServiceWorkerClient): (WebCore::DocumentLoader::unregisterTemporaryServiceWorkerClient): * testing/Internals.cpp: (WebCore::Internals::serviceWorkerClientIdentifier const): (WebCore::Internals::storeRegistrationsOnDisk): (WebCore::Internals::hasServiceWorkerRegistration): (WebCore::Internals::terminateServiceWorker): (WebCore::Internals::hasServiceWorkerConnection): * workers/DedicatedWorkerGlobalScope.cpp: (WebCore::DedicatedWorkerGlobalScope::create): (WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope): * workers/DedicatedWorkerGlobalScope.h: * workers/DedicatedWorkerThread.cpp: (WebCore::DedicatedWorkerThread::DedicatedWorkerThread): (WebCore::DedicatedWorkerThread::createWorkerGlobalScope): * workers/DedicatedWorkerThread.h: * workers/Worker.cpp: (WebCore::Worker::notifyFinished): * workers/WorkerGlobalScope.cpp: (WebCore::WorkerGlobalScope::WorkerGlobalScope): * workers/WorkerGlobalScope.h: * workers/WorkerGlobalScopeProxy.h: * workers/WorkerMessagingProxy.cpp: (WebCore::WorkerMessagingProxy::startWorkerGlobalScope): * workers/WorkerMessagingProxy.h: * workers/WorkerThread.cpp: (WebCore::WorkerThreadStartupData::WorkerThreadStartupData): (WebCore::WorkerThread::WorkerThread): (WebCore::WorkerThread::workerThread): * workers/WorkerThread.h: * workers/service/ServiceWorker.cpp: (WebCore::ServiceWorker::postMessage): * workers/service/ServiceWorkerContainer.cpp: (WebCore::mainThreadConnection): (WebCore::ServiceWorkerContainer::addRegistration): (WebCore::ServiceWorkerContainer::removeRegistration): (WebCore::ServiceWorkerContainer::updateRegistration): (WebCore::ServiceWorkerContainer::jobResolvedWithRegistration): (WebCore::ServiceWorkerContainer::notifyRegistrationIsSettled): (WebCore::ServiceWorkerContainer::jobFinishedLoadingScript): (WebCore::ServiceWorkerContainer::notifyFailedFetchingScript): (WebCore::ServiceWorkerContainer::ensureSWClientConnection): * workers/service/ServiceWorkerGlobalScope.cpp: (WebCore::ServiceWorkerGlobalScope::create): (WebCore::ServiceWorkerGlobalScope::ServiceWorkerGlobalScope): * workers/service/ServiceWorkerGlobalScope.h: * workers/service/ServiceWorkerProvider.cpp: (WebCore::ServiceWorkerProvider::mayHaveServiceWorkerRegisteredForOrigin): (WebCore::ServiceWorkerProvider::registerServiceWorkerClients): * workers/service/ServiceWorkerProvider.h: * workers/service/WorkerSWClientConnection.cpp: (WebCore::WorkerSWClientConnection::WorkerSWClientConnection): (WebCore::WorkerSWClientConnection::matchRegistration): (WebCore::WorkerSWClientConnection::getRegistrations): (WebCore::WorkerSWClientConnection::whenRegistrationReady): (WebCore::WorkerSWClientConnection::addServiceWorkerRegistrationInServer): (WebCore::WorkerSWClientConnection::removeServiceWorkerRegistrationInServer): (WebCore::WorkerSWClientConnection::didResolveRegistrationPromise): (WebCore::WorkerSWClientConnection::postMessageToServiceWorker): (WebCore::WorkerSWClientConnection::serverConnectionIdentifier const): (WebCore::WorkerSWClientConnection::syncTerminateWorker): (WebCore::WorkerSWClientConnection::registerServiceWorkerClient): (WebCore::WorkerSWClientConnection::finishFetchingScriptInServer): (WebCore::WorkerSWClientConnection::scheduleJob): * workers/service/WorkerSWClientConnection.h: * workers/service/context/ServiceWorkerThread.cpp: (WebCore::ServiceWorkerThread::ServiceWorkerThread): (WebCore::ServiceWorkerThread::createWorkerGlobalScope): * workers/service/context/ServiceWorkerThread.h: * workers/service/context/ServiceWorkerThreadProxy.cpp: (WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy): * workers/service/context/ServiceWorkerThreadProxy.h: * worklets/WorkletGlobalScope.h: (WebCore::WorkletGlobalScope::sessionID const): * xml/DOMParser.cpp: (WebCore::DOMParser::parseFromString): * xml/DOMParser.h: * xml/DOMParser.idl: * xml/XMLHttpRequest.cpp: Source/WebKit: * WebProcess/Storage/WebSWContextManagerConnection.cpp: (WebKit::WebSWContextManagerConnection::installServiceWorker): * WebProcess/Storage/WebServiceWorkerProvider.cpp: (WebKit::WebServiceWorkerProvider::serviceWorkerConnection): (WebKit::WebServiceWorkerProvider::existingServiceWorkerConnection): (WebKit::WebServiceWorkerProvider::serviceWorkerConnectionForSession): Deleted.
[webkit-changes] [250103] trunk
Title: [250103] trunk Revision 250103 Author commit-qu...@webkit.org Date 2019-09-19 13:52:30 -0700 (Thu, 19 Sep 2019) Log Message Source/WebCore: [SVG2]: Add auto behavior for rx and ry to the SVG and elements https://bugs.webkit.org/show_bug.cgi?id=199843 Patch by Said Abou-Hallawa on 2019-09-19 Reviewed by Simon Fraser, Nikolas Zimmermann. The specification is: https://www.w3.org/TR/SVG2/geometry.html#RxProperty. Change the initial value of rx and ry to be "auto". Change the parser to parse LengthOrAuto for these properties. Handle the case if one of them is missing. Tests: svg/custom/ellipse-radius-auto-dynamic.svg svg/custom/ellipse-radius-auto-initial.svg svg/custom/ellipse-radius-length-initial.svg svg/custom/rect-radius-auto-dynamic.svg svg/custom/rect-radius-auto-initial.svg svg/custom/rect-radius-length-initial.svg * css/CSSProperties.json: * css/parser/CSSPropertyParser.cpp: (WebCore::consumeRxOrRy): * rendering/style/RenderStyle.h: (WebCore::RenderStyle::initialRadius): * rendering/style/SVGRenderStyleDefs.cpp: (WebCore::StyleLayoutData::StyleLayoutData): * rendering/svg/RenderSVGEllipse.cpp: (WebCore::RenderSVGEllipse::calculateRadiiAndCenter): LayoutTests: [SVG2]: Add auto behavior for rx and ry to the SVG and elements https://bugs.webkit.org/show_bug.cgi?id=199843 Patch by Said Abou-Hallawa on 2019-09-19 Reviewed by Simon Fraser, Nikolas Zimmermann. Add tests which exercise the initial setting for rx and ry: length, 'auto'. Add tests to dynamically change the values of these properties from length to 'auto'. Skip the tests with dynamic changes till webkit.org/b/201918 is fixed. * TestExpectations: * svg/css/parse-length-expected.txt: * svg/css/parse-length.html: * svg/custom/ellipse-radius-auto-dynamic-expected.svg: Added. * svg/custom/ellipse-radius-auto-dynamic.svg: Added. * svg/custom/ellipse-radius-auto-initial-expected.svg: Added. * svg/custom/ellipse-radius-auto-initial.svg: Added. * svg/custom/ellipse-radius-length-initial-expected.svg: Added. * svg/custom/ellipse-radius-length-initial.svg: Added. * svg/custom/rect-radius-auto-dynamic-expected.svg: Added. * svg/custom/rect-radius-auto-dynamic.svg: Added. * svg/custom/rect-radius-auto-initial-expected.svg: Added. * svg/custom/rect-radius-auto-initial.svg: Added. * svg/custom/rect-radius-length-initial-expected.svg: Added. * svg/custom/rect-radius-length-initial.svg: Added. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/TestExpectations trunk/LayoutTests/svg/css/parse-length-expected.txt trunk/LayoutTests/svg/css/parse-length.html trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/css/CSSProperties.json trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp trunk/Source/WebCore/rendering/style/RenderStyle.h trunk/Source/WebCore/rendering/style/SVGRenderStyleDefs.cpp trunk/Source/WebCore/rendering/svg/RenderSVGEllipse.cpp Added Paths trunk/LayoutTests/svg/custom/ellipse-radius-auto-dynamic-expected.svg trunk/LayoutTests/svg/custom/ellipse-radius-auto-dynamic.svg trunk/LayoutTests/svg/custom/ellipse-radius-auto-initial-expected.svg trunk/LayoutTests/svg/custom/ellipse-radius-auto-initial.svg trunk/LayoutTests/svg/custom/ellipse-radius-length-initial-expected.svg trunk/LayoutTests/svg/custom/ellipse-radius-length-initial.svg trunk/LayoutTests/svg/custom/rect-radius-auto-dynamic-expected.svg trunk/LayoutTests/svg/custom/rect-radius-auto-dynamic.svg trunk/LayoutTests/svg/custom/rect-radius-auto-initial-expected.svg trunk/LayoutTests/svg/custom/rect-radius-auto-initial.svg trunk/LayoutTests/svg/custom/rect-radius-length-initial-expected.svg trunk/LayoutTests/svg/custom/rect-radius-length-initial.svg Diff Modified: trunk/LayoutTests/ChangeLog (250102 => 250103) --- trunk/LayoutTests/ChangeLog 2019-09-19 20:07:44 UTC (rev 250102) +++ trunk/LayoutTests/ChangeLog 2019-09-19 20:52:30 UTC (rev 250103) @@ -1,3 +1,32 @@ +2019-09-19 Said Abou-Hallawa + +[SVG2]: Add auto behavior for rx and ry to the SVG and elements +https://bugs.webkit.org/show_bug.cgi?id=199843 + +Reviewed by Simon Fraser, Nikolas Zimmermann. + +Add tests which exercise the initial setting for rx and ry: length, 'auto'. +Add tests to dynamically change the values of these properties from length +to 'auto'. + +Skip the tests with dynamic changes till webkit.org/b/201918 is fixed. + +* TestExpectations: +* svg/css/parse-length-expected.txt: +* svg/css/parse-length.html: +* svg/custom/ellipse-radius-auto-dynamic-expected.svg: Added. +* svg/custom/ellipse-radius-auto-dynamic.svg: Added. +* svg/custom/ellipse-radius-auto-initial-expected.svg: Added. +* svg/custom/ellipse-radius-auto-initial.svg: Added. +* svg/custom/ellipse-radius-length-initial-expected.svg: Added. +* svg/custom/ellipse-radius-length-initial.svg: Added. +*
[webkit-changes] [250102] trunk/Tools
Title: [250102] trunk/Tools Revision 250102 Author aakash_j...@apple.com Date 2019-09-19 13:07:44 -0700 (Thu, 19 Sep 2019) Log Message [ews] Fix platform for JSC EWS https://bugs.webkit.org/show_bug.cgi?id=201997 Reviewed by Jonathan Bedard. * BuildSlaveSupport/ews-build/config.json: Modified Paths trunk/Tools/BuildSlaveSupport/ews-build/config.json trunk/Tools/ChangeLog Diff Modified: trunk/Tools/BuildSlaveSupport/ews-build/config.json (250101 => 250102) --- trunk/Tools/BuildSlaveSupport/ews-build/config.json 2019-09-19 19:36:35 UTC (rev 250101) +++ trunk/Tools/BuildSlaveSupport/ews-build/config.json 2019-09-19 20:07:44 UTC (rev 250102) @@ -150,11 +150,11 @@ }, { "name": "ews127", - "platform": "jsc-only" + "platform": "mac-highsierra" }, { "name": "ews128", - "platform": "jsc-only" + "platform": "mac-highsierra" }, { "name": "ews150", @@ -422,7 +422,7 @@ "shortname": "jsc", "icon": "buildAndTest", "factory": "JSCTestsFactory", - "platform": "jsc-only", + "platform": "mac-highsierra", "configuration": "release", "workernames": ["ews127", "ews128"] }, Modified: trunk/Tools/ChangeLog (250101 => 250102) --- trunk/Tools/ChangeLog 2019-09-19 19:36:35 UTC (rev 250101) +++ trunk/Tools/ChangeLog 2019-09-19 20:07:44 UTC (rev 250102) @@ -1,3 +1,12 @@ +2019-09-19 Aakash Jain + +[ews] Fix platform for JSC EWS +https://bugs.webkit.org/show_bug.cgi?id=201997 + +Reviewed by Jonathan Bedard. + +* BuildSlaveSupport/ews-build/config.json: + 2019-09-19 Brent Fulgham Create InjectedBundle SPI to better support NSSecureCoding ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [250101] trunk/Websites/webkit.org
Title: [250101] trunk/Websites/webkit.org Revision 250101 Author justin_...@apple.com Date 2019-09-19 12:36:35 -0700 (Thu, 19 Sep 2019) Log Message [WebGPU] Update messaging to reflect STP 92 requirement for demos https://bugs.webkit.org/show_bug.cgi?id=201931 Reviewed by Jon Lee. Demos don't work anymore on versions of Safari older than STP 92, so update WebGPU feature detection to reflect that. * demos/webgpu/babylon/babylonWebGpu.max.js: * demos/webgpu/babylon/oneHelmetWebGPU.html: * demos/webgpu/babylon/oneSphereWebGPU.html: * demos/webgpu/compute-blur.html: * demos/webgpu/compute-boids-compile.html: * demos/webgpu/compute-boids.html: * demos/webgpu/hello-cube.html: * demos/webgpu/hello-triangle.html: * demos/webgpu/scripts/compute-blur.js: (async.init): * demos/webgpu/scripts/compute-boids-compile.js: * demos/webgpu/scripts/hello-triangle.js: (async.helloTriangle): * demos/webgpu/textured-cube.html: Modified Paths trunk/Websites/webkit.org/ChangeLog trunk/Websites/webkit.org/demos/webgpu/babylon/babylonWebGpu.max.js trunk/Websites/webkit.org/demos/webgpu/babylon/oneHelmetWebGPU.html trunk/Websites/webkit.org/demos/webgpu/babylon/oneSphereWebGPU.html trunk/Websites/webkit.org/demos/webgpu/compute-blur.html trunk/Websites/webkit.org/demos/webgpu/compute-boids-compile.html trunk/Websites/webkit.org/demos/webgpu/compute-boids.html trunk/Websites/webkit.org/demos/webgpu/hello-cube.html trunk/Websites/webkit.org/demos/webgpu/hello-triangle.html trunk/Websites/webkit.org/demos/webgpu/scripts/compute-blur.js trunk/Websites/webkit.org/demos/webgpu/scripts/compute-boids-compile.js trunk/Websites/webkit.org/demos/webgpu/scripts/hello-triangle.js trunk/Websites/webkit.org/demos/webgpu/textured-cube.html Diff Modified: trunk/Websites/webkit.org/ChangeLog (250100 => 250101) --- trunk/Websites/webkit.org/ChangeLog 2019-09-19 19:19:37 UTC (rev 250100) +++ trunk/Websites/webkit.org/ChangeLog 2019-09-19 19:36:35 UTC (rev 250101) @@ -1,3 +1,28 @@ +2019-09-19 Justin Fan + +[WebGPU] Update messaging to reflect STP 92 requirement for demos +https://bugs.webkit.org/show_bug.cgi?id=201931 + +Reviewed by Jon Lee. + +Demos don't work anymore on versions of Safari older than STP 92, +so update WebGPU feature detection to reflect that. + +* demos/webgpu/babylon/babylonWebGpu.max.js: +* demos/webgpu/babylon/oneHelmetWebGPU.html: +* demos/webgpu/babylon/oneSphereWebGPU.html: +* demos/webgpu/compute-blur.html: +* demos/webgpu/compute-boids-compile.html: +* demos/webgpu/compute-boids.html: +* demos/webgpu/hello-cube.html: +* demos/webgpu/hello-triangle.html: +* demos/webgpu/scripts/compute-blur.js: +(async.init): +* demos/webgpu/scripts/compute-boids-compile.js: +* demos/webgpu/scripts/hello-triangle.js: +(async.helloTriangle): +* demos/webgpu/textured-cube.html: + 2019-09-18 Myles C. Maxfield [WebGPU] Update demos to work on STP 92 Modified: trunk/Websites/webkit.org/demos/webgpu/babylon/babylonWebGpu.max.js (250100 => 250101) --- trunk/Websites/webkit.org/demos/webgpu/babylon/babylonWebGpu.max.js 2019-09-19 19:19:37 UTC (rev 250100) +++ trunk/Websites/webkit.org/demos/webgpu/babylon/babylonWebGpu.max.js 2019-09-19 19:36:35 UTC (rev 250101) @@ -41963,7 +41963,7 @@ _this._decodeEngine.getCaps().textureHalfFloat = false; _this._decodeEngine.getCaps().textureHalfFloatRender = false; _Misc_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].Log("Babylon.js v" + _Engines_engine__WEBPACK_IMPORTED_MODULE_4__["Engine"].Version + " - WebGPU engine"); -if (!navigator.gpu) { +if (!navigator.gpu || GPUBufferUsage.COPY_SRC === undefined) { _Misc_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].Error("WebGPU is not supported by your browser."); return _this; } Modified: trunk/Websites/webkit.org/demos/webgpu/babylon/oneHelmetWebGPU.html (250100 => 250101) --- trunk/Websites/webkit.org/demos/webgpu/babylon/oneHelmetWebGPU.html 2019-09-19 19:19:37 UTC (rev 250100) +++ trunk/Websites/webkit.org/demos/webgpu/babylon/oneHelmetWebGPU.html 2019-09-19 19:36:35 UTC (rev 250101) @@ -175,8 +175,8 @@ let Shaderc = {Compiler, CompileOptions, shader_kind: ShaderKind}; (async function() { -if (!navigator.gpu) { -alert("WebGPU is not enabled."); +if (!navigator.gpu || GPUBufferUsage.COPY_SRC === undefined) { +alert("WebGPU is not enabled. Are you using Safari Technology Preview 92 or above?"); return; } const canvas = document.getElementById("renderCanvas"); Modified: trunk/Websites/webkit.org/demos/webgpu/babylon/oneSphereWebGPU.html (250100 => 250101) --- trunk/Websites/webkit.org/demos/webgpu/babylon/oneSphereWebGPU.html 2019-09-19 19:19:37 UTC (rev 250100) +++
[webkit-changes] [250100] trunk
Title: [250100] trunk Revision 250100 Author commit-qu...@webkit.org Date 2019-09-19 12:19:37 -0700 (Thu, 19 Sep 2019) Log Message HTMLVideoElement with a broken poster image will take square dimension https://bugs.webkit.org/show_bug.cgi?id=174122 Patch by Peng Liu on 2019-09-19 Reviewed by Daniel Bates. Source/WebCore: For a video element, if only the width attribute is given and the height attribute is missing, an invalid poster image will make its aspect ratio to be 1, which is the historical WebKit behavior if we're painting alt text and/or a broken image. This fix prevents that behavior to impact video elements. We add a virtual function shouldDisplayBrokenImageIcon() to RenderImage and it will return true only when the image source is given but cannot be downloaded. RenderMedia overrides this virtual function and always return false because it never shows the broken image icon. RenderVideo inherits that behavior from RenderMedia. Then, in RenderImage::computeIntrinsicRatioInformation(), we only set the aspect ratio to 1 when we need to show the broken image icon. It is the historical WebKit behavior that we want to keep for image element, but we also want to avoid its impact (this bug) on video elements. We also replace the imageResource().errorOccurred() with shouldDisplayBrokenImageIcon() in TreeBuilder::createLayoutBox() for the same reason. The logic to display the broken image icon in RenderImage::renderReplaced() is also cleaned up. Test: media/video-poster-not-found.html * layout/layouttree/LayoutTreeBuilder.cpp: (WebCore::Layout::TreeBuilder::createLayoutBox): * rendering/RenderImage.cpp: (WebCore::RenderImage::shouldDisplayBrokenImageIcon const): (WebCore::RenderImage::paintReplaced): (WebCore::RenderImage::computeIntrinsicRatioInformation const): * rendering/RenderImage.h: * rendering/RenderMedia.h: LayoutTests: When only the width (no height) attribute of a video element is given and the the poster image is missing (cannot be downloaded), the aspect ratio of the video element should not be 1, which is the default behavior of WebKit to paint a broken image. Instead, it should be the aspect ratio of the video content. * media/video-poster-not-found-expected.txt: Added. * media/video-poster-not-found.html: Added. Modified Paths trunk/LayoutTests/ChangeLog trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/layout/layouttree/LayoutTreeBuilder.cpp trunk/Source/WebCore/rendering/RenderImage.cpp trunk/Source/WebCore/rendering/RenderImage.h trunk/Source/WebCore/rendering/RenderMedia.h Added Paths trunk/LayoutTests/media/video-poster-not-found-expected.txt trunk/LayoutTests/media/video-poster-not-found.html Diff Modified: trunk/LayoutTests/ChangeLog (250099 => 250100) --- trunk/LayoutTests/ChangeLog 2019-09-19 19:02:06 UTC (rev 250099) +++ trunk/LayoutTests/ChangeLog 2019-09-19 19:19:37 UTC (rev 250100) @@ -1,3 +1,19 @@ +2019-09-19 Peng Liu + +HTMLVideoElement with a broken poster image will take square dimension +https://bugs.webkit.org/show_bug.cgi?id=174122 + + +Reviewed by Daniel Bates. + +When only the width (no height) attribute of a video element is given +and the the poster image is missing (cannot be downloaded), +the aspect ratio of the video element should not be 1, which is the default behavior +of WebKit to paint a broken image. Instead, it should be the aspect ratio of the video content. + +* media/video-poster-not-found-expected.txt: Added. +* media/video-poster-not-found.html: Added. + 2019-09-19 Miguel Gomez [WPE][GTK] Gardening after r250087 Added: trunk/LayoutTests/media/video-poster-not-found-expected.txt (0 => 250100) --- trunk/LayoutTests/media/video-poster-not-found-expected.txt (rev 0) +++ trunk/LayoutTests/media/video-poster-not-found-expected.txt 2019-09-19 19:19:37 UTC (rev 250100) @@ -0,0 +1,9 @@ + +Test element with only width attribute and the poster is missing (cannot be downloaded). + +RUN(video.src = "" "content/test")) +EVENT(canplaythrough) +EXPECTED (video.clientWidth == '320') OK +EXPECTED (video.clientHeight == '240') OK +END OF TEST + Added: trunk/LayoutTests/media/video-poster-not-found.html (0 => 250100) --- trunk/LayoutTests/media/video-poster-not-found.html (rev 0) +++ trunk/LayoutTests/media/video-poster-not-found.html 2019-09-19 19:19:37 UTC (rev 250100) @@ -0,0 +1,35 @@ + + + + +video-poster-not-found + +function go() +{ +findMediaElement(); +run('video.src = "" "content/test")'); +waitForEventOnce('canplaythrough', canplaythrough); +} + +function canplaythrough() +{ +// When only the width attribute is given and the height attribute is missing, +// for an image element, if it cannot download the image (a
[webkit-changes] [250099] trunk/Source/JavaScriptCore
Title: [250099] trunk/Source/_javascript_Core Revision 250099 Author mark@apple.com Date 2019-09-19 12:02:06 -0700 (Thu, 19 Sep 2019) Log Message Refactoring: fix broken indentation in JSNonDestructibleProxy.h. https://bugs.webkit.org/show_bug.cgi?id=201989 Reviewed by Saam Barati. This patch only unindent the code to get it back to compliant formatting. There is no actual code change. * runtime/JSNonDestructibleProxy.h: (JSC::JSNonDestructibleProxy::subspaceFor): (JSC::JSNonDestructibleProxy::create): (JSC::JSNonDestructibleProxy::createStructure): (JSC::JSNonDestructibleProxy::JSNonDestructibleProxy): Modified Paths trunk/Source/_javascript_Core/ChangeLog trunk/Source/_javascript_Core/runtime/JSNonDestructibleProxy.h Diff Modified: trunk/Source/_javascript_Core/ChangeLog (250098 => 250099) --- trunk/Source/_javascript_Core/ChangeLog 2019-09-19 18:45:12 UTC (rev 250098) +++ trunk/Source/_javascript_Core/ChangeLog 2019-09-19 19:02:06 UTC (rev 250099) @@ -1,3 +1,19 @@ +2019-09-19 Mark Lam + +Refactoring: fix broken indentation in JSNonDestructibleProxy.h. +https://bugs.webkit.org/show_bug.cgi?id=201989 + +Reviewed by Saam Barati. + +This patch only unindent the code to get it back to compliant formatting. +There is no actual code change. + +* runtime/JSNonDestructibleProxy.h: +(JSC::JSNonDestructibleProxy::subspaceFor): +(JSC::JSNonDestructibleProxy::create): +(JSC::JSNonDestructibleProxy::createStructure): +(JSC::JSNonDestructibleProxy::JSNonDestructibleProxy): + 2019-09-19 Tadeu Zagallo Syntax checker should report duplicate __proto__ properties Modified: trunk/Source/_javascript_Core/runtime/JSNonDestructibleProxy.h (250098 => 250099) --- trunk/Source/_javascript_Core/runtime/JSNonDestructibleProxy.h 2019-09-19 18:45:12 UTC (rev 250098) +++ trunk/Source/_javascript_Core/runtime/JSNonDestructibleProxy.h 2019-09-19 19:02:06 UTC (rev 250099) @@ -29,53 +29,53 @@ namespace JSC { -class JSNonDestructibleProxy : public JSProxy { -public: -using Base = JSProxy; -static constexpr unsigned StructureFlags = Base::StructureFlags; -static constexpr bool needsDestruction = false; +class JSNonDestructibleProxy : public JSProxy { +public: +using Base = JSProxy; +static constexpr unsigned StructureFlags = Base::StructureFlags; +static constexpr bool needsDestruction = false; -template -static CompleteSubspace* subspaceFor(VM& vm) -{ -// JSProxy is JSDestrucitbleObject, but we make this JSNonDestructibleProxy non-destructible by using non-destructible subspace. -// The motivation behind this is (1) except for JSWindowProxy JSProxy does not need to be destructible, and (2) subspace of destructible -// and non-destructible objects are separated and JSProxy is using one MarkedBlock only for JSProxy class in the JSC framework and wasting memory. -// Basically, to make objects destructible, objects need to inherit JSDestructibleObject. It holds a classInfo at a specific offset -// so that Heap can get methodTable::destroy even if structures held by objects are destroyed before objects' destructions. But this -// requirement forces JSProxy to inherit JSDestructibleObject for JSWindowProxy even while the other JSProxy does not need to be -// destructible. We create JSNonDestructibleProxy, which is a subclass of JSProxy, and make it non-destructible so that we still keep -// JSWindowProxy destructible while making JSNonDestructibleProxy non-destructible. -return JSNonFinalObject::subspaceFor(vm); -} +template +static CompleteSubspace* subspaceFor(VM& vm) +{ +// JSProxy is JSDestrucitbleObject, but we make this JSNonDestructibleProxy non-destructible by using non-destructible subspace. +// The motivation behind this is (1) except for JSWindowProxy JSProxy does not need to be destructible, and (2) subspace of destructible +// and non-destructible objects are separated and JSProxy is using one MarkedBlock only for JSProxy class in the JSC framework and wasting memory. +// Basically, to make objects destructible, objects need to inherit JSDestructibleObject. It holds a classInfo at a specific offset +// so that Heap can get methodTable::destroy even if structures held by objects are destroyed before objects' destructions. But this +// requirement forces JSProxy to inherit JSDestructibleObject for JSWindowProxy even while the other JSProxy does not need to be +// destructible. We create JSNonDestructibleProxy, which is a subclass of JSProxy, and make it non-destructible so that we still keep +// JSWindowProxy destructible while making
[webkit-changes] [250098] trunk
Title: [250098] trunk Revision 250098 Author tzaga...@apple.com Date 2019-09-19 11:45:12 -0700 (Thu, 19 Sep 2019) Log Message Syntax checker should report duplicate __proto__ properties https://bugs.webkit.org/show_bug.cgi?id=201897 Reviewed by Mark Lam. JSTests: * stress/syntax-checker-duplicate-underscore-proto.js: Added. (catch): Source/_javascript_Core: Currently we have two ways of parsing object literals: - parseObjectLiteral: this is called in sloppy mode, and as an optimization for syntax checking, it doesn't allocate string literals while parsing properties. It does still allocate identifiers, but it won't store them in the Property object that it creates for each parsed property. This method backtracks and calls parseObjectStrictLiteral if it finds any getters or setters. - parseObjectStrictLiteral: this is called in strict mode, or when the object contains getters/setters as stated above. This will always allocate string literals as well as identifiers and store them in the Property object, even during syntax checking. >From looking at the history, it seems that there was a distinction between these two methods: parseStrictObjectLiteral was introduced in r62848 and contained an extra check for duplicate getters/setters or properties defined as both getters/setters and constants. That distinction was removed and the only distinction that remained was whether we build strings and store the strings and properties as part of the Property object created by SyntaxChecker::createProperty. However, this optimization is no longer valid, since we need to throw a SyntaxError for duplicate __proto__ properties in object literals even in sloppy mode, which means that we do need to build the strings and identifiers and store them as part of the Property objects. * parser/Parser.cpp: (JSC::Parser::parseObjectLiteral): (JSC::Parser::parsePrimaryExpression): (JSC::Parser::parseStrictObjectLiteral): Deleted. * parser/Parser.h: Modified Paths trunk/JSTests/ChangeLog trunk/Source/_javascript_Core/ChangeLog trunk/Source/_javascript_Core/parser/Parser.cpp trunk/Source/_javascript_Core/parser/Parser.h Added Paths trunk/JSTests/stress/syntax-checker-duplicate-underscore-proto.js Diff Modified: trunk/JSTests/ChangeLog (250097 => 250098) --- trunk/JSTests/ChangeLog 2019-09-19 18:28:19 UTC (rev 250097) +++ trunk/JSTests/ChangeLog 2019-09-19 18:45:12 UTC (rev 250098) @@ -1,3 +1,14 @@ +2019-09-19 Tadeu Zagallo + +Syntax checker should report duplicate __proto__ properties +https://bugs.webkit.org/show_bug.cgi?id=201897 + + +Reviewed by Mark Lam. + +* stress/syntax-checker-duplicate-underscore-proto.js: Added. +(catch): + 2019-09-18 Saam Barati TOCTOU bug in havingABadTime related assertion in DFGSpeculativeJIT Added: trunk/JSTests/stress/syntax-checker-duplicate-underscore-proto.js (0 => 250098) --- trunk/JSTests/stress/syntax-checker-duplicate-underscore-proto.js (rev 0) +++ trunk/JSTests/stress/syntax-checker-duplicate-underscore-proto.js 2019-09-19 18:45:12 UTC (rev 250098) @@ -0,0 +1,8 @@ +try { +eval("(function() { ({ x: 1, y: 1, z: 1, __proto__: 1, __proto__: 1 }) })"); +eval("(function() { ({ x: 1, y: 1, z: 1, '__proto__': 1, '__proto__': 1 }) })"); +throw new Error('Should have thrown a SyntaxError'); +} catch (error) { +if (!(error instanceof SyntaxError) && error.message !== 'Attempted to redefine __proto__ property.') +throw new Error(`Unexpected error: ${error.message}`); +} Modified: trunk/Source/_javascript_Core/ChangeLog (250097 => 250098) --- trunk/Source/_javascript_Core/ChangeLog 2019-09-19 18:28:19 UTC (rev 250097) +++ trunk/Source/_javascript_Core/ChangeLog 2019-09-19 18:45:12 UTC (rev 250098) @@ -1,3 +1,35 @@ +2019-09-19 Tadeu Zagallo + +Syntax checker should report duplicate __proto__ properties +https://bugs.webkit.org/show_bug.cgi?id=201897 + + +Reviewed by Mark Lam. + +Currently we have two ways of parsing object literals: +- parseObjectLiteral: this is called in sloppy mode, and as an optimization for syntax checking, + it doesn't allocate string literals while parsing properties. It does still allocate identifiers, + but it won't store them in the Property object that it creates for each parsed property. This + method backtracks and calls parseObjectStrictLiteral if it finds any getters or setters. +- parseObjectStrictLiteral: this is called in strict mode, or when the object contains getters/setters + as stated above. This will always allocate string literals as well as identifiers and store them in + the Property object, even during syntax checking. + +From looking at the history, it seems that there was a distinction between these two methods: +parseStrictObjectLiteral was introduced in r62848 and contained an extra
[webkit-changes] [250097] trunk/Source/JavaScriptCore
Title: [250097] trunk/Source/_javascript_Core Revision 250097 Author mark@apple.com Date 2019-09-19 11:28:19 -0700 (Thu, 19 Sep 2019) Log Message Remove a now unnecessary hack to work around static const needing external linkage. https://bugs.webkit.org/show_bug.cgi?id=201988 Reviewed by Saam Barati. MacroAssembler::dataTempRegister is now a constexpr, thereby ensuring that it's inlinable. * b3/B3Common.cpp: (JSC::B3::pinnedExtendedOffsetAddrRegister): Modified Paths trunk/Source/_javascript_Core/ChangeLog trunk/Source/_javascript_Core/b3/B3Common.cpp Diff Modified: trunk/Source/_javascript_Core/ChangeLog (250096 => 250097) --- trunk/Source/_javascript_Core/ChangeLog 2019-09-19 18:04:21 UTC (rev 250096) +++ trunk/Source/_javascript_Core/ChangeLog 2019-09-19 18:28:19 UTC (rev 250097) @@ -1,5 +1,18 @@ 2019-09-19 Mark Lam +Remove a now unnecessary hack to work around static const needing external linkage. +https://bugs.webkit.org/show_bug.cgi?id=201988 + +Reviewed by Saam Barati. + +MacroAssembler::dataTempRegister is now a constexpr, thereby ensuring that it's +inlinable. + +* b3/B3Common.cpp: +(JSC::B3::pinnedExtendedOffsetAddrRegister): + +2019-09-19 Mark Lam + Replace JSValue #defines with static constexpr values. https://bugs.webkit.org/show_bug.cgi?id=201966 Modified: trunk/Source/_javascript_Core/b3/B3Common.cpp (250096 => 250097) --- trunk/Source/_javascript_Core/b3/B3Common.cpp 2019-09-19 18:04:21 UTC (rev 250096) +++ trunk/Source/_javascript_Core/b3/B3Common.cpp 2019-09-19 18:28:19 UTC (rev 250097) @@ -69,7 +69,7 @@ Optional pinnedExtendedOffsetAddrRegister() { #if CPU(ARM64) -return static_cast(+MacroAssembler::dataTempRegister); +return MacroAssembler::dataTempRegister; #elif CPU(X86_64) return WTF::nullopt; #else ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [250096] branches/safari-608.2.11.1-branch/Source/WebKit
Title: [250096] branches/safari-608.2.11.1-branch/Source/WebKit Revision 250096 Author alanc...@apple.com Date 2019-09-19 11:04:21 -0700 (Thu, 19 Sep 2019) Log Message Cherry-pick r250069. rdar://problem/55524978 Eagerly create and add the m_layerHostingView to WKWebView. https://bugs.webkit.org/show_bug.cgi?id=201942 Reviewed by Tim Horton. Some apps will add subviews to WKWebView, and by the time we add our m_layerHostingView view we might be adding it behind a view that should have been added behind our layer hosting view subview. This affected the Spark email app, due to changes in order of loading delegate calls and when compositing is enabled. Instead of delayed creation of m_layerHostingView, always create it and add it to to the WKWebView. This ensures proper ordering of subviews when clients add a view behind all existing subviews. * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::WebViewImpl): Create and add m_layerHostingView here. (WebKit::WebViewImpl::setAcceleratedCompositingRootLayer): Remove creation and removal of m_layerHostingView. Just set the sublayers of m_layerHostingView's layer here. git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250069 268f45cc-cd09-0410-ab3c-d52691b4dbfc Modified Paths branches/safari-608.2.11.1-branch/Source/WebKit/ChangeLog branches/safari-608.2.11.1-branch/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm Diff Modified: branches/safari-608.2.11.1-branch/Source/WebKit/ChangeLog (250095 => 250096) --- branches/safari-608.2.11.1-branch/Source/WebKit/ChangeLog 2019-09-19 18:01:55 UTC (rev 250095) +++ branches/safari-608.2.11.1-branch/Source/WebKit/ChangeLog 2019-09-19 18:04:21 UTC (rev 250096) @@ -1,3 +1,44 @@ +2019-09-19 Kocsen Chung + +Cherry-pick r250069. rdar://problem/55524978 + +Eagerly create and add the m_layerHostingView to WKWebView. +https://bugs.webkit.org/show_bug.cgi?id=201942 + +Reviewed by Tim Horton. + +Some apps will add subviews to WKWebView, and by the time we add our m_layerHostingView view we might be +adding it behind a view that should have been added behind our layer hosting view subview. This affected +the Spark email app, due to changes in order of loading delegate calls and when compositing is enabled. +Instead of delayed creation of m_layerHostingView, always create it and add it to to the WKWebView. +This ensures proper ordering of subviews when clients add a view behind all existing subviews. + +* UIProcess/Cocoa/WebViewImpl.mm: +(WebKit::WebViewImpl::WebViewImpl): Create and add m_layerHostingView here. +(WebKit::WebViewImpl::setAcceleratedCompositingRootLayer): Remove creation and removal of m_layerHostingView. +Just set the sublayers of m_layerHostingView's layer here. + + +git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250069 268f45cc-cd09-0410-ab3c-d52691b4dbfc + +2019-09-18 Timothy Hatcher + +Eagerly create and add the m_layerHostingView to WKWebView. +https://bugs.webkit.org/show_bug.cgi?id=201942 + +Reviewed by Tim Horton. + +Some apps will add subviews to WKWebView, and by the time we add our m_layerHostingView view we might be +adding it behind a view that should have been added behind our layer hosting view subview. This affected +the Spark email app, due to changes in order of loading delegate calls and when compositing is enabled. +Instead of delayed creation of m_layerHostingView, always create it and add it to to the WKWebView. +This ensures proper ordering of subviews when clients add a view behind all existing subviews. + +* UIProcess/Cocoa/WebViewImpl.mm: +(WebKit::WebViewImpl::WebViewImpl): Create and add m_layerHostingView here. +(WebKit::WebViewImpl::setAcceleratedCompositingRootLayer): Remove creation and removal of m_layerHostingView. +Just set the sublayers of m_layerHostingView's layer here. + 2019-09-11 Alan Coon Apply patch. rdar://problem/55240886 Modified: branches/safari-608.2.11.1-branch/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm (250095 => 250096) --- branches/safari-608.2.11.1-branch/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm 2019-09-19 18:01:55 UTC (rev 250095) +++ branches/safari-608.2.11.1-branch/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm 2019-09-19 18:04:21 UTC (rev 250096) @@ -1351,6 +1351,22 @@ [view addTrackingArea:m_primaryTrackingArea.get()]; +// Create an NSView that will host our layer tree. +m_layerHostingView = adoptNS([[WKFlippedView alloc] initWithFrame:[m_view bounds]]); +[m_layerHostingView setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable]; + +[view addSubview:m_layerHostingView.get() positioned:NSWindowBelow relativeTo:nil]; + +// Create a root layer that will back the NSView. +RetainPtr
[webkit-changes] [250095] branches/safari-608.2.11.1-branch/Source
Title: [250095] branches/safari-608.2.11.1-branch/Source Revision 250095 Author alanc...@apple.com Date 2019-09-19 11:01:55 -0700 (Thu, 19 Sep 2019) Log Message Versioning. Modified Paths branches/safari-608.2.11.1-branch/Source/_javascript_Core/Configurations/Version.xcconfig branches/safari-608.2.11.1-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig branches/safari-608.2.11.1-branch/Source/WebCore/Configurations/Version.xcconfig branches/safari-608.2.11.1-branch/Source/WebCore/PAL/Configurations/Version.xcconfig branches/safari-608.2.11.1-branch/Source/WebInspectorUI/Configurations/Version.xcconfig branches/safari-608.2.11.1-branch/Source/WebKit/Configurations/Version.xcconfig branches/safari-608.2.11.1-branch/Source/WebKitLegacy/mac/Configurations/Version.xcconfig Diff Modified: branches/safari-608.2.11.1-branch/Source/_javascript_Core/Configurations/Version.xcconfig (250094 => 250095) --- branches/safari-608.2.11.1-branch/Source/_javascript_Core/Configurations/Version.xcconfig 2019-09-19 16:14:47 UTC (rev 250094) +++ branches/safari-608.2.11.1-branch/Source/_javascript_Core/Configurations/Version.xcconfig 2019-09-19 18:01:55 UTC (rev 250095) @@ -25,7 +25,7 @@ MINOR_VERSION = 2; TINY_VERSION = 11; MICRO_VERSION = 1; -NANO_VERSION = 7; +NANO_VERSION = 8; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION).$(NANO_VERSION); // The bundle version and short version string are set based on the current build configuration, see below. Modified: branches/safari-608.2.11.1-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig (250094 => 250095) --- branches/safari-608.2.11.1-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig 2019-09-19 16:14:47 UTC (rev 250094) +++ branches/safari-608.2.11.1-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig 2019-09-19 18:01:55 UTC (rev 250095) @@ -25,7 +25,7 @@ MINOR_VERSION = 2; TINY_VERSION = 11; MICRO_VERSION = 1; -NANO_VERSION = 7; +NANO_VERSION = 8; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION).$(NANO_VERSION); // The bundle version and short version string are set based on the current build configuration, see below. Modified: branches/safari-608.2.11.1-branch/Source/WebCore/Configurations/Version.xcconfig (250094 => 250095) --- branches/safari-608.2.11.1-branch/Source/WebCore/Configurations/Version.xcconfig 2019-09-19 16:14:47 UTC (rev 250094) +++ branches/safari-608.2.11.1-branch/Source/WebCore/Configurations/Version.xcconfig 2019-09-19 18:01:55 UTC (rev 250095) @@ -25,7 +25,7 @@ MINOR_VERSION = 2; TINY_VERSION = 11; MICRO_VERSION = 1; -NANO_VERSION = 7; +NANO_VERSION = 8; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION).$(NANO_VERSION); // The bundle version and short version string are set based on the current build configuration, see below. Modified: branches/safari-608.2.11.1-branch/Source/WebCore/PAL/Configurations/Version.xcconfig (250094 => 250095) --- branches/safari-608.2.11.1-branch/Source/WebCore/PAL/Configurations/Version.xcconfig 2019-09-19 16:14:47 UTC (rev 250094) +++ branches/safari-608.2.11.1-branch/Source/WebCore/PAL/Configurations/Version.xcconfig 2019-09-19 18:01:55 UTC (rev 250095) @@ -25,7 +25,7 @@ MINOR_VERSION = 2; TINY_VERSION = 11; MICRO_VERSION = 1; -NANO_VERSION = 7; +NANO_VERSION = 8; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION).$(NANO_VERSION); // The bundle version and short version string are set based on the current build configuration, see below. Modified: branches/safari-608.2.11.1-branch/Source/WebInspectorUI/Configurations/Version.xcconfig (250094 => 250095) --- branches/safari-608.2.11.1-branch/Source/WebInspectorUI/Configurations/Version.xcconfig 2019-09-19 16:14:47 UTC (rev 250094) +++ branches/safari-608.2.11.1-branch/Source/WebInspectorUI/Configurations/Version.xcconfig 2019-09-19 18:01:55 UTC (rev 250095) @@ -2,7 +2,7 @@ MINOR_VERSION = 2; TINY_VERSION = 11; MICRO_VERSION = 1; -NANO_VERSION = 7; +NANO_VERSION = 8; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION).$(NANO_VERSION); // The system version prefix is based on the current system version. Modified: branches/safari-608.2.11.1-branch/Source/WebKit/Configurations/Version.xcconfig (250094 => 250095) --- branches/safari-608.2.11.1-branch/Source/WebKit/Configurations/Version.xcconfig 2019-09-19 16:14:47 UTC (rev 250094) +++ branches/safari-608.2.11.1-branch/Source/WebKit/Configurations/Version.xcconfig 2019-09-19 18:01:55 UTC (rev 250095) @@ -25,7 +25,7 @@ MINOR_VERSION = 2; TINY_VERSION = 11; MICRO_VERSION = 1; -NANO_VERSION = 7; +NANO_VERSION = 8; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION).$(NANO_VERSION); // The bundle version and short version string are set based on the current build configuration, see below. Modified:
[webkit-changes] [250093] trunk
Title: [250093] trunk Revision 250093 Author bfulg...@apple.com Date 2019-09-19 09:11:31 -0700 (Thu, 19 Sep 2019) Log Message Create InjectedBundle SPI to better support NSSecureCoding https://bugs.webkit.org/show_bug.cgi?id=201810 The encoding/decoding routines used by WebKit’s InjectedBundles are based on NSCoding. While we have changed WebKit internals to use NSSecureCoding, there are a number of injected bundles that need to serialize custom classes between the InjectedBundle and the relevant WebKit UIProcess. We need to lock down this communications channel by enforcing NSSecureCoding. This patch creates new SPI to allow the UIProcess to specify classes that it will accept in messages from the WebContet Process (and Injected Bundle). It adds the following property to the WKProcessPoolConfiguration: @property (nonatomic, copy) NSSet *customClassesForParameterCoder; If no custom classes are specified, the standard serialization primitives are supported: NSArray, NSData, NSDate, NSDictionary, NSNull, NSNumber, NSSet, NSString, NSTimeZone, NSURL, and NSUUID. Reviewed by Brady Eidson. Source/WebKit: * UIProcess/API/APIProcessPoolConfiguration.cpp: (API::ProcessPoolConfiguration::copy): Copy any custom classes. * UIProcess/API/APIProcessPoolConfiguration.h: * UIProcess/API/C/WKContextConfigurationRef.cpp: (WKContextConfigurationCopyCustomClassesForParameterCoder): Added. (WKContextConfigurationSetCustomClassesForParameterCoder): Added. * UIProcess/API/C/WKContextConfigurationRef.h: * UIProcess/API/Cocoa/WKProcessGroup.h: * UIProcess/API/Cocoa/WKProcessGroup.mm: (toStringVector): Added. (-[WKProcessGroup initWithInjectedBundleURL:andCustomClassesForParameterCoder:]): * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _setInputDelegate:]): Restrict serialization to allowed classes. * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: (-[_WKProcessPoolConfiguration customClassesForParameterCoder]): Added. (-[_WKProcessPoolConfiguration setCustomClassesForParameterCoder:]): Added. * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitialize): Register any custom classes provided in the configuraton. (WebKit::WebProcessPool::initializeClassesForParameterCoding): Added. (WebKit::WebProcessPool::allowedClassesForParameterCoding const): Added. * UIProcess/WebProcessPool.h: * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::elementDidFocus): Restrict serialization to allowed classes only. Tools: * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/BundleFormDelegate.mm: Added. (-[BundleFormDelegateRemoteObject didGetFocus]): (-[FormInputDelegate _webView:decidePolicyForFocusedElement:]): (TEST): * TestWebKitAPI/Tests/WebKitCocoa/BundleFormDelegatePlugIn.mm: Added. (-[BundleFormDelegatePlugIn webProcessPlugIn:didCreateBrowserContextController:]): (-[BundleFormDelegatePlugIn _webProcessPlugInBrowserContextController:willBeginInputSessionForElement:inFrame:userIsInteracting:]): (-[BundleFormDelegatePlugIn _webProcessPlugInBrowserContextController:didFocusTextField:inFrame:]): * TestWebKitAPI/Tests/WebKitCocoa/BundleFormDelegateProtocol.h: Copied from Tools/TestWebKitAPI/WKWebViewConfigurationExtras.h. * TestWebKitAPI/Tests/WebKitCocoa/WKProcessPoolConfiguration.mm: (TEST): * TestWebKitAPI/WKWebViewConfigurationExtras.h: * TestWebKitAPI/WKWebViewConfigurationExtras.mm: (+[WKWebViewConfiguration _test_configurationWithTestPlugInClassName:configureJSCForTesting:]): (+[WKWebViewConfiguration _test_configurationWithTestPlugInClassName:configureJSCForTesting:andCustomParameterClasses:]): Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h trunk/Source/WebKit/UIProcess/API/C/WKContextConfigurationRef.cpp trunk/Source/WebKit/UIProcess/API/C/WKContextConfigurationRef.h trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessGroup.h trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessGroup.mm trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm trunk/Source/WebKit/UIProcess/WebProcessPool.h trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm trunk/Tools/ChangeLog trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKProcessPoolConfiguration.mm trunk/Tools/TestWebKitAPI/WKWebViewConfigurationExtras.h trunk/Tools/TestWebKitAPI/WKWebViewConfigurationExtras.mm Added Paths trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/BundleFormDelegate.mm trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/BundleFormDelegatePlugIn.mm trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/BundleFormDelegateProtocol.h Diff Modified:
[webkit-changes] [250092] trunk/Source/WebCore
Title: [250092] trunk/Source/WebCore Revision 250092 Author an...@apple.com Date 2019-09-19 08:52:43 -0700 (Thu, 19 Sep 2019) Log Message Turn static DocumentRuleSets::s_isInvalidatingStyleWithRuleSets assertion bit into a member https://bugs.webkit.org/show_bug.cgi?id=201985 Reviewed by Zalan Bujtas. This assert bit was catching cases that are not dangerous. Turn it into a member to narrow the scope. * css/DocumentRuleSets.cpp: (WebCore::DocumentRuleSets::~DocumentRuleSets): (WebCore::DocumentRuleSets::collectFeatures const): (): Deleted. * css/DocumentRuleSets.h: (WebCore::DocumentRuleSets::isInvalidatingStyleWithRuleSets): * style/AttributeChangeInvalidation.cpp: (WebCore::Style::AttributeChangeInvalidation::invalidateStyleWithRuleSets): * style/ClassChangeInvalidation.cpp: (WebCore::Style::ClassChangeInvalidation::invalidateStyleWithRuleSets): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/css/DocumentRuleSets.cpp trunk/Source/WebCore/css/DocumentRuleSets.h trunk/Source/WebCore/style/AttributeChangeInvalidation.cpp trunk/Source/WebCore/style/ClassChangeInvalidation.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (250091 => 250092) --- trunk/Source/WebCore/ChangeLog 2019-09-19 15:35:30 UTC (rev 250091) +++ trunk/Source/WebCore/ChangeLog 2019-09-19 15:52:43 UTC (rev 250092) @@ -1,3 +1,24 @@ +2019-09-19 Antti Koivisto + +Turn static DocumentRuleSets::s_isInvalidatingStyleWithRuleSets assertion bit into a member +https://bugs.webkit.org/show_bug.cgi?id=201985 + + +Reviewed by Zalan Bujtas. + +This assert bit was catching cases that are not dangerous. Turn it into a member to narrow the scope. + +* css/DocumentRuleSets.cpp: +(WebCore::DocumentRuleSets::~DocumentRuleSets): +(WebCore::DocumentRuleSets::collectFeatures const): +(): Deleted. +* css/DocumentRuleSets.h: +(WebCore::DocumentRuleSets::isInvalidatingStyleWithRuleSets): +* style/AttributeChangeInvalidation.cpp: +(WebCore::Style::AttributeChangeInvalidation::invalidateStyleWithRuleSets): +* style/ClassChangeInvalidation.cpp: +(WebCore::Style::ClassChangeInvalidation::invalidateStyleWithRuleSets): + 2019-09-19 Zalan Bujtas [LFC] Remove redundant Layout::Box::ElementTypes Modified: trunk/Source/WebCore/css/DocumentRuleSets.cpp (250091 => 250092) --- trunk/Source/WebCore/css/DocumentRuleSets.cpp 2019-09-19 15:35:30 UTC (rev 250091) +++ trunk/Source/WebCore/css/DocumentRuleSets.cpp 2019-09-19 15:52:43 UTC (rev 250092) @@ -37,9 +37,6 @@ namespace WebCore { -// For catching -bool DocumentRuleSets::s_isInvalidatingStyleWithRuleSets { false }; - DocumentRuleSets::DocumentRuleSets(StyleResolver& styleResolver) : m_styleResolver(styleResolver) { @@ -49,7 +46,7 @@ DocumentRuleSets::~DocumentRuleSets() { -RELEASE_ASSERT(!s_isInvalidatingStyleWithRuleSets); +RELEASE_ASSERT(!m_isInvalidatingStyleWithRuleSets); } RuleSet* DocumentRuleSets::userAgentMediaQueryStyle() const @@ -154,7 +151,7 @@ void DocumentRuleSets::collectFeatures() const { -RELEASE_ASSERT(!s_isInvalidatingStyleWithRuleSets); +RELEASE_ASSERT(!m_isInvalidatingStyleWithRuleSets); m_features.clear(); // Collect all ids and rules using sibling selectors (:first-child and similar) Modified: trunk/Source/WebCore/css/DocumentRuleSets.h (250091 => 250092) --- trunk/Source/WebCore/css/DocumentRuleSets.h 2019-09-19 15:35:30 UTC (rev 250091) +++ trunk/Source/WebCore/css/DocumentRuleSets.h 2019-09-19 15:52:43 UTC (rev 250092) @@ -76,7 +76,7 @@ RuleFeatureSet& mutableFeatures(); -static bool s_isInvalidatingStyleWithRuleSets; +bool& isInvalidatingStyleWithRuleSets() { return m_isInvalidatingStyleWithRuleSets; } private: void collectFeatures() const; @@ -102,6 +102,9 @@ bool m_usesSharedUserStyle { false }; bool m_isForShadowScope { false }; bool m_isAuthorStyleDefined { false }; + +// For catching +bool m_isInvalidatingStyleWithRuleSets { false }; }; inline const RuleFeatureSet& DocumentRuleSets::features() const Modified: trunk/Source/WebCore/style/AttributeChangeInvalidation.cpp (250091 => 250092) --- trunk/Source/WebCore/style/AttributeChangeInvalidation.cpp 2019-09-19 15:35:30 UTC (rev 250091) +++ trunk/Source/WebCore/style/AttributeChangeInvalidation.cpp 2019-09-19 15:52:43 UTC (rev 250092) @@ -89,7 +89,7 @@ void AttributeChangeInvalidation::invalidateStyleWithRuleSets() { -SetForScope isInvalidating(DocumentRuleSets::s_isInvalidatingStyleWithRuleSets, true); +SetForScope isInvalidating(m_element.styleResolver().ruleSets().isInvalidatingStyleWithRuleSets(), true); for (auto* invalidationRuleSet : m_invalidationRuleSets) { Invalidator invalidator(*invalidationRuleSet->ruleSet); Modified: trunk/Source/WebCore/style/ClassChangeInvalidation.cpp (250091 => 250092) ---
[webkit-changes] [250091] trunk/Source/WebCore
Title: [250091] trunk/Source/WebCore Revision 250091 Author za...@apple.com Date 2019-09-19 08:35:30 -0700 (Thu, 19 Sep 2019) Log Message [LFC] Remove redundant Layout::Box::ElementTypes https://bugs.webkit.org/show_bug.cgi?id=201963 Reviewed by Antti Koivisto. These types can be solved through RenderStyle. * layout/layouttree/LayoutBox.cpp: (WebCore::Layout::Box::isPaddingApplicable const): * layout/layouttree/LayoutBox.h: (WebCore::Layout::Box::isTableHeader const): (WebCore::Layout::Box::isTableBody const): (WebCore::Layout::Box::isTableFooter const): (WebCore::Layout::Box::isTableRow const): (WebCore::Layout::Box::isTableColumnGroup const): (WebCore::Layout::Box::isTableColumn const): (WebCore::Layout::Box::isTableCell const): * layout/layouttree/LayoutTreeBuilder.cpp: (WebCore::Layout::TreeBuilder::createLayoutBox): * page/FrameViewLayoutContext.cpp: (WebCore::layoutUsingFormattingContext): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/layout/layouttree/LayoutBox.cpp trunk/Source/WebCore/layout/layouttree/LayoutBox.h trunk/Source/WebCore/layout/layouttree/LayoutTreeBuilder.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (250090 => 250091) --- trunk/Source/WebCore/ChangeLog 2019-09-19 15:19:30 UTC (rev 250090) +++ trunk/Source/WebCore/ChangeLog 2019-09-19 15:35:30 UTC (rev 250091) @@ -1,5 +1,29 @@ 2019-09-19 Zalan Bujtas +[LFC] Remove redundant Layout::Box::ElementTypes +https://bugs.webkit.org/show_bug.cgi?id=201963 + +Reviewed by Antti Koivisto. + +These types can be solved through RenderStyle. + +* layout/layouttree/LayoutBox.cpp: +(WebCore::Layout::Box::isPaddingApplicable const): +* layout/layouttree/LayoutBox.h: +(WebCore::Layout::Box::isTableHeader const): +(WebCore::Layout::Box::isTableBody const): +(WebCore::Layout::Box::isTableFooter const): +(WebCore::Layout::Box::isTableRow const): +(WebCore::Layout::Box::isTableColumnGroup const): +(WebCore::Layout::Box::isTableColumn const): +(WebCore::Layout::Box::isTableCell const): +* layout/layouttree/LayoutTreeBuilder.cpp: +(WebCore::Layout::TreeBuilder::createLayoutBox): +* page/FrameViewLayoutContext.cpp: +(WebCore::layoutUsingFormattingContext): + +2019-09-19 Zalan Bujtas + [LFC][IFC] InlineFormattingContext::InlineLayout should not need to call LayoutState::establishedFormattingState https://bugs.webkit.org/show_bug.cgi?id=201972 Modified: trunk/Source/WebCore/layout/layouttree/LayoutBox.cpp (250090 => 250091) --- trunk/Source/WebCore/layout/layouttree/LayoutBox.cpp 2019-09-19 15:19:30 UTC (rev 250090) +++ trunk/Source/WebCore/layout/layouttree/LayoutBox.cpp 2019-09-19 15:35:30 UTC (rev 250091) @@ -373,13 +373,12 @@ if (isAnonymous()) return false; -auto elementType = m_elementAttributes.value().elementType; -return elementType != ElementType::TableHeaderGroup -&& elementType != ElementType::TableBodyGroup -&& elementType != ElementType::TableFooterGroup -&& elementType != ElementType::TableRow -&& elementType != ElementType::TableColumnGroup -&& elementType != ElementType::TableColumn; +return !isTableHeader() +&& !isTableBody() +&& !isTableFooter() +&& !isTableRow() +&& !isTableColumnGroup() +&& !isTableColumn(); } void Box::setTextContent(String textContent) Modified: trunk/Source/WebCore/layout/layouttree/LayoutBox.h (250090 => 250091) --- trunk/Source/WebCore/layout/layouttree/LayoutBox.h 2019-09-19 15:19:30 UTC (rev 250090) +++ trunk/Source/WebCore/layout/layouttree/LayoutBox.h 2019-09-19 15:35:30 UTC (rev 250091) @@ -47,12 +47,6 @@ Body, TableWrapperBox, // The table generates a principal block container box called the table wrapper box that contains the table box and any caption boxes. TableBox, // The table box is a block-level box that contains the table's internal table boxes. -TableColumn, -TableRow, -TableColumnGroup, -TableHeaderGroup, -TableBodyGroup, -TableFooterGroup, Image, IFrame, HardLineBreak, @@ -116,11 +110,13 @@ bool isTableWrapperBox() const { return m_elementAttributes && m_elementAttributes.value().elementType == ElementType::TableWrapperBox; } bool isTableBox() const { return m_elementAttributes && m_elementAttributes.value().elementType == ElementType::TableBox; } bool isTableCaption() const { return style().display() == DisplayType::TableCaption; } -bool isTableHeader() const { return m_elementAttributes && m_elementAttributes.value().elementType == ElementType::TableHeaderGroup; } -bool isTableBody() const { return m_elementAttributes && m_elementAttributes.value().elementType == ElementType::TableBodyGroup; } -bool isTableFooter() const { return
[webkit-changes] [250089] trunk/Source/WebCore
Title: [250089] trunk/Source/WebCore Revision 250089 Author za...@apple.com Date 2019-09-19 07:58:43 -0700 (Thu, 19 Sep 2019) Log Message [LFC][IFC] InlineFormattingContext::InlineLayout should not need to call LayoutState::establishedFormattingState https://bugs.webkit.org/show_bug.cgi?id=201972 Reviewed by Antti Koivisto. InlineLayout has access to InlineFormattingContext, so it should just query it instead of calling LayoutState::establishedFormattingState. * layout/inlineformatting/InlineFormattingContext.h: (WebCore::Layout::InlineFormattingContext::InlineLayout::formattingContext const): (WebCore::Layout::InlineFormattingContext::InlineLayout::formattingState): * layout/inlineformatting/InlineFormattingContextLineLayout.cpp: (WebCore::Layout::InlineFormattingContext::InlineLayout::InlineLayout): (WebCore::Layout::InlineFormattingContext::InlineLayout::layout): (WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns): (WebCore::Layout::InlineFormattingContext::InlineLayout::layout const): Deleted. (WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns const): Deleted. Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContext.h trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContextLineLayout.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (250088 => 250089) --- trunk/Source/WebCore/ChangeLog 2019-09-19 13:25:46 UTC (rev 250088) +++ trunk/Source/WebCore/ChangeLog 2019-09-19 14:58:43 UTC (rev 250089) @@ -1,5 +1,25 @@ 2019-09-19 Zalan Bujtas +[LFC][IFC] InlineFormattingContext::InlineLayout should not need to call LayoutState::establishedFormattingState +https://bugs.webkit.org/show_bug.cgi?id=201972 + + +Reviewed by Antti Koivisto. + +InlineLayout has access to InlineFormattingContext, so it should just query it instead of calling LayoutState::establishedFormattingState. + +* layout/inlineformatting/InlineFormattingContext.h: +(WebCore::Layout::InlineFormattingContext::InlineLayout::formattingContext const): +(WebCore::Layout::InlineFormattingContext::InlineLayout::formattingState): +* layout/inlineformatting/InlineFormattingContextLineLayout.cpp: +(WebCore::Layout::InlineFormattingContext::InlineLayout::InlineLayout): +(WebCore::Layout::InlineFormattingContext::InlineLayout::layout): +(WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns): +(WebCore::Layout::InlineFormattingContext::InlineLayout::layout const): Deleted. +(WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns const): Deleted. + +2019-09-19 Zalan Bujtas + [LFC] FloatingContext should take the root container. https://bugs.webkit.org/show_bug.cgi?id=201968 Modified: trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContext.h (250088 => 250089) --- trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContext.h 2019-09-19 13:25:46 UTC (rev 250088) +++ trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContext.h 2019-09-19 14:58:43 UTC (rev 250089) @@ -53,20 +53,21 @@ class InlineLayout { public: -InlineLayout(const InlineFormattingContext&); -void layout(const InlineItems&, LayoutUnit widthConstraint) const; +InlineLayout(InlineFormattingContext&); +void layout(const InlineItems&, LayoutUnit widthConstraint); LayoutUnit computedIntrinsicWidth(const InlineItems&, LayoutUnit widthConstraint) const; private: LayoutState& layoutState() const { return m_inlineFormattingContext.layoutState(); } -const InlineFormattingContext& formattingContext() const { return m_inlineFormattingContext; } +InlineFormattingContext& formattingContext() const { return m_inlineFormattingContext; } const Container& formattingRoot() const { return m_inlineFormattingContext.root(); } +InlineFormattingState& formattingState() { return m_inlineFormattingContext.formattingState(); } LineContent placeInlineItems(const LineInput&) const; -void createDisplayRuns(const Line::Content&, const Vector>& floats, LayoutUnit widthConstraint) const; +void createDisplayRuns(const Line::Content&, const Vector>& floats, LayoutUnit widthConstraint); void alignRuns(TextAlignMode, InlineRuns&, unsigned firstRunIndex, LayoutUnit availableWidth) const; private: -const InlineFormattingContext& m_inlineFormattingContext; +InlineFormattingContext& m_inlineFormattingContext; }; class Quirks : public FormattingContext::Quirks { @@ -112,6 +113,7 @@ InlineFormattingState& formattingState() { return downcast(FormattingContext::formattingState()); } // FIXME: Come up with a structure that requires no friending. friend class Line; +friend class InlineLayout; };
[webkit-changes] [250088] trunk/Source/WebCore
Title: [250088] trunk/Source/WebCore Revision 250088 Author za...@apple.com Date 2019-09-19 06:25:46 -0700 (Thu, 19 Sep 2019) Log Message [LFC] FloatingContext should take the root container. https://bugs.webkit.org/show_bug.cgi?id=201968 Reviewed by Antti Koivisto. Now FormattingContext::root() does not need to be public anymore. * layout/FormattingContext.h: (WebCore::Layout::FormattingContext::root const): * layout/blockformatting/BlockFormattingContext.cpp: (WebCore::Layout::BlockFormattingContext::layoutInFlowContent): * layout/floats/FloatingContext.cpp: (WebCore::Layout::FloatingContext::FloatingContext): (WebCore::Layout::FloatingContext::mapPointFromFormattingContextRootToFloatingStateRoot const): * layout/floats/FloatingContext.h: (WebCore::Layout::FloatingContext::root const): * layout/inlineformatting/InlineFormattingContextLineLayout.cpp: (WebCore::Layout::InlineFormattingContext::InlineLayout::layout const): (WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns const): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/layout/FormattingContext.h trunk/Source/WebCore/layout/blockformatting/BlockFormattingContext.cpp trunk/Source/WebCore/layout/floats/FloatingContext.cpp trunk/Source/WebCore/layout/floats/FloatingContext.h trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContextLineLayout.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (250087 => 250088) --- trunk/Source/WebCore/ChangeLog 2019-09-19 05:58:27 UTC (rev 250087) +++ trunk/Source/WebCore/ChangeLog 2019-09-19 13:25:46 UTC (rev 250088) @@ -1,3 +1,26 @@ +2019-09-19 Zalan Bujtas + +[LFC] FloatingContext should take the root container. +https://bugs.webkit.org/show_bug.cgi?id=201968 + + +Reviewed by Antti Koivisto. + +Now FormattingContext::root() does not need to be public anymore. + +* layout/FormattingContext.h: +(WebCore::Layout::FormattingContext::root const): +* layout/blockformatting/BlockFormattingContext.cpp: +(WebCore::Layout::BlockFormattingContext::layoutInFlowContent): +* layout/floats/FloatingContext.cpp: +(WebCore::Layout::FloatingContext::FloatingContext): +(WebCore::Layout::FloatingContext::mapPointFromFormattingContextRootToFloatingStateRoot const): +* layout/floats/FloatingContext.h: +(WebCore::Layout::FloatingContext::root const): +* layout/inlineformatting/InlineFormattingContextLineLayout.cpp: +(WebCore::Layout::InlineFormattingContext::InlineLayout::layout const): +(WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns const): + 2019-09-18 Brent Fulgham [FTW] Correct ImageBufferData and clear operations Modified: trunk/Source/WebCore/layout/FormattingContext.h (250087 => 250088) --- trunk/Source/WebCore/layout/FormattingContext.h 2019-09-19 05:58:27 UTC (rev 250087) +++ trunk/Source/WebCore/layout/FormattingContext.h 2019-09-19 13:25:46 UTC (rev 250088) @@ -76,11 +76,10 @@ }; const Display::Box& geometryForBox(const Box&, Optional = WTF::nullopt) const; -const Container& root() const { return *m_root; } - protected: using LayoutQueue = Vector; +const Container& root() const { return *m_root; } LayoutState& layoutState() const; const FormattingState& formattingState() const { return m_formattingState; } FormattingState& formattingState() { return m_formattingState; } Modified: trunk/Source/WebCore/layout/blockformatting/BlockFormattingContext.cpp (250087 => 250088) --- trunk/Source/WebCore/layout/blockformatting/BlockFormattingContext.cpp 2019-09-19 05:58:27 UTC (rev 250087) +++ trunk/Source/WebCore/layout/blockformatting/BlockFormattingContext.cpp 2019-09-19 13:25:46 UTC (rev 250088) @@ -60,7 +60,7 @@ auto& formattingRoot = root(); LayoutQueue layoutQueue; -auto floatingContext = FloatingContext { *this, formattingState().floatingState() }; +auto floatingContext = FloatingContext { formattingRoot, *this, formattingState().floatingState() }; // This is a post-order tree traversal layout. // The root container layout is done in the formatting context it lives in, not that one it creates, so let's start with the first child. if (auto* firstChild = formattingRoot.firstInFlowOrFloatingChild()) Modified: trunk/Source/WebCore/layout/floats/FloatingContext.cpp (250087 => 250088) --- trunk/Source/WebCore/layout/floats/FloatingContext.cpp 2019-09-19 05:58:27 UTC (rev 250087) +++ trunk/Source/WebCore/layout/floats/FloatingContext.cpp 2019-09-19 13:25:46 UTC (rev 250088) @@ -156,8 +156,9 @@ HorizontalEdges containingBlockContentBox; }; -FloatingContext::FloatingContext(const FormattingContext& formattingContext, FloatingState& floatingState) -: m_formattingContext(formattingContext) +FloatingContext::FloatingContext(const Container& floatingContextRoot, const FormattingContext&