⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Jun 11, 2020:

11:17 PM Changeset in webkit [262934] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening, update test expectations after r262932
https://bugs.webkit.org/show_bug.cgi?id=213115

Unreviewed test gardening.

  • platform/glib/TestExpectations:
11:02 PM Changeset in webkit [262933] by ddkilzer@apple.com
  • 83 edits
    1 add in trunk/Source

[IPC] Add WTF::EnumTraits<> for every enum type used in IPC
<https://webkit.org/b/213093>

Reviewed by Darin Adler.

Summary:

  • Change underlying type of enum class to bool when there are only two values. In some cases, reorder the two values so the mapping to 0 and 1 makes more sense. Converting every enum to an enum class is not a goal of this patch, so some two-value enums stil have WTF::EnumTraits<> defined as noted below.
  • Add WTF::EnumTraits<> for the remaining enum types that are used by IPC::Encoder::encodeEnum() and IPC::Decoder::decodeEnum() so that WTF::isValidEnum<>() checks may be added next.
  • Add #include <WebCore/LibWebRTCEnumTraits.h> as needed.

Source/WebCore:

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • Add LibWebRTCEnumTraits.h to project. Keep these definitions separate from the libwebrtc project cut down on changes to re-merge after updating.
  • platform/mediastream/libwebrtc/LibWebRTCEnumTraits.h: Add.
  • Modules/applepay/ApplePaySessionPaymentRequest.h:
  • Modules/indexeddb/IDBTransactionMode.h:
  • Modules/indexeddb/IndexedDB.h:

(WTF::EnumTraits<WebCore::IndexedDB::IndexRecordType>):

  • Remove after changing enum class to bool.
  • Modules/indexeddb/shared/IDBGetRecordData.h:
  • Modules/indexeddb/shared/IDBResultData.h:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/ExceptionCode.h:
  • editing/CompositionUnderline.h:
  • html/Autofill.h:
  • html/DataListSuggestionInformation.h:
  • html/EnterKeyHint.h:
  • html/LinkIconType.h:
  • loader/FrameLoaderTypes.h:
  • Alphabetize WTF::EnumTraits<> definitions.
  • loader/ResourceLoaderOptions.h:
  • page/SecurityOrigin.h:
  • page/UserStyleSheetTypes.h:

(WTF::EnumTraits<WebCore::UserStyleLevel>):

  • Define this since UserStyleLevel is not an enum class.
  • page/scrolling/ScrollingCoordinatorTypes.h:
  • platform/ContextMenuItem.h:
  • platform/Cursor.h:
  • platform/DragData.h:
  • platform/FileChooser.h:
  • platform/PopupMenuStyle.h:
  • platform/ScreenProperties.h:
  • platform/ScrollTypes.h:
  • platform/SerializedPlatformDataCueValue.h:

(WebCore::SerializedPlatformDataCueValue::PlatformType):

  • Convert from enum to enum class.
  • platform/UserInterfaceLayoutDirection.h:
  • platform/animation/TimingFunction.h:
  • platform/graphics/GraphicsContext.h:
  • platform/graphics/GraphicsLayer.h:
  • platform/graphics/GraphicsTypes.h:
  • Alphabetize WTF::EnumTraits<> definitions.
  • platform/graphics/Image.h:
  • platform/graphics/Path.h:
  • platform/graphics/ca/PlatformCAAnimation.h:
  • platform/graphics/ca/PlatformCALayer.h:
  • platform/graphics/filters/FilterOperation.h:
  • platform/mediastream/MediaConstraints.h:
  • platform/mediastream/MediaStreamRequest.h:

(WTF::EnumTraits<WebCore::MediaStreamRequest::Type>):

  • Fix EnumTraits definition (missing "::Type").
  • platform/mediastream/RealtimeMediaSourceCapabilities.h:
  • platform/mediastream/RealtimeMediaSourceSupportedConstraints.h:
  • platform/network/CredentialBase.h:
  • platform/network/ProtectionSpaceBase.h:
  • platform/network/ResourceErrorBase.h:
  • platform/network/soup/SoupNetworkProxySettings.h:
  • platform/text/TextChecking.h:

(WTF::EnumTraits<WebCore::TextCheckingProcessType):

  • Define this since TextCheckingProcessType is not an enum class.
  • platform/text/WritingMode.h:
  • rendering/Pagination.h:
  • workers/service/ServiceWorkerJobType.h:

Source/WebKit:

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUProcess.h:
  • NetworkProcess/NetworkLoadParameters.h:
  • Shared/API/APIObject.h:
  • Shared/ContextMenuContextData.h:
  • Shared/DrawingAreaInfo.h:
  • Shared/FocusedElementInformation.h:
  • Shared/PrintInfo.h:

(WTF::EnumTraits<WebKit::PrintInfo::PrintMode>):

  • Define this since PrintMode is not an enum class.
  • Shared/RTCPacketOptions.cpp:
  • Shared/SessionState.h:
  • Shared/TouchBarMenuItemData.h:
  • Shared/WebEvent.h:
  • Shared/WebPopupItem.cpp:

(WebKit::WebPopupItem::WebPopupItem):

  • Fix reference to WebPopupItem::Type enum.
  • Shared/WebPopupItem.h:

(WebKit::WebPopupItem::Type):

  • Convert from enum to enum class.
  • Shared/WebsiteData/WebsiteDataType.h:
  • Shared/glib/InputMethodState.h:
  • Shared/glib/UserMessage.h:
  • Shared/mac/ColorSpaceData.mm:
  • Shared/mac/SecItemRequestData.h:
  • UIProcess/mac/WebPopupMenuProxyMac.mm:

(WebKit::WebPopupMenuProxyMac::populate):

  • Fix reference to WebPopupItem::Type enum.
  • WebProcess/Plugins/Plugin.cpp:
  • WebProcess/WebCoreSupport/WebPopupMenu.cpp:

(WebKit::WebPopupMenu::populateItems):

  • Fix reference to WebPopupItem::Type enum.
  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.h:
5:29 PM Changeset in webkit [262932] by sbarati@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Linear Scan uses the wrong Interval for spills for tmps with roles of early def or late use
https://bugs.webkit.org/show_bug.cgi?id=213055
<rdar://problem/59874018>

Reviewed by Yusuke Suzuki.

There was a bug in linear scan when computing the live range interval for
spill tmps that had early defs or late uses. When linear scan spills a
tmp, it creates a new tmp that it loads to and stores from, and replaces the old tmp
with the new tmp, and emits stores/loads around pertinent instructions. The live
interval for such tmps is small by nature, it's contained in the interval for the
instruction itself. However, we'd build this interval purely based off the
original tmp's arg timing. So, for example, let's consider a program like this:

RandoInsn: LateUse:Tmp1, Use:Tmp2, [early = N, late = N+1]
Let's say that Tmp1's last use is RandoInsn, and it had a def before
RandoInsn, therefore, its live range will be something like:
[J where J < N, N+1]

and now imagine we spilled Tmp1 for some reason, and rewrote the
program to be:
Move Addr(spill for Tmp1), TmpSpill
RandoInsn: LateUse:TmpSpill, Use:Tmp2, [early = N, late = N+1]

We used to incorrectly mark the live range for TmpSpill to just be [N+1, N+2).
However, the bug here is that we neglected that TmpSpill actually had an earlier
def at [N, N+1). So, the live range for TmpSpill was wrong. This could incorrectly
lead us to allocate Tmp2 and TmpSpill to the same register, since their live
ranges may not intersect if Tmp2 dies at RandoInsn.

We also had the symmetric bug for EarlyDefs: we wouldn't account for the
store-spill that'd happen after something like RandoInsn.

The fix is to account for the loads/stores of spill tmps when assigning
them a live range.

This patch contains a standalone test in testair. It also fixes crashes we had when
running B3O1 tests using typed arrays on arm64e since we had patchpoints that utilized
LateUse for signing and auth.

  • b3/B3Procedure.h:
  • b3/air/AirAllocateRegistersAndStackByLinearScan.cpp:
  • b3/air/testair.cpp:
5:09 PM Changeset in webkit [262931] by sbarati@apple.com
  • 2 edits in trunk/Tools

Skip wasm-js2 test on memory limited devices
https://bugs.webkit.org/show_bug.cgi?id=213099

Reviewed by Yusuke Suzuki.

  • Scripts/run-jsc-stress-tests:
4:51 PM Changeset in webkit [262930] by commit-queue@webkit.org
  • 8 edits in trunk

Re-enable download resume tests
https://bugs.webkit.org/show_bug.cgi?id=213098
<rdar://problem/63512518>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-06-11
Reviewed by Geoffrey Garen.

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes:]):

Source/WTF:

Workaround is no longer needed because underlying bug has been fixed.

  • wtf/PlatformHave.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
4:43 PM Changeset in webkit [262929] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

Fix comment after blocklist transition
https://bugs.webkit.org/show_bug.cgi?id=213100

Reviewed by Wenson Hsieh.

  • platform/mac/PasteboardMac.mm:

(WebCore::cocoaTypeFromHTMLClipboardType):

3:47 PM Changeset in webkit [262928] by sbarati@apple.com
  • 13 edits
    2 moves in trunk/Source/JavaScriptCore

Replace uses of black/white list with block/allow list
https://bugs.webkit.org/show_bug.cgi?id=213084

Reviewed by Keith Miller.

We should be using racially neutral names in our code. From Chromium style guide:

"Terms such as 'blacklist' and 'whitelist' reinforce the notion that
black==bad and white==good."

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • b3/air/AirLowerAfterRegAlloc.cpp:

(JSC::B3::Air::lowerAfterRegAlloc):

  • dfg/DFGDriver.cpp:

(JSC::DFG::ensureGlobalDFGAllowlist):
(JSC::DFG::compileImpl):
(JSC::DFG::ensureGlobalDFGWhitelist): Deleted.

  • dfg/DFGTierUpCheckInjectionPhase.cpp:

(JSC::DFG::ensureGlobalFTLAllowlist):
(JSC::DFG::TierUpCheckInjectionPhase::run):
(JSC::DFG::ensureGlobalFTLWhitelist): Deleted.

  • heap/MachineStackMarker.cpp:
  • inspector/scripts/codegen/objc_generator.py:

(ObjCGenerator.should_generate_types_for_domain):
(ObjCGenerator.should_generate_commands_for_domain):
(ObjCGenerator.should_generate_events_for_domain):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::ensureGlobalJITAllowlist):
(JSC::LLInt::shouldJIT):
(JSC::LLInt::ensureGlobalJITWhitelist): Deleted.

  • runtime/OptionsList.h:
  • tools/FunctionAllowlist.cpp: Copied from Source/JavaScriptCore/tools/FunctionWhitelist.cpp.

(JSC::FunctionAllowlist::FunctionAllowlist):
(JSC::FunctionAllowlist::contains const):
(JSC::FunctionWhitelist::FunctionWhitelist): Deleted.
(JSC::FunctionWhitelist::contains const): Deleted.

  • tools/FunctionAllowlist.h: Copied from Source/JavaScriptCore/tools/FunctionWhitelist.h.
  • tools/FunctionWhitelist.cpp: Removed.
  • tools/FunctionWhitelist.h: Removed.
3:31 PM Changeset in webkit [262927] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Unreviewed, reverting r262696.
https://bugs.webkit.org/show_bug.cgi?id=213097

It broke running JSC tests on watchOS

Reverted changeset:

"Allow run-jsc-stress-tests still run if some of the remote
hosts are not available"
https://bugs.webkit.org/show_bug.cgi?id=201426
https://trac.webkit.org/changeset/262696

3:11 PM Changeset in webkit [262926] by sihui_liu@apple.com
  • 2 edits in trunk/Tools

REGRESSION (r262879): 3 TestWebKitAPI.TextManipulation tests are failing
https://bugs.webkit.org/show_bug.cgi?id=213079
<rdar://problem/64256870>

Reviewed by Wenson Hsieh.

Update a few tests after behavior change in r262879. From r262879, we no longer use visible positions of element
to calculate range to observe. Instead, we use the first and end position in the element to decide the range. In
previous implementation, the range can be extended to outside of the element, like some visible positon before
or after the element.

TextManipulation.StartTextManipulationFindNewlyDisplayedParagraph: Different elements would make separate ranges
because we create range with the boundaries of element. We can consider merging adjacent ranges later.
TextManipulation.StartTextManipulationFindSameParagraphWithNewContent: The newly observing range only includes
the newly inserted element now.
TextManipulation.InsertingContentIntoAlreadyManipulatedContentDoesNotCreateTextManipulationItem: The p element
is not manipulated as it is the common ancestor of manipulated elements. And we want to make sure the newly
inserted element is child of a manipulated element.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

2:05 PM Changeset in webkit [262925] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

REGRESSION (r262776): Flaky crash under -[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]
https://bugs.webkit.org/show_bug.cgi?id=213059

Patch by Rob Buis <rbuis@igalia.com> on 2020-06-11
Reviewed by Alex Christensen.

My r262776 patch did not null check m_handle and it can cause crashes
in some cases, so add the check.

  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:

(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):

2:02 PM Changeset in webkit [262924] by Jonathan Bedard
  • 2 edits in trunk/Source/WTF

WebKit: Make UIGestureRecognizer build for watchOS and tvOS
https://bugs.webkit.org/show_bug.cgi?id=213038
<rdar://problem/64217654>

Reviewed by Tim Horton.

  • wtf/PlatformHave.h: Enable HAVE(UI_GESTURE_RECOGNIZER_MODIFIER_FLAGS) for watchOS and tvOS.
1:47 PM Changeset in webkit [262923] by Alan Coon
  • 6 edits in branches/safari-609-branch

Cherry-pick r261217. rdar://problem/62978240

