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

Timeline



Jul 17, 2021:

10:27 AM Changeset in webkit [280018] by Alan Bujtas
  • 8 edits
    1 add in trunk/Source/WebCore

[LFC][IFC] Move InlineLevelBox class to its own file
https://bugs.webkit.org/show_bug.cgi?id=228045

Reviewed by Sam Weinig.

LineBox class has grown a lot since the subclass of InlineLevelBox has been introduced.
It is also in preparation for merging LineBox and LineBoxGeometry classes.

  • WebCore.xcodeproj/project.pbxproj:
  • layout/formattingContexts/inline/InlineFormattingGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::setVerticalGeometryForInlineBox const):
(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::computeLineBoxHeightAndAlignInlineLevelBoxesVertically):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::SimplifiedVerticalAlignment):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::canUseSimplifiedAlignment):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::align):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::adjust):
(WebCore::Layout::InlineFormattingGeometry::inlineLevelBoxAffectsLineBox const):

  • layout/formattingContexts/inline/InlineFormattingGeometry.h:
  • layout/formattingContexts/inline/InlineFormattingQuirks.cpp:

(WebCore::Layout::InlineFormattingQuirks::inlineLevelBoxAffectsLineBox const):

  • layout/formattingContexts/inline/InlineFormattingQuirks.h:
  • layout/formattingContexts/inline/InlineLevelBox.h: Added.

(WebCore::Layout::InlineLevelBox::baseline const):
(WebCore::Layout::InlineLevelBox::descent const):
(WebCore::Layout::InlineLevelBox::LayoutBounds::height const):
(WebCore::Layout::InlineLevelBox::LayoutBounds::operator== const):
(WebCore::Layout::InlineLevelBox::layoutBounds const):
(WebCore::Layout::InlineLevelBox::hasContent const):
(WebCore::Layout::InlineLevelBox::verticalAlign const):
(WebCore::Layout::InlineLevelBox::layoutBox const):
(WebCore::Layout::InlineLevelBox::style const):
(WebCore::Layout::InlineLevelBox::isInlineBox const):
(WebCore::Layout::InlineLevelBox::isRootInlineBox const):
(WebCore::Layout::InlineLevelBox::isAtomicInlineLevelBox const):
(WebCore::Layout::InlineLevelBox::isLineBreakBox const):
(WebCore::Layout::InlineLevelBox::type const):
(WebCore::Layout::InlineLevelBox::logicalRect const):
(WebCore::Layout::InlineLevelBox::logicalTop const):
(WebCore::Layout::InlineLevelBox::logicalBottom const):
(WebCore::Layout::InlineLevelBox::logicalLeft const):
(WebCore::Layout::InlineLevelBox::logicalWidth const):
(WebCore::Layout::InlineLevelBox::logicalHeight const):
(WebCore::Layout::InlineLevelBox::setLogicalWidth):
(WebCore::Layout::InlineLevelBox::setLogicalHeight):
(WebCore::Layout::InlineLevelBox::setLogicalTop):
(WebCore::Layout::InlineLevelBox::setBaseline):
(WebCore::Layout::InlineLevelBox::setDescent):
(WebCore::Layout::InlineLevelBox::setLayoutBounds):
(WebCore::Layout::InlineLevelBox::InlineLevelBox):
(WebCore::Layout::m_type):
(WebCore::Layout::InlineLevelBox::setHasContent):
(WebCore::Layout::InlineLevelBox::hasLineBoxRelativeAlignment const):
(WebCore::Layout::InlineLevelBox::createAtomicInlineLevelBox):
(WebCore::Layout::InlineLevelBox::createInlineBox):
(WebCore::Layout::InlineLevelBox::createLineBreakBox):
(WebCore::Layout::InlineLevelBox::createGenericInlineLevelBox):

  • layout/formattingContexts/inline/InlineLineBox.cpp:

(WebCore::Layout::LineBox::InlineLevelBox::InlineLevelBox): Deleted.
(WebCore::Layout::m_type): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::setBaseline): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::setDescent): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::setLayoutBounds): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::setLogicalTop): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::setLogicalHeight): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::setHasContent): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::hasLineBoxRelativeAlignment const): Deleted.

  • layout/formattingContexts/inline/InlineLineBox.h:

(WebCore::Layout::LineBox::InlineLevelBox::baseline const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::descent const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::LayoutBounds::height const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::LayoutBounds::operator== const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::layoutBounds const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::hasContent const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::verticalAlign const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::layoutBox const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::style const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::isInlineBox const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::isRootInlineBox const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::isAtomicInlineLevelBox const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::isLineBreakBox const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::type const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::logicalRect const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::logicalTop const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::logicalBottom const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::logicalLeft const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::logicalWidth const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::logicalHeight const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::setLogicalWidth): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::createAtomicInlineLevelBox): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::createInlineBox): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::createLineBreakBox): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::createGenericInlineLevelBox): Deleted.

Jul 16, 2021:

10:42 PM Changeset in webkit [280017] by Simon Fraser
  • 26 edits in trunk

getBoundingClientRect() returns the incorrect rectangle on elements whose parent element is set -webkit-column-count
https://bugs.webkit.org/show_bug.cgi?id=99959
rdar://80106111

Reviewed by Alan Bujtas.
Source/WebCore:

getBoundingClientRect() and getClientRects() for elements inside multicol had a quick
and dirty implementation that just mapped the element center point into a column. This
resulted in odd, negative top/left in some cases.

Fix by correctly generating multiple rects for elements that span columns, following
the repaint code path that already knew how to do this correctly.

The entry point is RenderFragmentContainer::absoluteQuadsForBox() which now has a
real implementation. For each fragment that the box covers, it calls fragmentRectsForFlowContentRect()
which generates one or more rects; RenderMultiColumnSet overrides this to
compute rects for multicol.

We have to take care not to eliminate empty rects, since the API does return these.

Tested by existing tests.

  • dom/Element.cpp:

(WebCore::Element::absoluteEventBounds):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::absoluteQuadsIgnoringContinuation const):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::absoluteQuads const):

  • rendering/RenderFragmentContainer.cpp:

(WebCore::RenderFragmentContainer::fragmentedFlowContentRectangle):
(WebCore::RenderFragmentContainer::fragmentRectsForFlowContentRect):

  • rendering/RenderFragmentContainer.h:

(WebCore::RenderFragmentContainer::absoluteQuadsForBoxInFragment): Deleted.

  • rendering/RenderFragmentedFlow.cpp:

(WebCore::RenderFragmentedFlow::absoluteQuadsForBox const):

  • rendering/RenderFragmentedFlow.h:
  • rendering/RenderMultiColumnFlow.h:
  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::firstAndLastColumnsFromOffsets const):
(WebCore::RenderMultiColumnSet::repaintFragmentedFlowContent):
(WebCore::RenderMultiColumnSet::fragmentRectsForFlowContentRect):
(WebCore::RenderMultiColumnSet::collectLayerFragments):

  • rendering/RenderMultiColumnSet.h:

LayoutTests:

