Timeline



Apr 15, 2020:

10:57 PM Changeset in webkit [260173] by mmaxfield@apple.com
  • 11 edits
    8 adds in trunk

[Cocoa] Password obscuring dots drawn with the system font are too small
https://bugs.webkit.org/show_bug.cgi?id=209692
<rdar://problem/60788385>

Reviewed by Darin Adler.

Source/WebCore:

The system font's U+2022 BULLET glyph got smaller. Instead, we should match
the native platform's behavior of using U+F79A. However, U+F79A is a PUA
character, meaning different fonts will draw it in arbitrary different ways.
Therefore, we should only use this character if we're drawing it with the
system font. Otherwise, we can take the old codepath and use U+2022 BULLET.

Tests: fast/text/text-security-disc-bullet-pua.html

platform/mac/fast/text/text-security-disc-bullet-pua-mac.html
platform/ios/fast/text/text-security-disc-bullet-pua-ios-new.html
platform/ios/fast/text/text-security-disc-bullet-pua-ios-old.html

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::text const):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::constructTextRun):

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseForStyle):

  • rendering/SimpleLineLayoutCoverage.cpp:

(WebCore::SimpleLineLayout::printReason):

  • rendering/SimpleLineLayoutCoverage.h:
  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::computeTextSecurityDiscShouldUsePUACodePoint const):

  • rendering/style/RenderStyle.h:

LayoutTests:

  • fast/text/text-security-disc-bullet-pua-expected.html: Added.
  • fast/text/text-security-disc-bullet-pua.html: Added.
  • platform/ios/fast/text/text-security-disc-bullet-pua-ios-new-expected.html: Added.
  • platform/ios/fast/text/text-security-disc-bullet-pua-ios-new.html: Added.
  • platform/ios/fast/text/text-security-disc-bullet-pua-ios-old-expected.html: Added.
  • platform/ios/fast/text/text-security-disc-bullet-pua-ios-old.html: Added.
  • platform/mac/fast/text/text-security-disc-bullet-pua-mac-expected.html: Added.
  • platform/mac/fast/text/text-security-disc-bullet-pua-mac.html: Added.
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
10:53 PM Changeset in webkit [260172] by jer.noble@apple.com
  • 7 edits in trunk/Source

REGRESSION (r260102): ASSERTION FAILED: m_arbitrators.contains(proxy) in WebKit::SharedArbitrator::endRoutingArbitrationForArbitrator
https://bugs.webkit.org/show_bug.cgi?id=210589
<rdar://problem/61844208>

Reviewed by Eric Carlson.

Source/WebCore:

Track whether the session successfully entered routing arbitration and only call
leaveRoutingAbritration() if entering was sucessful.

  • platform/audio/mac/AudioSessionMac.mm:

(WebCore::AudioSession::setCategory):

Source/WebKit:

Protect against an assertion in the SharedArbitrator in case where a WebProcess is terminated before it can call
endRoutingArbitration().

  • UIProcess/Media/AudioSessionRoutingArbitratorProxy.cpp:

(WebKit::AudioSessionRoutingArbitratorProxy::processDidTerminate):

  • UIProcess/Media/AudioSessionRoutingArbitratorProxy.h:
  • UIProcess/Media/cocoa/AudioSessionRoutingArbitratorProxyCocoa.mm:

(WebKit::SharedArbitrator::isInRoutingArbitrationForArbitrator):
(WebKit::SharedArbitrator::beginRoutingArbitrationForArbitrator):
(WebKit::SharedArbitrator::endRoutingArbitrationForArbitrator):
(WebKit::AudioSessionRoutingArbitratorProxy::processDidTerminate):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):

10:22 PM Changeset in webkit [260171] by Simon Fraser
  • 7 edits
    7 adds in trunk

[Async overflow scroll] background-attachment:fixed needs to disable async overflow scrolling
https://bugs.webkit.org/show_bug.cgi?id=210581

Reviewed by Zalan Bujtas.

Source/WebCore:

Start setting synchronousScrollingReasons on overflow scrolling nodes if the scrolling would move content
that has background-attachment:fixed (we can't use async scrolling there, because such content needs painting
on each scroll).

When style changes, we call FrameView::{add|remove}SlowRepaintObject(). That sets the "needsScrollingTreeUpdate"
compositing bit on the enclosing RenderLayer (note, any RenderLayer, not necessarily a scrolling one).
Setting that bit will ensure that RenderLayerCompositor does an "update backing and hierarchy" traversal,
and during this traversal, if we see a layer with the bit set, scrollingTreeState.needSynchronousScrollingReasonsUpdate
becomes true. At the end of the traversal this is used as a signal to call updateSynchronousScrollingNodes().

updateSynchronousScrollingNodes() needs to clear synchronousScrollingReasons on nodes that no longer need
to slow-scroll, and set it on those that do. To achieve this we use the set of slow-repaint renders from
FrameView, and the set of layers with scrolling nodes from RenderLayerCompositor, starting with the set of
all nodes, and pruning those known to be slow. synchronousScrollingReasons are cleared on the remainder.

Tests: scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow-dynamic.html

scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow.html
scrollingcoordinator/mac/fixed-backgrounds/fixed-background-on-overflow.html

  • page/FrameView.cpp:

(WebCore::FrameView::addSlowRepaintObject):
(WebCore::FrameView::removeSlowRepaintObject):

  • page/FrameView.h:
  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::setSynchronousScrollingReasons):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateCompositingLayers):
(WebCore::RenderLayerCompositor::updateBackingAndHierarchy):
(WebCore::RenderLayerCompositor::updateSynchronousScrollingNodes):

  • rendering/RenderLayerCompositor.h:

LayoutTests:

  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow-dynamic-expected.txt: Added.
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow-dynamic.html: Added.
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow-expected.txt: Added.
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow.html: Added.
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-on-overflow-expected.txt: Added.
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-on-overflow.html: Added.
9:34 PM Changeset in webkit [260170] by timothy_horton@apple.com
  • 8 edits in trunk

REGRESSION (r258337): Crash when right clicking on link that uses the system UI font with optimizeLegibility on Mojave
https://bugs.webkit.org/show_bug.cgi?id=210575
<rdar://problem/61646717>

Reviewed by Darin Adler.

Source/WebKit:

  • Shared/Cocoa/ArgumentCodersCocoa.mm:

(-[WKSecureCodingFontAttributeNormalizer archiver:willEncodeObject:]):
(IPC::encodeSecureCodingInternal):
The workaround introduced in r250640 and r251086 for archiving NSFonts
with optical sizing attributes is still incomplete, which was recently
revealed by making decoding failures more apparent (in r258337).

Specifically, the workaround was not applied to fonts encoded inside
NSAttributedStrings, which are encoded using a keyed archiver... only
to fonts encoded directly with CoreIPC.

Use a NSKeyedArchiver delegate to apply our fix-up to the optical sizing
attribute when any NSFont is being encoded, and only on platforms
that still exhibit the bug.

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

(WebKit::fontWithAttributes):
(WebKit::fontDescriptorWithFontAttributes): Deleted.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::updateFontManagerIfNeeded):

  • UIProcess/mac/WebPopupMenuProxyMac.mm:

(WebKit::WebPopupMenuProxyMac::showPopupMenu):
Refactor fontDescriptorWithFontAttributes to just return a font since that's what all callers actually want.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewGetContents.mm:

(TEST):
Add an API test ensuring that we can encode and decode a NSAttributedString
that includes a system-ui font with optimizeLegibility on.

8:38 PM Changeset in webkit [260169] by wilander@apple.com
  • 21 edits
    4 adds in trunk

Add SPI to configure WebsiteDataStores with a URL for standalone web applications and use it to disable first-party website data removal in ITP
https://bugs.webkit.org/show_bug.cgi?id=209634
<rdar://problem/60943970>

Reviewed by Alex Christensen.

Source/WebKit:

This change adds a new property to _WKWebsiteDataStoreConfiguration.h called
standaloneApplicationURL with which the hosting application can inform the
website data store that it's running as a standalone web application.

This change also forwards an existing standaloneApplicationURL as a
WebCore::RegistrableDomain into ITP so that explicit exemptions can be made
to first parties of standalone web applications. The exemptions made here
all for all of ITP's website data removal. This part of the change is
covered by the new layout tests.

Tests: http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database.html

http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion.html

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

(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor):

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:

(WebKit::ResourceLoadStatisticsStore::setStandaloneApplicationDomain):
(WebKit::ResourceLoadStatisticsStore::standaloneApplicationDomain const):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::setStandaloneApplicationDomain):

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

(WebKit::NetworkSession::NetworkSession):
(WebKit::NetworkSession::forwardResourceLoadStatisticsSettings):

  • NetworkProcess/NetworkSession.h:
  • Shared/ResourceLoadStatisticsParameters.h:

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

  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:

(-[_WKWebsiteDataStoreConfiguration standaloneApplicationURL]):
(-[_WKWebsiteDataStoreConfiguration setStandaloneApplication:]):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::platformSetNetworkParameters):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::copy const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::standaloneApplicationURL const):
(WebKit::WebsiteDataStoreConfiguration::setStandaloneApplicationURL):

Tools:

Added a new test option called standaloneWebApplicationURL so that layout tests can
configure the website data store accordingly. Picking it up and using it requires
creating a new website data store with a configuration that has the standalone web
application URL.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::configureWebsiteDataStoreTemporaryDirectories):
(WTR::TestController::defaultWebsiteDataStore):
(WTR::parseStringTestHeaderValueAsURL):
(WTR::updateTestOptionsFromTestHeader):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::hasSameInitializationOptions const):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::platformCreateWebView):

LayoutTests:

  • http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database-expected.txt: Added.
  • http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database.html: Added.
  • http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-expected.txt: Added.
  • http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion.html: Added.
7:19 PM Changeset in webkit [260168] by Andres Gonzalez
  • 6 edits
    2 adds in trunk/Source/WebCore

Add logging to core accessibility.
https://bugs.webkit.org/show_bug.cgi?id=210564

Reviewed by Chris Fleizach.

Added AXLogger class and AXTRACE macro. Used them in AXIsolatedTree.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/AXLogger.cpp: Added.

(WebCore::AXLogger::AXLogger):
(WebCore::AXLogger::~AXLogger):

  • accessibility/AXLogger.h: Added.
  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::AXIsolatedTree):
(WebCore::AXIsolatedTree::~AXIsolatedTree):
(WebCore::AXIsolatedTree::create):
(WebCore::AXIsolatedTree::nodeInTreeForID):
(WebCore::AXIsolatedTree::treeForID):
(WebCore::AXIsolatedTree::createTreeForPageID):
(WebCore::AXIsolatedTree::removeTreeForPageID):
(WebCore::AXIsolatedTree::treeForPageID):
(WebCore::AXIsolatedTree::nodeForID const):
(WebCore::AXIsolatedTree::objectsForIDs const):
(WebCore::AXIsolatedTree::generateSubtree):
(WebCore::AXIsolatedTree::createSubtree):
(WebCore::AXIsolatedTree::updateNode):
(WebCore::AXIsolatedTree::updateSubtree):
(WebCore::AXIsolatedTree::updateChildren):
(WebCore::AXIsolatedTree::focusedUIElement):
(WebCore::AXIsolatedTree::rootNode):
(WebCore::AXIsolatedTree::setRootNode):
(WebCore::AXIsolatedTree::setFocusedNode):
(WebCore::AXIsolatedTree::setFocusedNodeID):
(WebCore::AXIsolatedTree::removeNode):
(WebCore::AXIsolatedTree::removeSubtree):
(WebCore::AXIsolatedTree::appendNodeChanges):
(WebCore::AXIsolatedTree::applyPendingChanges):

  • platform/Logging.h:
7:18 PM Changeset in webkit [260167] by Chris Dumez
  • 6 edits in trunk

[IPC Hardening] MachMessage::messageSize() should use checked arithmetic
https://bugs.webkit.org/show_bug.cgi?id=210567
<rdar://problem/61734355>

Source/WebKit:

Reviewed by Geoffrey Garen.

Replace call to round_msg() call with a call to our new safeRoundMsg() which does
the same alignment up but using checked arithmetic to protect against overflows.

  • Platform/IPC/cocoa/MachMessage.cpp:

(IPC::safeRoundMsg):
(IPC::MachMessage::messageSize):

Source/WTF:

Reviewed by Geoffrey Garen.

Add operator / to CheckedArithmetic for convenience.

  • wtf/CheckedArithmetic.h:

(WTF::safeDivide):
(WTF::Checked::operator/=):
(WTF::operator/):

Tools:

Reviewed by Geoff Garen.

Add API test coverage for / operator in Checked.

  • TestWebKitAPI/Tests/WTF/CheckedArithmeticOperations.cpp:

(TestWebKitAPI::TEST):

6:45 PM Changeset in webkit [260166] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Disable Store-load pair auto-vectorization for JSC
https://bugs.webkit.org/show_bug.cgi?id=210574

Reviewed by Geoffrey Garen.

slp-vectorization appears to make our slow path code significantly
slower. That's because when we materialize our constant bytecode
structs into C++ we load all the fields at the same time then
widen them to the struct's member C++ size. Since we have 3
different possible sizes Clang generates a total mess of
code. Disabling this does not appear to be a regression on any
platform I tested and improves the performance of slow path code
significantly in micro benchmarks.

  • CMakeLists.txt:
  • Configurations/JavaScriptCore.xcconfig:
6:40 PM Changeset in webkit [260165] by rmorisset@apple.com
  • 5 edits in trunk/Source

Flaky Test: fetch/fetch-worker-crash.html
https://bugs.webkit.org/show_bug.cgi?id=187257
<rdar://problem/48527526>

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

The crash is coming from setExceptionPorts which is inlined in WTF::registerThreadForMachExceptionHandling.
From the error message we know that the problem is an "invalid port right".
http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/thread_set_exception_ports.html tells us that the "port right" is the third parameter to thread_set_exception_ports, which is exceptionPort in our case.
exceptionPort is a global variable defined at the top of Signals.cpp:

static mach_port_t exceptionPort;

It is set in exactly one place:

kern_return_t kr = mach_port_allocate(mach_task_self(), MACH_PORT_RIGHT_RECEIVE, &exceptionPort);

in a std::call_once, in startMachExceptionHandlerThread().
Note that startMachExceptionHandlerThread() is called from the main thread just before the point where we are stuck.. and there is no synchronization to make sure it completed and its effect is visible to the worker thread before it uses exceptionPort.

So I think the crash is due to this race between allocating exceptionPort and using it, resulting in an invalid exceptionPort being sometimes passed to the kernel.
So this patch is a simple speculative fix, by running startMachExceptionHandlerThread() in initializeThreading(), before JSLock()::lock() can be run.

  • runtime/InitializeThreading.cpp:

(JSC::initializeThreading):

Source/WTF:

Make startMachExceptionHandlerThread visible so that we can make sure it is called whenever initializing JSC.

  • wtf/threads/Signals.cpp:

(WTF::startMachExceptionHandlerThread):

  • wtf/threads/Signals.h:
5:31 PM Changeset in webkit [260164] by Kocsen Chung
  • 2 edits in branches/safari-610.1.10-branch/Source/WebKit

Cherry-pick r260133. rdar://problem/61856640

REGRESSION (r259610): WebGL does not work at all on iOS (was: Google Maps tiles turn black after initial load)
<rdar://problem/61794480>

Unreviewed, partial revert of r259610 because it broke Google Maps.
Stop using RunningBoard for the "Foreground" assertion because it fails to
give the target GPU access.

  • UIProcess/ios/ProcessAssertionIOS.mm: (WebKit::runningBoardNameForAssertionType):

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

5:07 PM Changeset in webkit [260163] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

Lay the groundwork for SynchronousScrollingReason on overflow nodes
https://bugs.webkit.org/show_bug.cgi?id=210565

Reviewed by Tim Horton.

Make setSynchronousScrollingReasons() public on ScrollingCoordinator because we're going
to be calling it for overflow scrolling nodes.

Call ScrollingCoordinator::slowRepaintObjectsDidChange() not just when we go between
none some some slow-repaint objects, but whenever the set changes. slowRepaintObjectsDidChange()
is lightweight.

Minor cleanup in FrameView to avoid testing Page* nullness every time.

  • page/FrameView.cpp:

(WebCore::FrameView::prepareForDetach):
(WebCore::FrameView::isScrollSnapInProgress const):
(WebCore::FrameView::usesAsyncScrolling const):
(WebCore::FrameView::addSlowRepaintObject):
(WebCore::FrameView::removeSlowRepaintObject):
(WebCore::FrameView::addViewportConstrainedObject):
(WebCore::FrameView::removeViewportConstrainedObject):
(WebCore::FrameView::scrollingCoordinator const):
(WebCore::FrameView::shouldUpdateCompositingLayersAfterScrolling const):
(WebCore::FrameView::isRubberBandInProgress const):
(WebCore::FrameView::requestScrollPositionUpdate):
(WebCore::FrameView::layoutOrVisualViewportChanged):
(WebCore::FrameView::performPostLayoutTasks):
(WebCore::FrameView::scrollableAreaSetChanged):
(WebCore::FrameView::wheelEvent):
(WebCore::FrameView::setScrollPinningBehavior):

  • page/FrameView.h:
  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::slowRepaintObjectsDidChange):
(WebCore::ScrollingCoordinator::synchronousScrollingReasonsForFrameView const):
(WebCore::ScrollingCoordinator::updateSynchronousScrollingReasons):
(WebCore::ScrollingCoordinator::shouldUpdateScrollLayerPositionSynchronously const):
(WebCore::ScrollingCoordinator::synchronousScrollingReasonsAsText const):
(WebCore::ScrollingCoordinator::frameViewHasSlowRepaintObjectsDidChange): Deleted.
(WebCore::ScrollingCoordinator::synchronousScrollingReasons const): Deleted.

  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::setSynchronousScrollingReasons):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateBacking):

5:04 PM Changeset in webkit [260162] by Ross Kirsling
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed build fix for r260161.

  • runtime/IntlObject.cpp:

(JSC::canonicalLangTag):

4:33 PM Changeset in webkit [260161] by Ross Kirsling
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, address Darin's feedback on r260151.

  • runtime/IntlObject.cpp:

(JSC::canonicalLangTag):

4:32 PM Changeset in webkit [260160] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebKit

[IPC Hardening] MachMessage::create() should use checked arithmetic
<https://webkit.org/b/210572>
<rdar://problem/61729947>

Reviewed by Chris Dumez.

  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::Connection::sendOutgoingMessage):

  • Add nullptr check since MachMessage::create() can return an empty std::unique_ptr<> now.
  • Platform/IPC/cocoa/MachMessage.cpp:

(IPC::MachMessage::create):

  • Use CheckedSize to compute the buffer size.
4:26 PM Changeset in webkit [260159] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Unreviewed PLT fix after r260081.

  • WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:

(WebKit::InjectedBundle::decodeBundleParameters):

4:17 PM Changeset in webkit [260158] by Ben Nham
  • 2 edits in trunk/Source/WebKit

DidFirstLayerFlush IPC can be head-of-line-blocked and delay first paint by 200+ ms on process swap
https://bugs.webkit.org/show_bug.cgi?id=210571

Reviewed by Geoffrey Garen.

When we process swap, the layer swap/unhiding for the new hosted layer is gated by the
DidFirstLayerFlush IPC. But actually sending this IPC can be head-of-line blocked for an
arbitrarily long time because we append it to the queue of messages for the main run loop to
process. In some cases, e.g. for the NYT PLT content, this blocks first paint by 200 ms
while the WebProcess main thread is busy doing other things (like executing deferred
scripts).

To fix this, use a CATransaction commit handler to send the IPC right after we commit.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::sendDidFirstLayerFlushIfNeeded):

4:12 PM Changeset in webkit [260157] by Alan Coon
  • 2 edits in branches/safari-609-branch/Source/WebKit

Cherry-pick r260101. rdar://problem/61853298

createArchiveList() in WebCoreArgumentCodersMac.mm should do more validity checks
<https://webkit.org/b/210448>
<rdar://problem/61677029>

Reviewed by Darin Adler.

  • Shared/mac/WebCoreArgumentCodersMac.mm: (IPC::createArchiveList): Add more validity checks.

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

4:09 PM Changeset in webkit [260156] by Wenson Hsieh
  • 3 edits in trunk/Source/WebKit

Unreviewed, fix the watchOS and tvOS builds after r260146

Move some code for controlling the presentation of context menus on iOS behind USE(UICONTEXTMENU).

  • UIProcess/ios/WKActionSheetAssistant.h:
  • UIProcess/ios/WKContentViewInteraction.mm:
3:16 PM Changeset in webkit [260155] by Diego Pino Garcia
  • 2 edits
    8 adds in trunk/LayoutTests

[GTK] Gardening, emit baselines after r260139
https://bugs.webkit.org/show_bug.cgi?id=210573

Unreviewed gardening.

  • platform/gtk/imported/w3c/web-platform-tests/css/css-animations/Element-getAnimations.tentative-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/web-animations/interfaces/Animation/commitStyles-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/web-animations/interfaces/KeyframeEffect/style-change-events-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/web-animations/interfaces/KeyframeEffect/target-expected.txt: Added.
3:01 PM Changeset in webkit [260154] by Jack Lee
  • 2 edits in trunk/LayoutTests

Infinite loop in InsertListCommand::doApply()
https://bugs.webkit.org/show_bug.cgi?id=210354
<rdar://problem/61427778>

Reviewed by Geoffrey Garen.

Update the regression test for this hang issue.

  • editing/inserting/insert-list-end-of-table-expected.txt: Added.
  • editing/inserting/insert-list-end-of-table.html: Added.
2:57 PM Changeset in webkit [260153] by Jack Lee
  • 3 edits
    2 adds in trunk

Source/WebCore:
ASSERTION FAILED: !selectionToDelete.isNone() in TypingCommand::forwardDeleteKeyPressed
when deleting a UserSelect::None element.
https://bugs.webkit.org/show_bug.cgi?id=210530
<rdar://problem/58591480>

Reviewed by Geoffrey Garen.

Quit forwardDeleteKeyPressed() if FrameSelection::modify() returns empty selection.

Test: editing/deleting/forward-delete-UserSelect-None-element.html

  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::forwardDeleteKeyPressed):

LayoutTests:
ASSERTION FAILED: !selectionToDelete.isNone() in TypingCommand::forwardDeleteKeyPressed
when deleting a UserSelect::None element.
https://bugs.webkit.org/show_bug.cgi?id=210530
<rdar://problem/58591480>

Reviewed by Geoffrey Garen.

Added a regression test for the crash.

  • editing/deleting/forward-delete-UserSelect-None-element-expected.txt: Added.
  • editing/deleting/forward-delete-UserSelect-None-element.html: Added.
2:23 PM Changeset in webkit [260152] by Kocsen Chung
  • 1 copy in tags/Safari-610.1.9.3

Tag Safari-610.1.9.3.

2:18 PM Changeset in webkit [260151] by Ross Kirsling
  • 9 edits in trunk

[ECMA-402] Extension values should default to true, canonicalize without "-true"
https://bugs.webkit.org/show_bug.cgi?id=210457

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/intl-collator.js:
  • stress/intl-datetimeformat.js:
  • stress/intl-numberformat.js:
  • stress/intl-object.js:
  • stress/intl-pluralrules.js:

Fix tests.

  • test262/expectations.yaml:

Mark two test cases as passing.

Source/JavaScriptCore:

This patch implements two simple intertwining updates to ECMA-402:

  • runtime/IntlObject.cpp:

(JSC::canonicalLangTag):
(JSC::resolveLocale):

2:07 PM Changeset in webkit [260150] by Peng Liu
  • 10 edits in trunk/Source

Video elements don't return to the correct position when exiting fullscreen
https://bugs.webkit.org/show_bug.cgi?id=210529

Reviewed by Jer Noble.

Source/WebCore:

Add WEBCORE_EXPORT to the function setNeedsDOMWindowResizeEvent().

  • dom/Document.h:

Source/WebKit:

Some web pages use the "resize" event handler to calculate the element size after
they exit fullscreen, and the calculation is based on the container element size which
might be affected by the fullscreen mode.

We need to call WebPageProxy::setNeedsDOMWindowResizeEvent() to fire the "resize" event
in the repaint callback after the exiting fullscreen process is completed and the
possible layout change due to exiting fullscreen is done. Otherwise the size calculation
might be wrong.

  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(-[WKFullScreenWindowController _completedExitFullScreen]):

  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController completeFinishExitFullScreenAnimationAfterRepaint]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setNeedsDOMWindowResizeEvent):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
1:42 PM Changeset in webkit [260149] by Kocsen Chung
  • 8 edits in branches/safari-610.1.9-branch/Source

Versioning.

1:38 PM Changeset in webkit [260148] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

stress/delete-property-dfg-inline.js.ftl-no-cjit-small-pool consistently timing out on debug JSC bot
https://bugs.webkit.org/show_bug.cgi?id=210513

Patch by Justin Michaud <justin@justinmichaud.com> on 2020-04-15
Reviewed by Saam Barati.

  • stress/delete-property-dfg-inline.js:
1:22 PM Changeset in webkit [260147] by Wenson Hsieh
  • 7 edits
    2 adds in trunk

[iPadOS] Some pages indefinitely zoom in and out due to idempotent text autosizing
https://bugs.webkit.org/show_bug.cgi?id=210551
<rdar://problem/56820674>

Reviewed by Tim Horton.

Source/WebCore:

Rename m_initialScale and initialScale() on Page to m_initialScaleIgnoringContentSize and
initialScaleIgnoringContentSize(), respectively. See WebKit/ChangeLog for more details.

Test: fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-reaches-stable-state.html

  • page/Page.cpp:

(WebCore::Page::setInitialScaleIgnoringContentSize):
(WebCore::Page::setInitialScale): Deleted.

  • page/Page.h:

(WebCore::Page::initialScaleIgnoringContentSize const):
(WebCore::Page::initialScale const): Deleted.

  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjustmentForTextAutosizing):

Source/WebKit:

On a non-responsive web page with one or lines of non-wrapping text of a specific length (just under 1920px),
it's possible for the combination of idempotent text autosizing heuristics and viewport shrink-to-fit to cause
the single line of text to grow and shrink in size indefinitely, and additionally cause the initial scale to
thrash between multiple values indefinitely. This manifests in the entire page repeatedly zooming in and out
immediately after page load.

Consider the following scenario:

(1) A viewport configuration change (e.g. due to parsing the viewport meta tag) schedules the timer to reset

idempotent text autosizing. Let's suppose the page has a really long line of non-wrapping 12px text that is
below 1920px wide.

(2) The timer fires, invalidating styles and recomputing text autosizing given the current initial scale. The

current initial scale is below 1, since ViewportConfiguration will attempt to shrink to fit the page to
avoid horizontal scrolling. This causes text autosizing to boost the long line of text to a larger value
(let's say 17px).

(3) The next time we perform style recomputation and layout, we discover that the content width of the page is

now larger than 1920px, which is the maximum width which we'll attempt to shrink to fit; when computing
initial scale, we give up trying to shrink down to avoid making the inital scale too small, and instead just
keep it at 1.

(4) This change in viewport configuration then schedules another idempotent text autosizing reset. When this

timer fires, it sees that the initial scale is now 1, which means that the text is no longer boosted, so we
make the single line of text small again (12px).

(5) After the next style recomputation and layout, this causes the content width of the page to dip below the

1920px threshold, causing the initial scale to dip below 1 again. As detailed above, this schedules another
idempotent text autosizing update, which now boosts font size once again, and the cycle continues.

To fix this, instead of consulting the initial scale (ViewportConfiguration::initialScale()) when computing
the boosted font size for idempotent text autosizing, we can instead ask for the initial scale ignoring content
size (ViewportConfiguration::initialScaleIgnoringContentSize()). This prevents changes in content size due to
idempotent autosizing from affecting the idempotent autosizing heuristic (through the different initial scale),
and ensures that this method of text autosizing actually remains idempotent.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::resetIdempotentTextAutosizingIfNeeded):
(WebKit::WebPage::viewportConfigurationChanged):

LayoutTests:

Add a layout test to verify that on a page with a single line of text, if idempotent text autosizing is enabled,
the text size is boosted by idempotent autosizing, but we don't end up getting into a state where the computed
font size flickers between multiple values.

  • fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-reaches-stable-state-expected.txt: Added.
  • fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-reaches-stable-state.html: Added.
1:20 PM Changeset in webkit [260146] by Megan Gardner
  • 5 edits in trunk/Source/WebKit

Data Detected Actions sheets are presented from odd locations.
https://bugs.webkit.org/show_bug.cgi?id=210531
<rdar://problem/60941346>

Reviewed by Wenson Hsieh.

Use the existing context menu targeted preview code to ensure that the
data detected menus are presented in a good location.

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

(-[WKActionSheetAssistant contextMenuInteraction:previewForHighlightingMenuWithConfiguration:]):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView contextMenuInteraction:willEndForConfiguration:animator:]):

12:51 PM Changeset in webkit [260145] by Ross Kirsling
  • 7 edits in trunk

[ECMA-402] Fix Intl.DateTimeFormat patterns and fields in WebKit
https://bugs.webkit.org/show_bug.cgi?id=209783

Reviewed by Keith Miller.

JSTests:

  • stress/date-toLocaleString.js:
  • stress/intl-datetimeformat.js:

Add tests and fix some existing ones.

  • test262/config.yaml:
  • test262/expectations.yaml:

Mark eight test cases passing...but skip half of them due to outdated CLDR data in macOS system ICU.

Source/JavaScriptCore:

This patch implements two intertwining normative changes to Intl.DateTimeFormat:

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::initializeDateTimeFormat):
(JSC::IntlDateTimeFormat::partTypeString):

12:42 PM Changeset in webkit [260144] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening of flaky failures
https://bugs.webkit.org/show_bug.cgi?id=210563

Unreviewed gardening.

  • platform/gtk/TestExpectations:
12:15 PM Changeset in webkit [260143] by Russell Epstein
  • 1 copy in tags/Safari-610.1.9.2

Tag Safari-610.1.9.2.

11:53 AM Changeset in webkit [260142] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