Fix animation ordering to make imported/w3c/web-platform-tests/css/css-animations/Element-getAnimations.tentative.html pass
https://bugs.webkit.org/show_bug.cgi?id=211468
<rdar://problem/62732578>

Reviewed by David Kilzer.

LayoutTests/imported/w3c:

Mark the final two failures in imported/w3c/web-platform-tests/css/css-animations/Element-getAnimations.tentative.html as PASS.

  • web-platform-tests/css/css-animations/Element-getAnimations.tentative-expected.txt:

Source/WebCore:

The "Animation composite order" section of the CSS Animations Level 2 specification (https://drafts.csswg.org/css-animations-2/#animation-composite-order)
defines the relative composite order of animations. We bake this into compareAnimationsByCompositeOrder(), but this function would not yield consistent
results if it is called in a non-stable sort, because if both CSSAnimation objects passed to this function have the same backing Animation object, they
would not return the same value if passed in a different order. The Web Animations spec always ensures that procedures that sort using the composite
order are called as part of a stable sort. So we change all call sites to use std::stable_sort and add an assertion in case we have two CSSAnimation
objects with the same backing Animation objects to catch cases like this in the future.

Finally, since we already know only relevant animations can find their way into the output of Document::getAnimations(), we also ensure we iterate over
m_animations (which holds only relevant animations) rather than m_allAnimations (which may not).

  • animation/DocumentTimeline.cpp: (WebCore::DocumentTimeline::getAnimations const):
  • animation/KeyframeEffectStack.cpp: (WebCore::KeyframeEffectStack::ensureEffectsAreSorted):
  • animation/WebAnimationUtilities.cpp: (WebCore::compareAnimationsByCompositeOrder):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@261217 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:47 PM Changeset in webkit [262922] by Beth Dakin
  • 39 edits in trunk/Source

Replace instances of whitelist in WebCore with allowlist
https://bugs.webkit.org/show_bug.cgi?id=213068

Reviewed by Tim Horton.

Source/WebCore:

  • Modules/webdatabase/DatabaseAuthorizer.cpp:

(WebCore::DatabaseAuthorizer::DatabaseAuthorizer):
(WebCore::DatabaseAuthorizer::addAllowedFunctions):
(WebCore::DatabaseAuthorizer::allowFunction):
(WebCore::DatabaseAuthorizer::addWhitelistedFunctions): Deleted.

  • Modules/webdatabase/DatabaseAuthorizer.h:
  • dom/ExtensionStyleSheets.cpp:

(WebCore::ExtensionStyleSheets::updateInjectedStyleSheetCache const):

  • loader/CrossOriginAccessControl.cpp:

(WebCore::isOnAccessControlSimpleRequestMethodAllowlist):
(WebCore::isSimpleCrossOriginAccessRequest):
(WebCore::isOnAccessControlSimpleRequestMethodWhitelist): Deleted.

  • loader/CrossOriginAccessControl.h:
  • loader/CrossOriginPreflightResultCache.cpp:

(WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginMethod const):

  • loader/appcache/ApplicationCache.cpp:

(WebCore::ApplicationCache::setOnlineAllowlist):
(WebCore::ApplicationCache::isURLInOnlineAllowlist):
(WebCore::ApplicationCache::setOnlineWhitelist): Deleted.
(WebCore::ApplicationCache::isURLInOnlineWhitelist): Deleted.

  • loader/appcache/ApplicationCache.h:

(WebCore::ApplicationCache::onlineAllowlist const):
(WebCore::ApplicationCache::onlineWhitelist const): Deleted.

  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::didFinishLoadingManifest):

  • loader/appcache/ApplicationCacheHost.cpp:

(WebCore::ApplicationCacheHost::shouldLoadResourceFromApplicationCache):
(WebCore::ApplicationCacheHost::getApplicationCacheFallbackResource):

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
(WebCore::ApplicationCacheStorage::openDatabase):
(WebCore::ApplicationCacheStorage::store):
(WebCore::ApplicationCacheStorage::loadCache):

  • loader/appcache/ManifestParser.cpp:

(WebCore::parseManifest):

  • loader/appcache/ManifestParser.h:
  • page/Frame.cpp:

(WebCore::Frame::injectUserScriptImmediately):

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::canRequest const):
(WebCore::SecurityOrigin::canDisplay const):

  • page/SecurityPolicy.cpp:

(WebCore::SecurityPolicy::isAccessAllowed):
(WebCore::SecurityPolicy::addOriginAccessAllowlistEntry):
(WebCore::SecurityPolicy::removeOriginAccessAllowlistEntry):
(WebCore::SecurityPolicy::resetOriginAccessAllowlists):
(WebCore::SecurityPolicy::isAccessWhiteListed): Deleted.
(WebCore::SecurityPolicy::addOriginAccessWhitelistEntry): Deleted.
(WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry): Deleted.
(WebCore::SecurityPolicy::resetOriginAccessWhitelists): Deleted.

  • page/SecurityPolicy.h:
  • page/UserContentURLPattern.cpp:

(WebCore::UserContentURLPattern::matchesPatterns):

  • page/UserContentURLPattern.h:
  • page/UserScript.h:

(WebCore::UserScript::UserScript):
(WebCore::UserScript::allowlist const):
(WebCore::UserScript::encode const):
(WebCore::UserScript::decode):
(WebCore::UserScript::whitelist const): Deleted.

  • page/UserStyleSheet.h:

(WebCore::UserStyleSheet::UserStyleSheet):
(WebCore::UserStyleSheet::allowlist const):
(WebCore::UserStyleSheet::whitelist const): Deleted.

  • platform/graphics/FontCache.h:
  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::fontAllowlist):
(WebCore::FontCache::setFontAllowlist):
(WebCore::platformFontLookupWithFamily):
(WebCore::fontWhitelist): Deleted.
(WebCore::FontCache::setFontWhitelist): Deleted.

  • platform/network/HTTPParsers.cpp:

(WebCore::isValidAcceptHeaderValue):

  • rendering/FloatingObjects.h:
  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::transferMatchedRules):

  • style/ElementRuleCollector.h:
  • style/PropertyCascade.cpp:

(WebCore::Style::PropertyCascade::addMatch):

  • style/RuleData.cpp:

(WebCore::Style::determinePropertyAllowlistType):
(WebCore::Style::RuleData::RuleData):
(WebCore::Style::determinePropertyWhitelistType): Deleted.

  • style/RuleData.h:

(WebCore::Style::RuleData::propertyAllowlistType const):
(WebCore::Style::RuleData::propertyWhitelistType const): Deleted.

Source/WebKit:

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::addOriginAccessWhitelistEntry):
(WebKit::NetworkConnectionToWebProcess::removeOriginAccessWhitelistEntry):
(WebKit::NetworkConnectionToWebProcess::resetOriginAccessWhitelists):

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<UserStyleSheet>::encode):
(IPC::ArgumentCoder<UserStyleSheet>::decode):

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::addOriginAccessWhitelistEntry):
(WebKit::InjectedBundle::removeOriginAccessWhitelistEntry):
(WebKit::InjectedBundle::resetOriginAccessWhitelists):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(+[WebView _addOriginAccessWhitelistEntryWithSourceOrigin:destinationProtocol:destinationHost:allowDestinationSubdomains:]):
(+[WebView _removeOriginAccessWhitelistEntryWithSourceOrigin:destinationProtocol:destinationHost:allowDestinationSubdomains:]):
(+[WebView _resetOriginAccessWhitelists]):
(+[WebView _setFontWhitelist:]):

1:45 PM Changeset in webkit [262921] by Alan Coon
  • 1 copy in tags/Safari-610.1.15.51.2

Tag Safari-610.1.15.51.2.

1:11 PM Changeset in webkit [262920] by ysuzuki@apple.com
  • 15 edits
    3 adds in trunk

[JSC] Return DisposableCallSiteIndex when destroying GCAwareJITStubRoutineWithExceptionHandler
https://bugs.webkit.org/show_bug.cgi?id=213069
<rdar://problem/64205186>

Reviewed by Saam Barati.

JSTests:

  • stress/dont-dispose-callsiteindex-while-executing.js: Added.

(emptyFunction):
(foo.bar.set catch):
(foo.bar):
(foo):

Source/JavaScriptCore:

Inside GCAwareJITStubRoutineWithExceptionHandler::observeZeroRefCount, we are returning DisposableCallSiteIndex to freelist.
However, GCAwareJITStubRoutineWithExceptionHandler::observeZeroRefCount can be called even if the code of GCAwareJITStubRoutineWithExceptionHandler is
on the stack. Let's consider the following scenario.

  1. Execute GCAwareJITStubRoutineWithExceptionHandler's code. Set CallSiteIndex to the stack.
  2. Execute more code. (1)'s GCAwareJITStubRoutineWithExceptionHandler's code is on the stack.
  3. (1)'s GCAwareJITStubRoutineWithExceptionHandler's refcount becomes zero.
  4. CallSiteIndex of GCAwareJITStubRoutineWithExceptionHandler is returned.
  5. Execute StackVisitor to construct frames. But we cannot find CodeOrigin corresponding to CallSiteIndex stored in (1) since it is already returned.

DisposableCallSiteIndex should be returned after ensuring that GCAwareJITStubRoutineWithExceptionHandler's code is not on the stack. Detecting this is the functionality
what GCAwareJITStubRoutineWithExceptionHandler can offer. It is destroyed after ensuring that GCAwareJITStubRoutineWithExceptionHandler's code is not on the stack.

This patch delays DisposableCallSiteIndex returning until we destroy owner GCAwareJITStubRoutineWithExceptionHandler. But it is possible that CodeBlock* corresponding to
GCAwareJITStubRoutineWithExceptionHandler is already destroyed. To avoid this condition, we extract CodeOrigins vector as Ref<DFG::CodeOriginPool> and keep it alive from
GCAwareJITStubRoutineWithExceptionHandler too. And since CodeOrigin addition / removal happens only from the main thread after finishing the compilation, and
GCAwareJITStubRoutineWithExceptionHandler's destructor is called from the Heap's finalizer, which must be executed from the main thread, we can just modify it without a lock.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::newExceptionHandlingCallSiteIndex):
(JSC::CodeBlock::codeOrigins):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::codeOrigin):

  • dfg/DFGCodeOriginPool.cpp: Added.

(JSC::DFG::CodeOriginPool::addCodeOrigin):
(JSC::DFG::CodeOriginPool::addUniqueCallSiteIndex):
(JSC::DFG::CodeOriginPool::lastCallSite const):
(JSC::DFG::CodeOriginPool::addDisposableCallSiteIndex):
(JSC::DFG::CodeOriginPool::removeDisposableCallSiteIndex):
(JSC::DFG::CodeOriginPool::shrinkToFit):

  • dfg/DFGCodeOriginPool.h: Added.

(JSC::DFG::CodeOriginPool::create):
(JSC::DFG::CodeOriginPool::get):
(JSC::DFG::CodeOriginPool::size const):

  • dfg/DFGCommonData.cpp:

(JSC::DFG::CommonData::shrinkToFit):
(JSC::DFG::CommonData::addCodeOrigin): Deleted.
(JSC::DFG::CommonData::addUniqueCallSiteIndex): Deleted.
(JSC::DFG::CommonData::lastCallSite const): Deleted.
(JSC::DFG::CommonData::addDisposableCallSiteIndex): Deleted.
(JSC::DFG::CommonData::removeDisposableCallSiteIndex): Deleted.

  • dfg/DFGCommonData.h:

(JSC::DFG::CommonData::CommonData):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::exceptionCheck):

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::addCallSite):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compilePutById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileDelBy):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstruct):
(JSC::FTL::DFG::LowerDFGToB3::compileDirectCallOrConstruct):
(JSC::FTL::DFG::LowerDFGToB3::compileTailCall):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargsSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileCallEval):
(JSC::FTL::DFG::LowerDFGToB3::compileInById):
(JSC::FTL::DFG::LowerDFGToB3::compileInstanceOf):
(JSC::FTL::DFG::LowerDFGToB3::compileLogShadowChickenTail):
(JSC::FTL::DFG::LowerDFGToB3::getById):
(JSC::FTL::DFG::LowerDFGToB3::getByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::lazySlowPath):
(JSC::FTL::DFG::LowerDFGToB3::callPreflight):

  • ftl/FTLSlowPathCall.cpp:

(JSC::FTL::callSiteIndexForCodeOrigin):

  • jit/GCAwareJITStubRoutine.cpp:

(JSC::GCAwareJITStubRoutineWithExceptionHandler::GCAwareJITStubRoutineWithExceptionHandler):
(JSC::GCAwareJITStubRoutineWithExceptionHandler::~GCAwareJITStubRoutineWithExceptionHandler):
(JSC::GCAwareJITStubRoutineWithExceptionHandler::aboutToDie):
(JSC::GCAwareJITStubRoutineWithExceptionHandler::observeZeroRefCount):

  • jit/GCAwareJITStubRoutine.h:
12:56 PM Changeset in webkit [262919] by Ryan Haddad
  • 1 edit
    2 deletes in trunk/LayoutTests

Unreviewed, reverting r262909.

This test causes macOS WK1 tests to intermittently exit early

Reverted changeset:

"Release Assert @
WebCore::RenderTreeBuilder::RenderTreeBuilder"
https://bugs.webkit.org/show_bug.cgi?id=212714
https://trac.webkit.org/changeset/262909

12:43 PM Changeset in webkit [262918] by aestes@apple.com
  • 9 edits
    6 adds in trunk

[iOS] nullptr deref in FileInputType::iconLoaded when the input's type attribute is modified by a change event listener
https://bugs.webkit.org/show_bug.cgi?id=208244
<rdar://problem/41855350>

Reviewed by Wenson Hsieh.

Source/WebCore:

When an <input> element's type attribute changes, its existing InputType is detached from
the HTMLInputElement by nulling InputType::m_element. When FileInputType::filesChosen is
called, it dispatches the input and change events, which can run arbitrary JavaScript that
might modify the element's type attribute. If this happens, FileInputType::m_element will be
null after returning from FileInputType::setFiles and if there is an icon will be
dereferenced by FileInputType::iconLoaded.

Fixed this by checking for a non-null m_element before calling iconLoaded. While here, also
fixed a bug where we sometimes checked the length of m_fileList before FileListCreator had
finished setting m_fileList. This bug resulted in missing file icons whenever an
<input type=file> had the webkitdirectory attribute.

Tests: fast/forms/file/file-input-type-detached-on-change.html

fast/forms/file/file-input-webkitdirectory-icon.html

  • html/FileInputType.cpp:

(WebCore::FileInputType::filesChosen):

Tools:

  • DumpRenderTree/TestRunner.cpp:

(SetOpenPanelFilesMediaIconCallback):
(TestRunner::staticFunctions):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setOpenPanelFilesMediaIcon):

LayoutTests:

  • fast/forms/file/file-input-type-detached-on-change-expected.txt: Added.
  • fast/forms/file/file-input-type-detached-on-change.html: Added.
  • fast/forms/file/file-input-webkitdirectory-icon-expected.html: Added.
  • fast/forms/file/file-input-webkitdirectory-icon.html: Added.
  • fast/forms/file/file-reset-in-change-using-open-panel-with-icon.html:
  • fast/forms/file/open-file-panel-crash.html:
  • fast/forms/file/resources/file-icon-bytes.js: Added.
12:41 PM Changeset in webkit [262917] by Jonathan Bedard
  • 3 edits in trunk/Source/WebKit

WebKit: Guard requestDocumentContext with HAVE(UI_WK_DOCUMENT_CONTEXT)
https://bugs.webkit.org/show_bug.cgi?id=213076
<rdar://problem/64254698>

Reviewed by Tim Horton.

No new tests, behavior unchanged.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/API/ios/WKWebViewTestingIOS.mm:

(-[WKWebView _requestDocumentContext:completionHandler:]): Guard requestDocumentContext with HAVE(UI_WK_DOCUMENT_CONTEXT).
(-[WKWebView _adjustSelectionWithDelta:completionHandler:]): Ditto.

12:23 PM Changeset in webkit [262916] by Alan Coon
  • 8 edits in branches/safari-610.1.15.50-branch/Source

Versioning.

11:58 AM Changeset in webkit [262915] by Jonathan Bedard
  • 2 edits in trunk/Source/WebKit

WebKit: Add UIKit SPI for watchOS and tvOS
https://bugs.webkit.org/show_bug.cgi?id=213077
<rdar://problem/64255131>

Reviewed by Tim Horton.

No new tests, behavior unchanged.

  • Platform/spi/ios/UIKitSPI.h:
11:55 AM Changeset in webkit [262914] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

Remove references to "slave" in WebCore
https://bugs.webkit.org/show_bug.cgi?id=213085

Reviewed by Wenson Hsieh.

This feature is referred to as a mediagroup in html, so let's use that terminology here as
well.

  • html/MediaController.cpp:

(WebCore::MediaController::buffered const):
(WebCore::MediaController::seekable const):
(WebCore::MediaController::played):
(WebCore::MediaController::duration const):
(WebCore::MediaController::setCurrentTime):
(WebCore::MediaController::play):
(WebCore::MediaController::updateReadyState):
(WebCore::MediaController::updatePlaybackState):
(WebCore::MediaController::isBlocked const):
(WebCore::MediaController::hasEnded const):

11:54 AM Changeset in webkit [262913] by ddkilzer@apple.com
  • 32 edits in trunk/Source

[IPC] Adopt enum class for DragSourceAction
<https://webkit.org/b/212885>
<rdar://problem/64094134>

Reviewed by Darin Adler.

Source/WebCore:

Summary:

  • Convert DragSourceAction to enum class.
  • Remove DragSourceActionNone by using Optional<> and OptionSet<> (as dictated by how the code used the value).
  • Remove DragSourceActionAny and replace (as needed) with anyDragSourceAction(). (Some--but not all--uses were removed.)
  • Add both WTF::EnumTraits<> and WTF::OptionSetTraits<> for DragSourceAction since both Optional<> and OptionSet<> are used with IPC.
  • loader/EmptyClients.cpp:
  • page/DragActions.h:

(WebCore::DragSourceAction):

  • Convert to enum class.

(WebCore::anyDragSourceAction): Add.

  • Replaces WebCore::DragSourceActionAny.

(WTF::EnumTraits<WebCore::DragSourceAction>): Add.
(WTF::OptionSetTraits<WebCore::DragSourceAction>): Add.

  • page/DragClient.h:
  • page/DragController.cpp:

(WebCore::DragController::delegateDragSourceAction):
(WebCore::DragController::draggableElement const):
(WebCore::DragController::prepareForDragStart const):
(WebCore::DragController::startDrag):
(WebCore::DragController::doSystemDrag):

  • Use OptionSet<>::toSingleValue() and add ASSERT() that it does not return WTF::nullopt.
  • page/DragController.h:

(WebCore::DragController::dragSourceAction const):

  • page/DragState.h:
  • page/EventHandler.cpp:

(WebCore::EventHandler::updateDragSourceActionsAllowed const):
(WebCore::EventHandler::dragHysteresisExceeded const):

  • Use OptionSet<>::toSingleValue() and add ASSERT() that it does not return WTF::nullopt.
  • Remove case statements for DragSourceActionNone and DragSourceActionAny, along with ASSERT_NOT_REACHED(). The ASSERT() for toSingleValue() replaces the DragSourceActionNone case.

(WebCore::EventHandler::didStartDrag):
(WebCore::ExactlyOneBitSet): Delete.

  • Move to WTF::OptionSet<>::hasExactlyOneBitSet().

(WebCore::EventHandler::handleDrag):

  • Add code to #ifndef NDEBUG/#endif instead of modifying dragState().type in-place since it seemed weird to modify it just to check an ASSERT(), even though it was overwritten immediately after that.
  • page/EventHandler.h:
  • platform/DragItem.h:

(WebCore::DragItem::encode const):
(WebCore::DragItem::decode):

  • Stop using decodeEnum()/encodeEnum() with Optional<DragSourceAction>.

Source/WebKit:

Summary:

  • Convert argument parameters from uint64_t to OptionSet<DragSourceAction>.
  • Convert DragSourceAction to OptionSet<DragSourceAction>.
  • Scripts/webkit/messages.py:
  • Map DragSourceAction enum to DragActions.h header.
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/DragDropInteractionState.h:
  • UIProcess/ios/DragDropInteractionState.mm:

(WebKit::shouldUseDragImageToCreatePreviewForDragSource):
(WebKit::shouldUseVisiblePathToCreatePreviewForDragSource):
(WebKit::shouldUseTextIndicatorToCreatePreviewForDragSource):
(WebKit::canUpdatePreviewForActiveDragSource):
(WebKit::DragDropInteractionState::anyActiveDragSourceIs const):
(WebKit::DragDropInteractionState::stageDragItem):
(WebKit::DragDropInteractionState::hasStagedDragSource const):
(WebKit::DragDropInteractionState::updatePreviewsForActiveDragSources):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _startDrag:item:]):
(-[WKContentView _allowedDragSourceActions]):
(-[WKContentView dragInteraction:willAnimateLiftWithAnimator:session:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::requestDragStart):
(WebKit::WebPageProxy::requestAdditionalItemsForDragSession):

  • WebProcess/WebCoreSupport/WebDragClient.cpp:

(WebKit::WebDragClient::dragSourceActionMaskForPoint):

  • WebProcess/WebCoreSupport/WebDragClient.h:
  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::allowedDragSourceActions const):

  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestDragStart):
(WebKit::WebPage::requestAdditionalItemsForDragSession):

Source/WebKitLegacy/mac:

Summary:

  • Add and use conversion functions between OptionSet<WebCore::DragSourceAction> and WebDragSourceAction.
  • Update method signatures.
  • WebCoreSupport/WebDragClient.h:
  • WebCoreSupport/WebDragClient.mm:

(coreDragSourceActionMask): Add.
(WebDragClient::dragSourceActionMaskForPoint):
(WebDragClient::willPerformDragSourceAction):
(WebDragClient::startDrag):

  • WebView/WebView.mm:

(kit): Add.

  • Convert from Optional<WebCore::DragSourceAction> to WebDragSourceAction.

(-[WebView _startDrag:]):

  • WebView/WebViewInternal.h:

(kit): Add declaration to reuse function in WebDragClient.mm.

Source/WebKitLegacy/win:

Summary:

  • Add and use conversion functions between OptionSet<WebCore::DragSourceAction> and WebDragSourceAction.
  • Update method signatures.
  • WebCoreSupport/WebDragClient.cpp:

(coreDragSourceActionMask): Add.
(kit): Add.

  • Convert from WebCore::DragSourceAction to WebDragSourceAction.

(WebDragClient::dragSourceActionMaskForPoint):
(WebDragClient::willPerformDragSourceAction):
(WebDragClient::startDrag):

  • WebCoreSupport/WebDragClient.h:

(WebDragClient::dragSourceActionMaskForPoint):

Source/WTF:

  • wtf/OptionSet.h:

(WTF::OptionSet::hasExactlyOneBitSet const): Add.

  • Move here from WebCore::ExactlyOneBitSet() in Source/WebCore/page/EventHandler.cpp.

(WTF::OptionSet::toSingleValue const): Add.

  • Use hasExactlyOneBitSet() to determine whether exactly one enum bitmask value can be returned.
11:47 AM Changeset in webkit [262912] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac ] inspector/page/setBootstrapScript-sub-frame.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=213087

Unreviewed test gardening.

  • platform/mac/TestExpectations:
11:01 AM Changeset in webkit [262911] by Alan Coon
  • 1 edit in branches/safari-609-branch/Source/WebCore/loader/FrameLoader.cpp

Unreviewed build fix. rdar://problem/64232759

Error: no member named 'protocolIsJavaScript' in 'WTF::URL'.

10:57 AM Changeset in webkit [262910] by Wenson Hsieh
  • 2 edits in trunk/LayoutTests

[iOS] editing/selection/ios/update-selection-after-overflow-scroll.html times out
https://bugs.webkit.org/show_bug.cgi?id=213082
<rdar://problem/64228007>

Reviewed by Megan Gardner.

This test makes a programmatic selection, and then scrolls an overflow area with accelerated scrolling by using
UIHelper.immediateScrollElementAtContentPointToOffset(). This helper method hit-tests for a subscrollable
region, and then uses platform API to change the content offset. However, after timing changes in the system,
this hit-testing now fails because it ends up finding the callout menu that shows up after making the text
selection, and so scrolling fails.

Fix this by using (40, 40) instead of (150, 100) when hit-testing the child scroll view when scrolling.

  • editing/selection/ios/update-selection-after-overflow-scroll.html:
10:51 AM Changeset in webkit [262909] by commit-queue@webkit.org
  • 1 edit
    2 adds in trunk/LayoutTests

Release Assert @ WebCore::RenderTreeBuilder::RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=212714

Patch by Pinki Gyanchandani <pgyanchandani@apple.com> on 2020-06-11
Reviewed by Geoffrey Garen.

Added a regression test.

  • fast/rendering/widget-removal-in-render-tree-builder-crash-expected.txt: Added.
  • fast/rendering/widget-removal-in-render-tree-builder-crash.html: Added.
10:23 AM Changeset in webkit [262908] by Alexey Shvayka
  • 4 edits in trunk

RegExp.prototype getters should throw on cross-realm access
https://bugs.webkit.org/show_bug.cgi?id=213075

Reviewed by Saam Barati.

JSTests:

  • test262/expectations.yaml: Mark 14 test cases as passing.

Source/JavaScriptCore:

This patch makes RegExp.prototype getters throw TypeError when called on
RegExp.prototype object from another realm, aligning JSC with V8 and SpiderMonkey.

The spec [1] allows same-realm access to avoid breaking the web, while makes
RegExp.prototype an ordinary object (rather than RegExp instance) where possible.

[1]: https://tc39.es/ecma262/#sec-get-regexp.prototype.global (step 3.a)

  • runtime/RegExpPrototype.cpp:

(JSC::regExpProtoGetterGlobal):
(JSC::regExpProtoGetterIgnoreCase):
(JSC::regExpProtoGetterMultiline):
(JSC::regExpProtoGetterDotAll):
(JSC::regExpProtoGetterSticky):
(JSC::regExpProtoGetterUnicode):
(JSC::regExpProtoGetterSource):

10:16 AM Changeset in webkit [262907] by Alan Coon
  • 2 edits in branches/safari-610.1.15.51-branch/Source/WebKit

Cherry-pick r262159. rdar://problem/64257403

Fix the engineering build on internal SDKs

  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: (WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest): Silenced a deprecation warning.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@262159 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:16 AM Changeset in webkit [262906] by Alan Coon
  • 2 edits in branches/safari-610.1.15.50-branch/Source/WebKit

Cherry-pick r262159. rdar://problem/64257403

Fix the engineering build on internal SDKs

  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: (WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest): Silenced a deprecation warning.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@262159 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:14 AM Changeset in webkit [262905] by youenn@apple.com
  • 8 edits
    2 adds in trunk

End a remote MediaStreamTrack if its source is ended
https://bugs.webkit.org/show_bug.cgi?id=213074

Reviewed by Eric Carlson.

Source/WebCore:

Make remote audio/video source observers of their webrtc source.
In case the webrtc source ends, end the source, thus its related tracks as well.
This is covered by the above test.

Test: webrtc/receiver-track-should-stay-live-even-if-receiver-is-inactive.html

  • platform/mediastream/RealtimeIncomingAudioSource.cpp:

(WebCore::RealtimeIncomingAudioSource::RealtimeIncomingAudioSource):
(WebCore::RealtimeIncomingAudioSource::~RealtimeIncomingAudioSource):
(WebCore::RealtimeIncomingAudioSource::startProducingData):
(WebCore::RealtimeIncomingAudioSource::stopProducingData):
(WebCore::RealtimeIncomingAudioSource::OnChanged):

  • platform/mediastream/RealtimeIncomingAudioSource.h:
  • platform/mediastream/RealtimeIncomingVideoSource.cpp:

(WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource):
(WebCore::RealtimeIncomingVideoSource::~RealtimeIncomingVideoSource):
(WebCore::RealtimeIncomingVideoSource::startProducingData):
(WebCore::RealtimeIncomingVideoSource::stopProducingData):
(WebCore::RealtimeIncomingVideoSource::OnChanged):

  • platform/mediastream/RealtimeIncomingVideoSource.h:
  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::requestToEnd):
(WebCore::RealtimeMediaSource::end):

  • platform/mediastream/RealtimeMediaSource.h:

LayoutTests:

  • webrtc/receiver-track-should-stay-live-even-if-receiver-is-inactive-expected.txt: Added.
  • webrtc/receiver-track-should-stay-live-even-if-receiver-is-inactive.html: Added.
9:28 AM Changeset in webkit [262904] by ggaren@apple.com
  • 2 edits in trunk/Source/WTF

[Cocoa] Build callOnMainThread on WTF::RunLoop rather than on a timer
https://bugs.webkit.org/show_bug.cgi?id=213063

Reviewed by Anders Carlsson.

Always use the RunLoop API for main thread tasks.

Previously, callOnMainThread sometimes scheduled a timer and sometimes
used the RunLoop. (Ironically, the timer behavior was added in r55816
with the intention to establish a single point of execution. Now, it has
the opposite effect.)

I picked the RunLoop API rather than the timer API because it moves us
closer to universally applying the RunLoop speedup in
https://bugs.webkit.org/show_bug.cgi?id=202874. Also, it avoids
allocating a timer, which can be expensive.

  • wtf/cocoa/MainThreadCocoa.mm:

(WTF::scheduleDispatchFunctionsOnMainThread): The webIfExists() check
is a superset of the isWebThread() check, so we can just remove the
isWebThread() check when scheduling tasks to the web thread.
(WTF::timerFired): Deleted.
(WTF::postTimer): Deleted.

8:18 AM Changeset in webkit [262903] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebKit

[Cocoa] MediaUsageManagerCocoa should use a different USVideoUsage initializer
https://bugs.webkit.org/show_bug.cgi?id=213058

Reviewed by Jer Noble.

No new tests, tested manually.

  • UIProcess/Media/cocoa/MediaUsageManagerCocoa.mm:

(WebKit::MediaUsageManagerCocoa::reset): Drive-by fix: don't call -stop unless the
element was playing.
(WebKit::MediaUsageManagerCocoa::updateMediaUsage): Use a different initializer so
we can pass in the state.

7:41 AM Changeset in webkit [262902] by Paulo Matos
  • 2 edits in trunk/Source/JavaScriptCore

Add missing include to JSONObject.cpp - non-unified build
https://bugs.webkit.org/show_bug.cgi?id=213073

Reviewed by Adrian Perez de Castro.

  • runtime/JSONObject.cpp:
5:47 AM Changeset in webkit [262901] by Oriol Brufau
  • 19 edits
    50 adds in trunk/LayoutTests

[css-grid] Reimport WPT tests removed in r262809
https://bugs.webkit.org/show_bug.cgi?id=213028

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

r261841 imported some WPT grid tests, but it was reverted in r262809.
This patch reimports these tests again.

  • resources/import-expectations.json:
  • web-platform-tests/css/css-grid/grid-items/grid-item-dynamic-min-contribution-001-expected.txt: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-item-dynamic-min-contribution-001.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-001.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-002.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-003-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-003.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-004-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-004.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-005-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-005.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-006-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-006.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-007-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-007.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-008-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-008.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-009-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-009.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-010-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-010.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-011-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-011.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-012-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-012.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-013-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-013.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-014-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-014.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-vertical-lr-001.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-vertical-lr-002.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-vertical-rl-001.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-vertical-rl-002.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-001.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-002.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-003-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-003.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-004-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-004.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-005-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-005.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-006-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-006.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-007-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-007.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-008-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-008.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-009-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-009.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-010-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-010.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-011-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-011.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-012-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-012.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-013-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-013.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-014-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-014.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-001.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-002-expected.txt:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-002.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-001.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-002-expected.txt:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-002.html:
  • web-platform-tests/css/css-grid/grid-items/w3c-import.log:

LayoutTests:

Add failure expectations of the new tests.

2:41 AM Changeset in webkit [262900] by commit-queue@webkit.org
  • 4 edits in trunk

Improve url-setters.html WPT test
https://bugs.webkit.org/show_bug.cgi?id=213046

Patch by Rob Buis <rbuis@igalia.com> on 2020-06-11
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update improved test expectation.

  • web-platform-tests/url/url-setters-expected.txt:

Source/WebCore:

Improve url-setters.html WPT test by testing for failure that can occur
when setting host or hostname [1].

[1] https://url.spec.whatwg.org/#host-state

  • html/URLDecomposition.cpp:

(WebCore::URLDecomposition::setHost):
(WebCore::URLDecomposition::setHostname):

1:58 AM Changeset in webkit [262899] by ChangSeok Oh
  • 10 edits in trunk/Source

[GTK] Implement button-press-event, button-release-event, and absolute-axis-event of GAMEPAD API.
https://bugs.webkit.org/show_bug.cgi?id=133850

Reviewed by Carlos Garcia Campos.

Source/WebCore:

This is a follow-up change after r261965, implementing the rest of missing GAMEPAD API
for the gtk port. Buttons and analog sticks of standard gamepads work with this change.

No new tests since existing tests can cover this change.

  • html/OffscreenCanvas.h:
  • platform/gamepad/manette/ManetteGamepad.cpp:

(WebCore::toStandardGamepadAxis):
(WebCore::onAbsoluteAxisEvent):
(WebCore::toStandardGamepadButton):
(WebCore::onButtonPressEvent):
(WebCore::onButtonReleaseEvent):
(WebCore::ManetteGamepad::ManetteGamepad):
(WebCore::ManetteGamepad::~ManetteGamepad):
(WebCore::ManetteGamepad::buttonPressedOrReleased):
(WebCore::ManetteGamepad::absoluteAxisChanged):

  • platform/gamepad/manette/ManetteGamepad.h:
  • platform/gamepad/manette/ManetteGamepadProvider.cpp:

(WebCore::ManetteGamepadProvider::ManetteGamepadProvider):
(WebCore::ManetteGamepadProvider::~ManetteGamepadProvider):
(WebCore::ManetteGamepadProvider::gamepadHadInput):
(WebCore::ManetteGamepadProvider::inputNotificationTimerFired):

  • platform/gamepad/manette/ManetteGamepadProvider.h:

Source/WebKit:

  • UIProcess/Gamepad/UIGamepadProvider.cpp: Add the OS(LINUX) guard.
  • UIProcess/Gamepad/gtk/UIGamepadProviderGtk.cpp:

(WebKit::getWebPageProxy): Build fix. WebKitWebViewBase is used, not WebKitWebViewPrivate.

  • UIProcess/Gamepad/manette/UIGamepadProviderManette.cpp: Add the OS(LINUX) guard.
1:09 AM Changeset in webkit [262898] by svillar@igalia.com
  • 4 edits in trunk/Source/WebCore

[WebXR] Pass an unsigned long to cancelAnimationCallback() as handle
https://bugs.webkit.org/show_bug.cgi?id=212529

Reviewed by Youenn Fablet.

The type of the handle returned by XRSession::requestAnimationFrame() was recently changed
to unsigned long from long as there was no point in using signed integers for that. However
we forgot to update the cancelAnimationFrame() in the specs as well as it receives the handle
returned by requestAnimationFrame().

We landed https://github.com/immersive-web/webxr/pull/1069 in the WebXR specs so we can now
safely also replace signed by unsigned integers in our implementation.

No new tests as there is no change in functionality.

Reland r262718.

  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::cancelAnimationFrame): Use unsigned ids.

  • Modules/webxr/WebXRSession.h: Ditto.
  • Modules/webxr/WebXRSession.idl: Ditto.
12:52 AM Changeset in webkit [262897] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

[Web Animations] Setting the style at the last style change event to null should not create an ElementAnimationRareData object
https://bugs.webkit.org/show_bug.cgi?id=213070
<rdar://problem/63841893>

Reviewed by Tim Horton.

In r262154 we added code that records the pre-animation style for a given element in
Style::TreeResolver::createAnimatedElementUpdate(), which is in Web Animations spec
parlance the style at the last style change event. This style is set on the backing
ElementAnimationRareData object for the given Element. For any element that did not
actually have any animations, we would set this style to null, but the function on
Element acting as a go-between would always create the backing ElementAnimationRareData
even though it would set a null value. We now only creaste the ElementAnimationRareData
object if there is a value to be stored, which fixes a performance regression in the
Speedometer2 test.

  • dom/Element.cpp:

(WebCore::Element::setLastStyleChangeEventStyle):

12:50 AM Changeset in webkit [262896] by svillar@igalia.com
  • 2 edits in trunk/Tools

Unreviewed, updated libsoup dependency in jhbuild.

  • wpe/jhbuild.modules:

Jun 10, 2020:

11:31 PM Changeset in webkit [262895] by commit-queue@webkit.org
  • 7 edits in trunk

[macOS]: The File Picker of the <input> file element should show the selection filter
https://bugs.webkit.org/show_bug.cgi?id=212485

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-06-10
Reviewed by Darin Adler.

Source/WebCore/PAL:

Expose an SPI from CoreServcies to get all the UTIs known by the system.

  • pal/spi/cocoa/CoreServicesSPI.h:

Source/WebKit:

Add two private helpers to WKOpenPanelParameters.

  • UIProcess/API/Cocoa/WKOpenPanelParameters.mm:

(-[WKOpenPanelParameters _allowedFileExtensions]):
Returns an array of strings representing the allowed extensions.

(-[WKOpenPanelParameters _allowedFileExtensionsDescription]):
Returns a string representing a description for the allowed extensions.

  • UIProcess/API/Cocoa/WKOpenPanelParametersPrivate.h:

Tools:

Create a view with an NSPopupButton for the file extensions filter. Set
this view as the AccessoryView of the OpenPanel. Create a customized target
for the NSPopupButton to respond to changing its selection.

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[FileExtensionsPopupTarget initWithOpenPanel:allowedFileExtensions:]):
(-[FileExtensionsPopupTarget popupAction:]):
(-[FileExtensionsPopupTarget dealloc]):
(-[WK2BrowserWindowController dealloc]):
(-[WK2BrowserWindowController createFilterView:popupTarget:]):
(-[WK2BrowserWindowController webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:]):

9:23 PM Changeset in webkit [262894] by Beth Dakin
  • 12 edits in trunk/Source

Replace instances of blacklist in WebCore with blocklist
https://bugs.webkit.org/show_bug.cgi?id=213064

Reviewed by Tim Horton.

Source/WebCore:

  • dom/ExtensionStyleSheets.cpp:

(WebCore::ExtensionStyleSheets::updateInjectedStyleSheetCache const):

  • page/Frame.cpp:

(WebCore::Frame::injectUserScriptImmediately):

  • page/UserContentURLPattern.cpp:

(WebCore::UserContentURLPattern::matchesPatterns):

  • page/UserContentURLPattern.h:
  • page/UserScript.h:

(WebCore::UserScript::UserScript):
(WebCore::UserScript::blocklist const):
(WebCore::UserScript::encode const):
(WebCore::UserScript::decode):
(WebCore::UserScript::blacklist const): Deleted.

  • page/UserStyleSheet.h:

(WebCore::UserStyleSheet::UserStyleSheet):
(WebCore::UserStyleSheet::blocklist const):
(WebCore::UserStyleSheet::blacklist const): Deleted.

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::checkGPUStatus):

  • platform/mac/PasteboardMac.mm:

(WebCore::cocoaTypeFromHTMLClipboardType):

  • platform/text/TextEncodingRegistry.cpp:

(WebCore::pruneBlocklistedCodecs):
(WebCore::extendTextCodecMaps):
(WebCore::pruneBlacklistedCodecs): Deleted.

Source/WebKit:

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<UserStyleSheet>::encode):
(IPC::ArgumentCoder<UserStyleSheet>::decode):

8:27 PM Changeset in webkit [262893] by commit-queue@webkit.org
  • 10 edits
    12 adds in trunk

Multiple SVG Filters Unexpectedly lightens image using linearRGB
https://bugs.webkit.org/show_bug.cgi?id=212649

Patch by Frank Yang <guowei_yang@apple.com> on 2020-06-10
Reviewed by Myles C. Maxfield, Simon Fraser, Darin Adler

Source/WebCore:

Added color space conversion of input FilterEffect ImageBuffer and ImageData
for filters that directly manipulates pixel values. The conversion
is missing only on CG platforms because on CG platforms,
FilterEffect::transformResultColorSpace doesn't perform any operations
Its author assumed all filters are using CG ImageBuffers, and that
CG will handle the conversion which is not the case. The following filters
operates on the raw pixels inside an ImageBuffer, and this requires an explicit
color space conversion of the pixel values when the ImageData are retrieved
by calling FilterEffect::copy{Pre/Un}multipliedData().