These tests have all progressed.

  • fast/multicol/client-rects-spanners-complex.html:
  • fast/multicol/client-rects-spanners.html:
  • fast/multicol/client-rects.html:
  • fast/multicol/newmulticol/client-rects.html:
  • imported/blink/fast/multicol/client-rects-rtl-expected.html:
  • imported/blink/fast/multicol/client-rects-rtl.html: This test appeared to be hand-coded to the incorrect old behavior.
  • platform/ios/fast/multicol/client-rects-expected.txt:
  • platform/ios/fast/multicol/client-rects-spanners-complex-expected.txt:
  • platform/ios/fast/multicol/client-rects-spanners-expected.txt:
  • platform/ios/fast/multicol/newmulticol/client-rects-expected.txt:
  • platform/mac/fast/multicol/client-rects-expected.txt:
  • platform/mac/fast/multicol/client-rects-spanners-complex-expected.txt:
  • platform/mac/fast/multicol/client-rects-spanners-expected.txt:
  • platform/mac/fast/multicol/newmulticol/client-rects-expected.txt:
8:24 PM Changeset in webkit [280016] by Kate Cheney
  • 8 edits in trunk

WKWebView javascript injection doesn't work if app includes WKAppBoundDomains
https://bugs.webkit.org/show_bug.cgi?id=227589
<rdar://problem/80327452>

Reviewed by Brent Fulgham.

Source/WebCore:

Update service worker code to always allow workers on localhost to be
registered. Also add logic so localhost registrations aren't added
to the total count of 3 registrations.

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::addRegistration):
We only want to increment the count if this registration is not
already in the mapping, otherwise it gets double counted.

(WebCore::SWServer::removeRegistration):
Ditto for removing a registration, we should only decrement the count
if we find a matching key.

(WebCore::SWServer::validateRegistrationDomain):
(WebCore::SWServer::removeFromScopeToRegistrationMap):
Ditto.

  • workers/service/server/SWServer.h:

Source/WebKit:

Apps should not have to specify localhost in their Info.plist in order
to load local content in app-bound mode. This patch adds a check for
localhost or a loopback IP address and forces an app into app-bound
mode in this case.

Since all layout tests use localhost and 127.0.0.1 as test domains,
this patch also adds a check for enableInAppBrowserPrivacyForTesting()
which determines if we are running layout tests and does not trigger
this check in that case so we can test other behavior.

  • UIProcess/WebPageProxy.cpp:

(WebKit::shouldTreatURLProtocolAsAppBound):
(WebKit::WebPageProxy::setIsNavigatingToAppBoundDomainAndCheckIfPermitted):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):

Tools:

Added new tests. Removed localhost and 127.0.0.1 from the Info.plist
to avoid false positive tests. Replace them with other domains so we
still test the max count.

  • TestWebKitAPI/Info.plist:
  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

(TEST):

6:02 PM Changeset in webkit [280015] by achristensen@apple.com
  • 14 edits
    1 add in trunk

Prevent HSTS tracking mitigation for top level navigation requests
https://bugs.webkit.org/show_bug.cgi?id=227936

Reviewed by Brady Eidson.

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

Use NSURLRequest.URL as the first party for cookies for HSTS purposes during redirects instead of NSURLRequest.mainDocumentURL,
which hasn't been updated because CFNetwork doesn't know that this is the main document request and when redirected, the main document URL also changes.

Covered by API tests, which will start covering this case once rdar://80550123 is integrated.

  • NetworkProcess/NetworkSessionCreationParameters.cpp:

(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):

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

(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]):
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

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

(-[_WKWebsiteDataStoreConfiguration allowsHSTSWithUntrustedRootCertificate]):
(-[_WKWebsiteDataStoreConfiguration setAllowsHSTSWithUntrustedRootCertificate:]):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::copy const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::allowsHSTSWithUntrustedRootCertificate const):
(WebKit::WebsiteDataStoreConfiguration::setAllowsHSTSWithUntrustedRootCertificate):

Tools:

  • TestWebKitAPI/SourcesCocoa.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/HSTS.mm: Added.

(TestWebKitAPI::hasRadar80550123):
(TestWebKitAPI::hstsWebViewAndDelegate):
(TestWebKitAPI::hstsServer):
(TestWebKitAPI::TEST):

6:00 PM Changeset in webkit [280014] by achristensen@apple.com
  • 9 edits
    1 add in trunk

Network access prevention SPI should prevent preconnecting, and it should first allow injected bundle to change request
https://bugs.webkit.org/show_bug.cgi?id=228044
<rdar://72995136>

Reviewed by Tim Horton.

Source/WebCore:

WKWebViewConfiguration._loadsFromNetwork and its successor _allowedNetworkHosts have two issues:

  1. They allow link rel=preconnect to still preconnect to a host. While this doesn't reveal much information, it does reveal some.
  2. It blocks loads before giving the injected bundle a chance to change the scheme of the request. This SPI is relatively new and intended to replace the injected bundle, but the user from this radar needs to have an injected bundle make changes first.

Both problems are fixed and covered by API tests.

  • loader/ResourceLoadNotifier.cpp:

(WebCore::ResourceLoadNotifier::dispatchWillSendRequest):

  • page/Page.h:

Source/WebKit:

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::preconnectTo):

Tools:

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

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/SchemeChangingPlugIn.mm: Added.

(-[SchemeChangingPlugIn webProcessPlugIn:didCreateBrowserContextController:]):
(-[SchemeChangingPlugIn webProcessPlugInBrowserContextController:frame:willSendRequest:redirectResponse:]):

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
5:53 PM Changeset in webkit [280013] by Yijia Huang
  • 7 edits in trunk/Source/JavaScriptCore

Add ExtendType to Air::Arg Index to fully utilize address computation in memory instruction for ARM64
https://bugs.webkit.org/show_bug.cgi?id=227970

Reviewed by Saam Barati.

The pattern recognition of address computation in the instructions, e.g., Load
Resistor (LDR), Store Register (STR), etc., can benefit the instruction selector.
Then, the Air operand BaseIndex containing base, index, and scale is introduced
to Air opcode. However, the <extend> option of index address is not fully leveraged
in the previous implementation.

To fill that gap, this patch adds a new member, MacroAssembler::Extend, to the current
design of BaseIndex to trigger zero/sign extension on the Index address. And this is
enabled for Store/Load with valid index address and shift amount.

Maybe, the ideal approach is to introduce a decorator (Index@EXT) to the Air operand
to provide an extension opportunity for the specific form of the Air opcode.

Load Register (LDR) calculates an address from a base register value and an
offset register value, loads a word from memory, and writes it to a register.
The offset register value can optionally be shifted and extended.

Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = Z/SExt32(Trunc(ArgumentReg(%x1)))
Int @2 = scale
Int @3 = Shl(@1, @2)
Int @4 = Add(@0, @3)
Int @5 = Load(@4, ControlDependent|Reads:Top)
Void@6 = Return(@5, Terminal)

Old optimized AIR
Move %x1, %x1, @1
Move (%x0,%x1,2scale), %x0, @5
Ret %x0, @6

New optimized AIR
Move (%x0,%x1,2scale), %x0, @5
Ret %x0, @6

Store Register (STR) calculates an address from a base register value and an
offset register value, and stores a 32-bit word or a 64-bit doubleword to the
calculated address, from a register.