REGRESSION (r258977): Crash under Document::visibilityStateChanged
https://bugs.webkit.org/show_bug.cgi?id=210555

Reviewed by Youenn Fablet.

Re-introduce null check of page in Document::visibilityStateChanged() which got inadvertently
dropped in r258977.

  • dom/Document.cpp:

(WebCore::Document::visibilityStateChanged):

11:32 AM Changeset in webkit [260141] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Remove expectations for imported/blink/storage/indexeddb/blob-basics-metadata.html
https://bugs.webkit.org/show_bug.cgi?id=199117

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
11:21 AM Changeset in webkit [260140] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

REGRESSION( r260114): [ Mac and iOS ] imported/w3c/web-platform-tests/web-animations/timing-model/timelines/document-timelines.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=210549
<rdar://problem/61828495>

Unreviewed.

Partial revert of r260114. See webkit.org/b/210559 for details.

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::serviceRequestAnimationFrameCallbacks):

10:39 AM Changeset in webkit [260139] by graouts@webkit.org
  • 22 edits in trunk

[Web Animations] Add support for pseudoElement on KeyframeEffect and KeyframeEffectOptions
https://bugs.webkit.org/show_bug.cgi?id=207290
<rdar://problem/59199003>

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Mark 23 additional WPT tests as PASS.

  • web-platform-tests/css/css-animations/Document-getAnimations.tentative-expected.txt:
  • web-platform-tests/css/css-animations/Element-getAnimations.tentative-expected.txt:
  • web-platform-tests/css/css-transitions/Document-getAnimations.tentative-expected.txt:
  • web-platform-tests/web-animations/idlharness.window-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/commitStyles-expected.txt:
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/style-change-events-expected.txt:
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/target-expected.txt:

Source/WebCore:

We add the required IDL bindings such that JS-originated Web Animations can target pseudo-elements, either via the KeyframeEffect.pseudoElement
property, or via the KeyframeEffectOptions.pseudoElement property, which is set on the object passed to the KeyframeEffect constrcutor and
Element.animate().

This means that a PseudoElement can be targeted by an animation even if it's not been created through style resolution by virtue of a ::before
or ::after selector and a "content" style rule. This means that when either the "target" or "pseudoElement" property of KeyframeEffect is set,
we ensure a PseudoElement is created and set on the host element if required. And additionally, we ensure that during style resolution, animations
are applied to such pseudo-elements with a new PseudoElement::isTargetedByKeyframeEffectRequiringPseudoElement() method that indicates that a
JS-originated KeyframeEffect targets this pseudo-element.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::create): Handle the new KeyframeEffectOptions.pseudoElement property in the KeyframeEffect constructor.
(WebCore::KeyframeEffect::targetsPseudoElement const): Indicates whether this effect targets a pseudo-element and not a regular
element or a null target.
(WebCore::KeyframeEffect::targetElementOrPseudoElement const): Use the new targetsPseudoElement() method to determine whether a
pseudo-element is targeted. We also remove an assertion that only made sense when m_pseudoId could only be set via a CSS-originated
animation and another one when the only possible m_pseudoId values were PseudoId::Before and PseudoId::After.
(WebCore::KeyframeEffect::setTarget): Call the new didChangeTargetElementOrPseudoElement() method if the provided value differs
from the stored value for m_target.
(WebCore::KeyframeEffect::pseudoElement const): Return the matching normalized string with a :: prefix for m_pseudoId if the target
is a pseudo-element. Note that PseudoElement::pseudoElementNameForEvents() will only return a string for "::before" and "::after" since
we only know how to animate these pseudo-elements.
(WebCore::KeyframeEffect::setPseudoElement): Determine a matching PseudoId, if any, for the provided string, and call the new
didChangeTargetElementOrPseudoElement() method if the provided value differs from the stored value for m_pseudoId.
(WebCore::KeyframeEffect::didChangeTargetElementOrPseudoElement): New method called when either m_target or m_pseudoId is changed
such that we can ensure the required PseudoElement is created if the animation targets a pseudo-element. Then we run the same logic
that we used to in KeyframeEffect::setTarget().
(WebCore::KeyframeEffect::requiresPseudoElement const): Indicates whether a PseudoElement must remain created for this KeyframeEffect,
which is only necessary for JS-originated effects targeting a pseudo-element.

  • animation/KeyframeEffect.h:
  • animation/KeyframeEffect.idl:
  • animation/KeyframeEffectOptions.h:
  • animation/KeyframeEffectOptions.idl:
  • animation/KeyframeEffectStack.cpp:

(WebCore::KeyframeEffectStack::requiresPseudoElement const): Indicates whether one or more JS-originated keyframe effects in the stack target
the PseudoElement owning this stack.

  • animation/KeyframeEffectStack.h:
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::commitStyles): Use KeyframeEffect::targetsPseudoElement() to determine whether the animation's effect's target is a
pseudo-element, in which case we need to throw a NoModificationAllowedError exception.

  • dom/PseudoElement.cpp:

(WebCore::PseudoElement::rendererIsNeeded): Return true also when one or more JS-originated keyframe effects in the stack target this pseudo-element.
(WebCore::PseudoElement::isTargetedByKeyframeEffectRequiringPseudoElement): Return true when one or more JS-originated keyframe effects in the stack
target this pseudo-element.

  • dom/PseudoElement.h:
  • rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:

(WebCore::createContentRenderers): Remove the assertion that the "content" property was set since it's valid for this function to now be called
due to JS-originated keyframe effects targeting the given pseudo-element. Instead we add an assertion that there are such keyframe effects in
case no "content" property was set.
(WebCore::RenderTreeUpdater::GeneratedContent::updatePseudoElement): Only remove pseudo-elements if there are no JS-originated keyframe effects
targeting the specified pseudo-element.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolvePseudoStyle): Allow animated style resolution for pseudo-elements targeted by JS-originated keyframe effects.

10:27 AM Changeset in webkit [260138] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS ] scrollingcoordinator/mac/latching/horizontal-overflow-back-swipe.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=210351

Unreviewed test gardening.

  • platform/mac/TestExpectations:
10:22 AM Changeset in webkit [260137] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[iOS] Potential crash under WebProcess::platformInitializeWebProcess
https://bugs.webkit.org/show_bug.cgi?id=210547

Reviewed by Brent Fulgham.

If the UI process fails to issue an extension to the runningboard service, the WebContent process will crash
while trying to consume this extension.

No new tests, since the test runners are unsandboxed, so issuing the extension will always succeed.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

9:39 AM Changeset in webkit [260136] by Russell Epstein
  • 6 edits in branches/safari-610.1.9-branch

Cherry-pick r259753. rdar://problem/61360674

[macOS] Crash under WebKit::SandboxExtension::consume
https://bugs.webkit.org/show_bug.cgi?id=210188

Reviewed by Geoffrey Garen.

Source/WebKit:

When issuing a mach lookup extension to the database mapping service in the UI process fails, the WebContent
process will crash when trying to consume the extension.

No new tests, since I am not able to reproduce the issue.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess):
  • WebProcess/com.apple.WebProcess.sb.in:

LayoutTests:

  • fast/sandbox/mac/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/mac/sandbox-mach-lookup.html:

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

9:39 AM Changeset in webkit [260135] by Russell Epstein
  • 8 edits in branches/safari-610.1.9-branch/Source

Versioning.

9:35 AM Changeset in webkit [260134] by Brent Fulgham
  • 5 edits in trunk

[Cocoa] Remove generic parameter serialization fallback
https://bugs.webkit.org/show_bug.cgi?id=210509
<rdar://problem/55522650>

Reviewed by Geoffrey Garen.

Source/WebKit:

Tested by BundleFormDelegate parameter serialization tests...

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setInputDelegate:]):

  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::elementDidFocus):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/BundleFormDelegate.mm:

(WKWebProcessPlugInWithoutRegisteredCustomClass): Update to reflect
fact that we block serialization of unregistered classes.

9:18 AM Changeset in webkit [260133] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

REGRESSION (r259610): WebGL does not work at all on iOS (was: Google Maps tiles turn black after initial load)
<rdar://problem/61794480>

Unreviewed, partial revert of r259610 because it broke Google Maps.
Stop using RunningBoard for the "Foreground" assertion because it fails to
give the target GPU access.

  • UIProcess/ios/ProcessAssertionIOS.mm:

(WebKit::runningBoardNameForAssertionType):

9:06 AM Changeset in webkit [260132] by Carlos Garcia Campos
  • 11 edits in trunk

[GTK4] Fix use of gtk init functions
https://bugs.webkit.org/show_bug.cgi?id=210550

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Add gtk_init and gtk_init_check receiving parameters to GtkVersioning.

  • PlatformGTK.cmake:
  • platform/graphics/PlatformDisplay.cpp:
  • platform/gtk/GtkVersioning.h:

(gtk_init):
(gtk_init_check):

Source/WebKit:

Include GtkVersioning.h instead of gtk.h

  • WebProcess/gtk/WebProcessMainGtk.cpp:

Tools:

Include GtkVersioning.h instead of gtk.h.

  • TestWebKitAPI/Tests/WebKitGtk/AccessibilityTestServer.cpp:
  • TestWebKitAPI/Tests/WebKitGtk/InspectorTestServer.cpp:
  • TestWebKitAPI/gtk/main.cpp:
  • WebKitTestRunner/gtk/main.cpp:
8:48 AM Changeset in webkit [260131] by ysuzuki@apple.com
  • 4 edits
    20 adds in trunk

import.meta.url: baseURL for a module script should be response URL, not request URL
https://bugs.webkit.org/show_bug.cgi?id=205294

Reviewed by Youenn Fablet.

Source/WebCore:

The module should expose response URL as import.meta.url instead of request URL.
If redirection happens, this URL should be redirected one.

  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::ScriptModuleLoader::resolve):
(WebCore::ScriptModuleLoader::responseURLFromRequestURL):
(WebCore::ScriptModuleLoader::createImportMetaProperties):
(WebCore::ScriptModuleLoader::notifyFinished):

  • bindings/js/ScriptModuleLoader.h:

LayoutTests:

AppleWin networking does not properly propagate fragment if redirect location clears it. This is a known issue[1].

[1]: See http/tests/navigation/redirect-to-fragment2.html [ Failure ] in platform/win/TestExpectations.

  • http/wpt/html/semantics/scripting-1/the-script-element/module/module-meta-url-redirect-expected.txt: Added.
  • http/wpt/html/semantics/scripting-1/the-script-element/module/module-meta-url-redirect-with-fragment-expected.txt: Added.
  • http/wpt/html/semantics/scripting-1/the-script-element/module/module-meta-url-redirect-with-fragment.html: Added.
  • http/wpt/html/semantics/scripting-1/the-script-element/module/module-meta-url-redirect.html: Added.
  • http/wpt/html/semantics/scripting-1/the-script-element/module/module-meta-url-with-fragment-expected.txt: Added.
  • http/wpt/html/semantics/scripting-1/the-script-element/module/module-meta-url-with-fragment.html: Added.
  • http/wpt/html/semantics/scripting-1/the-script-element/module/resources/import-meta-url-expose.js: Added.
  • http/wpt/resources/redirect.py: Added.

(main):

  • http/wpt/service-workers/module-meta-url-fragment-worker.js: Added.

(async e):

  • http/wpt/service-workers/module-meta-url-fragment.https-expected.txt: Added.
  • http/wpt/service-workers/module-meta-url-fragment.https.html: Added.
  • http/wpt/service-workers/resources/module-meta-url-fragment.html: Added.
  • platform/win/http/wpt/html/semantics/scripting-1/the-script-element/module/module-meta-url-redirect-with-fragment-expected.txt: Added.
8:46 AM Changeset in webkit [260130] by Jonathan Bedard
  • 4 edits in trunk/Tools

REGRESSION: [ Mojave+ Debug WK1 ] Layout Test imported/blink/storage/indexeddb/blob-basics-metadata.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=199117
<rdar://problem/52967035>

Reviewed by Alexey Proskuryakov.

  • Scripts/run-javascriptcore-tests: Set JSC_useKernTCSM to false.
  • Scripts/webkitpy/port/base.py:

(Port.setup_environ_for_server): Forward JSC_useKernTCSM.

  • Scripts/webkitpy/port/driver.py:

(Driver._setup_environ_for_driver): Set JSC_useKernTCSM to false.

8:32 AM Changeset in webkit [260129] by jer.noble@apple.com
  • 4 edits in trunk/Source

isNullFunctionPointer() can fail for symbols not explicitly marked as weakly linked.
https://bugs.webkit.org/show_bug.cgi?id=210532

Reviewed by Tim Horton.

Source/ThirdParty/libwebrtc:

  • Source/webrtc/sdk/WebKit/WebKitUtilities.h:

Source/WebCore:

Symbols whose declarations are explicitly marked as weakly imported are guaranteed to be
NULL when the library containing those symbols is not available at runtime, or when the
symbol itself isn't present in the version of the library which is available at runtime. For
symbols which are not explicitly marked as weakly imported (because, e.g., the framework
itself is weakly imported), this technique can fail. Rather than test the nullity of a
random static C++ class method with isNullFunctionPointer(), explicitly mark as weak_import
a utility method added by the WebKit project, which conveniently is already used from within
LibWebRTCProviderCocoa, and test the nullity of that method instead.

  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:

(WebCore::LibWebRTCProvider::webRTCAvailable):

8:29 AM Changeset in webkit [260128] by Peng Liu
  • 2 edits in trunk/Source/WebKit

Adopt interface AVAudioRoutingArbiter for Mac
https://bugs.webkit.org/show_bug.cgi?id=210167

Reviewed by Jer Noble.

A follow-up patch to fix a build error.

  • UIProcess/Media/cocoa/AudioSessionRoutingArbitratorProxyCocoa.mm:

(WebKit::SharedArbitrator::beginRoutingArbitrationForArbitrator):

7:54 AM Changeset in webkit [260127] by Claudio Saavedra
  • 2 edits in trunk/Source/WebCore

[GTK] Make PlatformScreen::screenDPI() GTK4-ready
https://bugs.webkit.org/show_bug.cgi?id=210543

Reviewed by Adrian Perez de Castro.

No new tests needed.

This method is using deprecated and removed APIs
from GDK. Guard the removed API usage so that it's only
used in GTK3 and update to use the replacement APIs otherwise.

Also, make it to also use the gtk-xft-dpi GtkSettings property.
This method is mostly used in response to a change in this
property, so ignoring its value doesn't seem a good idea.

The following priority is used:

  1. (GTK3 only) query gdk_screen_get_resolution().
  2. Use the GtkSettings::gtk-xft-dpi property.
  3. Calculate the actual DPI from the monitor 0's properties.
  4. If none of these succeed, use the default DPI, 96.
  • platform/gtk/PlatformScreenGtk.cpp:

(WebCore::screenDPI):

7:33 AM Changeset in webkit [260126] by Carlos Garcia Campos
  • 4 edits
    1 delete in trunk/Source/WebCore

[GTK] Remove IconGtk
https://bugs.webkit.org/show_bug.cgi?id=210546

Reviewed by Adrian Perez de Castro.

It's currently unused in GTK port since we never show an icon for file uploads.

  • SourcesGTK.txt:
  • platform/graphics/Icon.cpp:
  • platform/graphics/Icon.h:
  • platform/graphics/gtk/IconGtk.cpp: Removed.
7:25 AM Changeset in webkit [260125] by Adrian Perez de Castro
  • 4 edits
    1 add in trunk/Source

[GTK4] Provide an alternative to gtk_widget_{get,is}_toplevel()
https://bugs.webkit.org/show_bug.cgi?id=210463

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Adapt utility functions to GTK4, and provide replacement implementations for the
gtk_widget_get_tolevel() and gtk_widget_is_toplevel() functions for GTK4 builds.

No new tests needed.

  • platform/gtk/GtkUtilities.cpp:

(WebCore::gtkWindowGetOrigin): Added.
(WebCore::convertWidgetPointToScreenPoint): Move code used to find the window position
into a separate function, and use it to avoid the USE(GTK4) conditional here.
(WebCore::widgetIsOnscreenToplevelWindow): Adapt to make it work with GTK4.

  • platform/gtk/GtkVersioning.h: Added.

(gtk_widget_is_toplevel): Alternative implementation for GTK4.
(gtk_widget_get_toplevel): Ditto.
(gtk_window_get_position): Ditto.

Source/WebKit:

  • UIProcess/API/glib/WebKitUIClient.cpp: Adapt to take into account that GTK4 does not

provide the GtkWidget.configure-event signal.

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

[GTK] Gardening of flaky failures
https://bugs.webkit.org/show_bug.cgi?id=210545

Unreviewed gardening.

  • platform/gtk/TestExpectations:
6:08 AM Changeset in webkit [260123] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore

[GTK4] Adapt to cursor API changes
https://bugs.webkit.org/show_bug.cgi?id=210453

Reviewed by Carlos Garcia Campos.

No new tests needed.

  • platform/gtk/CursorGtk.cpp:

(WebCore::fallbackCursor): Utility function which returns the "default" cursor for GTK4.
(WebCore::createNamedCursor): Adapt to the changes in the gdk_cursor_new_from_name().
(WebCore::createCustomCursor): Create a GdkTexture directly when the given Cairo surface is
in one of the pixel formats supported by gdk_memory_texture_new(), otherwise convert first;
then create a GdkCursor from the GdkTexture.

5:28 AM Changeset in webkit [260122] by Carlos Garcia Campos
  • 2 edits in trunk

Unreviewed. Do not run gtk-doc when building with GTK4

It's not supported yet.

  • Source/PlatformGTK.cmake:
2:49 AM Changeset in webkit [260121] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening of flaky failures
https://bugs.webkit.org/show_bug.cgi?id=210542

Unreviewed gardening.

  • platform/gtk/TestExpectations:
1:53 AM Changeset in webkit [260120] by Said Abou-Hallawa
  • 3 edits in trunk/Source/WebKit

Unreviewed, reverting r259891.

Causes significant iOS MotionMark regression

Reverted changeset:

"Switch unused IOKit classes from allow-with-report to deny-
with-report"
https://bugs.webkit.org/show_bug.cgi?id=210136
https://trac.webkit.org/changeset/259891

12:02 AM Changeset in webkit [260119] by Devin Rousso
  • 14 edits
    3 adds in trunk

[ESNext] Implement logical assignment operators
https://bugs.webkit.org/show_bug.cgi?id=209716

Reviewed by Ross Kirsling.

JSTests:

  • stress/logical-assignment-operator-and.js: Added.
  • stress/logical-assignment-operator-nullish.js: Added.
  • stress/logical-assignment-operator-or.js: Added.
  • test262/config.yaml:
  • test262/expectations.yaml:

Right now, test262 expects an early error to be thrown if the lhs is not simple, which does
not match what we do with other read-modify assignment operators. This is likely to change
in the future to match existing behavior (throw a ReferenceError) [1].

[1]: <https://github.com/tc39/ecma262/issues/257#issuecomment-502878708>

Source/JavaScriptCore:

Implement the logical assignment operators proposal, which is now Stage 3. It introduces
three new assignment operators which will only store the result of the rhs in the lhs if the
lhs meets the given condition:

  • ??=, for if the lhs is nullish (null or undefined)
  • ||=, for if the lhs is falsy
  • &&=, for if the lhs is truthy

This short circuiting can be beneficial as it can avoid a redundant store when used in the
common JavaScript programming pattern of "defaulting" a parameter.

`js

function foo(x) {

x = x
42;

}

`

If x is a truthy value, it would result in the rhs x being stored back into the lhs x.
In some situations, this can have negative unintended side-effects, such as for innerHTML.

Logical assignment operators, however, are defined such that they only store if the rhs is
to actually be needed/used, skipping the redundant store and simply returning lhs otherwise.

In the case of readonly references, this means that an error is only thrown when the
assignment occurs, meaning that if the lhs already satisfies the condition it will be used
and returned with no error.

  • parser/ParserTokens.h:
  • parser/Lexer.cpp:

(JSC::Lexer<T>::lexWithoutClearingLineTerminator):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseAssignmentExpression):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::makeAssignNode):

  • parser/Nodes.h:
  • parser/NodeConstructors.h:

(JSC::ShortCircuitReadModifyResolveNode::ShortCircuitReadModifyResolveNode): Added.
(JSC::ShortCircuitReadModifyBracketNode::ShortCircuitReadModifyBracketNode): Added.
(JSC::ShortCircuitReadModifyDotNode::ShortCircuitReadModifyDotNode): Added.

  • bytecompiler/NodesCodegen.cpp:

(JSC::emitShortCircuitAssignment): Added.
(JSC::ShortCircuitReadModifyResolveNode::emitBytecode): Added.
(JSC::ShortCircuitReadModifyDotNode::emitBytecode): Added.
(JSC::ShortCircuitReadModifyBracketNode::emitBytecode): Added.

  • runtime/OptionsList.h:

Add a useLogicalAssignmentOperators setting for controlling this feature.

Tools:

  • Scripts/run-jsc-stress-tests:

Apr 14, 2020:

11:20 PM Changeset in webkit [260118] by Simon Fraser
  • 10 edits
    3 adds in trunk

[Async overflow scroll] Backgrounds missing on gmail sometimes
https://bugs.webkit.org/show_bug.cgi?id=210506
<rdar://problem/60523869>

Reviewed by Zalan Bujtas.
Source/WebCore:

When painting the scrolled contents layers of accelerated overflow:scroll, RenderBlock::paint()
needs to not short-circuit when the dirty rect is outside a clipping rect, because accelerated
overflow involves overdraw for tiles outside the visible area.

There were two code paths that made this mostly work: overflowRectForPaintRejection() tested for
usesCompositedScrolling(), and the #if PLATFORM(IOS_FAMILY) made it work on iOS.

For content involving flexbox, overflowRectForPaintRejection() gave the wrong answer because
flex layout would sometimes clear m_overflow, even on an overflow:scroll element.

So remove overflowRectForPaintRejection(), and instead revert to the simple visualOverflowRect(),
but first check a bit that's passed down from compositing code that indicates that
we're painting the contents of composited scroll

Test: compositing/scrolling/async-overflow-scrolling/mac/overflow-in-flex-empty-tiles.html

  • rendering/PaintPhase.h:
  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paint):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::overflowRectForPaintRejection const): Deleted.

  • rendering/RenderBox.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::paintForegroundForFragments):

LayoutTests:

Test with a scroller inside a flexbox; programmatically scrolls the scroller to the bottom,
then mouseWheels up to reveal new tiles.

  • TestExpectations:
  • compositing/scrolling/async-overflow-scrolling/mac/overflow-in-flex-empty-tiles-expected.html: Added.
  • compositing/scrolling/async-overflow-scrolling/mac/overflow-in-flex-empty-tiles.html: Added.
  • platform/mac/TestExpectations: Test is macOS-only because it uses wheel events.
10:30 PM Changeset in webkit [260117] by jer.noble@apple.com
  • 2 edits in trunk/Tools

WKTR always enables capturing audio/video in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=210319

Reviewed by Tim Horton.

Capturing in the GPUProcess should be off by default. GPU capture can be enabled at runtime via
the --internal-feature flag of run-webkit-tests.

  • WebKitTestRunner/TestOptions.h:
9:13 PM Changeset in webkit [260116] by Megan Gardner
  • 4 edits in trunk/Source/WebKit

File Upload Menus presented from odd locations.
https://bugs.webkit.org/show_bug.cgi?id=210523
<rdar://problem/60390846>

Use the existing context menu targeted preview code to ensure that the
file menus are presented in a good location.

Reviewed by Wenson Hsieh.

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

(-[WKFileUploadPanel contextMenuInteraction:previewForHighlightingMenuWithConfiguration:]):

8:10 PM Changeset in webkit [260115] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GTK] Garden media/media-source/media-source-seek-back flaky crashes

Unreviewed test gardening.

  • platform/gtk/TestExpectations:
7:46 PM Changeset in webkit [260114] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

Content expanding is broken on icourse163.org
https://bugs.webkit.org/show_bug.cgi?id=210510
<rdar://problem/45951820>

Reviewed by Simon Fraser.

www.icourse163.org's animation code expects a decimal point in the rAF timestamp (millisecond resolution).

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::serviceRequestAnimationFrameCallbacks):

  • page/Quirks.cpp:

(WebCore::Quirks::needsMillisecondResolutionForHighResTimeStamp const):

  • page/Quirks.h:
7:35 PM Changeset in webkit [260113] by Devin Rousso
  • 18 edits
    2 copies
    1 add in trunk

Web Inspector: Debugger: add a Step next that steps by expression
https://bugs.webkit.org/show_bug.cgi?id=210324

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

Step next is a hybrid of Step over and Step into which continues execution to the next pause
opportunity within the current (or ancestor) call frame. It is especially useful when trying
to debug minified code, such as trying to continue to c() in a() && b() && c();, where
Step over would continue to the next statement (i.e. after the ;) and Step in would
continue to the first line inside a() (and would require a Step out to get back).

  • inspector/protocol/Debugger.json:
  • inspector/agents/InspectorDebuggerAgent.h:
  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::stepNext): Added.

  • debugger/Debugger.h:
  • debugger/Debugger.cpp:

(JSC::Debugger::stepNextExpression): Added.
(JSC::Debugger::atExpression):
(JSC::Debugger::clearNextPauseState):

Source/WebInspectorUI:

Step next is a hybrid of Step over and Step into which continues execution to the next pause
opportunity within the current (or ancestor) call frame. It is especially useful when trying
to debug minified code, such as trying to continue to c() in a() && b() && c();, where
Step over would continue to the next statement (i.e. after the ;) and Step in would
continue to the first line inside a() (and would require a Step out to get back).

  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager.prototype.stepNext): Added.

  • UserInterface/Base/Main.js:

(WI.contentLoaded):
(WI.debuggerStepNext): Added.

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerPaused):
(WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerResumed):

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Images/StepNext.svg: Added.

LayoutTests:

  • inspector/debugger/stepping/stepNext.html: Added.
  • inspector/debugger/stepping/stepNext-expected.txt: Added.
  • inspector/debugger/stepping/stepInto.html:
  • inspector/debugger/stepping/stepInto-expected.txt:
  • inspector/debugger/stepping/stepOut.html:
  • inspector/debugger/stepping/stepOut-expected.txt:
  • inspector/debugger/stepping/stepOver.html:
  • inspector/debugger/stepping/stepOver-expected.txt:

Renamed functions for clarity and added additional test cases from other commands.

6:24 PM Changeset in webkit [260112] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

dictionaryValueOfType() in WebCoreArgumentCodersMac.mm can be replaced with dynamic_cf_cast<>()
<https://webkit.org/b/210456>

Reviewed by Darin Adler.

  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::dictionaryValueOfType): Delete.
(IPC::extractDictionaryValue): Add.

  • Use dynamic_cf_cast<>() in place of manually checking the CFTypeID of each object.

(IPC::createArchiveList):

  • Call new extractDictionaryValue() template function to verify values are the correct types in the dictionary and to set the output variables.
6:08 PM Changeset in webkit [260111] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

Use CFArrayGetValues() in createArchiveList() in WebCoreArgumentCodersMac.mm
<https://webkit.org/b/210519>

Reviewed by Darin Adler.

  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::createArchiveList):

  • Use CFArrayGetValues() to copy array more efficiently.
6:07 PM Changeset in webkit [260110] by Alan Coon
  • 2 edits in branches/safari-610.1.10-branch/Source/WebKit

Cherry-pick r260104. rdar://problem/61800020

REGRESSION (r259898): Tabs occasionally go blank and get stuck that way
https://bugs.webkit.org/show_bug.cgi?id=210520
<rdar://problem/61776830>

Reviewed by Simon Fraser.

  • UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::setAcceleratedCompositingRootLayer): setThumbnailView calls setAcceleratedCompositingRootLayer in order to reconnect the existing root layer. After r259898, this would cause us to go down the process-swap path, and hide the root layer, and nothing would ever come along and fix it.

If setAcceleratedCompositingRootLayer is called with the existing root
layer, that cannot be a process swap, so ignore it and proceed as before.

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

4:59 PM Changeset in webkit [260109] by fpizlo@apple.com
  • 3 edits in trunk/Websites/webkit.org

Unreviewed, check in some more files for a blog post.

  • blog-files/speculation-in-jsc/full-add-cfg.graffle:
  • blog-files/speculation-in-jsc/full-add-cfg.svg:
4:58 PM Changeset in webkit [260108] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Don't show tooltips for tabs
https://bugs.webkit.org/show_bug.cgi?id=210464

Reviewed by Devin Rousso.

Don't show tooltips when they match the name of the tab. We no longer truncate tab names
so the tooltip is redundant.

Only show tooltips for settings and search (pinned tabs).

  • UserInterface/Views/TabBarItem.js:

(WI.TabBarItem):
(WI.TabBarItem.prototype.set title):

4:57 PM Changeset in webkit [260107] by fpizlo@apple.com
  • 3 edits in trunk/Websites/webkit.org

Unreviewed, check in some more files for a blog post.

  • blog-files/speculation-in-jsc/full-add-cfg.graffle:
  • blog-files/speculation-in-jsc/full-add-cfg.svg:
4:57 PM Changeset in webkit [260106] by sbarati@apple.com
  • 3 edits in trunk/JSTests

Skip all low executable memory wasm tests on arm64
https://bugs.webkit.org/show_bug.cgi?id=210522

Reviewed by Tadeu Zagallo.

In my original JIT islands patch, I only skipped one of the "low executable
memory" tests. But the others are also causing problems on the iOS JSC test
runners, so let's just skip them all.

  • wasm/lowExecutableMemory/exports-oom.js:
  • wasm/lowExecutableMemory/imports-oom.js:
4:54 PM Changeset in webkit [260105] by fpizlo@apple.com
  • 1 edit
    2 adds in trunk/Websites/webkit.org

Unreviewed, check in some more files for a blog post.

  • blog-files/speculation-in-jsc/full-add-cfg.graffle: Added.
  • blog-files/speculation-in-jsc/full-add-cfg.svg: Added.
4:53 PM Changeset in webkit [260104] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r259898): Tabs occasionally go blank and get stuck that way
https://bugs.webkit.org/show_bug.cgi?id=210520
<rdar://problem/61776830>