The filters affected are feComponentTransfer, feComposite, feConvolveMatrix
feGaussianBlur, FELighting, feMorphology. The conversion is done
by CG, by drawing the input ImageBuffer to a new ImageBuffer that
has the correct color space tag. The ImageData is then pulled from
this new ImageBuffer and used in platformApplySoftware()

Tests: svg/filters/feComponentTransfer-clipped-expected.svg

svg/filters/feComponentTransfer-clipped.svg
svg/filters/feComposite-clipped-expected.svg
svg/filters/feComposite-clipped.svg
svg/filters/feConvolveMatrix-clipped-expected.svg
svg/filters/feConvolveMatrix-clipped.svg
svg/filters/feGaussianBlur-clipped-expected.svg
svg/filters/feGaussianBlur-clipped.svg
svg/filters/feLighting-clipped-expected.svg
svg/filters/feLighting-clipped.svg
svg/filters/feMorphology-clipped-expected.svg
svg/filters/feMorphology-clipped.svg

  • platform/graphics/filters/FEComponentTransfer.cpp:

(WebCore::FEComponentTransfer::platformApplySoftware): Modified function call to

FilterEffect::premultipliedResult, color space conversion is required on CG
platforms, so operatingColorSpace is passed in and input will be converted to
that color space

  • platform/graphics/filters/FEComposite.cpp:

(WebCore::FEComposite::platformApplySoftware): Similarly, color space conversion

Required on CG color space conversion is required on CG
platforms, so operatingColorSpace is passed in and input will be converted to
that color space

  • platform/graphics/filters/FEConvolveMatrix.cpp:

(WebCore::FEConvolveMatrix::platformApplySoftware): converting to operating space

  • platform/graphics/filters/FEGaussianBlur.cpp:

(WebCore::FEGaussianBlur::platformApplySoftware): converting to operating space

  • platform/graphics/filters/FELighting.cpp:

(WebCore::FELighting::platformApplySoftware): converting to operating space

  • platform/graphics/filters/FEMorphology.cpp:

(WebCore::FEMorphology::platformApplyDegenerate): converting to operating space
(WebCore::FEMorphology::platformApplySoftware): converting to operating space

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::unmultipliedResult): modified function signature so that

The Optional ColorSpace enum could be passed in to copyUnmultipliedResult()

(WebCore::FilterEffect::premultipliedResult): modified function signature so that

The Optional ColorSpace enum could be passed in to copyUnmultipliedResult()

(WebCore::FilterEffect::convertImageDataToColorSpace): helper function that takes an ImageData ptr

as input, put it into an ImageBuffer, and calls convertImageBufferToColorSpace to
perform color conversion, and returns the converted ImageData

(WebCore::FilterEffect::convertImageBufferToColorSpace): helper function that takes an ImageBuffer ptr

as input, create a new ImageBuffer with target color space, write input ImageBuffer to this new buffer
(CG backend handles the conversion) and returns the ImageData in the buffer.

(WebCore::FilterEffect::copyConvertedImageBufferToDestination): helper function that copies data from ImageBuffer

whose data is converted to the correct color space, to the destination array

(WebCore::FilterEffect::copyConvertedImageDataToDestination): helper function that copies data from ImageData

whose data is converted to the correct color space, to the destination array

(WebCore::FilterEffect::copyUnmultipliedResult): added an optional argument, colorSpace, which will be passed

into requiresAdditionalColorSpaceConversion, in order to determine if color space conversion is required
when obtaining the unmultiplied result. Then, added code to convert color space before writing to the
destination array

(WebCore::FilterEffect::copyPremultipliedResult): added an optional argument, colorSpace, which will be passed

into requiresAdditionalColorSpaceConversion, in order to determine if color space conversion is required
when obtaining the premultiplied result. Then, added code to convert color space before writing to the
destination array.

(WebCore::FilterEffect::requiresImageDataColorSpaceConversion): unction that only returns true

when 1) destination color space is non-null and is different than current color space AND

2) the code is running on CG platforms

This function will only be called inside copy{Un, Pre}multipliedResult, to address the issue
where color space is needed for filters that modifies raw pixels.

  • platform/graphics/filters/FilterEffect.h: Added function declarations

LayoutTests:

Added new tests that checks SVG render results for
feComponentTransfer, feComposite, feConvolveMatrix
feGaussianBlur, feMorphology and lighting

  • svg/filters/feComponentTransfer-clipped-expected.svg: Added.
  • svg/filters/feComponentTransfer-clipped.svg: Added.
  • svg/filters/feComposite-clipped-expected.svg: Added.
  • svg/filters/feComposite-clipped.svg: Added.
  • svg/filters/feConvolveMatrix-clipped-expected.svg: Added.
  • svg/filters/feConvolveMatrix-clipped.svg: Added.
  • svg/filters/feGaussianBlur-clipped-expected.svg: Added.
  • svg/filters/feGaussianBlur-clipped.svg: Added.
  • svg/filters/feLighting-clipped-expected.svg: Added.
  • svg/filters/feLighting-clipped.svg: Added.
  • svg/filters/feMorphology-clipped-expected.svg: Added.
  • svg/filters/feMorphology-clipped.svg: Added.
8:01 PM Changeset in webkit [262892] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[Line clamp] Do not apply the special anchor handling when the anchor content is visible after clamping
https://bugs.webkit.org/show_bug.cgi?id=213052
<rdar://problem/59739131>

Reviewed by Simon Fraser.

Source/WebCore:

Line clamping tries to preserve the anchor text if it is at the bottom of the paragraph to support cases like "... Read more", where the "read more" is an actual link.
This patch makes sure that we only apply the special case handling if the anchor text get clamped.

Test: fast/flexbox/line-clamp-with-anchor-content-only.html

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):

LayoutTests:

  • fast/flexbox/line-clamp-with-anchor-content-only-expected.html: Added.
  • fast/flexbox/line-clamp-with-anchor-content-only.html: Added.
7:40 PM Changeset in webkit [262891] by Wenson Hsieh
  • 3 edits in trunk/Source/WebKit

[iOS] editing/pasteboard/dom-paste tests consistently time out
https://bugs.webkit.org/show_bug.cgi?id=213061
<rdar://problem/64211161>

Reviewed by Darin Adler.

On recent versions of iOS, system changes have moved the timing of the call to
-requestAutocorrectionContextWithCompletionHandler: when focusing an editable element. This results in a
consistently reproducible deadlock between the UI process and web process if a page tries to request
programmatic clipboard access during the click event (importantly, in the same runloop as element focus).

What ends up happening is that the autocorrection context is requested by the UI process shortly after the
(unbounded) sync IPC message for the DOM paste arrives, so we end up waiting forever for the sync-IPC-blocked
web process to respond. Normally this just results in a 1 second hang, and the DOM paste proceeds as normal.
However these layout tests purposefully opt out of sync IPC timeouts (precisely so that we can catch bugs like
this). See below for more details.

  • UIProcess/ios/WKContentViewInteraction.h:

Keep track of the most recent autocorrection context that arrived in the UI process.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView cleanUpInteraction]):

Clear out the autocorrection context, in case the web process crashes.

(-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):

If the autocorrection context is requested while handling a DOM paste, we know that the latest autocorrection
context must be up to date, since the autocorrection context is computed and sent immediately before a DOM paste
request. Use this to immediately invoke the completion handler, without any sync IPC back to the web process.

(-[WKContentView _handleAutocorrectionContext:]):

7:20 PM Changeset in webkit [262890] by Ross Kirsling
  • 3 edits
    1 add in trunk

REGRESSION(r260697): [Intl] "missing script" locales like zh-TW are no longer mapped
https://bugs.webkit.org/show_bug.cgi?id=213007

Reviewed by Darin Adler.

JSTests:

  • stress/intl-missing-script-locales.js: Added.

Source/JavaScriptCore:

addMissingScriptLocales was removed from IntlObject when changing our locale resolution to depend more directly
on ICU, but apparently even latest ICU won't perform this legacy "region implies script" mapping for us.

ICU 65+ does have uloc_openAvailableByType which will do the trick, so perhaps we should use this in the future,
but it still doesn't seem to help us with Collator, which has its own separate set of "available locales".

The exact set of locales which should be mapped is currently under discussion here:
https://github.com/tc39/ecma402/issues/159
But the crux seems to be that we should ensure we have an xx-ZZ alias for all available xx-Yyyy-ZZ locales.

  • runtime/IntlObject.cpp:

(JSC::addScriptlessLocaleIfNeeded):
(JSC::intlAvailableLocales):
(JSC::intlCollatorAvailableLocales):

7:20 PM Changeset in webkit [262889] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

[iOS] Option + Forward Delete should delete next word
https://bugs.webkit.org/show_bug.cgi?id=213062
rdar://64225458

Patch by Hiro (mzp) Mizuno <mzp@apple.com> on 2020-06-10
Reviewed by Daniel Bates.

Source/WebKit:

Implement support for pressing Option + Forward Delete to delete the next word. This makes text editing
in WebKit more closely match the platform conventions.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView canPerformAction:withSender:]): Handle _deleteForwardByWord.
(-[WKContentView _deleteForwardByWord]): Added.

LayoutTests:

Add tests to ensure that Option + Forward Delete delete to the next word.
Skip the tests for now until we have the UIKit fix <rdar://problem/63253983>.

  • fast/events/ios/key-command-delete-next-word-expected.txt: Added.
  • fast/events/ios/key-command-delete-next-word.html: Added.
  • platform/ios/TestExpectations: Skip tests for now
6:05 PM Changeset in webkit [262888] by Alan Coon
  • 8 edits in branches/safari-610.1.15.51-branch/Source

Versioning.

6:05 PM Changeset in webkit [262887] by Alan Coon
  • 6 edits
    1 copy
    1 add in branches/safari-609-branch

Cherry-pick r262870. rdar://problem/64232759

Improve CSP compliance under PSON
https://bugs.webkit.org/show_bug.cgi?id=212995
<rdar://problem/62996186>

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Rebaseline an existing test, since CSP is now checked before any navigations performed by a form action.

  • web-platform-tests/content-security-policy/form-action/form-action-src-blocked.sub-expected.txt:

Source/WebCore:

Tests: http/tests/security/contentSecurityPolicy/1.1/form-action-src-self-blocked.html

The form submission logic was only considering CSP if the form
action was a JavaScript URL. This is incorrect, as CSP might
apply to any URL.

This is also covered by the existing form-action CSP tests.

  • loader/FrameLoader.cpp: (WebCore::FrameLoader::submitForm): All URLs should be evaluted for compliance with CSP.

LayoutTests:

Add a new test to confirm that CSP rules are honored for form-action operations during process swap.
This also rebaselines an existing test, since CSP is now checked before any navigations performed by
a form action.

  • http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-blocked-expected.txt: Rebaselined.
  • http/tests/security/contentSecurityPolicy/1.1/form-action-src-self-blocked-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-blocked-expected.txt.
  • http/tests/security/contentSecurityPolicy/1.1/form-action-src-self-blocked.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@262870 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:46 PM Changeset in webkit [262886] by Alan Coon
  • 1 copy in tags/Safari-610.1.15.51.1

Tag Safari-610.1.15.51.1.

5:46 PM Changeset in webkit [262885] by Jonathan Bedard
  • 3 edits in trunk/WebKitLibraries

Catalyst WebKit apps continue to play audio after quitting (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=212981
<rdar://problem/57089471>

Unreviewed build fix.

  • WebKitPrivateFrameworkStubs/appletvos/13/RunningBoardServices.framework/RunningBoardServices.tbd:
  • WebKitPrivateFrameworkStubs/watchos/6/RunningBoardServices.framework/RunningBoardServices.tbd:
5:41 PM Changeset in webkit [262884] by Jonathan Bedard
  • 2 edits
    1 delete in trunk/Tools

Generalize configure-xcode-for-ios-development (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=207043
<rdar://problem/63946933>

Reviewed by Darin Adler.

  • EWSTools/start-queue-mac.sh: Use configure-xcode-for-embedded-development over configure-xcode-for-ios-development.
  • Scripts/configure-xcode-for-ios-development: Removed.
5:36 PM Changeset in webkit [262883] by Alan Coon
  • 2 edits in branches/safari-609-branch/Source/WebKit

Cherry-pick r262850. rdar://problem/64226899

[iOS] Add entitlement for PAC exceptions
https://bugs.webkit.org/show_bug.cgi?id=213027
<rdar://problem/63985737>

Reviewed by Brent Fulgham.

On iOS, add entitlement for PAC exceptions.

  • Scripts/process-entitlements.sh:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@262850 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:36 PM Changeset in webkit [262882] by Alan Coon
  • 7 edits
    2 adds in branches/safari-609-branch

Cherry-pick r262841. rdar://problem/64226920

REGRESSION(r262798): fast/mediastream/media-stream-track-interrupted.html is failing
https://bugs.webkit.org/show_bug.cgi?id=213011

Reviewed by Eric Carlson.

Source/WebCore:

Before the patch, a source that is muted and for which its observers get ended will not be ended.
This is a potential issue as the source can get unmuted, in which case, the audio shared unit might be asked to restart.
This is crashing in debug as we would not have the AudioSession correct category for audio capture.

Test: fast/mediastream/track-ended-while-muted.html
Also covered by fast/mediastream/media-stream-track-interrupted.html no longer flakily crashing in debug.

  • platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::requestToEnd): End the source even if muted.
  • platform/mediastream/RealtimeMediaSource.h:
  • testing/Internals.cpp: (WebCore::Internals::isMediaStreamSourceEnded const):
  • testing/Internals.h:
  • testing/Internals.idl: Add necessary test infrastructure.

LayoutTests:

  • fast/mediastream/track-ended-while-muted-expected.txt: Added.
  • fast/mediastream/track-ended-while-muted.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@262841 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:35 PM Changeset in webkit [262881] by Alan Coon
  • 14 edits in branches/safari-609-branch

Apply patch. rdar://problem/64226920

5:33 PM Changeset in webkit [262880] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] CRASH: imported/w3c/web-platform-tests/remote-playback/watch-availability-initial-callback.html is flaky crashing
https://bugs.webkit.org/show_bug.cgi?id=213044
<rdar://problem/62317723>