Given B3 IR:
Int @0 = value
Int @1 = ArgumentReg(%x0)
Int @2 = Z/SExt32(Trunc(ArgumentReg(%x1))
Int @3 = scale
Int @4 = Shl(@2, @3)
Int @5 = Add(@1, @4)
Void@6 = Store(@0, @5, ControlDependent|Writes:Top)
Void@7 = Return(@0, Terminal)

Old optimized AIR
Move32 %x1, %x1, @2
Store32 %xzr, (%x0,%x1,2scale), @6
Move $0, %x0, @7
Ret32 %x0, @7

New optimized AIR
Store32 %xzr, (%x0,%x1,2scale), @6
Move $0, %x0, @7
Ret32 %x0, @7

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::BaseIndex::BaseIndex):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::indexExtendType):
(JSC::MacroAssemblerARM64::load64):
(JSC::MacroAssemblerARM64::load32):
(JSC::MacroAssemblerARM64::load16):
(JSC::MacroAssemblerARM64::load16SignedExtendTo32):
(JSC::MacroAssemblerARM64::load8):
(JSC::MacroAssemblerARM64::load8SignedExtendTo32):
(JSC::MacroAssemblerARM64::store64):
(JSC::MacroAssemblerARM64::store32):
(JSC::MacroAssemblerARM64::store16):
(JSC::MacroAssemblerARM64::store8):
(JSC::MacroAssemblerARM64::loadDouble):
(JSC::MacroAssemblerARM64::loadFloat):
(JSC::MacroAssemblerARM64::storeDouble):
(JSC::MacroAssemblerARM64::storeFloat):

  • b3/B3LowerToAir.cpp:
  • b3/air/AirArg.h:

(JSC::B3::Air::Arg::index):
(JSC::B3::Air::Arg::asBaseIndex const):

  • b3/testb3.h:
  • b3/testb3_2.cpp:

(testLoadZeroExtendIndexAddress):
(testLoadSignExtendIndexAddress):
(testStoreZeroExtendIndexAddress):
(testStoreSignExtendIndexAddress):
(addBitTests):

5:47 PM Changeset in webkit [280012] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[MacOS Release wk1] media/modern-media-controls/volume-support/volume-support-drag-to-mute.html is a flaky fail and timeout.
https://bugs.webkit.org/show_bug.cgi?id=228042.

Unreviewed test gardening.

Patch by Eric Hutchison <Eric Hutchison> on 2021-07-16

  • platform/mac-wk1/TestExpectations:
5:15 PM Changeset in webkit [280011] by ysuzuki@apple.com
  • 3 edits in trunk/JSTests

[JSC] Simplify sampling-profiler-regexp.js test
https://bugs.webkit.org/show_bug.cgi?id=228040

Reviewed by Saam Barati.

In this new test case, only thing we care is regexp appears on sampling-profiler regardless of whether the other functions are inlined / tail-called or not.
We change the sampling-profiler/samplingProfiler.js runTest to add a mode which searches specific signature in the call tree.

  • stress/sampling-profiler-regexp.js:

(platformSupportsSamplingProfiler):

  • stress/sampling-profiler/samplingProfiler.js:

(doesTreeHaveStackTrace):
(runTest):

4:59 PM Changeset in webkit [280010] by Kyle Piddington
  • 5 edits
    2 adds in trunk/Source/ThirdParty/ANGLE

Build Default Metal library offline
https://bugs.webkit.org/show_bug.cgi?id=227333

<rdar://79923371>

This patch compiles and creates a Metal library at build time, storing
the library as a compiled binary file. This library is baked into the dylib,
and is loaded at context creation time.

Unlike the previous version of this patch, this patch does not save or store the .metallib on disk, but rather
bakes it into a binary.

Fixed internal build breaks by skipping Metallib bake script.

Reviewed by Kenneth Russell.

  • ANGLE.xcodeproj/project.pbxproj:
  • Configurations/ANGLE-dynamic.xcconfig:
  • src/libANGLE/renderer/metal/DisplayMtl.mm:

(rx::DisplayMtl::initializeShaderLibrary):

  • src/libANGLE/renderer/metal/mtl_utils.h:
4:53 PM Changeset in webkit [280009] by wilander@apple.com
  • 2 edits in trunk/Source/WebKit

PCM: Add early return when unlinkable token is used and add more happy path Web Inspector logging
https://bugs.webkit.org/show_bug.cgi?id=228039
<rdar://problem/80705989>

Reviewed by Kate Cheney.

There's a missing return after an accepted unlinkable token transaction. The
attribution object is therefore moved and stored twice.

This patch also adds more Web Inspector logging to the happy path for better
developer feedback.

No new tests.

  • NetworkProcess/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::storeUnattributed):

Add the missing return.

(WebKit::PrivateClickMeasurementManager::getTokenPublicKey):

Add Web Inspector logging.

(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableToken):

Add Web Inspector logging.

(WebKit::PrivateClickMeasurementManager::handleAttribution):

Add Web Inspector logging.

4:40 PM Changeset in webkit [280008] by sbarati@apple.com
  • 3 edits
    1 add in trunk

Grab the lock in FTL::Thunks::keyForSlowPathCallThunk
https://bugs.webkit.org/show_bug.cgi?id=227988
<rdar://problem/80627901>

Reviewed by Mark Lam.

JSTests:

  • stress/thunks-hash-map-should-grab-lock.js: Added.

Source/JavaScriptCore:

Both FTL::Thunks::keyForSlowPathCallThunk and FTL::Thunks::getSlowPathCallThunk
both touch the thunks hash map. In r278030, when I added the lock, I grabbed it
in getSlowPathCallThunk, but forgot to also grab it in keyForSlowPathCallThunk.

  • ftl/FTLThunks.h:

(JSC::FTL::Thunks::keyForSlowPathCallThunk):

4:23 PM Changeset in webkit [280007] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Fix Apple internal build

Unreviewed.

No new tests because there is no behavior change.

  • platform/mac/PlatformSpeechSynthesizerMac.mm:

(WebCore::speechSynthesisGetDefaultVoiceIdentifierForLocale):

4:22 PM Changeset in webkit [280006] by Wenson Hsieh
  • 4 edits in trunk/Source/WebKit

REGRESSION (r277820): Can't scroll up and down using trackpad in Mail message viewer when in Slide Over
https://bugs.webkit.org/show_bug.cgi?id=228033
rdar://80663917

Reviewed by Tim Horton.

This started happening after the changes in r277820, since UIHoverGestureRecognizer contained several internal
facilities in UIKit for avoiding failure dependencies to other (non-hover) gestures. After removing the
subclass, various UIKit gestures now attempt to add failure requirements to WKMouseGestureRecognizer, thereby
linking WKMouseGestureRecognizer to other gestures in the gesture dependency graph.

This means that all gestures connected to the same subgraph as WKMouseGestureRecognizer are unable to be reset
until WKMouseGestureRecognizer transitions to either Ended or Failed state; however, since this only happens
once the trackpad goes into idle state, these subgraph-connected gestures can effectively only recognize once
per trackpad interaction (resetting only after the trackpad goes idle). Since scroll view pan gesture
recognizers are indirectly connected to WKMouseGestureRecognizer in Slide Over mode, this manifests in scrolling
being unresponsive after an initial scroll gesture has ended.

To address this, we subclass UIHoverGestureRecognizer once again, and (unfortunately) also restore the IPI
override for -_shouldReceiveTouch:forEvent:recognizerView:, to ensure that we're still able to detect and
dispatch mousedown and mousemove events.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView gestureRecognizer:shouldReceiveTouch:]):
(-[WKContentView gestureRecognizer:shouldReceivePress:]):

