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

Timeline



May 6, 2020:

11:36 PM Changeset in webkit [261270] by achristensen@apple.com
  • 7 edits
    1 add in trunk/Source/WebKit

Fix webkitpy tests after r261254
https://bugs.webkit.org/show_bug.cgi?id=211112

test.messages.in was accidentally deleted instead of moved, and messages_unittest.py needed to be told of the new locations of results.
The rest is just running the generator to update results.

  • Scripts/MessageNames.cpp:

(IPC::description):
(IPC::receiverName):
(IPC::isValidMessageName):

  • Scripts/MessageNames.h:
  • Scripts/testMessageReceiver.cpp:

(Messages::WebPage::GetPluginProcessConnection::send):
(Messages::WebPage::TestMultipleAttributes::send):
(WebKit::WebPage::didReceiveMessage):
(WebKit::WebPage::didReceiveSyncMessage):

  • Scripts/testMessages.h:

(Messages::WebPage::messageReceiverName):
(Messages::WebPage::LoadURL::name):
(Messages::WebPage::LoadURL::LoadURL):
(Messages::WebPage::LoadURL::arguments const):
(Messages::WebPage::LoadSomething::name):
(Messages::WebPage::LoadSomething::LoadSomething):
(Messages::WebPage::LoadSomething::arguments const):
(Messages::WebPage::TouchEvent::name):
(Messages::WebPage::TouchEvent::TouchEvent):
(Messages::WebPage::TouchEvent::arguments const):
(Messages::WebPage::AddEvent::name):
(Messages::WebPage::AddEvent::AddEvent):
(Messages::WebPage::AddEvent::arguments const):
(Messages::WebPage::LoadSomethingElse::name):
(Messages::WebPage::LoadSomethingElse::LoadSomethingElse):
(Messages::WebPage::LoadSomethingElse::arguments const):
(Messages::WebPage::DidReceivePolicyDecision::name):
(Messages::WebPage::DidReceivePolicyDecision::DidReceivePolicyDecision):
(Messages::WebPage::DidReceivePolicyDecision::arguments const):
(Messages::WebPage::Close::name):
(Messages::WebPage::Close::arguments const):
(Messages::WebPage::PreferencesDidChange::name):
(Messages::WebPage::PreferencesDidChange::PreferencesDidChange):
(Messages::WebPage::PreferencesDidChange::arguments const):
(Messages::WebPage::SendDoubleAndFloat::name):
(Messages::WebPage::SendDoubleAndFloat::SendDoubleAndFloat):
(Messages::WebPage::SendDoubleAndFloat::arguments const):
(Messages::WebPage::SendInts::name):
(Messages::WebPage::SendInts::SendInts):
(Messages::WebPage::SendInts::arguments const):
(Messages::WebPage::CreatePlugin::name):
(Messages::WebPage::CreatePlugin::CreatePlugin):
(Messages::WebPage::CreatePlugin::arguments const):
(Messages::WebPage::RunJavaScriptAlert::name):
(Messages::WebPage::RunJavaScriptAlert::RunJavaScriptAlert):
(Messages::WebPage::RunJavaScriptAlert::arguments const):
(Messages::WebPage::GetPlugins::name):
(Messages::WebPage::GetPlugins::GetPlugins):
(Messages::WebPage::GetPlugins::arguments const):
(Messages::WebPage::GetPluginProcessConnection::name):
(Messages::WebPage::GetPluginProcessConnection::GetPluginProcessConnection):
(Messages::WebPage::GetPluginProcessConnection::arguments const):
(Messages::WebPage::TestMultipleAttributes::name):
(Messages::WebPage::TestMultipleAttributes::arguments const):
(Messages::WebPage::TestParameterAttributes::name):
(Messages::WebPage::TestParameterAttributes::TestParameterAttributes):
(Messages::WebPage::TestParameterAttributes::arguments const):
(Messages::WebPage::TemplateTest::name):
(Messages::WebPage::TemplateTest::TemplateTest):
(Messages::WebPage::TemplateTest::arguments const):
(Messages::WebPage::SetVideoLayerID::name):
(Messages::WebPage::SetVideoLayerID::SetVideoLayerID):
(Messages::WebPage::SetVideoLayerID::arguments const):
(Messages::WebPage::DidCreateWebProcessConnection::name):
(Messages::WebPage::DidCreateWebProcessConnection::DidCreateWebProcessConnection):
(Messages::WebPage::DidCreateWebProcessConnection::arguments const):
(Messages::WebPage::InterpretKeyEvent::name):
(Messages::WebPage::InterpretKeyEvent::InterpretKeyEvent):
(Messages::WebPage::InterpretKeyEvent::arguments const):
(Messages::WebPage::DeprecatedOperation::name):
(Messages::WebPage::DeprecatedOperation::DeprecatedOperation):
(Messages::WebPage::DeprecatedOperation::arguments const):
(Messages::WebPage::ExperimentalOperation::name):
(Messages::WebPage::ExperimentalOperation::ExperimentalOperation):
(Messages::WebPage::ExperimentalOperation::arguments const):
(Messages::None::messageReceiverName): Deleted.

  • Scripts/testMessagesReplies.h:
  • Scripts/webkit/messages_unittest.py:
  • Scripts/webkit/test.messages.in: Added.
11:18 PM Changeset in webkit [261269] by Megan Gardner
  • 3 edits in trunk/Source/WebKit

Context Menus presented from the wrong location when presented from sub-frames
https://bugs.webkit.org/show_bug.cgi?id=211537
<rdar://problem/60390846>

Reviewed by Tim Horton.

The calculation for bounds for selection Information did not take frames into account,
so if a frame was used, the location would not be correct in the context of the whole
page, so the presentation location ended up being way off.

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel showDocumentPickerMenu]):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::boundsPositionInformation):
(WebKit::selectionPositionInformation):

10:37 PM Changeset in webkit [261268] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

Unreviewed, reverting r260737.

Change not needed after r261267.

Reverted changeset:

"[GTK] Gardening, skipping more inspector tests."
https://trac.webkit.org/changeset/260737

10:34 PM Changeset in webkit [261267] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

Unreviewed, reverting r260713.

Change not needed after r260844.

Reverted changeset:

"[GTK] Gardening, temporarily skip WebInspector tests after
r210942 and r260696"
https://bugs.webkit.org/show_bug.cgi?id=211035
https://trac.webkit.org/changeset/260713

10:12 PM Changeset in webkit [261266] by Diego Pino Garcia
  • 5 edits in trunk/LayoutTests

[GTK] Gardening, dump stderr in console log for several web-animation tests
https://bugs.webkit.org/show_bug.cgi?id=211549

Unreviewed gardening.

  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
10:08 PM Changeset in webkit [261265] by Lauro Moura
  • 2 edits in trunk/WebDriverTests

[WebDriver] gardening flaky test.

Unreviewed test gardening.

8:40 PM Changeset in webkit [261264] by Fujii Hironori
  • 5 edits
    2 adds in trunk/Source

[Win] Implement DisplayRefreshMonitor by using RunLoop::Timer
https://bugs.webkit.org/show_bug.cgi?id=211431

Reviewed by Don Olmstead.

Source/WebCore:

  • PlatformWin.cmake:
  • platform/graphics/DisplayRefreshMonitor.cpp:

(WebCore::DisplayRefreshMonitor::createDefaultDisplayRefreshMonitor):

  • platform/graphics/win/DisplayRefreshMonitorWin.cpp: Added.

(WebCore::DisplayRefreshMonitorWin::create):
(WebCore::DisplayRefreshMonitorWin::DisplayRefreshMonitorWin):
(WebCore::DisplayRefreshMonitorWin::requestRefreshCallback):
(WebCore::DisplayRefreshMonitorWin::displayLinkFired):

  • platform/graphics/win/DisplayRefreshMonitorWin.h: Added.

Source/WTF:

USE_REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR is turned off only for Windows ports.
Turn it on, and add DisplayRefreshMonitorWin.

I'll remove USE_REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR macro in a follow-up patch.

  • wtf/PlatformUse.h:
7:13 PM Changeset in webkit [261263] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r260689.
https://bugs.webkit.org/show_bug.cgi?id=211542

"Caused regressions deleting text and filling password fields"
(Requested by ddkilzer on #webkit).

Reverted changeset:

"WebPasteboardProxy::getPasteboardStringsForType() and
WebPasteboardProxy::readURLFromPasteboard() should check
return value of SharedMemory::createHandle()"
https://bugs.webkit.org/show_bug.cgi?id=211002
https://trac.webkit.org/changeset/260689

5:27 PM Changeset in webkit [261262] by dino@apple.com
  • 539 edits
    19 adds
    160 deletes in trunk/Source/ThirdParty/ANGLE

Update ANGLE to 2020-03-27
https://bugs.webkit.org/show_bug.cgi?id=209689

Reverting r259589. It caused
https://bugs.webkit.org/show_bug.cgi?id=210992

5:18 PM Changeset in webkit [261261] by Alan Bujtas
  • 7 edits in trunk/Source

[ContentObservation] Shutterstock search bar is not activated on the first tap
https://bugs.webkit.org/show_bug.cgi?id=211529
<rdar://problem/58843932>

Reviewed by Simon Fraser.

Source/WebCore:

  • page/Quirks.cpp:

(WebCore::Quirks::shouldIgnoreContentObservationForSyntheticClick const):

  • page/Quirks.h:

Source/WebKit:

Shutterstock has a “initial click” action which converts some “actionable” elements (<a>) to some other “actionable” elements (<button>).
If this initial click also happens to be on an element that triggers content observation (input), we see those changes as actionable content and not proceed with the click event (stay at hover).
Any subsequent click works as expected.
It’s very difficult to eliminate such false positives since all we see is that some "actionable" content is going away while some "actionable" content is being created.
This quirk ensures that the first tap on the page does not trigger content observation. (It also means that any hover menu gets submitted on the first tap, but apparently
the Shutterstock top menu bar works fine with click events.)

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didStartPageTransition):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::handleSyntheticClick):

5:00 PM Changeset in webkit [261260] by keith_miller@apple.com
  • 5 edits in trunk

DFG ByVal nodes with ArrayModes should clobberTop until Fixup phase runs.
https://bugs.webkit.org/show_bug.cgi?id=211531

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/for-of-get-by-val-marks-clobbers-exit-state.js: Added.

(foo):

  • stress/put-by-val-correctly-clobbers-exit-state-when-misprofiling-index.js: Added.

(let.foo.vm.createBuiltin):

Source/JavaScriptCore:

When parsing bytecode we may pick a relatively constrained
ArrayMode based on our profiling. Some of these modes may not
clobber exit state. However, Fixup sometimes wants to widen this
to a more generic mode based on other data. This causes us to
think it was valid to exit immediately after the
GetByVal/HasIndexedProperty, which would be wrong with the wider
ArrayMode. We may also incorrectly insert invalidition points
if clobberize gives us the wrong data.

To fix this clobberize should say All ByVal nodes clobberTop()
until after fixup. Additionally, this patch adds an assertion that
nodes don't go from not clobbering exit state to clobbering exit
state during fixup.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::performFixup):

  • dfg/DFGGraph.h:
4:50 PM Changeset in webkit [261259] by Wenson Hsieh
  • 11 edits
    1 copy in trunk/Source/WebKit

Use CocoaColor in more places instead of platform defines
https://bugs.webkit.org/show_bug.cgi?id=211527

Reviewed by Darin Adler and Tim Horton.

Use CocoaColor (added in r261247) in more places, and also introduce CocoaFont.h and use it to simplify some
existing code that uses platform ifdefs for UIFont, NSFont, UIFontDescriptor and NSFontDescriptor.

No change in behavior.

  • Platform/cocoa/CocoaColor.h:
  • Platform/cocoa/CocoaFont.h: Copied from Source/WebKit/Platform/cocoa/CocoaColor.h.
  • Platform/cocoa/CocoaImage.h:

Change @classes to OBJC_CLASS, so that this header can be safely imported in C++ code.

  • Shared/Cocoa/ArgumentCodersCocoa.mm:

(IPC::typeFromObject):
(IPC::isSerializableValue):
(IPC::encodeFontInternal):
(IPC::encodeObject):
(IPC::platformColorClass): Deleted.
(IPC::platformFontClass): Deleted.

  • Shared/Cocoa/CoreTextHelpers.h:
  • Shared/Cocoa/CoreTextHelpers.mm:

(WebKit::fontWithAttributes):

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
  • UIProcess/Cocoa/WKSafeBrowsingWarning.h:
  • UIProcess/Cocoa/WKSafeBrowsingWarning.mm:

(fontOfSize):
(colorForItem):
(-[WKSafeBrowsingBox setSafeBrowsingBackgroundColor:]):
(-[WKSafeBrowsingWarning showDetailsClicked]):
(-[WKSafeBrowsingTextView initWithAttributedString:forWarning:]):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::updateFontManagerIfNeeded):

  • WebKit.xcodeproj/project.pbxproj:
4:16 PM Changeset in webkit [261258] by Jack Lee
  • 3 edits
    2 adds in trunk

Nullptr crash in indentOutdentCommand::formatRange with asynchronous commands: indent and insert list.
https://bugs.webkit.org/show_bug.cgi?id=211466
<rdar://problem/62845430>

Reviewed by Geoffrey Garen.

Source/WebCore:

Check for null outerBlock returned by splitTreeToNode and bail out.

Test: fast/editing/indent-then-insertUL-crash.html

  • editing/IndentOutdentCommand.cpp:

(WebCore::IndentOutdentCommand::indentIntoBlockquote):

LayoutTests:

Added a regression test for the crash.

  • fast/editing/indent-then-insertUL-crash-expected.txt: Added.
  • fast/editing/indent-then-insertUL-crash.html: Added.
4:01 PM Changeset in webkit [261257] by Darin Adler
  • 11 edits in trunk/Source

Make a helper for the pattern of ICU functions that may need to be called twice to populate a buffer
https://bugs.webkit.org/show_bug.cgi?id=211499

Reviewed by Ross Kirsling.

Source/JavaScriptCore:

  • runtime/IntlDateTimeFormat.cpp:

(JSC::defaultTimeZone): Use callBufferProducingFunction.
(JSC::canonicalizeTimeZoneName): Ditto.
(JSC::IntlDateTimeFormat::initializeDateTimeFormat): Ditto.
(JSC::IntlDateTimeFormat::format const): Ditto.
(JSC::IntlDateTimeFormat::formatToParts const): Ditto.

  • runtime/IntlLocale.cpp:

(JSC::LocaleIDBuilder::toCanonical): Ditto.
(JSC::IntlLocale::language): Ditto.
(JSC::IntlLocale::script): Ditto.
(JSC::IntlLocale::region): Ditto.

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::format const): Ditto.
(JSC::IntlNumberFormat::formatToParts const): Ditto.

  • runtime/IntlObject.cpp:

(JSC::languageTagForLocaleID): Ditto.

  • runtime/IntlRelativeTimeFormat.cpp:

(JSC::IntlRelativeTimeFormat::formatInternal const): Ditto.
(JSC::IntlRelativeTimeFormat::formatToParts const): Ditto.

  • runtime/StringPrototype.cpp:

(JSC::toLocaleCase): Ditto.

Source/WebCore:

  • editing/TextIterator.cpp:

(WebCore::normalizeCharacters): Use callBufferProducingFunction.

Source/WTF:

This first cut version is ready to be used in most, but not all, of the places we use the
needsToGrowToProduceBuffer function. The places it is not right for yet are ones that have
special considerations because of null character termination or destinations that are
not a Vector. Later we can refine that further, if we like, and possibly use something
similar in call sites that use needsToGrowToProduceCString as well.

  • wtf/unicode/icu/ICUHelpers.h:

(WTF::needsToGrowToProduceBuffer): Changed to constexpr, since we can.
(WTF::needsToGrowToProduceCString): Ditto.
(WTF::CallBufferProducingFunction::findVector): Added. Implementation detail
of callBufferProducingFunction.
(WTF::CallBufferProducingFunction::argumentTuple): Ditto.
(WTF::callBufferProducingFunction): Added.

3:56 PM Changeset in webkit [261256] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

REGRESSION (r261056): [ Mac WK1 ] inspector/console/console-api.html is flaky crashing
https://bugs.webkit.org/show_bug.cgi?id=211386

Reviewed by Tim Horton.

This bug was caused by the failure to clear the delegate on an NSScrollerImp when, for testing,
we flip between the native scrollbar theme, and the mock scrollbar theme.

The crux of the fix is to have ScrollAnimatorMac's scrollerImpForScrollbar() call a
static function on ScrollbarThemeMac to get the painters, rather than going through
the possibly-null ScrollbarThemeMac instance.

A belt-and-braces fix in ScrollbarThemeMac::unregisterScrollbar() always clears the delegate
on the NSScrollerImp when unregistering a scrollbar.

Finally, modernize code in various places.

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::scrollerImpForScrollbar):
(WebCore::ScrollAnimatorMac::updateScrollerStyle):

  • platform/mac/ScrollbarThemeMac.h:
  • platform/mac/ScrollbarThemeMac.mm:

(WebCore::scrollbarMap):
(+[WebScrollbarPrefsObserver appearancePrefsChanged:]):
(WebCore::ScrollbarThemeMac::registerScrollbar):
(WebCore::ScrollbarThemeMac::unregisterScrollbar):
(WebCore::ScrollbarThemeMac::setNewPainterForScrollbar):
(WebCore::ScrollbarThemeMac::painterForScrollbar):
(WebCore::ScrollbarThemeMac::hasThumb):
(WebCore::ScrollbarThemeMac::minimumThumbLength):
(WebCore::ScrollbarThemeMac::updateEnabledState):
(WebCore::ScrollbarThemeMac::paint):

3:55 PM Changeset in webkit [261255] by Jack Lee
  • 3 edits
    2 adds in trunk

Nullptr crash in InsertListCommand::doApply with user-select:none elements
https://bugs.webkit.org/show_bug.cgi?id=211534
<rdar://problem/62898521>