Reviewed by Eric Carlson.

Add null-checks around previously non-null-checked derefs of WeakPtr<HTMLMediaElement>.

  • Modules/remoteplayback/RemotePlayback.cpp:

(WebCore::RemotePlayback::watchAvailability):
(WebCore::RemotePlayback::shouldPlayToRemoteTargetChanged):
(WebCore::RemotePlayback::playbackTargetPickerWasDismissed):

5:28 PM Changeset in webkit [262879] by sihui_liu@apple.com
  • 4 edits in trunk

Text manipulation does not observe inserted elements that are invisible
https://bugs.webkit.org/show_bug.cgi?id=213057
<rdar://problem/63768253>

Reviewed by Wenson Hsieh.

Source/WebCore:

TextManipulationController gets notification when renderer of an element is created and starts observing the
element. It currently sets the observing range to be the visible start position and visible end position of the
element. When the invisible content becomes visible later, TextManipulationController does not get notification
and will miss the content. Therefore, TextManipulationController should use the actual start and end positions
of the element for range.

Test: TextManipulation.StartTextManipulationFindsInsertedClippedText

  • editing/TextManipulationController.cpp:

(WebCore::makeHashablePositionRange):
(WebCore::TextManipulationController::scheduleObservationUpdate):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

5:15 PM Changeset in webkit [262878] by ggaren@apple.com
  • 45 edits in trunk

Some style improvements to main thread code
https://bugs.webkit.org/show_bug.cgi?id=213051

Reviewed by Darin Adler.

Source/WebCore:

Updated for rename.

  • WebCore.order:
  • platform/ios/wak/WebCoreThread.mm:

(StartWebThread):

Source/WebDriver:

Updated for rename.

  • WebDriverService.cpp:

(WebDriver::WebDriverService::run):

Source/WebKit:

Updated for rename.

  • Shared/Cocoa/WebKit2InitializeCocoa.mm:

(WebKit::runInitializationCode):
(WebKit::InitializeWebKit2):

  • Shared/WebKit2Initialize.cpp:

(WebKit::InitializeWebKit2):

Source/WebKitLegacy/mac:

Updated for rename.

  • History/WebBackForwardList.mm:

(+[WebBackForwardList initialize]):

  • History/WebHistoryItem.mm:

(+[WebHistoryItem initialize]):

  • Misc/WebCache.mm:

(+[WebCache initialize]):

  • Misc/WebElementDictionary.mm:

(+[WebElementDictionary initialize]):

  • Misc/WebIconDatabase.mm:
  • Plugins/Hosted/WebHostedNetscapePluginView.mm:

(+[WebHostedNetscapePluginView initialize]):

  • Plugins/WebBaseNetscapePluginView.mm:
  • Plugins/WebBasePluginPackage.mm:

(+[WebBasePluginPackage initialize]):

  • Plugins/WebNetscapePluginView.mm:

(+[WebNetscapePluginView initialize]):

  • WebCoreSupport/WebEditorClient.mm:

(+[WebUndoStep initialize]):

  • WebCoreSupport/WebFrameLoaderClient.mm:

(+[WebFramePolicyListener initialize]):

  • WebView/WebArchive.mm:

(+[WebArchivePrivate initialize]):

  • WebView/WebDataSource.mm:

(+[WebDataSource initialize]):

  • WebView/WebHTMLView.mm:

(+[WebHTMLViewPrivate initialize]):
(+[WebHTMLView initialize]):

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):

  • WebView/WebResource.mm:

(+[WebResourcePrivate initialize]):

  • WebView/WebTextIterator.mm:

(+[WebTextIteratorPrivate initialize]):

  • WebView/WebView.mm:

(+[WebView initialize]):

  • WebView/WebViewData.mm:

(+[WebViewPrivate initialize]):

Source/WebKitLegacy/win:

Updated for rename.

  • WebView.cpp:

(WebView::WebView):

Source/WTF:

  • wtf/RunLoop.cpp:

(WTF::RunLoop::initializeMain): Renamed initializeMainRunLoop => initializeMain
to match the getter's name.
(WTF::RunLoop::initializeWeb): Samesies.
(WTF::RunLoop::webIfExists): Added an IfExists accessor for use in
scheduleDispatchFunctionsOnMainThread().
(WTF::RunLoop::initializeMainRunLoop): Deleted.
(WTF::RunLoop::initializeWebRunLoop): Deleted.

  • wtf/RunLoop.h:
  • wtf/cocoa/MainThreadCocoa.mm:

(WTF::scheduleDispatchFunctionsOnMainThread): Use RunLoop::webIfExists()
to check for the web thread run loop, since that's more explicit than
checking a pthread variable.

(WTF::isWebThread): Renamed mainThreadPthread => webThreadPthread because
it's the web thread. Changed style on globals to "s_" for consistency.
Removed mainThreadNSThread because it was unused.
(WTF::initializeApplicationUIThread):
(WTF::initializeWebThread):
(WTF::canCurrentThreadAccessThreadLocalData):

Tools:

Updated for rename.

  • TestWebKitAPI/Tests/WTF/RefPtr.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/RunLoop.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/AbortableTaskQueue.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/ApplicationManifestParser.cpp:

(ApplicationManifestParserTest::SetUp):

  • TestWebKitAPI/Tests/WebCore/ComplexTextController.cpp:

(TestWebKitAPI::ComplexTextControllerTest::SetUp):

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::ContentExtensionTest::SetUp):

  • TestWebKitAPI/Tests/WebCore/DNS.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/FileMonitor.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

(initializeInAppBrowserPrivacyTestSettings):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):

5:10 PM Changeset in webkit [262877] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Release Assert @ WebCore::RenderTreeBuilder::RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=212714

Patch by Pinki Gyanchandani <pgyanchandani@apple.com> on 2020-06-10
Reviewed by Geoffrey Garen.

Replaced call to WTFMove(widgetNewParentMap()) with std::exchange(widgetNewParentMap(), { }) in the
WidgetHierarchyUpdatesSuspensionScope::moveWidgets(), thereby making it explicit to set the source map empty.

Test would be added later.

  • rendering/RenderWidget.cpp:

(WebCore::WidgetHierarchyUpdatesSuspensionScope::moveWidgets):

5:07 PM Changeset in webkit [262876] by Jonathan Bedard
  • 3 edits
    1 copy in trunk/Tools

results.webkit.org: Health check should access redis and Cassandra
https://bugs.webkit.org/show_bug.cgi?id=212899
<rdar://problem/64118077>

Reviewed by Stephanie Lewis.

  • resultsdbpy/resultsdbpy/example/main.py:

(health): Check the health status of the model.

  • resultsdbpy/resultsdbpy/model/model.py:

(Model.HealthTable):
(Model.init): Construct a Cassandra table used to check the health of our Cassandra connection.
(Model.healthy): Make both a read and write connection to our two database dependencies so that if
our connection to those databases fails, an instance will be forced to restart.

  • resultsdbpy/resultsdbpy/model/model_unittest.py: Added.

(ModelTest):
(ModelTest.init_database):
(ModelTest.test_health):

5:00 PM Changeset in webkit [262875] by Jonathan Bedard
  • 3 edits in trunk/Source/WebKit

WebKit:Add PepperUICoreSPI.h (Follow-up fix 2)
https://bugs.webkit.org/show_bug.cgi?id=212996
<rdar://problem/64182627>

Unreviewed build fix.

  • UIProcess/ios/forms/WKNumberPadViewController.mm:

(-[WKNumberPadViewController addContentViewAnimations:]): Correct APPLE_INTERNAL_SDK macro.

  • UIProcess/ios/forms/WKQuickboardListViewController.mm:

(-[WKQuickboardListViewController initWithDelegate:]): Ditto.

4:58 PM Changeset in webkit [262874] by Fujii Hironori
  • 3 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:
  • platform/wincairo/fast/text/justify-ideograph-leading-expansion-expected.txt:
4:38 PM Changeset in webkit [262873] by Alan Coon
  • 1 copy in tags/Safari-610.1.15.50.3

Tag Safari-610.1.15.50.3.

4:15 PM Changeset in webkit [262872] by ysuzuki@apple.com
  • 3 edits
    2 adds in trunk

[JSC] JSCallbackObject::deleteProperty should redirect to Parent::deletePropertyByIndex if propertyName is index
https://bugs.webkit.org/show_bug.cgi?id=213041
<rdar://problem/64204300>

Reviewed by Darin Adler.

Source/JavaScriptCore:

We have an infinite recursion here.

-> JSCallbackObject::deletePropertyByIndex

-> JSCell::deleteProperty

-> JSCallbackObject::deleteProperty

-> JSObject::deleteProperty

-> JSCallbackObject::deletePropertyByIndex

When propertyName in JSCallbackObject::deleteProperty is an index, we should go to JSObject::deletePropertyByIndex instead of JSObject::deleteProperty.

  • API/JSCallbackObjectFunctions.h:

(JSC::JSCallbackObject<Parent>::deleteProperty):

LayoutTests:

  • js/dom/callbackobject-delete-should-not-infinite-recursion-expected.txt: Added.
  • js/dom/callbackobject-delete-should-not-infinite-recursion.html: Added.
4:14 PM Changeset in webkit [262871] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[ Mac ] mathml/scripts-removeChild.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208574
<rdar://problem/60041327>

Unreviewed test gardening.

Can't reproduce flakiness anymore.

  • platform/mac/TestExpectations:
4:11 PM Changeset in webkit [262870] by Brent Fulgham
  • 6 edits
    1 copy
    1 add in trunk

Improve CSP compliance under PSON
https://bugs.webkit.org/show_bug.cgi?id=212995
<rdar://problem/62996186>

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Rebaseline an existing test, since CSP is now checked before any navigations performed by a form action.

  • web-platform-tests/content-security-policy/form-action/form-action-src-blocked.sub-expected.txt:

Source/WebCore:

Tests: http/tests/security/contentSecurityPolicy/1.1/form-action-src-self-blocked.html

The form submission logic was only considering CSP if the form
action was a JavaScript URL. This is incorrect, as CSP might
apply to any URL.

This is also covered by the existing form-action CSP tests.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::submitForm): All URLs should be evaluted for
compliance with CSP.

LayoutTests:

Add a new test to confirm that CSP rules are honored for form-action operations during process swap.
This also rebaselines an existing test, since CSP is now checked before any navigations performed by
a form action.

  • http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-blocked-expected.txt: Rebaselined.
  • http/tests/security/contentSecurityPolicy/1.1/form-action-src-self-blocked-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-blocked-expected.txt.
  • http/tests/security/contentSecurityPolicy/1.1/form-action-src-self-blocked.html: Added.
4:11 PM Changeset in webkit [262869] by Russell Epstein
  • 2 edits in branches/safari-610.1.15.51-branch/Source/WebKit

Cherry-pick r262864. rdar://problem/64223970

Crash growing a CFData with incremental PDF loading.
<rdar://problem/63670403> and https://bugs.webkit.org/show_bug.cgi?id=213035

Reviewed by Alex Christensen.

No test - No reliable way to trigger.

  • WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::ensureDataBufferLength): When you call CFDataCreateMutable with a size other than 0, your data object can never grow beyond that size. And, in fact, CFData will crash on purpose when this is attempted. So always create our mutable CFDatas with size 0 even if we immediately plan to grow them.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@262864 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:05 PM Changeset in webkit [262868] by Jonathan Bedard
  • 2 edits in trunk/Source/WebKit

WebKit:Add PepperUICoreSPI.h (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=212996
<rdar://problem/64182627>

Unreviewed build fix.

  • Platform/spi/watchos/PepperUICoreSPI.h: Add PUICPickerView headers.
4:04 PM Changeset in webkit [262867] by Alan Coon
  • 1 edit in branches/safari-609-branch/Source/WebKit/UIProcess/WebProcessProxy.h

Unreviewed build fix. rdar://problem/63902456

Undeclared identifier 'm_unexpectedActivityTimer'.

3:37 PM Changeset in webkit [262866] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r262858): Fix macOS build when building EndowmentStateTracker.mm

  • UIProcess/EndowmentStateTracker.mm:
  • Move #if PLATFORM(IOS_FAMILY) to fix macOS build.
3:34 PM Changeset in webkit [262865] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[Cocoa] Return early from preference change notification handler if there is no observer
https://bugs.webkit.org/show_bug.cgi?id=213050

Reviewed by Darin Adler.

Currently, the observer member is checked inside the loop iterating over all the keys,
but this check should be moved outside of the loop.

No new tests, since this is not a change in behavior.

  • UIProcess/Cocoa/PreferenceObserver.mm:

(-[WKUserDefaults _notifyObserversOfChangeFromValuesForKeys:toValuesForKeys:]):

3:23 PM Changeset in webkit [262864] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit

Crash growing a CFData with incremental PDF loading.
<rdar://problem/63670403> and https://bugs.webkit.org/show_bug.cgi?id=213035

Reviewed by Alex Christensen.

No test - No reliable way to trigger.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::ensureDataBufferLength): When you call CFDataCreateMutable with a size other than 0,

your data object can never grow beyond that size.
And, in fact, CFData will crash on purpose when this is attempted.
So always create our mutable CFDatas with size 0 even if we immediately plan to grow them.

3:03 PM Changeset in webkit [262863] by ggaren@apple.com
  • 4 edits in trunk/Source/WTF

[Cocoa] Build callOnMainThread on WTF::RunLoop rather than on NSObject methods
https://bugs.webkit.org/show_bug.cgi?id=213043

