Timeline
Jan 25, 2020:
- 10:33 PM Changeset in webkit [255128] by
-
- 3 edits in trunk/Source/WebCore
Tighten up some of the drag state machine logic
https://bugs.webkit.org/show_bug.cgi?id=206798
Reviewed by Wenson Hsieh.
- page/EventHandler.h: Added shouldDispatchEventsToDragSourceElement function and renamed
the existing dispatchDragSrcEvent function to dispatchEventToDragSourceElement.
- page/EventHandler.cpp:
(WebCore::EventHandler::updateDragAndDrop): Call the renamed dispatchEventToDragSourceElement
unconditionally, since it now has the smarts to only dispatch an event when we are supposed to.
(WebCore::EventHandler::cancelDragAndDrop): Ditto.
(WebCore::EventHandler::dragSourceEndedAt): Call the new shouldDispatchEventsToDragSourceElement
function because of the null check it does for dataTransfer, before calling setDestinationOperation
on the dataTransfer, since there isn't an obvious ironclad guarantee we might be here without an
actual drag fully in process and a dataTransfer object allocated. Also call the renamed
dispatchEventToDragSourceElement by its new name.
(WebCore::EventHandler::shouldDispatchDragSourceEvents): Added. Checks thre three conditions that
affect whether we should dispatch events to the drag source. First that there is a drag source.
Second that there is a dataTransfer object, indicating that we got far enough in the logic to
actually start a drag. Third that shouldDispatchEvents is true, indicating this is the type of
drag that should be visible to the website content and so events should be dispatched.
(WebCore::EventHandler::dispatchEventToDragSourceElement): Call shouldDispatchDragSourceEvents
before dispatching the event, so that callers don't all have to do that check.
- 9:43 PM Changeset in webkit [255127] by
-
- 20 edits in trunk/Source
Make ContentWorlds be identified by an ObjectIdentifier instead of a uint64_t
https://bugs.webkit.org/show_bug.cgi?id=206784
Reviewed by Alex Christensen.
Source/WebKit:
Refactor: No behavior change.
- Scripts/webkit/messages.py:
- Shared/AuxiliaryProcess.cpp:
(WebKit::AuxiliaryProcess::initialize):
- Shared/ContentWorldShared.h:
(WebKit::pageContentWorldIdentifier):
- Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::decode):
- Shared/WebPageCreationParameters.h:
- Shared/WebUserContentControllerDataTypes.cpp:
(WebKit::WebUserScriptData::decode):
(WebKit::WebUserStyleSheetData::decode):
(WebKit::WebScriptMessageHandlerData::decode):
- Shared/WebUserContentControllerDataTypes.h:
- UIProcess/API/APIContentWorld.cpp:
(API::ContentWorld::pageContentWorld):
(API::ContentWorld::defaultClientWorld):
(API::ContentWorld::ContentWorld):
(API::ContentWorldBase::generateIdentifier): Deleted.
- UIProcess/API/APIContentWorld.h:
(API::ContentWorldBase::identifier const):
(API::ContentWorldBase::worldData const):
(API::ContentWorldBase::ContentWorldBase):
- UIProcess/API/APIUserContentWorld.cpp:
(API::UserContentWorld::UserContentWorld):
- UIProcess/UserContent/WebUserContentControllerProxy.cpp:
(WebKit::WebUserContentControllerProxy::removeUserContentWorldUses):
(WebKit::WebUserContentControllerProxy::removeAllUserScripts):
(WebKit::WebUserContentControllerProxy::removeAllUserStyleSheets):
- WebProcess/UserContent/WebUserContentController.cpp:
(WebKit::worldMap):
(WebKit::WebUserContentController::worldForIdentifier):
(WebKit::WebUserContentController::addUserContentWorld):
(WebKit::WebUserContentController::addUserContentWorlds):
(WebKit::WebUserContentController::removeUserContentWorlds):
(WebKit::WebUserContentController::addUserScripts):
(WebKit::WebUserContentController::removeUserScript):
(WebKit::WebUserContentController::removeAllUserScripts):
(WebKit::WebUserContentController::addUserStyleSheets):
(WebKit::WebUserContentController::removeUserStyleSheet):
(WebKit::WebUserContentController::removeAllUserStyleSheets):
(WebKit::WebUserContentController::addUserScriptMessageHandlers):
(WebKit::WebUserContentController::removeUserScriptMessageHandler):
(WebKit::WebUserContentController::removeAllUserScriptMessageHandlers):
- WebProcess/UserContent/WebUserContentController.h:
- WebProcess/UserContent/WebUserContentController.messages.in:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::runJavaScript):
(WebKit::WebPage::runJavaScriptInMainFrameScriptWorld):
(WebKit::WebPage::runJavaScriptInFrame):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Source/WTF:
- wtf/ObjectIdentifier.h:
(WTF::ObjectIdentifier::generate):
(WTF::ObjectIdentifier::generateThreadSafe):
(WTF::ObjectIdentifier::enableGenerationProtection): To allow restricting generating an identifier to the UIProcess.
- 2:34 PM Changeset in webkit [255126] by
-
- 62 edits in trunk/Source
Introduce a getVTablePointer() utility function.
https://bugs.webkit.org/show_bug.cgi?id=206804
<rdar://problem/58872290>
Reviewed by Yusuke Suzuki and Oliver Hunt.
Source/WebCore:
Updated CodeGeneratorJS to use getVTablePointer() and rebased test results.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
- bindings/scripts/test/JS/JSInterfaceName.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSMapLike.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSReadOnlySetLike.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSSetLike.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestCEReactions.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestCallTracer.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestEnabledForContext.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestGlobalObject.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestIterable.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestPluginInterface.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestSerialization.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestStringifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::toJSNewlyCreated):
Source/WTF:
With getVTablePointer(), we can abstract away how we get a vtable function pointer
without assuming the way it is signed for ARM64E. With this, we can remove the
WTF_PREPARE_VTBL_POINTER_FOR_INSPECTION macro which assumes how a vtable function
pointer is signed.
- wtf/PointerPreparations.h:
- 12:13 PM Changeset in webkit [255125] by
-
- 4 edits in trunk
Add some tests for dynamically allocated StaticStringImpls.
https://bugs.webkit.org/show_bug.cgi?id=206802
Reviewed by Darin Adler.
Source/WTF:
Removed some unnecessary explicit specialization of the charactersAreAllASCII()
template function.
- wtf/text/StringImpl.cpp:
(WTF::StringImpl::createFromLiteral):
(WTF::StringImpl::createStaticStringImpl):
Tools:
- TestWebKitAPI/Tests/WTF/StringImpl.cpp:
(TestWebKitAPI::doStaticStringImplTests):
(TestWebKitAPI::TEST):
- 12:07 PM Changeset in webkit [255124] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: [ Mac WK2 ] animations/suspend-resume-animation-events.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=206615
Reviewed by Alexey Proskuryakov.
- animations/suspend-resume-animation-events.html: Make test slightly less timing
dependent.
- 12:02 PM Changeset in webkit [255123] by
-
- 3 edits in trunk/Tools
webkit-patch upload should not submit automatically to old EWS
https://bugs.webkit.org/show_bug.cgi?id=206801
Reviewed by Alexey Proskuryakov.
- Scripts/webkitpy/tool/commands/upload_unittest.py:
- Scripts/webkitpy/tool/steps/submittoews.py:
- 11:14 AM Changeset in webkit [255122] by
-
- 2 edits in trunk/LayoutTests
Regression (r255103): media/modern-media-controls/placard-support/placard-support-airplay-fullscreen-no-controls.html
https://bugs.webkit.org/show_bug.cgi?id=206800
Unreviewed test gardening; the test which this was copied from, placard-support-airplay-fullscreen.html, is skipped on
iOS test bots due to a lack of AirPlay test support.
Patch by Jer Noble <jer.noble@apple.com> on 2020-01-25
- platform/ios/TestExpectations:
- 9:12 AM Changeset in webkit [255121] by
-
- 5 edits in trunk/LayoutTests
[GTK] Gardening of media related tests
https://bugs.webkit.org/show_bug.cgi?id=206796
Unreviewed gardening.
- platform/gtk/TestExpectations:
- platform/gtk/media/audio-repaint-expected.txt:
- platform/gtk/media/controls-styling-strict-expected.txt:
- platform/gtk/media/media-controls-play-button-updates-expected.txt:
- 9:03 AM Changeset in webkit [255120] by
-
- 15 edits in trunk/Source
Move singleton Intl string locales out of JSGlobalObject.
https://bugs.webkit.org/show_bug.cgi?id=206791
<rdar://problem/58889037>
Source/JavaScriptCore:
Reviewed by Yusuke Suzuki and Andy Wagoner.
We were creating an instance of these for each JSGlobalObject when they can be a
global singleton since they are always initialized with the same intl data
(barring a mid-flight change in intl settings, which we don't support even in the
existing code).
It turns out that intlPluralRulesAvailableLocales() wasn't called anywhere.
IntlPluralRules code currently just uses intlNumberFormatAvailableLocales().
To document that this is intentional, we do the following:
- have IntlPluralRules code call intlPluralRulesAvailableLocales(), and
- have intlPluralRulesAvailableLocales() call intlNumberFormatAvailableLocales() for its implementation.
See https://bugs.webkit.org/show_bug.cgi?id=206791#c7 and
https://bugs.webkit.org/show_bug.cgi?id=206791#c8.
In addMissingScriptLocales(), I'm deliberately naming the string with underscores
because it's much easier to read pa_PK_String and see that it refers to "pa-PK"
as opposed to paPKString. Ditto for zh_CN_String, zh_HK_String, zh_SG_String,
and zh_TW_String.
- runtime/IntlCollator.cpp:
(JSC::IntlCollator::initializeCollator):
- runtime/IntlCollatorConstructor.cpp:
(JSC::IntlCollatorConstructorFuncSupportedLocalesOf):
- runtime/IntlDateTimeFormat.cpp:
(JSC::IntlDateTimeFormat::initializeDateTimeFormat):
- runtime/IntlDateTimeFormatConstructor.cpp:
(JSC::IntlDateTimeFormatConstructorFuncSupportedLocalesOf):
- runtime/IntlNumberFormat.cpp:
(JSC::IntlNumberFormat::initializeNumberFormat):
- runtime/IntlNumberFormatConstructor.cpp:
(JSC::IntlNumberFormatConstructorFuncSupportedLocalesOf):
- runtime/IntlObject.cpp:
(JSC::convertICULocaleToBCP47LanguageTag):
(JSC::addMissingScriptLocales):
(JSC::intlCollatorAvailableLocales):
(JSC::intlDateTimeFormatAvailableLocales):
(JSC::intlNumberFormatAvailableLocales):
(JSC::defaultLocale):
- runtime/IntlObject.h:
- runtime/IntlPluralRules.cpp:
(JSC::IntlPluralRules::initializePluralRules):
- runtime/IntlPluralRulesConstructor.cpp:
(JSC::IntlPluralRulesConstructorFuncSupportedLocalesOf):
- runtime/JSGlobalObject.cpp:
(JSC::addMissingScriptLocales): Deleted.
(JSC::JSGlobalObject::intlCollatorAvailableLocales): Deleted.
(JSC::JSGlobalObject::intlDateTimeFormatAvailableLocales): Deleted.
(JSC::JSGlobalObject::intlNumberFormatAvailableLocales): Deleted.
(JSC::JSGlobalObject::intlPluralRulesAvailableLocales): Deleted.
- runtime/JSGlobalObject.h:
Source/WTF:
Reviewed by Yusuke Suzuki.
Fix a bug in StringImpl::createStaticStringImpl(): I forgot to set its hash value
when I introduced it. StaticStringImpls require that its hash code be set ahead
of time, and cannot be mutated at runtime. See the comment in the definition of
StaticStringImpl in StringImpl.h.
- wtf/text/StringImpl.cpp:
(WTF::StringImpl::createStaticStringImpl):
- 8:51 AM Changeset in webkit [255119] by
-
- 13 edits1 add in trunk
[Cocoa] Media mime types map should be created in the UI process
https://bugs.webkit.org/show_bug.cgi?id=206478
Reviewed by Darin Adler.
Source/WebCore:
Creating this map in the WebContent process will access the launch services daemon, which will be blocked.
This patch creates the map in the UI process and sends it to the WebContent process as part of the WebProcess
creation parameters.
API test: WebKit.MimeTypes
- platform/MIMETypeRegistry.cpp:
(WebCore::overriddenMimeTypesMap):
(WebCore::commonMediaTypes):
(WebCore::commonMimeTypesMap):
(WebCore::typesForCommonExtension):
- platform/MIMETypeRegistry.h:
- testing/Internals.cpp:
(WebCore::Internals::mediaMIMETypeForExtension):
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit:
Send the mime type map from the UI process to the WebContent process as part of the
WebProcess creation parameters.
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit/MimeTypes.mm: Added.
(TEST):
- 7:57 AM Changeset in webkit [255118] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Layout logic should be driven by the type of the inline box
https://bugs.webkit.org/show_bug.cgi?id=206792
<rdar://problem/58889080>
Reviewed by Antti Koivisto.
Use the type of the inline box to decide what layout functions to call and not whether the
box has children or it establishes a formatting context.
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::nextInPreOrder):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::computeIntrinsicWidthForFormattingRoot):
- layout/inlineformatting/InlineFormattingContext.h:
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::isVisuallyNonEmpty const):
- 6:16 AM Changeset in webkit [255117] by
-
- 16 edits in trunk
[LFC][Integration] Re-enable line layout integration
https://bugs.webkit.org/show_bug.cgi?id=206795
<rdar://problem/58853907>
Reviewed by Zalan Bujtas.
Source/WebCore:
- page/RuntimeEnabledFeatures.h:
Source/WebKit:
- Shared/WebPreferences.yaml:
Source/WebKitLegacy/mac:
- WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
Tools:
- DumpRenderTree/TestOptions.h:
LayoutTests:
- fast/dom/Range/getBoundingClientRect-expected.txt:
- platform/ios/fast/text/hyphenate-limit-lines-expected.txt:
- platform/ios/fast/text/whitespace/pre-break-word-expected.txt:
- platform/ios/fast/text/word-break-expected.txt:
- platform/mac/fast/text/hyphenate-limit-lines-expected.txt:
- platform/mac/fast/text/whitespace/pre-break-word-expected.txt:
- platform/mac/fast/text/word-break-expected.txt:
- 6:14 AM BuildingCairoOnWindows edited by
- (diff)
- 4:27 AM Changeset in webkit [255116] by
-
- 12 edits in trunk
HTMLMediaElement should not remove the media session at DOM suspension time
https://bugs.webkit.org/show_bug.cgi?id=206661
<rdar://problem/58800787>
Source/WebCore:
Reviewed by Eric Carlson.
https://trac.webkit.org/changeset/233560 made it so that, on HTMLMediaElement suspension,
its media session is stopped.
This was done to ensure updateNowPlayingInfo is not called synchronously but asynchronously.
The issue is that, once the media session is stopped, it is removed from the media session vector.
On updating the ready state after suspension, and playing, we try to look into the media session vector and do not find the session.
This triggers the ASSERT.
Partially revert the behavior by calling the same code as clientWillPausePlayback
but make sure updateNowPlayingInfo is calling asynchronously when suspending the media element.
Introduce clientWillBeDOMSuspended for that purpose.
Update mediaPlayerReadyStateChanged to enqueue a task to do the update if the media element is suspended.
Covered by test no longer crashing in debug.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerReadyStateChanged):
(WebCore::HTMLMediaElement::stopWithoutDestroyingMediaPlayer):
- platform/audio/PlatformMediaSession.cpp:
(WebCore::PlatformMediaSession::processClientWillPausePlayback):
(WebCore::PlatformMediaSession::clientWillPausePlayback):
(WebCore::PlatformMediaSession::clientWillBeDOMSuspended):
- platform/audio/PlatformMediaSession.h:
- platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::PlatformMediaSessionManager::sessionWillEndPlayback):
- platform/audio/PlatformMediaSessionManager.h:
- platform/audio/cocoa/MediaSessionManagerCocoa.h:
- platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(MediaSessionManagerCocoa::sessionWillEndPlayback):
- platform/audio/ios/MediaSessionManagerIOS.h:
- platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::sessionWillEndPlayback):
Tools:
Reviewed by Eric Carlson.
- TestWebKitAPI/Tests/WebKitLegacy/ios/ScrollingDoesNotPauseMedia.mm:
(TestWebKitAPI::TEST):
Suspend/resume Active DOM Objects from time to time as would do scrolling.
This allows pending tasks to be executed asynchronously when not scrolling.
Jan 24, 2020:
- 8:24 PM Changeset in webkit [255115] by
-
- 2 edits in trunk/LayoutTests
[iOS] REGRESSION(r254699) : fast/forms/interactive-validation-remove-node-in-handler.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=206669
Reviewed by Wenson Hsieh.
The timeout was caused by the invalidation bubble in interactive-validation-prevented.html never getting closed.
Address the issue by explicitly dismissing the invalidation bubble by setting a value to the input element.
- fast/forms/interactive-validation-prevented.html:
- 6:09 PM Changeset in webkit [255114] by
-
- 2 edits in trunk/Source/WebKit
macCatalyst: Don't get any custom cursors in subframes
https://bugs.webkit.org/show_bug.cgi?id=206781
<rdar://problem/58698374>
Reviewed by Simon Fraser.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::positionInformation):
Adjust the hit test to allow child frame content, and reorganize the
rest of the code to use the hit frame instead of the main frame.
- 5:37 PM Changeset in webkit [255113] by
-
- 3 edits in trunk/Source/WebCore
Null Ptr Deref READ @ WebCore::RenderMultiColumnFlow::lastMultiColumnSet const
https://bugs.webkit.org/show_bug.cgi?id=206106
Patch by Jack Lee <Jack Lee> on 2020-01-24
Reviewed by Ryosuke Niwa.
Could not write a reproducible fast test case for this.
- rendering/RenderMultiColumnFlow.cpp:
(WebCore::RenderMultiColumnFlow::lastMultiColumnSet const):
- rendering/updating/RenderTreeBuilderMultiColumn.cpp:
(WebCore::RenderTreeBuilder::MultiColumn::processPossibleSpannerDescendant):
- 5:35 PM Changeset in webkit [255112] by
-
- 6 edits1 add in trunk
IntlObject's cached strings should be immortal and safe for concurrent access.
https://bugs.webkit.org/show_bug.cgi?id=206779
<rdar://problem/58831763>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/numberingSystemsForLocale-cached-strings-should-be-immortal-and-safe-for-concurrent-access.js: Added.
Source/JavaScriptCore:
In IntlObject's numberingSystemsForLocale(), we have a never destroyed
cachedNumberingSystems which is a singleton vector of Strings which are shared
multiple VMs. Hence, the strings in this vector should be a StaticStringImpl
so that it will be immortal, and can be access concurrently from multiple VMs
on different threads without any ref/deref'ing race issues.
- runtime/IntlObject.cpp:
(JSC::numberingSystemsForLocale):
Source/WTF:
Add a factory for creating a dynamically allocated StaticStringImpl.
Note: StaticStringImpl is guaranteed to have the same shape as StringImpl.
The only difference is that s_refCountFlagIsStaticString is set on the refCount
for StaticStringImpl. Since the client will use the StaticStringImpl as a
StringImpl, we implement the factory by using StringImpl::createInternal() for
simplicity, and set the s_refCountFlagIsStaticString flag thereafter.
- wtf/text/StringImpl.cpp:
(WTF::StringImpl::createStaticStringImpl):
- wtf/text/StringImpl.h:
- 5:28 PM Changeset in webkit [255111] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, a speculative test fix after r255041
- UIProcess/WebAuthentication/Mock/MockLocalConnection.mm:
(WebKit::MockLocalConnection::getAttestation const):
- 5:22 PM Changeset in webkit [255110] by
-
- 2 edits in trunk/JSTests
REGRESSION (r254964-r254970?): Catalina Debug JSC bot timing out while running tests
https://bugs.webkit.org/show_bug.cgi?id=206785
Unreviewed, skipping the test if $buildType is "debug".
- stress/operand-should-fit-in-abstract-heap-encoded-payload-format.js:
- 5:12 PM Changeset in webkit [255109] by
-
- 1 copy in tags/Safari-609.1.15.2
Tag Safari-609.1.15.2.
- 5:08 PM Changeset in webkit [255108] by
-
- 9 edits2 adds in trunk
[iOS] Long pressing text inside a selection should update the selection
https://bugs.webkit.org/show_bug.cgi?id=206769
<rdar://problem/58704316>
Reviewed by Tim Horton.
Source/WebCore:
Remove
hasSelectionAtPosition, which is no longer needed.
- page/Page.cpp:
(WebCore::Page::hasSelectionAtPosition const): Deleted.
- page/Page.h:
Source/WebKit:
Makes it possible to update the selection using text interaction gestures inside an existing text selection. To
do this, we remove code that was previously required in order to disambiguate text selection and drag gestures.
However, since adopting asynchronous drag interaction SPI, this check has not been necessary.
The only other purpose of this check was to avoid triggering text selection gestures after canceling a drag
that did not begin (i.e. the touch location did not move). Instead of bailing in -textInteractionGestures:
shouldBeginAtPoint: and -hasSelectablePositionAtPoint:, we can achieve the same effect by simply resetting the
text interaction gestures when the drag lift begins (at which point we know the drag interaction is starting).
This also ensures that on iPad, in the case where the drag was cancelled by the page, long pressing may still
trigger text selection.
Test: editing/selection/ios/select-text-in-existing-selection.html
- Shared/ios/InteractionInformationAtPosition.h:
- Shared/ios/InteractionInformationAtPosition.mm:
(WebKit::InteractionInformationAtPosition::encode const):
(WebKit::InteractionInformationAtPosition::decode):
Remove the hasSelectionAtPosition flag from position information, since we no longer need it.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[UIGestureRecognizer _wk_cancel]):
Drive-by fix: just ignore the gesture if it is already disabled. This prevents us from causing a gesture
recognizer that was previously disabled to become enabled as a result of calling -_wk_cancel.
(-[WKContentView hasSelectablePositionAtPoint:]):
(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):
(-[WKContentView cancelActiveTextInteractionGestures]):
Instead of making the text interaction gestures return NO from -gestureRecognizerShouldBegin:, explicitly cancel
the text interaction gestures that may select text.
(-[WKContentView dragInteraction:willAnimateLiftWithAnimator:session:]):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::positionInformation):
Remove the hasSelectionAtPosition flag from position information, since we no longer need it.
LayoutTests:
Add a layout test to verify that it's possible to select text by long pressing inside an existing text
selection. The test is runnable on both iPad and iPhone, since it programmatically preventsdragstart.
- editing/selection/ios/select-text-in-existing-selection-expected.txt: Added.
- editing/selection/ios/select-text-in-existing-selection.html: Added.
- 5:07 PM Changeset in webkit [255107] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] (Regression) LayoutTests/fast/text/whitespace/029.html fails
https://bugs.webkit.org/show_bug.cgi?id=206773
<rdar://problem/58883388>
Reviewed by Simon Fraser.
While line break is an inline box, it does not have inline content so do not try to cast it to Container.
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::collectInlineContentIfNeeded):
- 4:49 PM Changeset in webkit [255106] by
-
- 3 edits in trunk/Source/WebKit
Update EditorState from WebProcess when requesting context menu
https://bugs.webkit.org/show_bug.cgi?id=206775
<rdar://problem/56305573>
Reviewed by Wenson Hsieh.
When generating a context menu, AppKit calls -validRequestorForSendType:returnType:
which queries the editor state in WebViewImpl::validRequestorForSendAndReturnTypes.
Without updating the editor state, the first time you right click on a link,
the Services menu item did not appear because we were looking at a stale editor state.
Verified manually this fixes the bug.
- WebProcess/WebPage/WebContextMenu.cpp:
(WebKit::WebContextMenu::show):
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::handleSelectionServiceClick):
- 4:45 PM Changeset in webkit [255105] by
-
- 2 edits in trunk/Source/WebKit
macCatalyst: Right clicking on links follows the link, but shouldn't
https://bugs.webkit.org/show_bug.cgi?id=206777
<rdar://problem/56586280>
Reviewed by Wenson Hsieh.
- UIProcess/ios/WKMouseGestureRecognizer.mm:
(-[WKMouseGestureRecognizer createMouseEventWithType:forEvent:]):
(-[WKMouseGestureRecognizer touchesEnded:withEvent:]):
I got 'button' and 'buttons' backwards.
'button' indicates which button the event is about, so in MouseUp,
it should still be 2.
'buttons' indicate which buttons are still down, so in MouseUp,
it should not include 2. Since we don't currently track mouse button
chording here, we'll just say "none". Leave a FIXME about that.
This makes WebCore's behavior correct, and now it doesn't follow the link.
- 4:34 PM Changeset in webkit [255104] by
-
- 2 edits in trunk/LayoutTests
imported/w3c/web-platform-tests/requestidlecallback/callback-xhr-sync.html is flaky failure
https://bugs.webkit.org/show_bug.cgi?id=206676
<rdar://problem/58839631>
Add a flaky test expectation.
- 4:23 PM Changeset in webkit [255103] by
-
- 4 edits2 adds in trunk
AirPlay placard not visible when AirPlay is entered in fullscreen mode.
https://bugs.webkit.org/show_bug.cgi?id=206772
<rdar://problem/57098851>
Patch by Jer Noble <jer.noble@apple.com> on 2020-01-24
Reviewed by Eric Carlson.
Test: media/modern-media-controls/placard-support/placard-support-airplay-fullscreen-no-controls.html
The AirPlay and Picture-in-picture placards should always become visible, regardless of
whether the <video> element uses the native media controls. So "disabling" the PlacardSupport
object should not remove the listeners for presentation mode and route change events. Instead
merely remember whether the object is disabled, so that the "error placard" will only be shown
if controls are enabled, and PiP and AirPlay placards will always be shown.
- Modules/modern-media-controls/media/placard-support.js:
(PlacardSupport.prototype.enable):
(PlacardSupport.prototype.disable):
(PlacardSupport.prototype._updatePlacard):
- 3:40 PM Changeset in webkit [255102] by
-
- 4 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255039. rdar://problem/58855996
Background thread with ITP Database should lock when the network process is suspended
https://bugs.webkit.org/show_bug.cgi?id=206593
rdar://problem/58713379
Reviewed by Chris Dumez.
This patch adds a function to hang the background queue when the
NetworkProcess is preparing to suspend.
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: (WebKit::WebResourceLoadStatisticsStore::suspend): (WebKit::WebResourceLoadStatisticsStore::resume):
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
- NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::prepareToSuspend): (WebKit::NetworkProcess::resume):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255039 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:40 PM Changeset in webkit [255101] by
-
- 2 edits in branches/safari-609-branch/Source/JavaScriptCore
Cherry-pick r254996. rdar://problem/58856010
OptimizeAssociativeExpressionTrees should reset value owners before running
https://bugs.webkit.org/show_bug.cgi?id=206670
<rdar://problem/58535628>
Reviewed by Robin Morisset.
We have a crash inside OptimizeAssociativeExpressionTrees and we don't know
how to reproduce it. Also, based on Mark's auditing of the crash site's
assembly, Mark thinks we're crashing on a "currupt" basic block.
After I audited the code, I saw that we rely on value owners in this phase.
However, we don't actually reset them before running the phase. This patch
adds that as a speculative fix for the crash we're seeing.
- b3/B3OptimizeAssociativeExpressionTrees.cpp: (JSC::B3::OptimizeAssociativeExpressionTrees::run):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254996 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:40 PM Changeset in webkit [255100] by
-
- 6 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r254991. rdar://problem/58856021
[Web Animations] Make AnimationList ref-counted
https://bugs.webkit.org/show_bug.cgi?id=206664
Reviewed by Antti Koivisto.
- platform/animation/AnimationList.cpp:
- platform/animation/AnimationList.h: (WebCore::AnimationList::create): (WebCore::AnimationList::copy): (WebCore::AnimationList::AnimationList): Deleted.
- rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::ensureAnimations): (WebCore::RenderStyle::ensureTransitions):
- rendering/style/StyleRareNonInheritedData.cpp: (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
- rendering/style/StyleRareNonInheritedData.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254991 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:40 PM Changeset in webkit [255099] by
-
- 3 edits in branches/safari-609-branch/Source/JavaScriptCore
Cherry-pick r254962. rdar://problem/58856037
Restore nullification of DFG::Plan::m_vm when the plan is cancelled.
https://bugs.webkit.org/show_bug.cgi?id=206633
<rdar://problem/58811967>
Reviewed by Robin Morisset.
In r253243, I replaced the nullification of Plan::m_vm in Plan::cancel() with
code to decorate the m_vm pointer with a nuke bit. The thinking is that keeping
the VM pointer in nuked form allows us to do certain assertions, as well as
implementing code in support of keeping Box<Identifier>s alive. It is only
correct to use the nuked VM pointer if and only if the VM is guaranteed to
outlive the Plan. r253243 guarantees this condition.
In r254464, I replaced the use of Box<Identifier> with CacheableIdentifier.
This obviated all the support code added above, and rolled out most of it.
However, I opted to keep the nuked VM pointer in the DFG::Plan to as a debugging
aid (it's nice to be able to know which VM the Plan came from).
However, r254464 also undid the guarantee that the VM will outlive the Plan.
As a result, a nuked VM pointer is no longer guaranteed to point to a valid VM.
Some worker layout tests, run on an ASAN build, detected that the pointer is
pointing to an already freed VM and failed with a crash.
This patch fixes this issue by completely reverting the nuked VM pointer code,
and restores nullification of the m_vm pointer in Plan::cancel().
- dfg/DFGPlan.cpp: (JSC::DFG::Plan::computeCompileTimes const): (JSC::DFG::Plan::cancel):
- dfg/DFGPlan.h: (JSC::DFG::Plan::vm const): (JSC::DFG::Plan::unnukedVM const): Deleted. (JSC::DFG::Plan::nuke): Deleted. (JSC::DFG::Plan::unnuke): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254962 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:40 PM Changeset in webkit [255098] by
-
- 3 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r254951. rdar://problem/58856000
Make a Ref to WindowEventLoop when the timer to run tasks fires
https://bugs.webkit.org/show_bug.cgi?id=206568
Reviewed by Antti Koivisto.
Keep WindowEventLoop alive explicitly while invoking EventLoop::run.
- dom/WindowEventLoop.cpp: (WebCore::WindowEventLoop::WindowEventLoop): (WebCore::WindowEventLoop::didReachTimeToRun):
- dom/WindowEventLoop.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254951 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:40 PM Changeset in webkit [255097] by
-
- 3 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r254938. rdar://problem/58856028
Fix SDK availability macros
https://bugs.webkit.org/show_bug.cgi?id=206463
<rdar://problem/58581906>
Reviewed by Timothy Hatcher.
Bug 197841 updated WebKit.xcconfig with regards to when it runs a
header post-processing script. This post-processing script grovels
over our exported headers, changing macros like WK_API_AVAILABLE to
the standard API_AVAILABLE. Because of the change in Bug 197841, the
script was no longer being run when preparing macOS 10.15 SDKs, which
was breaking those SDKs. Fix this by reverting the change, allowing
the macros to be replaced for macOS 10.15.
We also need to touch WKFoundation.h in order to support incremental
builds. If we don't, then the version of WKFoundation.h that was
exported in the previous build and that was incorrectly post-processed
would remain incorrectly post-processed. Touch the file so that it
will get re-exported and re-post-processed.
No new tests - no added or changed functionality.
- Configurations/WebKit.xcconfig:
- Shared/API/Cocoa/WKFoundation.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254938 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:40 PM Changeset in webkit [255096] by
-
- 4 edits in branches/safari-609-branch/Tools
Cherry-pick r254318. rdar://problem/58856031
TestController::platformLibraryPathForTesting() returns inner pointer to autoreleased NSString
<https://webkit.org/b/206018>
<rdar://problem/58449733>
Reviewed by Darin Adler.
- WebKitTestRunner/TestController.cpp: (WTR::TestController::initialize):
- Use WTF::AutodrainedPool to fix remaining autoreleasePool leaks.
- WebKitTestRunner/ios/TestControllerIOS.mm: (WTR::TestController::platformLibraryPathForTesting):
- WebKitTestRunner/mac/TestControllerMac.mm: (WTR::TestController::platformLibraryPathForTesting):
- Retain NSString since these methods return an inner pointer. This also only needs to be initialized once.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254318 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:52 PM Changeset in webkit [255095] by
-
- 2 edits in trunk/Source/WebCore
Crash in AXIsolatedObject::tagName.
https://bugs.webkit.org/show_bug.cgi?id=206765
Reviewed by Chris Fleizach.
Fixes crash in AXIsolatedObject::tagName.
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData): Was missing the isolatedCopy when caching the tagName.
- 2:19 PM Changeset in webkit [255094] by
-
- 2 edits in trunk/Source/WebKitLegacy
Remove check-xcfilelists.sh from WebKitLegacy Xcode build target
https://bugs.webkit.org/show_bug.cgi?id=206762
<rdar://problem/58825997>
Reviewed by Alexey Proskuryakov.
When check-xcfilelists.sh got added to the WebKitLegacy Xcode project,
it was also accidentally added to the WebKitLegacy build target. This
caused it to be treated as a "resource", and so was copied to the
output directory in the Resources sub-folder during the build. This
copying is not expected, needed, or desired. Remove
check-xcfilelists.sh from the target, which also removes it from the
Copy Resources build phase, which removes it from the
WebKitLegacy.framework/Resources directory.
- WebKitLegacy.xcodeproj/project.pbxproj:
- 1:58 PM Changeset in webkit [255093] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, a build fix after r255056
- UIProcess/WebAuthentication/Mock/MockLocalConnection.mm:
(WebKit::MockLocalConnection::getAttestation const):
- 1:18 PM Changeset in webkit [255092] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, rolling out r255089.
Breaks tvOS build.
Reverted changeset:
"WebCore: Remove iOS 11 macros from
WebItemProviderPasteboard.h"
https://bugs.webkit.org/show_bug.cgi?id=206719
https://trac.webkit.org/changeset/255089
- 12:57 PM Changeset in webkit [255091] by
-
- 5 edits in branches/safari-609.1.15-branch/Source/WebKit
Cherry-pick r254552. rdar://problem/58812968
REGRESSION (r253394): After swiping back during a navigation, WKWebView gets stuck with the forward content, stops repainting
https://bugs.webkit.org/show_bug.cgi?id=206268
<rdar://problem/58536702>
Reviewed by Simon Fraser.
- UIProcess/ViewGestureController.cpp: (WebKit::ViewGestureController::endSwipeGesture):
- UIProcess/ViewGestureController.h:
- UIProcess/ios/ViewGestureControllerIOS.mm: (WebKit::ViewGestureController::beginSwipeGesture): (WebKit::ViewGestureController::endSwipeGesture): (WebKit::ViewGestureController::removeSwipeSnapshot):
- UIProcess/mac/ViewGestureControllerMac.mm: (WebKit::ViewGestureController::beginSwipeGesture): (WebKit::ViewGestureController::removeSwipeSnapshot): After r253394, we start loading the destination page in willEndSwipeGesture, when we know the gesture will complete, instead of in endSwipeGesture, when it is actually done.
This means that if we decide that we should tear down the snapshot immediately,
this can now happen in the window between willEndSwipeGesture and endSwipeGesture.
However, removeSwipeSnapshot has numerous dependencies on endSwipeGesture
(especially on iOS, where there are /also/ dependencies in the other direction -
endSwipeGesture will never be called after removeSwipeSnapshot because
of the gestureID mismatch).
Regardless, it does not make sense to remove the snapshot while the animation
is still running. So, if something causes removeSwipeSnapshot to be called
before endSwipeGesture, we just set a bit and call it inside endSwipeGesture instead.
This ends up putting the snapshot removal ordering back as it was before r253394.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254552 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:54 PM Changeset in webkit [255090] by
-
- 8 edits in branches/safari-609.1.15-branch/Source
Versioning.
- 12:40 PM Changeset in webkit [255089] by
-
- 2 edits in trunk/Source/WebCore
WebCore: Remove iOS 11 macros from WebItemProviderPasteboard.h
https://bugs.webkit.org/show_bug.cgi?id=206719
Reviewed by Tim Horton.
No functional changes, covered by existing tests.
- platform/ios/WebItemProviderPasteboard.h:
- 12:26 PM Changeset in webkit [255088] by
-
- 7 edits in trunk/Source/JavaScriptCore
[ARMv7][JIT] Implement checkpoint support
https://bugs.webkit.org/show_bug.cgi?id=206611
Reviewed by Yusuke Suzuki.
This patch is adding code path to properly support checkpoint on ARMv7.
- dfg/DFGOSREntry.cpp:
(JSC::DFG::prepareOSREntry):
We changed the scratch buffer population to properly handle
callee-saved registers on 32-bits. For more details, check comments on
source code.
- dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::compileExit):
- jit/GPRInfo.h:
(JSC::GPRInfo::toRegister):
(JSC::GPRInfo::toIndex):
We are adding back
regCS1to be used as GPRReg on DFG and
scratch registers. This was necessary because some code generated by
GetByVal IC requires at least 9 registers available.
Given that, we also added such register todfgCalleeSaveRegisters
set.
- jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emitPutByValWithCachedId):
- jit/RegisterSet.cpp:
(JSC::RegisterSet::dfgCalleeSaveRegisters):
- llint/LowLevelInterpreter.asm:
- 12:25 PM Changeset in webkit [255087] by
-
- 2 edits in trunk/Source/WTF
Fix internal Apple builds after r254411
https://bugs.webkit.org/show_bug.cgi?id=206723
<rdar://problem/58844735>
Reviewed by Maciej Stachowiak.
The default Xcode build configuration has changed between macOS 10.13
and macOS 10.15, such that references to some frameworks when bulding
for the latter don't work when building for the former. Fix this by
explicitly adding support for the desired build location rather than
assuming such support will be provided for us.
- Configurations/WTF.xcconfig:
- 12:00 PM Changeset in webkit [255086] by
-
- 3 edits in trunk/Source/JavaScriptCore
JSC should produce a module map.
https://bugs.webkit.org/show_bug.cgi?id=206717
Reviewed by Mark Lam.
- Configurations/JavaScriptCore.xcconfig:
- JavaScriptCore.modulemap:
- 11:33 AM Changeset in webkit [255085] by
-
- 8 edits in trunk
Add support for MediaRecorder.requestData
https://bugs.webkit.org/show_bug.cgi?id=206731
LayoutTests/imported/w3c:
Reviewed by Eric Carlson.
- web-platform-tests/mediacapture-record/idlharness.window-expected.txt:
Source/WebCore:
Reviewed by Eric Carlson.
Add support for requestData that fetches any available data.
Expose MediaRecorder stream.
Covered by updated tests.
- Modules/mediarecorder/MediaRecorder.cpp:
(WebCore::MediaRecorder::requestData):
- Modules/mediarecorder/MediaRecorder.h:
- Modules/mediarecorder/MediaRecorder.idl:
LayoutTests:
Reviewed by Eric Carlson.
- http/wpt/mediarecorder/MediaRecorder-dataavailable.html:
- 11:30 AM Changeset in webkit [255084] by
-
- 2 edits in trunk/Websites/webkit.org
Fix editing permissions for the Web Inspector Editor role
https://bugs.webkit.org/show_bug.cgi?id=206761
Reviewed by Devin Rousso.
- wp-content/plugins/web-inspector-pages.php:
- 11:12 AM Changeset in webkit [255083] by
-
- 3 edits2 adds in trunk
Nullptr deref in WebCore::RenderTreeBuilder::Block::attachIgnoringContinuation when an element is inserted before legend under multi-column layout.
https://bugs.webkit.org/show_bug.cgi?id=206109
Patch by Jack Lee <Jack Lee> on 2020-01-24
Reviewed by Antti Koivisto.
Source/WebCore:
Test: fast/forms/fieldset/fieldset-crash-insert-before-legend-under-multicol.html
- rendering/updating/RenderTreeBuilderBlockFlow.cpp:
(WebCore::RenderTreeBuilder::BlockFlow::attach):
LayoutTests:
- fast/forms/fieldset/fieldset-crash-insert-before-legend-under-multicol-expected.txt: Added.
- fast/forms/fieldset/fieldset-crash-insert-before-legend-under-multicol.html: Added.
- 10:57 AM Changeset in webkit [255082] by
-
- 5 edits in trunk/Tools
Remove Apple windows 7 queues.
https://bugs.webkit.org/show_bug.cgi?id=206702
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/build.webkit.org-config/config.json:
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:
- BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
Removed Windows 7 queues from config and from dashboard.
- 10:53 AM Changeset in webkit [255081] by
-
- 13 edits1 delete in trunk
Unreviewed, rolling out r255050.
Introduced crashes on bots
Reverted changeset:
"[Cocoa] Media mime types map should be created in the UI
process"
https://bugs.webkit.org/show_bug.cgi?id=206478
https://trac.webkit.org/changeset/255050
- 10:40 AM Changeset in webkit [255080] by
-
- 5 edits in trunk/Source/WebCore
Implementation of AXIsolatedObject::isStaticText and isLandmark methods.
https://bugs.webkit.org/show_bug.cgi?id=206745
Reviewed by Chris Fleizach.
- isStaticText moved from the AXObject class to the base AXCoreObject so
that it is used by isolated objects as well.
- Implemented isLandmark.
- Ordered alphabetically the setProperty calls for most IsXXX
properties in initializeAttributeData for easier identification.
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityObjectInterface.h:
(WebCore::AXCoreObject::isStaticText const):
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::isLandmark const): Deleted, inline in header file.
(WebCore::AXIsolatedObject::isStaticText const): Deleted, implemented in AXCoreObject.
- accessibility/isolatedtree/AXIsolatedObject.h:
- 10:29 AM Changeset in webkit [255079] by
-
- 2 edits5 adds in trunk/LayoutTests
[GTK][WPE] Websockets close-on-x tests are failing
https://bugs.webkit.org/show_bug.cgi?id=206392
Unreviewed gardening.
Rebaseline after libsoup commit 35f1bac5.
Patch by Lauro Moura <Lauro Moura> on 2020-01-24
- platform/gtk/TestExpectations:
- platform/gtk/http/tests/websocket/tests/hybi/close-on-navigate-new-location-expected.txt: Added.
- platform/gtk/http/tests/websocket/tests/hybi/close-on-unload-and-force-gc-expected.txt: Added.
- platform/gtk/http/tests/websocket/tests/hybi/close-on-unload-expected.txt: Added.
- platform/gtk/http/tests/websocket/tests/hybi/close-on-unload-reference-in-parent-expected.txt: Added.
- platform/gtk/http/tests/websocket/tests/hybi/send-after-close-on-unload-expected.txt: Added.
- 10:13 AM Changeset in webkit [255078] by
-
- 3 edits in trunk/LayoutTests
[GTK][WPE] Several WPT fetch tests are failing
https://bugs.webkit.org/show_bug.cgi?id=206416
Patch by Rob Buis <rbuis@igalia.com> on 2020-01-24
Reviewed by Frédéric Wang.
It is better to skip these as more tests can be added
and this feature is not enabled on WPE/GTK.
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 9:58 AM Changeset in webkit [255077] by
-
- 3 edits in trunk/Source/JavaScriptCore
Unreviewed, rolling out r255052.
https://bugs.webkit.org/show_bug.cgi?id=206758
"Broke production builds" (Requested by rmorisset on #webkit).
Reverted changeset:
"Break the dependency between jsc and DerivedSources"
https://bugs.webkit.org/show_bug.cgi?id=206720
https://trac.webkit.org/changeset/255052
- 9:35 AM Changeset in webkit [255076] by
-
- 14 edits in trunk
[Web Animations] Support multiple CSS Animations with the same name in animation-name
https://bugs.webkit.org/show_bug.cgi?id=206688
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Mark some new WPT progressions.
- web-platform-tests/css/css-animations/Element-getAnimations-dynamic-changes.tentative-expected.txt:
- web-platform-tests/css/css-animations/Element-getAnimations.tentative-expected.txt:
- web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-replacement-expected.txt:
Source/WebCore:
AnimationTimeline would keep track of registered CSS Animations by name for a given element in m_elementToCSSAnimationByName which would map one CSSAnimation
per String (the animation-name) for a given Element. However, within the same animation-name property, the name of a given @keyframes rules may appear more
than once, and the CSS Animations specification explains how to handle this scenario.
We now correctly handle this by replacing m_elementToCSSAnimationByName with the new m_elementToCSSAnimationsCreatedByMarkupMap which simply maps an Element
to a ListHashSet of CSSAnimation objects. Removing the string that appeared in animation-name to create this animation requires us to keep the AnimationList
used for the last style update for sorting purposes, since having multiple instances of the same string would not allow disambiguation when sorting the
KeyframeEffectStack.
So we also replace m_cssAnimationNames, a Vector<String>, with m_cssAnimationList, a RefPtr<const AnimationList>, and use this to compare Animation objects
stored in the AnimationList against the backing animation of each CSSAnimation.
Storing the AnimationList on the KeyframeEffectStack also has the benefit of allowing us to use this as the previous state when updating CSS Animations in
AnimationTimeline::updateCSSAnimationsForElement(). We used to rely on the previous RenderStyle provided to that function, but it's possible that this style
is null and we would unnecessarily create additional CSSAnimation objects for animations that actually were retained since the last time CSS Animations were
invalidated. We now use the stored AnimationList on the invalidated element's KeyframeEffectStack and create a new animation list that will replace the old
list stored in the m_elementToCSSAnimationsCreatedByMarkupMap map for that element. We can also compare the old list with the new list to find out which
animations are no longer current.
Finally, we refactor things a bit to have some new aliases AnimationCollection and CSSAnimationCollection instead of using ListHashSet<> in our types.
- animation/AnimationTimeline.cpp:
(WebCore::AnimationTimeline::animationWasAddedToElement): Use the new AnimationCollection alias.
(WebCore::AnimationTimeline::removeDeclarativeAnimationFromListsForOwningElement): We no longer need to do any work for CSSAnimation here since the
m_elementToCSSAnimationByName map is no more and the m_elementToCSSAnimationsCreatedByMarkupMap that replaces it is updated in updateCSSAnimationsForElement()
and elementWasRemoved().
(WebCore::AnimationTimeline::animationsForElement const): Since animations are correctly sorted accounting for their composite order in KeyframeEffectStack,
call KeyframeEffectStack::sortedEffects() when we're called with Ordering::Sorted.
(WebCore::AnimationTimeline::removeCSSAnimationCreatedByMarkup): New method called by elementWasRemoved() to ensure that when an element is removed, we remove
its CSSAnimation objects from the new m_elementToCSSAnimationsCreatedByMarkupMap and also update the AnimationList on the relevant KeyframeEffectStack.
(WebCore::AnimationTimeline::elementWasRemoved): Call the new removeCSSAnimationCreatedByMarkup() method before canceling a CSSAnimation.
(WebCore::AnimationTimeline::cancelDeclarativeAnimationsForElement): Call the new removeCSSAnimationCreatedByMarkup() method before canceling a CSSAnimation.
(WebCore::AnimationTimeline::updateCSSAnimationsForElement): Use the AnimationList recoreded on the relevant KeyframeEffectStack to determine which CSSAnimation
objects to create, cancel or merely update depending on the AnimationList in the current style.
- animation/AnimationTimeline.h:
- animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::getAnimations const): Use compareAnimationsByCompositeOrder() to correctly sort CSS Animations since they are no longer guaranteed
to be stored in the relevant map in the expected order.
- animation/KeyframeEffectStack.cpp:
(WebCore::KeyframeEffectStack::ensureEffectsAreSorted): Use the new m_cssAnimationList instead of the old m_cssAnimationNames when sorting effects.
(WebCore::KeyframeEffectStack::setCSSAnimationList):
(WebCore::KeyframeEffectStack::setCSSAnimationNames): Deleted.
- animation/KeyframeEffectStack.h:
(WebCore::KeyframeEffectStack::cssAnimationList const):
(WebCore::KeyframeEffectStack::cssAnimationNames const): Deleted.
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::commitStyles): Use the new KeyframeEffectStack::cssAnimationList() instead of the old KeyframeEffectStack::cssAnimationNames().
- animation/WebAnimationUtilities.cpp:
(WebCore::compareAnimationsByCompositeOrder): Update the composite order comparison utility to use an AnimationList rather than a list of animation names.
- animation/WebAnimationUtilities.h:
- platform/animation/AnimationList.h:
(WebCore::AnimationList::copy const):
- 9:18 AM Changeset in webkit [255075] by
-
- 2 edits in trunk/Tools
run-webkit-tests: Handle case where device socket make handle invalid
https://bugs.webkit.org/show_bug.cgi?id=206707
Reviewed by Stephanie Lewis.
- Scripts/webkitpy/port/simulator_process.py:
(SimulatorProcess.NonBlockingFileFromSocket.close): Catch IOError when closing file.
- 8:42 AM Changeset in webkit [255074] by
-
- 2 edits in trunk/Source/WebCore
[LFC][Painting] Add Display::Run cleanup to TextPainter::clearGlyphDisplayLists
https://bugs.webkit.org/show_bug.cgi?id=206744
<rdar://problem/58867112>
Reviewed by Antti Koivisto.
- rendering/TextPainter.cpp:
(WebCore::TextPainter::clearGlyphDisplayLists):
- 8:32 AM Changeset in webkit [255073] by
-
- 4 edits in trunk/Source/WTF
WTF: Remove old iOS version macros
https://bugs.webkit.org/show_bug.cgi?id=206634
<rdar://problem/58818561>
Reviewed by Darin Adler.
- wtf/PlatformEnable.h: Remove iOS 12 version macro.
- wtf/PlatformHave.h: Ditto.
- wtf/PlatformUse.h: Ditto.
- 7:58 AM Changeset in webkit [255072] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Add missing sysctl-read permission (already available in macOS sandbox)
https://bugs.webkit.org/show_bug.cgi?id=206713
<rdar://problem/57665153>
Reviewed by Per Arne Vollan.
Correct a sandbox violation encountered when attempting to log the system hostname.
This was already handled properly on macOS, but the rule was not added to the iOS sandbox.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 7:26 AM Changeset in webkit [255071] by
-
- 5 edits in trunk/Source/WebCore
[LFC][Integration] Clear inline item caches on low memory notification
https://bugs.webkit.org/show_bug.cgi?id=206740
<rdar://problem/58773905>
Reviewed by Zalan Bujtas.
Clear inline item caches on low memory notification.
- layout/inlineformatting/InlineFormattingState.h:
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::releaseCaches):
(WebCore::LayoutIntegration::LineLayout::releaseInlineItemCache):
- layout/integration/LayoutIntegrationLineLayout.h:
Remove inline capacity. It is rarely optimal and we can afford the heap allocation.
- page/MemoryRelease.cpp:
(WebCore::releaseNoncriticalMemory):
- 7:14 AM Changeset in webkit [255070] by
-
- 9 edits in trunk/Source
Fix various non-unified build issues introduced since r254751
https://bugs.webkit.org/show_bug.cgi?id=206736
Reviewed by Carlos Garcia Campos.
Source/JavaScriptCore:
- tools/CompilerTimingScope.cpp: Add missing inclusions of wtf/Vector.h and wtf/text/WTFString.h
Source/WebCore:
No new tests needed.
- Modules/cache/DOMCacheEngine.cpp: Move errorToException() function out from the file to
make it usable from DOMCacheStorage.cpp
- Modules/cache/DOMCacheEngine.h:
(WebCore::DOMCacheEngine::errorToException): Added.
- Modules/cache/DOMCacheStorage.cpp:
(WebCore::DOMCacheStorage::retrieveCaches): Adapt to use DOMCacheEngine::errorToException().
- platform/graphics/cairo/ImageBufferUtilitiesCairo.cpp: Add missing RefPtrCairo.h inclusion.
Source/WebKit:
- WebProcess/WebPage/WebURLSchemeHandlerProxy.cpp: Add missing WebFrame.h inclusion.
- 7:14 AM Changeset in webkit [255069] by
-
- 2 edits in trunk/Tools
[GTK] API test runner fails with error: too many open files.
https://bugs.webkit.org/show_bug.cgi?id=206743
Reviewed by Carlos Garcia Campos.
The API test runner for google tests was leaking file descriptors because
it was not closing the file descriptor of the pseudo-terminal of the child,
which was referred in the parent because of the forkpty() call.
This was causing a small but constant increase of open file descriptors,
until the point it reached the limit of maximum open files (1024 usually)
causing this error.
Fix that by closing the reference to the fd of the child's pseudo-terminal.
- glib/api_test_runner.py:
(TestRunner._run_google_test):
- 6:36 AM Changeset in webkit [255068] by
-
- 4 edits in trunk/Source/WebCore
[LFC][Integration] LineLayout::paint should take advantage of the glyph display list cache
https://bugs.webkit.org/show_bug.cgi?id=206727
<rdar://problem/58809696>
Reviewed by Antti Koivisto.
- layout/displaytree/DisplayInlineContent.cpp:
(WebCore::Display::InlineContent::~InlineContent):
- layout/displaytree/DisplayInlineContent.h:
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::paint):
- 6:11 AM Changeset in webkit [255067] by
-
- 16 edits3 copies3 moves3 deletes in trunk/Source/WebKit
Centralize AuxiliaryProcessMainBase implementations
https://bugs.webkit.org/show_bug.cgi?id=206700
Reviewed by Carlos Garcia Campos.
Non-Cocoa ports share a common usage of AuxiliaryProcessMainBase but the implementations
don't share a lot of code. This patch centralizes the code and the naming used.
- NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp:
(main):
- NetworkProcess/EntryPoint/win/NetworkProcessMain.cpp:
(main):
- NetworkProcess/NetworkProcessMain.h: Renamed from Source/WebKit/NetworkProcess/win/NetworkProcessMainWin.h.
- NetworkProcess/curl/NetworkProcessMainCurl.cpp: Renamed from Source/WebKit/NetworkProcess/win/NetworkProcessMainWin.cpp.
(WebKit::initializeAuxiliaryProcess<NetworkProcess>):
(WebKit::NetworkProcessMain):
- NetworkProcess/soup/NetworkProcessMainSoup.cpp:
(WebKit::NetworkProcessMain):
(WebKit::NetworkProcessMainUnix): Deleted.
- NetworkProcess/unix/NetworkProcessMainUnix.h: Removed.
- PlatformFTW.cmake:
- PlatformGTK.cmake:
- PlatformWPE.cmake:
- PlatformWin.cmake:
- PluginProcess/EntryPoint/unix/PluginProcessMain.cpp:
(main):
- PluginProcess/PluginProcessMain.h: Renamed from Source/WebKit/PluginProcess/unix/PluginProcessMainUnix.h.
- PluginProcess/unix/PluginProcessMainUnix.cpp:
(WebKit::PluginProcessMain):
(WebKit::PluginProcessMainUnix): Deleted.
- Shared/AuxiliaryProcessMain.h: Renamed from Source/WebKit/Shared/unix/AuxiliaryProcessMain.h.
- WebProcess/EntryPoint/unix/WebProcessMain.cpp:
(main):
- WebProcess/EntryPoint/win/WebProcessMain.cpp:
(main):
- WebProcess/WebProcessMain.h: Renamed from Source/WebKit/WebProcess/win/WebProcessMainWin.h.
- WebProcess/gtk/WebProcessMainGtk.cpp:
(WebKit::WebProcessMain):
(WebKit::WebProcessMainUnix): Deleted.
- WebProcess/playstation/WebProcessMainPlayStation.cpp: Renamed from Source/WebKit/WebProcess/unix/WebProcessMainUnix.h.
(WebKit::WebProcessMain):
- WebProcess/win/WebProcessMainWin.cpp:
(WebKit::WebProcessMain):
(WebKit::WebProcessMainWin): Deleted.
- WebProcess/wpe/WebProcessMainWPE.cpp:
(WebKit::WebProcessMain):
(WebKit::WebProcessMainUnix): Deleted.
- webkitglib-symbols.map:
- 5:53 AM Changeset in webkit [255066] by
-
- 2 edits in trunk/LayoutTests
[GTK] More unreviewed gardening.
https://bugs.webkit.org/show_bug.cgi?id=206693
Unreviewed gardening.
Patch by Lauro Moura <Lauro Moura> on 2020-01-24
- platform/gtk/TestExpectations:
- 3:32 AM Changeset in webkit [255065] by
-
- 2 edits in trunk/LayoutTests
Layout Test animations/no-style-recalc-during-accelerated-animation.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=206733
Unreviewed test gardening.
- platform/gtk/TestExpectations:
- 3:18 AM Changeset in webkit [255064] by
-
- 2 edits4 moves3 adds2 deletes in trunk/LayoutTests
Import 2 sets of grid-align-tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=206492
Patch by Rossana Monteriso <rmonteriso@igalia.com> on 2020-01-24
Reviewed by Manuel Rego Casasnovas.
LayoutTests/imported/w3c:
Add outdated grid-align tests, checked and adapted to the WPT project, to the css-grid/alignment folder for imported tests.
Add also blue-100.png support file inside the css/support folder.
Correct the test description inside <p>, for grid-align-stretching-replaced-items.html.
- web-platform-tests/css/css-grid/alignment/grid-align-content-vertical-lr.html:
- web-platform-tests/css/css-grid/alignment/grid-align-content-vertical-rl.html:
- web-platform-tests/css/css-grid/alignment/grid-align-stretching-replaced-items.html:
- web-platform-tests/css/css-grid/alignment/grid-align-content-vertical-lr-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-align-content-vertical-rl-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-align-stretching-replaced-items-expected.txt:
- web-platform-tests/css/support/blue-100.png:
LayoutTests:
Remove outdated grid-align tests, that are being replaced by newer tests, adapted to the WPT project and imported
to the corresponding css-grid folder inside WebKit.
- fast/css-grid-layout/grid-align-content-vertical-lr-expected.txt: Removed.
- fast/css-grid-layout/grid-align-content-vertical-rl-expected.txt: Removed.
- fast/css-grid-layout/grid-align-stretching-replaced-items-expected.txt: Removed.
- fast/css-grid-layout/grid-align-stretching-replaced-items.html: Removed.
- fast/css-grid-layout/grid-align-content-vertical-lr.html: Removed.
- fast/css-grid-layout/grid-align-content-vertical-rl.html: Removed.
- 3:17 AM Changeset in webkit [255063] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix number of callee saved register count on MIPS
https://bugs.webkit.org/show_bug.cgi?id=206732
Patch by Paulo Matos <Paulo Matos> on 2020-01-24
Reviewed by Žan Doberšek.
MIPS has been issuing illegal instruction errors due to stack corruption.
This is caused by an incorrect number of CalleeSaveRegisterCount
that should be set to 3 since r254674.
- llint/LowLevelInterpreter.asm:
- 2:52 AM Changeset in webkit [255062] by
-
- 2 edits in trunk/Tools
Unreviewed WPE dependency bump.
- wpe/jhbuild.modules: Bump the libwpe checkout commit to include fixes
for configuration errors that can occur with older (but still supported)
CMake versions.
- 1:03 AM Changeset in webkit [255061] by
-
- 2 edits in trunk/Tools
Unreviewed GTK gardening. Mark /webkit/WebKitWebPage/get-uri as flaky
- TestWebKitAPI/glib/TestExpectations.json:
- 12:47 AM Changeset in webkit [255060] by
-
- 2 edits in trunk/Source/WebKit
[GTK] Reduce the maximum time we wait for draw events in DrawingMonitor
https://bugs.webkit.org/show_bug.cgi?id=206662
Reviewed by Carlos Alberto Lopez Perez.
1 second is too much, we can wait up to 100_ms instead and wait for the next frame after 16_ms. We should also
ensure there's a draw event since this is called from dispatchAfterEnsuringDrawing().
- UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp:
(WebKit::DrawingAreaProxyCoordinatedGraphics::DrawingMonitor::start):
(WebKit::DrawingAreaProxyCoordinatedGraphics::DrawingMonitor::didDraw):
- 12:37 AM Changeset in webkit [255059] by
-
- 9 edits2 adds in trunk
:matches() doesn't combine correctly with pseudo elements
https://bugs.webkit.org/show_bug.cgi?id=206654
Reviewed by Simon Fraser.
Source/WebCore:
:matches() has been renamed to :is() in the spec (https://www.w3.org/TR/selectors-4/#matches).
Update the :matches implementation to spec behavior regarding pseudo element handling.
"Pseudo-elements cannot be represented by the matches-any pseudo-class; they are not valid within :is()."
Selectors like
::matches(foo, .parent .child)::first-letter
should work while
::matches(:first-letter)
shoudn't match anything.
Test: fast/selectors/matches-with-pseudo-element.html
- css/SelectorChecker.cpp:
(WebCore::SelectorChecker::matchRecursively const):
(WebCore::SelectorChecker::checkOne const):
Don't provide pseudoId into ::matches subselectors. Pseudo elements are not suppported inside ::matches.
If one if found, fail that subselector.
- css/SelectorChecker.h:
LayoutTests:
Unskip fast/css/first-letter-and-float-crash.html which no longer hits assert due to this.
- fast/selectors/matches-with-pseudo-element-expected.html: Added.
- fast/selectors/matches-with-pseudo-element.html: Added.
- fast/css/currentColor-on-before-after-pseudo-elements.html:
- fast/css/matches-specificity-5.html:
- fast/selectors/pseudo-element-inside-matches-expected.html:
- fast/selectors/pseudo-element-inside-matches.html:
Update the existing tests to match the behavior.
- 12:23 AM Changeset in webkit [255058] by
-
- 13 edits in trunk
Make sure fetch tasks go to network if service worker never gets to activated
https://bugs.webkit.org/show_bug.cgi?id=206648
Reviewed by Chris Dumez.
Source/WebCore:
In case worker context process crashes, the SWServerWorker gets set to NotRunning.
If the SWServerWorker has pending activating completion handlers, they will never be called until the worker is destroyed.
But the worker may never be destroyed until its registration is destroyed.
This may trigger service worker fetch task hangs.
To fix this, make sure to call activating completion handlers whenever the SWServerWorker state is changed to either Terminating or NotRunning.
Covered by updated test.
- workers/service/server/SWServerWorker.cpp:
(WebCore::SWServerWorker::~SWServerWorker):
(WebCore::SWServerWorker::whenActivated):
(WebCore::SWServerWorker::setState):
- workers/service/server/SWServerWorker.h:
Source/WebKit:
In case activating completion handlers are not called, the fetch task timeout should kick in and make the load go to network process.
The issue is that our code was using the context connection to do so.
If the fetch task is waiting for the worker activation, the context connection might not be set and the timeout will be a no-op.
To fix this, the fetch task will do as if its context is closed when the timeout fires.
The fetck task now has a weak pointer to the WebSWServerConnection and will use to terminate the service worker as done previously.
We no longer handle all ongoing fetch tasks of the ongoing service worker.
Each individual fetch task timeout provides the same level of protection.
The service worker will anyway get terminated which will race to finalize the service worker fetch tasks with each of their timeout.
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
(WebKit::ServiceWorkerFetchTask::ServiceWorkerFetchTask):
(WebKit::ServiceWorkerFetchTask::timeoutTimerFired):
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::createFetchTask):
(WebKit::WebSWServerConnection::fetchTaskTimedOut):
- NetworkProcess/ServiceWorker/WebSWServerConnection.h:
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:
(WebKit::WebSWServerToContextConnection::fetchTaskTimedOut):
LayoutTests:
- http/wpt/service-workers/service-worker-spinning-activate.https-expected.txt:
- http/wpt/service-workers/service-worker-spinning-activate.https.html:
- 12:19 AM Changeset in webkit [255057] by
-
- 2 edits in trunk/Source/WebCore
Make sure DOMCacheStorage::retrieveCaches always calls its completionHandler
https://bugs.webkit.org/show_bug.cgi?id=206647
Reviewed by Chris Dumez.
- Modules/cache/DOMCacheStorage.cpp:
(WebCore::DOMCacheStorage::retrieveCaches):
In case of context being stopped, make sure the completion handler is still called.