Reviewed by Geoffrey Garen.

Source/WebCore:

Check for empty position in InsertListCommand::doApply when searching for the start of
last paragraph in the selected range. Skip listifying individual paragraphs in the range.

Test: editing/inserting/insert-list-user-select-none-crash.html

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::doApply):

LayoutTests:

Added a regression test for the crash.

  • editing/inserting/insert-list-user-select-none-crash-expected.txt: Added.
  • editing/inserting/insert-list-user-select-none-crash.html: Added.
3:54 PM Changeset in webkit [261254] by commit-queue@webkit.org
  • 65 edits
    2 copies
    9 moves
    2 adds
    3 deletes in trunk/Source

Reduce IPC overhead for message receiver name and message name to 2 bytes
https://bugs.webkit.org/show_bug.cgi?id=211112

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

Source/WebKit:

  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::didReceiveInvalidMessage):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage):
(WebKit::NetworkConnectionToWebProcess::didReceiveInvalidMessage):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::didReceiveMessage):
(WebKit::NetworkProcess::didReceiveSyncMessage):

  • NetworkProcess/ios/NetworkConnectionToWebProcessIOS.mm:

(WebKit::NetworkConnectionToWebProcess::paymentCoordinatorAddMessageReceiver): Deleted.
(WebKit::NetworkConnectionToWebProcess::paymentCoordinatorRemoveMessageReceiver): Deleted.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::WaitForMessageState::WaitForMessageState):
(IPC::Connection::addWorkQueueMessageReceiver):
(IPC::Connection::removeWorkQueueMessageReceiver):
(IPC::Connection::dispatchWorkQueueMessageReceiverMessage):
(IPC::Connection::addThreadMessageReceiver):
(IPC::Connection::removeThreadMessageReceiver):
(IPC::Connection::dispatchThreadMessageReceiverMessage):
(IPC::Connection::createSyncMessageEncoder):
(IPC::Connection::sendMessage):
(IPC::Connection::waitForMessage):
(IPC::Connection::sendSyncMessage):
(IPC::Connection::waitForSyncReply):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::dispatchSyncMessage):
(IPC::Connection::dispatchDidReceiveInvalidMessage):
(IPC::Connection::dispatchMessage):
(IPC::Connection::dispatchMessageToWorkQueueReceiver):
(IPC::Connection::dispatchMessageToThreadReceiver):
(IPC::Connection::dispatchIncomingMessages):

  • Platform/IPC/Connection.h:

(IPC::Connection::send):
(IPC::Connection::sendWithAsyncReply):
(IPC::Connection::sendSync):
(IPC::Connection::waitForAndDispatchImmediately):

  • Platform/IPC/Decoder.cpp:
  • Platform/IPC/Decoder.h:

(IPC::Decoder::messageReceiverName const):
(IPC::Decoder::messageName const):
(IPC::Decoder::decode):
(IPC::Decoder::operator>>):

  • Platform/IPC/Encoder.cpp:

(IPC::Encoder::Encoder):
(IPC::Encoder::encodeHeader):

  • Platform/IPC/Encoder.h:
  • Platform/IPC/HandleMessage.h:

(IPC::handleMessageAsync):

  • Platform/IPC/MessageReceiverMap.cpp:

(IPC::MessageReceiverMap::addMessageReceiver):
(IPC::MessageReceiverMap::removeMessageReceiver):
(IPC::MessageReceiverMap::dispatchMessage):
(IPC::MessageReceiverMap::dispatchSyncMessage):

  • Platform/IPC/MessageReceiverMap.h:
  • Platform/IPC/MessageSender.h:
  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::Connection::open):
(IPC::Connection::sendMessage):
(IPC::Connection::sendOutgoingMessage):
(IPC::Connection::receiveSourceEventHandler):

  • Platform/IPC/cocoa/MachMessage.cpp:

(IPC::MachMessage::create):
(IPC::MachMessage::MachMessage):

  • Platform/IPC/cocoa/MachMessage.h:

(IPC::MachMessage::messageReceiverName const):
(IPC::MachMessage::messageName const):

  • PluginProcess/WebProcessConnection.cpp:

(WebKit::WebProcessConnection::didReceiveInvalidMessage):

  • PluginProcess/WebProcessConnection.h:
  • Scripts/Makefile:
  • Scripts/generate-message-receiver.py:

(main):

  • Scripts/webkit/LegacyMessages-expected.h: Removed.
  • Scripts/webkit/LegacyMessagesReplies-expected.h: Removed.
  • Scripts/webkit/MessageNames.cpp: Added.

(IPC::description):

  • Scripts/webkit/MessageNames.h: Added.

(IPC::receiverName):
(WTF::isValidEnum):

  • Scripts/webkit/MessageReceiver-expected.cpp: Removed.
  • Scripts/webkit/MessageReceiverSuperclass-expected.cpp: Removed.
  • Scripts/webkit/Messages-expected.h: Removed.
  • Scripts/webkit/MessagesReplies-expected.h: Removed.
  • Scripts/webkit/MessagesRepliesSuperclassReplies-expected.h: Removed.
  • Scripts/webkit/MessagesSuperclass-expected.h: Removed.
  • Scripts/webkit/messages.py:
  • Scripts/webkit/test-legacy-messages.in: Removed.
  • Scripts/webkit/test-legacy.messages.in: Copied from Source/WebKit/Scripts/webkit/test-legacy-messages.in.
  • Scripts/webkit/test-legacyMessageReceiver.cpp: Added.

(Messages::WebPage::GetPluginProcessConnection::send):
(Messages::WebPage::TestMultipleAttributes::send):
(WebKit::WebPage::didReceiveWebPageMessage):
(WebKit::WebPage::didReceiveSyncWebPageMessage):

  • Scripts/webkit/test-legacyMessages.h: Added.

(Messages::WebPage::messageReceiverName):
(Messages::WebPage::LoadURL::name):
(Messages::WebPage::LoadURL::LoadURL):
(Messages::WebPage::LoadURL::arguments const):
(Messages::WebPage::LoadSomething::name):
(Messages::WebPage::LoadSomething::LoadSomething):
(Messages::WebPage::LoadSomething::arguments const):
(Messages::WebPage::TouchEvent::name):
(Messages::WebPage::TouchEvent::TouchEvent):
(Messages::WebPage::TouchEvent::arguments const):
(Messages::WebPage::AddEvent::name):
(Messages::WebPage::AddEvent::AddEvent):
(Messages::WebPage::AddEvent::arguments const):
(Messages::WebPage::LoadSomethingElse::name):
(Messages::WebPage::LoadSomethingElse::LoadSomethingElse):
(Messages::WebPage::LoadSomethingElse::arguments const):
(Messages::WebPage::DidReceivePolicyDecision::name):
(Messages::WebPage::DidReceivePolicyDecision::DidReceivePolicyDecision):
(Messages::WebPage::DidReceivePolicyDecision::arguments const):
(Messages::WebPage::Close::name):
(Messages::WebPage::Close::arguments const):
(Messages::WebPage::PreferencesDidChange::name):
(Messages::WebPage::PreferencesDidChange::PreferencesDidChange):
(Messages::WebPage::PreferencesDidChange::arguments const):
(Messages::WebPage::SendDoubleAndFloat::name):
(Messages::WebPage::SendDoubleAndFloat::SendDoubleAndFloat):
(Messages::WebPage::SendDoubleAndFloat::arguments const):
(Messages::WebPage::SendInts::name):
(Messages::WebPage::SendInts::SendInts):
(Messages::WebPage::SendInts::arguments const):
(Messages::WebPage::CreatePlugin::name):
(Messages::WebPage::CreatePlugin::CreatePlugin):
(Messages::WebPage::CreatePlugin::arguments const):
(Messages::WebPage::RunJavaScriptAlert::name):
(Messages::WebPage::RunJavaScriptAlert::RunJavaScriptAlert):
(Messages::WebPage::RunJavaScriptAlert::arguments const):
(Messages::WebPage::GetPlugins::name):
(Messages::WebPage::GetPlugins::GetPlugins):
(Messages::WebPage::GetPlugins::arguments const):
(Messages::WebPage::GetPluginProcessConnection::name):
(Messages::WebPage::GetPluginProcessConnection::GetPluginProcessConnection):
(Messages::WebPage::GetPluginProcessConnection::arguments const):
(Messages::WebPage::TestMultipleAttributes::name):
(Messages::WebPage::TestMultipleAttributes::arguments const):
(Messages::WebPage::TestParameterAttributes::name):
(Messages::WebPage::TestParameterAttributes::TestParameterAttributes):
(Messages::WebPage::TestParameterAttributes::arguments const):
(Messages::WebPage::TemplateTest::name):
(Messages::WebPage::TemplateTest::TemplateTest):
(Messages::WebPage::TemplateTest::arguments const):
(Messages::WebPage::SetVideoLayerID::name):
(Messages::WebPage::SetVideoLayerID::SetVideoLayerID):
(Messages::WebPage::SetVideoLayerID::arguments const):
(Messages::WebPage::DidCreateWebProcessConnection::name):
(Messages::WebPage::DidCreateWebProcessConnection::DidCreateWebProcessConnection):
(Messages::WebPage::DidCreateWebProcessConnection::arguments const):
(Messages::WebPage::InterpretKeyEvent::name):
(Messages::WebPage::InterpretKeyEvent::InterpretKeyEvent):
(Messages::WebPage::InterpretKeyEvent::arguments const):
(Messages::WebPage::DeprecatedOperation::name):
(Messages::WebPage::DeprecatedOperation::DeprecatedOperation):
(Messages::WebPage::DeprecatedOperation::arguments const):
(Messages::WebPage::ExperimentalOperation::name):
(Messages::WebPage::ExperimentalOperation::ExperimentalOperation):
(Messages::WebPage::ExperimentalOperation::arguments const):

  • Scripts/webkit/test-legacyMessagesReplies.h: Added.
  • Scripts/webkit/test-messages.in: Removed.
  • Scripts/webkit/test-superclass-messages.in: Removed.
  • Scripts/webkit/test-superclass.messages.in: Copied from Source/WebKit/Scripts/webkit/test-superclass-messages.in.
  • Scripts/webkit/test-superclassMessageReceiver.cpp: Added.

(Messages::WebPage::TestAsyncMessage::callReply):
(Messages::WebPage::TestAsyncMessage::cancelReply):
(Messages::WebPage::TestAsyncMessage::send):
(Messages::WebPage::TestAsyncMessageWithNoArguments::callReply):
(Messages::WebPage::TestAsyncMessageWithNoArguments::cancelReply):
(Messages::WebPage::TestAsyncMessageWithNoArguments::send):
(Messages::WebPage::TestAsyncMessageWithMultipleArguments::callReply):
(Messages::WebPage::TestAsyncMessageWithMultipleArguments::cancelReply):
(Messages::WebPage::TestAsyncMessageWithMultipleArguments::send):
(Messages::WebPage::TestSyncMessage::send):
(Messages::WebPage::TestSynchronousMessage::send):
(WebKit::WebPage::didReceiveMessage):
(WebKit::WebPage::didReceiveSyncMessage):

  • Scripts/webkit/test-superclassMessages.h: Added.

(Messages::WebPage::messageReceiverName):
(Messages::WebPage::LoadURL::name):
(Messages::WebPage::LoadURL::LoadURL):
(Messages::WebPage::LoadURL::arguments const):
(Messages::WebPage::TestAsyncMessage::name):
(Messages::WebPage::TestAsyncMessage::asyncMessageReplyName):
(Messages::WebPage::TestAsyncMessage::TestAsyncMessage):
(Messages::WebPage::TestAsyncMessage::arguments const):
(Messages::WebPage::TestAsyncMessageWithNoArguments::name):
(Messages::WebPage::TestAsyncMessageWithNoArguments::asyncMessageReplyName):
(Messages::WebPage::TestAsyncMessageWithNoArguments::arguments const):
(Messages::WebPage::TestAsyncMessageWithMultipleArguments::name):
(Messages::WebPage::TestAsyncMessageWithMultipleArguments::asyncMessageReplyName):
(Messages::WebPage::TestAsyncMessageWithMultipleArguments::arguments const):
(Messages::WebPage::TestSyncMessage::name):
(Messages::WebPage::TestSyncMessage::TestSyncMessage):
(Messages::WebPage::TestSyncMessage::arguments const):
(Messages::WebPage::TestSynchronousMessage::name):
(Messages::WebPage::TestSynchronousMessage::TestSynchronousMessage):
(Messages::WebPage::TestSynchronousMessage::arguments const):

  • Scripts/webkit/test-superclassMessagesReplies.h: Added.
  • Scripts/webkit/test.messages.in: Added.
  • Scripts/webkit/testMessageReceiver.cpp: Added.
  • Scripts/webkit/testMessages.h: Added.

(Messages::None::messageReceiverName):

  • Scripts/webkit/testMessagesReplies.h: Added.
  • Shared/ApplePay/WebPaymentCoordinatorProxy.h:
  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::WebPaymentCoordinatorProxy::WebPaymentCoordinatorProxy):
(WebKit::WebPaymentCoordinatorProxy::~WebPaymentCoordinatorProxy):

  • Shared/AuxiliaryProcess.cpp:

(WebKit::AuxiliaryProcess::addMessageReceiver):
(WebKit::AuxiliaryProcess::removeMessageReceiver):
(WebKit::AuxiliaryProcess::didReceiveInvalidMessage):

  • Shared/AuxiliaryProcess.h:

(WebKit::AuxiliaryProcess::addMessageReceiver):
(WebKit::AuxiliaryProcess::removeMessageReceiver):

  • Shared/Cocoa/AuxiliaryProcessCocoa.mm:

(WebKit::AuxiliaryProcess::didReceiveInvalidMessage):

  • SourcesCocoa.txt:
  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::addMessageReceiver):
(WebKit::AuxiliaryProcessProxy::removeMessageReceiver):
(WebKit::AuxiliaryProcessProxy::logInvalidMessage):

  • UIProcess/AuxiliaryProcessProxy.h:

(WebKit::AuxiliaryProcessProxy::addMessageReceiver):
(WebKit::AuxiliaryProcessProxy::removeMessageReceiver):
(WebKit::AuxiliaryProcessProxy::send):
(WebKit::AuxiliaryProcessProxy::sendWithAsyncReply):

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::paymentCoordinatorAddMessageReceiver): Deleted.
(WebKit::WebPageProxy::paymentCoordinatorRemoveMessageReceiver): Deleted.

  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::didReceiveInvalidMessage):

  • UIProcess/GPU/GPUProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didReceiveInvalidMessage):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Plugins/PluginProcessProxy.cpp:

(WebKit::PluginProcessProxy::didReceiveInvalidMessage):

  • UIProcess/Plugins/PluginProcessProxy.h:
  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::didReceiveMessage):

  • UIProcess/SuspendedPageProxy.cpp:

(WebKit::messageNamesToIgnoreWhileSuspended):
(WebKit::SuspendedPageProxy::didReceiveMessage):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::didReceiveInvalidMessage):
(WebKit::WebProcessPool::addMessageReceiver):
(WebKit::WebProcessPool::removeMessageReceiver):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::shouldSendPendingMessage):
(WebKit::WebProcessProxy::didReceiveInvalidMessage):

  • UIProcess/WebProcessProxy.h:
  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::didReceiveInvalidMessage):

  • WebProcess/GPU/GPUProcessConnection.h:
  • WebProcess/Inspector/WebInspector.h:
  • WebProcess/Inspector/WebInspectorUI.h:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::didReceiveInvalidMessage):

  • WebProcess/Network/NetworkProcessConnection.h:
  • WebProcess/Plugins/PluginProcessConnection.cpp:

(WebKit::PluginProcessConnection::didReceiveInvalidMessage):

  • WebProcess/Plugins/PluginProcessConnection.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::updateRendering):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::didReceiveMessage):

Source/WTF:

  • wtf/EnumTraits.h:
3:43 PM Changeset in webkit [261253] by Ryan Haddad
  • 13 edits
    2 deletes in trunk

Unreviewed, reverting r261239.

Caused fast/events/wheel-event-outside-body.html to assert on
macOS WK1

Reverted changeset:

"Add basic support for generating accurate wheel event
listener region"
https://bugs.webkit.org/show_bug.cgi?id=211512
https://trac.webkit.org/changeset/261239

3:05 PM Changeset in webkit [261252] by Chris Dumez
  • 11 edits in trunk/Source

REGRESSION (r260684): Reader background is lost after multitasking
https://bugs.webkit.org/show_bug.cgi?id=211533
<rdar://problem/62941837>

Unreviewed, revert r260684 due to regression.

Source/WebCore:

  • dom/EventTarget.cpp:

(WebCore::EventTarget::fireEventListeners):

  • page/FrameView.cpp:

(WebCore::FrameView::sendResizeEventIfNeeded):

  • page/Page.h:

(WebCore::Page::shouldFireResizeEvents const):
(WebCore::Page::setShouldFireResizeEvents):

Source/WebKit:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setShouldFireResizeEvents):

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

(-[WKApplicationStateTrackingView _willBeginSnapshotSequence]):
(-[WKApplicationStateTrackingView _didCompleteSnapshotSequence]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setShouldFireResizeEvents):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
2:54 PM Changeset in webkit [261251] by timothy_horton@apple.com
  • 1 edit
    2 adds in trunk/LayoutTests

Add a test for REGRESSION (r260753): Frequent crashes under TextIndicator's estimatedTextColorsForRange
https://bugs.webkit.org/show_bug.cgi?id=211532

Reviewed by Wenson Hsieh.

  • fast/text-indicator/text-indicator-estimated-color-with-implicit-newline-expected.txt: Added.
  • fast/text-indicator/text-indicator-estimated-color-with-implicit-newline.html: Added.

This test would trigger the null deref fixed in r261245.

1:59 PM Changeset in webkit [261250] by Kate Cheney
  • 5 edits
    3 adds in trunk