Reviewed by Simon Fraser.

Original patch by Sihui Liu.

From https://bugs.webkit.org/show_bug.cgi?id=202874, this is the subset
of Sihui's patch that unifies some of RunLoop and callOnMainThread.

My goal is to simplify the code, and shrink the diff when testing
CFRunLoopSource1 in the future.

  • wtf/RunLoop.cpp:

(WTF::RunLoop::initializeWebRunLoop):
(WTF::RunLoop::web):

  • wtf/RunLoop.h:
  • wtf/cocoa/MainThreadCocoa.mm:

(WTF::initializeMainThreadPlatform):
(WTF::scheduleDispatchFunctionsOnMainThread):
(WTF::initializeWebThread):
(-[JSWTFMainThreadCaller call]): Deleted.

2:47 PM Changeset in webkit [262862] by Jonathan Bedard
  • 3 edits
    1 add in trunk/Source/WebKit

WebKit: Add ClockKitSPI.h
https://bugs.webkit.org/show_bug.cgi?id=212994
<rdar://problem/64181092>

Reviewed by Wenson Hsieh.

No new tests, behavior unchanged.

  • Platform/spi/watchos: Added.
  • Platform/spi/watchos/ClockKitSPI.h: Added.
  • UIProcess/ios/forms/WKTimePickerViewController.mm: Import ClockKitSPI.h and UIKitSPI.h.
  • WebKit.xcodeproj/project.pbxproj: Include ClockKitSPI.
2:44 PM Changeset in webkit [262861] by BJ Burg
  • 6 edits in trunk/Source

WebDriver on non-iOS ports cannot perform ActionChain which has scrolling down to the element and click it
https://bugs.webkit.org/show_bug.cgi?id=208232
<rdar://problem/59859491>

Reviewed by Devin Rousso.

Source/WebCore:

  • platform/ScrollView.h:
  • platform/ScrollView.cpp:

(WebCore::ScrollView::rootViewToContents const):
Create a version of this function that works with FloatPoint.

Source/WebKit:

  • UIProcess/Automation/mac/WebAutomationSessionMac.mm:

(WebKit::WebAutomationSession::platformSimulateMouseInteraction):
The provided coordinates are in LayoutViewport coordinate system, which does
not take topContentInset into account. Add back in the topContentInset
when translating to flipped window coordinates.

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::computeElementLayout):
The calculations of element bounds and IVCP have an incorrect handling of
root coordinates as contents/absolute coordinates. Add the missing conversion.

2:26 PM Changeset in webkit [262860] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit

[iOS] Update sandbox rules for correct sanitizer paths in current OS releases
https://bugs.webkit.org/show_bug.cgi?id=213040
<rdar://problem/64187043>

Reviewed by Per Arne Vollan.

Update the sandbox rules on iOS platforms to allow access to the
new system locations for Asan libraries.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
2:17 PM Changeset in webkit [262859] by keith_miller@apple.com
  • 2 edits in trunk/Tools

run-jsc-stress-tests should skip tests marked as slow in quick mode.
https://bugs.webkit.org/show_bug.cgi?id=213042

Reviewed by Yusuke Suzuki.

  • Scripts/run-jsc-stress-tests:
1:49 PM Changeset in webkit [262858] by jer.noble@apple.com
  • 13 edits
    2 adds in trunk

Catalyst WebKit apps continue to play audio after quitting
https://bugs.webkit.org/show_bug.cgi?id=212981
<rdar://problem/57089471>

Reviewed by Chris Dumez.

Source/WebKit:

RunningBoard will track whether a process (and it's associated child processes) are "user-visible" by
granting those processes an "endowment", similar to the existing endowment for application visibility.
Track changes to these endowments using a RBSProcessMonitor, and for Catalyst apps, react to losing the
"user-visible" endowment by suspending all media playback.

Move all the endowment-related code into a new class, EndowmentStateTracker, which is a singleton object
that can have mulitple WebPageProxy clients. Update references to the previously global static
isApplicationForeground() function to refer to EndowmentStateTracker instead.

Drive-by fix: move some iOS-only functions in WebPageProxy.cpp into WebPageProxyIOS.mm.

  • UIProcess/ApplicationStateTracker.h:
  • UIProcess/ApplicationStateTracker.mm:

(WebKit::ApplicationStateTracker::ApplicationStateTracker):
(WebKit::isApplicationForeground): Deleted.

  • UIProcess/EndowmentStateTracker.h: Added.

(WebKit::EndowmentStateTracker::isVisible const):
(WebKit::EndowmentStateTracker::isUserFacing const):

  • UIProcess/EndowmentStateTracker.mm: Added.

(WebKit::handleForPID):
(WebKit::EndowmentStateTracker::isApplicationForeground):
(WebKit::EndowmentStateTracker::isApplicationUserFacing):
(WebKit::EndowmentStateTracker::singleton):
(WebKit::EndowmentStateTracker::EndowmentStateTracker):
(WebKit::EndowmentStateTracker::addClient):
(WebKit::EndowmentStateTracker::removeClient):
(WebKit::EndowmentStateTracker::setIsUserFacing):
(WebKit::EndowmentStateTracker::setIsVisible):

  • UIProcess/WebPageProxy.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains):
(WebKit::WebPageProxy::~WebPageProxy):
(WebKit::WebPageProxy::processWillBecomeSuspended): Deleted.
(WebKit::WebPageProxy::processWillBecomeForeground): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::isApplicationVisible):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::processWillBecomeSuspended):
(WebKit::WebPageProxy::processWillBecomeForeground):
(WebKit::WebPageProxy::isUserFacingChanged):
(WebKit::WebPageProxy::isVisibleChanged):

  • WebKit.xcodeproj/project.pbxproj:

Source/WTF:

Add the ability to call copyToVector() on a WeakHashSet. This requires two changes:

  • A template specialization that returns a Vector<WeakPtr<T>> from copyToVector()
  • A template specialization that calls calculateSize() rather than size() on the object being iterated upon.
  • wtf/WeakHashSet.h:

(WTF::copyToVector):

WebKitLibraries:

  • WebKitPrivateFrameworkStubs/iOS/13/RunningBoardServices.framework/RunningBoardServices.tbd:
1:49 PM Changeset in webkit [262857] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Unreviewed, reverting r262718.
https://bugs.webkit.org/show_bug.cgi?id=213047

Broke WPE Debug too

Reverted changeset:

"[WebXR] Pass an unsigned long to cancelAnimationCallback() as
handle"
https://bugs.webkit.org/show_bug.cgi?id=212529
https://trac.webkit.org/changeset/262718

1:37 PM Changeset in webkit [262856] by graouts@webkit.org
  • 6 edits in trunk

Subframes should not autosize independently
https://bugs.webkit.org/show_bug.cgi?id=212984
<rdar://problem/64175493>

Reviewed by Simon Fraser.

Source/WebCore:

  • page/FrameView.cpp:

(WebCore::FrameView::enableAutoSizeMode):

Source/WebKit:

Ensure we only call FrameView::enableSizeToContentAutoSizeMode() for the main frame.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/AutoLayoutIntegration.mm:

(TEST): Added test for <object>.

1:36 PM Changeset in webkit [262855] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Unreviewed, WPE Debug build fix attempt after r262838.

Second attempt. :) Still broken because of r262718 though...

  • platform/xr/openxr/PlatformXROpenXR.cpp:
1:34 PM Changeset in webkit [262854] by Jonathan Bedard
  • 13 edits
    2 adds in trunk/Source/WebKit

WebKit:Add PepperUICoreSPI.h
https://bugs.webkit.org/show_bug.cgi?id=212996
<rdar://problem/64182627>

Reviewed by Tim Horton.

No new tests, behavior unchanged.

  • Platform/spi/watchos: Added.
  • Platform/spi/watchos/PepperUICoreSPI.h: Added.
  • UIProcess/Cocoa/WKSafeBrowsingWarning.mm: Include PepperUICoreSPI header.
  • UIProcess/ios/WKScrollView.mm: Ditto.
  • UIProcess/ios/forms/WKDatePickerViewController.mm: Remove headers duplicated in PepperUICoreSPI.h.
  • UIProcess/ios/forms/WKFocusedFormControlView.mm: Ditto.
  • UIProcess/ios/forms/WKNumberPadView.mm: Include PepperUICoreSPI header.
  • UIProcess/ios/forms/WKNumberPadViewController.h: Remove headers duplicated in PepperUICoreSPI.h.
  • UIProcess/ios/forms/WKNumberPadViewController.mm: Ditto.

(-[WKNumberPadViewController addContentViewAnimations:]): Limit addAnimation to Internal builds.

  • UIProcess/ios/forms/WKQuickboardListViewController.h: Include PepperUICoreSPI header.
  • UIProcess/ios/forms/WKQuickboardListViewController.mm: Remove headers duplicated in PepperUICoreSPI.h.

(-[WKQuickboardListViewController initWithDelegate:]):

  • UIProcess/ios/forms/WKSelectMenuListViewController.mm: Remove headers duplicated in PepperUICoreSPI.h.
  • UIProcess/ios/forms/WKTextInputListViewController.mm: Ditto.
  • WebKit.xcodeproj/project.pbxproj: Add PepperUICoreSPI.h.
1:31 PM Changeset in webkit [262853] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Unreviewed, WPE Debug build fix attempt after r262838.

Still broken because of r262718 though...

  • platform/xr/openxr/PlatformXROpenXR.cpp:
1:19 PM Changeset in webkit [262852] by Ryan Haddad
  • 2 edits in trunk/LayoutTests/imported/w3c

REGRESSION(r262809): [ macOS iOS ] imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-minimum-height-orthogonal-001.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=213026

Unreviewed test gardening.

  • web-platform-tests/css/css-grid/grid-items/grid-items-minimum-height-orthogonal-001-expected.txt:

Check in a new baseline that accounts for the failing subtests to get the bots to green.

1:19 PM Changeset in webkit [262851] by Ryan Haddad
  • 2 edits in trunk/Tools

[Mojave] Flaky API Test: TestWebKitAPI.WebKitLegacy.CrossPartitionFileSchemeAccess
https://bugs.webkit.org/show_bug.cgi?id=206956

Unreviewed test gardening.

  • TestWebKitAPI/Tests/mac/CrossPartitionFileSchemeAccess.mm: Disable this test for Mojave.
12:31 PM Changeset in webkit [262850] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Add entitlement for PAC exceptions
https://bugs.webkit.org/show_bug.cgi?id=213027
<rdar://problem/63985737>

Reviewed by Brent Fulgham.

On iOS, add entitlement for PAC exceptions.

  • Scripts/process-entitlements.sh:
12:26 PM Changeset in webkit [262849] by James Savage
  • 6 edits in trunk/Source/WebKit

Swift Overlay API refinements
https://bugs.webkit.org/show_bug.cgi?id=212939
<rdar://problem/64140013>

Reviewed by Darin Adler.

This patch cleans up some inconsistencies in the various Swift projections,
and modifies JavaScript evaluation callbacks to be optional to account for
scripts which may not evaluate to a useful result (such as ones that simply
modify the DOM without reporting a status). It also standardizes on using
completionHandler as an argument label to match the rest of WebKit API, and
the majority of the Swift API refinements.

It also fixes a module issue where the WebKit.h umbrella was missing an
import of WKScriptReplyWithMessageHandler.h, making the type unusable from
Swift source files/

  • Shared/API/Cocoa/WebKit.h: Add missing header.
  • UIProcess/API/Cocoa/WebKitSwiftOverlay.swift:

(callAsyncJavaScript(_:arguments:in:completionHandler:)): Rename completion

argument, and make optional. Note: Optional closures are implicitly
@escaping, making the annotation redundant and incompatible, so it must
be removed. In Swift, Optional.map()'s closure is invoked iff the Optional
contains some value, and the result of that transform is returned, else
nil is propagated. This allows us to apply the closure transform if the
client value is non-nil, without using intermediary variables or if/let.

(evaluateJavaScript(_:in:completionHandler:)): Ditto.

  • SwiftOverlay/Tests/WebKitTests.swift:

(WebKitTests.testAPI): Update names to reflect changes.

  • SwiftOverlay/WebKitSwiftOverlay.xcodeproj/xcshareddata/xcschemes/Everything (Catalyst).xcscheme:

Ensure that the unit test files get built as part of Build & Run, so that
any changes to names get flagged without even running the tests.

  • SwiftOverlay/WebKitSwiftOverlay.xcodeproj/xcshareddata/xcschemes/Everything.xcscheme:

Ditto.

12:20 PM Changeset in webkit [262848] by Devin Rousso
  • 8 edits in trunk/Source/WebInspectorUI

Web Inspector: text inputs should not spellcheck
https://bugs.webkit.org/show_bug.cgi?id=213032
<rdar://problem/64195429>

Reviewed by Brian Burg.

  • UserInterface/Base/Main.js:

(WI._handleDeviceSettingsTabBarButtonClicked.showUserAgentInput):

  • UserInterface/Views/BoxShadowEditor.js:

(WI.BoxShadowEditor):

  • UserInterface/Views/CookiePopover.js:

(WI.CookiePopover.prototype.show.createInputRow):

  • UserInterface/Views/EditableDataGridNode.js:

(WI.EditableDataGridNode.prototype.createCellContent):

  • UserInterface/Views/InputPopover.js:

(WI.InputPopover.prototype.show):

  • UserInterface/Views/ProbeSetDetailsSection.js:

(WI.ProbeSetDetailsSection.prototype._addProbeButtonClicked):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createConsoleSettingsView):

12:08 PM Changeset in webkit [262847] by caitp@igalia.com
  • 1 edit
    1 add in trunk/JSTests

[JSC] add stress test for op_get_private_name
https://bugs.webkit.org/show_bug.cgi?id=213024