Remove a couple of delegate overridees here, which are now unnecessary since WKMouseGestureRecognizer is a
UIHoverGestureRecognizer once again.

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

(-[WKMouseGestureRecognizer _shouldReceiveTouch:forEvent:recognizerView:]):

3:59 PM Changeset in webkit [280005] by beidson@apple.com
  • 5 edits in trunk/Source/WebCore

FetchBodySource/FetchBodyOwner cleanup
<rdar://80318044> and https://bugs.webkit.org/show_bug.cgi?id=228035

Reviewed by Geoffrey Garen.

FetchBodyOwner should have a WeakPtr factory, and FetchBodySource should use it.

  • Modules/fetch/FetchBodyOwner.h:
  • Modules/fetch/FetchBodySource.cpp:

(WebCore::FetchBodySource::FetchBodySource):
(WebCore::FetchBodySource::doCancel):
(WebCore::FetchBodySource::close):

  • Modules/fetch/FetchBodySource.h:
  • Modules/fetch/FetchResponse.h:
3:18 PM Changeset in webkit [280004] by commit-queue@webkit.org
  • 6 edits in trunk

Unreviewed, reverting r279916.
https://bugs.webkit.org/show_bug.cgi?id=228037

some of tests are timing out

Reverted changeset:

"Convert small JIT pool tests into executable fuzzing"
https://bugs.webkit.org/show_bug.cgi?id=226279
https://commits.webkit.org/r279916

3:07 PM Changeset in webkit [280003] by Truitt Savell
  • 2 edits in trunk/LayoutTests

accessibility/loading-iframe-sends-notification.html is a flaky timeout
rdar://80331434

Unreviewed test gardening.

2:42 PM Changeset in webkit [280002] by Robert Jenner
  • 2 edits in trunk/LayoutTests

Multiple Canvas tests flaky crash, flaky fail.
https://bugs.webkit.org/show_bug.cgi?id=227881.

Unreviewed test gardening.

Patch by Eric Hutchison <Eric Hutchison> on 2021-07-16

  • platform/mac-wk2/TestExpectations:
2:26 PM Changeset in webkit [280001] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

macOS Safari network sessions not being marked as being from a browser
https://bugs.webkit.org/show_bug.cgi?id=228028
<rdar://problem/80648664>

Reviewed by Brent Fulgham.

Move WebKitAdditions to open source to communicate full web browser
status to the networking stack. In the macOS case, we don't have
a full browser entitlement, so we should check for Safari.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::SessionWrapper::initialize):
The name com.apple.WebKit.InAppBrowser is not the most accurate name,
but changing it would require syncing with other parts of the network
stack. We should do this in a separate bug.

2:22 PM Changeset in webkit [280000] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.24

Tag Safari-612.1.24.

2:11 PM Changeset in webkit [279999] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[MacOS wk2] inspector/canvas/recording-bitmaprenderer-frameCount.html is flaky failing and timing out.
https://bugs.webkit.org/show_bug.cgi?id=228034

Unreviewed test gardeing.

Patch by Ayumi Kojima <Ayumi Kojima> on 2021-07-16

  • platform/mac-wk2/TestExpectations:
2:01 PM Changeset in webkit [279998] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[MacOS wk2] inspector/canvas/setShaderProgramHighlighted.html is flaky failing and timing out.
https://bugs.webkit.org/show_bug.cgi?id=228030

Unreviewed test gardeing.

Patch by Ayumi Kojima <Ayumi Kojima> on 2021-07-16

  • platform/mac-wk2/TestExpectations:
2:01 PM Changeset in webkit [279997] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] RegExp::dumpToStream must not ref Strings since it is called concurrently
https://bugs.webkit.org/show_bug.cgi?id=228031
rdar://80686425

Reviewed by Mark Lam.

JSTests:

  • stress/regexp-dump-concurrently.js: Added.

(let.code):

Source/JavaScriptCore:

RegExp::dumpToStream's escapedPattern can return m_pattern. In that case, it is refed in the concurrent thread.
This is wrong since StringImpl must not be ref-ed concurrently. This patch just revert this function to the old behavior.

  • runtime/RegExp.cpp:

(JSC::RegExp::dumpToStream):

1:34 PM Changeset in webkit [279996] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[RenderTreeBuilder] Update the fragmented status of the renderer when it becomes in-flow
https://bugs.webkit.org/show_bug.cgi?id=228025
<rdar://80458138>

Reviewed by Antti Koivisto.

This patch ensures that we update fragmented status of the renderer when it becomes in-flow and not just when the containing block's childrenInline status needs updating.
(e.g. the block renderer goes from out-of-flow to in-flow, and the containing block already has block level children, we don't call childFlowStateChangesAndAffectsParentBlock)

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange): Move the update logic out from childFlowStateChangesAndAffectsParentBlock to here and run it unconditionally.
(WebCore::RenderTreeBuilder::childFlowStateChangesAndAffectsParentBlock):

1:25 PM Changeset in webkit [279995] by Truitt Savell
  • 3 edits in trunk/LayoutTests

Modify expectations for media/modern-media-controls/overflow-support/chapters.html
https://bugs.webkit.org/show_bug.cgi?id=227055

Unreviewed test gardening.

1:22 PM Changeset in webkit [279994] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Modify expectations for media/modern-media-controls/overflow-support/chapters.html
https://bugs.webkit.org/show_bug.cgi?id=227055

Unreviewed test gardening.

1:19 PM Changeset in webkit [279993] by Fujii Hironori
  • 5 edits in trunk/Source/WebCore

[curl] Use curl_multi_poll and curl_multi_wakeup instead of select
https://bugs.webkit.org/show_bug.cgi?id=227966

Reviewed by Don Olmstead.

libcurl 7.68.0 added curl_multi_poll and curl_multi_wakeup.

  • platform/network/curl/CurlContext.cpp:

(WebCore::CurlMultiHandle::poll): Added.
(WebCore::CurlMultiHandle::wakeUp): Added.

  • platform/network/curl/CurlContext.h:
  • platform/network/curl/CurlRequestScheduler.cpp:

(WebCore::CurlRequestScheduler::add):
(WebCore::CurlRequestScheduler::callOnWorkerThread):
(WebCore::CurlRequestScheduler::startOrWakeUpThread):
(WebCore::CurlRequestScheduler::wakeUpThreadIfPossible): Added.
(WebCore::CurlRequestScheduler::stopThread):
(WebCore::CurlRequestScheduler::workerThread):
(WebCore::CurlRequestScheduler::startThreadIfNeeded): Deleted.

  • platform/network/curl/CurlRequestScheduler.h:
11:24 AM Changeset in webkit [279992] by timothy_horton@apple.com
  • 7 edits in trunk/Source/WebKit

Adopt BifurcatedGraphicsContext for backing store + display list RemoteLayerBackingStore
https://bugs.webkit.org/show_bug.cgi?id=226425
<rdar://77929299>

Reviewed by Sam Weinig.

Instead of "display list backed RemoteLayerBackingStore" being its own
backing store type, we make "includes a display list" a separate bit.
This way, we can paint both a bitmap (IOSurface or CG bitmap, all
exactly as it normally is), and also carry a sidecar display list.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::ensureBackingStore):
(WebKit::RemoteLayerBackingStore::encode const):
(WebKit::RemoteLayerBackingStore::decode):
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
(WebKit::RemoteLayerBackingStore::supportsPartialRepaint):
We can't partially repaint the display list, and require its rendering
to match the painted backing store, so disable partial repaint entirely
if display lists are being used.