ResourceLoadStatistics data summary call should create a web process pool if one doesn't exist
https://bugs.webkit.org/show_bug.cgi?id=211520
<rdar://problem/59869619>

Reviewed by Chris Dumez.

Source/WebKit:

Ensures that a process pool and network process exist when requesting
resource load statistics data.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::getResourceLoadStatisticsDataSummary):

Tools:

Added API test coverage.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

Removed stray comment from previous test.

(TEST):

  • TestWebKitAPI/basicITPDatabase.db: Added.
  • TestWebKitAPI/basicITPDatabase.db-shm: Added.
  • TestWebKitAPI/basicITPDatabase.db-wal: Added.

New database resource with 2 entries: apple.com and webkit.org, with
webkit.org registered as a subframe of apple.com

1:35 PM Changeset in webkit [261249] by Keith Rollin
  • 3 edits in trunk/Source/WebKit

Better surfacing of the presenting parent PID in the Network process
https://bugs.webkit.org/show_bug.cgi?id=211495
<rdar://problem/62917205>

Reviewed by Youenn Fablet.

In Bug 205295, NetworkResourceLoader logging was improved, with one of
the changes being that the PID of parent process that invoked the
Network process was logged at the start of
NetworkResourceLoader::start(). However, there was an execution path
that skipped calling start()
(NetworkConnectionToWebProcess::scheduleResourceLoad ->
NetworkResourceLoader::startWithServiceWorker ->
serviceWorkerDidNotHandle -> restartNetworkLoad -> startNetworkLoad),
and so the the logging would not show the parent PID. This logging is
needed for diagnostic purposes, so tweak the logging a little bit more
in order to ensure we emit it. In this change, logging is added to
various loading-related NetworkConnectionToWebProcess entry points
(not just scheduleResourceLoad) in order to (a) ensure we emit the
logging we want and (b) to give a clearer picture of what operations
are being invoked in the Network process.

No new tests -- no new or changed functionality.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::hasUploadStateChanged):
(WebKit::NetworkConnectionToWebProcess::resolveBlobReferences):
(WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad):
(WebKit::NetworkConnectionToWebProcess::performSynchronousLoad):
(WebKit::NetworkConnectionToWebProcess::loadPing):
(WebKit::NetworkConnectionToWebProcess::preconnectTo):
(WebKit::NetworkConnectionToWebProcess::serverToContextConnectionNoLongerNeeded):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::start):

1:11 PM Changeset in webkit [261248] by Chris Fleizach
  • 16 edits
    1 add in trunk

AX: Implement accessibility of HTML 5.1 Drag & Drop
https://bugs.webkit.org/show_bug.cgi?id=211415
<rdar://problem/22695531>

Reviewed by Joanmarie Diggs.
Source/WebCore:

Support HTML5 drag and drop. Support dropzone attribute.
Add new notifications for VoiceOver to consume.

It appears that most of the dragging tests are skipped because of eventSender issues.
I think this test could do a little more if those issues were resolved. Specifically, not all
the notifications are seen that are expected.

Test: accessibility/mac/draggable.html

  • accessibility/AXObjectCache.h:
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::supportsARIAAttributes const):
(WebCore::AccessibilityObject::isAXHidden const):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::supportsDropping const):
(WebCore::AccessibilityRenderObject::supportsDragging const):
(WebCore::AccessibilityRenderObject::isGrabbed):
(WebCore::AccessibilityRenderObject::determineDropEffects):
(WebCore::AccessibilityRenderObject::supportsARIADropping const): Deleted.
(WebCore::AccessibilityRenderObject::supportsARIADragging const): Deleted.
(WebCore::AccessibilityRenderObject::isARIAGrabbed): Deleted.
(WebCore::AccessibilityRenderObject::determineARIADropEffects): Deleted.

  • accessibility/AccessibilityRenderObject.h:
  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::AXObjectCache::postPlatformNotification):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

  • html/HTMLAttributeNames.in:
  • page/EventHandler.cpp:

(WebCore::EventHandler::dispatchDragEvent):
(WebCore::EventHandler::draggingElement const):

  • page/EventHandler.h:

LayoutTests:

  • accessibility/mac/draggable-expected.txt: Added.
  • accessibility/mac/draggable.html: Added.
1:02 PM Changeset in webkit [261247] by Wenson Hsieh
  • 11 edits
    1 add in trunk

Cut and paste from Google Doc to Notes in several (non-Latin) languages doesn't work
https://bugs.webkit.org/show_bug.cgi?id=211498
<rdar://problem/56675345>

Reviewed by Darin Adler.

Source/WebCore:

When copying text in Google Docs, the page uses DataTransfer.setData to write text/html data to the system
pasteboard. This markup string includes a meta tag with charset="utf-8", indicating that the HTML string that
was copied should be interpreted as UTF-8 data.

However, before we write this data to the system pasteboard, we first sanitize it by loading it in a separate
page, and then build the final sanitized markup string to write by iterating over only visible content in the
main document of this page. Importantly, this last step skips over the meta element containing the charset.

Later, when pasting in Notes or TextEdit, both apps use -[NSAttributedString initWithData:...:] to convert the
HTML data on the pasteboard into an NSAttributedString. This takes the NSPasteboard's HTML data (a blob of
NSData) and synchronously loads it in a new legacy WebKit view by calling `-[WebFrame
loadData:MIMEType:textEncodingName:baseURL:], passing in nil` as the text encoding name. Since WebKit is only
given a blob of data and no particular encoding, we fall back to default Latin-1 encoding, which produces
gibberish for CJK text.

To fix this, we automatically insert a <meta charset="utf-8"> tag when writing HTML to the pasteboard, if the
sanitized markup contains non-ASCII characters.

Test: CopyHTML.SanitizationPreservesCharacterSet

  • Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp:

(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::sanitizeDataIfNeeded):

Pass in AddMetaCharsetIfNeeded::Yes.

  • dom/DataTransfer.cpp:

(WebCore::DataTransfer::setDataFromItemList):

Pass in AddMetaCharsetIfNeeded::Yes here too.

  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::sanitizeMarkupWithArchive):
(WebCore::WebContentReader::readHTML):
(WebCore::WebContentMarkupReader::readHTML):

  • editing/markup.cpp:

(WebCore::sanitizeMarkup):

Add a new enum so that we only add the extra meta tag when sanitizing content that is being written to the
system pasteboard through one of the clipboard DOM APIs.

(WebCore::sanitizedMarkupForFragmentInDocument):

  • editing/markup.h:

Source/WebKit:

Add a new header to allow Cocoa code to reason about UIColors and NSColors on iOS and macOS (respectively)
without requiring platform ifdefs. A followup patch will adopt this in several places in WebKit, where we
currently need ifdefs for iOS and macOS.

  • Platform/cocoa/CocoaColor.h: Added.
  • WebKit.xcodeproj/project.pbxproj:

Tools:

Add a test to verify that when writing markup to the clipboard via DOM API, if non-ASCII characters appear in
the written markup, they can still be converted to NSAttributedStrings containing the expected non-Latin text.

  • TestWebKitAPI/Configurations/Base.xcconfig:

Adjust header search paths so that we can import CocoaColor.h in WebKit.

  • TestWebKitAPI/Tests/WebKitCocoa/CopyHTML.mm:

(readHTMLDataFromPasteboard):
(readHTMLStringFromPasteboard):
(readHTMLFromPasteboard): Deleted.

12:57 PM Changeset in webkit [261246] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

pointermove event sometimes has incorrect pointerType of 'mouse' on touch interactions
https://bugs.webkit.org/show_bug.cgi?id=210716
<rdar://problem/62084817>

Patch by Antoine Quint <Antoine Quint> on 2020-05-06
Reviewed by Darin Adler.

Source/WebKit:

Set the SyntheticClickType to OneFingerTap when creating a synthetic "mousemove" event for a synthetic "click" event as part of a tap.
On top of being more indicative of the actual action that triggered the synthetic event, it also has the added quality that it will
not yield a "pointermove" event.

Test: pointerevents/ios/click-no-pointermove.html

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::dispatchSyntheticMouseMove):

LayoutTests:

Add a new test that checks that with content observation enabled a tap on a <button> element
dispatches synthetic mousemove and click events but no pointermove event.

  • pointerevents/ios/click-no-pointermove-expected.txt: Added.
  • pointerevents/ios/click-no-pointermove.html: Added.
  • pointerevents/utils.js:

(target_test):

12:36 PM Changeset in webkit [261245] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r260753): Frequent crashes under TextIndicator's estimatedTextColorsForRange
https://bugs.webkit.org/show_bug.cgi?id=211523
<rdar://problem/62860203>

Reviewed by Darin Adler.

  • page/TextIndicator.cpp:

(WebCore::estimatedTextColorsForRange):
TextIterator's node() getter can return null. r260753 accidentally refactored away the null check.

12:09 PM Changeset in webkit [261244] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Two 'tests' are running with out expectation files that are not real tests.
https://bugs.webkit.org/show_bug.cgi?id=208477

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations: Skip the test that seems to create these files.
12:09 PM Changeset in webkit [261243] by Ryan Haddad
  • 2 edits in trunk/Tools

REGRESSION (r260278): TestWebKitAPI.Fullscreen.Delegate is timing out on macOS bots
https://bugs.webkit.org/show_bug.cgi?id=210676

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/FullscreenAlert.mm:

(TestWebKitAPI::TEST): Skip the test to get the bots to green.

11:44 AM Changeset in webkit [261242] by wilander@apple.com
  • 38 edits
    7 adds in trunk

Exempt app-bound domains from ITP's website data deletion and third-party cookie blocking between themselves
https://bugs.webkit.org/show_bug.cgi?id=210674
<rdar://problem/61950767>

Reviewed by Chris Dumez.

Source/WebCore:

This change adds functionality to NetworkStorageSession to allow it to exempt
app-bound domains from third-party cookie blocking.

Tests: http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-cookie-blocking-between-each-other.html

http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-website-data-deletion-database.html
http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-website-data-deletion.html

  • platform/network/NetworkStorageSession.cpp:

(WebCore::NetworkStorageSession::shouldBlockCookies const):
(WebCore::NetworkStorageSession::shouldExemptDomainPairFromThirdPartyCookieBlocking const):
(WebCore::NetworkStorageSession::setAppBoundDomains):
(WebCore::NetworkStorageSession::resetAppBoundDomains):

  • platform/network/NetworkStorageSession.h:

Source/WebKit:

This change forwards information about app-bound domains to ITP and web
processes so that they can be exempt from website data deletion and
third-party cookie blocking between themselves.

App-bound domains are configured statically and apply to all website
data stores. Therefore the setting needs to be forwarded to all
website data stores and ITP functionality in all network and web
content processes. This is done through the new static function
WebsiteDataStore::setAppBoundDomainsForITPIfInitialized().

Since app-bound domains are loaded lazily from disk and on a background
thread, this patch forwards them in ResourceLoadStatisticsParameters if
they've already been loaded. Then every time app-bound domains are
updated, they are forwarded to ITP. This ensures that ITP will have them
as soon as possible.

Setting app-bound domains for the purposes of ITP automatically switches
ITP's cookie blocking policy to the new
WebCore::ThirdPartyCookieBlockingMode::AllExceptBetweenAppBoundDomains.
This is done in WebResourceLoadStatisticsStore::setAppBoundDomains().

The C API changes are for test purposes.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor):

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:

(WebKit::ResourceLoadStatisticsStore::setAppBoundDomains):
(WebKit::ResourceLoadStatisticsStore::resetParametersToDefaultValues):
(WebKit::ResourceLoadStatisticsStore::shouldExemptFromWebsiteDataDeletion const):

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:

(WebKit::ResourceLoadStatisticsStore::standaloneApplicationDomain const): Deleted.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::setAppBoundDomains):
(WebKit::WebResourceLoadStatisticsStore::resetParametersToDefaultValues):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::setAppBoundDomainsForResourceLoadStatistics):
(WebKit::NetworkProcess::setThirdPartyCookieBlockingMode):
(WebKit::NetworkProcess::setShouldBlockThirdPartyCookiesForTesting): Deleted.

Renamed setThirdPartyCookieBlockingMode.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

  • Shared/ResourceLoadStatisticsParameters.h:

(WebKit::ResourceLoadStatisticsParameters::encode const):
(WebKit::ResourceLoadStatisticsParameters::decode):

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreSetAppBoundDomainsForTesting):

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::setAppBoundDomainsForResourceLoadStatistics):
(WebKit::NetworkProcessProxy::setThirdPartyCookieBlockingMode):
(WebKit::NetworkProcessProxy::setShouldBlockThirdPartyCookiesForTesting): Deleted.

Renamed setThirdPartyCookieBlockingMode.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::setThirdPartyCookieBlockingMode):
(WebKit::WebProcessProxy::setShouldBlockThirdPartyCookiesForTesting): Deleted.

Renamed setThirdPartyCookieBlockingMode.

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::initializeAppBoundDomains):
(WebKit::WebsiteDataStore::ensureAppBoundDomains const):
(WebKit::WebsiteDataStore::appBoundDomainsIfInitialized):

This function allows fetching of app-bound domains without triggering
the lazy loading. This is just to allow speculative configuration of ITP
right when it's created — if any app-bound domains are already configured,
forward them to ITP via ResourceLoadStatisticsParameters.

(WebKit::WebsiteDataStore::setAppBoundDomainsForTesting):

This function is Cocoa-specific and only accepts localhost and 127.0.0.1
to be configured as app-bound domains.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::setResourceLoadStatisticsShouldBlockThirdPartyCookiesForTesting):
(WebKit::WebsiteDataStore::setThirdPartyCookieBlockingMode):
(WebKit::WebsiteDataStore::parameters):
(WebKit::WebsiteDataStore::forwardAppBoundDomainsToITPIfInitialized):
(WebKit::WebsiteDataStore::setAppBoundDomainsForITP):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setThirdPartyCookieBlockingMode):
(WebKit::WebProcess::setShouldBlockThirdPartyCookiesForTesting): Deleted.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:

Tools:

This change adds a new TestRunner function
setAppBoundDomain() which takes an array of origin
strings and sets them to app-bound domains.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::didReceiveMessageToPage):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setAppBoundDomains):
(WTR::TestRunner::didSetAppBoundDomainsCallback):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::AppBoundDomainsCallbackContext::AppBoundDomainsCallbackContext):
(WTR::didSetAppBoundDomainsCallback):
(WTR::TestController::setAppBoundDomains):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
(WTR::TestInvocation::didSetAppBoundDomains):

  • WebKitTestRunner/TestInvocation.h:

LayoutTests:

  • http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-cookie-blocking-between-each-other-expected.txt: Added.
  • http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-cookie-blocking-between-each-other.html: Added.
  • http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-website-data-deletion-database-expected.txt: Added.
  • http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-website-data-deletion-database.html: Added.
  • http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-website-data-deletion-expected.txt: Added.
  • http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-website-data-deletion.html: Added.
11:43 AM Changeset in webkit [261241] by aakash_jain@apple.com
  • 3 edits
    2 deletes in trunk/Tools

Delete code for feeder queue
https://bugs.webkit.org/show_bug.cgi?id=211518

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/tool/bot/feeders.py: Removed.
  • Scripts/webkitpy/tool/bot/feeders_unittest.py: Removed.
  • Scripts/webkitpy/tool/commands/queues.py:

(FeederQueue): Deleted.

  • Scripts/webkitpy/tool/commands/queues_unittest.py:

(TestFeederQueue): Deleted.
(FeederQueueTest): Deleted.
(PatchProcessingQueueTest): Deleted.

11:32 AM Changeset in webkit [261240] by dbates@webkit.org
  • 3 edits
    2 adds in trunk

[iOS] ASSERTION FAILED: !(_keyboardFlags & WebEventKeyboardInputModifierFlagsChanged) in -[WebEvent charactersIgnoringModifiers] when pressing modifier on PDF
https://bugs.webkit.org/show_bug.cgi?id=211472

Reviewed by Darin Adler.

Source/WebKit:

Do not ask for event character string for a flags changed event: they don't have one.

Test: fast/events/ios/pdf-modifer-key-down-crash.html

  • UIProcess/ios/WKKeyboardScrollingAnimator.mm:

(-[WKKeyboardScrollingAnimator keyboardScrollForEvent:]):

LayoutTests:

Add a test.

  • fast/events/ios/pdf-modifer-key-down-crash-expected.txt: Added.
  • fast/events/ios/pdf-modifer-key-down-crash.html: Added.
11:00 AM Changeset in webkit [261239] by Antti Koivisto
  • 13 edits
    2 adds in trunk

Add basic support for generating accurate wheel event listener region
https://bugs.webkit.org/show_bug.cgi?id=211512

Reviewed by Simon Fraser.

Source/WebCore:

Add fake properties for wheel event listeners to RenderStyle and use them to
generate regions in EventRegion. There is a separate region for non-passive
wheel event listeners (that will require synchronous handling).

The generated regions are not used for anything in this patch.
Style is not yet invalided on event listener additions and removals.

Test: fast/scrolling/mac/wheel-event-listener-region-basic.html

  • dom/Node.h:
  • rendering/EventRegion.cpp:

(WebCore::EventRegion::unite):
(WebCore::EventRegion::uniteEventListeners):
(WebCore::EventRegion::dump const):

  • rendering/EventRegion.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateEventRegion):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::eventListenerRegionTypes const):
(WebCore::RenderStyle::setEventListenerRegionTypes):

  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleRareInheritedData.cpp:

(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator== const):

  • rendering/style/StyleRareInheritedData.h:
  • style/StyleAdjuster.cpp:

(WebCore::Style::computeEventListenerRegionTypes):
(WebCore::Style::Adjuster::adjust const):

LayoutTests:

  • fast/scrolling/mac/wheel-event-listener-region-basic-expected.txt: Added.
  • fast/scrolling/mac/wheel-event-listener-region-basic.html: Added.
10:32 AM Changeset in webkit [261238] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[MacCatalyst] Processes should check for network entitlement as we do for macOS apps
https://bugs.webkit.org/show_bug.cgi?id=211474
<rdar://problem/61182060>