Reviewed by Mark Lam.

  • stress/get-private-name.js: Added.
12:04 PM Changeset in webkit [262846] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

ASSERTION FAILED: suspendedState == State::Running in WebKit::WebResourceLoadStatisticsStore::suspend
https://bugs.webkit.org/show_bug.cgi?id=213031
<rdar://problem/64131092>

Reviewed by Chris Dumez.

There is a race condition if two calls are made to
WebResourceLoadStatisticsStore::suspend() simultanously.
WebResourceLoadStatisticsStore::resume() notifies the background
thread to continue and releases a lock, then sometimes the second call
to suspend obtains the lock and updates the suspendedState variable
before the background thread resumes and checks the result. This patch allows the
suspendedState to be either State::Running or State::WillSuspend to
account for this.

No new tests, this should fix http/wpt/service-workers/service-worker-spinning-fetch.https.html.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated):
(WebKit::WebResourceLoadStatisticsStore::suspend):

10:59 AM Changeset in webkit [262845] by achristensen@apple.com
  • 4 edits in trunk

Revert r259770
https://bugs.webkit.org/show_bug.cgi?id=210097
<rdar://problem/64175992>

Source/WebKit:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm:

(TEST):

10:42 AM Changeset in webkit [262844] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Add some null checks in PDFPlugin::updatePageAndDeviceScaleFactors
https://bugs.webkit.org/show_bug.cgi?id=213009
<rdar://problem/63756100>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-06-10
Reviewed by Chris Dumez.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::updatePageAndDeviceScaleFactors):

9:51 AM Changeset in webkit [262843] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

BaseAudioSharedUnit does not need to restart its audio unit at resume time.
https://bugs.webkit.org/show_bug.cgi?id=213021

Reviewed by Eric Carlson.

Removing a case that should not happen, and was guarded by ASSERT.
Keeping ASSERT to make sure we do not break this assumption.

  • platform/mediastream/mac/BaseAudioSharedUnit.cpp:

(WebCore::BaseAudioSharedUnit::resume):
(WebCore::BaseAudioSharedUnit::suspend):

9:20 AM Changeset in webkit [262842] by Devin Rousso
  • 3 edits
    2 adds in trunk

Web Inspector: XHR request with same URL as main resource will hide the main resource request
https://bugs.webkit.org/show_bug.cgi?id=212850
<rdar://problem/33072149>

Reviewed by Brian Burg.

Source/WebInspectorUI:

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager.prototype._addNewResourceToFrameOrTarget):
When creating a new resource, don't re-use the frame's main resource if the URL matches.

LayoutTests:

  • inspector/network/request-main-url.html: Added.
  • inspector/network/request-main-url-expected.txt: Added.
9:02 AM Changeset in webkit [262841] by youenn@apple.com
  • 7 edits
    2 adds in trunk

REGRESSION(r262798): fast/mediastream/media-stream-track-interrupted.html is failing
https://bugs.webkit.org/show_bug.cgi?id=213011

Reviewed by Eric Carlson.

Source/WebCore:

Before the patch, a source that is muted and for which its observers get ended will not be ended.
This is a potential issue as the source can get unmuted, in which case, the audio shared unit might be asked to restart.
This is crashing in debug as we would not have the AudioSession correct category for audio capture.

Test: fast/mediastream/track-ended-while-muted.html
Also covered by fast/mediastream/media-stream-track-interrupted.html no longer flakily crashing in debug.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::requestToEnd):
End the source even if muted.

  • platform/mediastream/RealtimeMediaSource.h:
  • testing/Internals.cpp:

(WebCore::Internals::isMediaStreamSourceEnded const):

  • testing/Internals.h:
  • testing/Internals.idl:

Add necessary test infrastructure.

LayoutTests:

  • fast/mediastream/track-ended-while-muted-expected.txt: Added.
  • fast/mediastream/track-ended-while-muted.html: Added.
8:35 AM Changeset in webkit [262840] by clopez@igalia.com
  • 28 edits
    8 adds
    12 deletes in trunk/LayoutTests

Layout tests outside of the WPT import should not use resources from it
https://bugs.webkit.org/show_bug.cgi?id=212661

Reviewed by Youenn Fablet.

Some layout tests were using resource files from the imported WPT tests.
This is an issue because updating the WPT tests may break this tests in the future.

To fix this the used resource files are copied inside the main folder of each test
and the tests modified to use them.

On top of that, some tests are de-duplicates (in favor of the WPT versions, which are the same).
This is the list of tests de-duplicated:
canvas/philip/tests/2d.drawImage.incomplete.emptysrc.html -> imported/w3c/web-platform-tests/html/canvas/element/drawing-images-to-the-canvas/2d.drawImage.incomplete.emptysrc.html
canvas/philip/tests/2d.drawImage.incomplete.nosrc.html -> imported/w3c/web-platform-tests/html/canvas/element/drawing-images-to-the-canvas/2d.drawImage.incomplete.nosrc.html
canvas/philip/tests/2d.drawImage.incomplete.removedsrc.html -> imported/w3c/web-platform-tests/html/canvas/element/drawing-images-to-the-canvas/2d.drawImage.incomplete.removedsrc.html
canvas/philip/tests/2d.pattern.image.incomplete.emptysrc.html -> imported/w3c/web-platform-tests/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.incomplete.emptysrc.html
canvas/philip/tests/2d.pattern.image.incomplete.removedsrc.html -> imported/w3c/web-platform-tests/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.incomplete.removedsrc.html
fast/shadow-dom/capturing-and-bubbling-event-listeners-across-shadow-trees.html -> imported/w3c/web-platform-tests/shadow-dom/capturing-and-bubbling-event-listeners-across-shadow-trees.html

  • canvas/philip/tests/2d.drawImage.incomplete.emptysrc-expected.txt: Removed.
  • canvas/philip/tests/2d.drawImage.incomplete.emptysrc.html: Removed.
  • canvas/philip/tests/2d.drawImage.incomplete.nosrc-expected.txt: Removed.
  • canvas/philip/tests/2d.drawImage.incomplete.nosrc.html: Removed.
  • canvas/philip/tests/2d.drawImage.incomplete.removedsrc-expected.txt: Removed.
  • canvas/philip/tests/2d.drawImage.incomplete.removedsrc.html: Removed.
  • canvas/philip/tests/2d.pattern.image.incomplete.emptysrc-expected.txt: Removed.
  • canvas/philip/tests/2d.pattern.image.incomplete.emptysrc.html: Removed.
  • canvas/philip/tests/2d.pattern.image.incomplete.removedsrc-expected.txt: Removed.
  • canvas/philip/tests/2d.pattern.image.incomplete.removedsrc.html: Removed.
  • fast/css/resources/shadow-helper.js: Added.

(getElementByShadowIds):
(ceClass.):
(installCustomElement):

  • fast/css/shadow-parts/exportparts-syntax.html:
  • fast/css/shadow-parts/invalidation-class-before-after.html:
  • fast/css/shadow-parts/invalidation-class-descendant-combinator-export.html:
  • fast/css/shadow-parts/invalidation-class-descendant-combinator.html:
  • fast/css/shadow-parts/invalidation-class-sibling-combinator-export.html:
  • fast/css/shadow-parts/invalidation-class-sibling-combinator.html:
  • fast/custom-elements/DOMImplementation-createDocument.html:
  • fast/custom-elements/adopting-from-frameless-document.html:
  • fast/custom-elements/disconnected-callback-in-detached-iframe.html:
  • fast/custom-elements/document-createElementNS.html:
  • fast/custom-elements/enqueue-custom-element-callback-reactions-inside-another-callback.html:
  • fast/custom-elements/perform-microtask-checkpoint-before-construction.html:
  • fast/custom-elements/reactions-for-webkit-extensions.html:
  • fast/custom-elements/resources/custom-elements-helpers.js: Added.

(create_window_in_test):
(test_with_window):
(prototype.attributeChangedCallback):
(prototype.connectedCallback):
(prototype.disconnectedCallback):
(prototype.adoptedCallback):
(return.takeLog):
(create_constructor_log):
(assert_constructor_log_entry):
(create_connected_callback_log):
(assert_connected_log_entry):
(create_disconnected_callback_log):
(assert_disconnected_log_entry):
(assert_adopted_log_entry):
(create_adopted_callback_log):
(create_attribute_changed_callback_log):
(assert_attribute_log_entry):
(define_new_custom_element.CustomElement):
(define_new_custom_element.CustomElement.prototype.attributeChangedCallback):
(define_new_custom_element.CustomElement.prototype.connectedCallback):
(define_new_custom_element.CustomElement.prototype.disconnectedCallback):
(define_new_custom_element.CustomElement.prototype.adoptedCallback):
(define_new_custom_element.return.takeLog):
(CustomElement):
(CustomElement.prototype.attributeChangedCallback):
(CustomElement.prototype.connectedCallback):
(CustomElement.prototype.disconnectedCallback):
(CustomElement.prototype.adoptedCallback):

  • fast/custom-elements/resources/reactions.js: Added.

(testNodeConnector):
(testNodeDisconnector):
(testInsertingMarkup):
(testParsingMarkup):
(prototype.test):
(testReflectBooleanAttribute):
(testAttributeAdder):

  • fast/custom-elements/throw-on-dynamic-markup-insertion-counter-construct.html:
  • fast/custom-elements/throw-on-dynamic-markup-insertion-counter-reactions.html:
  • fast/images/resources/green-256x256.png: Added.
  • fast/images/sizes-dynamic-001-expected.html:
  • fast/images/sizes-dynamic-001.html:
  • fast/images/sizes-dynamic-002-expected.html:
  • fast/images/sizes-dynamic-002.html:
  • fast/shadow-dom/capturing-and-bubbling-event-listeners-across-shadow-trees-expected.txt: Removed.
  • fast/shadow-dom/capturing-and-bubbling-event-listeners-across-shadow-trees.html: Removed.
  • mathml/non-core/frac-linethickness-001-expected.html:
  • mathml/non-core/frac-linethickness-001.html:
  • mathml/non-core/frac-linethickness-002-expected.html:
  • mathml/non-core/frac-linethickness-002.html:
  • mathml/non-core/lengths-1.html:
  • mathml/non-core/lengths-2.html:
  • mathml/non-core/lengths-3.html:
  • mathml/presentation/radical-bar-visibility.html:
  • mathml/resources/fraction-rulethickness10000.woff: Added.
  • mathml/resources/radical-degreebottomraisepercent25-rulethickness1000.woff: Added.
  • mathml/resources/xheight500.woff: Added.
7:30 AM Changeset in webkit [262839] by Wenson Hsieh
  • 2 edits in trunk/LayoutTests

[iPadOS] editing/selection/ios/toggle-callout-bar-after-tap-in-selected-non-editable-text.html times out
https://bugs.webkit.org/show_bug.cgi?id=213010
<rdar://problem/64182061>

Reviewed by Tim Horton.

This test times out because the second tap (which is intended to toggle callout bar visibility by tapping on the
text selection) misses completely, due to the fact that the midpoint of the selected paragraph element is
somewhere in the middle of the page.

Fix this by simply making the selection target inline-block, such that the element width doesn't expand to
the width of the page.

  • editing/selection/ios/toggle-callout-bar-after-tap-in-selected-non-editable-text.html:
6:20 AM WPTExportProcess edited by clopez@igalia.com
(diff)
6:17 AM Changeset in webkit [262838] by svillar@igalia.com
  • 5 edits
    2 adds
    2 deletes in trunk/Source/WebCore

[WebXR] Refactor OpenXR platform code
https://bugs.webkit.org/show_bug.cgi?id=212470

Reviewed by Youenn Fablet.

Refactored a bit the platform code because we want to extend the PlatformXR::Device for the OpenXR
library. Also we're removing all the device id code because there is no need to expose it.

The idea from now on is to only define interfaces in PlatformXR.h and then add all the OpenXR specifics
in the newly renamed PlatformXROpenXR.[ch] files. We're also renaming PlatformXR.cpp to
PlatformXROpenXR.cpp to clearly state that it's the OpenXR implementation and to differentiate it from
the implementation agnostic PlatformXR.h file.

No new tests as there is no change in functionality.

  • Sources.txt: Added renamed files. Removed PlatformXR.cpp.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • platform/xr/PlatformXR.cpp: Removed.
  • platform/xr/PlatformXR.h:

(PlatformXR::Device::id const): Deleted.
(PlatformXR::Device::operator== const): Deleted.

  • platform/xr/openxr/PlatformXROpenXR.cpp: Renamed from Source/WebCore/platform/xr/openxr/PlatformXR.cpp.

(PlatformXR::Instance::Impl::~Impl): Call xrDestroyInstance() on m_instance.
(PlatformXR::Instance::Impl::collectSupportedSessionModes): Do not pass XrSystemId as argument
as it's stored in the OpenXRDevice object.
(PlatformXR::Instance::enumerateImmersiveXRDevices): Create an OpenXRDevice instead of a Device.

  • platform/xr/openxr/PlatformXROpenXR.h: Added.
4:18 AM Changeset in webkit [262837] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Unreviewed, reverting r262807.
https://bugs.webkit.org/show_bug.cgi?id=213019

It is breaking JSC queues (Requested by caiolima on #webkit).

Reverted changeset:

"Add a timeout monitor for JSC stress test"
https://bugs.webkit.org/show_bug.cgi?id=211978
https://trac.webkit.org/changeset/262807

12:34 AM Changeset in webkit [262836] by Diego Pino Garcia
  • 4 edits in trunk/LayoutTests

[GTK][WPE] Gardening, update expectations after r262834
https://bugs.webkit.org/show_bug.cgi?id=213014

Unreviewed gardening.

Garden latest failures from bots and adjust the actual result of
several flaky failures.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
Note: See TracTimeline for information about the timeline view.