(WebKit::RemoteLayerBackingStore::display):
(WebKit::RemoteLayerBackingStore::drawInContext):
Adopt BifurcatedGraphicsContext in order to paint into the aforementioned
bitmap and display list simultaneously.
A future patch may abstract this into a new ImageBuffer type
instead of polluting RemoteLayerBackingStore with it.

Leave a temporary workaround for a CoreAnimation bug, which can be
disabled via defaults write, but is enabled by default.

(WebKit::layerContentsForBufferHandle):
(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):
(WebKit::RemoteLayerBackingStore::Buffer::discard):

  • UIProcess/RemoteLayerTree/cocoa/RemoteLayerTreeLayers.h:
  • UIProcess/RemoteLayerTree/cocoa/RemoteLayerTreeLayers.mm:

(-[WKCompositingLayer _setWKContents:withDisplayList:]):
(-[WKCompositingLayer _setWKContentsDisplayList:]): Deleted.
(-[WKCompositingLayer _wkContentsDisplayList]): Deleted.
Pass the display list data to CoreAnimation alongside the bitmap.

  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::updateBackingStore):

11:18 AM Changeset in webkit [279991] by Jonathan Bedard
  • 5 edits in trunk/Tools

[webkitscmpy] Provide API to access SVN cache
https://bugs.webkit.org/show_bug.cgi?id=228000
<rdar://problem/80646471>

Reviewed by Dewei Zhu.

Create a Svn cache with the same API as the Git cache. This allows
git and svn to share logic when inserting identifiers in log and blame.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:

(Svn.Cache.path): Path to cahce file.
(Svn.Cache.populate): Fill cache from svn log operation.
(Svn.Cache.to_hash): Svn is unaware of hashes, and can never map them.
(Svn.Cache.to_revision): Map identifiers to revisions.
(Svn.Cache.to_identifier): Map revisions to identifiers.
(Svn.init): Use cache object instead of _metadata_cache.
(Svn._commit_count): Access cache object.
(Svn._branch_for): Ditto.
(Svn.commit): Ditto.
(Svn._cache_path): Deleted.
(Svn._cache_revisions): Deleted.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py:

(TestLocalSvn.test_revision_cache):

11:02 AM Changeset in webkit [279990] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Make the lack of an ANGLE dylib unconditionally log
https://bugs.webkit.org/show_bug.cgi?id=228010

Reviewed by Dean Jackson.

WebCore should complain louder when all of WebGL is disabled because of a packaging misconfiguration.

No new tests because there is no behavior change.

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::create):

10:59 AM Changeset in webkit [279989] by Robert Jenner
  • 2 edits in trunk/LayoutTests

Updated test expectations for inspector/canvas/css-canvas-clients.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=174272.

Unreviewed test gardeing.

Patch by Eric Hutchison <Eric Hutchison> on 2021-07-16

  • platform/mac/TestExpectations:
10:17 AM Changeset in webkit [279988] by Megan Gardner
  • 38 edits in trunk/Source

Pipe App Highlight scrolling through UI Process in preparation for Note Overlay avoidance.
https://bugs.webkit.org/show_bug.cgi?id=227914

Reviewed by Tim Horton.

Source/WebCore:

In order to correctly avoid the note overlay that can potentially obscure the web view,
we need to pipe the scrolling through the UI process. This patch does that work
and will be followed up shortly by one that does the actual work of overlay avoidance.
For iOS, this just uses the main frame UI Scrolling that we already use, but for
mac, we need to do the last scroll in the web process after adjusting it with the overlay
information.

  • Modules/highlight/AppHighlightStorage.cpp:

(WebCore::AppHighlightStorage::attemptToRestoreHighlightAndScroll):

  • dom/Element.cpp:

(WebCore::Element::scrollIntoView):

  • editing/Editor.cpp:

(WebCore::TemporarySelectionChange::setSelection):

  • editing/Editor.h:
  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::moveWithoutValidationTo):
(WebCore::FrameSelection::setSelection):
(WebCore::FrameSelection::updateAndRevealSelection):
(WebCore::FrameSelection::revealSelection):

  • editing/FrameSelection.h:
  • loader/EmptyClients.h:
  • page/Chrome.cpp:

(WebCore::Chrome::scrollMainFrameToRevealRect const):
(WebCore::Chrome::scrollRectIntoView const): Deleted.

  • page/Chrome.h:
  • page/ChromeClient.h:

(WebCore::ChromeClient::scrollMainFrameToRevealRect const):
(WebCore::ChromeClient::scrollRectIntoView const): Deleted.

  • page/ScrollBehavior.cpp:

(WebCore::useSmoothScrolling):

  • page/ScrollBehavior.h:
  • platform/ScrollTypes.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollRectToVisible):

  • rendering/RenderLayer.h:

Source/WebKit:

In order to correctly avoid the note overlay that can potentially obscure the web view,
we need to pipe the scrolling through the UI process. This patch does that work
and will be followed up shortly by one that does the actual work of overlay avoidance.
For iOS, this just uses the main frame UI Scrolling that we already use, but for
mac, we need to do the last scroll in the web process after adjusting it with the overlay
information.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::requestScrollToRect):

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::requestScrollToRect):
(WebKit::WebPageProxy::scrollToRect):

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::scrollToRect):

  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::requestScrollToRect):

  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::requestScrollToRect):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::scrollMainFrameToRevealRect const):
(WebKit::WebChromeClient::scrollRectIntoView const): Deleted.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::scrollToRect):

Source/WebKitLegacy/mac:

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

(WebChromeClient::scrollMainFrameToRevealRect const):

Source/WebKitLegacy/win:

  • WebCoreSupport/WebChromeClient.h:
9:39 AM Changeset in webkit [279987] by commit-queue@webkit.org
  • 18 edits
    1 delete in trunk

[GTK][WPE] Support color-schemes CSS property
https://bugs.webkit.org/show_bug.cgi?id=208204

Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2021-07-16
Reviewed by Adrian Perez de Castro.

.:

  • Source/cmake/OptionsGTK.cmake:

Enable HAVE_OS_DARK_MODE_SUPPORT.

  • Source/cmake/OptionsWPE.cmake:

Enable ENABLE_DARK_MODE_CSS and HAVE_OS_DARK_MODE_SUPPORT.

Source/WebCore:

Last time we tried enabling dark mode, we broke many webpages since we couldn't have diferent
controls, and more importantly, different system colors and defaults for pages that do and
don't support dark mode.

Now that we don't use GTK for this, we can try again. This time, use hardcoded system colors
and return different colors depending on StyleColor::Options::UseDarkAppearance.

To avoid dark-on-dark text on entries, we also need to enable HAVE_OS_DARK_MODE_SUPPORT for GTK
and make sure it's passed to use agent CSS. And since Adwaita controls are also used in WPE, we
need to enable it for WPE as well, and since WPE didn't have ENABLE_DARK_MODE_CSS, flip that as
well, all in lockstep.

No new tests, reenabled the existing css-dark-mode tests.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:

Pass HAVE_OS_DARK_MODE_SUPPORT to user agent CSS.

  • css/CSSValueKeywords.in:

Expose -webkit-control-background for anything with HAVE_OS_DARK_MODE_SUPPORT.

  • css/themeAdwaita.css:

(input[type="search"]::-webkit-search-results-button,):
(input[type="search"]::-webkit-search-cancel-button):
(body[dir="rtl"] input[type="search"]::-webkit-search-cancel-button):
(input[type="search"]::-webkit-search-results-button:hover,):
(input[type="search"]::-webkit-search-cancel-button:hover): Deleted.
Use mask images instead of content so we can recolor them. Change
color on hover as opacity and inherit entry's color otherwise to
make sure it's legible with dark appearance.

  • page/FrameView.cpp:

(WebCore::FrameView::updateBackgroundRecursively):
Use CSSValueWindow for background instead of CSSValueAppleSystemControlBackground
when the latter is not available.

  • platform/adwaita/ThemeAdwaita.cpp:

(WebCore::ThemeAdwaita::focusColor):
(WebCore::ThemeAdwaita::paintFocus):
(WebCore::ThemeAdwaita::paintArrow):
(WebCore::ThemeAdwaita::paint):
(WebCore::ThemeAdwaita::paintCheckbox):
(WebCore::ThemeAdwaita::paintRadio):
(WebCore::ThemeAdwaita::paintButton):
(WebCore::ThemeAdwaita::paintSpinButton):

  • platform/adwaita/ThemeAdwaita.h:
  • rendering/RenderThemeAdwaita.cpp:

(WebCore::RenderThemeAdwaita::platformFocusRingColor const):
(WebCore::RenderThemeAdwaita::systemColor const):
(WebCore::RenderThemeAdwaita::paintTextField):
(WebCore::RenderThemeAdwaita::adjustTextFieldStyle const):
(WebCore::RenderThemeAdwaita::adjustTextAreaStyle const):
(WebCore::RenderThemeAdwaita::adjustSearchFieldStyle const):
Add a border radius to the default style, so the background doesn't bleed through
the corners.
(WebCore::RenderThemeAdwaita::paintMenuList):
(WebCore::RenderThemeAdwaita::paintProgressBar):
(WebCore::RenderThemeAdwaita::paintSliderTrack):
(WebCore::RenderThemeAdwaita::paintSliderThumb):

  • rendering/RenderThemeAdwaita.h:

Source/WTF:

  • wtf/PlatformHave.h:

Enable HAVE_OS_DARK_MODE_SUPPORT for GTK and WPE.

LayoutTests:

Reenable css-dark-mode tests for GTK as they pass now. Enable the same tests in WPE.
Keep css-dark-mode/older-syntax/supported-color-schemes-css.html as [ Pass Crash ] for now,
according to https://bugs.webkit.org/show_bug.cgi?id=202229#c2

  • platform/gtk/TestExpectations:
  • platform/gtk/css-dark-mode/color-scheme-css-expected.txt: Removed.
  • platform/gtk/css-dark-mode/color-scheme-meta-expected.txt: Removed.
  • platform/gtk/css-dark-mode/color-scheme-priority-expected.txt: Removed.
  • platform/gtk/css-dark-mode/default-colors-expected.txt: Removed.
  • platform/gtk/css-dark-mode/older-syntax/supported-color-schemes-css-expected.txt: Removed.
  • platform/gtk/css-dark-mode/older-syntax/supported-color-schemes-meta-expected.txt: Removed.
  • platform/wpe/TestExpectations:
9:13 AM Changeset in webkit [279986] by Truitt Savell
  • 5 edits
    2 deletes in trunk/Source/ThirdParty/ANGLE

Unreviewed, reverting r279980.

Broke Internal Builds

Reverted changeset:

"Build Default Metal library offline"
https://bugs.webkit.org/show_bug.cgi?id=227333
https://commits.webkit.org/r279980

8:32 AM Changeset in webkit [279985] by commit-queue@webkit.org
  • 4 edits
    3 moves in trunk

[GStreamer] RealtimeMediaSourceCenter and VideoEncoder are not libwebrtc-specific
https://bugs.webkit.org/show_bug.cgi?id=228020

Patch by Philippe Normand <pnormand@igalia.com> on 2021-07-16
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Those two are actually not using libwebrtc-related code, so a better place for them is
platform/mediastream/gstreamer.

  • platform/GStreamer.cmake:
  • platform/mediastream/gstreamer/GStreamerVideoEncoder.cpp: Renamed from Source/WebCore/platform/mediastream/libwebrtc/gstreamer/GStreamerVideoEncoder.cpp.

(Encoders::singleton):
(Encoders::registerEncoder):
(Encoders::definition):
(webrtcVideoEncoderGetProperty):
(webrtcVideoEncoderSetBitrate):
(webrtcVideoEncoderSetEncoder):
(webrtcVideoEncoderSetFormat):
(webrtcVideoEncoderSetProperty):
(setBitrateKbitPerSec):
(setBitrateBitPerSec):
(webrtcVideoEncoderConstructed):
(webkit_webrtc_video_encoder_class_init):

  • platform/mediastream/gstreamer/GStreamerVideoEncoder.h: Renamed from Source/WebCore/platform/mediastream/libwebrtc/gstreamer/GStreamerVideoEncoder.h.
  • platform/mediastream/gstreamer/RealtimeMediaSourceCenterGStreamer.cpp: Renamed from Source/WebCore/platform/mediastream/libwebrtc/gstreamer/RealtimeMediaSourceCenterLibWebRTC.cpp.

(WebCore::RealtimeMediaSourceCenter::defaultAudioCaptureFactory):
(WebCore::RealtimeMediaSourceCenter::defaultVideoCaptureFactory):
(WebCore::RealtimeMediaSourceCenter::defaultDisplayCaptureFactory):

Tools:

  • Scripts/webkitpy/style/checker.py:
7:25 AM Changeset in webkit [279984] by Angelos Oikonomopoulos
  • 4 edits
    5 adds in trunk/Tools

Bundle libraries for remote execution in run-jsc-benchmarks
https://bugs.webkit.org/show_bug.cgi?id=227579

Reviewed by Carlos Alberto Lopez Perez.

Similarly to run-jsc-stress-tests, introduce a bundling step that
ships all library dependencies to the remote system when using
run-jsc-benchmarks --remote.

This patch factors out the code to

  • lookup the ELF interpreter/libraries and to
  • strip the rpath and create a wrapper script

from generate-bundle and places it webkitpy/binary_bundling.

It also introduces a simpler script that only bundles a single
binary (bundle-binary) and switches run-jsc-benchmarks and
run-jsc-stress-tests to use it.

It also updates run-jsc-benchmark to propagate any environment
variables intended for consumption by the JSC binary.

  • Scripts/generate-bundle: Factor out reusable bundling code.
  • Scripts/run-jsc-benchmarks: Do bundling and variable propagation.
  • Scripts/run-jsc-stress-tests: Switch to bundle-binary.
  • Scripts/webkitpy/binary_bundling/init.py: Added.
  • Scripts/webkitpy/binary_bundling/bundle.py: Added.

(BinaryBundler):
(BinaryBundler.init):
(BinaryBundler.destination_dir):
(BinaryBundler.copy_and_remove_rpath):
(BinaryBundler.generate_wrapper_script):

  • Scripts/webkitpy/binary_bundling/ldd.py: Added.