Reviewed by Alexey Proskuryakov.

We should make the same entitlement checks in MacCatalyst as we do for macOS.

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:

(WebKit::XPCServiceInitializerDelegate::checkEntitlements):

10:14 AM Changeset in webkit [261237] by Devin Rousso
  • 9 edits in trunk/Source/WebInspectorUI

Web Inspector: Layers: the text at the bottom of the details sidebar can get squished
https://bugs.webkit.org/show_bug.cgi?id=211486

Reviewed by Brian Burg.

  • UserInterface/Views/Sidebar.js:

(WI.Sidebar.prototype.get minimumWidth):
Ask both the this._navigationBar and this._selectedSidebarPanel instead of just one.

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:

(WI.GeneralStyleDetailsSidebarPanel.prototype.get minimumWidth): Added.

  • UserInterface/Views/ComputedStyleDetailsPanel.js:

(WI.ComputedStyleDetailsPanel.prototype.get minimumWidth): Addede.

  • UserInterface/Views/BoxModelDetailsSectionRow.js:

(WI.BoxModelDetailsSectionRow):
(WI.BoxModelDetailsSectionRow.prototype.get minimumWidth): Added.
(WI.BoxModelDetailsSectionRow.prototype._updateMetrics):

  • UserInterface/Views/BoxModelDetailsSectionRow.css:

(.details-section .row.box-model):
Keep track of the outermost box and provide a way to report its width.

  • UserInterface/Views/LayerDetailsSidebarPanel.js:

(WI.LayerDetailsSidebarPanel):
(WI.LayerDetailsSidebarPanel.prototype.get minimumWidth): Added.
(WI.LayerDetailsSidebarPanel.prototype._buildBottomBar):
(WI.LayerDetailsSidebarPanel.prototype._updateBottomBar):

  • UserInterface/Views/LayerDetailsSidebarPanel.css:

(.panel.details.layer .bottom-bar):
(.panel.details.layer .bottom-bar > div):
Cache the width of the items in the bottom bar and use it in get minimumWidth.

9:38 AM WebKitGTK/Debugging edited by Philippe Normand
(diff)
9:36 AM WebKitGTK/Debugging edited by Philippe Normand
(diff)
9:30 AM Changeset in webkit [261236] by Chris Dumez
  • 2 edits in trunk/LayoutTests

fast/overflow/horizontal-scroll-after-back.html is a flaky timeout on macOS
https://bugs.webkit.org/show_bug.cgi?id=211515
<rdar://problem/61180247>

Reviewed by Darin Adler.

Update test to navigate to fast/history/resources/page-cache-helper.html instead of
a data URL which calls history.back() on load. Unlike the data URL, page-cache-helper.html
only navigates back in a 0-timer after the load event has fired. This is important to
guarantee that the current history item has been created before navigating back. If we
navigate back too early, then the current history item is still the one for the previous
page and we end up navigating back to the previous test, which would cause the timeout.

  • fast/overflow/horizontal-scroll-after-back.html:
9:29 AM Changeset in webkit [261235] by Alexey Shvayka
  • 5 edits
    9 deletes in trunk/LayoutTests

Remove orphaned WPT expectations & unused harness
https://bugs.webkit.org/show_bug.cgi?id=211454

Reviewed by Darin Adler.

  1. wpt/html/dom/interfaces was renamed to wpt/html/dom/idlharness.
  2. wpt/dom/nodes/Document-createEvent was superseded by HTTPS version.
  3. w3c/resources/WebIDLParser.js is unused.

LayoutTests/imported/w3c:

  • resources/WebIDLParser.js: Removed.
  • web-platform-tests/dom/nodes/Document-createEvent-expected.txt: Removed.
  • web-platform-tests/html/dom/interfaces-expected.txt: Removed.
  • web-platform-tests/html/dom/interfaces.worker-expected.txt: Removed.
  • web-platform-tests/html/dom/interfaces.worker.html: Removed.

LayoutTests:

  • TestExpectations:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/interfaces.worker-expected.txt: Removed.
  • platform/ios/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt: Removed.
  • platform/mac-wk1/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/dom/nodes/Document-createEvent-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt: Removed.
  • tests-options.json:
9:24 AM Changeset in webkit [261234] by Darin Adler
  • 6 edits in trunk/Source

Remove now-unneeded USE(GRAMMAR_CHECKING)
https://bugs.webkit.org/show_bug.cgi?id=211452

Reviewed by Anders Carlsson.

Source/WebCore:

  • editing/Editor.cpp:

(WebCore::Editor::advanceToNextMisspelling): Remove USE(GRAMMAR_CHECKING).
(WebCore::Editor::isSelectionUngrammatical): Ditto.
(WebCore::Editor::markMisspellingsOrBadGrammar): Ditto.
(WebCore::Editor::markBadGrammar): Ditto.

  • editing/TextCheckingHelper.cpp:

(WebCore::TextCheckingHelper::markAllBadGrammar): Ditto.
(WebCore::checkTextOfParagraph): Ditto. Also correct misspelling of the
word "misspelling".

  • editing/TextCheckingHelper.h: Ditto.

Source/WTF:

  • wtf/PlatformUse.h: Don't set USE_GRAMMAR_CHECKING.
9:15 AM Changeset in webkit [261233] by Devin Rousso
  • 24 edits in trunk/Source

ASSERT_WITH_MESSAGE(m_isOwnedByMainThread == isMainThread()) when web inspecting
https://bugs.webkit.org/show_bug.cgi?id=203638
<rdar://problem/56761893>

Reviewed by Brian Burg.

Source/JavaScriptCore:

Mark the InspectorEnvironment::executionStopwatch abstract function as const and have it
return a Stopwatch& instead of a RefPtr<Stopwatch>& as callers assume that it exists.
By not using a RefPtr, an additional copyRef can be avoided.

  • inspector/InspectorEnvironment.h:
  • inspector/JSGlobalObjectInspectorController.h:
  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::executionStopwatch const): Added.
(Inspector::JSGlobalObjectInspectorController::executionStopwatch): Deleted.

  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::didPause):
(Inspector::InspectorDebuggerAgent::breakpointActionProbe):
(Inspector::InspectorDebuggerAgent::didContinue):

  • inspector/agents/InspectorHeapAgent.cpp:

(Inspector::InspectorHeapAgent::snapshot):
(Inspector::InspectorHeapAgent::willGarbageCollect):
(Inspector::InspectorHeapAgent::didGarbageCollect):

  • inspector/agents/InspectorScriptProfilerAgent.cpp:

(Inspector::InspectorScriptProfilerAgent::startTracking):
(Inspector::InspectorScriptProfilerAgent::willEvaluateScript):
(Inspector::InspectorScriptProfilerAgent::didEvaluateScript):
(Inspector::InspectorScriptProfilerAgent::trackingComplete):

  • runtime/SamplingProfiler.h:
  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::SamplingProfiler):

  • runtime/VM.h:
  • runtime/VM.cpp:

(JSC::VM::ensureSamplingProfiler):

Source/WebCore:

Mark the InspectorEnvironment::executionStopwatch abstract function as const and have it
return a Stopwatch& instead of a RefPtr<Stopwatch>& as callers assume that it exists.
By not using a RefPtr, an additional copyRef can be avoided.

  • inspector/InspectorController.h:
  • inspector/InspectorController.cpp:

(WebCore::InspectorController::executionStopwatch const): Added.
(WebCore::InspectorController::executionStopwatch): Deleted.

  • inspector/WorkerInspectorController.h:

(WebCore::WorkerInspectorController::executionStopwatch const): Added.
(WebCore::WorkerInspectorController::executionStopwatch): Deleted.

  • inspector/agents/InspectorAnimationAgent.cpp:

(WebCore::InspectorAnimationAgent::startTracking):
(WebCore::InspectorAnimationAgent::stopTracking):
(WebCore::InspectorAnimationAgent::willApplyKeyframeEffect):
(WebCore::InspectorAnimationAgent::stopTrackingDeclarativeAnimation):

  • inspector/agents/InspectorCPUProfilerAgent.cpp:

(WebCore::InspectorCPUProfilerAgent::startTracking):
(WebCore::InspectorCPUProfilerAgent::stopTracking):
(WebCore::InspectorCPUProfilerAgent::collectSample):

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::mediaMetricsTimerFired):

  • inspector/agents/InspectorMemoryAgent.cpp:

(WebCore::InspectorMemoryAgent::startTracking):
(WebCore::InspectorMemoryAgent::stopTracking):
(WebCore::InspectorMemoryAgent::didHandleMemoryPressure):
(WebCore::InspectorMemoryAgent::collectSample):

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::buildObjectForTiming):
(WebCore::InspectorNetworkAgent::timestamp):
(WebCore::InspectorNetworkAgent::didFinishLoading):

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::enable):
(WebCore::InspectorPageAgent::timestamp):

  • inspector/agents/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::timestamp):

Source/WTF:

  • wtf/Stopwatch.h:

(WTF::Stopwatch::elapsedTime const): Added.
(WTF::Stopwatch::elapsedTimeSince const): Added.
(WTF::Stopwatch::elapsedTime): Deleted.
(WTF::Stopwatch::elapsedTimeSince): Deleted.

9:01 AM Changeset in webkit [261232] by Darin Adler
  • 29 edits in trunk

Eliminate checks of USE(DICTATION_ALTERNATIVES) in Cocoa-specific code
https://bugs.webkit.org/show_bug.cgi?id=211460

Reviewed by Anders Carlsson.

Source/WebCore:

  • editing/cocoa/AlternativeTextContextController.h: Remove USE(DICTATION_ALTERNATIVES).

Also remove unnecessary use of RetainPtr and add a FIXME. Also remove #pragma once
since this header is only imported from Objective-C++ sources.

  • editing/cocoa/AlternativeTextContextController.mm: Ditto.
  • editing/cocoa/AlternativeTextUIController.h: Ditto.
  • editing/cocoa/AlternativeTextUIController.mm: Ditto.
  • editing/mac/TextAlternativeWithRange.h: Ditto.
  • editing/mac/TextAlternativeWithRange.mm: Ditto.

Source/WebKit:

  • UIProcess/Cocoa/PageClientImplCocoa.h: Remove USE(DICTATION_ALTERNATIVES).

Also remove unnecessary use of RetainPtr.

  • UIProcess/Cocoa/PageClientImplCocoa.mm:

(WebKit::PageClientImplCocoa::PageClientImplCocoa): Ditto.
(WebKit::PageClientImplCocoa::pageClosed): Ditto.
(WebKit::PageClientImplCocoa::dictationAlternatives): Ditto.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::insertDictatedTextAsync): Ditto.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::validAttributesForMarkedText): Ditto.
(WebKit::WebViewImpl::insertText): Ditto.

  • UIProcess/PageClient.h: Ditto.
  • UIProcess/ios/PageClientImplIOS.h: Ditto.
  • UIProcess/ios/PageClientImplIOS.mm: Ditto.
  • UIProcess/ios/WKContentViewInteraction.mm: Ditto.
  • UIProcess/mac/PageClientImplMac.h: Ditto.
  • UIProcess/mac/PageClientImplMac.mm: Ditto.
  • WebProcess/WebCoreSupport/mac/WebAlternativeTextClient.cpp: Ditto.

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebAlternativeTextClient.h: Removed USE(DICTATION_ALTERNATIVES).
  • WebCoreSupport/WebAlternativeTextClient.mm:

(WebAlternativeTextClient::dictationAlternatives): Ditto.

  • WebView/WebHTMLView.mm: Ditto.
  • WebView/WebView.mm: Ditto. Also use modern for loop.
  • WebView/WebViewData.h: Ditto.
  • WebView/WebViewData.mm: Ditto.
  • WebView/WebViewInternal.h: Ditto.

Tools:

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm: Remove USE(DICTATION_ALTERNATIVES).
8:39 AM Changeset in webkit [261231] by Pablo Saavedra
  • 8 edits in trunk/Tools

Python3: Support Python3 in Tools/webkitpy/benchmark_runner
https://bugs.webkit.org/show_bug.cgi?id=211249

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/benchmark_runner/benchmark_builder.py:

(BenchmarkBuilder._fetch_remote_archive):

  • Scripts/webkitpy/benchmark_runner/benchmark_results.py:

(BenchmarkResults._format_values):
(BenchmarkResults._subtest_values_by_config_iteration):

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(istext):
(BenchmarkRunner._run_benchmark):
(BenchmarkRunner._merge):
(BenchmarkRunner.show_results):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:

(OSXSafariDriver.launch_url):

  • Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py:

(HTTPServerDriver):

  • Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:

(SimpleHTTPServerDriver.serve):
(SimpleHTTPServerDriver._wait_for_http_server):

  • Scripts/webkitpy/benchmark_runner/run_benchmark.py:

(parse_args):
(list_benchmark_plans):

  • Scripts/webkitpy/style/checker.py:

(CheckerDispatcher._create_checker):

8:32 AM Changeset in webkit [261230] by Lauro Moura
  • 3 edits in trunk/Source/WebKit

[GTK] Cleanup KeyBindingTranslator on WebView disposal
https://bugs.webkit.org/show_bug.cgi?id=211465

Reviewed by Carlos Garcia Campos.

Fixes assertion in debug mode when a test failed and the widget
followed a destruction pattern where KeyBindingTranslator would be
destroyed before the container widget is cleaned up.

Also renamed the method from 'destroyed' to 'invalidate' to try to
better convey the action being performed on the KeyBindingTranslator.

Covered by existing tests.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseContainerRemove): Update method name.
(webkitWebViewBaseDispose): Cleanup keyBindingTranslator when
disposing this widget.

  • UIProcess/gtk/KeyBindingTranslator.h:

(WebKit::KeyBindingTranslator::invalidate): Renamed from destroyed.
(WebKit::KeyBindingTranslator::destroyed): Deleted.

8:30 AM Changeset in webkit [261229] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Factor EventHandler code that sends mouseEnteredContentArea/mouseExitedContentArea into its own function
https://bugs.webkit.org/show_bug.cgi?id=211494

Reviewed by Antti Koivisto.

mouseEnteredContentArea/mouseEnteredContentArea are used only to notify overlay scrollbars
of state changes. Factor the code that calls these functions into a separate EventHandler
function, and refactor it for clarity, now we know that both lastElementUnderMouse and elementUnderMouse
must belong to this EventHandler's Frame's Document.

  • page/EventHandler.cpp:

(WebCore::EventHandler::updateMouseEventTargetNode):
(WebCore::EventHandler::notifyScrollableAreasOfMouseEnterExit):

  • page/EventHandler.h:
8:00 AM Changeset in webkit [261228] by Darin Adler
  • 5 edits in trunk/Source

Reduce HAVE(HOSTED_CORE_ANIMATION)
https://bugs.webkit.org/show_bug.cgi?id=211423

Reviewed by Anders Carlsson.

Source/WebKit:

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess): Removed redundant #if
checking both HAVE(HOSTED_CORE_ANIMATION) and !PLATFORM(IOS_FAMILY).

  • UIProcess/Plugins/mac/PluginProcessProxyMac.mm:

(WebKit::PluginProcessProxy::platformInitializePluginProcess): Removed unnecessary
HAVE(HOSTED_CORE_ANIMATION) check in code that is only compiled for macOS.

Source/WTF:

  • wtf/PlatformHave.h: Simplified conditional to just PLATFORM(MAC)

for HOSTED_CORE_ANIMATION.

7:30 AM Changeset in webkit [261227] by aakash_jain@apple.com
  • 5 edits
    2 deletes in trunk/Tools

Delete code for QueueStatusServer
https://bugs.webkit.org/show_bug.cgi?id=211504

Reviewed by Jonathan Bedard.

  • QueueStatusServer: Removed.
  • BuildSlaveSupport/ews-build/steps.py:

(CheckPatchRelevance): Removed QueueStatusServer.

  • Scripts/webkitpy/tool/steps/checkpatchrelevance.py:

(CheckPatchRelevance): Removed QueueStatusServer.

  • Scripts/webkitpy/common/net/statusserver.py: Removed implementation of most methods. Will delete it completely

in subsequent patch along-with all its callers.

  • Scripts/webkitpy/common/net/statusserver_unittest.py: Removed.
  • Scripts/webkitpy/test/main.py:
7:18 AM Changeset in webkit [261226] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC] BlockFormattingContext::computeHeightAndMargin should special case the table box
https://bugs.webkit.org/show_bug.cgi?id=211493

Reviewed by Antti Koivisto.

By the time we get to BlockFormattingContext::computeHeightAndMargin(), the used valued for the table height is already been computed.
(Table box height is mostly content driven, and both the computed height and the min/max pair are taken into account
while we are laying out the table content).

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):

7:15 AM Changeset in webkit [261225] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r261163): [ Mac WK2 ] webrtc/libwebrtc/descriptionGetters.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=211455
<rdar://problem/62895451>

Reviewed by Eric Carlson.

  • webrtc/libwebrtc/descriptionGetters.html:

Sanitize SDP before comparison as port information and candidates are no longer blocked by main thread.

7:04 AM Changeset in webkit [261224] by commit-queue@webkit.org
  • 2 edits
    4 adds in trunk/Source/WebCore

Add watchOS media controls assets
https://bugs.webkit.org/show_bug.cgi?id=211508
<rdar://problem/62926565>

Patch by Antoine Quint <Antoine Quint> on 2020-05-06
Reviewed by Eric Carlson.

  • Modules/modern-media-controls/images/watchOS/ActivityIndicatorSpriteCompact@2x.png: Added.
  • Modules/modern-media-controls/images/watchOS/InvalidCompact.pdf: Added.
  • Modules/modern-media-controls/images/watchOS/PlayCompact.pdf: Added.
  • WebCore.xcodeproj/project.pbxproj:
7:04 AM Changeset in webkit [261223] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][BFC] FormattingContext::ConstraintsForInFlowContent should include the computed value of height
https://bugs.webkit.org/show_bug.cgi?id=211487