Reviewed by Simon Fraser.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::setAcceleratedCompositingRootLayer):
setThumbnailView calls setAcceleratedCompositingRootLayer in order to reconnect the
existing root layer. After r259898, this would cause us to go down the
process-swap path, and hide the root layer, and nothing would ever
come along and fix it.

If setAcceleratedCompositingRootLayer is called with the existing root
layer, that cannot be a process swap, so ignore it and proceed as before.

4:33 PM Changeset in webkit [260103] by fpizlo@apple.com
  • 3 edits
    2 adds in trunk/Websites/webkit.org

Unreviewed, check in some more files for a blog post.

  • blog-files/speculation-in-jsc/dfg-pipeline-dark.graffle: Added.
  • blog-files/speculation-in-jsc/dfg-pipeline-dark.svg: Added.
  • blog-files/speculation-in-jsc/ftl-pipeline-dark.graffle
  • blog-files/speculation-in-jsc/ftl-pipeline-dark.svg:
3:35 PM Changeset in webkit [260102] by Peng Liu
  • 30 edits
    1 move
    8 adds in trunk

Adopt interface AVAudioRoutingArbiter for Mac
https://bugs.webkit.org/show_bug.cgi?id=210167
Source/WebCore:

Reviewed by Eric Carlson.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/audio/ios/AudioSessionIOS.mm:

(WebCore::AudioSession::setCategory):
(WebCore::categoryName): Deleted.

  • platform/audio/mac/AudioSessionMac.mm: Renamed from Source/WebCore/platform/audio/mac/AudioSessionMac.cpp.

(WebCore::AudioSession::setCategory):
(WebCore::AudioSession::categoryOverride const):
(WebCore::AudioSession::setCategoryOverride):

Fix unified build failures.

  • platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.h:

Source/WebCore/PAL:

Reviewed by Eric Carlson.

Add softlink for AVAudioRoutingArbiter.

  • pal/cocoa/AVFoundationSoftLink.h:
  • pal/cocoa/AVFoundationSoftLink.mm:

Source/WebKit:

<rdar://problem/59113994>

Reviewed by Eric Carlson.

Add a new cross-process object pair, AudioSessionRouterAbitrator/Proxy which passes routing
arbitration commands from WebContent -> UIProcess. Because the UIProcess can represent
multiple WebContent processes, it must track all outstanding arbitration requests globally.

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

(WebKit::GPUProcess::initializeGPUProcess):

  • Sources.txt:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::mediaRelatedMachServices):

  • UIProcess/Media/AudioSessionRoutingArbitratorProxy.cpp: Added.

(WebKit::AudioSessionRoutingArbitratorProxy::AudioSessionRoutingArbitratorProxy):
(WebKit::AudioSessionRoutingArbitratorProxy::~AudioSessionRoutingArbitratorProxy):
(WebKit::AudioSessionRoutingArbitratorProxy::beginRoutingArbitrationWithCategory):
(WebKit::AudioSessionRoutingArbitratorProxy::leaveRoutingArbitration):

  • UIProcess/Media/AudioSessionRoutingArbitratorProxy.h: Added.

(WebKit::AudioSessionRoutingArbitratorProxy::category const):
(WebKit::AudioSessionRoutingArbitratorProxy::destinationId):

  • UIProcess/Media/AudioSessionRoutingArbitratorProxy.messages.in: Added.
  • UIProcess/Media/cocoa/AudioSessionRoutingArbitratorProxyCocoa.mm: Added.

(WebKit::SharedArbitrator::sharedInstance):
(WebKit::SharedArbitrator::beginRoutingArbitrationForArbitrator):
(WebKit::SharedArbitrator::leaveRoutingArbitrationForArbitrator):
(WebKit::AudioSessionRoutingArbitratorProxy::AudioSessionRoutingArbitratorProxy):
(WebKit::AudioSessionRoutingArbitratorProxy::~AudioSessionRoutingArbitratorProxy):
(WebKit::AudioSessionRoutingArbitratorProxy::beginRoutingArbitrationWithCategory):
(WebKit::AudioSessionRoutingArbitratorProxy::leaveRoutingArbitration):

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

(WebKit::WebProcessProxy::WebProcessProxy):

  • UIProcess/WebProcessProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_processDisplayName):

  • WebProcess/WebProcess.cpp:
  • WebProcess/cocoa/AudioSessionRoutingArbitrator.cpp: Added.

(WebKit::AudioSessionRoutingArbitrator::AudioSessionRoutingArbitrator):
(WebKit::AudioSessionRoutingArbitrator::supplementName):
(WebKit::AudioSessionRoutingArbitrator::beginRoutingArbitrationWithCategory):
(WebKit::AudioSessionRoutingArbitrator::leaveRoutingAbritration):

  • WebProcess/cocoa/AudioSessionRoutingArbitrator.h: Added.
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::AudioFactory::createAudioCaptureSource):

  • WebProcess/com.apple.WebProcess.sb.in:

Source/WTF:

Reviewed by Eric Carlson.

Add macro HAVE_AVAUDIO_ROUTING_ARBITER.

  • wtf/PlatformHave.h:

Tools:

Reviewed by Eric Carlson.

Add test for softlink of AVAudioRoutingArbiter.

  • TestWebKitAPI/Tests/WebCore/cocoa/AVFoundationSoftLinkTest.mm:

(TestWebKitAPI::TEST):

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

createArchiveList() in WebCoreArgumentCodersMac.mm should do more validity checks
<https://webkit.org/b/210448>
<rdar://problem/61677029>

Reviewed by Darin Adler.

  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::createArchiveList): Add more validity checks.

2:50 PM Changeset in webkit [260100] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

ReadableStreamDefaultController::enqueue should check for worker terminated exception
https://bugs.webkit.org/show_bug.cgi?id=210485

Reviewed by Mark Lam.

Make sure to not assert in case of enqueue exception if we are in a terminating worker.
This is covered by WPT fetch/api/basic/stream-response.any.worker.html and fetch/api/basic/stream-safe-creation.any.worker.html.

  • bindings/js/ReadableStreamDefaultController.h:

(WebCore::ReadableStreamDefaultController::enqueue):

2:36 PM Changeset in webkit [260099] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Protect MediaStreamTrackPrivate and RealtimeMediaSource when iterating its observers
https://bugs.webkit.org/show_bug.cgi?id=210488

Reviewed by Eric Carlson.

Making sure explicitly that the track private and source remain alive while looping from its observers.

  • platform/mediastream/MediaStreamTrackPrivate.cpp:

(WebCore::MediaStreamTrackPrivate::forEachObserver const):

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::forEachObserver const):

2:30 PM Changeset in webkit [260098] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Do more checking before reusing precompiled sandbox
https://bugs.webkit.org/show_bug.cgi?id=210304
<rdar://problem/61155623>

Reviewed by Darin Adler.

We recently discovered that the system sandbox framework version does not always change
when breaking changes in the sandbox format are made. This can lead to the precompiled
version of a sandbox not working properly when a sandbox version changes.

To guard against this, make the following changes:

  1. Compare the SANDBOX_BUILD_ID in place when the sandbox was compiled to the value on the current system. SANDBOX_BUILD_ID, which is a GUID, is always regenerated when the sandbox framework is rebuilt.
  1. Compare the OS version in place when the sandbox was compiled to the value on the current system. This will trigger us recompiling sandboxes even when the sandbox framework did not change, but this is a small performance cost that would only happen after a software update.
  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::compileAndCacheSandboxProfile):
(WebKit::tryApplyCachedSandbox):

2:26 PM Changeset in webkit [260097] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

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

Unreviewed gardening.

  • platform/gtk/TestExpectations:
1:59 PM Changeset in webkit [260096] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Elements: Computed: de-indent items in the Variables section so that wrapped content doesn't line up with the --
https://bugs.webkit.org/show_bug.cgi?id=210384

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ComputedStyleDetailsPanel.css:

(.sidebar > .panel.details.css-style > .content > .computed .property):

1:33 PM Changeset in webkit [260095] by Lauro Moura
  • 3 edits in trunk/LayoutTests

[GTK][WPE] Fix navigator-detached-no-crash expectations

Unreviewed test gardening.

  • platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt:

Upload the correct expectation file.

  • platform/wpe/TestExpectations: Removed failing expectation.
1:30 PM Changeset in webkit [260094] by fpizlo@apple.com
  • 1 edit
    2 adds in trunk/Websites/webkit.org

Unreviewed, check in some more files for a blog post.

  • blog-files/speculation-in-jsc/ftl-pipeline-dark.graffle: Added.
  • blog-files/speculation-in-jsc/ftl-pipeline-dark.svg: Added.
1:27 PM Changeset in webkit [260093] by pvollan@apple.com
  • 7 edits
    1 add in trunk

[iOS] Content filtering needs access to the frontboard service
https://bugs.webkit.org/show_bug.cgi?id=210505

Reviewed by Geoffrey Garen.

Source/WebKit:

Content filtering in the WebContent process needs access to the frontboard service on iOS. Issue an extension
to this service when content filtering is enabled.

API test: WebKit.WebFilterFeatureHasFrontboardServiceAccess

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/WebFilter.mm: Added.

(isManagedSessionMethodOverride):
(TEST):

1:23 PM Changeset in webkit [260092] by commit-queue@webkit.org
  • 7 edits in trunk

AX: Smart Invert doesn't handle the picture elements on foxnews.com
<https://webkit.org/b/210472>

Patch by James Craig <jcraig@apple.com> on 2020-04-14
Reviewed by Chris Fleizach.

Source/WebCore:

Tests: accessibilty/smart-invert.html

accessibilty/smart-invert-reference.html

Filled out more variants in the test cases, and removed the unnecessary :not() selector.

  • css/html.css:

(@media (inverted-colors) img, picture, video):
(@media (inverted-colors) img:not(picture>img), picture, video): Deleted.

LayoutTests:

Filled out more variants in the test cases, and removed the unnecessary :not() selector.

  • accessibility/smart-invert-expected.txt:
  • accessibility/smart-invert-reference-expected.html:
  • accessibility/smart-invert-reference.html:
  • accessibility/smart-invert.html:
1:23 PM Changeset in webkit [260091] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Console: treat long strings as non-simple so they aren't truncated
https://bugs.webkit.org/show_bug.cgi?id=210511
<rdar://problem/49570592>

Reviewed by Joseph Pecoraro.

Treat strings longer than 140 characters (WI.FormattedValue.MaxPreviewStringLength) as not
simple so that WI.ConsoleMessageView makes itself expandable, which will show the full
length string when expanded (the truncated string is still shown when collapsed).

  • UserInterface/Views/FormattedValue.js:

(WI.FormattedValue.isSimpleString): Added.
(WI.FormattedValue.hasSimpleDisplay):

  • UserInterface/Views/ConsoleMessageView.js:

(WI.ConsoleMessageView.prototype._shouldConsiderObjectLossless):

12:15 PM Changeset in webkit [260090] by Wenson Hsieh
  • 7 edits in trunk/Source

[iPadOS] Wikipedia articles lay out incorrectly in 1/3 multitasking window
https://bugs.webkit.org/show_bug.cgi?id=210501
<rdar://problem/54856323>

Reviewed by Tim Horton.

Source/WebCore:

In a 1/3 multitasking window, Safari currently uses the -[WKWebView _allowsViewportShrinkToFit] SPI to force
pages to shrink down by fitting the content width to the view width. This legacy method of shrinking to fit
involves laying the page out at the normal view width (320px in 1/3 multitasking), and then scaling the page
down such that any amount of horizontal overflow fits within the view.

In iOS 13, a new style of shrinking to fit was introduced in support of two new features: page zoom controls
(accessible via the page formatting menu), and on-by-default page scaling when loading desktop sites on certain
models of iPad where the page width is less than cutoffs of 1112px (in landscape) and 1024px (in portrait). This
new method of shrinking to fit involves laying out at a larger width (computed from a combination of the minimum
effective device width and layout size scale factor), and scaling to fit the effective layout size scale factor
instead of the entire contents of the page. This means that while we may still get horizontal scrolling after
shrinking to fit, the overall layout of the page is preserved.

Currently, in 1/3 multitasking, Safari still relies on the former to scale pages down to fit, which means that
Wikipedia articles (among other websites) do not lay out sensibly. Moreover, even if Safari adopted the second
mechanism for shrinking to fit, layout issues would still exist (albeit to a lesser degree), since we'd still
attempt to shrink the content width down to fit due to the fact that the desktop version of Wikipedia doesn't
have a meta viewport. While we wouldn't get a broken layout, we'd still have a blank column running down the
right side of the page, which is less than ideal.

It's clear that in this case, attempting to shrink page content down to fit the view is suboptimal (at best, it
leads to a large portion of the page being blank; at worst, it completely breaks page layout). To address this
bug for now, add a parallel minimumEffectiveDeviceWidth value that takes effect when ignoring scaling
constraints (i.e. when we're in a multitasking window), and scale the page down to fit this value instead of
fitting the full content width when computing initial scale in ViewportConfiguration::initialScaleFromSize.
Maintaining this value separately from m_minimumEffectiveDeviceWidth makes it much easier to ensure that the
effects of this change are only ever active when the quirk is applied, and also when the view is embedded in a
multitasking window.

  • page/Quirks.cpp:

(WebCore::Quirks::shouldLayOutAtMinimumWindowWidthWhenIgnoringScalingConstraints const):

Introduce a quirk to fix layout issues in multitasking mode on the desktop version of Wikipedia.

  • page/Quirks.h:
  • page/ViewportConfiguration.cpp:

(WebCore::ViewportConfiguration::initialScaleFromSize const):
(WebCore::ViewportConfiguration::setMinimumEffectiveDeviceWidth):
(WebCore::ViewportConfiguration::setMinimumEffectiveDeviceWidthWhenIgnoringScalingConstraints):

  • page/ViewportConfiguration.h:

Add a minimum effective device width value that only takes effect when ignoring scaling constraints, and update
shouldIgnoreMinimumEffectiveDeviceWidth() and minimumEffectiveDeviceWidth() to not always return true and
0 (respectively) when ignoring scaling constraints, if m_minimumEffectiveDeviceWidthWhenIgnoringScalingConstraints
is set.

(WebCore::ViewportConfiguration::minimumEffectiveDeviceWidth const):
(WebCore::ViewportConfiguration::shouldIgnoreMinimumEffectiveDeviceWidth const):
(WebCore::ViewportConfiguration::shouldShrinkToFitMinimumEffectiveDeviceWidthWhenIgnoringScalingConstraints const):

Source/WebKit:

Apply the viewport quirk if needed; see WebCore/ChangeLog for more details.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::updateVisibleContentRects):

12:14 PM Changeset in webkit [260089] by Alan Coon
  • 2 edits in branches/safari-610.1.10-branch/Source/WebKitLegacy/mac

Cherry-pick r260043. rdar://problem/61784032

REGRESSION (r259843): "Missing Plug-In" when dragging an image into Mail Compose
https://bugs.webkit.org/show_bug.cgi?id=210458
<rdar://problem/61735361>

Reviewed by Wenson Hsieh.

  • WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::createPlugin): r259843 changed this code from making a dictionary with a set of key->object mappings to making a dictionary with an array of keys as its only key and an array of objects as that key's value. Not quite the same thing.

Go back to dictionaryWithObjects:forKeys:.

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

12:12 PM Changeset in webkit [260088] by graouts@webkit.org
  • 5 edits in trunk/Source/WebCore

Factor PseudoElement creation calls into a single Element::ensurePseudoElement(pseudoId) method
https://bugs.webkit.org/show_bug.cgi?id=210495

Reviewed by Antti Koivisto.

To support webkit.org/b/207290 we need a way to ensure a PseudoElement is available for ::before and ::after
pseudo-elements on a given Element. We now use a Element::ensurePseudoElement(pseudoId) method to do this and
replace existing places where we would do something similar.

  • dom/Element.cpp:

(WebCore::Element::ensurePseudoElement):

  • dom/Element.h:
  • rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:

(WebCore::RenderTreeUpdater::GeneratedContent::updatePseudoElement):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolvePseudoStyle):

12:09 PM Changeset in webkit [260087] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

Unreviewed, reduce iteration count and introduce early return to make typed-array-subarray-can-throw-oom-error.js execution time short while throwing an error
https://bugs.webkit.org/show_bug.cgi?id=210507

  • stress/typed-array-subarray-can-throw-oom-error.js:

(canThrow):
(bar):
(get bar):

12:05 PM Changeset in webkit [260086] by Simon Fraser
  • 3 edits
    2 adds in trunk

Scroll snap in subframes is often broken
https://bugs.webkit.org/show_bug.cgi?id=210503

Reviewed by Darin Adler.

Source/WebCore:

RenderBox::findEnclosingScrollableContainer() incorrectly consulted the scrollability
of the main frame, causing snapping in subframes to be broken any time the main frame
was not scrollable.

Test: tiled-drawing/scrolling/scroll-snap/scroll-snap-async-iframe.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::findEnclosingScrollableContainer const):

LayoutTests:

  • tiled-drawing/scrolling/scroll-snap/scroll-snap-async-iframe-expected.txt: Added.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-async-iframe.html: Added.
12:04 PM Changeset in webkit [260085] by Alan Coon
  • 8 edits in trunk/Source

Versioning.

12:00 PM Changeset in webkit [260084] by Alan Coon
  • 1 copy in branches/safari-610.1.10-branch

New branch.

11:48 AM Changeset in webkit [260083] by Andres Gonzalez
  • 6 edits in trunk

Source/WebCore:
Make WTR::AccessibilityUIElements calls to accessibilitySetValue run on AX secondary thread. web content
https://bugs.webkit.org/show_bug.cgi?id=210500

Reviewed by Chris Fleizach.

Removed _accessibilitySetTestValue since it is no longer used, use
_accessibilitySetValue instead.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper _accessibilitySetTestValue:forAttribute:]): Deleted.

Tools:
Make WTR::AccessibilityUIElements calls to accessibilitySetValue run on AX secondary thread.
https://bugs.webkit.org/show_bug.cgi?id=210500

Reviewed by Chris Fleizach.

Needed to test accessibility isolated tree mode. Follow up to
https://bugs.webkit.org/show_bug.cgi?id=210392.

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(AccessibilityUIElement::setBoolAttributeValue):
(AccessibilityUIElement::resetSelectedTextMarkerRange):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::setAttributeValue):
(WTR::attributesOfElement):
(WTR::descriptionOfElements):
(WTR::AccessibilityUIElement::stringDescriptionOfAttributeValue):
(WTR::AccessibilityUIElement::stringAttributeValue):
(WTR::AccessibilityUIElement::uiElementArrayAttributeValue const):
(WTR::AccessibilityUIElement::uiElementAttributeValue const):
(WTR::AccessibilityUIElement::boolAttributeValue):
(WTR::AccessibilityUIElement::setBoolAttributeValue):
(WTR::AccessibilityUIElement::setValue):
(WTR::AccessibilityUIElement::setSelectedTextRange):
(WTR::AccessibilityUIElement::setSelectedVisibleTextRange):
(WTR::AccessibilityUIElement::setSelectedChild const):
(WTR::AccessibilityUIElement::setSelectedChildAtIndex const):
(WTR::AccessibilityUIElement::removeSelectionAtIndex const):
(WTR::AccessibilityUIElement::takeFocus):
(WTR::AccessibilityUIElement::resetSelectedTextMarkerRange):

11:42 AM Changeset in webkit [260082] by youenn@apple.com
  • 4 edits in trunk/LayoutTests/imported/w3c

Resync featurepolicy.js to fix WPT mediacapture-streams/MediaStream-default-feature-policy.https.html
https://bugs.webkit.org/show_bug.cgi?id=210482

Reviewed by Geoffrey Garen.

Update to upstream featureploicy.js to fix failure.

  • web-platform-tests/feature-policy/resources/featurepolicy.js:

(assert_feature_policy_supported):
(test_feature_in_iframe):
(test_allowed_feature_for_subframe):
(expect_reports):

  • web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https-expected.txt:
  • web-platform-tests/xhr/xmlhttprequest-sync-default-feature-policy.sub-expected.txt:
11:07 AM Changeset in webkit [260081] by Brent Fulgham
  • 7 edits in trunk

InjectedBundle parameters often need initialization function called before unarchiving
https://bugs.webkit.org/show_bug.cgi?id=189709
<rdar://problem/44573653>

Reviewed by Ryosuke Niwa.

Source/WebKit:

Handle the case where the InjectedBundle parameters do not successfully decode because they contain
an unexpected class from the embedding program. If this happens, try decoding the bundle parameters
after the bundle initialiation function runs, which gives the embedding program the opportunity to
register additional classes that are safe for serialization.

Extend WKWebProcessPlugIn with a method that returns the names of any custom classes that need
to be serialized by the InjectedBundle.

Create a new 'decodeBundleParameters' method that contains the logic that used to live in 'initialize'.
Revise 'initialize' to call this new method.

  • WebProcess/InjectedBundle/InjectedBundle.h:
  • WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:

(WebKit::InjectedBundle::initialize): Use the new method.
(WebKit::InjectedBundle::decodeBundleParameters): Added.
(WebKit::InjectedBundle::setBundleParameters): Use 'decodeObjectOfClasses' with the more complete
'classesForCoder' method to unarchive the passed bundle parameters, rather than the
NSDictionary-specific method, since InjectedBundles often encode other types of objects, and the
NSDictionary object may itself hold other kinds of objects.

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h:

(WebKit::WKWebProcessPlugIn::additionalClassesForParameterCoder): Added.

Tools:

  • TestWebKitAPI/cocoa/WebProcessPlugIn/WebProcessPlugIn.mm:

(-[WebProcessPlugIn additionalClassesForParameterCoder]): Added.

10:17 AM Changeset in webkit [260080] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Address review comments after r260035
https://bugs.webkit.org/show_bug.cgi?id=210440

Reviewed by David Kilzer.

Omit unused argument names.

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetIgnoreViewportScalingConstraints):
(WKPreferencesGetIgnoreViewportScalingConstraints):

10:08 AM Changeset in webkit [260079] by svillar@igalia.com
  • 2 edits in trunk/Tools

[Flatpak] Make run-webkit-tests obey WEBKIT_JHBUILD
https://bugs.webkit.org/show_bug.cgi?id=210497

Reviewed by Philippe Normand.

run-webkit-tests in linux uses the flatpak SDK if the flatpak
directories are found in the build directory. However it might the the case
that a developer wants to run them using the jhbuild SDK which can be
configured in parallel. We have the WEBKIT_JHBUILD environment variable to
force other scripts to use jhbuild instead of flatpak so we can use it as well
for this use case.

  • flatpak/flatpakutils.py:

(run_in_sandbox_if_available):

10:03 AM Changeset in webkit [260078] by ddkilzer@apple.com
  • 53 edits in trunk/Source/WebCore

Add WARN_UNUSED_RETURN to decode methods in Source/WebCore
<https://webkit.org/b/210416>
<rdar://problem/61693462>

Reviewed by Alex Christensen.

  • Modules/geolocation/GeolocationPositionData.h:
  • Modules/indexeddb/IDBGetAllResult.h:
  • Modules/indexeddb/IDBGetResult.h:
  • Modules/indexeddb/IDBKeyData.h:
  • Modules/indexeddb/IDBKeyRangeData.h:
  • Modules/indexeddb/server/IDBSerialization.cpp:

(WebCore::decodeKey):

  • Modules/indexeddb/shared/IDBCursorInfo.h:
  • Modules/indexeddb/shared/IDBCursorRecord.h:
  • Modules/indexeddb/shared/IDBDatabaseInfo.h:
  • Modules/indexeddb/shared/IDBError.h:
  • Modules/indexeddb/shared/IDBGetAllRecordsData.h:
  • Modules/indexeddb/shared/IDBGetRecordData.h:
  • Modules/indexeddb/shared/IDBIndexInfo.h:
  • Modules/indexeddb/shared/IDBIterateCursorData.h:
  • Modules/indexeddb/shared/IDBObjectStoreInfo.h:
  • Modules/indexeddb/shared/IDBRequestData.h:
  • Modules/indexeddb/shared/IDBResourceIdentifier.h:
  • Modules/indexeddb/shared/IDBTransactionInfo.h:
  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::decodeTimeComparator):

  • dom/EventInit.h:
  • dom/ExceptionData.h:
  • dom/SecurityPolicyViolationEvent.h:
  • editing/FontAttributeChanges.h:
  • editing/FontShadow.h:
  • loader/CanvasActivityRecord.h:
  • loader/FetchOptions.h:

(WebCore::FetchOptions::decodePersistent):

  • platform/ContentFilterUnblockHandler.h:
  • platform/DragItem.h:
  • platform/KeyedCoding.h:
  • platform/LinkIcon.h:
  • platform/ThreadSafeDataBuffer.h:
  • platform/audio/mac/CAAudioStreamDescription.h:
  • platform/cf/KeyedDecoderCF.h:
  • platform/generic/KeyedDecoderGeneric.h:
  • platform/glib/KeyedDecoderGlib.h:
  • platform/graphics/Region.h:
  • platform/graphics/RemoteVideoSample.h:

(WebCore::RemoteVideoSample::decode):

  • platform/mediastream/MediaConstraints.h:

(WebCore::MediaConstraint::decode):
(WebCore::NumericConstraint::decode):
(WebCore::StringConstraint::decode):

  • platform/mediastream/RealtimeMediaSourceCapabilities.h:
  • platform/mediastream/RealtimeMediaSourceSettings.h:
  • platform/mediastream/RealtimeMediaSourceSupportedConstraints.h:
  • platform/network/HTTPHeaderMap.h:
  • platform/network/NetworkLoadMetrics.h:
  • platform/network/ResourceRequestBase.h:
  • platform/network/ResourceResponseBase.h:

(WebCore::ResourceResponseBase::decode):

  • platform/network/SameSiteInfo.h:
  • platform/network/SocketStreamError.h:
  • platform/network/curl/ResourceRequest.h:
  • platform/network/soup/ResourceRequest.h:
  • platform/network/soup/ResourceResponse.h:
  • rendering/EventRegion.h:
  • workers/service/ServiceWorkerFetchResult.h:
  • Add WARN_UNUSED_RETURN to all decode functions.
9:38 AM Changeset in webkit [260077] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

YouTube sometimes navigates unexpectedly when invoking a context menu on a video link.
https://bugs.webkit.org/show_bug.cgi?id=210467
<rdar://problem/58841584>

Reviewed by Tim Horton.

Cancel any outstanding touches tracked by WebTouchEventsGestureRecognizer, so that we dispatch
touchcancel to the page instead of touchend, so that the page does not misinterpret
context menu invocation as a tap.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView contextMenuInteraction:previewForHighlightingMenuWithConfiguration:]):

9:19 AM Changeset in webkit [260076] by graouts@webkit.org
  • 10 edits in trunk/Source/WebCore

[Web Animations] Store an Element / PseudoId pair to define the KeyframeEffect target
https://bugs.webkit.org/show_bug.cgi?id=210491

Reviewed by Antti Koivisto.

In preparation for webkit.org/b/207290 where we will expose the pseudoElement JS API on KeyframeEffect we now
use an Element / PseudoId (m_target / m_pseudoId) pair to specify an effect's target. In the cases where it matters,
such as accessing the various animation collections exposed through Element and the KeyframeEffectStack, we now use
the new KeyframeEffect::targetElementOrPseudoElement() method to access the Element or PseudoElement targeted with
the Element / PseudoId pair.

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::removeAnimation):

  • animation/DeclarativeAnimation.cpp:

(WebCore::DeclarativeAnimation::initialize):

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::transitionDidComplete):
(WebCore::DocumentTimeline::animationAcceleratedRunningStateDidChange):

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::create):
(WebCore::KeyframeEffect::KeyframeEffect):
(WebCore::KeyframeEffect::copyPropertiesFromSource):
(WebCore::KeyframeEffect::getKeyframes):
(WebCore::KeyframeEffect::forceLayoutIfNeeded):
(WebCore::KeyframeEffect::computeCSSAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::computeCSSTransitionBlendingKeyframes):
(WebCore::KeyframeEffect::animationTimelineDidChange):
(WebCore::KeyframeEffect::updateEffectStackMembership):
(WebCore::KeyframeEffect::targetElementOrPseudoElement const):
(WebCore::KeyframeEffect::setTarget):
(WebCore::KeyframeEffect::apply):
(WebCore::KeyframeEffect::invalidate):
(WebCore::KeyframeEffect::getAnimatedStyle):
(WebCore::KeyframeEffect::applyPendingAcceleratedActions):
(WebCore::KeyframeEffect::document const):
(WebCore::KeyframeEffect::renderer const):

  • animation/KeyframeEffect.h:
  • animation/KeyframeEffectStack.cpp:

(WebCore::KeyframeEffectStack::addEffect):

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::setEffectInternal):
(WebCore::WebAnimation::setTimeline):
(WebCore::WebAnimation::persist):

  • dom/Document.cpp:

(WebCore::Document::matchingAnimations):

  • inspector/agents/InspectorAnimationAgent.cpp:

(WebCore::buildObjectForKeyframes):
(WebCore::InspectorAnimationAgent::requestEffectTarget):

9:16 AM Changeset in webkit [260075] by Lauro Moura
  • 5 edits in trunk/LayoutTests

[GTK][WPE] Layout test gardening

Unreviewed test gardening.

  • platform/gtk/TestExpectations:

Removed deprecated expectation.

  • platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt:

Updated expectations.

  • platform/wpe/TestExpectations: Updated several EME expectations with

correct bug number. A number of passing tests are also marked as PASS.

  • platform/wpe/fast/dom/navigator-detached-no-crash-expected.txt:

Updated expectations.

9:04 AM Changeset in webkit [260074] by Simon Fraser
  • 42 edits
    2 adds in trunk

[Async overflow scroll] Custom scrollbars on gmail don't show
https://bugs.webkit.org/show_bug.cgi?id=210438
<rdar://problem/61722541>

Reviewed by Tim Horton.

Source/WebCore:

Custom scrollbars painted into the backing store of the scrolling element, but that
might have become an empty "simple container layer" causing the scroll bars to not
be painted anywhere.