(SharedObjectResolver):
(SharedObjectResolver.init):
(SharedObjectResolver._run_cmd_and_get_output):
(SharedObjectResolver._get_interpreter_objname):
(SharedObjectResolver._get_libs_and_interpreter):
(SharedObjectResolver._ldd_recursive_get_libs_and_interpreter):
(SharedObjectResolver.get_libs_and_interpreter):

  • Scripts/bundle-binary: Added.
  • Scripts/generate-bundle:
  • Scripts/run-jsc-benchmarks:
  • Scripts/run-jsc-stress-tests:
  • Scripts/webkitpy/binary_bundling/init.py: Added.
  • Scripts/webkitpy/binary_bundling/bundle.py: Added.

(BinaryBundler):
(BinaryBundler.init):
(BinaryBundler.destination_dir):
(BinaryBundler.copy_and_remove_rpath):
(BinaryBundler.generate_wrapper_script):

  • Scripts/webkitpy/binary_bundling/ldd.py: Added.

(SharedObjectResolver):
(SharedObjectResolver.init):
(SharedObjectResolver._run_cmd_and_get_output):
(SharedObjectResolver._get_interpreter_objname):
(SharedObjectResolver._get_libs_and_interpreter):
(SharedObjectResolver._ldd_recursive_get_libs_and_interpreter):
(SharedObjectResolver.get_libs_and_interpreter):

5:04 AM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
4:16 AM Changeset in webkit [279983] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit

[GTK][WPE] PSON: accessibility doesn't work after a cross site navigation
https://bugs.webkit.org/show_bug.cgi?id=228021

Reviewed by Adrian Perez de Castro.

The provisional page is not handling the BindAccessibilityTree message and we never embed the new web process
plug into the UI process socket.

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::bindAccessibilityTree): Save the a11y plug ID.
(WebKit::ProvisionalPageProxy::didReceiveMessage): Handle BindAccessibilityTree message.

  • UIProcess/ProvisionalPageProxy.h:

(WebKit::ProvisionalPageProxy::accessibilityPlugID): Returns the a11y plug ID.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::swapToProvisionalPage): If the provisional page has a plug ID, bind the a11y tree.

4:12 AM WebKitGTK/2.32.x edited by Philippe Normand
(diff)
1:43 AM Changeset in webkit [279982] by commit-queue@webkit.org
  • 4 edits
    21 moves
    1 add in trunk

[GStreamer] LibWebRTC files should be in libwebrtc/gstreamer
https://bugs.webkit.org/show_bug.cgi?id=227991

Patch by Philippe Normand <pnormand@igalia.com> on 2021-07-16
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

For consistency purposes, the GStreamer backend modules used by LibWebRTC are now in
platform/mediastream/libwebrtc/gstreamer. platform/mediastream/ contains the pure GStreamer
modules related with media capture.

  • platform/GStreamer.cmake:
  • platform/mediastream/libwebrtc/gstreamer/GStreamerVideoCommon.cpp: Renamed from Source/WebCore/platform/mediastream/libwebrtc/GStreamerVideoCommon.cpp.

(WebCore::createH264Format):
(WebCore::supportedH264Formats):

  • platform/mediastream/libwebrtc/gstreamer/GStreamerVideoCommon.h: Renamed from Source/WebCore/platform/mediastream/libwebrtc/GStreamerVideoCommon.h.
  • platform/mediastream/libwebrtc/gstreamer/GStreamerVideoDecoderFactory.cpp: Renamed from Source/WebCore/platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp.

(WebCore::GStreamerVideoDecoder::GStreamerVideoDecoder):
(WebCore::GStreamerVideoDecoder::decodebinPadAddedCb):
(WebCore::GStreamerVideoDecoder::pipeline):
(WebCore::GStreamerVideoDecoder::makeElement):
(WebCore::GStreamerVideoDecoder::handleError):
(WebCore::GStreamerVideoDecoder::CreateFilter):
(WebCore::GStreamerVideoDecoder::pullSample):
(WebCore::GStreamerVideoDecoder::GetCapsForFrame):
(WebCore::GStreamerVideoDecoder::AddDecoderIfSupported):
(WebCore::GStreamerVideoDecoder::ConfigureSupportedDecoder):
(WebCore::GStreamerVideoDecoder::GstDecoderFactory):
(WebCore::GStreamerVideoDecoder::HasGstDecoder):
(WebCore::H264Decoder::H264Decoder):
(WebCore::VP8Decoder::VP8Decoder):
(WebCore::VP8Decoder::Create):
(WebCore::VP9Decoder::VP9Decoder):
(WebCore::VP9Decoder::Create):
(WebCore::GStreamerVideoDecoderFactory::CreateVideoDecoder):
(WebCore::GStreamerVideoDecoderFactory::GStreamerVideoDecoderFactory):
(WebCore::GStreamerVideoDecoderFactory::GetSupportedFormats const):

  • platform/mediastream/libwebrtc/gstreamer/GStreamerVideoDecoderFactory.h: Renamed from Source/WebCore/platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.h.
  • platform/mediastream/libwebrtc/gstreamer/GStreamerVideoEncoder.cpp: Renamed from Source/WebCore/platform/mediastream/libwebrtc/GStreamerVideoEncoder.cpp.

(Encoders::singleton):
(Encoders::registerEncoder):
(Encoders::definition):
(webrtcVideoEncoderGetProperty):
(webrtcVideoEncoderSetBitrate):
(webrtcVideoEncoderSetEncoder):
(webrtcVideoEncoderSetFormat):
(webrtcVideoEncoderSetProperty):
(setBitrateKbitPerSec):
(setBitrateBitPerSec):
(webrtcVideoEncoderConstructed):
(webkit_webrtc_video_encoder_class_init):

  • platform/mediastream/libwebrtc/gstreamer/GStreamerVideoEncoder.h: Renamed from Source/WebCore/platform/mediastream/libwebrtc/GStreamerVideoEncoder.h.
  • platform/mediastream/libwebrtc/gstreamer/GStreamerVideoEncoderFactory.cpp: Renamed from Source/WebCore/platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp.

(WebCore::GStreamerEncodedImageBuffer::create):
(WebCore::GStreamerEncodedImageBuffer::getBuffer const):
(WebCore::GStreamerEncodedImageBuffer::getVideoResolution const):
(WebCore::GStreamerEncodedImageBuffer::GStreamerEncodedImageBuffer):
(WebCore::GStreamerVideoEncoder::GStreamerVideoEncoder):
(WebCore::GStreamerVideoEncoder::pipeline):
(WebCore::GStreamerVideoEncoder::makeElement):
(WebCore::GStreamerVideoEncoder::returnFromFlowReturn):
(WebCore::GStreamerVideoEncoder::createEncoder):
(WebCore::GStreamerVideoEncoder::AddCodecIfSupported):
(WebCore::GStreamerVideoEncoder::Caps):
(WebCore::GStreamerVideoEncoder::ConfigureSupportedCodec):
(WebCore::GStreamerVideoEncoder::SetRestrictionCaps):
(WebCore::GStreamerH264Encoder::GStreamerH264Encoder):
(WebCore::GStreamerVideoEncoderFactory::CreateVideoEncoder):
(WebCore::GStreamerVideoEncoderFactory::GStreamerVideoEncoderFactory):
(WebCore::GStreamerVideoEncoderFactory::GetSupportedFormats const):

  • platform/mediastream/libwebrtc/gstreamer/GStreamerVideoEncoderFactory.h: Renamed from Source/WebCore/platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.h.
  • platform/mediastream/libwebrtc/gstreamer/GStreamerVideoFrameLibWebRTC.cpp: Renamed from Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoFrameLibWebRTC.cpp.