Reviewed by Antti Koivisto.

When the formatting context root has fixed height, the computed value should be passed in to the formatting context layout
as the available vertical space.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::constraintsForInFlowContent):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraVerticalSpace):

6:33 AM Changeset in webkit [261222] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening, expected to fail but passed
https://bugs.webkit.org/show_bug.cgi?id=211510

Unreviewed gardening.

  • platform/gtk/TestExpectations:
6:05 AM Changeset in webkit [261221] by Diego Pino Garcia
  • 6 edits
    6 adds
    2 deletes in trunk/LayoutTests

[WPE] Gardening, update baselines after r261219
https://bugs.webkit.org/show_bug.cgi?id=211507

Unreviewed gardening.

  • platform/wpe/fast/css/font-face-opentype-expected.txt: Updated after r261190.
  • platform/wpe/fast/xmlhttprequest/xmlhttprequest-nonexistent-file-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/css/css-animations/Element-getAnimations.tentative-expected.txt: Added after r260139.
  • platform/wpe/imported/w3c/web-platform-tests/css/css-animations/animation-base-response-001-expected.txt: Added after r260662.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/pservers-grad-08-b-manual-expected.txt: Updated after r261191.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/text-altglyph-01-b-manual-expected.txt: Updated after r261191.
  • platform/wpe/imported/w3c/web-platform-tests/wasm/jsapi/global/value-set.any-expected.txt: Added after r260690.
  • platform/wpe/imported/w3c/web-platform-tests/wasm/jsapi/global/value-set.any.worker-expected.txt: Added after r260690.
  • platform/wpe/storage/domstorage/sessionstorage/blocked-file-access-expected.txt: Removed.
  • platform/wpe/svg/batik/text/xmlSpace-expected.txt: Updated after r261154.
2:30 AM Changeset in webkit [261220] by svillar@igalia.com
  • 10 edits
    3 adds in trunk

[WebXR] Implement isSessionSupported()
https://bugs.webkit.org/show_bug.cgi?id=211187

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/webxr/xrDevice_isSessionSupported_immersive.https-expected.txt: Added.
  • web-platform-tests/webxr/xrDevice_isSessionSupported_immersive_unsupported.https-expected.txt: Added.
  • web-platform-tests/webxr/xrDevice_isSessionSupported_inline.https-expected.txt: Added.

Source/WebCore:

The isSessionSupported() method queries if a given mode may be supported
by the UA and device capabilities. Apart from the needed machinery in
the webxr Module we're adding an OpenXR implementation of the
enumerateImmersiveXRDevices() method required by isSessionSupported().

The method is not completely implemented as it lacks a few action at its
very end, like firing events. They'll be implemented in follow up
patches as they require additional changes.

Some OpenXR runtimes as Monado always enumerate at least one device even
if none is connected. This dummy device might interfere with tests
execution (as there will be more devices than expected) so we're adding
a testMode to WebXRSystem which does not query platform for existing
devices.

Added expected results and unskipped some WPT that are now passing.

  • Modules/webxr/WebXRSystem.cpp:

(WebCore::WebXRSystem::ensureImmersiveXRDeviceIsSelected): Asks platform
code for the list of attached XR devices and properly set the active
immersive device if any.
(WebCore::WebXRSystem::isSessionSupported): Partially implemented.
(WebCore::WebXRSystem::registerSimulatedXRDeviceForTesting): Set the
passed in mock device as either the current active immersive or inline
device.
(WebCore::WebXRSystem::unregisterSimulatedXRDeviceForTesting): Removes
the passed in mock device from the list of immersive devices.

  • Modules/webxr/WebXRSystem.h:
  • html/FeaturePolicy.cpp:

(WebCore::policyTypeName): Handle XRSpatialTracking.
(WebCore::FeaturePolicy::parse): Parse "xr-spatial-tracking".
(WebCore::FeaturePolicy::allows const): Handle XRSpatialTracking.

  • html/FeaturePolicy.h: Added XRSpatialTracking.
  • platform/xr/PlatformXR.h:

(PlatformXR::Instance::immersiveXRDevices const): Keep a list of immersive devices.

  • platform/xr/openxr/PlatformXR.cpp:

(PlatformXR::Instance::Impl::collectSupportedSessionModes): Gather supported session
modes for a given device from OpenXR.
(PlatformXR::Instance::enumerateImmersiveXRDevices): Collect devices from OpenXR. We
are currently asking for HMD devices.

LayoutTests:

  • platform/wpe/TestExpectations: Added some skipped tests that are now passing.
1:28 AM Changeset in webkit [261219] by Diego Pino Garcia
  • 6 edits
    2 adds in trunk/LayoutTests

GTK] Gardening, update expectations and baselines after r261191
https://bugs.webkit.org/show_bug.cgi?id=211502

Unreviewed gardening.

embedded-credentials.tentative.sub-expected.txt is passing more tests
than the general baseline since r260937.

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/css/font-face-opentype-expected.txt: Updated after r261190.
  • platform/gtk/imported/w3c/web-platform-tests/fetch/security/embedded-credentials.tentative.sub-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/svg/import/pservers-grad-08-b-manual-expected.txt: Updated after r261191.
  • platform/gtk/imported/w3c/web-platform-tests/svg/import/text-altglyph-01-b-manual-expected.txt: Updated after r261191.
  • platform/gtk/svg/batik/text/xmlSpace-expected.txt: Updated after r261154.
1:09 AM Changeset in webkit [261218] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

[Web Animations] Coordinate "update animations and send events" procedure across multiple timelines
https://bugs.webkit.org/show_bug.cgi?id=202109

Unreviewed.

Remove an unused function.

  • animation/AnimationTimeline.h:

(WebCore::AnimationTimeline::allAnimations const): Deleted.

1:06 AM Changeset in webkit [261217] by graouts@webkit.org
  • 6 edits in trunk

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):

May 5, 2020:

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

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

Unreviewed gardening.

These failures started to happen once the GTK Test bot was
switched to Flatpak, which occurred on build #13542 (r260889).

  • platform/gtk/TestExpectations:
11:01 PM Changeset in webkit [261215] by Ross Kirsling
  • 20 edits
    8 adds in trunk

[ECMA-402] Implement Intl.Locale
https://bugs.webkit.org/show_bug.cgi?id=209772

Reviewed by Darin Adler and Saam Barati.

JSTests:

  • stress/intl-locale.js: Added.
  • stress/intl-locale-as-intl-param.js: Added.
  • test262/config.yaml:

Enable Intl.Locale feature with flag.

  • test262/expectations.yaml:

Mark known failures.
None of these should be specific to Intl.Locale.

Source/JavaScriptCore:

This patch implements the recent ECMA-402 feature Intl.Locale.

This is effectively a wrapper class for all the pieces of uloc.h that ECMA-402 cares about.
(If we used the C++ API, there's a LocaleBuilder that would make this much easier, but in sticking to the C API,
it's basically an object that has an ICU localeID as data and uloc_* functions as methods / getters.
Furthermore, there's no way to modify said data, so every method / getter can be lazy and cache its result.)

Usage example:

locale = new Intl.Locale('ja', { region: 'JP', calendar: 'japanese', numeric: false })

"ja-JP-u-ca-japanese-kn-false"

locale.baseName

"ja-JP"

Intl.Locale can be used anywhere that Intl APIs accept locale strings as input parameters,
and is moreover hoped to be the class by which future Web APIs will handle the current locale.

This feature is runtime-guarded by the useIntlLocale option.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • runtime/CommonIdentifiers.h:
  • runtime/IntlLocale.cpp: Added.
  • runtime/IntlLocale.h: Added.
  • runtime/IntlLocaleConstructor.cpp: Added.
  • runtime/IntlLocaleConstructor.h: Added.
  • runtime/IntlLocalePrototype.cpp: Added.
  • runtime/IntlLocalePrototype.h: Added.
  • runtime/IntlObject.cpp:

(JSC::IntlObject::finishCreation):
(JSC::localeIDBufferForLanguageTag): Added.
(JSC::languageTagForLocaleID): Renamed from JSC::convertICULocaleToBCP47LanguageTag.
(JSC::intlAvailableLocales):
(JSC::intlCollatorAvailableLocales):
(JSC::canonicalizeLanguageTag):
(JSC::canonicalizeLocaleList):
(JSC::defaultLocale):

  • runtime/IntlObject.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::collatorStructure):
(JSC::JSGlobalObject::numberFormatStructure):
(JSC::JSGlobalObject::localeStructure):

  • runtime/OptionsList.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:

Tools:

  • Scripts/run-jsc-stress-tests:

Add runIntlLocaleEnabled.

10:55 PM Changeset in webkit [261214] by Lauro Moura
  • 2 edits in trunk/WebDriverTests

[WebDriver] Gardening more GTK failures.

Unreviewed test gardening.

10:22 PM Changeset in webkit [261213] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

EventHandler::dispatchMouseEvent() cleanup
https://bugs.webkit.org/show_bug.cgi?id=211491

Reviewed by Zalan Bujtas.

Replace the last bool argument with FireMouseOverOut, and remove the "cancelable" argument that was unused.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseDoubleClickEvent):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::EventHandler::handleMouseForceEvent):
(WebCore::EventHandler::dispatchMouseEvent):
(WebCore::EventHandler::sendContextMenuEvent):

  • page/EventHandler.h:
9:37 PM Changeset in webkit [261212] by commit-queue@webkit.org
  • 9 edits in trunk

Fix setting host on URL when no port is specified
https://bugs.webkit.org/show_bug.cgi?id=211453

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

LayoutTests/imported/w3c:

Update improved test expectations.

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

Source/WebCore:

Behavior matches Firefox and Chrome.

Test: web-platform-tests/url/url-setters.html

  • html/URLDecomposition.cpp:

(WebCore::URLDecomposition::setHost):

LayoutTests:

Update improved test expectations.

  • fast/dom/DOMURL/set-href-attribute-host-expected.txt:
  • fast/dom/DOMURL/set-href-attribute-host.html:
  • fast/dom/HTMLAnchorElement/set-href-attribute-host-expected.txt:
  • fast/dom/HTMLAnchorElement/set-href-attribute-host.html:
8:53 PM Changeset in webkit [261211] by Simon Fraser
  • 13 edits in trunk

Minor EventHandler and test cleanup
https://bugs.webkit.org/show_bug.cgi?id=211475

Reviewed by Zalan Bujtas.

Source/WebCore:

Now that we assert that m_elementUnderMouse and m_lastElementUnderMouse are either null
or in this EventHandler's document, we can remove the document comparisons (but this code
is probably wrong as well).

Fix enclosingScrollableArea(), which would return any RenderLayer, but should only
return scrollable ones, and should only return scrollable RenderListBoxes.

  • page/EventHandler.cpp:

(WebCore::enclosingScrollableArea):
(WebCore::EventHandler::updateMouseEventTargetNode):

LayoutTests:

Clean up some tests that were mixing js-test and notifyDone().

  • fast/scrolling/scroll-animator-basic-events-expected.txt:
  • fast/scrolling/scroll-animator-basic-events.html:
  • fast/scrolling/scroll-animator-overlay-scrollbars-clicked-expected.txt:
  • fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html:
  • fast/scrolling/scroll-animator-overlay-scrollbars-hovered-expected.txt:
  • fast/scrolling/scroll-animator-overlay-scrollbars-hovered.html:
  • fast/scrolling/scroll-animator-select-list-events-expected.txt:
  • fast/scrolling/scroll-animator-select-list-events.html:
  • platform/mac-wk1/fast/scrolling/scroll-animator-basic-events-expected.txt:
  • platform/mac-wk1/fast/scrolling/scroll-animator-select-list-events-expected.txt:
8:45 PM Changeset in webkit [261210] by ddkilzer@apple.com
  • 15 edits in trunk/Source

Fix deprecated NSGraphicsContext methods using 'graphicsPort'
<https://webkit.org/b/211481>

Reviewed by Darin Adler.

  • Replace uses of -graphicsPort with -CGContext.
  • Replace uses of -graphicsContextWithGraphicsPort:flipped: with -graphicsContextWithCGContext:flipped:.
  • Remove ALLOW_DEPRECATED_DECLARATIONS_{BEGIN,END} if possible.

Source/WebCore:

  • platform/cocoa/DragImageCocoa.mm:

(WebCore::createDragImageForLink):

  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(WebCore::PlatformCALayer::drawLayerContents):

  • platform/mac/ThemeMac.mm:

(WebCore::drawCellFocusRingWithFrameAtTime):

  • platform/mac/WidgetMac.mm:

(WebCore::Widget::paint):

Source/WebKit:

  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView _drawPDFDocument:page:atPoint:]):
(-[WKPrintingView _drawPreview:]):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::drawPDFPage):

Source/WebKitLegacy/mac:

  • Misc/WebKitNSStringExtras.mm:

(-[NSString _web_drawAtPoint:font:textColor:]):

  • Plugins/Hosted/WebHostedNetscapePluginView.mm:

(-[WebHostedNetscapePluginView drawRect:]):

  • Plugins/WebNetscapePluginView.mm:

(-[WebNetscapePluginView saveAndSetNewPortStateForUpdate:]):
(-[WebNetscapePluginView sendDrawRectEvent:]):

  • WebInspector/WebNodeHighlightView.mm:

(-[WebNodeHighlightView drawRect:]):

  • WebView/WebFrame.mm:

(-[WebFrame _drawRect:contentsOnly:]):

  • WebView/WebPDFView.mm:

(-[WebPDFView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]):
(-[WebPDFView _recursiveDisplayAllDirtyWithLockFocus:visRect:]):
(-[WebPDFView _recursive:displayRectIgnoringOpacity:inContext:topView:]):

8:08 PM Changeset in webkit [261209] by Alan Bujtas
  • 2 edits in trunk/Source/WebKit

[Quirk] Job listing page goes blank when scrolling on stackoverflow.com
https://bugs.webkit.org/show_bug.cgi?id=211480
<rdar://problem/62558405>

Reviewed by Wenson Hsieh.

Add the option of returning "use desktop web content" on any configuration when the host application asks for content recommendation.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::desktopClassBrowsingRecommendedForRequest):
(WebKit::desktopClassBrowsingRecommended):
(WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies):

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

Crash in match_constness<WebCore::CSSValue, WebCore::CSSPrimitiveValue>::type& WTF::downcast<WebCore::CSSPrimitiveValue, WebCore::CSSValue> -- ASAN
https://bugs.webkit.org/show_bug.cgi?id=211479

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

Added check to downcast CSSValue to CSSPrimitiveValue, only if valid CSSPrimitveValue is associated with the property.

New test would be added to Internal repository.

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::pageBreakPropertyValue const):

5:11 PM Changeset in webkit [261207] by sbarati@apple.com
  • 7 edits in trunk

Don't use the DebugHeap for catalyst
https://bugs.webkit.org/show_bug.cgi?id=211471

Reviewed by Tim Horton.

Source/bmalloc:

  • bmalloc/BPlatform.h:
  • bmalloc/Environment.cpp:

(bmalloc::Environment::computeIsDebugHeapEnabled):

  • bmalloc/ProcessCheck.h:

(bmalloc::shouldProcessUnconditionallyUseBmalloc): Deleted.

  • bmalloc/ProcessCheck.mm:

Tools:

  • TestWebKitAPI/Tests/WTF/bmalloc/IsoHeap.cpp:

(TEST):

4:52 PM Changeset in webkit [261206] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Crash under _LSSetApplicationInformationItem()
https://bugs.webkit.org/show_bug.cgi?id=211478
<rdar://problem/62201314>

Reviewed by Alex Christensen.

Given the crashes, I suspect it is not actually safe to call _LSSetApplicationInformationItem()
from a non main-thread like it was done in r238289. We still run the code asynchronously to
address the issue that r238289 was trying to fix but we now call _LSSetApplicationInformationItem()
on the main thread.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::updateProcessName):
(WebKit::WebProcess::updateActivePages):
(WebKit::setProcessNameQueue): Deleted.

4:12 PM Changeset in webkit [261205] by Chris Dumez
  • 2 edits in trunk/LayoutTests

fast/overflow/horizontal-scroll-after-back.html is a flaky timeout on macOS
https://bugs.webkit.org/show_bug.cgi?id=211473
<rdar://problem/61180247>

Reviewed by Darin Adler.

I made the following changes to the test:

  • Stop relying on 200ms timers and instead just a 0 timer after the load event.
  • Detect the case where we failed to enter page cache and fail nicely in this case instead of timing out.
  • Use Element.click() to trigger the navigation instead of dispatching a custom click event.

I have not been able to reproduce the flakiness locally. However, the changes in
this patch will at the very least make the test faster to run and cause the test
to fail instead of timing out if the issue is that we fail to enter the back /
forward cache, which would help us fix this.

  • fast/overflow/horizontal-scroll-after-back.html:
3:58 PM Changeset in webkit [261204] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: (r261113): [ Mac ] http/tests/frame-throttling/raf-throttle-in-cross-origin-subframe.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=211470

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:37 PM Changeset in webkit [261203] by Peng Liu
  • 21 edits
    2 adds in trunk

Update WebKitTestRunner to support running multiple video fullscreen and Picture-in-Picture tests simultaneously
https://bugs.webkit.org/show_bug.cgi?id=203723

Reviewed by Jer Noble.

Source/WebCore:

Test: media/video-presentation-mode.html

Add a flag MockVideoPresentationModeEnabled to "internals" for video fullscreen
and picture-in-picture tests.

  • page/ChromeClient.h:

(WebCore::ChromeClient::setMockVideoPresentationModeEnabled):

  • testing/Internals.cpp:

(WebCore::Internals::setMockVideoPresentationModeEnabled):

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

Source/WebKit:

When the flag MockVideoPresentationModeEnabled is true, the VideoFullscreenManagerProxy in the UI process
will mock the behavior of the VideoFullscreenInterface[Mac|AVKit].

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.h:

(WebKit::VideoFullscreenManagerProxy::setMockVideoPresentationModeEnabled):

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::requestHideAndExitFullscreen):
(WebKit::VideoFullscreenManagerProxy::applicationDidBecomeActive):
(WebKit::VideoFullscreenManagerProxy::setupFullscreenWithID):
(WebKit::VideoFullscreenManagerProxy::setHasVideo):
(WebKit::VideoFullscreenManagerProxy::setVideoDimensions):
(WebKit::VideoFullscreenManagerProxy::enterFullscreen):
(WebKit::VideoFullscreenManagerProxy::exitFullscreen):
(WebKit::VideoFullscreenManagerProxy::exitFullscreenWithoutAnimationToMode):
(WebKit::VideoFullscreenManagerProxy::setInlineRect):
(WebKit::VideoFullscreenManagerProxy::setHasVideoContentLayer):
(WebKit::VideoFullscreenManagerProxy::cleanupFullscreen):
(WebKit::VideoFullscreenManagerProxy::preparedToReturnToInline):
(WebKit::VideoFullscreenManagerProxy::preparedToExitFullscreen):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didAttachToRunningProcess):
(WebKit::WebPageProxy::setMockVideoPresentationModeEnabled):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::setMockVideoPresentationModeEnabled):
(WebKit::WebChromeClient::setUpPlaybackControlsManager):
(WebKit::WebChromeClient::clearPlaybackControlsManager):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/cocoa/VideoFullscreenManager.h:

Source/WebKitLegacy/mac:

When the flag MockVideoPresentationModeEnabled is true, WebView will ignore the requests to
WebVideoFullscreenController, so that the DumpRenderTree can run multiple video fullscreen
and picture-in-picture tests in parallel.

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::setMockVideoPresentationModeEnabled):

  • WebView/WebView.mm:
  • WebView/WebViewData.h:
  • WebView/WebViewInternal.h:

LayoutTests:

  • media/video-presentation-mode-expected.txt: Added.
  • media/video-presentation-mode.html: Added.
3:31 PM Changeset in webkit [261202] by Darin Adler
  • 8 edits
    2 deletes in trunk/Source

Remove HAVE(AVFOUNDATION_LEGIBLE_OUTPUT_SUPPORT)
https://bugs.webkit.org/show_bug.cgi?id=211461

Reviewed by Eric Carlson.

Source/WebCore:

  • PlatformMac.cmake: Removed InbandTextTrackPrivateLegacyAVFObjC.mm.
  • SourcesCocoa.txt: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto, also the header.
  • platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.h: Removed.
  • platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.mm: Removed.
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:

Removed HAVE(AVFOUNDATION_LEGIBLE_OUTPUT_SUPPORT). Also moved data member
initialization to the class definition, made more things private and final,
made outputObscuredDueToInsufficientExternalProtectionChanged unconditional,
changed friend class MediaPlayerFactoryAVFoundationObjC into member class
MediaPlayerPrivateAVFoundationObjC::Factory, removed unused removeSession function,
and tweaked conditionals.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

Removed import of InbandTextTrackPrivateLegacyAVFObjC.h. Moved data member
initialization to the class definition. Moved include of BinarySemaphore here.

Source/WTF:

  • wtf/PlatformHave.h: Don't define HAVE_AVFOUNDATION_LEGIBLE_OUTPUT_SUPPORT.
3:22 PM Changeset in webkit [261201] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

clobberize validator should use branchTest8 directly.
https://bugs.webkit.org/show_bug.cgi?id=211469

Reviewed by Yusuke Suzuki.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCurrentBlock):

3:09 PM Changeset in webkit [261200] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r239175): Source Maps: original source not shown when in nested folder
https://bugs.webkit.org/show_bug.cgi?id=198276

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/TreeOutline.js:

(WI.TreeOutline.prototype.removeChildren):
r239175 made it so that WI.TreeOutline.prototype.removeChildren actually modified the
this.children member property array (which is not a getter), meaning that if a caller had
previously saved a reference to it before calling removeChildren(), the saved reference
would also be modified, preventing it from being of any real use afterwards. At that time,
WI.TreeOutline maintained an index value for each WI.TreeElement, which meant that it
was necessary to remove from this.children as otherwise Array.prototype.indexOf calls
would not be accurate. Since then, WI.TreeOutline has moved to using representedObject,
meaning it's no longer necessary to modify this.children.

  • UserInterface/Views/SourceCodeTreeElement.js:

(WI.SourceCodeTreeElement.prototype.onpopulate):
(WI.SourceCodeTreeElement.prototype.onpopulate.combineFolderChain): Deleted.
(WI.SourceCodeTreeElement.prototype.onpopulate.findAndCombineFolderChains): Deleted.
Drive-by: don't attempt to combine folder chains when "Group by Path" to match the rest of

the look/feel of the navigation sidebar.

  • UserInterface/Models/SourceMapResource.js:

(WI.SourceMapResource.prototype.get sourceMapDisplaySubpath):
Drive-by: fix "null" being shown as the root subpath folder when using a local server.

2:15 PM Changeset in webkit [261199] by ysuzuki@apple.com
  • 6 edits
    2 adds in trunk

[JSC] Implement BigInt.asIntN and BigInt.asUintN
https://bugs.webkit.org/show_bug.cgi?id=181144

Reviewed by Darin Adler.

JSTests:

  • stress/bigint-asintn.js: Added.

(shouldBe):
(shouldThrow):
(BigInt.asIntN):

  • stress/bigint-asuintn.js: Added.

(shouldBe):
(shouldThrow):
(BigInt.asUintN):

  • test262/expectations.yaml:

Source/JavaScriptCore:

This patch implements BigInt.asIntN[1] and BigInt.asUintN[2] features.
As the same to the other BigInt runtime C++ code, we port V8 code to JSC to implement both.

BigInt.asIntN is static_cast<intN_t>(BigInt value) and BigInt.asUintN is static_cast<uintN_t>(BigInt value).
They are getting slice of N bits from two's complement representation of the given BigInt. The difference between
asIntN and asUintN is asIntN renders MSB as a sign.

This patch is once rolled out due to ARM64_32 build failure, which is caused by the existing bug[3]. Relanding it
since it is now fixed.

[1]: https://tc39.es/ecma262/#sec-bigint.asintn
[2]: https://tc39.es/ecma262/#sec-bigint.asuintn
[3]: https://trac.webkit.org/changeset/261174/webkit

  • runtime/BigIntConstructor.cpp:

(JSC::toBigInt):
(JSC::bigIntConstructorFuncAsUintN):
(JSC::bigIntConstructorFuncAsIntN):

  • runtime/JSBigInt.cpp:

(JSC::zeroImpl):
(JSC::JSBigInt::divideImpl):
(JSC::JSBigInt::unaryMinusImpl):
(JSC::JSBigInt::remainderImpl):
(JSC::JSBigInt::digitDiv):
(JSC::JSBigInt::absoluteSub):
(JSC::JSBigInt::asIntNImpl):
(JSC::JSBigInt::asUintNImpl):
(JSC::JSBigInt::truncateToNBits):
(JSC::JSBigInt::truncateAndSubFromPowerOfTwo):
(JSC::JSBigInt::asIntN):
(JSC::JSBigInt::asUintN):

  • runtime/JSBigInt.h:
2:01 PM Changeset in webkit [261198] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: the divider before the console message icons in the tab bar is shown even if there are no other icons
https://bugs.webkit.org/show_bug.cgi?id=211390

Reviewed by Brian Burg.

  • UserInterface/Base/Main.js:

(WI._updateTabBarDividers):
(WI._updateTabBarDividers.isHidden): Added.
If the various WI.ButtonNavigationItem aren't actually created, then the optional chain
will return undefined instead of the desired true when checking whether it is hidden.
Effectively, a WI.ButtonNavigationItem that does not exist should be considered hidden.

2:00 PM Changeset in webkit [261197] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Timelines: Memory: the stacked area graph should not extend beyond the "stopping time" marker
https://bugs.webkit.org/show_bug.cgi?id=211327

Reviewed by Brian Burg.

  • UserInterface/Views/MemoryTimelineOverviewGraph.js:

(WI.MemoryTimelineOverviewGraph.prototype.layout):
(WI.MemoryTimelineOverviewGraph.prototype.layout.insertDiscontinuity):

1:52 PM Changeset in webkit [261196] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Assert that EventHandler only tracks event target nodes in its own document
https://bugs.webkit.org/show_bug.cgi?id=211462

Reviewed by Zalan Bujtas.

EventHandler is per-Frame, so should not track Nodes from different documents. However, it did so
by mistake if an event handler moved a node between documents.

  • page/EventHandler.cpp:

(WebCore::EventHandler::updateMouseEventTargetNode):

  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::targetNode const):

1:50 PM Changeset in webkit [261195] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed fix for MotionMark regression.

Revert minor part of r260017. Remove telemetry from IOKit filtering allow rules. This telemetry is causing higher
CPU usage on the system, and is not needed, since we have already confirmed these messages are being used.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
1:29 PM Changeset in webkit [261194] by dbates@webkit.org
  • 5 edits in trunk

Should show selection highlight during text interaction
https://bugs.webkit.org/show_bug.cgi?id=211362
<rdar://problem/59191873>

Reviewed by Wenson Hsieh.

Source/WebKit:

Break out text interaction tracking into its own ivar instead of using the
WebKit::InteractionIsHappening selection suppression reason so that I can
key off it to only disallow zooming to reveal the focused element during
a text interaction. The selection suppression machinery does more than this.
It also deactivates selection assistance, painting of highlights, etc, which
I don't want.

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView cleanUpInteraction]): Reset state.
(-[WKContentView becomeFirstResponderForWebView]): Activate selection assistant
during a text interaction if the selection assistant is not being suppressed.
(-[WKContentView _zoomToRevealFocusedElement]): Early return if called during a
text interaction. The function -_didFinishTextInteractionInTextInputContext will
trigger the zoom after the interaction completes.
(-[WKContentView _didCommitLoadForMainFrame]): Reset state.

(-[WKContentView _willBeginTextInteractionInTextInputContext:]):
(-[WKContentView _didFinishTextInteractionInTextInputContext:]):
Update state. While I am here, text interaction is considered a gesture so
also update _usingGestureForSelection. This means that the selection view
will be updated immediately on a selection change during a text interaction
instead of waiting until the next layer tree commit occurs.

Tools:

Add a test to ensure the selection view has rects after selecting
text during a text interaction. These rects represents the highlight.

  • TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm:

(TestWebKitAPI::TEST):

12:30 PM Changeset in webkit [261193] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

[ Mac ] fast/animation/request-animation-frame-timestamps.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209079

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-05-05
Reviewed by Antoine Quint.

Make the test asynchronous instead of using timers to fix its flakiness.

  • fast/animation/request-animation-frame-timestamps-expected.txt:
  • fast/animation/request-animation-frame-timestamps.html:
  • platform/mac/TestExpectations:
12:25 PM Changeset in webkit [261192] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Factor RenderLayerBacking::updateEventRegion skip conditions into a lambda
https://bugs.webkit.org/show_bug.cgi?id=211450

Reviewed by Simon Fraser.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateEventRegion):

12:23 PM Changeset in webkit [261191] by mmaxfield@apple.com
  • 5 edits in trunk/LayoutTests

Update two svg tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=211331
<rdar://problem/61844271>

Unreviewed.

Apply https://github.com/web-platform-tests/wpt/commit/51151cf5bfc32adb8d96fca51a30c126d1e0200d
to our own tree.

  • platform/mac/imported/w3c/web-platform-tests/svg/import/pservers-grad-08-b-manual-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/svg/import/text-altglyph-01-b-manual-expected.txt:
  • web-platform-tests/svg/import/pservers-grad-08-b-manual.svg:
  • web-platform-tests/svg/import/text-altglyph-01-b-manual.svg:
12:21 PM Changeset in webkit [261190] by mmaxfield@apple.com
  • 6 edits
    1 delete in trunk/LayoutTests

Rebaseline fast/css/font-face-opentype.html
https://bugs.webkit.org/show_bug.cgi?id=211332
<rdar://problem/61833165>

Update for iOS. Also make the test insensitive to platform fallback fonts.

Unreviewed.

  • fast/css/font-face-opentype.html:
  • platform/ios-wk1/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/ios/fast/css/font-face-opentype-expected.txt:
  • platform/mac/fast/css/font-face-opentype-expected.txt:
12:12 PM Changeset in webkit [261189] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

webkitbot isn't responding properly in irc
https://bugs.webkit.org/show_bug.cgi?id=211458

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/tool/commands/queues.py:

(AbstractQueue.run_webkit_patch): Removed status-host paramter since old ews server has been decommissioned.

  • Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py: Updated unit-tests.
  • Scripts/webkitpy/tool/commands/queues_unittest.py:
11:59 AM Changeset in webkit [261188] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Drop code path using the legacy CFNetwork cookie change notification SPI
https://bugs.webkit.org/show_bug.cgi?id=211411
<rdar://problem/62869148>

Reviewed by John Wilander.

Source/WebCore:

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::NetworkStorageSession::registerCookieChangeListenersIfNecessary):
(WebCore::NetworkStorageSession::unregisterCookieChangeListenersIfNecessary):
(WebCore::NetworkStorageSession::supportsCookieChangeListenerAPI const):

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:
11:56 AM Changeset in webkit [261187] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

Check for app-bound domains should confirm WKAppBoundDomains key exists when checking for default app-bound protocols.
https://bugs.webkit.org/show_bug.cgi?id=211451
<rdar://problem/62715316

Reviewed by Brent Fulgham.

Checks for WKAppBoundDomains key before treating a protocol as
app-bound. This is a regression in expected behavior after making
In-App Browser privacy opt-in based on the presence of the key.

Also moves the check for special protocols inside of the completion handler for
ensureAppBoundDomains to make sure the check for the key has finished.

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::beginAppBoundDomainCheck):
Added a comment to clarify why we need to check for both an empty
app-bound domains list and the presence of the key for testing
purposes.

11:44 AM Changeset in webkit [261186] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[ Mac ] fast/animation/request-animation-frame-cancel2.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209491

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-05-05
Reviewed by Antoine Quint.

Make the test asynchronous instead of using timers to fix its flakiness.

  • fast/animation/request-animation-frame-cancel2.html:
  • platform/mac/TestExpectations:
11:42 AM Changeset in webkit [261185] by sbarati@apple.com
  • 7 edits in trunk/Source/ThirdParty/ANGLE

Unreviewed, reverting r261176.

It broke the build

Reverted changeset:

"[ANGLE] Declarations should match definitions"
https://bugs.webkit.org/show_bug.cgi?id=211410
https://trac.webkit.org/changeset/261176

11:34 AM Changeset in webkit [261184] by aakash_jain@apple.com
  • 5 edits in trunk/Tools

EWS should skip Apple Win build and tests for patches that only change WebKit2 sources
https://bugs.webkit.org/show_bug.cgi?id=211210

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/factories.py:

(WindowsFactory.init): enabled relevance checking for windows ews.

  • BuildSlaveSupport/ews-build/factories_unittest.py: Updated unit-test.
  • BuildSlaveSupport/ews-build/steps.py:

(CheckPatchRelevance): Defined relevance info for windows ews.

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(TestCheckPatchRelevance.test_relevant_windows_wk1_patch): Added unit test.
(TestCheckPatchRelevance.test_queues_without_relevance_info): Fixed unit-test.

11:26 AM Changeset in webkit [261183] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exception: undefined is not an object (evaluating 'this.InspectorAgent.initialized')
https://bugs.webkit.org/show_bug.cgi?id=211434

Reviewed by Joseph Pecoraro.

  • UserInterface/Protocol/Target.js:

(WI.Target.prototype.initialize):
Worker targets don't (and are not expected to) have an Inspector domain.

11:21 AM Changeset in webkit [261182] by Ross Kirsling
  • 14 edits in trunk

[Intl] Alphabetize extension keys and correctly mark const methods
https://bugs.webkit.org/show_bug.cgi?id=211359

Reviewed by Darin Adler.

JSTests:

  • stress/intl-collator.js:
  • stress/intl-datetimeformat.js:

Add tests.

Source/JavaScriptCore:

Two cleanup items for Intl classes:

  1. Ensure resolvedOptions().locale returns relevant extension keys in alphabetical order. ICU does this for us via Intl.getCanonicalLocales / Intl.*.supportedLocalesOf but not via ResolveLocale. However, we don't need to do any sorting in ResolveLocale; we can just pre-alphabetize relevantExtensionKeys. (See also https://github.com/tc39/ecma402/pull/433.)
  1. Ensure Intl classes are marking const methods correctly.
  • runtime/IntlCollator.cpp:

(JSC::IntlCollator::sortLocaleData):
(JSC::IntlCollator::searchLocaleData):
(JSC::IntlCollator::compareStrings const): Add const specifier.
(JSC::IntlCollator::resolvedOptions const): Add const specifier.

  • runtime/IntlCollator.h:
  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::localeData):
(JSC::IntlDateTimeFormat::resolvedOptions const): Add const specifier.
(JSC::IntlDateTimeFormat::format const): Add const specifier.
(JSC::IntlDateTimeFormat::formatToParts const): Add const specifier.

  • runtime/IntlDateTimeFormat.h:
  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::format const): Add const specifier.
(JSC::IntlNumberFormat::resolvedOptions const): Add const specifier.
(JSC::IntlNumberFormat::formatToParts const): Add const specifier.

  • runtime/IntlNumberFormat.h:
  • runtime/IntlPluralRules.cpp:

(JSC::IntlPluralRules::resolvedOptions const): Add const specifier.
(JSC::IntlPluralRules::select const): Add const specifier.

  • runtime/IntlPluralRules.h:
  • runtime/IntlRelativeTimeFormat.cpp:

(JSC::IntlRelativeTimeFormat::resolvedOptions const): Add const specifier.
(JSC::IntlRelativeTimeFormat::formatInternal const): Add const specifier.
(JSC::IntlRelativeTimeFormat::format const): Add const specifier.
(JSC::IntlRelativeTimeFormat::formatToParts const): Add const specifier.

  • runtime/IntlRelativeTimeFormat.h:
11:17 AM Changeset in webkit [261181] by keith_miller@apple.com
  • 12 edits in trunk/Source/JavaScriptCore

Add Clobberize validator for clobber top.
https://bugs.webkit.org/show_bug.cgi?id=209432

Reviewed by Yusuke Suzuki.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::scratchRegister):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::scratchRegister):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCurrentBlock):

  • dfg/DFGSpeculativeJIT64.cpp:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lower):
(JSC::FTL::DFG::LowerDFGToB3::compileBlock):
(JSC::FTL::DFG::LowerDFGToB3::compileNode):

  • interpreter/Interpreter.cpp:

(JSC::eval):
(JSC::Interpreter::executeProgram):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::execute):
(JSC::Interpreter::executeModuleProgram):

  • jit/JITCodeInlines.h:

(JSC::JITCode::execute):

  • llint/LLIntThunks.h:

(JSC::vmEntryToWasm):

  • runtime/OptionsList.h:
  • runtime/VM.h:
10:10 AM Changeset in webkit [261180] by timothy_horton@apple.com
  • 5 edits in trunk/Source

"Essential Skeleton" does not respond to mouse events, only touch events
https://bugs.webkit.org/show_bug.cgi?id=211439
<rdar://problem/62694519>

Reviewed by Wenson Hsieh.

Source/WebCore:

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::IOSApplication::isEssentialSkeleton):

Source/WebKit:

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView shouldUseMouseGestureRecognizer]):
Add a quirk.

10:08 AM Changeset in webkit [261179] by mark.lam@apple.com
  • 13 edits
    2 adds in trunk

Allow Bitmap to use up to a UCPURegister word size for internal bit storage.
https://bugs.webkit.org/show_bug.cgi?id=211328
<rdar://problem/62755865>

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  • assembler/CPU.h:

Source/WTF:

  1. Moved the definition of CPURegister and UCPURegister down into WTF. Added CPU(REGISTER64) and CPU(REGISTER32) for determining what size a CPU general purpose register is.
  1. Updated Bitmap so that it will automatically choose the minimal required word size for the number of bits it needs to store. This means the Bitmap can automatically choose a WordType from uint8_t up to UCPURegister. Previously, the WordType is always uint32_t by default.

This should improve perf with use of Bitmap on 64-bit platforms. The size
optimization is necessary to prevent bloat on 64-bit platforms which would have
resulted if we simply set the default to always be UCPURegister.

  1. Added a check in findRunOfZeros() for handling the edge case where the requested runLength exceeds the bitmapSize.
  1. Fixed a bug in count() that was unnecessarily casting the bits to unsigned instead of just using the Bitmap WordType. As a result, when using a WordType of uint64_t, it was discarding bits from the count.
  1. Fixed invert() to leave the bits beyond bitmapSize untouched. Fixed isFull() to ignore the bits beyond bitmapSize.

By fixing invert() to leave those bits as 0, isEmpty() and hash() will
continue to work. Otherwise, inverting those bits will cause isEmpty() to
always fail, and hash()'s result may be different for the same set of bit
values within bitmapSize.

isFull(), on the other hand, checks for set bits in the words. Since there
may be 0 valued bits beyond bitmapSize, isFull() needs to be fixed to ignore
those.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/Bitmap.h:

(WTF::WordType>::invert):
(WTF::WordType>::findRunOfZeros const):
(WTF::WordType>::count const):
(WTF::WordType>::isFull const):

  • wtf/CMakeLists.txt:
  • wtf/PlatformCPU.h:
  • wtf/PlatformUse.h:
  • wtf/StdIntExtras.h: Copied from Source/WTF/wtf/StdIntExtras.h.

Tools:

Added API tests for WTF::Bitmap to make sure that Bitmap is behaving correctly.
Since Bitmap is used in critical infrastructure like the GC, it is important to
ensure that there are no latent bugs.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/Bitmap.cpp: Added.

(TestWebKitAPI::countBits):
(TestWebKitAPI::testBitmapSize):
(TestWebKitAPI::testBitmapConstructedEmpty):
(TestWebKitAPI::testBitmapSetGet):
(TestWebKitAPI::testBitmapTestAndSet):
(TestWebKitAPI::testBitmapTestAndClear):
(TestWebKitAPI::testBitmapConcurrentTestAndSet):
(TestWebKitAPI::testBitmapConcurrentTestAndClear):
(TestWebKitAPI::testBitmapClear):
(TestWebKitAPI::testBitmapClearAll):
(TestWebKitAPI::testBitmapInvert):
(TestWebKitAPI::testBitmapFindRunOfZeros):
(TestWebKitAPI::testBitmapCount):
(TestWebKitAPI::testBitmapIsEmpty):
(TestWebKitAPI::testBitmapIsFull):
(TestWebKitAPI::testBitmapMerge):
(TestWebKitAPI::testBitmapFilter):
(TestWebKitAPI::testBitmapExclude):
(TestWebKitAPI::testBitmapConcurrentFilter):
(TestWebKitAPI::testBitmapSubsumes):
(TestWebKitAPI::testBitmapForEachSetBit):
(TestWebKitAPI::testBitmapFindBit):
(TestWebKitAPI::testBitmapIteration):
(TestWebKitAPI::testBitmapMergeAndClear):
(TestWebKitAPI::testBitmapSetAndClear):
(TestWebKitAPI::testBitmapOperatorEqual):
(TestWebKitAPI::testBitmapOperatorNotEqual):
(TestWebKitAPI::testBitmapHash):
(TestWebKitAPI::TEST):

LayoutTests:

editing/undo-manager/undo-manager-delete-stale-undo-items.html exposed a bug in
this patch. However, when a failure occurs, this test runs perpetually until it
times out. There's no need to do this. After a finite number of GC cycles,
unreachable objects should be collected. This is especially so because
GCController.collect() does a synchronous full GC.

Added a cap of 10 GC tries, and fail out if the test does not see the expected
result. This allows the test to fail fast and avoid the costly time out.

  • editing/undo-manager/undo-manager-delete-stale-undo-items.html:
9:52 AM Changeset in webkit [261178] by commit-queue@webkit.org
  • 5 edits in trunk

Compile GPUProcess in WPE port as experimental feature
https://bugs.webkit.org/show_bug.cgi?id=211442

Patch by Víctor Manuel Jáquez Leal <vjaquez@igalia.com> on 2020-05-05
Reviewed by Don Olmstead.

.:

Enable GPUProcess in WPE.

  • Source/cmake/OptionsWPE.cmake: enable GPU Process as

experimental feature

Source/WebKit:

Enable GPU Process in WPE.

This is compilation only. No new tests required.

  • PlatformWPE.cmake: Add Platform/generic include directory.
  • SourcesWPE.txt: Add related source files.
9:51 AM Changeset in webkit [261177] by Megan Gardner
  • 5 edits
    3 adds in trunk

Style is not applied when changed on the first line of a new mail message.
https://bugs.webkit.org/show_bug.cgi?id=211200
<rdar://problem/62087514>

Reviewed by Darin Adler.

Source/WebCore:

After r257487 when we resign first responder, we immediatly
update activity state. This means that if we resign first responder, and then
become first responder, we are clearing the selection if the caret is at the beginning
of the document, due to a check in setSelectionFromNone. This check was originally added
in 2006 because it happened to fix <rdar://problem/4483145>. Removing this check and
merging the iOS and Mac logic.

Test: editing/execCommand/ios/first-line-text-attribute-change-presist-through-resigning-first-responder.html

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::setSelectionFromNone):

LayoutTests:

  • editing/execCommand/ios/first-line-text-attribute-change-presist-through-resigning-first-responder-expected.txt: Added.
  • editing/execCommand/ios/first-line-text-attribute-change-presist-through-resigning-first-responder.html: Added.
9:38 AM Changeset in webkit [261176] by Jonathan Bedard
  • 7 edits in trunk/Source/ThirdParty/ANGLE

[ANGLE] Declarations should match definitions
https://bugs.webkit.org/show_bug.cgi?id=211410

Reviewed by Alex Christensen.

  • src/libANGLE/renderer/gl/eagl/DisplayEAGL.h: Skip definitions for platforms

where class is undefined.

  • src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm:

(rx::DisplayEAGL::generateConfigs): Function is not defined for for MacCatalyst.

  • src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.h: Skip definitions for platforms

where class is undefined.

  • src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm:
  • src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.h: Skip definitions for platforms

where class is undefined.

  • src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.mm:
9:28 AM Changeset in webkit [261175] by keith_miller@apple.com
  • 3 edits
    1 add in trunk

iterator_open should remap the symbolIterator argument correctly when inlined.
https://bugs.webkit.org/show_bug.cgi?id=211308
<rdar://problem/62287877>

Reviewed by Mark Lam.

JSTests:

  • stress/inlining-for-of-should-validate.js: Added.

(bar):
(foo):

Source/JavaScriptCore:

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

9:24 AM Changeset in webkit [261174] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] JSBigInt::maxLengthBits and JSBigInt::maxLength are wrong
https://bugs.webkit.org/show_bug.cgi?id=211445

Reviewed by Mark Lam.

JSBigInt::maxLengthBits and JSBigInt::maxLength definitions are wrong.

  1. We are defining maxLength and maxLengthBits as an unrelated value to each other. This is wrong. maxLength should be defined as maxLengthBits / (sizeof(Digit) * bitsPerByte).
  2. We use sizeof(void*) and assume that sizeof(Digit) == sizeof(void*). This is wrong in ARM64_32 environment where Digit size is sizeof(uint64_t) while the pointer size is sizeof(uint32_t). This causes compile errors in ARM64_32 when the code is using these values with static_assert.
  • runtime/JSBigInt.h:
9:09 AM Changeset in webkit [261173] by commit-queue@webkit.org
  • 4 edits in trunk

A URL cannot have a username/password/port if its host is null
https://bugs.webkit.org/show_bug.cgi?id=211358

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

LayoutTests/imported/w3c:

Update improved test results.

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

Source/WebCore:

A URL cannot have a username/password/port if its host is null [1], so
adjust URL.cpp accordingly.

Behavior matches Chrome and Firefox.

[1] https://url.spec.whatwg.org/#cannot-have-a-username-password-port

  • html/URLDecomposition.cpp:

(WebCore::URLDecomposition::setUsername):
(WebCore::URLDecomposition::setPassword):
(WebCore::URLDecomposition::setPort):

9:05 AM Changeset in webkit [261172] by youenn@apple.com
  • 4 edits
    2 adds in trunk

MediaPlayerPrivateMediaStreamAVFObjC should unobserve the tracks from its audio and video track sets
https://bugs.webkit.org/show_bug.cgi?id=211444
<rdar://problem/62886221>

Reviewed by Eric Carlson.

Source/WebCore:

Test: fast/mediastream/MediaStream-removeTrack-while-playing.html

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::~MediaPlayerPrivateMediaStreamAVFObjC):
We keep maps of audio and video tracks we are observing.
Use these two maps to properly unobserve all tracks at destruction time.
While this is not strictly needed since we are using weak pointers, this helps keeping the code healthy.

  • platform/mediastream/MediaStreamTrackPrivate.cpp:

(WebCore::MediaStreamTrackPrivate::forEachObserver):
Add a debug ASSERT so that we ensure add/remove observers is done properly.

LayoutTests:

  • fast/mediastream/MediaStream-removeTrack-while-playing-expected.txt: Added.
  • fast/mediastream/MediaStream-removeTrack-while-playing.html: Added.
9:03 AM Changeset in webkit [261171] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Unreviewed, reverting r261130.

Caused crashes on some of our bots

Reverted changeset:

"Drop code path using the legacy CFNetwork cookie change
notification SPI"
https://bugs.webkit.org/show_bug.cgi?id=211411
https://trac.webkit.org/changeset/261130

8:58 AM Changeset in webkit [261170] by Darin Adler
  • 17 edits in trunk/Source

Remove now-unneeded USE(COREMEDIA) and USE(VIDEOTOOLBOX)
https://bugs.webkit.org/show_bug.cgi?id=211437

Reviewed by Eric Carlson.

Source/WebCore:

  • platform/cocoa/VideoToolboxSoftLink.cpp: Remove USE(VIDEOTOOLBOX).
  • platform/cocoa/VideoToolboxSoftLink.h: Ditto.
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage): Ditto.

  • platform/graphics/cocoa/WebCoreDecompressionSession.h: Ditto. Also remove

#pragma once since this header is only used with #import, not #include.

  • platform/graphics/cocoa/WebCoreDecompressionSession.mm: Ditto.
  • platform/graphics/cv/ImageRotationSessionVT.h: Ditto.
  • platform/graphics/cv/ImageRotationSessionVT.mm: Ditto.
  • platform/graphics/cv/ImageTransferSessionVT.h: Ditto.
  • platform/graphics/cv/ImageTransferSessionVT.mm: Ditto.
  • platform/graphics/cv/PixelBufferConformerCV.cpp:

(WebCore::PixelBufferConformerCV::PixelBufferConformerCV): Ditto.
(WebCore::PixelBufferConformerCV::convert): Ditto.
(WebCore::PixelBufferConformerCV::createImageFromPixelBuffer): Ditto.

  • platform/graphics/cv/PixelBufferConformerCV.h: Ditto.

Source/WebCore/PAL:

  • pal/system/mac/ClockCM.h: Remove USE(COREMEDIA). Also made everything

private since nothing includes this header. Removed everything unused.

  • pal/system/mac/ClockCM.mm: Remove USE(COREMEDIA). Put everything inside

the PAL namespace.
(PAL::ClockCM::ClockCM): Merged in the second constructor and initializeWithTimingSource.
(PAL::ClockCM::ClockCM): Deleted.
(PAL::ClockCM::initializeWithTimingSource): Deleted.
(PAL::ClockCM::setCurrentTime): Tweaked.
(PAL::ClockCM::currentTime const): Tweaked.
(PAL::ClockCM::setCurrentMediaTime): Deleted.
(PAL::ClockCM::currentMediaTime const): Deleted.

Source/WTF:

  • wtf/PlatformUse.h: Don't set USE_COREMEDIA or USE_VIDEOTOOLBOX.
7:50 AM Changeset in webkit [261169] by youenn@apple.com
  • 19 edits in trunk/Source

Remove LegacySchemeRegistry::canServiceWorkersHandleURLScheme
https://bugs.webkit.org/show_bug.cgi?id=211170

Reviewed by Alex Christensen.

Source/WebCore:

Since we no longer use custom service worker schemes in API tests,
we no longer need custom schemes in web process, given they are not supported in network process anyway.
Remove related code.

  • Modules/cache/DOMWindowCaches.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(NeedsRuntimeCheck):
(GenerateRuntimeEnableConditionalString):

  • bindings/scripts/IDLAttributes.json:
  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::hasServiceWorkerScheme const): Deleted.

  • dom/ScriptExecutionContext.h:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::matchRegistration):
(WebCore::DocumentLoader::commitData):

  • page/NavigatorServiceWorker.idl:
  • platform/LegacySchemeRegistry.cpp:

(WebCore::serviceWorkerSchemes): Deleted.
(WebCore::LegacySchemeRegistry::registerURLSchemeServiceWorkersCanHandle): Deleted.
(WebCore::LegacySchemeRegistry::canServiceWorkersHandleURLScheme): Deleted.
(WebCore::LegacySchemeRegistry::isServiceWorkerContainerCustomScheme): Deleted.

  • platform/LegacySchemeRegistry.h:
  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::addRegistration):

Source/WebKit:

Remove unused parameters since they are no longer being set in UIProcess.

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

7:43 AM Changeset in webkit [261168] by Darin Adler
  • 8 edits in trunk/Source

Remove now-uneeded HAVE macros related to PDF
https://bugs.webkit.org/show_bug.cgi?id=211435

Reviewed by Anders Carlsson.

Source/WebKit:

  • Platform/spi/ios/PDFKitSPI.h: Removed HAVE(PDFHOSTVIEWCONTROLLER_SNAPSHOTTING).
  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView web_initWithFrame:webView:mimeType:]): Removed
HAVE(PDF_HOST_VIEW_CONTROLLER_WITH_BACKGROUND_COLOR).
(+[WKPDFView web_requiresCustomSnapshotting]): Removed HAVE(PDFHOSTVIEWCONTROLLER_SNAPSHOTTING).
(-[WKPDFView web_snapshotRectInContentViewCoordinates:snapshotWidth:completionHandler:]):
Ditto.

Source/WebKitLegacy/mac:

  • WebView/WebFrameView.mm:

(+[WebFrameView _viewTypesAllowImageTypeOmission:]): Removed HAVE(LEGACY_PDF_SUPPORT).

  • WebView/WebView.mm:

(+[WebView _viewClass:andRepresentationClass:forMIMEType:allowingPlugins:]): Ditto.

Source/WTF:

  • wtf/PlatformHave.h: Remove HAVE_PDFHOSTVIEWCONTROLLER_SNAPSHOTTING,

always set for iOS, HAVE_LEGACY_PDF_SUPPORT, always set for all Cocoa
platforms, and HAVE_PDF_HOST_VIEW_CONTROLLER_WITH_BACKGROUND_COLOR,
always set for iOS family platforms.

7:40 AM Changeset in webkit [261167] by ysuzuki@apple.com
  • 6 edits
    2 deletes in trunk

Unreviewed, reverting r261156.

Break ARM64_32 build due to existing bug

Reverted changeset:

"[JSC] Implement BigInt.asIntN and BigInt.asUintN"
https://bugs.webkit.org/show_bug.cgi?id=181144
https://trac.webkit.org/changeset/261156

7:39 AM Changeset in webkit [261166] by Darin Adler
  • 7 edits in trunk/Source

Remove now-unneeded HAVE(DISALLOWABLE_USER_INSTALLED_FONTS)
https://bugs.webkit.org/show_bug.cgi?id=211428

Reviewed by Anders Carlsson.

