[webkit-changes] [291788] trunk/Source/WebCore
Title: [291788] trunk/Source/WebCore Revision 291788 Author commit-qu...@webkit.org Date 2022-03-23 23:32:33 -0700 (Wed, 23 Mar 2022) Log Message setNeedsLayout() should not be called when changing the SVG properties https://bugs.webkit.org/show_bug.cgi?id=230296 Patch by Rob Buis on 2022-03-23 Reviewed by Said Abou-Hallawa. Make SVG not call setNeedsLayout() from outside RenderTreeUpdater::updateRenderTree() when an attribute changes. This ensures there will not be a dirty rendering tree immediately after updating it. The patch also tries to avoid invalidate wording since this is quite generic. Based on the initial patch by Said Abou-Hallawa. * dom/ElementData.h: (WebCore::ElementData::svgResourcesInAncestorChainAreDirty const): (WebCore::ElementData::setSVGResourcesInAncestorChainAreDirty const): * rendering/updating/RenderTreeUpdater.cpp: (WebCore::RenderTreeUpdater::updateRenderTree): * svg/SVGAnimateMotionElement.cpp: (WebCore::SVGAnimateMotionElement::applyResultsToTarget): * svg/SVGClipPathElement.cpp: (WebCore::SVGClipPathElement::svgAttributeChanged): (WebCore::SVGClipPathElement::childrenChanged): * svg/SVGComponentTransferFunctionElement.cpp: (WebCore::SVGComponentTransferFunctionElement::svgAttributeChanged): * svg/SVGElement.cpp: (WebCore::SVGElement::setSVGResourcesInAncestorChainAreDirty): (WebCore::SVGElement::invalidateSVGResourcesInAncestorChainIfNeeded): * svg/SVGElement.h: * svg/SVGElementInlines.h: (WebCore::SVGElement::setPresentationalHintStyleIsDirty): * svg/SVGFEBlendElement.cpp: (WebCore::SVGFEBlendElement::svgAttributeChanged): * svg/SVGFEColorMatrixElement.cpp: (WebCore::SVGFEColorMatrixElement::svgAttributeChanged): * svg/SVGFECompositeElement.cpp: (WebCore::SVGFECompositeElement::svgAttributeChanged): * svg/SVGFEConvolveMatrixElement.cpp: (WebCore::SVGFEConvolveMatrixElement::setOrder): (WebCore::SVGFEConvolveMatrixElement::setKernelUnitLength): (WebCore::SVGFEConvolveMatrixElement::svgAttributeChanged): * svg/SVGFEDiffuseLightingElement.cpp: (WebCore::SVGFEDiffuseLightingElement::svgAttributeChanged): * svg/SVGFEDisplacementMapElement.cpp: (WebCore::SVGFEDisplacementMapElement::svgAttributeChanged): * svg/SVGFEDropShadowElement.cpp: (WebCore::SVGFEDropShadowElement::setStdDeviation): (WebCore::SVGFEDropShadowElement::svgAttributeChanged): * svg/SVGFEGaussianBlurElement.cpp: (WebCore::SVGFEGaussianBlurElement::setStdDeviation): (WebCore::SVGFEGaussianBlurElement::svgAttributeChanged): * svg/SVGFEImageElement.cpp: (WebCore::SVGFEImageElement::buildPendingResource): (WebCore::SVGFEImageElement::svgAttributeChanged): * svg/SVGFELightElement.cpp: (WebCore::SVGFELightElement::childrenChanged): * svg/SVGFEMergeNodeElement.cpp: (WebCore::SVGFEMergeNodeElement::svgAttributeChanged): * svg/SVGFEMorphologyElement.cpp: (WebCore::SVGFEMorphologyElement::setRadius): (WebCore::SVGFEMorphologyElement::svgAttributeChanged): * svg/SVGFEOffsetElement.cpp: (WebCore::SVGFEOffsetElement::svgAttributeChanged): * svg/SVGFESpecularLightingElement.cpp: (WebCore::SVGFESpecularLightingElement::svgAttributeChanged): * svg/SVGFETileElement.cpp: (WebCore::SVGFETileElement::svgAttributeChanged): * svg/SVGFilterElement.cpp: (WebCore::SVGFilterElement::svgAttributeChanged): (WebCore::SVGFilterElement::childrenChanged): * svg/SVGFilterPrimitiveStandardAttributes.cpp: (WebCore::SVGFilterPrimitiveStandardAttributes::svgAttributeChanged): (WebCore::SVGFilterPrimitiveStandardAttributes::childrenChanged): (WebCore::SVGFilterPrimitiveStandardAttributes::invalidateFilterPrimitiveParent): (WebCore::invalidateFilterPrimitiveParent): Deleted. * svg/SVGFilterPrimitiveStandardAttributes.h: (WebCore::SVGFilterPrimitiveStandardAttributes::invalidate): Deleted. * svg/SVGForeignObjectElement.cpp: (WebCore::SVGForeignObjectElement::svgAttributeChanged): * svg/SVGGeometryElement.cpp: (WebCore::SVGGeometryElement::svgAttributeChanged): * svg/SVGGradientElement.cpp: (WebCore::SVGGradientElement::svgAttributeChanged): (WebCore::SVGGradientElement::childrenChanged): * svg/SVGGraphicsElement.cpp: (WebCore::SVGGraphicsElement::svgAttributeChanged): * svg/SVGImageElement.cpp: (WebCore::SVGImageElement::svgAttributeChanged): * svg/SVGLineElement.cpp: (WebCore::SVGLineElement::svgAttributeChanged): * svg/SVGLinearGradientElement.cpp: (WebCore::SVGLinearGradientElement::svgAttributeChanged): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::svgAttributeChanged): (WebCore::SVGMarkerElement::childrenChanged): * svg/SVGMaskElement.cpp: (WebCore::SVGMaskElement::svgAttributeChanged): (WebCore::SVGMaskElement::childrenChanged): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::svgAttributeChanged): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::svgAttributeChanged): (WebCore::SVGPatternElement::childrenChanged): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::svgAttributeChanged): * svg/SVGRadialGradientElement.cpp: (WebCore::SVGRadialGradientElement::svgAttributeChanged): * svg/SVGSVGElement.cpp: (WebCo
[webkit-changes] [291787] trunk
Title: [291787] trunk Revision 291787 Author cdu...@apple.com Date 2022-03-23 23:27:16 -0700 (Wed, 23 Mar 2022) Log Message Inline String(ASCIILiteral) constructor so the compiler can optimize out strlen() https://bugs.webkit.org/show_bug.cgi?id=238162 Reviewed by Geoffrey Garen. I have verified using a profiler that strlen() is no longer called under String::String(WTF::ASCIILiteral) or StringImpl::createFromLiteral(WTF::ASCIILiteral) when running Speedometer. * wtf/text/StringImpl.cpp: * wtf/text/StringImpl.h: (WTF::StringImpl::createFromLiteral): * wtf/text/WTFString.cpp: * wtf/text/WTFString.h: (WTF::String::String): Modified Paths trunk/Source/WTF/ChangeLog trunk/Source/WTF/wtf/text/StringImpl.cpp trunk/Source/WTF/wtf/text/StringImpl.h trunk/Source/WTF/wtf/text/WTFString.cpp trunk/Source/WTF/wtf/text/WTFString.h trunk/Source/WebCore/platform/graphics/win/FontCacheWin.cpp trunk/Tools/TestWebKitAPI/Tests/WTF/FileSystem.cpp trunk/Tools/TestWebKitAPI/Tests/WTF/StringImpl.cpp trunk/Tools/TestWebKitAPI/Tests/WTF/StringView.cpp trunk/Tools/TestWebKitAPI/Tests/WTF/WTFString.cpp Diff Modified: trunk/Source/WTF/ChangeLog (291786 => 291787) --- trunk/Source/WTF/ChangeLog 2022-03-24 06:25:20 UTC (rev 291786) +++ trunk/Source/WTF/ChangeLog 2022-03-24 06:27:16 UTC (rev 291787) @@ -1,3 +1,20 @@ +2022-03-23 Chris Dumez + +Inline String(ASCIILiteral) constructor so the compiler can optimize out strlen() +https://bugs.webkit.org/show_bug.cgi?id=238162 + +Reviewed by Geoffrey Garen. + +I have verified using a profiler that strlen() is no longer called under String::String(WTF::ASCIILiteral) +or StringImpl::createFromLiteral(WTF::ASCIILiteral) when running Speedometer. + +* wtf/text/StringImpl.cpp: +* wtf/text/StringImpl.h: +(WTF::StringImpl::createFromLiteral): +* wtf/text/WTFString.cpp: +* wtf/text/WTFString.h: +(WTF::String::String): + 2022-03-23 Alex Christensen Add off-by-default experimental feature for app store attribution Modified: trunk/Source/WTF/wtf/text/StringImpl.cpp (291786 => 291787) --- trunk/Source/WTF/wtf/text/StringImpl.cpp 2022-03-24 06:25:20 UTC (rev 291786) +++ trunk/Source/WTF/wtf/text/StringImpl.cpp 2022-03-24 06:27:16 UTC (rev 291787) @@ -163,11 +163,6 @@ return createFromLiteral(characters, strlen(characters)); } -Ref StringImpl::createFromLiteral(ASCIILiteral literal) -{ -return createFromLiteral(literal.characters(), literal.length()); -} - Ref StringImpl::createWithoutCopying(const UChar* characters, unsigned length) { if (!length) Modified: trunk/Source/WTF/wtf/text/StringImpl.h (291786 => 291787) --- trunk/Source/WTF/wtf/text/StringImpl.h 2022-03-24 06:25:20 UTC (rev 291786) +++ trunk/Source/WTF/wtf/text/StringImpl.h 2022-03-24 06:27:16 UTC (rev 291787) @@ -245,12 +245,10 @@ static Ref createSubstringSharingImpl(StringImpl&, unsigned offset, unsigned length); -template static Ref createFromLiteral(const char (&)[characterCount]); - // FIXME: Replace calls to these overloads of createFromLiteral to createWithoutCopying instead. WTF_EXPORT_PRIVATE static Ref createFromLiteral(const char*, unsigned length); WTF_EXPORT_PRIVATE static Ref createFromLiteral(const char*); -WTF_EXPORT_PRIVATE static Ref createFromLiteral(ASCIILiteral); +static Ref createFromLiteral(ASCIILiteral); WTF_EXPORT_PRIVATE static Ref createWithoutCopying(const UChar*, unsigned length); WTF_EXPORT_PRIVATE static Ref createWithoutCopying(const LChar*, unsigned length); @@ -982,12 +980,9 @@ return adoptRef(*new (NotNull, stringImpl) StringImpl(rep.m_data16 + offset, length, *ownerRep)); } -template ALWAYS_INLINE Ref StringImpl::createFromLiteral(const char (&characters)[characterCount]) +inline Ref StringImpl::createFromLiteral(ASCIILiteral literal) { -COMPILE_ASSERT(characterCount > 1, StringImplFromLiteralNotEmpty); -COMPILE_ASSERT((characterCount - 1 <= ((unsigned(~0) - sizeof(StringImpl)) / sizeof(LChar))), StringImplFromLiteralCannotOverflow); - -return createWithoutCopying(reinterpret_cast(characters), characterCount - 1); +return createFromLiteral(literal.characters(), literal.length()); } template ALWAYS_INLINE RefPtr StringImpl::tryCreateUninitialized(unsigned length, CharacterType*& output) Modified: trunk/Source/WTF/wtf/text/WTFString.cpp (291786 => 291787) --- trunk/Source/WTF/wtf/text/WTFString.cpp 2022-03-24 06:25:20 UTC (rev 291786) +++ trunk/Source/WTF/wtf/text/WTFString.cpp 2022-03-24 06:27:16 UTC (rev 291787) @@ -79,11 +79,6 @@ m_impl = StringImpl::create(reinterpret_cast(nullTerminatedString)); } -String::String(ASCIILiteral characters) -: m_impl(characters.isNull() ? nullptr : RefPtr { StringImpl::createFromLiteral(characters) }) -{ -} - void String::append(const String& otherString) { // FIXME: This is extremely inefficient. So much so that we might want
[webkit-changes] [291786] trunk/Source
Title: [291786] trunk/Source Revision 291786 Author sihui_...@apple.com Date 2022-03-23 23:25:20 -0700 (Wed, 23 Mar 2022) Log Message Add logging for LocalStorage and IndexedDB data migration https://bugs.webkit.org/show_bug.cgi?id=238169 Reviewed by Chris Dumez. Source/WebCore: * platform/sql/SQLiteFileSystem.cpp: (WebCore::SQLiteFileSystem::moveDatabaseFile): * platform/sql/SQLiteFileSystem.h: Source/WebKit: * NetworkProcess/storage/IDBStorageManager.cpp: (WebKit::migrateOriginDataImpl): (WebKit::IDBStorageManager::migrateOriginData): * NetworkProcess/storage/IDBStorageManager.h: * NetworkProcess/storage/OriginStorageManager.cpp: (WebKit::OriginStorageManager::StorageBucket::resolvedLocalStoragePath): (WebKit::OriginStorageManager::StorageBucket::resolvedIDBStoragePath): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/sql/SQLiteFileSystem.cpp trunk/Source/WebCore/platform/sql/SQLiteFileSystem.h trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/NetworkProcess/storage/IDBStorageManager.cpp trunk/Source/WebKit/NetworkProcess/storage/IDBStorageManager.h trunk/Source/WebKit/NetworkProcess/storage/OriginStorageManager.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (291785 => 291786) --- trunk/Source/WebCore/ChangeLog 2022-03-24 05:33:58 UTC (rev 291785) +++ trunk/Source/WebCore/ChangeLog 2022-03-24 06:25:20 UTC (rev 291786) @@ -1,3 +1,14 @@ +2022-03-23 Sihui Liu + +Add logging for LocalStorage and IndexedDB data migration +https://bugs.webkit.org/show_bug.cgi?id=238169 + +Reviewed by Chris Dumez. + +* platform/sql/SQLiteFileSystem.cpp: +(WebCore::SQLiteFileSystem::moveDatabaseFile): +* platform/sql/SQLiteFileSystem.h: + 2022-03-23 Alex Christensen Add off-by-default experimental feature for app store attribution Modified: trunk/Source/WebCore/platform/sql/SQLiteFileSystem.cpp (291785 => 291786) --- trunk/Source/WebCore/platform/sql/SQLiteFileSystem.cpp 2022-03-24 05:33:58 UTC (rev 291785) +++ trunk/Source/WebCore/platform/sql/SQLiteFileSystem.cpp 2022-03-24 06:25:20 UTC (rev 291786) @@ -91,10 +91,13 @@ return !fileExists; } -void SQLiteFileSystem::moveDatabaseFile(const String& oldFilePath, const String& newFilePath) +bool SQLiteFileSystem::moveDatabaseFile(const String& oldFilePath, const String& newFilePath) { +bool allMoved = true; for (const auto* suffix : databaseFileSuffixes) -FileSystem::moveFile(makeString(oldFilePath, suffix), makeString(newFilePath, suffix)); +allMoved &= FileSystem::moveFile(makeString(oldFilePath, suffix), makeString(newFilePath, suffix)); + +return allMoved; } #if PLATFORM(IOS_FAMILY) Modified: trunk/Source/WebCore/platform/sql/SQLiteFileSystem.h (291785 => 291786) --- trunk/Source/WebCore/platform/sql/SQLiteFileSystem.h 2022-03-24 05:33:58 UTC (rev 291785) +++ trunk/Source/WebCore/platform/sql/SQLiteFileSystem.h 2022-03-24 06:25:20 UTC (rev 291786) @@ -81,7 +81,7 @@ WEBCORE_EXPORT static bool deleteDatabaseFile(const String& filePath); // Moves a database file to a new place. -WEBCORE_EXPORT static void moveDatabaseFile(const String& oldFilePath, const String& newFilePath); +WEBCORE_EXPORT static bool moveDatabaseFile(const String& oldFilePath, const String& newFilePath); WEBCORE_EXPORT static String computeHashForFileName(const String& filePath); #if PLATFORM(IOS_FAMILY) Modified: trunk/Source/WebKit/ChangeLog (291785 => 291786) --- trunk/Source/WebKit/ChangeLog 2022-03-24 05:33:58 UTC (rev 291785) +++ trunk/Source/WebKit/ChangeLog 2022-03-24 06:25:20 UTC (rev 291786) @@ -1,3 +1,18 @@ +2022-03-23 Sihui Liu + +Add logging for LocalStorage and IndexedDB data migration +https://bugs.webkit.org/show_bug.cgi?id=238169 + +Reviewed by Chris Dumez. + +* NetworkProcess/storage/IDBStorageManager.cpp: +(WebKit::migrateOriginDataImpl): +(WebKit::IDBStorageManager::migrateOriginData): +* NetworkProcess/storage/IDBStorageManager.h: +* NetworkProcess/storage/OriginStorageManager.cpp: +(WebKit::OriginStorageManager::StorageBucket::resolvedLocalStoragePath): +(WebKit::OriginStorageManager::StorageBucket::resolvedIDBStoragePath): + 2022-03-23 Simon Fraser Have MiniBrowser shows the GPU Process pid in its title bar Modified: trunk/Source/WebKit/NetworkProcess/storage/IDBStorageManager.cpp (291785 => 291786) --- trunk/Source/WebKit/NetworkProcess/storage/IDBStorageManager.cpp 2022-03-24 05:33:58 UTC (rev 291785) +++ trunk/Source/WebKit/NetworkProcess/storage/IDBStorageManager.cpp 2022-03-24 06:25:20 UTC (rev 291786) @@ -35,18 +35,19 @@ namespace WebKit { -static void migrateOriginDataImpl(const String& oldOriginDirectory, const String& newOriginDirectory, Function&& createFileNameFunction) +static bool migrateOriginDataImpl(const String& oldOriginDirectory, const String& newOriginDirectory, Function
[webkit-changes] [291785] trunk
Title: [291785] trunk Revision 291785 Author commit-qu...@webkit.org Date 2022-03-23 22:33:58 -0700 (Wed, 23 Mar 2022) Log Message [JSC] Fix remoteFunctionCallGenerator on MIPS https://bugs.webkit.org/show_bug.cgi?id=238274 Patch by Geza Lore on 2022-03-23 Reviewed by Yusuke Suzuki. JSTests: * stress/shadow-realm-evaluate.js: Source/_javascript_Core: Eliminate register conflict (nonArgGPR0 == regT4, which is used in valueRegs) * jit/ThunkGenerators.cpp: (JSC::remoteFunctionCallGenerator): Modified Paths trunk/JSTests/ChangeLog trunk/JSTests/stress/shadow-realm-evaluate.js trunk/Source/_javascript_Core/ChangeLog trunk/Source/_javascript_Core/jit/ThunkGenerators.cpp Diff Modified: trunk/JSTests/ChangeLog (291784 => 291785) --- trunk/JSTests/ChangeLog 2022-03-24 04:35:12 UTC (rev 291784) +++ trunk/JSTests/ChangeLog 2022-03-24 05:33:58 UTC (rev 291785) @@ -1,3 +1,12 @@ +2022-03-23 Geza Lore + +[JSC] Fix remoteFunctionCallGenerator on MIPS +https://bugs.webkit.org/show_bug.cgi?id=238274 + +Reviewed by Yusuke Suzuki. + +* stress/shadow-realm-evaluate.js: + 2022-03-23 Patrick Angle No breakpoints hit on github.com, and some are invalid Modified: trunk/JSTests/stress/shadow-realm-evaluate.js (291784 => 291785) --- trunk/JSTests/stress/shadow-realm-evaluate.js 2022-03-24 04:35:12 UTC (rev 291784) +++ trunk/JSTests/stress/shadow-realm-evaluate.js 2022-03-24 05:33:58 UTC (rev 291785) @@ -1,4 +1,3 @@ -//@ skip if "mips" == $architecture //@ requireOptions("--useShadowRealm=1") function shouldBe(actual, expected) { Modified: trunk/Source/_javascript_Core/ChangeLog (291784 => 291785) --- trunk/Source/_javascript_Core/ChangeLog 2022-03-24 04:35:12 UTC (rev 291784) +++ trunk/Source/_javascript_Core/ChangeLog 2022-03-24 05:33:58 UTC (rev 291785) @@ -1,3 +1,16 @@ +2022-03-23 Geza Lore + +[JSC] Fix remoteFunctionCallGenerator on MIPS +https://bugs.webkit.org/show_bug.cgi?id=238274 + +Reviewed by Yusuke Suzuki. + +Eliminate register conflict (nonArgGPR0 == regT4, which is used in +valueRegs) + +* jit/ThunkGenerators.cpp: +(JSC::remoteFunctionCallGenerator): + 2022-03-23 Chris Dumez Prepare JSC for making the String(const char*) constructor explicit Modified: trunk/Source/_javascript_Core/jit/ThunkGenerators.cpp (291784 => 291785) --- trunk/Source/_javascript_Core/jit/ThunkGenerators.cpp 2022-03-24 04:35:12 UTC (rev 291784) +++ trunk/Source/_javascript_Core/jit/ThunkGenerators.cpp 2022-03-24 05:33:58 UTC (rev 291785) @@ -1502,11 +1502,10 @@ jit.storePtr(GPRInfo::regT1, jit.addressFor(loopIndex)); +jit.prepareCallOperation(vm); +jit.setupArguments(GPRInfo::regT0, valueRegs); jit.move(CCallHelpers::TrustedImmPtr(tagCFunction(operationGetWrappedValueForTarget)), GPRInfo::nonArgGPR0); emitPointerValidation(jit, GPRInfo::nonArgGPR0, OperationPtrTag); - -jit.setupArguments(GPRInfo::regT0, valueRegs); -jit.prepareCallOperation(vm); jit.call(GPRInfo::nonArgGPR0, OperationPtrTag); exceptionChecks.append(jit.emitJumpIfException(vm)); ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [291784] trunk
Title: [291784] trunk Revision 291784 Author simon.fra...@apple.com Date 2022-03-23 21:35:12 -0700 (Wed, 23 Mar 2022) Log Message Have MiniBrowser shows the GPU Process pid in its title bar https://bugs.webkit.org/show_bug.cgi?id=238286 Reviewed by Tim Horton. Source/WebKit: Expose _gpuProcessIdentifier on WKWebView as SPI. In order to support KVO for this, we need to pass gpuProcessDidFinishLaunching() all the way from GPUProcessProxy::didFinishLaunching() to PageClientImplCocoa. This KVO isn't accurate (the "willChange" fires after the new pid is available) but for SPI it's good enough. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _gpuProcessIdentifier]): * UIProcess/API/Cocoa/WKWebViewPrivate.h: * UIProcess/Cocoa/PageClientImplCocoa.h: * UIProcess/Cocoa/PageClientImplCocoa.mm: (WebKit::PageClientImplCocoa::gpuProcessDidFinishLaunching): (WebKit::PageClientImplCocoa::gpuProcessDidExit): * UIProcess/GPU/GPUProcessProxy.cpp: (WebKit::GPUProcessProxy::didFinishLaunching): * UIProcess/PageClient.h: (WebKit::PageClient::gpuProcessDidFinishLaunching): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::gpuProcessIdentifier const): (WebKit::WebPageProxy::gpuProcessDidFinishLaunching): * UIProcess/WebPageProxy.h: * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::gpuProcessDidFinishLaunching): * UIProcess/WebProcessPool.h: * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::gpuProcessDidFinishLaunching): * UIProcess/WebProcessProxy.h: * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::gpuProcessDidExit): Tools: KVO-observe the WKWebView's _gpuProcessIdentifier property and include it in the window title. * MiniBrowser/mac/WK2BrowserWindowController.m: (-[WK2BrowserWindowController awakeFromNib]): (-[WK2BrowserWindowController dealloc]): (-[WK2BrowserWindowController updateTitle:]): (-[WK2BrowserWindowController observeValueForKeyPath:ofObject:change:context:]): Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h trunk/Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.h trunk/Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.mm trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp trunk/Source/WebKit/UIProcess/PageClient.h trunk/Source/WebKit/UIProcess/WebPageProxy.cpp trunk/Source/WebKit/UIProcess/WebPageProxy.h trunk/Source/WebKit/UIProcess/WebProcessPool.cpp trunk/Source/WebKit/UIProcess/WebProcessPool.h trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp trunk/Source/WebKit/UIProcess/WebProcessProxy.h trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm trunk/Tools/ChangeLog trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.m Diff Modified: trunk/Source/WebKit/ChangeLog (291783 => 291784) --- trunk/Source/WebKit/ChangeLog 2022-03-24 04:17:57 UTC (rev 291783) +++ trunk/Source/WebKit/ChangeLog 2022-03-24 04:35:12 UTC (rev 291784) @@ -1,5 +1,41 @@ 2022-03-23 Simon Fraser +Have MiniBrowser shows the GPU Process pid in its title bar +https://bugs.webkit.org/show_bug.cgi?id=238286 + +Reviewed by Tim Horton. + +Expose _gpuProcessIdentifier on WKWebView as SPI. In order to support KVO for this, we need +to pass gpuProcessDidFinishLaunching() all the way from +GPUProcessProxy::didFinishLaunching() to PageClientImplCocoa. This KVO isn't accurate (the +"willChange" fires after the new pid is available) but for SPI it's good enough. + +* UIProcess/API/Cocoa/WKWebView.mm: +(-[WKWebView _gpuProcessIdentifier]): +* UIProcess/API/Cocoa/WKWebViewPrivate.h: +* UIProcess/Cocoa/PageClientImplCocoa.h: +* UIProcess/Cocoa/PageClientImplCocoa.mm: +(WebKit::PageClientImplCocoa::gpuProcessDidFinishLaunching): +(WebKit::PageClientImplCocoa::gpuProcessDidExit): +* UIProcess/GPU/GPUProcessProxy.cpp: +(WebKit::GPUProcessProxy::didFinishLaunching): +* UIProcess/PageClient.h: +(WebKit::PageClient::gpuProcessDidFinishLaunching): +* UIProcess/WebPageProxy.cpp: +(WebKit::WebPageProxy::gpuProcessIdentifier const): +(WebKit::WebPageProxy::gpuProcessDidFinishLaunching): +* UIProcess/WebPageProxy.h: +* UIProcess/WebProcessPool.cpp: +(WebKit::WebProcessPool::gpuProcessDidFinishLaunching): +* UIProcess/WebProcessPool.h: +* UIProcess/WebProcessProxy.cpp: +(WebKit::WebProcessProxy::gpuProcessDidFinishLaunching): +* UIProcess/WebProcessProxy.h: +* UIProcess/ios/PageClientImplIOS.mm: +(WebKit::PageClientImpl::gpuProcessDidExit): + +2022-03-23 Simon Fraser + REGRESSION (248692@main?): [iOS] ASSERTION FAILED: m_layer->owner()->platformCALayerDelegatesDisplay(m_layer) in WebKit::RemoteLayerBackingStore::paintContents() https://bugs.webkit.org/show_bug.cgi?id=238277 Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebV
[webkit-changes] [291783] trunk/LayoutTests/imported/w3c
Title: [291783] trunk/LayoutTests/imported/w3c Revision 291783 Author hey...@apple.com Date 2022-03-23 21:17:57 -0700 (Wed, 23 Mar 2022) Log Message Bump up fuzzy tolerance on css-backgrounds/background-gradient-subpixel-fills-area.html https://bugs.webkit.org/show_bug.cgi?id=238307 Unreviewed test gardening. * web-platform-tests/css/css-backgrounds/background-gradient-subpixel-fills-area.html: Modified Paths trunk/LayoutTests/imported/w3c/ChangeLog trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-gradient-subpixel-fills-area.html Diff Modified: trunk/LayoutTests/imported/w3c/ChangeLog (291782 => 291783) --- trunk/LayoutTests/imported/w3c/ChangeLog 2022-03-24 03:45:39 UTC (rev 291782) +++ trunk/LayoutTests/imported/w3c/ChangeLog 2022-03-24 04:17:57 UTC (rev 291783) @@ -1,3 +1,12 @@ +2022-03-23 Cameron McCormack + +Bump up fuzzy tolerance on css-backgrounds/background-gradient-subpixel-fills-area.html +https://bugs.webkit.org/show_bug.cgi?id=238307 + +Unreviewed test gardening. + +* web-platform-tests/css/css-backgrounds/background-gradient-subpixel-fills-area.html: + 2022-03-23 Jon Lee Unreviewed fuzzy gardening. Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-gradient-subpixel-fills-area.html (291782 => 291783) --- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-gradient-subpixel-fills-area.html 2022-03-24 03:45:39 UTC (rev 291782) +++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-gradient-subpixel-fills-area.html 2022-03-24 04:17:57 UTC (rev 291783) @@ -5,7 +5,7 @@ - +
[webkit-changes] [291782] trunk
Title: [291782] trunk Revision 291782 Author commit-qu...@webkit.org Date 2022-03-23 20:45:39 -0700 (Wed, 23 Mar 2022) Log Message Add off-by-default experimental feature for app store attribution https://bugs.webkit.org/show_bug.cgi?id=238294 Patch by Alex Christensen on 2022-03-23 Reviewed by John Wilander. Source/WebCore: In r291735 I landed a way to give SKAdNetwork a way to private report app purchase attribution which isn't implemented yet. Turn it off in WebKit until the time is right. * html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::parsePrivateClickMeasurementForSKAdNetwork const): Source/WTF: * Scripts/Preferences/WebPreferencesExperimental.yaml: Tools: * TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm: (TestWebKitAPI::TEST): Modified Paths trunk/Source/WTF/ChangeLog trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/html/HTMLAnchorElement.cpp trunk/Tools/ChangeLog trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm Diff Modified: trunk/Source/WTF/ChangeLog (291781 => 291782) --- trunk/Source/WTF/ChangeLog 2022-03-24 02:48:09 UTC (rev 291781) +++ trunk/Source/WTF/ChangeLog 2022-03-24 03:45:39 UTC (rev 291782) @@ -1,3 +1,12 @@ +2022-03-23 Alex Christensen + +Add off-by-default experimental feature for app store attribution +https://bugs.webkit.org/show_bug.cgi?id=238294 + +Reviewed by John Wilander. + +* Scripts/Preferences/WebPreferencesExperimental.yaml: + 2022-03-23 Chris Dumez Prepare JSC for making the String(const char*) constructor explicit Modified: trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml (291781 => 291782) --- trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml 2022-03-24 02:48:09 UTC (rev 291781) +++ trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml 2022-03-24 03:45:39 UTC (rev 291782) @@ -1246,6 +1246,18 @@ WebCore: default: true +SKAttributionEnabled: + type: bool + humanReadableName: "SKAttribution" + humanReadableDescription: "SKAttribution" + defaultValue: +WebCore: + default: false +WebKitLegacy: + default: false +WebKit: + default: false + SampleBufferContentKeySessionSupportEnabled: type: bool humanReadableName: "ContentKeySession support for SampleBuffer Renderers" Modified: trunk/Source/WebCore/ChangeLog (291781 => 291782) --- trunk/Source/WebCore/ChangeLog 2022-03-24 02:48:09 UTC (rev 291781) +++ trunk/Source/WebCore/ChangeLog 2022-03-24 03:45:39 UTC (rev 291782) @@ -1,3 +1,16 @@ +2022-03-23 Alex Christensen + +Add off-by-default experimental feature for app store attribution +https://bugs.webkit.org/show_bug.cgi?id=238294 + +Reviewed by John Wilander. + +In r291735 I landed a way to give SKAdNetwork a way to private report app purchase attribution +which isn't implemented yet. Turn it off in WebKit until the time is right. + +* html/HTMLAnchorElement.cpp: +(WebCore::HTMLAnchorElement::parsePrivateClickMeasurementForSKAdNetwork const): + 2022-03-23 Chris Dumez Prepare JSC for making the String(const char*) constructor explicit Modified: trunk/Source/WebCore/html/HTMLAnchorElement.cpp (291781 => 291782) --- trunk/Source/WebCore/html/HTMLAnchorElement.cpp 2022-03-24 02:48:09 UTC (rev 291781) +++ trunk/Source/WebCore/html/HTMLAnchorElement.cpp 2022-03-24 03:45:39 UTC (rev 291782) @@ -435,6 +435,9 @@ std::optional HTMLAnchorElement::parsePrivateClickMeasurementForSKAdNetwork(const URL& hrefURL) const { +if (!document().settings().sKAttributionEnabled()) +return std::nullopt; + using SourceID = PrivateClickMeasurement::SourceID; using SourceSite = PrivateClickMeasurement::SourceSite; using AttributionDestinationSite = PrivateClickMeasurement::AttributionDestinationSite; Modified: trunk/Tools/ChangeLog (291781 => 291782) --- trunk/Tools/ChangeLog 2022-03-24 02:48:09 UTC (rev 291781) +++ trunk/Tools/ChangeLog 2022-03-24 03:45:39 UTC (rev 291782) @@ -1,3 +1,13 @@ +2022-03-23 Alex Christensen + +Add off-by-default experimental feature for app store attribution +https://bugs.webkit.org/show_bug.cgi?id=238294 + +Reviewed by John Wilander. + +* TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm: +(TestWebKitAPI::TEST): + 2022-03-23 Myles C. Maxfield [WebGPU] Implement Device::createTexture() according to the spec Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm (291781 => 291782) --- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm 2022-03-24 02:48:09 UTC (rev 291781) +++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm 2022-03-24 03:45:39 UTC (rev 291782) @@ -43,6 +43,7 @@ #import #import #import +#import #import #import #import @@ -573,6 +574,13 @@ view
[webkit-changes] [291781] trunk/Source/WebGPU
Title: [291781] trunk/Source/WebGPU Revision 291781 Author mmaxfi...@apple.com Date 2022-03-23 19:48:09 -0700 (Wed, 23 Mar 2022) Log Message [WebGPU] Fix the non-macOS build https://bugs.webkit.org/show_bug.cgi?id=238304 Unreviewed. Some texture formats are only available on macOS. * WebGPU/Texture.mm: (WebGPU::pixelFormat): Modified Paths trunk/Source/WebGPU/ChangeLog trunk/Source/WebGPU/WebGPU/Texture.mm Diff Modified: trunk/Source/WebGPU/ChangeLog (291780 => 291781) --- trunk/Source/WebGPU/ChangeLog 2022-03-24 02:28:47 UTC (rev 291780) +++ trunk/Source/WebGPU/ChangeLog 2022-03-24 02:48:09 UTC (rev 291781) @@ -1,5 +1,17 @@ 2022-03-23 Myles C. Maxfield +[WebGPU] Fix the non-macOS build +https://bugs.webkit.org/show_bug.cgi?id=238304 + +Unreviewed. + +Some texture formats are only available on macOS. + +* WebGPU/Texture.mm: +(WebGPU::pixelFormat): + +2022-03-23 Myles C. Maxfield + [WebGPU] Implement Device::createTexture() according to the spec https://bugs.webkit.org/show_bug.cgi?id=238251 Modified: trunk/Source/WebGPU/WebGPU/Texture.mm (291780 => 291781) --- trunk/Source/WebGPU/WebGPU/Texture.mm 2022-03-24 02:28:47 UTC (rev 291780) +++ trunk/Source/WebGPU/WebGPU/Texture.mm 2022-03-24 02:48:09 UTC (rev 291781) @@ -1165,40 +1165,10 @@ return MTLPixelFormatDepth32Float; case WGPUTextureFormat_Depth24PlusStencil8: return MTLPixelFormatDepth32Float_Stencil8; -case WGPUTextureFormat_Depth24UnormStencil8: -return MTLPixelFormatDepth24Unorm_Stencil8; case WGPUTextureFormat_Depth32Float: return MTLPixelFormatDepth32Float; case WGPUTextureFormat_Depth32FloatStencil8: return MTLPixelFormatDepth32Float_Stencil8; -case WGPUTextureFormat_BC1RGBAUnorm: -return MTLPixelFormatBC1_RGBA; -case WGPUTextureFormat_BC1RGBAUnormSrgb: -return MTLPixelFormatBC1_RGBA_sRGB; -case WGPUTextureFormat_BC2RGBAUnorm: -return MTLPixelFormatBC2_RGBA; -case WGPUTextureFormat_BC2RGBAUnormSrgb: -return MTLPixelFormatBC2_RGBA_sRGB; -case WGPUTextureFormat_BC3RGBAUnorm: -return MTLPixelFormatBC3_RGBA; -case WGPUTextureFormat_BC3RGBAUnormSrgb: -return MTLPixelFormatBC3_RGBA_sRGB; -case WGPUTextureFormat_BC4RUnorm: -return MTLPixelFormatBC4_RUnorm; -case WGPUTextureFormat_BC4RSnorm: -return MTLPixelFormatBC4_RSnorm; -case WGPUTextureFormat_BC5RGUnorm: -return MTLPixelFormatBC5_RGUnorm; -case WGPUTextureFormat_BC5RGSnorm: -return MTLPixelFormatBC5_RGSnorm; -case WGPUTextureFormat_BC6HRGBUfloat: -return MTLPixelFormatBC6H_RGBUfloat; -case WGPUTextureFormat_BC6HRGBFloat: -return MTLPixelFormatBC6H_RGBFloat; -case WGPUTextureFormat_BC7RGBAUnorm: -return MTLPixelFormatBC7_RGBAUnorm; -case WGPUTextureFormat_BC7RGBAUnormSrgb: -return MTLPixelFormatBC7_RGBAUnorm_sRGB; case WGPUTextureFormat_ETC2RGB8Unorm: return MTLPixelFormatETC2_RGB8; case WGPUTextureFormat_ETC2RGB8UnormSrgb: @@ -1275,6 +1245,55 @@ return MTLPixelFormatASTC_12x12_LDR; case WGPUTextureFormat_ASTC12x12UnormSrgb: return MTLPixelFormatASTC_12x12_sRGB; +#if PLATFORM(MAC) || PLATFORM(MACCATALYST) +case WGPUTextureFormat_Depth24UnormStencil8: +return MTLPixelFormatDepth24Unorm_Stencil8; +case WGPUTextureFormat_BC1RGBAUnorm: +return MTLPixelFormatBC1_RGBA; +case WGPUTextureFormat_BC1RGBAUnormSrgb: +return MTLPixelFormatBC1_RGBA_sRGB; +case WGPUTextureFormat_BC2RGBAUnorm: +return MTLPixelFormatBC2_RGBA; +case WGPUTextureFormat_BC2RGBAUnormSrgb: +return MTLPixelFormatBC2_RGBA_sRGB; +case WGPUTextureFormat_BC3RGBAUnorm: +return MTLPixelFormatBC3_RGBA; +case WGPUTextureFormat_BC3RGBAUnormSrgb: +return MTLPixelFormatBC3_RGBA_sRGB; +case WGPUTextureFormat_BC4RUnorm: +return MTLPixelFormatBC4_RUnorm; +case WGPUTextureFormat_BC4RSnorm: +return MTLPixelFormatBC4_RSnorm; +case WGPUTextureFormat_BC5RGUnorm: +return MTLPixelFormatBC5_RGUnorm; +case WGPUTextureFormat_BC5RGSnorm: +return MTLPixelFormatBC5_RGSnorm; +case WGPUTextureFormat_BC6HRGBUfloat: +return MTLPixelFormatBC6H_RGBUfloat; +case WGPUTextureFormat_BC6HRGBFloat: +return MTLPixelFormatBC6H_RGBFloat; +case WGPUTextureFormat_BC7RGBAUnorm: +return MTLPixelFormatBC7_RGBAUnorm; +case WGPUTextureFormat_BC7RGBAUnormSrgb: +return MTLPixelFormatBC7_RGBAUnorm_sRGB; +#else +case WGPUTextureFormat_Depth24UnormStencil8: +case WGPUTextureFormat_BC1RGBAUnorm: +case WGPUTextureFormat_BC1RGBAUnormSrgb: +case WGPUTextureFormat_BC2RGBAUnorm: +case WGPUTextureFormat_BC2RGBAUnormSrgb: +case WGPUTextureFormat_BC3RGBAUnorm: +case WGPUTextureFormat_BC3RGBAUnormSrgb: +case WGPUTextureFormat_BC
[webkit-changes] [291780] trunk/Source/WebKit
Title: [291780] trunk/Source/WebKit Revision 291780 Author simon.fra...@apple.com Date 2022-03-23 19:28:47 -0700 (Wed, 23 Mar 2022) Log Message REGRESSION (248692@main?): [iOS] ASSERTION FAILED: m_layer->owner()->platformCALayerDelegatesDisplay(m_layer) in WebKit::RemoteLayerBackingStore::paintContents() https://bugs.webkit.org/show_bug.cgi?id=238277 Reviewed by Tim Horton. Empty backing store (height or width of zero) never need display; ImageBuffer allocation with empty sizes always returns null anyway. * Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: (WebKit::RemoteLayerBackingStore::needsDisplay const): * Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm: (WebKit::RemoteLayerBackingStoreCollection::backingStoreNeedsDisplay): * Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm: (WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::backingStoreNeedsDisplay): Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm Diff Modified: trunk/Source/WebKit/ChangeLog (291779 => 291780) --- trunk/Source/WebKit/ChangeLog 2022-03-24 01:40:35 UTC (rev 291779) +++ trunk/Source/WebKit/ChangeLog 2022-03-24 02:28:47 UTC (rev 291780) @@ -1,3 +1,21 @@ +2022-03-23 Simon Fraser + +REGRESSION (248692@main?): [iOS] ASSERTION FAILED: m_layer->owner()->platformCALayerDelegatesDisplay(m_layer) in WebKit::RemoteLayerBackingStore::paintContents() +https://bugs.webkit.org/show_bug.cgi?id=238277 + + +Reviewed by Tim Horton. + +Empty backing store (height or width of zero) never need display; ImageBuffer allocation +with empty sizes always returns null anyway. + +* Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: +(WebKit::RemoteLayerBackingStore::needsDisplay const): +* Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm: +(WebKit::RemoteLayerBackingStoreCollection::backingStoreNeedsDisplay): +* Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm: +(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::backingStoreNeedsDisplay): + 2022-03-23 Sihui Liu [ BigSur+ Debug wk2 EWS ] imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/quirks.window.html is a flaky crash Modified: trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm (291779 => 291780) --- trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm 2022-03-24 01:40:35 UTC (rev 291779) +++ trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm 2022-03-24 02:28:47 UTC (rev 291780) @@ -296,7 +296,7 @@ } bool needsDisplay = collection->backingStoreNeedsDisplay(*this); -LOG_WITH_STREAM(RemoteRenderingBufferVolatility, stream << "RemoteLayerBackingStore " << m_layer->layerID() << " needsDisplay() - needsDisplay " << needsDisplay); +LOG_WITH_STREAM(RemoteRenderingBufferVolatility, stream << "RemoteLayerBackingStore " << m_layer->layerID() << " size " << size() << " needsDisplay() - needsDisplay " << needsDisplay); return needsDisplay; } Modified: trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm (291779 => 291780) --- trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm 2022-03-24 01:40:35 UTC (rev 291779) +++ trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm 2022-03-24 02:28:47 UTC (rev 291780) @@ -49,6 +49,9 @@ bool RemoteLayerBackingStoreCollection::backingStoreNeedsDisplay(const RemoteLayerBackingStore& backingStore) { +if (backingStore.size().isEmpty()) +return false; + auto frontBuffer = backingStore.bufferForType(RemoteLayerBackingStore::BufferType::Front); if (!frontBuffer) return true; Modified: trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm (291779 => 291780) --- trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm 2022-03-24 01:40:35 UTC (rev 291779) +++ trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm 2022-03-24 02:28:47 UTC (rev 291780) @@ -46,6 +46,9 @@ bool RemoteLayerWithRemoteRenderingBackingStoreCollection::backingStoreNeedsDisplay(const RemoteLayerBackingStore& backingStore) { +if (backingStore.size().isEmpty()) +return false; + auto frontBuffer = backingStore.bufferForType(RemoteLayerBackingStore::BufferType::Front); if (!frontBuffer) return true; ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.
[webkit-changes] [291778] trunk/Source/WebKit
Title: [291778] trunk/Source/WebKit Revision 291778 Author sihui_...@apple.com Date 2022-03-23 18:25:12 -0700 (Wed, 23 Mar 2022) Log Message [ BigSur+ Debug wk2 EWS ] imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/quirks.window.html is a flaky crash https://bugs.webkit.org/show_bug.cgi?id=237165 Reviewed by Chris Dumez. The test is hitting an assertion in StorageAreaBase::addListener. The assertion is used to verify that one connection will not be added to a StorageArea twice, i.e. one web process will not have two StorageAreaMaps pointing to the same StorageArea in network process. With our current implementation, there is an edge case that we load a.com, navigate to b.com and go back to a.com. In this case, we would create a StorageAreaMap for a.com, destroy it on navigation, and create another StorageAreaMap for a.com on going back. Because we don't remove listener during destruction of StorageAreaMap (we do it when web process receives reply from network process), the assertion is hit for two StorageAreaMaps from one connection pointing to the same StorageArea. We can fix it by sending a cancelConnectToStorage message to remove listener during destruction. The edge case is a bit hard to reproduce with auto test since we need to ensure web process sends the second ConnectionToStorageArea message before receiving the reply of the first ConnectionToStorageArea message, so I manually tested it by adding delay in NetworkStorageManager::connectToStorageArea. * NetworkProcess/storage/LocalStorageManager.cpp: (WebKit::LocalStorageManager::cancelConnectToLocalStorageArea): (WebKit::LocalStorageManager::cancelConnectToTransientLocalStorageArea): * NetworkProcess/storage/LocalStorageManager.h: * NetworkProcess/storage/NetworkStorageManager.cpp: (WebKit::NetworkStorageManager::cancelConnectToStorageArea): * NetworkProcess/storage/NetworkStorageManager.h: * NetworkProcess/storage/NetworkStorageManager.messages.in: * NetworkProcess/storage/SessionStorageManager.cpp: (WebKit::SessionStorageManager::cancelConnectToSessionStorageArea): * NetworkProcess/storage/SessionStorageManager.h: * WebProcess/WebStorage/StorageAreaMap.cpp: (WebKit::StorageAreaMap::computeStorageType const): (WebKit::StorageAreaMap::clientOrigin const): (WebKit::StorageAreaMap::sendConnectMessage): (WebKit::StorageAreaMap::didConnect): (WebKit::StorageAreaMap::disconnect): * WebProcess/WebStorage/StorageAreaMap.h: Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/NetworkProcess/storage/LocalStorageManager.cpp trunk/Source/WebKit/NetworkProcess/storage/LocalStorageManager.h trunk/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp trunk/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h trunk/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.messages.in trunk/Source/WebKit/NetworkProcess/storage/SessionStorageManager.cpp trunk/Source/WebKit/NetworkProcess/storage/SessionStorageManager.h trunk/Source/WebKit/WebProcess/WebStorage/StorageAreaMap.cpp trunk/Source/WebKit/WebProcess/WebStorage/StorageAreaMap.h Diff Modified: trunk/Source/WebKit/ChangeLog (291777 => 291778) --- trunk/Source/WebKit/ChangeLog 2022-03-24 01:03:07 UTC (rev 291777) +++ trunk/Source/WebKit/ChangeLog 2022-03-24 01:25:12 UTC (rev 291778) @@ -1,3 +1,43 @@ +2022-03-23 Sihui Liu + +[ BigSur+ Debug wk2 EWS ] imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/quirks.window.html is a flaky crash +https://bugs.webkit.org/show_bug.cgi?id=237165 + + +Reviewed by Chris Dumez. + +The test is hitting an assertion in StorageAreaBase::addListener. The assertion is used to verify that one +connection will not be added to a StorageArea twice, i.e. one web process will not have two StorageAreaMaps +pointing to the same StorageArea in network process. With our current implementation, there is an edge case that +we load a.com, navigate to b.com and go back to a.com. In this case, we would create a StorageAreaMap for a.com, +destroy it on navigation, and create another StorageAreaMap for a.com on going back. Because we don't remove +listener during destruction of StorageAreaMap (we do it when web process receives reply from network process), +the assertion is hit for two StorageAreaMaps from one connection pointing to the same StorageArea. We can fix +it by sending a cancelConnectToStorage message to remove listener during destruction. + +The edge case is a bit hard to reproduce with auto test since we need to ensure web process sends the second +ConnectionToStorageArea message before receiving the reply of the first ConnectionToStorageArea message, so I +manually tested it by adding delay in NetworkStorageManager::connectToStorageArea. + +* NetworkProcess/storage/LocalStorageManager.cpp: +(WebK
[webkit-changes] [291777] trunk
Title: [291777] trunk Revision 291777 Author mmaxfi...@apple.com Date 2022-03-23 18:03:07 -0700 (Wed, 23 Mar 2022) Log Message [WebGPU] Implement Device::createTexture() according to the spec https://bugs.webkit.org/show_bug.cgi?id=238251 Reviewed by Darin Adler. Source/WebGPU: Simply type in the spec into the computer, in C++ form. All functionality has links to the spec to describe its origins. Test: api/validation/createTexture.spec.ts * WebGPU/Device.h: * WebGPU/Texture.h: (WebGPU::Texture::create): (WebGPU::Texture::descriptor const): * WebGPU/Texture.mm: (WebGPU::featureRequirementForFormat): (WebGPU::isCompressedFormat): (WebGPU::isDepthOrStencilFormat): (WebGPU::texelBlockWidth): (WebGPU::texelBlockHeight): (WebGPU::isRenderableFormat): (WebGPU::supportsMultisampling): (WebGPU::maximumMiplevelCount): (WebGPU::hasStorageBindingCapability): (WebGPU::Device::validateCreateTexture): (WebGPU::usage): (WebGPU::pixelFormat): (WebGPU::storageMode): (WebGPU::Device::createTexture): (WebGPU::Texture::Texture): Tools: Document the behavior of fastLog2(). * TestWebKitAPI/Tests/WTF/MathExtras.cpp: (TestWebKitAPI::TEST): Modified Paths trunk/Source/WebGPU/ChangeLog trunk/Source/WebGPU/WebGPU/Device.h trunk/Source/WebGPU/WebGPU/Texture.h trunk/Source/WebGPU/WebGPU/Texture.mm trunk/Tools/ChangeLog trunk/Tools/TestWebKitAPI/Tests/WTF/MathExtras.cpp Diff Modified: trunk/Source/WebGPU/ChangeLog (291776 => 291777) --- trunk/Source/WebGPU/ChangeLog 2022-03-24 00:32:48 UTC (rev 291776) +++ trunk/Source/WebGPU/ChangeLog 2022-03-24 01:03:07 UTC (rev 291777) @@ -1,5 +1,38 @@ 2022-03-23 Myles C. Maxfield +[WebGPU] Implement Device::createTexture() according to the spec +https://bugs.webkit.org/show_bug.cgi?id=238251 + +Reviewed by Darin Adler. + +Simply type in the spec into the computer, in C++ form. +All functionality has links to the spec to describe its origins. + +Test: api/validation/createTexture.spec.ts + +* WebGPU/Device.h: +* WebGPU/Texture.h: +(WebGPU::Texture::create): +(WebGPU::Texture::descriptor const): +* WebGPU/Texture.mm: +(WebGPU::featureRequirementForFormat): +(WebGPU::isCompressedFormat): +(WebGPU::isDepthOrStencilFormat): +(WebGPU::texelBlockWidth): +(WebGPU::texelBlockHeight): +(WebGPU::isRenderableFormat): +(WebGPU::supportsMultisampling): +(WebGPU::maximumMiplevelCount): +(WebGPU::hasStorageBindingCapability): +(WebGPU::Device::validateCreateTexture): +(WebGPU::usage): +(WebGPU::pixelFormat): +(WebGPU::storageMode): +(WebGPU::Device::createTexture): +(WebGPU::Texture::Texture): + +2022-03-23 Myles C. Maxfield + [WebGPU] Clean up implementation of Device::createSampler() https://bugs.webkit.org/show_bug.cgi?id=238250 Modified: trunk/Source/WebGPU/WebGPU/Device.h (291776 => 291777) --- trunk/Source/WebGPU/WebGPU/Device.h 2022-03-24 00:32:48 UTC (rev 291776) +++ trunk/Source/WebGPU/WebGPU/Device.h 2022-03-24 01:03:07 UTC (rev 291777) @@ -103,6 +103,7 @@ ErrorScope* currentErrorScope(WGPUErrorFilter); bool validatePopErrorScope() const; id safeCreateBuffer(NSUInteger length, MTLStorageMode, MTLCPUCacheMode = MTLCPUCacheModeDefaultCache, MTLHazardTrackingMode = MTLHazardTrackingModeDefault) const; +bool validateCreateTexture(const WGPUTextureDescriptor&); struct Error { WGPUErrorType type; Modified: trunk/Source/WebGPU/WebGPU/Texture.h (291776 => 291777) --- trunk/Source/WebGPU/WebGPU/Texture.h 2022-03-24 00:32:48 UTC (rev 291776) +++ trunk/Source/WebGPU/WebGPU/Texture.h 2022-03-24 01:03:07 UTC (rev 291777) @@ -40,9 +40,9 @@ class Texture : public WGPUTextureImpl, public RefCounted { WTF_MAKE_FAST_ALLOCATED; public: -static Ref create(id texture) +static Ref create(id texture, const WGPUTextureDescriptor& descriptor) { -return adoptRef(*new Texture(texture)); +return adoptRef(*new Texture(texture, descriptor)); } ~Texture(); @@ -52,11 +52,14 @@ void setLabel(String&&); id texture() const { return m_texture; } +const WGPUTextureDescriptor& descriptor() const { return m_descriptor; } private: -Texture(id); +Texture(id, const WGPUTextureDescriptor&); const id m_texture { nil }; + +const WGPUTextureDescriptor m_descriptor { }; // "The GPUTextureDescriptor describing this texture." }; } // namespace WebGPU Modified: trunk/Source/WebGPU/WebGPU/Texture.mm (291776 => 291777) --- trunk/Source/WebGPU/WebGPU/Texture.mm 2022-03-24 00:32:48 UTC (rev 291776) +++ trunk/Source/WebGPU/WebGPU/Texture.mm 2022-03-24 01:03:07 UTC (rev 291777) @@ -29,17 +29,1358 @@ #import "APIConversions.h" #import "Device.h" #import "TextureView.h" +#import namespace WebGPU { +static std::optional featureRequirementForFormat(WGPUTextureFormat
[webkit-changes] [291776] branches/safari-613.1.17.1-branch/Source
Title: [291776] branches/safari-613.1.17.1-branch/Source Revision 291776 Author repst...@apple.com Date 2022-03-23 17:32:48 -0700 (Wed, 23 Mar 2022) Log Message Versioning. WebKit-7613.1.17.1.12 Modified Paths branches/safari-613.1.17.1-branch/Source/_javascript_Core/Configurations/Version.xcconfig branches/safari-613.1.17.1-branch/Source/ThirdParty/ANGLE/Configurations/Version.xcconfig branches/safari-613.1.17.1-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig branches/safari-613.1.17.1-branch/Source/WebCore/Configurations/Version.xcconfig branches/safari-613.1.17.1-branch/Source/WebCore/PAL/Configurations/Version.xcconfig branches/safari-613.1.17.1-branch/Source/WebGPU/Configurations/Version.xcconfig branches/safari-613.1.17.1-branch/Source/WebInspectorUI/Configurations/Version.xcconfig branches/safari-613.1.17.1-branch/Source/WebKit/Configurations/Version.xcconfig branches/safari-613.1.17.1-branch/Source/WebKitLegacy/mac/Configurations/Version.xcconfig Diff Modified: branches/safari-613.1.17.1-branch/Source/_javascript_Core/Configurations/Version.xcconfig (291775 => 291776) --- branches/safari-613.1.17.1-branch/Source/_javascript_Core/Configurations/Version.xcconfig 2022-03-24 00:22:22 UTC (rev 291775) +++ branches/safari-613.1.17.1-branch/Source/_javascript_Core/Configurations/Version.xcconfig 2022-03-24 00:32:48 UTC (rev 291776) @@ -25,7 +25,7 @@ MINOR_VERSION = 1; TINY_VERSION = 17; MICRO_VERSION = 1; -NANO_VERSION = 11; +NANO_VERSION = 12; 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-613.1.17.1-branch/Source/ThirdParty/ANGLE/Configurations/Version.xcconfig (291775 => 291776) --- branches/safari-613.1.17.1-branch/Source/ThirdParty/ANGLE/Configurations/Version.xcconfig 2022-03-24 00:22:22 UTC (rev 291775) +++ branches/safari-613.1.17.1-branch/Source/ThirdParty/ANGLE/Configurations/Version.xcconfig 2022-03-24 00:32:48 UTC (rev 291776) @@ -25,7 +25,7 @@ MINOR_VERSION = 1; TINY_VERSION = 17; MICRO_VERSION = 1; -NANO_VERSION = 11; +NANO_VERSION = 12; 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-613.1.17.1-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig (291775 => 291776) --- branches/safari-613.1.17.1-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig 2022-03-24 00:22:22 UTC (rev 291775) +++ branches/safari-613.1.17.1-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig 2022-03-24 00:32:48 UTC (rev 291776) @@ -25,7 +25,7 @@ MINOR_VERSION = 1; TINY_VERSION = 17; MICRO_VERSION = 1; -NANO_VERSION = 11; +NANO_VERSION = 12; 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-613.1.17.1-branch/Source/WebCore/Configurations/Version.xcconfig (291775 => 291776) --- branches/safari-613.1.17.1-branch/Source/WebCore/Configurations/Version.xcconfig 2022-03-24 00:22:22 UTC (rev 291775) +++ branches/safari-613.1.17.1-branch/Source/WebCore/Configurations/Version.xcconfig 2022-03-24 00:32:48 UTC (rev 291776) @@ -25,7 +25,7 @@ MINOR_VERSION = 1; TINY_VERSION = 17; MICRO_VERSION = 1; -NANO_VERSION = 11; +NANO_VERSION = 12; 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-613.1.17.1-branch/Source/WebCore/PAL/Configurations/Version.xcconfig (291775 => 291776) --- branches/safari-613.1.17.1-branch/Source/WebCore/PAL/Configurations/Version.xcconfig 2022-03-24 00:22:22 UTC (rev 291775) +++ branches/safari-613.1.17.1-branch/Source/WebCore/PAL/Configurations/Version.xcconfig 2022-03-24 00:32:48 UTC (rev 291776) @@ -25,7 +25,7 @@ MINOR_VERSION = 1; TINY_VERSION = 17; MICRO_VERSION = 1; -NANO_VERSION = 11; +NANO_VERSION = 12; 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-613.1.17.1-branch/Source/WebGPU/Configurations/Version.xcconfig (291775 => 291776) --- branches/safari-613.1.17.1-branch/Source/WebGPU/Configurations/Version.xcconfig 2022-03-24 00:22:22 UTC (rev 291775) +++ branches/safari-613.1.17.1-branch/Source/WebGPU/Configurations/Version.xcconfig 2022-03-24 00:32:48 UTC (rev 291776) @@ -25,7 +25,7 @@ MINOR_VERSION = 1; TINY_VERSION = 17; MICRO_VERSION = 1; -NANO_VERSION = 11; +NA
[webkit-changes] [291775] trunk/Source
Title: [291775] trunk/Source Revision 291775 Author eric.carl...@apple.com Date 2022-03-23 17:22:22 -0700 (Wed, 23 Mar 2022) Log Message [Cocoa] Adopt new AVCapture SPI https://bugs.webkit.org/show_bug.cgi?id=238289 rdar://90576101 Reviewed by Jer Noble. Source/WebCore/PAL: * pal/spi/cocoa/AVFoundationSPI.h: Source/WebKit: Call AVCapture SPI once the GPU process sandbox has been expanded to allow capture. * GPUProcess/GPUProcess.cpp: (WebKit::GPUProcess::updateSandboxAccess): * GPUProcess/GPUProcess.h: * GPUProcess/cocoa/GPUProcessCocoa.mm: (WebKit::GPUProcess::dispatchSimulatedNotificationsForPreferenceChange): (WebKit::GPUProcess::sandboxWasUpatedForCapture): Modified Paths trunk/Source/WebCore/PAL/ChangeLog trunk/Source/WebCore/PAL/pal/spi/cocoa/AVFoundationSPI.h trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/GPUProcess/GPUProcess.cpp trunk/Source/WebKit/GPUProcess/GPUProcess.h trunk/Source/WebKit/GPUProcess/cocoa/GPUProcessCocoa.mm Diff Modified: trunk/Source/WebCore/PAL/ChangeLog (291774 => 291775) --- trunk/Source/WebCore/PAL/ChangeLog 2022-03-24 00:11:09 UTC (rev 291774) +++ trunk/Source/WebCore/PAL/ChangeLog 2022-03-24 00:22:22 UTC (rev 291775) @@ -1,3 +1,13 @@ +2022-03-23 Eric Carlson + +[Cocoa] Adopt new AVCapture SPI +https://bugs.webkit.org/show_bug.cgi?id=238289 +rdar://90576101 + +Reviewed by Jer Noble. + +* pal/spi/cocoa/AVFoundationSPI.h: + 2022-03-21 Alex Christensen Dust off Mac CMake build Modified: trunk/Source/WebCore/PAL/pal/spi/cocoa/AVFoundationSPI.h (291774 => 291775) --- trunk/Source/WebCore/PAL/pal/spi/cocoa/AVFoundationSPI.h 2022-03-24 00:11:09 UTC (rev 291774) +++ trunk/Source/WebCore/PAL/pal/spi/cocoa/AVFoundationSPI.h 2022-03-24 00:22:22 UTC (rev 291775) @@ -473,6 +473,10 @@ - (instancetype)initWithAssumedIdentity:(tcc_identity_t)tccIdentity SPI_AVAILABLE(ios(15.0)) API_UNAVAILABLE(macos, macCatalyst, watchos, tvos); @end +@interface AVCaptureDevice (AVCaptureServerConnection) ++ (void)ensureServerConnection; +@end + NS_ASSUME_NONNULL_END #endif // HAVE(AVSAMPLEBUFFERVIDEOOUTPUT) Modified: trunk/Source/WebKit/ChangeLog (291774 => 291775) --- trunk/Source/WebKit/ChangeLog 2022-03-24 00:11:09 UTC (rev 291774) +++ trunk/Source/WebKit/ChangeLog 2022-03-24 00:22:22 UTC (rev 291775) @@ -1,3 +1,20 @@ +2022-03-23 Eric Carlson + +[Cocoa] Adopt new AVCapture SPI +https://bugs.webkit.org/show_bug.cgi?id=238289 +rdar://90576101 + +Reviewed by Jer Noble. + +Call AVCapture SPI once the GPU process sandbox has been expanded to allow capture. + +* GPUProcess/GPUProcess.cpp: +(WebKit::GPUProcess::updateSandboxAccess): +* GPUProcess/GPUProcess.h: +* GPUProcess/cocoa/GPUProcessCocoa.mm: +(WebKit::GPUProcess::dispatchSimulatedNotificationsForPreferenceChange): +(WebKit::GPUProcess::sandboxWasUpatedForCapture): + 2022-03-23 Wenson Hsieh [iOS] Mail compose web view no longer scrolls to reveal selection upon showing the keyboard Modified: trunk/Source/WebKit/GPUProcess/GPUProcess.cpp (291774 => 291775) --- trunk/Source/WebKit/GPUProcess/GPUProcess.cpp 2022-03-24 00:11:09 UTC (rev 291774) +++ trunk/Source/WebKit/GPUProcess/GPUProcess.cpp 2022-03-24 00:22:22 UTC (rev 291775) @@ -329,6 +329,10 @@ { for (auto& extension : extensions) SandboxExtension::consumePermanently(extension); + +#if ENABLE(MEDIA_STREAM) && PLATFORM(COCOA) +sandboxWasUpatedForCapture(); +#endif } void GPUProcess::addMockMediaDevice(const WebCore::MockMediaDevice& device) Modified: trunk/Source/WebKit/GPUProcess/GPUProcess.h (291774 => 291775) --- trunk/Source/WebKit/GPUProcess/GPUProcess.h 2022-03-24 00:11:09 UTC (rev 291774) +++ trunk/Source/WebKit/GPUProcess/GPUProcess.h 2022-03-24 00:22:22 UTC (rev 291775) @@ -95,6 +95,7 @@ #if ENABLE(MEDIA_STREAM) && PLATFORM(COCOA) WorkQueue& videoMediaStreamTrackRendererQueue(); +void sandboxWasUpatedForCapture(); #endif #if USE(LIBWEBRTC) && PLATFORM(COCOA) WorkQueue& libWebRTCCodecsQueue(); Modified: trunk/Source/WebKit/GPUProcess/cocoa/GPUProcessCocoa.mm (291774 => 291775) --- trunk/Source/WebKit/GPUProcess/cocoa/GPUProcessCocoa.mm 2022-03-24 00:11:09 UTC (rev 291774) +++ trunk/Source/WebKit/GPUProcess/cocoa/GPUProcessCocoa.mm 2022-03-24 00:22:22 UTC (rev 291775) @@ -32,8 +32,11 @@ #import "GPUConnectionToWebProcess.h" #import "RemoteRenderingBackend.h" +#import #import +#import + namespace WebKit { using namespace WebCore; @@ -72,9 +75,16 @@ void GPUProcess::dispatchSimulatedNotificationsForPreferenceChange(const String& key) { } - #endif // ENABLE(CFPREFS_DIRECT_MODE) +#if ENABLE(MEDIA_STREAM) +void GPUProcess::sandboxWasUpatedForCapture() +{ +if ([PAL::getAVCaptureDeviceClass() respondsToSelector:@selector(ensureServerConnection)]) +[PAL::getAVCaptureDeviceClass() ensureServerConnection]; +} +#endif +
[webkit-changes] [291774] branches/safari-613-branch/Tools
Title: [291774] branches/safari-613-branch/Tools Revision 291774 Author alanc...@apple.com Date 2022-03-23 17:11:09 -0700 (Wed, 23 Mar 2022) Log Message Cherry-pick r291773. rdar://problem/90716064 [Cocoa] Make IPCTestingAPI.CGColorInNSSecureCoding more robust https://bugs.webkit.org/show_bug.cgi?id=238300 Unreviewed test gardening. Round-tripping a CGColor through CFData on iOS can turn extended sRGB color spaces into regular sRGB color spaces, if the color is common to both. * TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm: git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291773 268f45cc-cd09-0410-ab3c-d52691b4dbfc Modified Paths branches/safari-613-branch/Tools/ChangeLog branches/safari-613-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm Diff Modified: branches/safari-613-branch/Tools/ChangeLog (291773 => 291774) --- branches/safari-613-branch/Tools/ChangeLog 2022-03-24 00:03:19 UTC (rev 291773) +++ branches/safari-613-branch/Tools/ChangeLog 2022-03-24 00:11:09 UTC (rev 291774) @@ -1,3 +1,33 @@ +2022-03-23 Alan Coon + +Cherry-pick r291773. rdar://problem/90716064 + +[Cocoa] Make IPCTestingAPI.CGColorInNSSecureCoding more robust +https://bugs.webkit.org/show_bug.cgi?id=238300 + + +Unreviewed test gardening. + +Round-tripping a CGColor through CFData on iOS can turn extended sRGB color spaces +into regular sRGB color spaces, if the color is common to both. + +* TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm: + +git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291773 268f45cc-cd09-0410-ab3c-d52691b4dbfc + +2022-03-23 Myles C. Maxfield + +[Cocoa] Make IPCTestingAPI.CGColorInNSSecureCoding more robust +https://bugs.webkit.org/show_bug.cgi?id=238300 + + +Unreviewed test gardening. + +Round-tripping a CGColor through CFData on iOS can turn extended sRGB color spaces +into regular sRGB color spaces, if the color is common to both. + +* TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm: + 2022-03-21 Alan Coon Cherry-pick r291518. rdar://problem/90124325 Modified: branches/safari-613-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm (291773 => 291774) --- branches/safari-613-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm 2022-03-24 00:03:19 UTC (rev 291773) +++ branches/safari-613-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm 2022-03-24 00:11:09 UTC (rev 291774) @@ -577,6 +577,8 @@ [webView stringByEvaluatingJavaScript:@"IPC.webPageProxyID.toString()"].intValue); } +#endif + TEST(IPCTestingAPI, CGColorInNSSecureCoding) { auto archiver = adoptNS([[NSKeyedArchiver alloc] initRequiringSecureCoding:YES]); @@ -584,7 +586,9 @@ RetainPtr> delegate = adoptNS([[NSClassFromString(@"WKSecureCodingArchivingDelegate") alloc] init]); archiver.get().delegate = delegate.get(); -auto payload = @{ @"SomeString" : static_cast(adoptCF(CGColorCreateSRGB(0.2, 0.3, 0.4, 0.5)).get()) }; +NSString *key = @"SomeString"; +auto value = adoptCF(CGColorCreateSRGB(0.2, 0.3, 0.4, 0.5)); +auto payload = @{ key : static_cast(value.get()) }; [archiver encodeObject:payload forKey:NSKeyedArchiveRootObjectKey]; [archiver finishEncoding]; [archiver setDelegate:nil]; @@ -600,10 +604,19 @@ [allowedClassSet addObject:NSString.class]; [allowedClassSet addObject:NSClassFromString(@"WKSecureCodingCGColorWrapper")]; -id result = [unarchiver decodeObjectOfClasses:allowedClassSet.get() forKey:NSKeyedArchiveRootObjectKey]; -EXPECT_TRUE([payload isEqual:result]); +NSDictionary *result = [unarchiver decodeObjectOfClasses:allowedClassSet.get() forKey:NSKeyedArchiveRootObjectKey]; +// Round-tripping the color can slightly change the representation, causing [payload isEqual:result] to report NO. +EXPECT_EQ(result.count, static_cast(1)); +NSString *resultKey = result.allKeys[0]; +EXPECT_TRUE([key isEqual:resultKey]); +CGColorRef resultValue = static_cast(result.allValues[0]); +ASSERT_EQ(CFGetTypeID(resultValue), CGColorGetTypeID()); +auto resultValueColorSpace = adoptCF(CGColorGetColorSpace(resultValue)); +auto resultValueColorSpaceName = adoptCF(CGColorSpaceCopyName(resultValueColorSpace.get())); +EXPECT_NE(CFStringFind(resultValueColorSpaceName.get(), CFSTR("SRGB"), 0).location, kCFNotFound); +ASSERT_EQ(CGColorGetNumberOfComponents(resultValue), CGColorGetNumberOfComponents(value.get())); +for (size_t i = 0; i < CGColorGetNumberOfComponents(resultValue); ++i) +EXPECT_EQ(CGColorGetComponents(resultValue)[i], CGColorGetComponents(value.get())[i]); [unarchiver finishDecoding]; unarchiver.get().delegate = nil; } - -#endif ___ webkit-changes mailing list webkit-changes@lists.w
[webkit-changes] [291773] trunk/Tools
Title: [291773] trunk/Tools Revision 291773 Author mmaxfi...@apple.com Date 2022-03-23 17:03:19 -0700 (Wed, 23 Mar 2022) Log Message [Cocoa] Make IPCTestingAPI.CGColorInNSSecureCoding more robust https://bugs.webkit.org/show_bug.cgi?id=238300 Unreviewed test gardening. Round-tripping a CGColor through CFData on iOS can turn extended sRGB color spaces into regular sRGB color spaces, if the color is common to both. * TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm: Modified Paths trunk/Tools/ChangeLog trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm Diff Modified: trunk/Tools/ChangeLog (291772 => 291773) --- trunk/Tools/ChangeLog 2022-03-23 23:07:41 UTC (rev 291772) +++ trunk/Tools/ChangeLog 2022-03-24 00:03:19 UTC (rev 291773) @@ -1,3 +1,16 @@ +2022-03-23 Myles C. Maxfield + +[Cocoa] Make IPCTestingAPI.CGColorInNSSecureCoding more robust +https://bugs.webkit.org/show_bug.cgi?id=238300 + + +Unreviewed test gardening. + +Round-tripping a CGColor through CFData on iOS can turn extended sRGB color spaces +into regular sRGB color spaces, if the color is common to both. + +* TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm: + 2022-03-22 Jonathan Bedard [commits.webkit.org] Sync tags Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm (291772 => 291773) --- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm 2022-03-23 23:07:41 UTC (rev 291772) +++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm 2022-03-24 00:03:19 UTC (rev 291773) @@ -548,6 +548,8 @@ [webView stringByEvaluatingJavaScript:@"IPC.webPageProxyID.toString()"].intValue); } +#endif + TEST(IPCTestingAPI, CGColorInNSSecureCoding) { auto archiver = adoptNS([[NSKeyedArchiver alloc] initRequiringSecureCoding:YES]); @@ -555,7 +557,9 @@ RetainPtr> delegate = adoptNS([[NSClassFromString(@"WKSecureCodingArchivingDelegate") alloc] init]); archiver.get().delegate = delegate.get(); -auto payload = @{ @"SomeString" : static_cast(adoptCF(CGColorCreateSRGB(0.2, 0.3, 0.4, 0.5)).get()) }; +NSString *key = @"SomeString"; +auto value = adoptCF(CGColorCreateSRGB(0.2, 0.3, 0.4, 0.5)); +auto payload = @{ key : static_cast(value.get()) }; [archiver encodeObject:payload forKey:NSKeyedArchiveRootObjectKey]; [archiver finishEncoding]; [archiver setDelegate:nil]; @@ -571,10 +575,19 @@ [allowedClassSet addObject:NSString.class]; [allowedClassSet addObject:NSClassFromString(@"WKSecureCodingCGColorWrapper")]; -id result = [unarchiver decodeObjectOfClasses:allowedClassSet.get() forKey:NSKeyedArchiveRootObjectKey]; -EXPECT_TRUE([payload isEqual:result]); +NSDictionary *result = [unarchiver decodeObjectOfClasses:allowedClassSet.get() forKey:NSKeyedArchiveRootObjectKey]; +// Round-tripping the color can slightly change the representation, causing [payload isEqual:result] to report NO. +EXPECT_EQ(result.count, static_cast(1)); +NSString *resultKey = result.allKeys[0]; +EXPECT_TRUE([key isEqual:resultKey]); +CGColorRef resultValue = static_cast(result.allValues[0]); +ASSERT_EQ(CFGetTypeID(resultValue), CGColorGetTypeID()); +auto resultValueColorSpace = adoptCF(CGColorGetColorSpace(resultValue)); +auto resultValueColorSpaceName = adoptCF(CGColorSpaceCopyName(resultValueColorSpace.get())); +EXPECT_NE(CFStringFind(resultValueColorSpaceName.get(), CFSTR("SRGB"), 0).location, kCFNotFound); +ASSERT_EQ(CGColorGetNumberOfComponents(resultValue), CGColorGetNumberOfComponents(value.get())); +for (size_t i = 0; i < CGColorGetNumberOfComponents(resultValue); ++i) +EXPECT_EQ(CGColorGetComponents(resultValue)[i], CGColorGetComponents(value.get())[i]); [unarchiver finishDecoding]; unarchiver.get().delegate = nil; } - -#endif ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [291772] trunk/Tools
Title: [291772] trunk/Tools Revision 291772 Author jbed...@apple.com Date 2022-03-23 16:07:41 -0700 (Wed, 23 Mar 2022) Log Message [commits.webkit.org] Sync tags https://bugs.webkit.org/show_bug.cgi?id=238144 Reviewed by Dewei Zhu. * Tools/Scripts/libraries/reporelaypy/reporelaypy/__init__.py: Bump version. * Tools/Scripts/libraries/reporelaypy/reporelaypy/checkout.py: (Checkout): Make 'origin' a global variable. (Checkout.__init__): Ditto. (Checkout.is_updated): Ditto. (Checkout.push_update): Support pushing a tag. (Checkout.fetch): Fetch a specific remote. (Checkout.update_for): Make 'origin' a global variable. (Checkout.update_all): Add tag syncing. * Tools/Scripts/libraries/reporelaypy/reporelaypy/hooks.py: (HookProcessor): (HookProcessor.process_worker_hook): Update tags as well as branches. * Tools/Scripts/libraries/reporelaypy/setup.py: Bump version. * Tools/Scripts/libraries/webkitscmpy/setup.py: Ditto. * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto. * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py: (Git.tags): List tags for remote. * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py: (Svn.tags): Remove @property tag. * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py: (Git.__init__): List tags for remote. * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py: (BitBucket.tags): Remove @property tag. * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py: (GitHub.tags): Ditto. * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/svn.py: (Svn.tags): Ditto. * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/scm_base.py: (ScmBase.tags): Ditto. (ScmBase.find): tags is a function instead of a property. * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py: (TestGit.test_tags): * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py: (TestLocalSvn.test_tags): (TestRemoteSvn.test_tags): Canonical link: https://commits.webkit.org/248802@main Modified Paths trunk/Tools/ChangeLog trunk/Tools/Scripts/libraries/reporelaypy/reporelaypy/__init__.py trunk/Tools/Scripts/libraries/reporelaypy/reporelaypy/checkout.py trunk/Tools/Scripts/libraries/reporelaypy/reporelaypy/hooks.py trunk/Tools/Scripts/libraries/reporelaypy/setup.py trunk/Tools/Scripts/libraries/webkitscmpy/setup.py trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/svn.py trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/scm_base.py trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py Diff Modified: trunk/Tools/ChangeLog (291771 => 291772) --- trunk/Tools/ChangeLog 2022-03-23 22:50:35 UTC (rev 291771) +++ trunk/Tools/ChangeLog 2022-03-23 23:07:41 UTC (rev 291772) @@ -1,3 +1,47 @@ +2022-03-22 Jonathan Bedard + +[commits.webkit.org] Sync tags +https://bugs.webkit.org/show_bug.cgi?id=238144 + + +Reviewed by Dewei Zhu. + +* Scripts/libraries/reporelaypy/reporelaypy/__init__.py: Bump version. +* Scripts/libraries/reporelaypy/reporelaypy/checkout.py: +(Checkout): Make 'origin' a global variable. +(Checkout.__init__): Ditto. +(Checkout.is_updated): Ditto. +(Checkout.push_update): Support pushing a tag. +(Checkout.fetch): Fetch a specific remote. +(Checkout.update_for): Make 'origin' a global variable. +(Checkout.update_all): Add tag syncing. +* Scripts/libraries/reporelaypy/reporelaypy/hooks.py: +(HookProcessor): +(HookProcessor.process_worker_hook): Update tags as well as branches. +* Scripts/libraries/reporelaypy/setup.py: Bump version. +* Scripts/libraries/webkitscmpy/setup.py: Ditto. +* Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto. +* Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py: +(Git.tags): List tags for remote. +* Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py: +(Svn.tags): Remove @property tag. +* Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py: +(Git.__init__): List tags for remote. +* Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py: +(BitBucket.tags): Remove @property tag. +* Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py: +(GitHub.tags): Ditto. +* Scripts/libraries/webkitscmpy/webkitscmpy/remote/svn.py: +(Svn.tags): Ditto. +* Scripts/libraries/webkitscmp
[webkit-changes] [291771] trunk/Source/WebCore
Title: [291771] trunk/Source/WebCore Revision 291771 Author s...@apple.com Date 2022-03-23 15:50:35 -0700 (Wed, 23 Mar 2022) Log Message [GPU Process] Ensure DisplayList::Recorder and its base class are initialized with the same GraphicsContextState https://bugs.webkit.org/show_bug.cgi?id=238278 rdar://84602660 Reviewed by Simon Fraser. DisplayList::RecorderImpl passes the initial GraphicsContextState to its base class DisplayList::Recorder which pushes it on its stack. But DisplayList::Recorder does not pass this initial GraphicsContextState to its base class which is GraphicsContext. So DisplayList::Recorder ends up having the initial state but the GraphicsContext ends up having the default state. DisplayList::Recorder::drawGlyphs() calls DrawGlyphsRecorder::drawGlyphs() which stores the original fillBrush, strokeBrush and dropShadow. It uses these original values to restore the owner GraphicsContext when it finishes. The problem is DrawGlyphsRecorder::drawGlyphs() stores the values in the state of the GraphicsContext which are the default. So in some cases we may restore the default state to the drawing GraphicsContext. * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::GraphicsContext): * platform/graphics/GraphicsContext.h: * platform/graphics/displaylists/DisplayListRecorder.cpp: (WebCore::DisplayList::Recorder::Recorder): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/GraphicsContext.cpp trunk/Source/WebCore/platform/graphics/GraphicsContext.h trunk/Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (291770 => 291771) --- trunk/Source/WebCore/ChangeLog 2022-03-23 22:07:06 UTC (rev 291770) +++ trunk/Source/WebCore/ChangeLog 2022-03-23 22:50:35 UTC (rev 291771) @@ -1,3 +1,31 @@ +2022-03-23 Said Abou-Hallawa + +[GPU Process] Ensure DisplayList::Recorder and its base class are initialized with the same GraphicsContextState +https://bugs.webkit.org/show_bug.cgi?id=238278 +rdar://84602660 + +Reviewed by Simon Fraser. + +DisplayList::RecorderImpl passes the initial GraphicsContextState to its +base class DisplayList::Recorder which pushes it on its stack. But +DisplayList::Recorder does not pass this initial GraphicsContextState to +its base class which is GraphicsContext. So DisplayList::Recorder ends up +having the initial state but the GraphicsContext ends up having the default +state. + +DisplayList::Recorder::drawGlyphs() calls DrawGlyphsRecorder::drawGlyphs() +which stores the original fillBrush, strokeBrush and dropShadow. It uses +these original values to restore the owner GraphicsContext when it finishes. +The problem is DrawGlyphsRecorder::drawGlyphs() stores the values in the +state of the GraphicsContext which are the default. So in some cases we +may restore the default state to the drawing GraphicsContext. + +* platform/graphics/GraphicsContext.cpp: +(WebCore::GraphicsContext::GraphicsContext): +* platform/graphics/GraphicsContext.h: +* platform/graphics/displaylists/DisplayListRecorder.cpp: +(WebCore::DisplayList::Recorder::Recorder): + 2022-03-23 Andres Gonzalez ITM: Lazy caching of HelpText property that results in a call to textUnderElement(). Modified: trunk/Source/WebCore/platform/graphics/GraphicsContext.cpp (291770 => 291771) --- trunk/Source/WebCore/platform/graphics/GraphicsContext.cpp 2022-03-23 22:07:06 UTC (rev 291770) +++ trunk/Source/WebCore/platform/graphics/GraphicsContext.cpp 2022-03-23 22:50:35 UTC (rev 291771) @@ -48,6 +48,11 @@ { } +GraphicsContext::GraphicsContext(const GraphicsContextState& state) +: m_state(state) +{ +} + GraphicsContext::~GraphicsContext() { ASSERT(m_stack.isEmpty()); Modified: trunk/Source/WebCore/platform/graphics/GraphicsContext.h (291770 => 291771) --- trunk/Source/WebCore/platform/graphics/GraphicsContext.h 2022-03-23 22:07:06 UTC (rev 291770) +++ trunk/Source/WebCore/platform/graphics/GraphicsContext.h 2022-03-23 22:50:35 UTC (rev 291771) @@ -66,6 +66,7 @@ WTF_MAKE_NONCOPYABLE(GraphicsContext); WTF_MAKE_FAST_ALLOCATED; public: WEBCORE_EXPORT GraphicsContext(const GraphicsContextState::ChangeFlags& = { }, InterpolationQuality = InterpolationQuality::Default); +WEBCORE_EXPORT GraphicsContext(const GraphicsContextState&); WEBCORE_EXPORT virtual ~GraphicsContext(); virtual bool hasPlatformContext() const { return false; } Modified: trunk/Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp (291770 => 291771) --- trunk/Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp 2022-03-23 22:07:06 UTC (rev 291770) +++ trunk/Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp 2022-03-23 22:50:35 UTC (rev 291771) @@ -43,7 +43,8 @@ nam
[webkit-changes] [291770] trunk
Title: [291770] trunk Revision 291770 Author wenson_hs...@apple.com Date 2022-03-23 15:07:06 -0700 (Wed, 23 Mar 2022) Log Message [iOS] Mail compose web view no longer scrolls to reveal selection upon showing the keyboard https://bugs.webkit.org/show_bug.cgi?id=238271 rdar://89821087 Reviewed by Tim Horton. Source/WebKit: When a certain UIKit feature is enabled on certain builds of iOS, Mail compose no longer scrolls to reveal the selection range or caret. This is because we have logic to defer scrolling/zooming to reveal the selection after focusing the body element, for reasons outlined in trac.webkit.org/r288178. However, when the feature flag is enabled, UIKeyboardWillShowNotification is no longer fired synchronously underneath the call to `-reloadInputViews`, which means that `isKeyboardAnimatingIn()` will (most of the time) return false upon calling `-_zoomToRevealFocusedElement` when receiving the next post-layout editor state update. To mitigate this, add a new boolean flag, `_waitingForKeyboardToStartAnimatingInAfterElementFocus`, that's set right before we reload input views when focusing an element that requires the keyboard (either software or hardware), and unset when we observe the "WillShow" notification. In addition to checking `_page->isKeyboardAnimatingIn()` when determining whether to defer zooming, we check this new flag as well. Covered by an existing layout test (which currently fails when the aforementioned UIKit feature is enabled): editing/selection/ios/scroll-to-reveal-selection-with-keyboard-avoidance-disabled.html * UIProcess/API/ios/WKWebViewIOS.mm: (-[WKWebView _keyboardWillShow:]): * UIProcess/ios/WKContentViewInteraction.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView cleanUpInteraction]): (-[WKContentView _keyboardWillShow]): (-[WKContentView _zoomToRevealFocusedElement]): (-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]): (-[WKContentView _elementDidBlur]): LayoutTests: While I'm here, adjust the test to ensure that the keyboard is hidden afterwards. When running this test back to back with the relevant UIKit feature flag enabled, it sometimes fails without this adjustment, due to keyboard disappearance notifications triggered from prior test invocations being fired in subsequent test invocations. * editing/selection/ios/scroll-to-reveal-selection-with-keyboard-avoidance-disabled.html: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/editing/selection/ios/scroll-to-reveal-selection-with-keyboard-avoidance-disabled.html trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.h trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm Diff Modified: trunk/LayoutTests/ChangeLog (291769 => 291770) --- trunk/LayoutTests/ChangeLog 2022-03-23 21:57:34 UTC (rev 291769) +++ trunk/LayoutTests/ChangeLog 2022-03-23 22:07:06 UTC (rev 291770) @@ -1,3 +1,17 @@ +2022-03-23 Wenson Hsieh + +[iOS] Mail compose web view no longer scrolls to reveal selection upon showing the keyboard +https://bugs.webkit.org/show_bug.cgi?id=238271 +rdar://89821087 + +Reviewed by Tim Horton. + +While I'm here, adjust the test to ensure that the keyboard is hidden afterwards. When running this test back to +back with the relevant UIKit feature flag enabled, it sometimes fails without this adjustment, due to keyboard +disappearance notifications triggered from prior test invocations being fired in subsequent test invocations. + +* editing/selection/ios/scroll-to-reveal-selection-with-keyboard-avoidance-disabled.html: + 2022-03-23 Andres Gonzalez ITM: Fix for accessibility/table-attributes.html in isolated tree mode. Modified: trunk/LayoutTests/editing/selection/ios/scroll-to-reveal-selection-with-keyboard-avoidance-disabled.html (291769 => 291770) --- trunk/LayoutTests/editing/selection/ios/scroll-to-reveal-selection-with-keyboard-avoidance-disabled.html 2022-03-23 21:57:34 UTC (rev 291769) +++ trunk/LayoutTests/editing/selection/ios/scroll-to-reveal-selection-with-keyboard-avoidance-disabled.html 2022-03-23 22:07:06 UTC (rev 291770) @@ -15,8 +15,10 @@ await UIHelper.setHardwareKeyboardAttached(false); await UIHelper.activateAndWaitForInputSessionAt(160, innerHeight - 50); -shouldBecomeDifferent("document.scrollingElement.scrollTop", "0", () => { +shouldBecomeDifferent("document.scrollingElement.scrollTop", "0", async () => { document.getElementById("content").remove(); +document.activeElement.blur(); +await UIHelper.waitForKeyboardToHide(); finishJSTest(); }); }); Modified: trunk/Source/WebKit/ChangeLog (291769 => 291770) --- trunk/Source/WebKit/ChangeLog 2022-03-23 21:57:34 UTC (rev 291769) +++ trunk/Source/WebKit/ChangeLog 2022-03-23 22:07:06 UTC (rev 291770) @@ -1,3
[webkit-changes] [291769] trunk/Source/WebCore
Title: [291769] trunk/Source/WebCore Revision 291769 Author andresg...@apple.com Date 2022-03-23 14:57:34 -0700 (Wed, 23 Mar 2022) Log Message ITM: Lazy caching of HelpText property that results in a call to textUnderElement(). https://bugs.webkit.org/show_bug.cgi?id=237923 Reviewed by Chris Fleizach. Caching HelpText in the initialization of an IsolatedObject properties for all objects often results in a call to AXRenderObject::textUnderElement, which can be expensive and makes the creation and update of the isolated tree costly. With this patch we cache HelpText on first request. * accessibility/isolatedtree/AXIsolatedObject.cpp: (WebCore::AXIsolatedObject::getOrRetrievePropertyValue): * accessibility/isolatedtree/AXIsolatedObject.h: * accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm: (WebCore::AXIsolatedObject::initializePlatformProperties): (WebCore::AXIsolatedObject::helpTextAttributeValue const): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h trunk/Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm Diff Modified: trunk/Source/WebCore/ChangeLog (291768 => 291769) --- trunk/Source/WebCore/ChangeLog 2022-03-23 21:55:02 UTC (rev 291768) +++ trunk/Source/WebCore/ChangeLog 2022-03-23 21:57:34 UTC (rev 291769) @@ -1,3 +1,23 @@ +2022-03-23 Andres Gonzalez + +ITM: Lazy caching of HelpText property that results in a call to textUnderElement(). +https://bugs.webkit.org/show_bug.cgi?id=237923 + + +Reviewed by Chris Fleizach. + +Caching HelpText in the initialization of an IsolatedObject properties +for all objects often results in a call to AXRenderObject::textUnderElement, +which can be expensive and makes the creation and update of the isolated +tree costly. With this patch we cache HelpText on first request. + +* accessibility/isolatedtree/AXIsolatedObject.cpp: +(WebCore::AXIsolatedObject::getOrRetrievePropertyValue): +* accessibility/isolatedtree/AXIsolatedObject.h: +* accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm: +(WebCore::AXIsolatedObject::initializePlatformProperties): +(WebCore::AXIsolatedObject::helpTextAttributeValue const): + 2022-03-23 Jer Noble [Cocoa] MSE-backed videos fail to play in Captive Portal mode Modified: trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp (291768 => 291769) --- trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp 2022-03-23 21:55:02 UTC (rev 291768) +++ trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp 2022-03-23 21:57:34 UTC (rev 291769) @@ -983,6 +983,9 @@ case AXPropertyName::Description: value = axObject->descriptionAttributeValue().isolatedCopy(); break; +case AXPropertyName::HelpText: +value = axObject->helpTextAttributeValue().isolatedCopy(); +break; case AXPropertyName::TitleAttributeValue: value = axObject->titleAttributeValue().isolatedCopy(); break; Modified: trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h (291768 => 291769) --- trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h 2022-03-23 21:55:02 UTC (rev 291768) +++ trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h 2022-03-23 21:57:34 UTC (rev 291769) @@ -338,7 +338,7 @@ bool fileUploadButtonReturnsValueInTitle() const override { return boolAttributeValue(AXPropertyName::FileUploadButtonReturnsValueInTitle); } String speechHintAttributeValue() const override { return stringAttributeValue(AXPropertyName::SpeechHint); } String descriptionAttributeValue() const override; -String helpTextAttributeValue() const override { return stringAttributeValue(AXPropertyName::HelpText); } +String helpTextAttributeValue() const override; String titleAttributeValue() const override; #endif #if PLATFORM(MAC) Modified: trunk/Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm (291768 => 291769) --- trunk/Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm 2022-03-23 21:55:02 UTC (rev 291768) +++ trunk/Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm 2022-03-23 21:57:34 UTC (rev 291769) @@ -35,7 +35,6 @@ void AXIsolatedObject::initializePlatformProperties(const AXCoreObject& object, bool isRoot) { setProperty(AXPropertyName::HasApplePDFAnnotationAttribute, object.hasApplePDFAnnotationAttribute()); -setProperty(AXPropertyName::HelpText, object.helpTextAttributeValue().isolatedCopy()); setProperty(AXPropertyName::SpeechHint, object.speechHintAttributeValue().isolatedCopy()); setProperty(AXPropertyName::CaretBrowsingEnabled, object.caretBrowsingEnabled()); @@ -108,6 +107,11 @@ return const_cast(th
[webkit-changes] [291768] trunk/LayoutTests
Title: [291768] trunk/LayoutTests Revision 291768 Author andresg...@apple.com Date 2022-03-23 14:55:02 -0700 (Wed, 23 Mar 2022) Log Message ITM: Fix for accessibility/table-attributes.html in isolated tree mode. https://bugs.webkit.org/show_bug.cgi?id=238258 Reviewed by Chris Fleizach. - Modified this test to build the output in memory and log it at the end in one call. This makes the test to run faster and not timeout in isolated tree mode. In addition, we now retrieve the table element by ID instead of setting focus to the body and getting the first child of the focused element, which is not ITM friendly. - Added the axDebug helper function which unlike debug causes minimum side effects by modifying the innerText of the console element instead of adding span children to it. Adding children to the console element causes event notifications that affect the behavior of the test in both ITM on and off. * accessibility/table-attributes-expected.txt: * accessibility/table-attributes.html: * platform/glib/accessibility/table-attributes-expected.txt: * resources/accessibility-helper.js: (axDebug): Added. * resources/js-test.js: (getOrCreate): Exposes this function. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/accessibility/table-attributes-expected.txt trunk/LayoutTests/accessibility/table-attributes.html trunk/LayoutTests/platform/glib/accessibility/table-attributes-expected.txt trunk/LayoutTests/resources/accessibility-helper.js trunk/LayoutTests/resources/js-test.js Diff Modified: trunk/LayoutTests/ChangeLog (291767 => 291768) --- trunk/LayoutTests/ChangeLog 2022-03-23 21:27:33 UTC (rev 291767) +++ trunk/LayoutTests/ChangeLog 2022-03-23 21:55:02 UTC (rev 291768) @@ -1,3 +1,30 @@ +2022-03-23 Andres Gonzalez + +ITM: Fix for accessibility/table-attributes.html in isolated tree mode. +https://bugs.webkit.org/show_bug.cgi?id=238258 + + +Reviewed by Chris Fleizach. + +- Modified this test to build the output in memory and log it at the end +in one call. This makes the test to run faster and not timeout in +isolated tree mode. In addition, we now retrieve the table element by +ID instead of setting focus to the body and getting the first child of +the focused element, which is not ITM friendly. +- Added the axDebug helper function which unlike debug causes minimum +side effects by modifying the innerText of the console element instead +of adding span children to it. Adding children to the console element +causes event notifications that affect the behavior of the test in both +ITM on and off. + +* accessibility/table-attributes-expected.txt: +* accessibility/table-attributes.html: +* platform/glib/accessibility/table-attributes-expected.txt: +* resources/accessibility-helper.js: +(axDebug): Added. +* resources/js-test.js: +(getOrCreate): Exposes this function. + 2022-03-23 Jon Lee Unreviewed fuzzy gardening. Modified: trunk/LayoutTests/accessibility/table-attributes-expected.txt (291767 => 291768) --- trunk/LayoutTests/accessibility/table-attributes-expected.txt 2022-03-23 21:27:33 UTC (rev 291767) +++ trunk/LayoutTests/accessibility/table-attributes-expected.txt 2022-03-23 21:55:02 UTC (rev 291768) @@ -1,13 +1,3 @@ -Example #1: Nested Stubs -Ruritanian -Population -Survey All -Genders By Gender -Males Females -All Regions North -South --- - AXHasDocumentRoleAncestor: 0 AXHasWebApplicationAncestor: 0 AXRole: AXCell @@ -209,9 +199,6 @@ - --- - AXHasDocumentRoleAncestor: 0 AXHasWebApplicationAncestor: 0 AXRole: AXCell @@ -293,9 +280,6 @@ - --- - AXHasDocumentRoleAncestor: 0 AXHasWebApplicationAncestor: 0 AXRole: AXColumn @@ -482,9 +466,6 @@ - --- - AXHasDocumentRoleAncestor: 0 AXHasWebApplicationAncestor: 0 AXRole: AXRow @@ -622,9 +603,6 @@ - --- - AXHasDocumentRoleAncestor: 0 AXHasWebApplicationAncestor: 0 AXRole: AXCell @@ -1186,9 +1164,6 @@ - --- - AXHasDocumentRoleAncestor: 0 AXHasWebApplicationAncestor: 0 AXRole: AXGroup @@ -1198,7 +1173,7 @@ AXChildrenInNavigationOrder: AXHelp: AXParent: -AXSize: NSSize: {335, 66} +AXSize: NSSize: {336, 66} AXTitle: AXDescription: AXValue: @@ -1224,6 +1199,14 @@ --- +PASS successfullyParsed is true - +TEST COMPLETE +Example #1: Nested Stubs +Ruritanian +Population +Survey All +Genders By Gender +Males Females +All Regions North +South Modified: trunk/LayoutTests/accessibility/table-attributes.html (291767 => 291768) --- trunk/LayoutTests/accessibility/table-attributes.html 2022-03-23 21:27:33 UTC
[webkit-changes] [291767] trunk/LayoutTests
Title: [291767] trunk/LayoutTests Revision 291767 Author jon...@apple.com Date 2022-03-23 14:27:33 -0700 (Wed, 23 Mar 2022) Log Message Unreviewed fuzzy gardening. LayoutTests/imported/mozilla: * svg/filters/feImage-1.svg: * svg/text/simple-fill-gradient.svg: LayoutTests/imported/w3c: * web-platform-tests/css/css-backgrounds/background-gradient-subpixel-fills-area.html: * web-platform-tests/css/css-backgrounds/background-repeat-space-6.html: * web-platform-tests/css/css-backgrounds/background-rounded-image-clip.html: * web-platform-tests/css/css-backgrounds/border-bottom-right-radius-005.xht: * web-platform-tests/css/css-backgrounds/border-top-left-radius-005.xht: * web-platform-tests/css/css-backgrounds/border-top-right-radius-005.xht: * web-platform-tests/css/css-backgrounds/css-box-shadow-001.html: * web-platform-tests/css/css-transforms/2d-rotate-001.html: * web-platform-tests/css/css-transforms/css-skew-002.html: LayoutTests: * fast/multicol/columns-on-body.html: * http/tests/images/draw-pattern-slow-load-large-image.html: * imported/blink/fast/gradients/gradient-transparency.html: * imported/blink/fast/text/international/rtl-space-in-ltr-element.html: * svg/custom/hidpi-masking-clipping.svg: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/fast/multicol/columns-on-body.html trunk/LayoutTests/http/tests/images/draw-pattern-slow-load-large-image.html trunk/LayoutTests/imported/blink/fast/gradients/gradient-transparency.html trunk/LayoutTests/imported/blink/fast/text/international/rtl-space-in-ltr-element.html trunk/LayoutTests/imported/mozilla/ChangeLog trunk/LayoutTests/imported/mozilla/svg/filters/feImage-1.svg trunk/LayoutTests/imported/mozilla/svg/text/simple-fill-gradient.svg trunk/LayoutTests/imported/w3c/ChangeLog trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-gradient-subpixel-fills-area.html trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-repeat-space-6.html trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-rounded-image-clip.html trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/border-bottom-right-radius-005.xht trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/border-top-left-radius-005.xht trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/border-top-right-radius-005.xht trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/css-box-shadow-001.html trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/2d-rotate-001.html trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/css-skew-002.html trunk/LayoutTests/svg/custom/hidpi-masking-clipping.svg Diff Modified: trunk/LayoutTests/ChangeLog (291766 => 291767) --- trunk/LayoutTests/ChangeLog 2022-03-23 21:21:59 UTC (rev 291766) +++ trunk/LayoutTests/ChangeLog 2022-03-23 21:27:33 UTC (rev 291767) @@ -1,3 +1,13 @@ +2022-03-23 Jon Lee + +Unreviewed fuzzy gardening. + +* fast/multicol/columns-on-body.html: +* http/tests/images/draw-pattern-slow-load-large-image.html: +* imported/blink/fast/gradients/gradient-transparency.html: +* imported/blink/fast/text/international/rtl-space-in-ltr-element.html: +* svg/custom/hidpi-masking-clipping.svg: + 2022-03-23 Robert Jenner [ iOS EWS ] editing/deleting/insert-in-orphaned-selection-crash.html is a constant text failure Modified: trunk/LayoutTests/fast/multicol/columns-on-body.html (291766 => 291767) --- trunk/LayoutTests/fast/multicol/columns-on-body.html 2022-03-23 21:21:59 UTC (rev 291766) +++ trunk/LayoutTests/fast/multicol/columns-on-body.html 2022-03-23 21:27:33 UTC (rev 291767) @@ -1,6 +1,7 @@ This tests columns on the body element. +body { font-size: 30px;