Fix by making compositing layers for custom scrollbars. This is better than giving
backing store to the scroller's element, because that might be huge.

Test: scrollbars/async-overflow-custom-scrollbar.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::requiresLayerForScrollbar const):
(WebCore::RenderLayerBacking::requiresHorizontalScrollbarLayer const):
(WebCore::RenderLayerBacking::requiresVerticalScrollbarLayer const):
(WebCore::RenderLayerBacking::requiresScrollCornerLayer const):

  • rendering/RenderLayerBacking.h:

LayoutTests:

Layer tree dumps changed because of scrollbar and scroll corner layers.

  • compositing/layer-creation/absolute-in-async-overflow-scroll-expected.txt:
  • compositing/layer-creation/clipping-scope/nested-scroller-overlap-expected.txt:
  • compositing/layer-creation/clipping-scope/overlap-constrained-inside-scroller-expected.txt:
  • compositing/layer-creation/clipping-scope/overlap-constrained-inside-stacking-context-scroller-expected.txt:
  • compositing/layer-creation/clipping-scope/scroller-with-negative-z-children-expected.txt:
  • compositing/layer-creation/clipping-scope/shared-layers-in-scroller-expected.txt:
  • compositing/overflow/overflow-auto-with-touch-expected.txt:
  • compositing/overflow/overflow-overlay-with-touch-expected.txt:
  • compositing/overflow/scrolling-content-clip-to-viewport-expected.txt:
  • compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases-expected.txt:
  • compositing/overflow/textarea-scroll-touch-expected.txt:
  • compositing/repaint/scroller-with-foreground-layer-repaints-expected.txt:
  • compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-clipped-by-scroll-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-nested-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-for-negative-z-in-scroller-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-clip-to-hidden-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-clip-to-visible-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-gain-clipping-layer-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-in-clipped-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-lose-clipping-layer-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/visibility-hidden-scrollers-expected.txt:
  • compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt:
  • compositing/shared-backing/overflow-scroll/absolute-in-stacking-relative-in-scroller-expected.txt:
  • compositing/shared-backing/overflow-scroll/composited-absolute-in-absolute-in-relative-in-scroller-expected.txt:
  • compositing/shared-backing/overflow-scroll/nested-absolute-with-clipping-in-stacking-overflow-expected.txt:
  • compositing/shared-backing/overflow-scroll/previous-sibling-prevents-inclusiveness-expected.txt:
  • compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-clipping-expected.txt:
  • compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-relative-clipping-expected.txt:
  • compositing/shared-backing/overflow-scroll/relative-in-div-in-overflow-scroll-expected.txt:
  • compositing/shared-backing/overflow-scroll/scrolled-contents-has-painted-content-expected.txt:
  • fast/scrolling/mac/event-region-scrolled-contents-layer-expected.txt:
  • platform/mac/compositing/overflow/overflow-auto-with-touch-toggle-expected.txt:
  • scrollbars/async-overflow-custom-scrollbar-expected.html: Added.
  • scrollbars/async-overflow-custom-scrollbar.html: Added.
  • tiled-drawing/scrolling/overflow/overflow-scrolled-down-tile-coverage-expected.txt:
  • tiled-drawing/scrolling/overflow/overflow-scrolled-up-tile-coverage-expected.txt:
  • tiled-drawing/scrolling/overflow/overflow-tile-coverage-expected.txt:
8:38 AM Changeset in webkit [260073] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening, mark several MSE tests as flaky
https://bugs.webkit.org/show_bug.cgi?id=210499

Unreviewed gardening.

  • platform/gtk/TestExpectations:
6:34 AM Changeset in webkit [260072] by Claudio Saavedra
  • 2 edits in trunk/Source/WebCore

[GTK] Adapt to GdkVisual deprecation and removal
https://bugs.webkit.org/show_bug.cgi?id=210489

Reviewed by Adrian Perez de Castro.

No new tests needed.

Update the GdkVisual used to get the screen depth per component in
GTK3 and use default values for GTK4, as visuals as an abstraction
are gone from GTK4. The use in WK is very limited so there's no
much gain from peeking into backend-specific values.

  • platform/gtk/PlatformScreenGtk.cpp:

(WebCore::screenDepth): Guard GdkVisual call and leave
default value for GTK4.
(WebCore::screenDepthPerComponent): Update API and ditto.

5:19 AM Changeset in webkit [260071] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK][WPE] Scrollbar handle has no minimum size
https://bugs.webkit.org/show_bug.cgi?id=209962

Reviewed by Adrian Perez de Castro.

Set a minimum thumb length.

  • platform/adwaita/ScrollbarThemeAdwaita.cpp:

(WebCore::ScrollbarThemeAdwaita::minimumThumbLength):

5:17 AM Changeset in webkit [260070] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK] New scrollbar click behavior
https://bugs.webkit.org/show_bug.cgi?id=210002

Reviewed by Adrian Perez de Castro.

Use the same bahavior for mouse events when not rendering native scrollbars.

  • platform/gtk/ScrollbarThemeGtk.cpp:

(WebCore::ScrollbarThemeGtk::handleMousePressEvent):

4:37 AM Changeset in webkit [260069] by Antti Koivisto
  • 47 edits in trunk

[CSS Selectors] Selectors Level 4 specificity calculation for pseudo classes
https://bugs.webkit.org/show_bug.cgi?id=210419

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/invalidation/is-expected.txt:

Source/WebCore:

CSS selector specification drafts at some point had a concept of "dynamic specificity" where
the specificity of a selector depended on the element it matched. It was only ever used with
:matches and :nth-child pseudo classes and has subsequently been removed. Selector specificity
can now always be computed statically.

There is a ton of code to support this obsolete feature. Remove it.

https://drafts.csswg.org/selectors-4/#specificity-rules

"The specificity of an :is(), :not(), or :has() pseudo-class is replaced by the specificity
of the most specific complex selector in its selector list argument.

Analogously, the specificity of an :nth-child() or :nth-last-child() selector is the specificity
of the pseudo class itself (counting as one pseudo-class selector) plus the specificity of the
most specific complex selector in its selector list argument (if any)."

  • css/html.css:

Reorganize a :matches rule into a selector list to keep the exact specificites.
It matters here to select between listbox and menulist correctly based on the 'size' and 'multiple' attributes.

  • css/CSSSelector.cpp:

(WebCore::selectorSpecificity):
(WebCore::maxSpecificity):
(WebCore::simpleSelectorSpecificityInternal):
(WebCore::CSSSelector::simpleSelectorSpecificity const):

Also handle nth here.

(WebCore::CSSSelector::specificity const):
(WebCore::simpleSelectorFunctionalPseudoClassStaticSpecificity): Deleted.
(WebCore::functionalPseudoClassStaticSpecificity): Deleted.
(WebCore::staticSpecificityInternal): Deleted.
(WebCore::CSSSelector::staticSpecificity const): Deleted.

Rename to just computeSpecificity(), there is no other kind than static.

  • css/CSSSelector.h:
  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::match const):
(WebCore::SelectorChecker::matchHostPseudoClass const):
(WebCore::SelectorChecker::matchRecursively const):
(WebCore::SelectorChecker::checkOne const):
(WebCore::SelectorChecker::matchSelectorList const):

SelectorChecker doesn't need to deal with specificity anymore.

  • css/SelectorChecker.h:
  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addNthChildType):
(WebCore::SelectorCompiler::addPseudoClassType):
(WebCore::SelectorCompiler::constructFragmentsInternal):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeFunctionCallValueMatching):

Neither does SelectorCompiler.

  • cssjit/SelectorCompiler.h:
  • dom/SelectorQuery.cpp:

(WebCore::SelectorDataList::selectorMatches const):
(WebCore::SelectorDataList::selectorClosest const):

  • inspector/InspectorStyleSheet.cpp:

(WebCore::buildObjectForSelectorHelper):
(WebCore::selectorsFromSource):
(WebCore::InspectorStyleSheet::buildObjectForSelector):
(WebCore::InspectorStyleSheet::buildObjectForSelectorList):
(WebCore::InspectorStyleSheet::buildObjectForRule):
(WebCore::InspectorStyleSheet::buildArrayForRuleList):
(WebCore::hasDynamicSpecificity): Deleted.

  • inspector/InspectorStyleSheet.h:
  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::setRuleSelector):
(WebCore::InspectorCSSAgent::addRule):
(WebCore::InspectorCSSAgent::buildObjectForRule):
(WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::highlightSelector):

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::ruleMatches):

Switch to get the specificity from the selector instead of computing it during selector checking.

  • style/ElementRuleCollector.h:

LayoutTests:

Update specificity tests for static behavior, trying to also keep them useful.

  • fast/css/is-specificity-10-expected.html:
  • fast/css/is-specificity-10.html:
  • fast/css/is-specificity-2-expected.html:
  • fast/css/is-specificity-2.html:
  • fast/css/is-specificity-3-expected.html:
  • fast/css/is-specificity-3.html:
  • fast/css/is-specificity-4-expected.html:
  • fast/css/is-specificity-4.html:
  • fast/css/is-specificity-5.html:
  • fast/css/matches-specificity-10-expected.html:
  • fast/css/matches-specificity-10.html:
  • fast/css/matches-specificity-2-expected.html:
  • fast/css/matches-specificity-2.html:
  • fast/css/matches-specificity-3-expected.html:
  • fast/css/matches-specificity-3.html:
  • fast/css/matches-specificity-4-expected.html:
  • fast/css/matches-specificity-4.html:
  • fast/css/matches-specificity-5.html:
  • fast/css/nth-child-specificity-2-expected.html:
  • fast/css/nth-child-specificity-2.html:
  • fast/css/nth-child-specificity-3-expected.html:
  • fast/css/nth-child-specificity-3.html:
  • fast/css/nth-child-specificity-4-expected.html:
  • fast/css/nth-child-specificity-4.html:
  • fast/css/nth-last-child-specificity-2-expected.html:
  • fast/css/nth-last-child-specificity-2.html:
  • fast/css/nth-last-child-specificity-3-expected.html:
  • fast/css/nth-last-child-specificity-3.html:
  • fast/css/nth-last-child-specificity-4-expected.html:
  • fast/css/nth-last-child-specificity-4.html:
4:26 AM Changeset in webkit [260068] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Do not process RTC Network messages coming from NetworkProcess if LibWebRTCNetwork is not active
https://bugs.webkit.org/show_bug.cgi?id=207376
<rdar://problem/59238611>

Unreviewed.
Post-commit review update, change variable name to network.
No change of behavior.

  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::didReceiveMessage):

3:24 AM Changeset in webkit [260067] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

[GLIB] Fix race condition in FileMonitor implementation
https://bugs.webkit.org/show_bug.cgi?id=210483

Reviewed by Adrian Perez de Castro.

This is causing flaky timeouts when running resource load statistics layout tests. The problem is that we assume
FileMonitor has the last reference of the platform monitor and it's deleted on g_object_unref(), but GLib keeps
another reference that is released later on a different thread if the monitor is still active. We just need to
ensure we cancel the monitor before calling g_object_unref().

  • platform/FileMonitor.h:
  • platform/glib/FileMonitorGLib.cpp:

(WebCore::FileMonitor::~FileMonitor):
(WebCore::FileMonitor::didChange):
(WebCore::FileMonitor::cancel):

2:58 AM Changeset in webkit [260066] by cturner@igalia.com
  • 2 edits in trunk/Source/WebCore

[EME][CDMProxy] Fix waitingForKey logic
https://bugs.webkit.org/show_bug.cgi?id=210437

Reviewed by Xabier Rodriguez-Calvar.

startedWaitingForKey() was incorrectly flagged. It needs to signal on
the 0->1 transition, here it was only signalling on N->N+1 where N>0.

Also break ASSERTs into separate statements, it makes it easier in a
crash dump to see which conjuct fired.

Test: imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-waiting-for-a-key.https.html

  • platform/encryptedmedia/CDMProxy.cpp:

(WebCore::CDMInstanceProxy::startedWaitingForKey):
(WebCore::CDMInstanceProxy::stoppedWaitingForKey):

2:50 AM Changeset in webkit [260065] by Carlos Garcia Campos
  • 20 edits
    6 adds in trunk

[GTK] Bring back support for rendering scrollbars using the system appearance
https://bugs.webkit.org/show_bug.cgi?id=209805

Reviewed by Michael Catanzaro.

Source/WebCore:

Bring back ScrollbarThemeGtk, RenderThemeGadget and RenderThemeWidget (renamed as RenderThemeScrollbar),
including only the code needed to render the scrollbars. ScrollbarThemeGtk inherits from ScrollbarThemeAdwaita
that is used when system appearance is disabled.

  • PlatformGTK.cmake:
  • SourcesGTK.txt:
  • platform/adwaita/ScrollbarThemeAdwaita.cpp:
  • platform/adwaita/ScrollbarThemeAdwaita.h:
  • platform/gtk/RenderThemeGadget.cpp: Added.

(WebCore::RenderThemeGadget::create):
(WebCore::createStyleContext):
(WebCore::appendElementToPath):
(WebCore::RenderThemeGadget::RenderThemeGadget):
(WebCore::RenderThemeGadget::marginBox const):
(WebCore::RenderThemeGadget::borderBox const):
(WebCore::RenderThemeGadget::paddingBox const):
(WebCore::RenderThemeGadget::contentsBox const):
(WebCore::RenderThemeGadget::color const):
(WebCore::RenderThemeGadget::backgroundColor const):
(WebCore::RenderThemeGadget::opacity const):
(WebCore::RenderThemeGadget::state const):
(WebCore::RenderThemeGadget::setState):
(WebCore::RenderThemeGadget::minimumSize const):
(WebCore::RenderThemeGadget::preferredSize const):
(WebCore::RenderThemeGadget::render):
(WebCore::RenderThemeBoxGadget::RenderThemeBoxGadget):
(WebCore::RenderThemeBoxGadget::preferredSize const):
(WebCore::RenderThemeScrollbarGadget::RenderThemeScrollbarGadget):
(WebCore::RenderThemeScrollbarGadget::renderStepper):

  • platform/gtk/RenderThemeGadget.h: Added.

(WebCore::RenderThemeGadget::context const):

  • platform/gtk/RenderThemeScrollbar.cpp: Added.

(WebCore::widgetMap):
(WebCore::RenderThemeScrollbar::getOrCreate):
(WebCore::RenderThemeScrollbar::clearCache):
(WebCore::RenderThemeScrollbar::RenderThemeScrollbar):
(WebCore::RenderThemeScrollbar::stepper):

  • platform/gtk/RenderThemeScrollbar.h: Added.

(WebCore::RenderThemeScrollbar::scrollbar const):
(WebCore::RenderThemeScrollbar::contents const):
(WebCore::RenderThemeScrollbar::slider const):
(WebCore::RenderThemeScrollbar::trough const):

  • platform/gtk/ScrollbarThemeGtk.cpp: Added.

(WebCore::ScrollbarTheme::nativeTheme):
(WebCore::themeChangedCallback):
(WebCore::ScrollbarThemeGtk::ScrollbarThemeGtk):
(WebCore::ScrollbarThemeGtk::setUseSystemAppearance):
(WebCore::ScrollbarThemeGtk::themeChanged):
(WebCore::ScrollbarThemeGtk::updateThemeProperties):
(WebCore::ScrollbarThemeGtk::hasButtons):
(WebCore::scrollbarPartStateFlags):
(WebCore::widgetTypeForScrollbar):
(WebCore::contentsRectangle):
(WebCore::ScrollbarThemeGtk::trackRect):
(WebCore::ScrollbarThemeGtk::backButtonRect):
(WebCore::ScrollbarThemeGtk::forwardButtonRect):
(WebCore::ScrollbarThemeGtk::paint):
(WebCore::ScrollbarThemeGtk::handleMousePressEvent):
(WebCore::ScrollbarThemeGtk::scrollbarThickness):
(WebCore::ScrollbarThemeGtk::minimumThumbLength):

  • platform/gtk/ScrollbarThemeGtk.h: Added.

Source/WebKit:

Add WebKitWebContext:use-system-appearance-for-scrollbars property. It's enabled by default to keep backwards
compatibility.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const): Encode useSystemAppearanceForScrollbars.
(WebKit::WebProcessCreationParameters::decode): Decode useSystemAppearanceForScrollbars.

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy): Copy m_useSystemAppearanceForScrollbars;

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkitWebContextGetProperty):
(webkitWebContextSetProperty):
(webkitWebContextConstructed):
(webkit_web_context_class_init):
(webkit_web_context_set_use_system_appearance_for_scrollbars):
(webkit_web_context_get_use_system_appearance_for_scrollbars):

  • UIProcess/API/gtk/WebKitWebContext.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess): Initialize useSystemAppearanceForScrollbars parameter.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/glib/WebProcessGLib.cpp:

(WebKit::WebProcess::platformInitializeWebProcess): Call setUseSystemAppearanceForScrollbars to set
useSystemAppearanceForScrollbars parameter.
(WebKit::WebProcess::setUseSystemAppearanceForScrollbars): Call ScrollbarThemeGtk::setUseSystemAppearance().

Tools:

Do not use system appearance for scrollbars in MiniBrowser and unit tests.

  • MiniBrowser/gtk/main.c:

(main):

  • TestWebKitAPI/glib/WebKitGLib/TestMain.h:

(Test::Test):

2:36 AM Changeset in webkit [260064] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

Add a timer to AVVideoCaptureSource to verify reception of frames
https://bugs.webkit.org/show_bug.cgi?id=210335

Reviewed by Eric Carlson.

Count the number of frames being captured.
Add a timer repeating every 3 seconds.
Timer starts/stops based on whether the session is running/is interrupted.
If the number of frames did not increase, fail the source.
Manually tested.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::captureFailed):
Explicitly call stop() instead of just setting m_isProducingData.
This ensures we release all resources and that we may not restart capturing after captureFailed().

  • platform/mediastream/mac/AVVideoCaptureSource.h:
  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::AVVideoCaptureSource):
(WebCore::AVVideoCaptureSource::verifyIsCapturing):
(WebCore::AVVideoCaptureSource::updateVerifyCapturingTimer):
(WebCore::AVVideoCaptureSource::captureOutputDidOutputSampleBufferFromConnection):
(WebCore::AVVideoCaptureSource::captureSessionIsRunningDidChange):

2:30 AM Changeset in webkit [260063] by youenn@apple.com
  • 6 edits in trunk/Source/WebKit

WebSocketChannel should remove itself from its manager map
https://bugs.webkit.org/show_bug.cgi?id=210424

Reviewed by Alex Christensen.

WebSocketChannelManager was never removing any entry from its map.
To fix this, the manager is now keeping a WeakPtr to each channel.
When the channel is destroyed, it will remove itself from its channel manager.

  • WebProcess/Network/WebSocketChannel.cpp:

(WebKit::WebSocketChannel::WebSocketChannel):
(WebKit::WebSocketChannel::~WebSocketChannel):

  • WebProcess/Network/WebSocketChannel.h:
  • WebProcess/Network/WebSocketChannelManager.cpp:

(WebKit::WebSocketChannelManager::addChannel):
(WebKit::WebSocketChannelManager::createWebSocketChannel): Deleted.

  • WebProcess/Network/WebSocketChannelManager.h:

(WebKit::WebSocketChannelManager::removeChannel):

  • WebProcess/Network/WebSocketProvider.cpp:

(WebKit::WebSocketProvider::createWebSocketChannel):

12:56 AM Changeset in webkit [260062] by Nikolas Zimmermann
  • 50 edits
    4 copies
    50 adds in trunk/LayoutTests

[Gtk] Update pixel tests baseline for all tests containing or referencing SVGs (except WPT)
https://bugs.webkit.org/show_bug.cgi?id=210282

Rubber-stamped by Žan Doberšek.

This extends the work from webkit.org/b/209136 to have a pixel test baseline
for all layout tests, even outside the svg/ directory, that contain or
reference SVGs.

This is mainly useful for developing webkit.org/b/90738, to ease
comparison of the SVG PoC branch with vanilla WebKit. In future we
should rather convert more and more tests to reftests instead of
relying on pixel tests - which SVG does for many features right now.

  • platform/gtk/TestExpectations:
  • platform/gtk/css3/blending/background-blend-mode-image-svg-expected.png: Added.
  • platform/gtk/css3/blending/background-blend-mode-svg-color-expected.png: Added.
  • platform/gtk/css3/blending/svg-blend-color-burn-expected.png: Copied from LayoutTests/platform/gtk/svg/filters/filter-hidden-content-expected.png.
  • platform/gtk/css3/blending/svg-blend-color-burn-expected.txt: Added.
  • platform/gtk/css3/blending/svg-blend-color-dodge-expected.png: Added.
  • platform/gtk/css3/blending/svg-blend-color-dodge-expected.txt: Added.
  • platform/gtk/css3/blending/svg-blend-darken-expected.png: Added.
  • platform/gtk/css3/blending/svg-blend-darken-expected.txt: Added.
  • platform/gtk/css3/blending/svg-blend-difference-expected.png: Added.
  • platform/gtk/css3/blending/svg-blend-difference-expected.txt: Added.
  • platform/gtk/css3/blending/svg-blend-exclusion-expected.png: Copied from LayoutTests/platform/gtk/svg/filters/filter-hidden-content-expected.png.
  • platform/gtk/css3/blending/svg-blend-exclusion-expected.txt: Added.
  • platform/gtk/css3/blending/svg-blend-hard-light-expected.png: Added.
  • platform/gtk/css3/blending/svg-blend-lighten-expected.png: Added.
  • platform/gtk/css3/blending/svg-blend-lighten-expected.txt: Added.
  • platform/gtk/css3/blending/svg-blend-multiply-alpha-expected.png:
  • platform/gtk/css3/blending/svg-blend-multiply-expected.png: Added.
  • platform/gtk/css3/blending/svg-blend-multiply-expected.txt: Added.
  • platform/gtk/css3/blending/svg-blend-overlay-expected.png: Added.
  • platform/gtk/css3/blending/svg-blend-overlay-expected.txt: Added.
  • platform/gtk/css3/blending/svg-blend-screen-expected.png: Copied from LayoutTests/platform/gtk/svg/filters/filter-hidden-content-expected.png.
  • platform/gtk/css3/blending/svg-blend-screen-expected.txt: Added.
  • platform/gtk/css3/blending/svg-blend-soft-light-expected.png: Added.
  • platform/gtk/css3/blending/svg-blend-soft-light-expected.txt: Added.
  • platform/gtk/css3/filters/effect-reference-composite-expected.png:
  • platform/gtk/css3/filters/effect-reference-composite-hw-expected.png:
  • platform/gtk/css3/filters/effect-reference-external-expected.png: Added.
  • platform/gtk/css3/filters/effect-reference-hw-expected.png:
  • platform/gtk/css3/filters/effect-reference-ordering-expected.png:
  • platform/gtk/css3/filters/effect-reference-ordering-hw-expected.png:
  • platform/gtk/css3/shapes/shape-outside/shape-image/support/left-half-rectangle-20-expected.png: Copied from LayoutTests/platform/gtk/svg/filters/filter-hidden-content-expected.png.
  • platform/gtk/css3/shapes/shape-outside/shape-image/support/left-half-rectangle-20-expected.txt: Added.
  • platform/gtk/css3/shapes/shape-outside/shape-image/support/left-half-rectangle-50-expected.png: Added.
  • platform/gtk/css3/shapes/shape-outside/shape-image/support/left-half-rectangle-50-expected.txt: Added.
  • platform/gtk/css3/shapes/shape-outside/shape-image/support/left-half-rectangle-70-expected.png: Added.
  • platform/gtk/css3/shapes/shape-outside/shape-image/support/left-half-rectangle-70-expected.txt: Added.
  • platform/gtk/css3/shapes/shape-outside/shape-image/support/left-half-rectangle-expected.png: Added.
  • platform/gtk/css3/shapes/shape-outside/shape-image/support/left-half-rectangle-expected.txt: Added.
  • platform/gtk/css3/shapes/shape-outside/shape-image/support/right-half-rectangle-70-expected.png: Added.
  • platform/gtk/css3/shapes/shape-outside/shape-image/support/right-half-rectangle-70-expected.txt: Added.
  • platform/gtk/css3/shapes/shape-outside/shape-image/support/right-half-rectangle-expected.png: Added.
  • platform/gtk/css3/shapes/shape-outside/shape-image/support/right-half-rectangle-expected.txt: Added.
  • platform/gtk/css3/shapes/spec-examples/support/rounded-triangle-expected.png: Added.
  • platform/gtk/css3/shapes/spec-examples/support/rounded-triangle-expected.txt: Added.
  • platform/gtk/fast/backgrounds/animated-svg-as-mask-expected.png:
  • platform/gtk/fast/backgrounds/size/contain-and-cover-expected.png:
  • platform/gtk/fast/backgrounds/size/contain-and-cover-expected.txt: Added.
  • platform/gtk/fast/backgrounds/size/contain-and-cover-zoomed-expected.png:
  • platform/gtk/fast/backgrounds/size/contain-and-cover-zoomed-expected.txt: Added.
  • platform/gtk/fast/harness/render-tree-as-text-options-expected.png: Added.
  • platform/gtk/imported/w3c/canvas/2d.fillStyle.parse.svg-1-expected.png: Added.
  • platform/gtk/imported/w3c/canvas/2d.fillStyle.parse.svg-2-expected.png: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-tspan-02-b-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-05-b-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/text-tselect-02-f-expected.png:
  • platform/gtk/svg/as-background-image/svg-as-background-4-expected.png:
  • platform/gtk/svg/as-background-image/svg-as-background-4-expected.txt: Added.
  • platform/gtk/svg/custom/circular-marker-reference-2-expected.png:
  • platform/gtk/svg/custom/circular-marker-reference-2-expected.txt: Added.
  • platform/gtk/svg/custom/glyph-transformation-with-hkern-expected.txt:
  • platform/gtk/svg/custom/non-circular-marker-reference-expected.png:
  • platform/gtk/svg/custom/non-circular-marker-reference-expected.txt: Added.
  • platform/gtk/svg/custom/text-clip-expected.png:
  • platform/gtk/svg/filters/filter-hidden-content-expected.png:
  • platform/gtk/svg/text/foreignObject-text-clipping-bug-expected.png:
  • platform/gtk/svg/text/select-textLength-spacing-squeeze-4-expected.png:
  • platform/gtk/svg/text/select-textLength-spacing-stretch-4-expected.png:
  • platform/gtk/svg/text/select-textLength-spacingAndGlyphs-stretch-4-expected.png:
  • platform/gtk/svg/text/select-x-list-4-expected.png:
  • platform/gtk/svg/text/select-x-list-with-tspans-4-expected.png:
  • platform/gtk/svg/text/selection-tripleclick-expected.png:
  • platform/gtk/svg/text/text-align-01-b-expected.png:
  • platform/gtk/svg/text/text-align-02-b-expected.png:
  • platform/gtk/svg/text/text-align-03-b-expected.png:
  • platform/gtk/svg/text/text-align-04-b-expected.png:
  • platform/gtk/svg/text/text-align-05-b-expected.png:
  • platform/gtk/svg/text/text-align-06-b-expected.png:
  • platform/gtk/svg/text/text-deco-01-b-expected.png:
  • platform/gtk/svg/text/text-fonts-01-t-expected.png:
  • platform/gtk/svg/text/text-fonts-02-t-expected.png:
  • platform/gtk/svg/text/text-intro-05-t-expected.png:
  • platform/gtk/svg/text/text-path-01-b-expected.png:
  • platform/gtk/svg/text/text-spacing-01-b-expected.png:
  • platform/gtk/svg/text/text-text-01-b-expected.png:
  • platform/gtk/svg/text/text-text-03-b-expected.png:
  • platform/gtk/svg/text/text-text-05-t-expected.png:
  • platform/gtk/svg/text/text-text-07-t-expected.png:
  • platform/gtk/svg/text/text-text-08-b-expected.png:
  • platform/gtk/svg/text/text-tref-01-b-expected.png:
  • platform/gtk/svg/text/text-tselect-01-b-expected.png:
  • platform/gtk/svg/text/text-tselect-02-f-expected.png:
  • platform/gtk/svg/text/text-tspan-01-b-expected.png:
  • platform/gtk/svg/text/text-ws-01-t-expected.png:
  • platform/gtk/svg/text/text-ws-02-t-expected.png:
12:40 AM Changeset in webkit [260061] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Add logging in case of WebRTC socket error
https://bugs.webkit.org/show_bug.cgi?id=210428

Reviewed by Eric Carlson.

Add some release logging in case of error when sending, setting option or closing a socket.

  • NetworkProcess/webrtc/LibWebRTCSocketClient.cpp:

(WebKit::LibWebRTCSocketClient::sendTo):
(WebKit::LibWebRTCSocketClient::close):
(WebKit::LibWebRTCSocketClient::setOption):

12:06 AM Changeset in webkit [260060] by commit-queue@webkit.org
  • 50 edits in trunk

Unreviewed, reverting r260024.
https://bugs.webkit.org/show_bug.cgi?id=210480