(WebCore::GStreamerSampleFromLibWebRTCVideoFrame):
(WebCore::GStreamerVideoFrameLibWebRTC::create):
(WebCore::LibWebRTCVideoFrameFromGStreamerSample):
(WebCore::GStreamerVideoFrameLibWebRTC::ToI420):

  • platform/mediastream/libwebrtc/gstreamer/GStreamerVideoFrameLibWebRTC.h: Renamed from Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoFrameLibWebRTC.h.

(WebCore::GStreamerVideoFrameLibWebRTC::GStreamerVideoFrameLibWebRTC):
(WebCore::GStreamerVideoFrameLibWebRTC::takeSample):

  • platform/mediastream/libwebrtc/gstreamer/LibWebRTCProviderGStreamer.cpp: Renamed from Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProviderGStreamer.cpp.

(WebCore::LibWebRTCProvider::create):
(WebCore::LibWebRTCProvider::webRTCAvailable):
(WebCore::LibWebRTCProviderGStreamer::createDecoderFactory):
(WebCore::LibWebRTCProviderGStreamer::createEncoderFactory):

  • platform/mediastream/libwebrtc/gstreamer/LibWebRTCProviderGStreamer.h: Renamed from Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProviderGStreamer.h.
  • platform/mediastream/libwebrtc/gstreamer/RealtimeIncomingAudioSourceLibWebRTC.cpp: Renamed from Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingAudioSourceLibWebRTC.cpp.

(WebCore::RealtimeIncomingAudioSource::create):
(WebCore::RealtimeIncomingAudioSourceLibWebRTC::create):
(WebCore::RealtimeIncomingAudioSourceLibWebRTC::RealtimeIncomingAudioSourceLibWebRTC):
(WebCore::RealtimeIncomingAudioSourceLibWebRTC::OnData):

  • platform/mediastream/libwebrtc/gstreamer/RealtimeIncomingAudioSourceLibWebRTC.h: Renamed from Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingAudioSourceLibWebRTC.h.
  • platform/mediastream/libwebrtc/gstreamer/RealtimeIncomingVideoSourceLibWebRTC.cpp: Renamed from Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingVideoSourceLibWebRTC.cpp.

(WebCore::RealtimeIncomingVideoSource::create):
(WebCore::RealtimeIncomingVideoSourceLibWebRTC::create):
(WebCore::RealtimeIncomingVideoSourceLibWebRTC::RealtimeIncomingVideoSourceLibWebRTC):
(WebCore::RealtimeIncomingVideoSourceLibWebRTC::OnFrame):

  • platform/mediastream/libwebrtc/gstreamer/RealtimeIncomingVideoSourceLibWebRTC.h: Renamed from Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingVideoSourceLibWebRTC.h.
  • platform/mediastream/libwebrtc/gstreamer/RealtimeMediaSourceCenterLibWebRTC.cpp: Renamed from Source/WebCore/platform/mediastream/gstreamer/RealtimeMediaSourceCenterLibWebRTC.cpp.

(WebCore::RealtimeMediaSourceCenter::defaultAudioCaptureFactory):
(WebCore::RealtimeMediaSourceCenter::defaultVideoCaptureFactory):
(WebCore::RealtimeMediaSourceCenter::defaultDisplayCaptureFactory):

  • platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.cpp: Renamed from Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.cpp.

(WebCore::RealtimeOutgoingAudioSourceLibWebRTC::RealtimeOutgoingAudioSourceLibWebRTC):
(WebCore::RealtimeOutgoingAudioSourceLibWebRTC::~RealtimeOutgoingAudioSourceLibWebRTC):
(WebCore::RealtimeOutgoingAudioSource::create):
(WebCore::libwebrtcAudioFormat):
(WebCore::RealtimeOutgoingAudioSourceLibWebRTC::audioSamplesAvailable):
(WebCore::RealtimeOutgoingAudioSourceLibWebRTC::pullAudioData):
(WebCore::RealtimeOutgoingAudioSourceLibWebRTC::isReachingBufferedAudioDataHighLimit):
(WebCore::RealtimeOutgoingAudioSourceLibWebRTC::isReachingBufferedAudioDataLowLimit):
(WebCore::RealtimeOutgoingAudioSourceLibWebRTC::hasBufferedEnoughData):

  • platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.h: Renamed from Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.h.
  • platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.cpp: Renamed from Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.cpp.

(WebCore::RealtimeOutgoingVideoSource::create):
(WebCore::RealtimeOutgoingVideoSourceLibWebRTC::create):
(WebCore::RealtimeOutgoingVideoSourceLibWebRTC::RealtimeOutgoingVideoSourceLibWebRTC):
(WebCore::RealtimeOutgoingVideoSourceLibWebRTC::videoSampleAvailable):
(WebCore::RealtimeOutgoingVideoSourceLibWebRTC::createBlackFrame):

  • platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.h: Renamed from Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.h.

Tools:

  • Scripts/webkitpy/style/checker.py:
1:32 AM Changeset in webkit [279981] by Manuel Rego Casasnovas
  • 1 edit
    13 deletes in trunk/PerformanceTests

Remove CSS Regions perf tests
https://bugs.webkit.org/show_bug.cgi?id=228016

Reviewed by Ryosuke Niwa.

The feature has been removed long time ago, so let's do the same with the associated perf tests.

  • Layout/RegionsAuto.html: Removed.
  • Layout/RegionsAutoMaxHeight.html: Removed.
  • Layout/RegionsExtendingSelectionMixedContent.html: Removed.
  • Layout/RegionsFixed.html: Removed.
  • Layout/RegionsFixedShort.html: Removed.
  • Layout/RegionsSelectAllMixedContent.html: Removed.
  • Layout/RegionsSelection.html: Removed.
  • Layout/RegionsShapes.html: Removed.
  • Layout/Shapes/RegionsShapesNoShapes.html: Removed.
  • Layout/Shapes/resources/RegionsShapesContent.html: Removed.
  • Layout/Shapes/resources/RegionsShapesContentNoShapes.html: Removed.
  • Layout/resources/regions.css: Removed.
  • Layout/resources/regions.js: Removed.
12:19 AM Changeset in webkit [279980] by Kyle Piddington
  • 5 edits
    2 adds in trunk/Source/ThirdParty/ANGLE

Build Default Metal library offline
https://bugs.webkit.org/show_bug.cgi?id=227333

<rdar://79923371>

This patch compiles and creates a Metal library at build time, storing
the library as a compiled binary file. This library is baked into the dylib,
and is loaded at context creation time.

Unlike the previous version of this patch, this patch does not save or store the .metallib on disk, but rather
bakes it into a binary.

Reviewed by Kenneth Russell.

  • ANGLE.xcodeproj/project.pbxproj:
  • Configurations/ANGLE-dynamic.xcconfig:
  • src/libANGLE/renderer/metal/DisplayMtl.mm:

(rx::DisplayMtl::initializeShaderLibrary):

  • src/libANGLE/renderer/metal/mtl_utils.h:
Note: See TracTimeline for information about the timeline view.