Source/WebCore:

  • platform/graphics/Font.h: Removed isUserInstalledFont, only used for

an assertion that I took the liberty of removing.

  • platform/graphics/FontCascadeFonts.cpp:

(WebCore::FontCascadeFonts::glyphDataForSystemFallback): Removed an
assertion since it was the only reason to introduce the concept of a
user-installed font to the cross-platform code. The assertion is a bit
of a self-check that doesn't seem critical.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontDatabase::singleton): Deleted.
(WebCore::FontDatabase::singletonAllowingUserInstalledFonts): Remove
HAVE(DISALLOWABLE_USER_INSTALLED_FONTS).
(WebCore::FontDatabase::singletonDisallowingUserInstalledFonts): Ditto.
(WebCore::isUserInstalledFont): Ditto.
(WebCore::addAttributesForInstalledFonts): Ditto.
(WebCore::isFontMatchingUserInstalledFontFallback): Ditto.
(WebCore::addAttributesForWebFonts): Ditto.
(WebCore::installedFontMandatoryAttributes): Ditto.

  • platform/graphics/mac/SimpleFontDataCoreText.cpp:

(WebCore::Font::isUserInstalledFont const): Deleted.

Source/WTF:

  • wtf/PlatformHave.h: Don't define HAVE_DISALLOWABLE_USER_INSTALLED_FONTS.
7:36 AM Changeset in webkit [261165] by aboya@igalia.com
  • 4 edits in trunk

[GStreamer] Video loops when ran in rr record --chaos
https://bugs.webkit.org/show_bug.cgi?id=211182

Reviewed by Philippe Normand.

Source/WebCore:

While trying to investigate a different bug, I ran the browser with
rr record --chaos, which makes it run very slowly and shuffles
thread scheduling to try to make existing race conditions more likely
to show up, also inevitably making the software run very slow.

Doing so I found something strange: the video kept looping even though
it didn't have the loop attribute set.

After some debugging I found that MediaPlayer decides if the video has
ended in part by checking currentMediaTime() is greater or equal to
the video duration, which was not guaranteed to be the case in
MediaPlayerPrivateGStreamer.

As a consequence of this patch, one new LayoutTest has passed.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::playbackPosition const):

LayoutTests:

imported/w3c/web-platform-tests/media-source/mediasource-getvideoplaybackquality.html
is now passing.

  • platform/gtk/TestExpectations:
6:48 AM Changeset in webkit [261164] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC] Rename computedContentHeight/Width to computedHeight/Width
https://bugs.webkit.org/show_bug.cgi?id=211432

Reviewed by Darin Adler.

These functions used to return the computed content box height/width but with box-sizing
support the name is not correct anymore.

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::computedHeight const):
(WebCore::Layout::FormattingContext::Geometry::computedWidth const):
(WebCore::Layout::FormattingContext::Geometry::computedMinHeight const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::complicatedCases const):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::computedContentHeight const): Deleted.
(WebCore::Layout::FormattingContext::Geometry::computedContentWidth const): Deleted.

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin const):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowWidthAndMargin):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraVerticalSpace):

  • layout/tableformatting/TableFormattingContextGeometry.cpp:

(WebCore::Layout::TableFormattingContext::Geometry::cellHeigh const):
(WebCore::Layout::TableFormattingContext::Geometry::computedColumnWidth const):

6:40 AM Changeset in webkit [261163] by youenn@apple.com
  • 14 edits
    1 move
    1 add
    2 deletes in trunk/Source/WebKit

Receiving WebRTC network packets should not go through the main thread
https://bugs.webkit.org/show_bug.cgi?id=211290

Reviewed by Alex Christensen.

Instead of going to main thread before going to rtc network thread, we register a message receiver and dispatch directly to rtc network thread.
This ensures rtc packets are not blocked if main thread is busy.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • NetworkProcess/webrtc/LibWebRTCSocketClient.cpp:

(WebKit::LibWebRTCSocketClient::signalReadPacket):
(WebKit::LibWebRTCSocketClient::signalSentPacket):
(WebKit::LibWebRTCSocketClient::signalAddressReady):
(WebKit::LibWebRTCSocketClient::signalConnect):
(WebKit::LibWebRTCSocketClient::signalClose):

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::NetworkRTCProvider::createSocket):
(WebKit::NetworkRTCProvider::createServerTCPSocket):
(WebKit::NetworkRTCProvider::createClientTCPSocket):
(WebKit::NetworkRTCProvider::newConnection):
(WebKit::NetworkRTCProvider::closeListeningSockets):

  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::NetworkProcessConnection):
(WebKit::NetworkProcessConnection::didReceiveMessage):

  • WebProcess/Network/webrtc/LibWebRTCNetwork.cpp: Added
  • WebProcess/Network/webrtc/LibWebRTCNetwork.h:

(WebKit::LibWebRTCNetwork::connection):
(WebKit::LibWebRTCNetwork::~LibWebRTCNetwork):
(WebKit::LibWebRTCNetwork::networkProcessCrashed):
(WebKit::LibWebRTCNetwork::setConnection):
(WebKit::LibWebRTCNetwork::dispatchToThread):
(WebKit::LibWebRTCNetwork::signalAddressReady):
(WebKit::LibWebRTCNetwork::signalReadPacket):
(WebKit::LibWebRTCNetwork::signalSentPacket):
(WebKit::LibWebRTCNetwork::signalConnect):
(WebKit::LibWebRTCNetwork::signalClose):
(WebKit::LibWebRTCNetwork::signalNewConnection):

  • WebProcess/Network/webrtc/LibWebRTCNetwork.messages.in: Added.
  • WebProcess/Network/webrtc/LibWebRTCSocket.h:
  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:
  • WebProcess/Network/webrtc/WebRTCSocket.cpp: Removed.
  • WebProcess/Network/webrtc/WebRTCSocket.h: Removed.
6:01 AM Changeset in webkit [261162] by graouts@webkit.org
  • 6 edits in trunk

Unreviewed, reverting r260989.

Mistakenly identified cause of MotionMark 1.1 performance regression

Reverted changeset:

"REGRESSION: MotionMark 1.1 regressed due to r260016"
https://bugs.webkit.org/show_bug.cgi?id=211280
https://trac.webkit.org/changeset/260989

5:37 AM Changeset in webkit [261161] by commit-queue@webkit.org
  • 6 edits in trunk

[GTK][WPE][Fetch API] Stale-while-revalidate is not enabled
https://bugs.webkit.org/show_bug.cgi?id=206416

Patch by Rob Buis <rbuis@igalia.com> on 2020-05-05
Reviewed by Carlos Alberto Lopez Perez.

.:

Enable s-w-r for GTK/WPE.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

LayoutTests:

Unskip s-w-r tests for GTK/WPE.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
4:49 AM Changeset in webkit [261160] by cturner@igalia.com
  • 6 edits
    12 deletes in trunk/LayoutTests

[EME] media/encrypted-media/encrypted-media-can-play-type.html is outdated
https://bugs.webkit.org/show_bug.cgi?id=154848

Reviewed by Xabier Rodriguez-Calvar.

Remove out-of-date EME tests and expectations.

  • gpu-process/TestExpectations:
  • media/encrypted-media/encrypted-media-events-expected.txt: Removed.
  • media/encrypted-media/encrypted-media-events.html: Removed.
  • media/encrypted-media/encrypted-media-not-loaded-expected.txt: Removed.
  • media/encrypted-media/encrypted-media-not-loaded.html: Removed.
  • media/encrypted-media/encrypted-media-syntax-expected.txt: Removed.
  • media/encrypted-media/encrypted-media-syntax.html: Removed.
  • media/encrypted-media/encrypted-media-v2-events-expected.txt: Removed.
  • media/encrypted-media/encrypted-media-v2-events.html: Removed.
  • media/encrypted-media/encrypted-media-v2-syntax-expected.txt: Removed.
  • media/encrypted-media/encrypted-media-v2-syntax.html: Removed.
  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/mac/media/encrypted-media/encrypted-media-can-play-type-expected.txt: Removed.
  • platform/win/TestExpectations:
  • platform/win/media/encrypted-media/encrypted-media-can-play-type-expected.txt: Removed.
  • platform/wpe/TestExpectations:
4:33 AM Changeset in webkit [261159] by Alexey Shvayka
  • 53 edits
    1 delete in trunk

Object.prototype.toString is not spec-perfect
https://bugs.webkit.org/show_bug.cgi?id=199138

Reviewed by Darin Adler and Keith Miller.

JSTests:

  • ChakraCore.yaml: Skip a test as global now has @@toStringTag.
  • ChakraCore/test/LetConst/delete.baseline: Removed.
  • stress/internal-promise-constructor-not-confusing.js: Use @isPromise.
  • stress/object-get-own-property-symbols.js: Adjust test as global now has @@toStringTag.
  • test262/expectations.yaml: Mark 6 test cases as passing.

LayoutTests/imported/w3c:

  • web-platform-tests/WebIDL/ecmascript-binding/class-string-interface.any-expected.txt:
  • web-platform-tests/WebIDL/ecmascript-binding/class-string-interface.any.worker-expected.txt:
  • web-platform-tests/WebIDL/ecmascript-binding/class-string-iterator-prototype-object.any-expected.txt:
  • web-platform-tests/WebIDL/ecmascript-binding/class-string-iterator-prototype-object.any.worker-expected.txt:

Source/JavaScriptCore:

Before ES6, Object.prototype.toString relied only on internal Class slot. Starting with ES6,
Object.prototype.toString checks for a handful of internal slots, mimicing Class, to ensure
backwards compatibility for pre-ES6 instances. Newly-added built-ins provide @@toStringTag for
the method to use.

Before this change, Object.prototype.toString in JSC relied on className() a.k.a Class for
all instances. For (almost all) new built-ins, it was overriden by toStringName() returning
"Object", while @@toStringTag was set to correct value. This is quite an error-prone approach
and observable spec discrepancy if @@toStringTag is deleted or set to a non-string.

This change eliminates the above-mentioned discrepancy and fixes Object.prototype.toString
to return "[object Function]" for callable Proxy objects, aligning JSC with the spec [1], V8,
and SpiderMonkey.

For Object.prototype.toString to work through DebuggerScope and JSProxy, we perform all checks
in JSObject::toStringName(). Given that isArray() may throw a TypeError [2], we invoke
toStringName() before @@toStringTag lookup to accomodate revoked Proxy case.

Also, this patch defines @@toStringTag for WebAssembly namespace object (to match Chrome),
JSC shell, and ConsoleObject.

[1]: https://tc39.es/ecma262/#sec-object.prototype.tostring
[2]: https://tc39.es/ecma262/#sec-isarray (step 3.a)

  • jsc.cpp:
  • runtime/BigIntObject.cpp:

(JSC::BigIntObject::toStringName): Deleted.

  • runtime/BigIntObject.h:
  • runtime/BooleanObject.cpp:

(JSC::BooleanObject::toStringName):

  • runtime/BooleanObject.h:
  • runtime/ConsoleObject.cpp:

(JSC::ConsoleObject::finishCreation):

  • runtime/DateInstance.cpp:

(JSC::DateInstance::toStringName):

  • runtime/DateInstance.h:
  • runtime/ErrorInstance.cpp:

(JSC::ErrorInstance::toStringName):

  • runtime/ErrorInstance.h:
  • runtime/JSArrayBufferView.cpp:

(JSC::JSArrayBufferView::toStringName): Deleted.

  • runtime/JSArrayBufferView.h:
  • runtime/JSMap.cpp:

(JSC::JSMap::toStringName): Deleted.

  • runtime/JSMap.h:
  • runtime/JSObject.cpp:

(JSC::JSObject::toStringName):

  • runtime/JSSet.cpp:

(JSC::JSSet::toStringName): Deleted.

  • runtime/JSSet.h:
  • runtime/JSWeakMap.cpp:

(JSC::JSWeakMap::toStringName): Deleted.

  • runtime/JSWeakMap.h:
  • runtime/JSWeakObjectRef.cpp:

(JSC::JSWeakObjectRef::toStringName): Deleted.

  • runtime/JSWeakObjectRef.h:
  • runtime/JSWeakSet.cpp:

(JSC::JSWeakSet::toStringName): Deleted.

  • runtime/JSWeakSet.h:
  • runtime/NumberObject.cpp:

(JSC::NumberObject::toStringName):

  • runtime/NumberObject.h:
  • runtime/ObjectPrototype.cpp:

(JSC::objectProtoFuncToString):

  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::toStringName): Deleted.

  • runtime/ProxyObject.h:
  • runtime/RegExpObject.cpp:

(JSC::RegExpObject::toStringName):

  • runtime/RegExpObject.h:
  • runtime/StringObject.cpp:

(JSC::StringObject::toStringName):

  • runtime/StringObject.h:
  • runtime/SymbolObject.cpp:

(JSC::SymbolObject::toStringName): Deleted.

  • runtime/SymbolObject.h:
  • wasm/js/JSWebAssembly.cpp:

(JSC::JSWebAssembly::finishCreation):

Source/WebCore:

This patch defines @@toStringTag symbols for all WebIDL prototypes, including
interfaces that are not exposed, as required by the spec [1].

With updated JSObject::toStringName() and @@toStringTag symbols added in r260992,
className() and toStringName() methods of JSDOMConstructorBase can be safely removed.

[1]: https://heycam.github.io/webidl/#dfn-class-string

Tests: imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/class-string-interface.any.js

imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/class-string-iterator-prototype-object.any.js

  • bindings/js/JSDOMConstructorBase.cpp:

(WebCore::JSDOMConstructorBase::className): Deleted.
(WebCore::JSDOMConstructorBase::toStringName): Deleted.

  • bindings/js/JSDOMConstructorBase.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GeneratePrototypeDeclaration):

  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::JSTestGlobalObjectPrototype::finishCreation):

Tools:

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:
2:45 AM Changeset in webkit [261158] by Diego Pino Garcia
  • 3 edits
    2 adds
    2 deletes in trunk/LayoutTests

[GTK] Gardening, update baselines after r260889
https://bugs.webkit.org/show_bug.cgi?id=211440

Unreviewed gardening.

  • platform/gtk/fast/canvas/webgl/webgl-compressed-texture-astc-expected.txt: Added.
  • platform/gtk/fast/canvas/webgl/webgl-depth-texture-expected.txt: Added.
  • platform/gtk/fast/xmlhttprequest/xmlhttprequest-nonexistent-file-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/svg/import/animate-elem-77-t-manual-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/svg/import/text-tspan-01-b-manual-expected.txt:
  • platform/gtk/storage/domstorage/sessionstorage/blocked-file-access-expected.txt: Removed.
2:03 AM Changeset in webkit [261157] by timothy_horton@apple.com
  • 5 edits in trunk

Excessive error logging from daemons trying to use WebKit, under -[UIDevice currentDevice]
https://bugs.webkit.org/show_bug.cgi?id=211397
<rdar://problem/61635403>

Reviewed by Simon Fraser.

Source/WebKit:

  • Shared/UserInterfaceIdiom.mm:

(WebKit::userInterfaceIdiomIsPad):
Adjust userInterfaceIdiomIsPad so that in daemons, it consults only MobileGestalt,
which returns the actual hardware model, and does not try to use UIDevice.
UIDevice is more accurate for applications because it will report that
the device is an iPhone when called inside an iPhone app running on iPad,
but it cannot be used in daemons that do not have a UIApplication.

For the behaviors we gate on this bit, it makes sense to use iPhone
behaviors on iPad in the iPhone app jail, so we continue using
UIDevice if possible.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
Make use of the new mechanism instead of going straight to MobileGestalt,
for the aforementioned reasons.

Tools:

  • TestWebKitAPI/ios/UserInterfaceSwizzler.h:

We need a UIApplication or WebKit won't look at UIDevice.

2:01 AM WebKitGTK/Debugging edited by Philippe Normand
(diff)
1:30 AM Changeset in webkit [261156] by ysuzuki@apple.com
  • 6 edits
    2 adds in trunk

[JSC] Implement BigInt.asIntN and BigInt.asUintN
https://bugs.webkit.org/show_bug.cgi?id=181144

Reviewed by Darin Adler.

JSTests:

  • stress/bigint-asintn.js: Added.

(shouldBe):
(shouldThrow):
(BigInt.asIntN):

  • stress/bigint-asuintn.js: Added.

(shouldBe):
(shouldThrow):
(BigInt.asUintN):

  • test262/expectations.yaml:

Source/JavaScriptCore:

This patch implements BigInt.asIntN[1] and BigInt.asUintN[2] features.
As the same to the other BigInt runtime C++ code, we port V8 code to JSC to implement both.

BigInt.asIntN is static_cast<intN_t>(BigInt value) and BigInt.asUintN is static_cast<uintN_t>(BigInt value).
They are getting slice of N bits from two's complement representation of the given BigInt. The difference between
asIntN and asUintN is asIntN renders MSB as a sign.

[1]: https://tc39.es/ecma262/#sec-bigint.asintn
[2]: https://tc39.es/ecma262/#sec-bigint.asuintn

  • runtime/BigIntConstructor.cpp:

(JSC::toBigInt):
(JSC::bigIntConstructorFuncAsUintN):
(JSC::bigIntConstructorFuncAsIntN):

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::zeroImpl):
(JSC::JSBigInt::divideImpl):
(JSC::JSBigInt::unaryMinusImpl):
(JSC::JSBigInt::remainderImpl):
(JSC::JSBigInt::digitDiv):
(JSC::JSBigInt::asIntNImpl):
(JSC::JSBigInt::asUintNImpl):
(JSC::JSBigInt::truncateToNBits):
(JSC::JSBigInt::truncateAndSubFromPowerOfTwo):
(JSC::JSBigInt::asIntN):
(JSC::JSBigInt::asUintN):

  • runtime/JSBigInt.h:
1:19 AM WebKitGTK/Debugging edited by Philippe Normand
(diff)
1:17 AM WebKitGTK/Debugging edited by Philippe Normand
(diff)
Note: See TracTimeline for information about the timeline view.