Regressed performance due to loss of specificity caching
(Requested by anttik on #webkit).

Reverted changeset:

"[CSS Selectors] Selectors Level 4 specificity calculation for
pseudo classes"
https://bugs.webkit.org/show_bug.cgi?id=210419
https://trac.webkit.org/changeset/260024

Apr 13, 2020:

10:32 PM Changeset in webkit [260059] by commit-queue@webkit.org
  • 22 edits in trunk/Source

Unreviewed, reverting r260052.
https://bugs.webkit.org/show_bug.cgi?id=210479

Breaks iOS tests, needs more work (Requested by smfr on
#webkit).

Reverted changeset:

"Add ENABLE_CUSTOM_SCROLLBARS and define it for macOS and for
non-Cocoa platforms"
https://bugs.webkit.org/show_bug.cgi?id=210460
https://trac.webkit.org/changeset/260052

10:12 PM Changeset in webkit [260058] by Adrian Perez de Castro
  • 4 edits in trunk/Source/WebCore

[GTK4] Use ThemeAdwaita instead of ThemeGtk
https://bugs.webkit.org/show_bug.cgi?id=210334

Reviewed by Carlos Garcia Campos.

No new tests needed.

  • platform/adwaita/ThemeAdwaita.cpp: Build the Theme::singleton() factory also with USE(GTK4).
  • platform/gtk/ThemeGtk.cpp: Conditionally build if !USE(GTK4).

(WebCore::ThemeGtk::ensurePlatformColors const): Add deprecation ignore guards.

  • platform/gtk/ThemeGtk.h: Conditionally build if !USE(GTK4).
8:05 PM Changeset in webkit [260057] by Alexey Shvayka
  • 3 edits in trunk/Source/JavaScriptCore

REGRESSION (r259587): bterlson/eshost throws during init in strict mode
https://bugs.webkit.org/show_bug.cgi?id=210470

Reviewed by Ross Kirsling.

This change makes $262.IsHTMLDDA of JSC shell a CustomValue, allowing it to be reassigned
and restoring compatibility with any version of https://github.com/bterlson/eshost.

Since putDirectCustomAccessor() is now used instead of putGetter(), scope exception assert
is no longer needed and can be safely removed, as well as JSObject::putGetter() export.

  • jsc.cpp:
  • runtime/JSObject.h:
7:59 PM Changeset in webkit [260056] by Simon Fraser
  • 4 edits
    4 adds in trunk

[Async overflow] Get scroll-snap working with async overflow scrolling on macOS
https://bugs.webkit.org/show_bug.cgi?id=210471
<rdar://problem/61643199>

Reviewed by Wenson Hsieh.

Source/WebCore:

Obey the FIXME and move scroll-snap related code to the delegate so that it works for
both frame and overflow nodes.

Tests: tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-async-overflow-stateless.html

tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-async-overflow.html

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateBeforeChildren):
(WebCore::convertToLayoutUnits): Deleted.

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::convertToLayoutUnits):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::updateFromStateNode):

LayoutTests:

Clone some overflow scroll-snap tests, and enable async scrolling for them.

  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-async-overflow-expected.txt: Added.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-async-overflow-stateless-expected.txt: Added.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-async-overflow-stateless.html: Added.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-async-overflow.html: Added.
7:40 PM Changeset in webkit [260055] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Do not cache definite height against perpendicular flex items.
https://bugs.webkit.org/show_bug.cgi?id=207603
<rdar://problem/59135373>

Reviewed by Simon Fraser.

Source/WebCore:

RenderFlexibleBox::m_hasDefiniteHeight should not be set when the child we check against is a perpendicular item
because a perpendicular box's height is resolved against the containing block's width.

Test: fast/flexbox/unresolved-height-percentage-crash.html

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild):

LayoutTests:

  • fast/flexbox/unresolved-height-percentage-crash-expected.txt: Added.
  • fast/flexbox/unresolved-height-percentage-crash.html: Added.
6:40 PM Changeset in webkit [260054] by ddkilzer@apple.com
  • 17 edits in trunk/Source

Replace use of Checked<size_t, RecordOverflow> with CheckedSize
<https://webkit.org/b/210461>

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • heap/Heap.cpp:

(JSC::Heap::deprecatedReportExtraMemorySlowCase):
(JSC::Heap::extraMemorySize):
(JSC::Heap::updateAllocationLimits):
(JSC::Heap::reportExtraMemoryVisited):

  • heap/SlotVisitor.h:
  • runtime/ArgList.cpp:

(JSC::MarkedArgumentBuffer::expandCapacity):

Source/WebCore:

  • platform/audio/ios/AudioFileReaderIOS.cpp:

(WebCore::createAudioBufferList):

  • platform/graphics/ImageBufferBackend.cpp:

(WebCore::ImageBufferBackend::calculateBackendSize):

  • platform/graphics/win/Direct2DUtilities.cpp:

(WebCore::Direct2D::createDirect2DImageSurfaceWithData):

  • platform/graphics/win/ImageBufferDirect2DBackend.cpp:

(WebCore::ImageBufferDirect2DBackend::copyNativeImage const):

Source/WebKit:

  • Platform/IPC/cocoa/MachMessage.cpp:

(IPC::MachMessage::messageSize):

  • Platform/IPC/cocoa/MachMessage.h:
  • WebProcess/Network/WebSocketChannel.cpp:

(WebKit::WebSocketChannel::increaseBufferedAmount):

Source/WTF:

  • wtf/FastMalloc.cpp:

(WTF::tryFastCalloc):

  • wtf/Gigacage.cpp:

(Gigacage::tryMallocArray):

  • wtf/glib/SocketConnection.cpp:

(WTF::SocketConnection::sendMessage):

6:30 PM Changeset in webkit [260053] by Devin Rousso
  • 2 edits in trunk/Tools

REGRESSION (r259900) : Speedometer failing on Catalina-Release-WK2-Perf bot
https://bugs.webkit.org/show_bug.cgi?id=210442
<rdar://problem/61727169>

Reviewed by Stephanie Lewis.

  • Scripts/webkitpy/performance_tests/perftest.py:

(PerfTest):

5:47 PM Changeset in webkit [260052] by Simon Fraser
  • 22 edits in trunk/Source

Add ENABLE_CUSTOM_SCROLLBARS and define it for macOS and for non-Cocoa platforms
https://bugs.webkit.org/show_bug.cgi?id=210460

Reviewed by Tim Horton.

Source/WebCore:

Wrap all custom scrollbar and custom scroll corner code in ENABLE(CUSTOM_SCROLLBARS).

  • page/FrameView.cpp:

(WebCore::FrameView::createScrollbar):
(WebCore::FrameView::updateScrollCorner):

  • page/FrameView.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::createScrollbar):
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayer.h:
  • rendering/RenderLayerCompositor.cpp:
  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::createScrollbar):

  • rendering/RenderMenuList.cpp:

(RenderMenuList::createScrollbar):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::containingBlock const):

  • rendering/RenderObject.h:
  • rendering/RenderScrollbar.cpp:
  • rendering/RenderScrollbar.h:
  • rendering/RenderScrollbarPart.cpp:
  • rendering/RenderScrollbarPart.h:
  • rendering/RenderScrollbarTheme.cpp:
  • rendering/RenderScrollbarTheme.h:
  • rendering/RenderSearchField.cpp:

(WebCore::RenderSearchField::createScrollbar):

  • rendering/RenderTextControlSingleLine.cpp:
  • style/StyleResolver.cpp:

Source/WTF:

Define ENABLE_CUSTOM_SCROLLBARS for PLATFORM(MAC) and other non-Cocoa platforms.

  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:
5:32 PM Changeset in webkit [260051] by ddkilzer@apple.com
  • 3 edits in trunk/Tools

check-webkit-style should warn about attributes that appear after function definitions
<https://webkit.org/b/210459>

Reviewed by Darin Adler.

  • Scripts/webkitpy/style/checkers/cpp.py:

(_FunctionState.attributes_after_definition): Add.

  • Return list of attributes that appear after a function definition.

(check_function_definition):

  • Add new check for attributes that appear after a function definition.
  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(CppStyleTest.test_decode_functions_missing_warn_unused_return):

  • Update test to fix new warning.

(CppStyleTest.test_function_readability_for_attributes): Add.

  • Add tests.
4:48 PM Changeset in webkit [260050] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

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

Unreviewed gardening.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
4:42 PM Changeset in webkit [260049] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Clean up more resources during WebGLLayer teardown
https://bugs.webkit.org/show_bug.cgi?id=210222

Patch by Kenneth Russell <kbr@chromium.org> on 2020-04-13
Reviewed by Dean Jackson.

Release OpenGL resources just before destruction of the underlying
OpenGL context.

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL):

  • platform/graphics/cocoa/WebGLLayer.h:
  • platform/graphics/cocoa/WebGLLayer.mm:

(-[WebGLLayer releaseGLResources]):
(-[WebGLLayer dealloc]): Deleted.

3:49 PM Changeset in webkit [260048] by Russell Epstein
  • 1 copy in tags/Safari-609.2.6

Tag Safari-609.2.6.

3:43 PM Changeset in webkit [260047] by Russell Epstein
  • 3 edits in branches/safari-609-branch

Cherry-pick r257595. rdar://problem/61735200

[Win] Fix AppleWin build
https://bugs.webkit.org/show_bug.cgi?id=208330

Reviewed by Don Olmstead.

Set framework headers directory for AppleWin build.

  • Source/cmake/target/TargetJavaScriptCore.cmake:
  • Source/cmake/target/TargetWTF.cmake:

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

3:41 PM Changeset in webkit [260046] by Russell Epstein
  • 8 edits in branches/safari-609-branch/Source

Versioning.

3:13 PM Changeset in webkit [260045] by Noam Rosenthal
  • 7 edits in trunk/Source/WebCore

Background images should figure into visually non empty heuristic
https://bugs.webkit.org/show_bug.cgi?id=208501

Reviewed by Simon Fraser.

This makes the visually non-empty heuristic treat background images the same
as it treats regular images. This is in line with first contentful paint spec in paint timing:
https://w3c.github.io/paint-timing/.

Note that the pixel count is computed based on the image size rather than the box size, as the box size might not be known at this time.
This is equivalent to the pixel reporting done for RenderImage.

Border-images and masks are excluded, as per the spec.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::imageChanged):

Call incrementVisuallyNonEmptyPixelCountIfNeeded for background images

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::RenderElement):

  • rendering/RenderBox.cpp:

(WebCore::RenderElement::incrementVisuallyNonEmptyPixelCountIfNeeded):

  • rendering/RenderBox.h:
  • rendering/RenderImage.cpp:

(WebCore::RenderImage::incrementVisuallyNonEmptyPixelCountIfNeeded): Deleted.

  • rendering/RenderImage.h:

Moved incrementVisuallyNonEmptyPixelCountIfNeeded from RenderImage to RenderElement

3:07 PM Changeset in webkit [260044] by Alan Coon
  • 1 copy in tags/Safari-610.1.9.1

Tag Safari-610.1.9.1.

3:05 PM Changeset in webkit [260043] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

REGRESSION (r259843): "Missing Plug-In" when dragging an image into Mail Compose
https://bugs.webkit.org/show_bug.cgi?id=210458
<rdar://problem/61735361>

Reviewed by Wenson Hsieh.

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::createPlugin):
r259843 changed this code from making a dictionary with a set of key->object mappings
to making a dictionary with an array of keys as its only key and an array of objects
as that key's value. Not quite the same thing.

Go back to dictionaryWithObjects:forKeys:.

3:02 PM Changeset in webkit [260042] by Alan Coon
  • 1 copy in tags/Safari-609.2.5

Tag Safari-609.2.5.

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

[iOS] Update message filters in the WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=210455

Reviewed by Geoffrey Garen.

Update message filters in the WebContent sandbox on iOS with required messages.

No new tests, since this patch should not introduce a behavior change.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
2:37 PM Changeset in webkit [260040] by Kate Cheney
  • 8 edits in trunk

http/tests/in-app-browser-privacy/app-bound-domain.html is a constant failure on iOS
https://bugs.webkit.org/show_bug.cgi?id=210344
<rdar://problem/61583925>

Reviewed by Brent Fulgham.

Tools:

This patch creates a new TestOption parameter for enabling In-App
Browser Privacy because its NSUserDefaults key is not set using the
internal or experimental keywords. It enables this flag for
WebKitTestRunner if the option is set (and disables it otherwise).

  • WebKitTestRunner/TestController.cpp:

(WTR::updateTestOptionsFromTestHeader):

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::hasSameInitializationOptions const):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::platformAddTestOptions const):

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues):

LayoutTests:

Update comment to match changes in TestOptions.

  • http/tests/in-app-browser-privacy/app-bound-domain.html:
  • http/tests/in-app-browser-privacy/switch-session-on-navigation-to-app-bound-domain.html:
2:24 PM Changeset in webkit [260039] by Jacob Uphoff
  • 2 edits
    2 deletes in trunk/LayoutTests

[ macOS ] REGRESSION(r260024) inspector/css/selector-dynamic-specificity.html is constantly failing
https://bugs.webkit.org/show_bug.cgi?id=210450

Removing a test that is no longer supported.

Unreviewed test gardening.

  • inspector/css/selector-dynamic-specificity-expected.txt: Removed.
  • inspector/css/selector-dynamic-specificity.html: Removed.
  • platform/mac/TestExpectations:
1:59 PM Changeset in webkit [260038] by ysuzuki@apple.com
  • 7 edits
    10 adds in trunk

module's default cross-origin value should be "anonymous"
https://bugs.webkit.org/show_bug.cgi?id=210326

Reviewed by Sam Weinig.

Source/WebCore:

Tests: http/tests/security/cookie-module-import-propagate.html

http/tests/security/cookie-module-import.html
http/tests/security/cookie-module-propagate.html
http/tests/security/cookie-module.html

The original spec was using "omit" crossorigin for modules when crossorigin is not set / empty.
However, the spec is changed to sending requests with "same-origin" credentials ("anonymous" crossorigin mode)
by default. We should follow it.

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestModuleScript):

  • dom/ScriptElementCachedScriptFetcher.cpp:

(WebCore::ScriptElementCachedScriptFetcher::requestModuleScript const):

  • dom/ScriptElementCachedScriptFetcher.h:
  • html/parser/HTMLResourcePreloader.cpp:

(WebCore::PreloadRequest::resourceRequest):

  • loader/cache/CachedScript.cpp:

(WebCore::CachedScript::script): While this is not directly related to this patch, added new tests found that we are returning
null StringView if the resource is zero byte. This totally works, but JSC::Parser has assertion that this is non-null
StringView. For zero byte CachedScript resource, we should return non-null empty StringView instead.

LayoutTests:

  • http/tests/security/cookie-module-expected.txt: Added.
  • http/tests/security/cookie-module-import-expected.txt: Added.
  • http/tests/security/cookie-module-import-propagate-expected.txt: Added.
  • http/tests/security/cookie-module-import-propagate.html: Added.
  • http/tests/security/cookie-module-import.html: Added.
  • http/tests/security/cookie-module-propagate-expected.txt: Added.
  • http/tests/security/cookie-module-propagate.html: Added.
  • http/tests/security/cookie-module.html: Added.
  • http/tests/security/resources/cookie-protected-script.php: Added.
  • http/tests/security/resources/module-nest-import.php: Added.
1:40 PM Changeset in webkit [260037] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Add roblox.com to the desktop class quirks list
https://bugs.webkit.org/show_bug.cgi?id=210452
<rdar://problem/58859657>

Reviewed by Zalan Bujtas.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::desktopClassBrowsingRecommendedForRequest):

1:39 PM Changeset in webkit [260036] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

Add Apple's Reality files to AR System Preview
https://bugs.webkit.org/show_bug.cgi?id=210449
<rdar://problem/61732793>

Reviewed by Sam Weinig.

Add support for Apples .reality AR files - both the vendor MIME
Type and our UTI. These have been supported by WebKitAdditions for
a while. Move them into Open Source.

  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::systemPreviewMIMETypes):

  • platform/network/mac/UTIUtilities.mm:

(WebCore::UTIFromUnknownMIMEType):

12:42 PM Changeset in webkit [260035] by Wenson Hsieh
  • 6 edits in trunk/Source/WebKit

Remove the "IgnoreViewportScalingConstraints" debug WebKit feature
https://bugs.webkit.org/show_bug.cgi?id=210440

Reviewed by Tim Horton.

Remove the internal WebKit2 feature; this was introduced around iOS 9 to unconditionally force pages to shrink
to fit if they specified a responsive viewport, to avoid horizontal scrolling.

Nowadays, this behavior is instead controlled by the -[WKWebView _allowsViewportShrinkToFit] SPI, which
ensures that this shrink-to-fit preference is updated in sync with the visible content rect update lifecycle; it
is currently used by Safari to scale web pages down to fit in smaller multitasking viewports.

In contrast, this preference has no internal clients. Instead of maintaining two different ways for clients to
control shrink-to-fit behavior, remove support for the preference and make it a no-op.

  • Shared/WebPreferences.yaml:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetIgnoreViewportScalingConstraints):
(WKPreferencesGetIgnoreViewportScalingConstraints):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

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

Remove this redundant mechanism for shrinking web pages down to fit.

(WebKit::WebPage::updateVisibleContentRects):

12:30 PM Changeset in webkit [260034] by pvollan@apple.com
  • 11 edits
    4 deletes in trunk

[iOS] Remove unused UTType swizzler code
https://bugs.webkit.org/show_bug.cgi?id=210435

Unreviewed rollout of r258120.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:
  • platform/cocoa/UTTypeRecordSwizzler.h: Removed.
  • platform/cocoa/UTTypeRecordSwizzler.mm: Removed.

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:
  • pal/spi/cocoa/NSUTTypeRecordSPI.h: Removed.

Source/WebKit:

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/UTIFromTag.mm: Removed.
12:19 PM Changeset in webkit [260033] by msaboff@apple.com
  • 4 edits
    1 add in trunk

[YARR] Allow for Unicode named capture group identifiers in non-Unicode regular expressions
https://bugs.webkit.org/show_bug.cgi?id=210309

Reviewed by Ross Kirsling.

JSTests:

  • stress/regexp-named-capture-groups.js: New test added.

(shouldBe):
(shouldThrowInvalidGroupSpecifierName):

  • test262/expectations.yaml: Updated for now failing tests.

When test262 gets updated for this change, this can be reverted.

Source/JavaScriptCore:

Update YARR pattern processing to allow for non-BMP unicode identifier characters in named capture groups.

This change was discussed and approved at the March/April 2020 TC-39 meeting.
See https://github.com/tc39/ecma262/pull/1869 for the discussion and change.

Updated tryConsumeUnicodeEscape() to allow for unicode escapes in non-unicode flagged regex's.
Added the same support to consumePossibleSurrogatePair().

  • yarr/YarrParser.h:

(JSC::Yarr::Parser::consumePossibleSurrogatePair):
(JSC::Yarr::Parser::parseCharacterClass):
(JSC::Yarr::Parser::parseTokens):
(JSC::Yarr::Parser::tryConsumeUnicodeEscape):
(JSC::Yarr::Parser::tryConsumeIdentifierCharacter):

12:02 PM Changeset in webkit [260032] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening, WebRTC flaky failures
https://bugs.webkit.org/show_bug.cgi?id=210444

Unreviewed gardening.

  • platform/gtk/TestExpectations:
11:15 AM Changeset in webkit [260031] by Kate Cheney
  • 36 edits in trunk/Source/WebKit

Turn all instances of NavigatingToAppBoundDomain into Optionals
https://bugs.webkit.org/show_bug.cgi?id=210363
<rdar://problem/61612861>

Reviewed by Brent Fulgham.

NavigatingToAppBoundDomain should be an Optional when passed to the
Network Process to distinguish the case of an empty app-bound domain
list versus an actual app-bound domain navigation. An empty list and
an app-bound navigation should have the same behavior in NetworkSessionCocoa,
but we will need distinguished behavior in the future.

  • NetworkProcess/Downloads/DownloadManager.cpp:

(WebKit::DownloadManager::startDownload):

  • NetworkProcess/Downloads/DownloadManager.h:

(WebKit::DownloadManager::startDownload):

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::startDownload):
(WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload):

  • NetworkProcess/NetworkConnectionToWebProcess.h:

(WebKit::NetworkConnectionToWebProcess::startDownload):

  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkLoadParameters.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::preconnectTo):
(WebKit::NetworkProcess::downloadRequest):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::decode):

  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/cache/AsyncRevalidation.cpp:

(WebKit::NetworkCache::AsyncRevalidation::AsyncRevalidation):

  • NetworkProcess/cache/AsyncRevalidation.h:
  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::startAsyncRevalidationIfNeeded):
(WebKit::NetworkCache::Cache::retrieve):

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::SpeculativeLoadManager::registerLoad):
(WebKit::NetworkCache::SpeculativeLoadManager::preconnectForSubresource):
(WebKit::NetworkCache::SpeculativeLoadManager::revalidateSubresource):
(WebKit::NetworkCache::SpeculativeLoadManager::preloadEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::startSpeculativeRevalidation):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

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

(WebKit::NetworkSessionCocoa::sessionWrapperForTask):
We should treat an empty WKAppBoundDomains list like an app-bound domain
navigation in the network session, so this sets
NavigatingToAppBoundDomain to Yes if the Optional is WTF::nullopt.

(WebKit::NetworkSessionCocoa::appBoundSession): Deleted.
(WebKit::NetworkSessionCocoa::isolatedSession): Deleted.
(WebKit::NetworkSessionCocoa::hasIsolatedSession const): Deleted.
(WebKit::NetworkSessionCocoa::clearIsolatedSessions): Deleted.
(WebKit::NetworkSessionCocoa::invalidateAndCancel): Deleted.
(WebKit::NetworkSessionCocoa::clearCredentials): Deleted.
(WebKit::certificatesMatch): Deleted.
(WebKit::NetworkSessionCocoa::allowsSpecificHTTPSCertificateForHost): Deleted.
(WebKit::NetworkSessionCocoa::continueDidReceiveChallenge): Deleted.
(WebKit::NetworkSessionCocoa::deviceManagementPolicyMonitor): Deleted.
(WebKit::NetworkSessionCocoa::createWebSocketTask): Deleted.
(WebKit::NetworkSessionCocoa::addWebSocketTask): Deleted.
(WebKit::NetworkSessionCocoa::removeWebSocketTask): Deleted.
(WebKit::NetworkSessionCocoa::hostNamesWithAlternativeServices const): Deleted.
(WebKit::NetworkSessionCocoa::deleteAlternativeServicesForHostNames): Deleted.
(WebKit::NetworkSessionCocoa::clearAlternativeServices): Deleted.

  • Shared/LoadParameters.h:
  • Shared/PolicyDecision.h:

(WebKit::PolicyDecision::decode):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::preconnectTo):

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

(WebKit::ProvisionalPageProxy::loadData):
(WebKit::ProvisionalPageProxy::loadRequest):

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

(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::loadDataWithNavigationShared):
(WebKit::WebPageProxy::setIsNavigatingToAppBoundDomain):
Set this to WTF::nullopt instead of NavigatingToAppBoundDomain::Yes
so the two cases are distinguished.

(WebKit::WebPageProxy::isNavigatingToAppBoundDomainTesting):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::isNavigatingToAppBoundDomain const):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::download):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::startDownload):
(WebKit::WebFrame::convertMainResourceLoadToDownload):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadDataImpl):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::setIsNavigatingToAppBoundDomain):
(WebKit::WebPage::isNavigatingToAppBoundDomain const):

10:57 AM Changeset in webkit [260030] by commit-queue@webkit.org
  • 7 edits
    18 deletes in trunk

Unreviewed, reverting r260003.
https://bugs.webkit.org/show_bug.cgi?id=210441

Avoid using basic-authentication for tests (Requested by

yusukesuzuki on #webkit).

Reverted changeset:

"module's default cross-origin value should be "anonymous""
https://bugs.webkit.org/show_bug.cgi?id=210326
https://trac.webkit.org/changeset/260003

10:56 AM Changeset in webkit [260029] by Andres Gonzalez
  • 3 edits in trunk/Tools

Make WTR::AccessibilityUIElement methods run on AX secondary thread.
https://bugs.webkit.org/show_bug.cgi?id=210392

Reviewed by Chris Fleizach.

In order to test accessibility isolated tree mode, it is necessary to
run WTR::AccessibilityUIElement methods on the AX secondary thread. This
change uses the functionality built-in AccessibilityController to
dispatch the calls to WebAccessibilityObjectWrapper to the AX thread.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::AccessibilityUIElement):
(WTR::supportedAttributes):
(WTR::attributeValue):
(WTR::descriptionOfValue):
(WTR::attributesOfElement):
(WTR::AccessibilityUIElement::getLinkedUIElements):
(WTR::AccessibilityUIElement::getDocumentLinks):
(WTR::AccessibilityUIElement::getUIElementsWithAttribute const):
(WTR::AccessibilityUIElement::getChildren):
(WTR::AccessibilityUIElement::getChildrenWithRange):
(WTR::AccessibilityUIElement::rowHeaders const):
(WTR::AccessibilityUIElement::columnHeaders const):
(WTR::AccessibilityUIElement::elementAtPoint):
(WTR::AccessibilityUIElement::indexOfChild):
(WTR::AccessibilityUIElement::elementForAttribute const):
(WTR::AccessibilityUIElement::elementForAttributeAtIndex const):
(WTR::AccessibilityUIElement::linkedUIElementAtIndex):
(WTR::AccessibilityUIElement::ariaOwnsElementAtIndex):
(WTR::AccessibilityUIElement::ariaFlowToElementAtIndex):
(WTR::AccessibilityUIElement::ariaControlsElementAtIndex):
(WTR::AccessibilityUIElement::ariaDetailsElementAtIndex):
(WTR::AccessibilityUIElement::ariaErrorMessageElementAtIndex):
(WTR::AccessibilityUIElement::disclosedRowAtIndex):
(WTR::AccessibilityUIElement::rowAtIndex):
(WTR::AccessibilityUIElement::selectedChildAtIndex const):
(WTR::AccessibilityUIElement::selectedChildrenCount const):
(WTR::AccessibilityUIElement::selectedRowAtIndex):
(WTR::AccessibilityUIElement::titleUIElement):
(WTR::AccessibilityUIElement::parentElement):
(WTR::AccessibilityUIElement::disclosedByRow):
(WTR::AccessibilityUIElement::numberAttributeValue):
(WTR::AccessibilityUIElement::isAttributeSupported):
(WTR::AccessibilityUIElement::isSelected const):
(WTR::AccessibilityUIElement::selectTextWithCriteria):

10:56 AM Changeset in webkit [260028] by Lauro Moura
  • 2 edits in trunk/Tools

[Flatpak SDK] test262-runner fails to run with WEBKIT_JHBUILD enabled
https://bugs.webkit.org/show_bug.cgi?id=210430

Make sure we check the WEBKIT_JHBUILD env var directly to avoid
requiring webkitdirs early and messing up Runner.pm compilation.

Reviewed by Philippe Normand.

  • Scripts/test262-runner:
10:53 AM Changeset in webkit [260027] by ddkilzer@apple.com
  • 6 edits in trunk/Source

Fix clang static analyzer warnings about unused instance variables in WebIconDatabase, WKView
<https://webkit.org/b/210427>

Reviewed by Alex Christensen.

Source/WebKit:

  • UIProcess/API/Cocoa/WKView.h:

(WKView._unused):

  • Use WK_UNUSED_INSTANCE_VARIABLE to ignore unused instance variable.

Source/WebKitLegacy/mac:

  • Misc/WebIconDatabase.h:

(WebIconDatabase._private):

  • Use WK_UNUSED_INSTANCE_VARIABLE to ignore unused instance variable.

Source/WTF:

  • wtf/Compiler.h:

(WK_UNUSED_INSTANCE_VARIABLE): Add.

10:52 AM Changeset in webkit [260026] by Jason_Lawrence
  • 3 edits in trunk/LayoutTests

[ macOS wk1 ] css2.1/20110323/replaced-intrinsic-ratio-001.htm is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207160

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
10:48 AM Changeset in webkit [260025] by ddkilzer@apple.com
  • 68 edits in trunk

Add WARN_UNUSED_RETURN to decode methods in Source/WebKit
<https://webkit.org/b/210423>
<rdar://problem/61715582>

Reviewed by Alex Christensen.

Source/WebKit:

  • GPUProcess/GPUProcessCreationParameters.h:
  • NetworkProcess/Downloads/DownloadID.h:

(IPC::ArgumentCoder<WebKit::DownloadID>::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/cache/NetworkCacheKey.h:

(WebKit::NetworkCache::DataKey::decode):

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::decodeRecordMetaData):
(WebKit::NetworkCache::decodeRecordHeader):

  • Platform/SharedMemory.h:
  • PluginProcess/PluginCreationParameters.h:
  • Shared/API/APIData.h:
  • Shared/API/APIError.h:
  • Shared/API/APIFrameHandle.h:
  • Shared/API/APIGeometry.h:
  • Shared/API/APINumber.h:

(API::Number::decode):

  • Shared/API/APIPageGroupHandle.h:
  • Shared/API/APIPageHandle.h:
  • Shared/API/APIURL.h:

(API::URL::decode):

  • Shared/API/APIURLRequest.h:
  • Shared/API/APIURLResponse.h:
  • Shared/API/Cocoa/RemoteObjectInvocation.h:
  • Shared/Cocoa/ArgumentCodersCocoa.h:
  • Shared/ContextMenuContextData.h:
  • Shared/Databases/IndexedDB/WebIDBResult.h:
  • Shared/EditorState.h:
  • Shared/FocusedElementInformation.h:
  • Shared/FontInfo.h:
  • Shared/LayerTreeContext.h:
  • Shared/LoadParameters.h:
  • Shared/OptionalCallbackID.h:

(WebKit::OptionalCallbackID::decode):

  • Shared/PlatformPopupMenuData.h:
  • Shared/Plugins/PluginProcessCreationParameters.h:
  • Shared/PrintInfo.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:
  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.h:
  • Shared/SessionState.h:
  • Shared/ShareableBitmap.h:
  • Shared/ShareableResource.h:
  • Shared/TouchBarMenuData.h:
  • Shared/UpdateInfo.h:
  • Shared/VisibleContentRectUpdateInfo.h:
  • Shared/WebEvent.h:
  • Shared/WebHitTestResultData.h:
  • Shared/WebNavigationDataStore.h:

(WebKit::WebNavigationDataStore::decode):

  • Shared/WebPreferencesStore.h:
  • Shared/WebProcessCreationParameters.h:
  • Shared/WebsiteData/WebsiteData.h:
  • Shared/cf/ArgumentCodersCF.h:
  • Shared/gtk/ArgumentCodersGtk.cpp:

(IPC::decodeImage):
(IPC::decodeGKeyFile):

  • Shared/gtk/ArgumentCodersGtk.h:
  • Shared/gtk/WebSelectionData.h:
  • Shared/ios/InteractionInformationAtPosition.h:
  • Shared/ios/InteractionInformationRequest.h:
  • Shared/mac/ColorSpaceData.h:
  • Shared/mac/ObjCObjectGraph.h:
  • Shared/mac/SecItemRequestData.h:
  • Shared/mac/WebGestureEvent.h:
  • UIProcess/Cocoa/SessionStateCoding.h:
  • UIProcess/LegacySessionStateCoding.h:
  • UIProcess/mac/LegacySessionStateCoding.cpp:

(WebKit::decodeSessionHistoryEntryData):
(WebKit::decodeSessionHistoryEntry):
(WebKit::decodeSessionHistoryEntries):
(WebKit::decodeV0SessionHistory):
(WebKit::decodeV1SessionHistory):
(WebKit::decodeSessionHistory):

  • WebProcess/GPU/GPUProcessConnectionInfo.h:

(WebKit::GPUProcessConnectionInfo::decode):

  • WebProcess/GPU/media/RemoteAudioBusData.h:

(WebKit::RemoteAudioBusData::decode):

  • WebProcess/MediaStream/MediaDeviceSandboxExtensions.h:
  • WebProcess/Network/NetworkProcessConnectionInfo.h:

(WebKit::NetworkProcessConnectionInfo::decode):

  • WebProcess/Plugins/Plugin.h:
  • Add WARN_UNUSED_RETURN to all decode functions.

Tools:

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_function_definition):

  • Add check for platformDecode() methods.
  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(CppStyleTest):

  • Add tests for platformDecode() methods.
10:45 AM Changeset in webkit [260024] by Antti Koivisto
  • 50 edits in trunk

[CSS Selectors] Selectors Level 4 specificity calculation for pseudo classes
https://bugs.webkit.org/show_bug.cgi?id=210419

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/invalidation/is-expected.txt:

Source/WebCore:

CSS selector specification drafts at some point had a concept of "dynamic specificity" where
the specificity of a selector depended on the element it matched. It was only ever used with
:matches and :nth-child pseudo classes and has subsequently been removed. Selector specificity
can now always be computed statically.

There is a ton of code to support this obsolete feature. Remove it.

https://drafts.csswg.org/selectors-4/#specificity-rules

"The specificity of an :is(), :not(), or :has() pseudo-class is replaced by the specificity
of the most specific complex selector in its selector list argument.

Analogously, the specificity of an :nth-child() or :nth-last-child() selector is the specificity
of the pseudo class itself (counting as one pseudo-class selector) plus the specificity of the
most specific complex selector in its selector list argument (if any)."

  • css/html.css:

Reorganize a :matches rule into a selector list to keep the exact specificites.
It matters here to select between listbox and menulist correctly based on the 'size' and 'multiple' attributes.

  • css/CSSSelector.cpp:

(WebCore::selectorSpecificity):
(WebCore::maxSpecificity):
(WebCore::simpleSelectorSpecificityInternal):
(WebCore::CSSSelector::simpleSelectorSpecificity const):

Also handle nth here.

(WebCore::CSSSelector::specificity const):
(WebCore::simpleSelectorFunctionalPseudoClassStaticSpecificity): Deleted.
(WebCore::functionalPseudoClassStaticSpecificity): Deleted.
(WebCore::staticSpecificityInternal): Deleted.
(WebCore::CSSSelector::staticSpecificity const): Deleted.

Rename to just computeSpecificity(), there is no other kind than static.

  • css/CSSSelector.h:
  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::match const):
(WebCore::SelectorChecker::matchHostPseudoClass const):
(WebCore::SelectorChecker::matchRecursively const):
(WebCore::SelectorChecker::checkOne const):
(WebCore::SelectorChecker::matchSelectorList const):

SelectorChecker doesn't need to deal with specificity anymore.

  • css/SelectorChecker.h:
  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addNthChildType):
(WebCore::SelectorCompiler::addPseudoClassType):
(WebCore::SelectorCompiler::constructFragmentsInternal):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeFunctionCallValueMatching):

Neither does SelectorCompiler.

  • cssjit/SelectorCompiler.h:
  • dom/SelectorQuery.cpp:

(WebCore::SelectorDataList::selectorMatches const):
(WebCore::SelectorDataList::selectorClosest const):

  • inspector/InspectorStyleSheet.cpp:

(WebCore::buildObjectForSelectorHelper):
(WebCore::selectorsFromSource):
(WebCore::InspectorStyleSheet::buildObjectForSelector):
(WebCore::InspectorStyleSheet::buildObjectForSelectorList):
(WebCore::InspectorStyleSheet::buildObjectForRule):
(WebCore::InspectorStyleSheet::buildArrayForRuleList):
(WebCore::hasDynamicSpecificity): Deleted.

  • inspector/InspectorStyleSheet.h:
  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::setRuleSelector):
(WebCore::InspectorCSSAgent::addRule):
(WebCore::InspectorCSSAgent::buildObjectForRule):
(WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::highlightSelector):

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::ruleMatches):
(WebCore::Style::ElementRuleCollector::collectMatchingRulesForList):

Switch to get the specificity from the selector instead of computing it during selector checking.

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

(WebCore::Style::computeMatchesBasedOnRuleHash):
(WebCore::Style::RuleData::RuleData):
(WebCore::Style::computeMatchBasedOnRuleHash): Deleted.

  • style/RuleData.h:

(WebCore::Style::RuleData::matchesBasedOnRuleHash const):
(WebCore::Style::RuleData::matchBasedOnRuleHash const): Deleted.

This can be a bit instead of an enum since there is no need to communicate specificity.

LayoutTests:

Update specificity tests for static behavior, trying to also keep them useful.

  • fast/css/is-specificity-10-expected.html:
  • fast/css/is-specificity-10.html:
  • fast/css/is-specificity-2-expected.html:
  • fast/css/is-specificity-2.html:
  • fast/css/is-specificity-3-expected.html:
  • fast/css/is-specificity-3.html:
  • fast/css/is-specificity-4-expected.html:
  • fast/css/is-specificity-4.html:
  • fast/css/is-specificity-5.html:
  • fast/css/matches-specificity-10-expected.html:
  • fast/css/matches-specificity-10.html:
  • fast/css/matches-specificity-2-expected.html:
  • fast/css/matches-specificity-2.html:
  • fast/css/matches-specificity-3-expected.html:
  • fast/css/matches-specificity-3.html:
  • fast/css/matches-specificity-4-expected.html:
  • fast/css/matches-specificity-4.html:
  • fast/css/matches-specificity-5.html:
  • fast/css/nth-child-specificity-2-expected.html:
  • fast/css/nth-child-specificity-2.html:
  • fast/css/nth-child-specificity-3-expected.html:
  • fast/css/nth-child-specificity-3.html:
  • fast/css/nth-child-specificity-4-expected.html:
  • fast/css/nth-child-specificity-4.html:
  • fast/css/nth-last-child-specificity-2-expected.html:
  • fast/css/nth-last-child-specificity-2.html:
  • fast/css/nth-last-child-specificity-3-expected.html:
  • fast/css/nth-last-child-specificity-3.html:
  • fast/css/nth-last-child-specificity-4-expected.html:
  • fast/css/nth-last-child-specificity-4.html:
10:41 AM Changeset in webkit [260023] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebCore

KeyedDecoder functions in ResourceLoadStatistics.{cpp,h} should return bool and use WARN_UNUSED_RETURN
<https://webkit.org/b/210414>
<rdar://problem/61693118>

Reviewed by Alex Christensen.

  • loader/ResourceLoadStatistics.cpp:

(WebCore::decodeHashCountedSet):
(WebCore::decodeHashSet):
(WebCore::decodeOptionSet):
(WebCore::decodeFontHashSet):
(WebCore::decodeCanvasActivityRecord):
(WebCore::ResourceLoadStatistics::decode):

  • loader/ResourceLoadStatistics.h:
  • Change decode functions to return bool.
  • Add WARN_UNUSED_RETURN to all decode functions.
  • Check the return value of all decode functions.
10:15 AM Changeset in webkit [260022] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac wk2 ] WebKit::ViewGestureController::handleSwipeGesture(WebKit::WebBackForwardListItem*, double, WebKit::ViewGestureController::SwipeDirection) - flaky crashes.
https://bugs.webkit.org/show_bug.cgi?id=210433

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:58 AM Changeset in webkit [260021] by Russell Epstein
  • 2 edits in branches/safari-610.1.9-branch/Source/WebKit

Cherry-pick r259590. rdar://problem/61691110

Unreviewed sandbox compile fix.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

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

9:54 AM Changeset in webkit [260020] by Russell Epstein
  • 8 edits in branches/safari-610.1.9-branch/Source

Versioning.

9:51 AM Changeset in webkit [260019] by Russell Epstein
  • 1 delete in branches/safari-610.1.9.1-branch

Delete branch.

9:48 AM Changeset in webkit [260018] by Russell Epstein
  • 2 edits in branches/safari-610.1.9.1-branch/Source/WebKit

Cherry-pick r259590. rdar://problem/61691110

Unreviewed sandbox compile fix.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

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

9:48 AM Changeset in webkit [260017] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Add message filtering to all iokit open rules
https://bugs.webkit.org/show_bug.cgi?id=210352

Reviewed by Sam Weinig.

Apply message filtering with reports and telemetry to all iokit-open rules in the WebContent process' sandbox on iOS
to gain a better understanding of which iokit-open rules we can investigate.

No new tests, since adding telemetry will not introduce a change in behavior.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
9:43 AM Changeset in webkit [260016] by commit-queue@webkit.org
  • 6 edits in trunk

When drawing an image srcRect and imageRect have to be in the orientation of destRect
https://bugs.webkit.org/show_bug.cgi?id=210364

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

Source/WebCore:

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::drawImage):
Use the renderer to get the orientation of the image if it is available.
Otherwise fall back to computedStyle().

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::draw):
For async image decoding, we will use the none oriented size as the
sizeForDrawing. imageRect must be in the same orientation as destRect.

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawImage):
srcRect must be in the same orientation as destRect.

LayoutTests:

  • fast/images/image-orientation-none-canvas.html:

Make this test for images with "visibility: hidden;" only. This guarantees
the images have renderers. Images with "display: none;" will be covered
in another patch because the width and height is currently incorrect if
"image-orientation: none;".

9:43 AM Changeset in webkit [260015] by Russell Epstein
  • 8 edits in branches/safari-610.1.9.1-branch/Source

Versioning.

9:40 AM Changeset in webkit [260014] by jh718.park@samsung.com
  • 8 edits in trunk/Source

Unreviewed. Remove redundant move in return statement.

Return statement already returns rvalue,
so we don't need move here.

This patch removes the build warning below since r259922.
warning: redundant move in return statement [-Wredundant-move]

Source/WebCore:

No new tests, no new behaviours.

  • page/csp/ContentSecurityPolicyResponseHeaders.h:

(WebCore::ContentSecurityPolicyResponseHeaders::decode):

  • platform/network/cf/CertificateInfoCFNet.cpp:

(WTF::Persistence::decodeSecTrustRef):

Source/WebKit:

  • NetworkProcess/cache/NetworkCacheCoders.cpp:

(WTF::Persistence::Coder<WebCore::HTTPHeaderMap>::decode):

Source/WTF:

  • wtf/persistence/PersistentCoders.cpp:

(WTF::Persistence::Coder<CString>::decode):
(WTF::Persistence::decodeStringText):
(WTF::Persistence::Coder<SHA1::Digest>::decode):

  • wtf/persistence/PersistentCoders.h:
9:35 AM Changeset in webkit [260013] by youenn@apple.com
  • 7 edits
    2 copies
    2 adds in trunk

Fix mute/unmute of CoreAudioCapture sources after revision 257914
https://bugs.webkit.org/show_bug.cgi?id=210381

Reviewed by Eric Carlson.

Source/WebCore:

Revert part of revision 257914 since we still need the active source registration/unregistration when capturing in web process.
Make sure mock factory delegates all active source handling to CoreAudioCaptureSourceFactory,
now that the mock factory is using CoreAudioCaptureSources with a mock share dunit.

Tests: platform/ios/mediastream/audio-muted-in-background-tab-gpu-process.html

platform/ios/mediastream/getUserMedia-single-capture-gpu-process.html

  • platform/mediastream/RealtimeMediaSourceFactory.h:
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioCaptureSource::~CoreAudioCaptureSource):
(WebCore::CoreAudioCaptureSource::startProducingData):

  • platform/mock/MockRealtimeMediaSourceCenter.cpp:

LayoutTests:

Clone tests for having both GPU and non GPU test runs.

  • platform/ios/mediastream/audio-muted-in-background-tab-gpu-process-expected.txt: Added.
  • platform/ios/mediastream/audio-muted-in-background-tab-gpu-process.html: Copied from LayoutTests/platform/ios/mediastream/audio-muted-in-background-tab.html.
  • platform/ios/mediastream/audio-muted-in-background-tab.html:
  • platform/ios/mediastream/getUserMedia-single-capture-gpu-process-expected.txt: Added.
  • platform/ios/mediastream/getUserMedia-single-capture-gpu-process.html: Copied from LayoutTests/platform/ios/mediastream/getUserMedia-single-capture.html.
  • platform/ios/mediastream/getUserMedia-single-capture.html:
9:33 AM Changeset in webkit [260012] by commit-queue@webkit.org
  • 6 edits in trunk/Source

Fix various build warnings
https://bugs.webkit.org/show_bug.cgi?id=210429

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-04-13
Reviewed by Mark Lam.

Source/JavaScriptCore:

Fix -Wimplicit-fallthrough warning by adding a default case CRASH() to prevent the inner
switch from falling through to the outer switch.

  • dfg/DFGArrayMode.cpp:

(JSC::DFG::ArrayMode::alreadyChecked const):

Source/WebCore:

Fix -Wunused-parameter warning.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::texImage2DBase):

Source/WebKit:

Use private-code instead of deprecated code command to build the Wayland protocol.

  • PlatformGTK.cmake:
9:31 AM Changeset in webkit [260011] by Russell Epstein
  • 1 copy in branches/safari-610.1.9.1-branch

New branch.

9:21 AM Changeset in webkit [260010] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Improve handling of unexpected network issues while communicating with Bugzilla
https://bugs.webkit.org/show_bug.cgi?id=210377

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-app/ews/common/bugzilla.py:

(BugzillaBeautifulSoup.authenticate):

8:58 AM Changeset in webkit [260009] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][TFC] Pre-fill columnIntrinsicWidths vector
https://bugs.webkit.org/show_bug.cgi?id=210415

Reviewed by Antti Koivisto.

Source/WebCore:

Vector<ColumnMinimumWidth> has a fixed number of entries (number of columns in the table).
(This patch also flips the shouldFlex flag to isFixedWidth. It reads better in the context of minimum _widths_).

Test: fast/layoutformattingcontext/table-with-column-spanner-first-row.html

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::computedPreferredWidthForColumns):
(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraHorizontalSpace):

LayoutTests:

  • fast/layoutformattingcontext/table-with-column-spanner-first-row-expected.txt: Added.
  • fast/layoutformattingcontext/table-with-column-spanner-first-row.html: Added.
8:23 AM Changeset in webkit [260008] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore

[GTK4] Fix usage of GDK event functions in PlatformWheelEventGtk
https://bugs.webkit.org/show_bug.cgi?id=210160

Reviewed by Michael Catanzaro.

No new tests needed.

  • platform/gtk/PlatformWheelEventGtk.cpp:

(WebCore::PlatformWheelEvent::PlatformWheelEvent): Conditionally
use the new GDK event functions when building with GTK4.

8:22 AM Changeset in webkit [260007] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

ews status-bubble hover-over message include unhelpful message 'Crash collection has quiesced'
https://bugs.webkit.org/show_bug.cgi?id=210378

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py:

(StatusBubble):

8:00 AM Changeset in webkit [260006] by Adrian Perez de Castro
  • 2 edits in trunk

[GTK][CMake] Introduce an USE_GTK4 build option
https://bugs.webkit.org/show_bug.cgi?id=210154

Reviewed by Carlos Garcia Campos.

Do the bare minimum changes to build against GTK4 and produce a WebKit port library with a
different name than GTK3 builds. Note that this does not attempt to make the built artifacts
parallel-installable yet, though at least the main library, headers, and the pkg-config .pc
file should be safe to install. The final names for built artifacts for GTK4 builds may
still change.

  • Source/cmake/OptionsGTK.cmake: Add a new USE_GTK4 public build option, which defaults

to FALSE for now, and depending on its value choose the required version of GTK and set
a different API version versions. This is enough to build a library with a different
name (libwebkit2gtk-5.0 vs. libwebkit2gtk-4.0) when GTK4 is in use.

7:36 AM Changeset in webkit [260005] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.28.1

WPE WebKit 2.28.1

7:28 AM Changeset in webkit [260004] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.28

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.28.1 release

.:

  • Source/cmake/OptionsWPE.cmake: Bump version numbers.

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.28.1.
6:10 AM Changeset in webkit [260003] by ysuzuki@apple.com
  • 7 edits
    18 adds in trunk

module's default cross-origin value should be "anonymous"
https://bugs.webkit.org/show_bug.cgi?id=210326

Reviewed by Sam Weinig.

Source/WebCore:

The original spec was using "omit" crossorigin for modules when crossorigin is not set / empty.
However, the spec is changed to sending requests with "same-origin" credentials ("anonymous" crossorigin mode)
by default. We should follow it.

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestModuleScript):

  • dom/ScriptElementCachedScriptFetcher.cpp:

(WebCore::ScriptElementCachedScriptFetcher::requestModuleScript const):

  • dom/ScriptElementCachedScriptFetcher.h:
  • html/parser/HTMLResourcePreloader.cpp:

(WebCore::PreloadRequest::resourceRequest):

  • loader/cache/CachedScript.cpp:

(WebCore::CachedScript::script): While this is not directly related to this patch, added new tests found that we are returning
null StringView if the resource is zero byte. This totally works, but JSC::Parser has assertion that this is non-null
StringView. For zero byte CachedScript resource, we should return non-null empty StringView instead.

LayoutTests:

  • http/tests/security/basic-auth-module-expected.txt: Added.
  • http/tests/security/basic-auth-module-import-expected.txt: Added.
  • http/tests/security/basic-auth-module-import-propagate-expected.txt: Added.
  • http/tests/security/basic-auth-module-import-propagate.html: Added.
  • http/tests/security/basic-auth-module-import.html: Added.
  • http/tests/security/basic-auth-module-propagate-expected.txt: Added.
  • http/tests/security/basic-auth-module-propagate.html: Added.
  • http/tests/security/basic-auth-module.html: Added.
  • http/tests/security/resources/module-nest-import.php: Added.
  • http/tests/security/resources/protected-script.php: Added.
  • platform/mac-wk1/http/tests/security/basic-auth-module-expected.txt: Added.
  • platform/mac-wk1/http/tests/security/basic-auth-module-import-expected.txt: Added.
  • platform/mac-wk1/http/tests/security/basic-auth-module-import-propagate-expected.txt: Added.
  • platform/mac-wk1/http/tests/security/basic-auth-module-propagate-expected.txt: Added.
  • platform/win/http/tests/security/basic-auth-module-expected.txt: Added.
  • platform/win/http/tests/security/basic-auth-module-import-expected.txt: Added.
  • platform/win/http/tests/security/basic-auth-module-import-propagate-expected.txt: Added.
  • platform/win/http/tests/security/basic-auth-module-propagate-expected.txt: Added.
3:30 AM Changeset in webkit [260002] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening, flaky failures in editing/pasteboard and editing/deleting
https://bugs.webkit.org/show_bug.cgi?id=210421

Unreviewed gardening.

  • platform/gtk/TestExpectations:
3:18 AM Changeset in webkit [260001] by cturner@igalia.com
  • 2 edits in trunk/Source/WebCore

[EME][GStreamer] remove m_cdmInstance ASSERT in cdmInstanceDetached
https://bugs.webkit.org/show_bug.cgi?id=210331

Reviewed by Xabier Rodriguez-Calvar.

In tests that reset the src very quickly, the MediaKeys can be
installed and then the src is reset before an attachment message
is sent. Hence, detachment can result in no CDM currently
existing.

Covered by imported/w3c/web-platform-tests/encrypted-media.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::cdmInstanceDetached): Only
assert if the CDM instance has been set before detachment.
(WebCore::MediaPlayerPrivateGStreamer::attemptToDecryptWithInstance):
Do not need the .get(), the operator== overload in RefPtr does
this for us, and it makes the code more consistent.

1:45 AM Changeset in webkit [260000] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.28.1

WebKitGTK 2.28.1

1:45 AM Changeset in webkit [259999] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.28.1 release

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.28.1.
1:24 AM Changeset in webkit [259998] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Remove return parameter from FrameLoader::closeURL
https://bugs.webkit.org/show_bug.cgi?id=210404

Patch by Rob Buis <rbuis@igalia.com> on 2020-04-13
Reviewed by Manuel Rego Casasnovas.

Remove return parameter from FrameLoader::closeURL since it always
returns true and is never tested.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::closeURL):

  • loader/FrameLoader.h:
1:04 AM Changeset in webkit [259997] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Remove addExtraFieldsToSubresourceRequest
https://bugs.webkit.org/show_bug.cgi?id=210407

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

Remove addExtraFieldsToSubresourceRequest since it can be replaced by
calling addExtraFieldsToRequest. The loadType parameter is not taken
into account by defaultRequestCachingPolicy so FrameLoadType::Standard
rather than m_loadType is passed.

This patch also replaces the isMainResource boolean parameter with an enum.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::addExtraFieldsToRequest):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::loadResourceSynchronously):
(WebCore::FrameLoader::loadDifferentDocumentItem):
(WebCore::FrameLoader::addExtraFieldsToSubresourceRequest): Deleted.

  • loader/FrameLoader.h:
  • loader/PingLoader.cpp:

(WebCore::PingLoader::loadImage):
(WebCore::PingLoader::sendPing):
(WebCore::PingLoader::sendViolationReport):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::load):

12:15 AM Changeset in webkit [259996] by mark.lam@apple.com
  • 6 edits in trunk/Source

Enable the ability to build the ASM LLInt for ARMv7k.
https://bugs.webkit.org/show_bug.cgi?id=210412

Reviewed by Sam Weinig.

Source/JavaScriptCore:

Fix the offlineasm so that it can build the ASM LLInt for ARMv7k. This patch does
not actually enable the ASM LLInt. The ARMv7k port still build the C Loop LLInt.

Also, the ARMv7k ASM LLInt is still broken and needs additional work before it
can run. This patch only fixes things so that it will build.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Added generate_settings_extractor.rb to the project so that we can view it from inside Xcode.
  • offlineasm/arm.rb:
  • Added support for the globaladdr LLInt instruction for ARMv7k.
  • offlineasm/backends.rb:
  • Fix the backend to enable ARMV7 also when building for ARMv7k.

Source/WTF:

Remove some old code that forces the ENABLE(C_LOOP) to be true if ENABLE(JIT) is
false. These 2 options used to be mutually exclusive, but is no more. Now, we
allow platforms to choose to build the ASM LLInt instead even if ENABLE(JIT) is
false.

  • wtf/PlatformEnable.h:

Apr 12, 2020:

11:39 PM Changeset in webkit [259995] by Antti Koivisto
  • 8 edits in trunk/LayoutTests/imported/w3c

Update imported/w3c/web-platform-tests/css/selectors/invalidation/is.html
https://bugs.webkit.org/show_bug.cgi?id=210418

Unreviewed.

Also some other minor updates from syncing css/selectors from WPT repo.

  • web-platform-tests/css/selectors/invalidation/defined.html:
  • web-platform-tests/css/selectors/invalidation/is-expected.txt:

Specificify subtest is correctly FAIL.

  • web-platform-tests/css/selectors/invalidation/is.html:
  • web-platform-tests/css/selectors/invalidation/selectorText-dynamic-001.html:
  • web-platform-tests/css/selectors/invalidation/sheet-going-away-001.html:
  • web-platform-tests/css/selectors/invalidation/sheet-going-away-002.html:
  • web-platform-tests/css/selectors/x-pseudo-element.html:
8:48 PM Changeset in webkit [259994] by Alan Coon
  • 11 edits in branches/safari-609-branch/Source

Cherry-pick r259316. rdar://problem/61269751

IndexedDB: destroy WebIDBServer when session is removed in network process
https://bugs.webkit.org/show_bug.cgi?id=209606
<rdar://problem/59310081>

Reviewed by Geoffrey Garen.

Source/WebCore:

Rename immediateCloseForUserDelete to immediateClose as we now use it in destructor of IDBServer to make sure
everything in database finishes correctly.

  • Modules/indexeddb/server/IDBServer.cpp: (WebCore::IDBServer::IDBServer::~IDBServer): (WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesModifiedSince): (WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesForOrigins):
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp: (WebCore::IDBServer::UniqueIDBDatabase::immediateClose): (WebCore::IDBServer::UniqueIDBDatabase::immediateCloseForUserDelete): Deleted.
  • Modules/indexeddb/server/UniqueIDBDatabase.h:

Source/WebKit:

Tested manually to verify WebIDBServer is removed and its thread ends when session is removed.

  • NetworkProcess/IndexedDB/WebIDBServer.cpp: (WebKit::WebIDBServer::~WebIDBServer): (WebKit::WebIDBServer::addConnection): (WebKit::WebIDBServer::removeConnection): (WebKit::WebIDBServer::close):
  • NetworkProcess/IndexedDB/WebIDBServer.h:
  • NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::destroySession): (WebKit::NetworkProcess::connectionToWebProcessClosed):

Source/WTF:

Add function to kill CrossThreadTaskHandler and make thread finish. Also add a callback to be called before
thread finishes.

  • wtf/CrossThreadTaskHandler.cpp: (WTF::CrossThreadTaskHandler::CrossThreadTaskHandler): (WTF::CrossThreadTaskHandler::setCompletionCallback): (WTF::CrossThreadTaskHandler::kill):
  • wtf/CrossThreadTaskHandler.h:

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

8:48 PM Changeset in webkit [259993] by Alan Coon
  • 3 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r257901. rdar://problem/61269751

Remove unused variable m_allUniqueIDBDatabases in IDBServer
https://bugs.webkit.org/show_bug.cgi?id=208613

Reviewed by Chris Dumez.

  • Modules/indexeddb/server/IDBServer.h: (WebCore::IDBServer::IDBServer::addDatabase): Deleted. (WebCore::IDBServer::IDBServer::removeDatabase): Deleted.
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp: (WebCore::IDBServer::UniqueIDBDatabase::UniqueIDBDatabase): (WebCore::IDBServer::UniqueIDBDatabase::~UniqueIDBDatabase):

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

8:37 PM Changeset in webkit [259992] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[WPE] Layout test gardening.

Some EME previous crashes are now failing.

Unreviewed test gardening.

  • platform/wpe/TestExpectations:
4:09 PM Changeset in webkit [259991] by Alan Bujtas
  • 1 edit
    2 adds in trunk/LayoutTests

[LFC][TFC] Add columnSpan test case (fixed width)
https://bugs.webkit.org/show_bug.cgi?id=210411

Unreviewed.

  • fast/layoutformattingcontext/table-fixed-width-colspans.html: Added.
12:51 PM Changeset in webkit [259990] by Darin Adler
  • 10 edits in trunk/Source

Fix a few mispellings of descendant and propagation
https://bugs.webkit.org/show_bug.cgi?id=210409

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • ftl/FTLAbstractHeap.h: "descendants"
  • offlineasm/ast.rb: "descendants"

Source/WebCore:

  • dom/Element.cpp:

(WebCore::Element::dispatchWheelEvent): "propagation"

  • dom/TreeScopeOrderedMap.cpp:

(WebCore::TreeScopeOrderedMap::getAllElementsById const):
"descendants". Also refactored this function a bit.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::canShowControlsManager const):
"descendants"

  • rendering/RenderFrameSet.cpp:

(WebCore::resetFrameRendererAndDescendants): "descendants"
(WebCore::RenderFrameSet::positionFrames): "descendants"
(WebCore::RenderFrameSet::positionFramesWithFlattening): "descendants"

Source/WebInspectorUI:

  • UserInterface/Views/TreeOutline.js:

(WI.TreeOutline.prototype._rememberTreeElement):
(WI.TreeOutline.prototype._forgetTreeElement):
(WI.TreeOutline.prototype.selectionControllerNumberOfItems):

12:34 PM Changeset in webkit [259989] by Lauro Moura
  • 4 edits in trunk/LayoutTests

[GTK][WPE] Gardening some crashes and flakiness

Unreviewed gardening.

  • platform/gtk-wayland/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
12:33 PM Changeset in webkit [259988] by Darin Adler
  • 5 edits in trunk/Source/WebCore

Refactor and tighten up the CSSVariableReferenceValue class
https://bugs.webkit.org/show_bug.cgi?id=210406

Reviewed by Anders Carlsson.

  • css/CSSCustomPropertyValue.h: Remove uneeded forward declaration of

CSSVariableReferenceValue, since it's not used here. Added inclde of
CSSVariableData.h since the use of Variant in this class does require
that header, which we were getting indirectly before from
CSSVariableReferenceValue.h in some translation units.

  • css/CSSVariableReferenceValue.cpp:

(WebCore::CSSVariableReferenceValue::CSSVariableReferenceValue): Moved here
from the header.
(WebCore::CSSVariableReferenceValue::create): Ditto.
(WebCore::CSSVariableReferenceValue::equals const): Ditto.
(WebCore::CSSVariableReferenceValue::customCSSText const): Use non-null to
indicate this is not serialized.

  • css/CSSVariableReferenceValue.h: Reduced includes, inlining, marked

constructor explicit, removed unneeded m_serialized boolean.

  • rendering/style/StyleCustomPropertyData.h: Remove unneeded include

of CSSVariableReferenceValue.h, not used here.

12:31 PM Changeset in webkit [259987] by Darin Adler
  • 6 edits in trunk/Source

Fix some strange uses of start/endOfDocument
https://bugs.webkit.org/show_bug.cgi?id=210408

Reviewed by Wenson Hsieh.

Source/WebCore:

  • editing/VisibleSelection.cpp:

(WebCore::VisibleSelection::setStartAndEndFromBaseAndExtentRespectingGranularity):
Call startOfDocument and endOfDocument without unnecessarily turning a Position
into a VisiblePostion, since those functions just require any node from the document.

Source/WebKit:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::replaceDictatedText): Pass the document to startOfDocument,
rather than getting the documentelement, because the function works on any
node, so there's no reason to write code to get a particular one.
(WebKit::WebPage::applyAutocorrectionInternal): Ditto.

Source/WebKitLegacy/ios:

  • WebCoreSupport/WebFrameIOS.mm:

(-[WebFrame moveSelectionToStart]): Call startOfDocument on the document;
there is no need to pass a particular VisiblePosition, since all it gets
from the VisiblePosition is the document.
(-[WebFrame moveSelectionToEnd]): Ditto, for endOfDocument.
(-[WebFrame startPosition]): Call startOfDocument on the document rather
than using code to find the document element, since the function works
on any node.
(-[WebFrame endPosition]): Ditto.

12:28 PM Changeset in webkit [259986] by Darin Adler
  • 2 edits in trunk/Source/WTF

[Cocoa] Minor tweaks to code to get locale strings to remove one-time-initialization booleans
https://bugs.webkit.org/show_bug.cgi?id=210410

Reviewed by Sam Weinig.

  • wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp:

(WTF::textBreakLocalePreference): Use auto, and no need to explicitly mark this inline.
(WTF::topLanguagePreference): Use auto.
(WTF::localeIDInBuffer): Renamed from getLocale. Changed to return a std::array and to
handle failure cases afterward rather than by initializing beforehand.
(WTF::getSearchLocale): Deleted.
(WTF::currentSearchLocaleID): Using "static const auto", wrote this in a straightforward
and compact way, using localeIDInBuffer and topLanguagePreference.
(WTF::textBreakLocale): Renamed from getTextBreakLocale and changed to return a
RetainPtr<CFStringRef>.
(WTF::currentTextBreakLocaleID): Using "static const auto", wrote this in a straightforward
and compact way, using localeIDInBuffer and textBreakLocale.

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

fast/dom/timer-throttling-hidden-page.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=210355
<rdar://problem/61462972>

Reviewed by Sam Weinig.

The test was changing the page's visiblity to 'hidden' using testRunner.setPageVisibility("hidden")
in the first timer call and then expecting that by the 5th timer iteration, the page would actually
be hidden for timer throtting to kick in. While this happen to work most of the time, this would
cause flakiness because testRunner.setPageVisibility("hidden") involves an async IPC to the
UIProcess and then an IPC back to the WebProcess to update the page's activity state.

To address the issue, we now listen for the 'visibilitychange' event and only start the test / timer
once document.hidden actually returns true.

  • fast/dom/timer-throttling-hidden-page.html:
11:32 AM Changeset in webkit [259984] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][TFC] Add support for column spanners
https://bugs.webkit.org/show_bug.cgi?id=210403

Reviewed by Antti Koivisto.

Table width constraint computation with spanner support is as follows:

  1. Collect each cells' width constraints.
  2. Collect fixed column widths set by <colgroup>'s and <col>s.
  3. Find the min/max width for each columns using the cell constraints and the <col> fixed widths but ignore column spans.
  4. Distribute column spanning cells min/max widths.
  5. Add them all up and return the computed min/max widths.
  • layout/FormattingContext.h:

(WebCore::Layout::FormattingContext::IntrinsicWidthConstraints::operator-=):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::computedPreferredWidthForColumns):
(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraHorizontalSpace):

  • layout/tableformatting/TableFormattingContextGeometry.cpp:

(WebCore::Layout::TableFormattingContext::Geometry::intrinsicWidthConstraintsForCell):

  • layout/tableformatting/TableGrid.cpp:

(WebCore::Layout::TableGrid::Columns::hasFixedColumnsOnly const):

  • layout/tableformatting/TableGrid.h:
10:53 AM Changeset in webkit [259983] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][TFC] Column, Row and Cell boxes are always ContainerBoxes
https://bugs.webkit.org/show_bug.cgi?id=210402

Reviewed by Antti Koivisto.

These boxes are always ContainerBox types.

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layoutCell):
(WebCore::Layout::TableFormattingContext::ensureTableGrid):
(WebCore::Layout::TableFormattingContext::computedPreferredWidthForColumns):

  • layout/tableformatting/TableGrid.cpp:

(WebCore::Layout::TableGrid::Column::Column):
(WebCore::Layout::TableGrid::Columns::addColumn):
(WebCore::Layout::TableGrid::Rows::addRow):
(WebCore::Layout::TableGrid::Row::Row):
(WebCore::Layout::TableGrid::Cell::Cell):
(WebCore::Layout::TableGrid::appendCell):
(WebCore::Layout::TableGrid::insertCell):
(WebCore::Layout::TableGrid::removeCell):

  • layout/tableformatting/TableGrid.h:

(WebCore::Layout::TableGrid::Column::box const):
(WebCore::Layout::TableGrid::Row::box const):
(WebCore::Layout::TableGrid::Cell::box const):

10:21 AM Changeset in webkit [259982] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC][TFC] Add support for fixed width columns
https://bugs.webkit.org/show_bug.cgi?id=210401

Reviewed by Antti Koivisto.

This is in preparation for adding support for spanner cells.
Fixed width columns (<col> and <td>) don't participate in the spanner width distribution.

  • layout/FormattingContext.h:

(WebCore::Layout::FormattingContext::IntrinsicWidthConstraints::operator-=):

  • layout/Verification.cpp:

(WebCore::Layout::areEssentiallyEqual):
(WebCore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::TableFormattingContext::computedPreferredWidthForColumns):
(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraHorizontalSpace):
(WebCore::Layout::TableFormattingContext::computePreferredWidthForColumns): Deleted.
(WebCore::Layout::TableFormattingContext::useAsContentLogicalWidth): Deleted.

  • layout/tableformatting/TableFormattingContext.h:
  • layout/tableformatting/TableFormattingContextGeometry.cpp:

(WebCore::Layout::TableFormattingContext::Geometry::intrinsicWidthConstraintsForCell):

  • layout/tableformatting/TableGrid.cpp:

(WebCore::Layout::TableGrid::Column::isFixedWidth const):
(WebCore::Layout::TableGrid::Cell::isFixedWidth const):
(WebCore::Layout::TableGrid::Slot::Slot):
(WebCore::Layout::TableGrid::appendCell):
(WebCore::Layout::TableGrid::Column::setWidthConstraints): Deleted.
(WebCore::Layout::TableGrid::Column::widthConstraints const): Deleted.
(WebCore::Layout::TableGrid::Column::hasFixedWidth const): Deleted.
(WebCore::Layout::TableGrid::widthConstraints): Deleted.

  • layout/tableformatting/TableGrid.h:

(WebCore::Layout::TableGrid::setWidthConstraints):
(WebCore::Layout::TableGrid::widthConstraints):
(WebCore::Layout::TableGrid::Column::setHasFixedWidthCell):
(WebCore::Layout::TableGrid::Column::hasFixedWidthCell const):
(WebCore::Layout::TableGrid::Slot::cell const):
(WebCore::Layout::TableGrid::Slot::cell):
(WebCore::Layout::TableGrid::Slot::widthConstraints const):
(WebCore::Layout::TableGrid::Slot::setWidthConstraints):
(WebCore::Layout::TableGrid::Slot::hasColumnSpan const):
(WebCore::Layout::TableGrid::Slot::hasRowSpan const):
(WebCore::Layout::TableGrid::Slot::isColumnSpanned const):
(WebCore::Layout::TableGrid::Slot::isRowSpanned const):
(WebCore::Layout::TableGrid::hasComputedWidthConstraints const): Deleted.

9:34 AM Changeset in webkit [259981] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC][TFC] Introduce dedicated SlotPosition/CellSpan structs
https://bugs.webkit.org/show_bug.cgi?id=210399

Reviewed by Antti Koivisto.

SlotPosition.column/row and CellSpan.column/row read better.

  • layout/LayoutUnits.h:

(WebCore::Layout::SlotPosition::SlotPosition):
(WebCore::Layout::operator==):
(WTF::SlotPositionHash::hash):
(WTF::SlotPositionHash::equal):
(WTF::HashTraits<WebCore::Layout::SlotPosition>::emptyValue):
(WTF::HashTraits<WebCore::Layout::SlotPosition>::constructDeletedValue):
(WTF::HashTraits<WebCore::Layout::SlotPosition>::isDeletedValue):

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::setRowSpan):
(WebCore::Layout::Box::setColumnSpan):
(WebCore::Layout::Box::rowSpan const):
(WebCore::Layout::Box::columnSpan const):

  • layout/layouttree/LayoutBox.h:
  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::computePreferredWidthForColumns):

  • layout/tableformatting/TableGrid.cpp:

(WebCore::Layout::TableGrid::Cell::Cell):
(WebCore::Layout::TableGrid::appendCell):

  • layout/tableformatting/TableGrid.h:

(WebCore::Layout::TableGrid::Cell::startColumn const):
(WebCore::Layout::TableGrid::Cell::endColumn const):
(WebCore::Layout::TableGrid::Cell::startRow const):
(WebCore::Layout::TableGrid::Cell::endRow const):
(WebCore::Layout::TableGrid::Cell::columnSpan const):
(WebCore::Layout::TableGrid::Cell::rowSpan const):
(WebCore::Layout::TableGrid::Cell::span const):
(WebCore::Layout::TableGrid::Cell::size const): Deleted.

9:05 AM Changeset in webkit [259980] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WTF

Follow-up: WTF::Persistence::Coder and WTF::Persistence::Decoder should use WARN_UNUSED_RETURN
<https://webkit.org/b/210238>
<rdar://problem/61491575>

Changes based on feedback from Alex Christensen and Darin Adler:

  • Remove WARN_UNUSED_RETURN from methods returning Optional<>.
  • Place WARN_UNUSED_RETURN consistently before the return type.
  • wtf/persistence/PersistentDecoder.h:
9:04 AM Changeset in webkit [259979] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][TFC] Add table support to BlockFormattingContext::Geometry::inFlowWidthAndMargin
https://bugs.webkit.org/show_bug.cgi?id=210400

Reviewed by Antti Koivisto.

Use a slightly modified shrink-to-fit logic to compute the table width.

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowWidthAndMargin):

8:46 AM Changeset in webkit [259978] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][TFC] Cleanup class/struct/variable names in TableGrid/TableFormattingContext
https://bugs.webkit.org/show_bug.cgi?id=210397

Reviewed by Antti Koivisto.

This is in preparation for the column spanner work.

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layoutInFlowContent):
(WebCore::Layout::TableFormattingContext::layoutCell):
(WebCore::Layout::TableFormattingContext::positionTableCells):
(WebCore::Layout::TableFormattingContext::setComputedGeometryForRows):
(WebCore::Layout::TableFormattingContext::setComputedGeometryForSections):
(WebCore::Layout::TableFormattingContext::ensureTableGrid):
(WebCore::Layout::TableFormattingContext::computePreferredWidthForColumns):
(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraHorizontalSpace):
(WebCore::Layout::TableFormattingContext::useAsContentLogicalWidth):
(WebCore::Layout::TableFormattingContext::layoutTableCellBox): Deleted.

  • layout/tableformatting/TableFormattingContext.h:
  • layout/tableformatting/TableGrid.cpp:

(WebCore::Layout::TableGrid::Column::Column):
(WebCore::Layout::TableGrid::Column::hasFixedWidth const):
(WebCore::Layout::TableGrid::Columns::addColumn):
(WebCore::Layout::TableGrid::Columns::addAnonymousColumn):
(WebCore::Layout::TableGrid::Rows::addRow):
(WebCore::Layout::TableGrid::Row::Row):
(WebCore::Layout::TableGrid::Cell::Cell):
(WebCore::Layout::TableGrid::Slot::Slot):
(WebCore::Layout::TableGrid::slot):
(WebCore::Layout::TableGrid::appendCell):
(WebCore::Layout::TableGrid::insertCell):
(WebCore::Layout::TableGrid::removeCell):
(WebCore::Layout::TableGrid::widthConstraints):
(WebCore::Layout::TableGrid::ColumnsContext::addColumn): Deleted.
(WebCore::Layout::TableGrid::CellInfo::CellInfo): Deleted.
(WebCore::Layout::TableGrid::SlotInfo::SlotInfo): Deleted.

  • layout/tableformatting/TableGrid.h:

(WebCore::Layout::TableGrid::totalHorizontalSpacing const):
(WebCore::Layout::TableGrid::hasComputedWidthConstraints const):
(WebCore::Layout::TableGrid::Column::box const):
(WebCore::Layout::TableGrid::Columns::list):
(WebCore::Layout::TableGrid::Columns::list const):
(WebCore::Layout::TableGrid::Columns::size const):
(WebCore::Layout::TableGrid::Columns::logicalWidth const):
(WebCore::Layout::TableGrid::Row::logicalBottom const):
(WebCore::Layout::TableGrid::Row::box const):
(WebCore::Layout::TableGrid::Rows::list):
(WebCore::Layout::TableGrid::Rows::rowList const):
(WebCore::Layout::TableGrid::Rows::size const):
(WebCore::Layout::TableGrid::Cell::startColumn const):
(WebCore::Layout::TableGrid::Cell::endColumn const):
(WebCore::Layout::TableGrid::Cell::startRow const):
(WebCore::Layout::TableGrid::Cell::endRow const):
(WebCore::Layout::TableGrid::Cell::columnSpan const):
(WebCore::Layout::TableGrid::Cell::rowSpan const):
(WebCore::Layout::TableGrid::Cell::position const):
(WebCore::Layout::TableGrid::Cell::size const):
(WebCore::Layout::TableGrid::Cell::box const):
(WebCore::Layout::TableGrid::columns const):
(WebCore::Layout::TableGrid::columns):
(WebCore::Layout::TableGrid::rows const):
(WebCore::Layout::TableGrid::rows):
(WebCore::Layout::TableGrid::cells):
(WebCore::Layout::TableGrid::CellInfo::startColumn const): Deleted.
(WebCore::Layout::TableGrid::CellInfo::endColumn const): Deleted.
(WebCore::Layout::TableGrid::CellInfo::startRow const): Deleted.
(WebCore::Layout::TableGrid::CellInfo::endRow const): Deleted.
(WebCore::Layout::TableGrid::CellInfo::columnSpan const): Deleted.
(WebCore::Layout::TableGrid::CellInfo::rowSpan const): Deleted.
(WebCore::Layout::TableGrid::Column::columnBox const): Deleted.
(WebCore::Layout::TableGrid::ColumnsContext::columns): Deleted.
(WebCore::Layout::TableGrid::ColumnsContext::columns const): Deleted.
(WebCore::Layout::TableGrid::ColumnsContext::logicalWidth const): Deleted.
(WebCore::Layout::TableGrid::columnsContext const): Deleted.
(WebCore::Layout::TableGrid::columnsContext): Deleted.

6:27 AM Changeset in webkit [259977] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.28

Merge r258978 - [GTK] Add user agent quirk for auth.mayohr.com
https://bugs.webkit.org/show_bug.cgi?id=209378

Patch by Ting-Wei Lan <Ting-Wei Lan> on 2020-03-25
Reviewed by Michael Catanzaro.

Source/WebCore:

This site blocks the login page completely and asks the user to download
Google Chrome when using our standard user agent. It only blocks the
login page. After logging in, it works fine without user agent quirks.

Note that it is required to hide Version/X from the user agent string
for the site to recognize it as a valid Chrome user agent. Since Chrome
itself does not use Version/X, it should be safe to modify the existing
quirk instead of adding a new one to handle it.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresChromeBrowser):
(WebCore::urlRequiresNoSafariVersion):
(WebCore::UserAgentQuirks::quirksForURL):
(WebCore::UserAgentQuirks::stringForQuirk):

  • platform/UserAgentQuirks.h:
  • platform/glib/UserAgentGLib.cpp:

(WebCore::buildUserAgentString):

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::assertUserAgentForURLHasNoSafariVersionQuirk):
(TestWebKitAPI::TEST):

6:27 AM Changeset in webkit [259976] by Carlos Garcia Campos
  • 16 edits in releases/WebKitGTK/webkit-2.28/Source

Merge r259284 - [GTK][WPE] Jumpy rendering of fixed-element layers while scrolling
https://bugs.webkit.org/show_bug.cgi?id=209466

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Avoid intermittent state application that can occur when asynchronous
scrolling is done on the dedicated thread while the general scene update
is being done in parallel on the composition thread, leading to partial
scrolling updates that visually present themselves as e.g. fixed
elements "jumping" around the view.

Instead of the staging state of a given Nicosia::CompositionLayer, the
scrolling nodes now update the base state with the given scrolling
change. At the end of the update, inside the UpdateScope descructor,
the updated states inside the scene are flushed into the staging phase
before they are adopted by the composition thread.

  • page/scrolling/nicosia/ScrollingTreeFixedNode.cpp:

(WebCore::ScrollingTreeFixedNode::applyLayerPositions):

  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeFrameScrollingNodeNicosia::repositionScrollingLayers):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::repositionRelatedLayers):

  • page/scrolling/nicosia/ScrollingTreeOverflowScrollProxyNode.cpp:

(WebCore::ScrollingTreeOverflowScrollProxyNode::applyLayerPositions):

  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::repositionScrollingLayers):

  • page/scrolling/nicosia/ScrollingTreePositionedNode.cpp:

(WebCore::ScrollingTreePositionedNode::applyLayerPositions):

  • page/scrolling/nicosia/ScrollingTreeStickyNode.cpp:

(WebCore::ScrollingTreeStickyNode::applyLayerPositions):

  • platform/graphics/nicosia/NicosiaPlatformLayer.h:

(Nicosia::CompositionLayer::accessStaging): Deleted.

  • platform/graphics/nicosia/NicosiaSceneIntegration.cpp:

(Nicosia::SceneIntegration::SceneIntegration):
(Nicosia::SceneIntegration::invalidate):
(Nicosia::SceneIntegration::UpdateScope::~UpdateScope):

  • platform/graphics/nicosia/NicosiaSceneIntegration.h:

(Nicosia::SceneIntegration::create):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::syncPosition):
Don't signal the related attribute delta flag since this change is now
strictly applied by the scrolling thread.
(WebCore::CoordinatedGraphicsLayer::syncBoundsOrigin): Ditto.

Source/WebKit:

Move the Nicosia::SceneIntegration ownership into the
CompositingCoordinator class, along with the SceneIntegration::Client
inheritance. LayerTreeHost in turn now implements the updateScene()
method that triggers a scene update when invoked.

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::CompositingCoordinator):
(WebKit::CompositingCoordinator::invalidate):
(WebKit::CompositingCoordinator::attachLayer):
(WebKit::CompositingCoordinator::requestUpdate):

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:
  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp:

(WebKit::LayerTreeHost::LayerTreeHost):
(WebKit::LayerTreeHost::~LayerTreeHost):
(WebKit::LayerTreeHost::updateScene):
(WebKit::LayerTreeHost::sceneIntegration): Deleted.
(WebKit::LayerTreeHost::requestUpdate): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h:
6:27 AM Changeset in webkit [259975] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r258759 - [GStreamer] White-list vp09 in the codec registry
https://bugs.webkit.org/show_bug.cgi?id=209288

Reviewed by Xabier Rodriguez-Calvar.

  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::initialize):

6:17 AM Changeset in webkit [259974] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Tools

Merge r259339 - [GTK] MiniBrowser: valgrind claims 'Invalid write of size 8' on close
https://bugs.webkit.org/show_bug.cgi?id=209471

Reviewed by Adrian Perez de Castro.

This is because we need to remove the weak pointer added in child windows to their parent.

  • MiniBrowser/gtk/BrowserWindow.c:

(browserWindowDispose): Remove the parentWindow weak ref.
(browser_window_class_init): Add dispose.

6:17 AM Changeset in webkit [259973] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r259712 - Ensure base cache path exists before calculating disk cache capacity
https://bugs.webkit.org/show_bug.cgi?id=209338

Reviewed by Adrian Perez de Castro.

The base cache path might not exist yet in Cache::open() since it's Storage::open() the one calling
FileSystem::makeAllDirectories() with the final cache directory. In such case, computeCapacity() fails because
FileSystem::getVolumeFreeSpace() needs an existing file.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::open):

6:17 AM Changeset in webkit [259972] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r259944 - [GTK] Use gdk_window_move_to_rect() to position popup menus
https://bugs.webkit.org/show_bug.cgi?id=210069

Reviewed by Michael Catanzaro.

  • UIProcess/gtk/WebPopupMenuProxyGtk.cpp:

(WebKit::WebPopupMenuProxyGtk::showPopupMenu):

6:17 AM Changeset in webkit [259971] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r259943 - [GTK] Page is not drawn with PSON, hardware acceleration and address typed in URL bar
https://bugs.webkit.org/show_bug.cgi?id=208091

Reviewed by Michael Catanzaro.

This happens only when accelerated compositing mode policy is set to always. In this case, the
bindSurfaceToWebPage wayland message is received before the WebPageProxy has updated the web page identifier. We
should always check if there's a provisional page and get its web page identifier.

  • UIProcess/gtk/WaylandCompositor.cpp:

(WebKit::WaylandCompositor::bindSurfaceToWebPage):

6:16 AM Changeset in webkit [259970] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r259942 - [GTK][PSON] Crash in WaylandCompositor::Surface destructor with USE_WPE_RENDERER disabled
https://bugs.webkit.org/show_bug.cgi?id=209345

Reviewed by Michael Catanzaro.

In case of PSON the web page identifier can change fo the same web page proxy. When swapping processes the new
web page calls bindSurfaceToWebPage(), but we still have the web page proxy bound to the previous surface. We
just need to unbind the current surface before binding the new one.

  • UIProcess/gtk/WaylandCompositor.cpp:

(WebKit::WaylandCompositor::bindSurfaceToWebPage):

6:16 AM Changeset in webkit [259969] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.28/Source

Merge r258831 - [WPE] AsyncScrolling: horizontal scrolling is inverted
https://bugs.webkit.org/show_bug.cgi?id=208638

Source/WebCore:

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2020-03-23
Reviewed by Adrian Perez de Castro.

Scrolling down should scroll to the right and up to the left..

  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeFrameScrollingNodeNicosia::handleWheelEvent): Invert also the x axis.

  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::handleWheelEvent): Ditto.

Source/WebKit:

Patch by Chris Lord <Chris Lord> on 2020-03-23
Reviewed by Adrian Perez de Castro.

  • UIProcess/API/wpe/ScrollGestureController.cpp:

(WebKit::ScrollGestureController::handleEvent):

6:16 AM Changeset in webkit [259968] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r259073 - [GStreamer] Fix missing NULL-check in setSyncOnClock
https://bugs.webkit.org/show_bug.cgi?id=209609

Unreviewed, simple fix.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::setSyncOnClock): Some systems are configured so that
audio sinks are not available. Make sure not to crash when asking
to sync with a NULL sink.

6:04 AM Changeset in webkit [259967] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r259459 - Unreviewed fix after r259382

Rubber-stamped by Carlos Garcia Campos.

No new tests needed.

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkit_web_context_register_uri_scheme): Change g_return_if_fail()
calls to actually check that the passed scheme is not one of the
special ones.

6:04 AM Changeset in webkit [259966] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r259382 - [WPE][GTK] Public API should not allow trying to register a special URI scheme
https://bugs.webkit.org/show_bug.cgi?id=209900

Reviewed by Carlos Garcia Campos.

No new tests needed.

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkit_web_context_register_uri_scheme): Use g_return_if_fail() to
check at the public API level whether the passed URI scheme is
special and bail out early.

6:04 AM Changeset in webkit [259965] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r259380 - [GTK] [2.28.0] The Yelp build crashes if DISPLAY is not set
https://bugs.webkit.org/show_bug.cgi?id=209431

Reviewed by Carlos Alberto Lopez Perez.

Remove the assert when display is not X11 nor Wayland, and simply return false to ensure acceleration is not used.

  • UIProcess/gtk/AcceleratedBackingStore.cpp:

(WebKit::AcceleratedBackingStore::checkRequirements):

6:04 AM Changeset in webkit [259964] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r259113 - [WPE] Unnecessary gl synchronization when using an OpenMAX video decoder and GLES2
https://bugs.webkit.org/show_bug.cgi?id=209647

Reviewed by Adrian Perez de Castro.

Don't perform the call to gst_gl_sync_meta_wait_cpu() when using an OpenMAX decoder,
as we don't need synchronization in that case and the internal call to glFinish()
casues an important fps drop.

  • platform/graphics/gstreamer/GStreamerCommon.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::GstVideoFrameHolder::waitForCPUSync):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):

6:04 AM Changeset in webkit [259963] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r259110 - Update Chrome and Firefox versions in user agent quirks
https://bugs.webkit.org/show_bug.cgi?id=209631

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-27
Reviewed by Carlos Garcia Campos.

  • platform/UserAgentQuirks.cpp:

(WebCore::UserAgentQuirks::stringForQuirk):

6:04 AM Changeset in webkit [259962] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r259044 - [GTK] Crash in WebKit::LayerTreeHost::LayerTreeHost with bubblewrap sandbox enabled
https://bugs.webkit.org/show_bug.cgi?id=209106

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-26
Reviewed by Carlos Garcia Campos.

Don't bind the WaylandCompositor socket unless we're running under Wayland and it's actually
started successfully.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindWayland):

6:03 AM Changeset in webkit [259961] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r258923 - [GTK] Crash in WebKit::LayerTreeHost::LayerTreeHost with bubblewrap sandbox enabled
https://bugs.webkit.org/show_bug.cgi?id=209106

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-24
Reviewed by Adrian Perez de Castro.

The bubblewrap sandbox is blocking access to WebKit's nested Wayland compositor. Apparently
nobody has ever tested the nested Wayland compositor with the sandbox enabled until now.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindWayland):

6:03 AM Changeset in webkit [259960] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WTF

Merge r259134 - REGRESSION(r258857): Broke aarch64 JSCOnly CI
https://bugs.webkit.org/show_bug.cgi?id=209670

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-27
Reviewed by Carlos Alberto Lopez Perez.

Change aarch64 to use 4 KB rather than 64 KB as the ceiling on page size.

This change is definitely incorrect, because it will break our internal aarch64 CI that uses
64 KB pages. But maybe it will fix the public aarch64 CI bot that is using 4 KB pages?
Further investigation is required, because 64 KB should have been a safe value for all
platforms, but first step is to commit this and see what happens.

  • wtf/PageBlock.h:
6:03 AM Changeset in webkit [259959] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.28/Source

Merge r258857 - REGRESSION(r249808): [GTK] Crash in JSC Config::permanentlyFreeze() on architecture ppc64el
https://bugs.webkit.org/show_bug.cgi?id=209236

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-23
Reviewed by Mark Lam.

Source/JavaScriptCore:

  • heap/MarkedBlock.h: Use new CeilingOnPageSize.
  • runtime/JSCConfig.cpp:

(JSC::Config::permanentlyFreeze): Use pageSize instead of vmPageSize.

  • runtime/JSCConfig.h: Use new CeilingOnPageSize.

Source/WTF:

Add new CeilingOnPageSize constants, for use in JSC, in order to centralize our compile-time
page size guessing into one place. Improve the implementation of pageSize() to
RELEASE_ASSERT() when CeilingOnPageSize is wrong, so we can detect and fix it if so. (It
will be even easier to detect if we change RELEASE_ASSERT_WITH_MESSAGE() to actually print
its message in release builds.) Change pageSize() to use sysconf(_SC_PAGESIZE), which is
specified by POSIX, instead of getpagesize(), which is nonstandard.

  • wtf/PageBlock.cpp:

(WTF::systemPageSize):
(WTF::pageSize):

  • wtf/PageBlock.h:
6:03 AM Changeset in webkit [259958] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/JavaScriptCore

Merge r258463 - Unreviewed. Fix windows build by making configSizeToProtect stay 4KB.

  • runtime/JSCConfig.h:
6:03 AM Changeset in webkit [259957] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.28/Source

Merge r258460 - configSizeToProtect should be 16KB
https://bugs.webkit.org/show_bug.cgi?id=209068

Reviewed by Keith Miller.

Source/bmalloc:

  • bmalloc/Gigacage.h:

Source/JavaScriptCore:

  • runtime/JSCConfig.h:
6:03 AM Changeset in webkit [259956] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28/Source

Merge r257662 - Clean up code with how we choose Gigacage sizes and whether or not to use Wasm fast memory
https://bugs.webkit.org/show_bug.cgi?id=208392

Reviewed by Yusuke Suzuki.

Source/bmalloc:

  • bmalloc/Gigacage.h:

Source/JavaScriptCore:

  • runtime/OptionsList.h:
6:03 AM Changeset in webkit [259955] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r258755 - Fix build with gstreamer 1.12
https://bugs.webkit.org/show_bug.cgi?id=209296

Patch by Mike Gorse <mgorse@suse.com> on 2020-03-20
Reviewed by Philippe Normand.

No new tests (build fix only).

  • platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:

(webKitGLVideoSinkChangeState): Add GST_VERSION_CHECK around check for
GST_STATE_CHANGE_READY_TO_READY.

6:03 AM Changeset in webkit [259954] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/JavaScriptCore

Merge r258719 - Unreviewed, build fix after r258717
https://bugs.webkit.org/show_bug.cgi?id=199295

  • llint/LowLevelInterpreter.asm:
6:03 AM Changeset in webkit [259953] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/JavaScriptCore

Merge r258717 - sanitizeStackForVMImpl writes below stack pointer, triggers huge warning spam from valgrind
https://bugs.webkit.org/show_bug.cgi?id=199295

Reviewed by Mark Lam.

During sanitizeStackForVMImpl, we should not access to the region beyond the stack-pointer.
This patch changes stack-pointer while sanitizeStackForVMImpl is zero-filling the old stack region.

  • llint/LowLevelInterpreter.asm:
6:03 AM Changeset in webkit [259952] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.28/JSTests

Merge r258710 - [JSC][BigEndians] Several JSC stress tests failing
https://bugs.webkit.org/show_bug.cgi?id=194007

Reviewed by Michael Catanzaro.

Adapt the DataView tests to be able to pass on little endian as well
as the big endian hardware. Do so by introducing method that determine
the endianess and based on its value it saves the expected results in
the right format.

  • stress/dataview-get-cse.js:

(getIsLittleEndian):
(adjustForEndianess):
(test3.foo):
(test3):

  • stress/dataview-jit-get.js:

(getIsLittleEndian):
(test1.adjustForEndianess):
(test1):
(test2.adjustForEndianess):
(test2):
(test3.adjustForEndianess):
(test3):
(adjustForEndianessUint32):
(test4):
(test5):
(test6):
(test7):
(test8):

  • stress/dataview-jit-neuter.js:

(getIsLittleEndian):
(adjustForEndianess):
(test):
(test2):

  • stress/dataview-jit-set-nan.js:

(getIsLittleEndian):
(adjustForEndianessFloat32):
(test):

  • stress/dataview-jit-set.js:

(getIsLittleEndian):
(readHex):
(adjustForEndianessUint16):
(test):
(test2):
(adjustForEndianessUint32):
(test3):
(test4):
(adjustForEndianessFloat32):
(test5):
(adjustForEndianessFloat64):
(test6):
(isLittleEndian): Deleted.

6:03 AM Changeset in webkit [259951] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r258662 - Fix ReplaceSelectionCommand::InsertedNodes::willRemoveNodePreservingChildren crash
https://bugs.webkit.org/show_bug.cgi?id=208312

Patch by Eugene But <eugenebut@chromium.org> on 2020-03-18
Reviewed by Ryosuke Niwa

ReplaceSelectionCommand::InsertedNodes::willRemoveNodePreservingChildren
was crashing on dereferencing m_firstNodeInserted pointer. Before the crash
ReplaceSelectionCommand::InsertedNodes object received the following calls:

respondToNodeInsertion() with node A, which set m_firstNodeInserted and m_lastNodeInserted to A
willRemoveNode() with node B, which left m_firstNodeInserted and m_lastNodeInserted unchanged (A)
(node A was destroyed setting m_firstNodeInserted and m_lastNodeInserted to null)
respondToNodeInsertion() with node C, which set m_firstNodeInserted and m_lastNodeInserted to C
willRemoveNodePreservingChildren() with node C, which set m_firstNodeInserted to null and crashed

This patch checks m_firstNodeInserted before dereferencing and sets m_lastNodeInserted to null if
m_firstNodeInserted became null. It seems like having non-null value for m_lastNodeInserted would
be an invalid state.

Test: editing/pasteboard/insert-apple-style-span-after-timeout.html

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNodePreservingChildren):

LayoutTests:
Test for ReplaceSelectionCommand::InsertedNodes::willRemoveNodePreservingChildren crash fix
https://bugs.webkit.org/show_bug.cgi?id=208312

Patch by Eugene But <eugenebut@chromium.org> on 2020-03-18
Reviewed by Ryosuke Niwa

This test insers empty Apple-style-span after timeout to a non-empty document.

  • editing/pasteboard/insert-apple-style-span-after-timeout.html:
6:03 AM Changeset in webkit [259950] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r258532 - A change event gets dispatched when textarea gets changed without focus
https://bugs.webkit.org/show_bug.cgi?id=202144

Patch by ChangSeok Oh <ChangSeok Oh> on 2020-03-16
Reviewed by Ryosuke Niwa.

Source/WebCore:

A crash happens in WebCore::ValidationMessage::buildBubbleTree. An immediate reason
is that DOM tree is modified in buildBubbleTree triggered by a timer.
The function calls document.updateLayout() that causes a change event
for textarea to fire when something changed in the textarea.
This bug is not reproduced on Mac because buildBubbleTree is not called.
See ValidationMessage::setMessage.
On the other hand, the root cause of this issue is triggering the change event
for textarea even if it is not focused when a change is made. This behavior
is different to what Gecko and Chromium do. When loading the test, they do not
trigger the change event although the textarea is filled by the script
since the textarea is not focused. Only when we manually make a change (meaning
the textarea is focused by user input), the event gets dispatched. To fix it,
setChangedSinceLastFormControlChangeEvent(true) is moved below the focus check
in HTMLTextAreaElement::subtreeHasChanged();

Test: fast/forms/textfield-onchange-without-focus.html

  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::subtreeHasChanged):

LayoutTests:

The test should be identical to the extected result without crash.

  • fast/forms/textfield-onchange-without-focus-expected.html: Added.
  • fast/forms/textfield-onchange-without-focus.html: Added.
6:03 AM Changeset in webkit [259949] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28

Merge r258808 - [GTK] Use ${PYTHON_EXECUTABLE} to run generate-gtkdoc
https://bugs.webkit.org/show_bug.cgi?id=208970

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-21
Reviewed by Konstantin Tokarev.

.:

There's no need to rely on shebangs when executing python scripts from CMake. This should
ensure the script always works even if the shebang does not.

  • Source/cmake/GtkDoc.cmake:

Tools:

We are allowed to use /usr/bin/env in this script because it's not installed (so not
packaged). Therefore we can make the shebang compatible with FreeBSD in this particularl
case.

  • gtkdoc/generate-gtkdoc:
6:03 AM Changeset in webkit [259948] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Tools

Merge r258328 - [GTK] Use #!/usr/bin/python3 shebang to run generate-gtkdoc
https://bugs.webkit.org/show_bug.cgi?id=208970

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-12
Reviewed by Daniel Bates.

Fedora and Ubuntu are both patching generate-gtkdoc to use #!/usr/bin/python3 rather than

probably has similar rules.

Note this is the only script that attempts to use /usr/bin/python in tarball builds.
Everything else that does so is probably only used by webkit-build.

https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_multiple_python_runtimes

  • gtkdoc/generate-gtkdoc:
6:02 AM Changeset in webkit [259947] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r258542 - [GStreamer][MSE] Playback rate update support
https://bugs.webkit.org/show_bug.cgi?id=208454

Reviewed by Xabier Rodriguez-Calvar.

Implement playback rate update support for the MSE player. Also
includes drive-by logging cleanups.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::updatePlaybackRate):
(WebCore::MediaPlayerPrivateGStreamer::setRate):
(WebCore::MediaPlayerPrivateGStreamer::setPreservesPitch):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

(WebCore::MediaPlayerPrivateGStreamer::pipeline const):

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::seek):
(WebCore::MediaPlayerPrivateGStreamerMSE::doSeek):
(WebCore::MediaPlayerPrivateGStreamerMSE::maybeFinishSeek):
(WebCore::MediaPlayerPrivateGStreamerMSE::seekCompleted):
(WebCore::MediaPlayerPrivateGStreamerMSE::updatePlaybackRate): Deleted.
(WebCore::MediaPlayerPrivateGStreamerMSE::setRate): Deleted.

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
6:02 AM Changeset in webkit [259946] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r258199 - Unreviewed, !USE(GSTREAMER_GL) build fix after r258197.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::GstVideoFrameHolder::platformLayerBuffer):

6:02 AM WebKitGTK/2.28.x edited by Carlos Garcia Campos
(diff)
6:02 AM Changeset in webkit [259945] by Carlos Garcia Campos
  • 10 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r258197 - [GStreamer][GL] External OES textures rendering support
https://bugs.webkit.org/show_bug.cgi?id=208572

Patch by Philippe Normand <philn@igalia.com> on 2020-03-10
Reviewed by Žan Doberšek.

For hardware that contains native YUV samplers, some drivers may
only support external-oes import of YUV textures, so by supporting
this texture target in the MediaPlayer we can avoid some costly
operations in the pipeline.

  • platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:

(webKitGLVideoSinkSetMediaPlayerPrivate):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::GstVideoFrameHolder::GstVideoFrameHolder):
(WebCore::GstVideoFrameHolder::platformLayerBuffer):
(WebCore::MediaPlayerPrivateGStreamer::paint):

  • platform/graphics/gstreamer/VideoTextureCopierGStreamer.cpp:

(WebCore::VideoTextureCopierGStreamer::copyVideoTextureToPlatformTexture):

  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
(WebCore::TextureMapperGL::drawTextureExternalOES):

  • platform/graphics/texmap/TextureMapperGL.h:
  • platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp:

(WebCore::TextureMapperPlatformLayerBuffer::clone):
(WebCore::TextureMapperPlatformLayerBuffer::paintToTextureMapper):

  • platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h:
  • platform/graphics/texmap/TextureMapperShaderProgram.cpp:

(WebCore::TextureMapperShaderProgram::create):

  • platform/graphics/texmap/TextureMapperShaderProgram.h:
2:28 AM Changeset in webkit [259944] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[GTK] Use gdk_window_move_to_rect() to position popup menus
https://bugs.webkit.org/show_bug.cgi?id=210069

Reviewed by Michael Catanzaro.

  • UIProcess/gtk/WebPopupMenuProxyGtk.cpp:

(WebKit::WebPopupMenuProxyGtk::showPopupMenu):

2:27 AM Changeset in webkit [259943] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[GTK] Page is not drawn with PSON, hardware acceleration and address typed in URL bar
https://bugs.webkit.org/show_bug.cgi?id=208091

Reviewed by Michael Catanzaro.

This happens only when accelerated compositing mode policy is set to always. In this case, the
bindSurfaceToWebPage wayland message is received before the WebPageProxy has updated the web page identifier. We
should always check if there's a provisional page and get its web page identifier.

  • UIProcess/gtk/WaylandCompositor.cpp:

(WebKit::WaylandCompositor::bindSurfaceToWebPage):

2:26 AM Changeset in webkit [259942] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[GTK][PSON] Crash in WaylandCompositor::Surface destructor with USE_WPE_RENDERER disabled
https://bugs.webkit.org/show_bug.cgi?id=209345

Reviewed by Michael Catanzaro.

In case of PSON the web page identifier can change fo the same web page proxy. When swapping processes the new
web page calls bindSurfaceToWebPage(), but we still have the web page proxy bound to the previous surface. We
just need to unbind the current surface before binding the new one.

  • UIProcess/gtk/WaylandCompositor.cpp:

(WebKit::WaylandCompositor::bindSurfaceToWebPage):

12:42 AM Changeset in webkit [259941] by Ross Kirsling
  • 8 edits in trunk

[ECMA-402] WebKit Intl does not allow calendar and numberingSystem options
https://bugs.webkit.org/show_bug.cgi?id=209784

Reviewed by Myles C. Maxfield.

JSTests:

  • stress/intl-datetimeformat.js:

Fix two test cases for old behavior.

  • test262/expectations.yaml:

Mark 16 test cases as passing.

Source/JavaScriptCore:

As an alternative to using ca and nu extensions in the locale string:

Since we already support ca and nu, this is a very simple addition.
The only interesting part is that we must verify that values for these options are 3-8 alphanumeric characters.

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::initializeDateTimeFormat):

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::initializeNumberFormat):
(JSC::IntlNumberFormat::resolvedOptions):

  • runtime/IntlObject.cpp:

(JSC::isUnicodeLocaleIdentifierType):

  • runtime/IntlObject.h:

Apr 11, 2020:

9:32 PM Changeset in webkit [259940] by ddkilzer@apple.com
  • 11 edits in trunk/Source/WebKit

Follow-up: Add WARN_UNUSED_RETURN to decode methods in Source/WebKit/Platform/IPC
<https://webkit.org/b/210316>
<rdar://problem/61559305>

Changes based on feedback from Alex Christensen and Darin Adler:

  • Remove WARN_UNUSED_RETURN from methods returning Optional<>.
  • Place WARN_UNUSED_RETURN consistently before the return type.
  • Platform/IPC/ArgumentCoder.h:
  • Platform/IPC/ArgumentCoders.cpp:
  • Platform/IPC/ArgumentCoders.h:

(IPC::ArgumentCoder<OptionSet<T>>::decode):
(IPC::ArgumentCoder<Optional<T>>::decode):
(IPC::ArgumentCoder<Box<T>>::decode):
(IPC::TupleDecoderImpl::decode):
(IPC::TupleDecoderImpl<Type>::decode):
(IPC::TupleDecoder::decode):
(IPC::TupleDecoder<0>::decode):
(IPC::VariantCoder::decode):

  • Platform/IPC/Attachment.h:
  • Platform/IPC/DataReference.h:
  • Platform/IPC/Decoder.h:
  • Platform/IPC/FormDataReference.h:

(IPC::FormDataReference::decode):

  • Platform/IPC/ImageDataReference.h:

(IPC::ImageDataReference::decode):

  • Platform/IPC/SharedBufferDataReference.h:

(IPC::SharedBufferDataReference::decode):

  • Platform/IPC/StringReference.h:
8:13 PM Changeset in webkit [259939] by Jack Lee
  • 3 edits
    2 adds in trunk

Infinite loop in InsertListCommand::doApply()
https://bugs.webkit.org/show_bug.cgi?id=210354
<rdar://problem/61427778>

Reviewed by Darin Adler.

Source/WebCore:

Function startOfNextParagraph may return an empty position. Added null check to exit the while loop
and stop looking for next paragraph.

Test: editing/inserting/insert-list-end-of-table.html

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::doApply):

LayoutTests:

Added a regression test for the crash.

  • editing/inserting/insert-list-end-of-table-expected.txt: Added.
  • editing/inserting/insert-list-end-of-table.html: Added.
5:43 PM Changeset in webkit [259938] by Wenson Hsieh
  • 9 edits in trunk

[macOS] [WK1] Touch Bar flashes when typing in Vietnamese in Mail
https://bugs.webkit.org/show_bug.cgi?id=210394
<rdar://problem/60099560>

Reviewed by Tim Horton.

Source/WebCore:

See WebKitLegacy/mac/ChangeLog for more details.

Currently, many users of TemporarySelectionChange use it to temporarily avoid propagating selection changes to
the client layer during temporary selection changes. This involves creating a TemporarySelectionChange without
a new selection, but with the IgnoreSelectionChanges option specified, which makes us call `Editor::
setIgnoreSelectionChanges` to suppress selection change notifications.

Do a bit of cleanup in this area by introducing IgnoreSelectionChangeForScope, which wraps a
TemporarySelectionChange and makes it easier for a handful of call sites that currently use
TemporarySelectionChange to hide selection changes from the client layer to get their desired behavior.

Test: CandidateTests.DoNotHideCandidatesDuringTextReplacement

  • editing/Editor.cpp:

(WebCore::Editor::respondToChangedSelection):

  • editing/Editor.h:

(WebCore::TemporarySelectionChange::TemporarySelectionChange):
(WebCore::IgnoreSelectionChangeForScope::IgnoreSelectionChangeForScope):

  • page/DragController.cpp:

(WebCore::DragController::performDragOperation):
(WebCore::DragController::insertDroppedImagePlaceholdersAtCaret):

Replace these:

TemporarySelectionChange ignoreSelectionChanges { frame, WTF::nullopt, TemporarySelectionOption::IgnoreSelectionChanges };

...with these instead:

IgnoreSelectionChangeForScope ignoreSelectionChanges { *frame };

Source/WebKitLegacy/mac:

In recent versions of macOS, changes to the animation of the candidate list touch bar item when it is expanded
or collapsed using -updateWithInsertionPointVisibility: mean that back-to-back calls to hide and show the
candidate list during the same runloop now result in a visible flicker, whereas it would remain still in prior
releases.

Combined with how -[WebHTMLView insertText:] in WebKitLegacy causes multiple selection change updates if the
argument is an attributed string with the text replacement attribute, this means that there is now a visible
flicker in the touch bar when using input methods that rely on the NSTextInputReplacementRangeAttributeName
attribute. One such input method is Simple Telex (Vietnamese), when typing causes characters in other parts of
the word to gain diacritics.

To fix this, we make two small adjustments in WebKitLegacy (see below).

  • WebView/WebHTMLView.mm:

(-[WebHTMLView insertText:]):

While inserting text (which may be an NSAttibutedString or NSString), we may come across an attribute indicating
which part of the document to replace. In this case, we will select this range in the document before inserting
the given text.

This selection change is propagated to the client layer, which makes us briefly think that we have a ranged
selection, causing the flicker described above. Address this by suppressing selection change notifications while
we're selecting the range to replace, using the new IgnoreSelectionChangeForScope RAII object (see WebCore
changes for more detail).

  • WebView/WebView.mm:

(-[WebView updateTextTouchBar]):

When updating the text touch bar (which contains the candidate list item) after a selection change, we currently
handle the case where selection changes are ignored by hiding the candidate list; this doesn't seem right, since
selection changes that are ignored should simply be ignored by the client. To fix this, push the
ignoreSelectionChanges() check into the if statement.

Tools:

Add an API test that inserts an attributed string with the text replacement attribute, and verifies that we
show the candidate list when inserting the string, and also don't temporarily hide the candidate list in the
process of doing so.

To achieve this, we swizzle out calls to -[NSCandidateListTouchBarItem updateWithInsertionPointVisibility:] to
detect when the candidate list is either hidden or made visible.

  • TestWebKitAPI/Tests/TestWebKitAPI/mac/AppKitSPI.h:
  • TestWebKitAPI/Tests/mac/CandidateTests.mm:

Fix a leak in an adjacent test too, while I'm touching this file.

(TestWebKitAPI::updateCandidateListWithVisibility):

4:56 PM Changeset in webkit [259937] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebKit

Follow-up: Add WARN_UNUSED_RETURN to decode methods in WebCoreArgumentCoders
<https://webkit.org/b/210322>
<rdar://problem/61565148>

Changes based on feedback from Alex Christensen and Darin Adler:

  • Remove WARN_UNUSED_RETURN from methods returning Optional<>.
  • Place WARN_UNUSED_RETURN consistently before the return type.
  • Shared/WebCoreArgumentCoders.cpp:
  • Shared/WebCoreArgumentCoders.h:
4:49 PM Changeset in webkit [259936] by Simon Fraser
  • 4 edits
    4 adds in trunk

[Async overflow] Can't scroll overflow:scroll in sideways-scrollable RTL document
https://bugs.webkit.org/show_bug.cgi?id=210389

Reviewed by Tim Horton.

Source/WebCore:

ScrollingTree::handleWheelEvent() converts the event coordinates from view to "content"
coordinates, but we then jump into hit-testing on CALayers. In a sideways-scrollable
RTL document, the root content layer has a negative X offset which corresponds to
scrollOrigin; we need to map the point into the coordinate space of this layer
before entering layer-based hit-testing.

Tests: fast/scrolling/mac/async-scroll-overflow-rtl-zoomed.html

fast/scrolling/mac/async-scroll-overflow-rtl.html

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::handleWheelEvent):

  • page/scrolling/mac/ScrollingTreeMac.mm:

(ScrollingTreeMac::scrollingNodeForPoint):

LayoutTests:

  • fast/scrolling/mac/async-scroll-overflow-rtl-expected.txt: Added.
  • fast/scrolling/mac/async-scroll-overflow-rtl-zoomed-expected.txt: Added.
  • fast/scrolling/mac/async-scroll-overflow-rtl-zoomed.html: Added.
  • fast/scrolling/mac/async-scroll-overflow-rtl.html: Added.
4:21 PM Changeset in webkit [259935] by dbates@webkit.org
  • 3 edits in trunk/Source/WebKit

Add text interaction delegate functions
https://bugs.webkit.org/show_bug.cgi?id=210395
<rdar://problem/61650549>

Reviewed by Wenson Hsieh.

Implement some delegate callbacks that are used to toggle selection reveal,
placeholder text, and selection assistance.

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

(-[WKContentView _willBeginTextInteractionInTextInputContext:]): Added.
(-[WKContentView _didFinishTextInteractionInTextInputContext:]): Added.

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

[GTK] Gardening of encrypted-media tests
https://bugs.webkit.org/show_bug.cgi?id=210391

Unreviewed gardening.

  • platform/gtk/TestExpectations:
12:36 PM Changeset in webkit [259933] by Darin Adler
  • 22 edits in trunk/Source

Move more from live range to SimpleRange: callers of absoluteTextRects
https://bugs.webkit.org/show_bug.cgi?id=210369

Reviewed by Anders Carlsson.

Source/WebCore:

  • dom/Node.cpp:

(WebCore::Node::textRects const): Deleted.

  • dom/Node.h: Updated for the above.
  • dom/Range.cpp:

(WebCore::Range::absoluteBoundingBox const): Updated since absoluteTextRects
no longer has a RangeInFixedPosition* argument.
(WebCore::Range::absoluteTextRects const): Removed the unused RangeInFixedPosition*
argument.

  • dom/Range.h: Got rid of unused RangeInFixedPosition type and also removed

RangeInFixedPosition* argument from the absoluteTextRects function. Later will
remove absoluteTextRects entirely.

  • editing/Editor.cpp:

(WebCore::Editor::firstRectForRange const): Use RenderObject::absoluteTextQuads
and unitedBoundingBoxes rather than using RenderObject::absoluteBoundingBoxRectForRange.

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::detectContentInRange): Use SimpleRange rather than
live ranges.

  • html/HTMLTextFormControlElement.cpp:

(WebCore::setContainerAndOffsetForRange): Moved from int to unsigned.
(WebCore::HTMLTextFormControlElement::selection const): Return Optional<SimpleRange>
rather than a live range.

  • html/HTMLTextFormControlElement.h: Updated for the change above.
  • page/TextIndicator.cpp:

(WebCore::initializeIndicator): Updated since absoluteTextRects no longer takes
a RangeInFixedPosition* argument.

  • rendering/HighlightData.h: Removed stray obsolete declaration.
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::absoluteBoundingBoxRectForRange): Deleted. Callers can
use absoluteTextQuads directly. We need to cut down on the number of separate
functions that are not really separate concepts, and this was used in only one place.
(WebCore::RenderObject::absoluteTextRects): Added. Replaces Range::absoluteTextRects
for all callers outside the live range class and will eventually replace it entirely.

  • rendering/RenderObject.h: Updated for the above.

Source/WebKit:

  • WebProcess/InjectedBundle/API/mac/WKDOMNode.mm:

(-[WKDOMNode textRects]): Moved implementation here. There's no reason for Node
to have a textRects function, since it's a layout/rendering operation and a
single node is also an unusual special case, but for now at least we will keep
this legacy method.

  • WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:

(-[WKDOMRange textRects]): Changed to call RenderObject::absoluteTextRects
instead of Range::absoluteTextRects.

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::updateFindUIAfterPageScroll): Use
RenderObject::absoluteTextRects instead of Range::absoluteRectRects.
(WebKit::FindController::findStringMatches): Ditto.

Source/WebKitLegacy/ios:

  • WebCoreSupport/WebFrameIOS.mm:

(-[WebFrame closestCaretRectInMarkedTextRangeForPoint:]): Use
RenderObject::absoluteTextRects instead of Range::absoluteTextRects.
Also added some missing null checks and reorganized the function a
bit to make it more direct and slightly cleaerer.

Source/WebKitLegacy/mac:

  • DOM/DOM.mm:

(-[DOMNode textRects]): Moved implementation here. There's no reason for Node
to have a textRects function, since it's a layout/rendering operation and a
single node is also an unusual special case, but for now we will keep this
legacy method for compatibility with old clients.
(-[DOMRange textRects]): Changed to call RenderObject::absoluteTextRects
instead of Range::absoluteTextRects.

  • WebView/WebFrame.mm:

(-[WebFrame _rectsForRange:]): Changed to call -[DOMRange textRects] instead
of Range::absoluteTextRects. Don't really need two identical methods but
probably need to keep this around for compatiblitiy.

11:46 AM Changeset in webkit [259932] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening of mediastream tests
https://bugs.webkit.org/show_bug.cgi?id=210386

Unreviewed gardening.

  • platform/gtk/TestExpectations:
11:36 AM Changeset in webkit [259931] by Devin Rousso
  • 5 edits
    2 adds in trunk/Source/WebCore

REGRESSION (Safari 13.1?): Web Inspector: Debugger hang at breakpoint when using Keyboard Maestro
https://bugs.webkit.org/show_bug.cgi?id=210177
<rdar://problem/61485723>

Reviewed by Joseph Pecoraro.

Partial revert of r251036 <https://webkit.org/b/202716> to go back to using AppKit APIs
instead of CFRunLoopRunInMode. Only seems to affect WebKitLegacy.

  • inspector/PageScriptDebugServer.h:
  • inspector/PageScriptDebugServer.cpp:

(WebCore::PageScriptDebugServer::runEventLoopWhilePausedInternal):
(WebCore::PageScriptDebugServer::platformShouldContinueRunningEventLoopWhilePaused):

  • inspector/mac/PageScriptDebugServerMac.mm: Added.

(WebCore::PageScriptDebugServer::platformShouldContinueRunningEventLoopWhilePaused):

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
8:35 AM Changeset in webkit [259930] by Darin Adler
  • 19 edits in trunk/Source/WebCore

Use Node::length to replace Node::maxCharacterOffset and lastOffsetInNode; switch more offsets from int to unsigned
https://bugs.webkit.org/show_bug.cgi?id=210246

Reviewed by Antti Koivisto.

  • The recently-added Node::length, which matches the DOM specification terminology for node offsets as used in ranges, is the same as the existing maxCharacterOffset and lastOffsetInNode functions. Deleted all uses of those and replaced them with calls to Node::length. One of the benefits of this is that Node::length is implemented more efficiently and is not a virtual function. Another is consistently matching the DOM specification terminology.
  • Many offsets, including the ones in live ranges, are currently implemented as signed in WebKit, but are specified as unsigned in the DOM and HTML specifications. This has very little observable effect from JavaScript that can affect website compatibility, but it's still helpful to be consistent both with the specification and internally. Accordingly, changed some of these to unsigned; more to come later.
  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::previousBoundary): Use length instead of
maxCharacterOffset.

  • dom/CharacterData.cpp:

(WebCore::CharacterData::maxCharacterOffset const): Deleted.

  • dom/CharacterData.h: Deleted maxCharacterOffset override.
  • dom/DocumentMarkerController.cpp:

(WebCore::DocumentMarkerController::shiftMarkers): Use length instead of
maxCharacterOffset.

  • dom/Node.cpp:

(WebCore::Node::maxCharacterOffset const): Deleted.

  • dom/Node.h: Deleted maxCharacterOffset.
  • dom/Position.cpp:

(WebCore::Position::computeOffsetInContainerNode const): Use length instead
of lastOffsetInNode.

  • dom/Position.h:

(WebCore::lastOffsetInNode): Deleted.
(WebCore::lastPositionInNode): Use length instead of lastOffsetInNode.
(WebCore::minOffsetForNode): Use length instead of maxCharacterOffset.
(WebCore::offsetIsBeforeLastNodeOffset): Ditto.

  • dom/RangeBoundaryPoint.h:

(WebCore::RangeBoundaryPoint::setToEndOfNode): Use length instead of
maxCharacterOffset.

  • editing/ApplyBlockElementCommand.cpp:

(WebCore::isNewLineAtPosition): Use length instead of maxCharacterOffset.
(WebCore::ApplyBlockElementCommand::rangeForParagraphSplittingTextNodesIfNeeded):
Ditto.

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::removeInlineStyle): Use length instead of
maxCharacterOffset.

  • editing/Editing.cpp:

(WebCore::lastOffsetForEditing): Use length instead of mmaxCharacterOffset
and countChildNodes. Also improved the comment here.

  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::styleAtSelectionStart): Use length instead of
maxCharacterOffset.

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::doApplyForSingleParagraph): Use length instead
of lastOffsetInNode.

  • editing/TextIterator.cpp:

(WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
USe length instead of lastOffsetInNode.

  • editing/VisibleUnits.cpp:

(WebCore::previousBoundary): Use length instead of maxCharacterOffset.

8:14 AM Changeset in webkit [259929] by Devin Rousso
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: CSS: variables should have a go-to arrow to quickly jump to the definition
https://bugs.webkit.org/show_bug.cgi?id=195775
<rdar://problem/48905785>

Reviewed by Timothy Hatcher.

Often when debugging/editing styles that use CSS variables, the desired workflow is to
modify the variable itself, not that specific usage. This is especially helpful when editing
colors saved in CSS variables.

Add an always visible go-to arrow immediately after the variable (e.g. --XYZ (->)) that
will jump to the declaration of the variable elsewhere in the style cascade.

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype._addVariableTokens):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:

(.spreadsheet-style-declaration-editor .property .select-variable-property): Added.

  • UserInterface/Base/Setting.js:
  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

  • Localizations/en.lproj/localizedStrings.js:
7:07 AM Changeset in webkit [259928] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening, mark some WebInspector tests as Slow
https://bugs.webkit.org/show_bug.cgi?id=210380

Unreviewed gardening.

  • platform/gtk/TestExpectations:
5:36 AM Changeset in webkit [259927] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Buildbot: Force crash log submission after each test run (follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=210202
<rdar://problem/60508929>

Unreviewed follow-up fix.

  • BuildSlaveSupport/ews-build/steps.py:

(WaitForCrashCollection): Remove spaces from step name.

5:07 AM Changeset in webkit [259926] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Buildbot: Force crash log submission after each test run (follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=210202
<rdar://problem/60508929>

Unreviewed follow-up fix.

  • BuildSlaveSupport/wait-for-crash-collection: Improved error message.
4:28 AM Changeset in webkit [259925] by ddkilzer@apple.com
  • 3 edits in trunk/Tools

check-webkit-style should warn about 'decode' functions with missing WARN_UNUSED_RETURN attribute
<https://webkit.org/b/210336>
<rdar://problem/61585835>

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/style/checkers/cpp.py:

(_FunctionState.post_modifiers): Add. Returns string of text
that appears after the function definition's list of parameters.
This is used to find the WARN_UNUSED_RETURN attribute in
function declarations in header files.
(_FunctionState.has_attribute): Add. Takes a string (or regex)
and searchs before and after the function definition for the
attribute.
(_FunctionState.has_return_type): Add. Takes a string (or
regex) and checks the return type of the fuction.
(_FunctionState.is_static): Add. Returns True for functions
with the 'static' modifier.
(check_function_definition): Add check for decode() functions
with missing WARN_UNUSED_RETURN attribute.
(CppChecker): Add 'security/missing_warn_unused_return' to the
list of enabled style checkers.

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(CppStyleTestBase.perform_function_definition_check): Add. This
runs the check_function_definition() function in cpp.py.
(CppStyleTest.test_decode_functions_missing_warn_unused_return): Add.
Tests for the new warning.

2:41 AM Changeset in webkit [259924] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening of flaky failures
https://bugs.webkit.org/show_bug.cgi?id=210376

Unreviewed gardening.

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