Timeline



Aug 15, 2021:

11:55 PM Changeset in webkit [281070] by magomez@igalia.com
  • 19 edits in trunk

[GTK][WPE] Add API to pass WebKitMemoryPressureHandler parameters to the network processes
https://bugs.webkit.org/show_bug.cgi?id=228227

Reviewed by Carlos Garcia Campos.

Source/WebKit:

Added webkit_website_data_manager_set_memory_pressure_settings() API function to pass a
WebKitMemoryPressureSettings instance as the settings to use by all the network processes.

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/soup/NetworkProcessSoup.cpp:

(WebKit::NetworkProcess::platformInitializeNetworkProcess):

  • UIProcess/API/glib/WebKitMemoryPressureSettings.cpp:
  • UIProcess/API/glib/WebKitWebsiteDataManager.cpp:

(webkit_website_data_manager_set_memory_pressure_settings):

  • UIProcess/API/gtk/WebKitWebsiteDataManager.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/wpe/WebKitWebsiteDataManager.h:
  • UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didExceedMemoryLimit):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebProcessPool.h:
  • UIProcess/soup/WebProcessPoolSoup.cpp:

(WebKit::memoryPressureMonitorDisabled):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):

Source/WTF:

Added a new method to MemoryPressureHandler to set the configuration by copying the parameter
instead of moving it.

  • wtf/MemoryPressureHandler.h:

(WTF::MemoryPressureHandler::setConfiguration):

Tools:

Added an API test for webkit_website_data_manager_set_memory_pressure_settings().

  • TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp:

(MemoryPressureTest::setup):
(MemoryPressureTest::teardown):
(MemoryPressureTest::loadFailedCallback):
(MemoryPressureTest::waitUntilLoadFailed):
(testMemoryPressureSettings):
(beforeAll):

11:51 PM Changeset in webkit [281069] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

French translation of webkit.HEAD
https://bugs.webkit.org/show_bug.cgi?id=229119

Rubber-stamped by Carlos Garcia Campos.

  • fr.po:
8:34 PM Changeset in webkit [281068] by Wenson Hsieh
  • 10 edits in trunk

[iOS 15] editing/selection/ios/select-all-in-readonly-input-does-not-overflow.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=229126
rdar://80384801

Reviewed by Tim Horton.

Source/WebKit:

Remove the (now-unused) testing SPI -[WKWebView _doAfterResettingSingleTapGesture:]. See Tools/ChangeLog for
more information.

  • UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
  • UIProcess/API/ios/WKWebViewTestingIOS.mm:

(-[WKWebView _doAfterResettingSingleTapGesture:]): Deleted.

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

(-[WKContentView _singleTapDidReset:]):
(-[WKContentView _doAfterResettingSingleTapGesture:]): Deleted.

Tools:

This test exercises the ability to cause platform selection views to show up after tapping the web view while a
DOM selection is set. In this codepath, selection views are installed when the web view becomes first responder,
when we call into -[UIWKTextInteractionAssistant activateSelection]; the call to -becomeFirstResponder, in
turn, comes from UIKit's internal UITextTapRecognizer gesture, which recognizes the single tap and makes the
content view first responder.

In the case where this test fails, the synthesized tap gesture fails to activate the text tap recognizer; this
happens because the timing of when the UITextTapRecognizer gets reset (i.e. -_resetGestureRecognizer) races
against the timing of when the synthesized touch event is sent to the gesture recognizer. When the touch is
delivered to the gesture *before* the text tap gesture is reset, we end up timing out because the text tap
gesture's action never fires and makes the content view first responder.

To ensure that we don't lose this race and time out, we augment the existing mechanism in
UIScriptControllerIOS::waitForSingleTapToReset() to wait for *all* enabled single tap (and single touch)
gestures to reset, instead of only waiting for the web view's synthetic click gesture. Importantly, this
includes UITextTapRecognizer, which ensures that the touches are delivered to the gesture only after the text
tap gesture has been reset (and transitions to Possible state).

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::waitForSingleTapToReset const):

Instead of using testing SPI (-_doAfterResettingSingleTapGesture:) to wait for the single tap to reset, we can
just directly iterate through all the gestures on the content view and wait for all enabled single tap gestures
to transition back to Possible state.

LayoutTests:

Update test expectations for this flaky test.

  • platform/ios-14/TestExpectations:
  • platform/ios/TestExpectations:
1:46 PM Changeset in webkit [281067] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

[LFC Display] Make Display::ImageBox a CachedImageClient to get image repaint working
https://bugs.webkit.org/show_bug.cgi?id=229125

Reviewed by Anders Carlsson.

Make Display::ImageBox hold a CachedResourceHandle<CachedImage> so it can register
as a client and get notified about image changes, for repainting.

  • display/css/DisplayBoxFactory.cpp:

(WebCore::Display::BoxFactory::displayBoxForLayoutBox const):

  • display/css/DisplayImageBox.cpp:

(WebCore::Display::ImageBox::ImageBox):
(WebCore::Display::m_cachedImage):
(WebCore::Display::ImageBox::~ImageBox):
(WebCore::Display::ImageBox::image const):
(WebCore::Display::ImageBox::imageChanged):
(WebCore::Display::ImageBox::debugDescription const):
(WebCore::Display::m_image): Deleted.

  • display/css/DisplayImageBox.h:

(WebCore::Display::ImageBox::image const): Deleted.

1:05 PM Changeset in webkit [281066] by ddkilzer@apple.com
  • 5 edits in trunk/Source

Bug 229112: ThreadSanitizer: data races of WTF::String in WebResourceLoadStatisticsStore
<https://webkit.org/b/229112>
<rdar://problem/81940951>

Reviewed by Kate Cheney.

Source/WebCore:

Covered by running layout tests with TSan in:

http/tests/privateClickMeasurement/

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::parsePrivateClickMeasurement const):

  • Add WTFMove() for updated SourceSite constructor. Verified that this doesn't create a use-after-move issue.
  • loader/PrivateClickMeasurement.h:

(WebCore::PrivateClickMeasurement::SourceSite::SourceSite):

  • Change to take rvalue reference for efficiency and to match AttributionDestinationSite constructor.

(WebCore::PrivateClickMeasurement::SourceSite::isolatedCopy const): Add.
(WebCore::PrivateClickMeasurement::AttributionDestinationSite::isolatedCopy const): Add.

  • Add isolatedCopy() methods to use in multi-threaded scenarios.

Source/WebKit:

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::attributePrivateClickMeasurement):

  • Make isolated copies of sourceSite and destinationSite to fix data races.

(WebKit::WebResourceLoadStatisticsStore::privateClickMeasurementToString):

  • Make isolated copy of WTF::String to fix data race.
12:02 PM Changeset in webkit [281065] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

[GLIB] Update test expectations after r280077
https://bugs.webkit.org/show_bug.cgi?id=229124

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-08-15

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
11:38 AM Changeset in webkit [281064] by commit-queue@webkit.org
  • 10 edits in trunk/Source/WebCore

Remove shadow related SVG functionality
https://bugs.webkit.org/show_bug.cgi?id=228870

Patch by Rob Buis <rbuis@igalia.com> on 2021-08-15
Reviewed by Simon Fraser.

Remove shadow related SVG functionality since it was added
for the removed property -webkit-svg-shadow (see r238071).

  • rendering/style/SVGRenderStyle.cpp:

(WebCore::SVGRenderStyle::SVGRenderStyle):
(WebCore::SVGRenderStyle::operator== const):
(WebCore::SVGRenderStyle::copyNonInheritedFrom):
(WebCore::SVGRenderStyle::diff const):

  • rendering/style/SVGRenderStyle.h:

(WebCore::SVGRenderStyle::initialLightingColor):
(WebCore::SVGRenderStyle::baselineShiftValue const):
(WebCore::SVGRenderStyle::isolatesBlending const):
(WebCore::SVGRenderStyle::initialShadow): Deleted.
(WebCore::SVGRenderStyle::setShadow): Deleted.
(WebCore::SVGRenderStyle::shadow const): Deleted.

  • rendering/svg/RenderSVGImage.cpp:

(WebCore::RenderSVGImage::layout):

  • rendering/svg/RenderSVGImage.h:
  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::computeFloatVisibleRectInContainer const):
(WebCore::RenderSVGRoot::updateCachedBoundaries):

  • rendering/svg/RenderSVGRoot.h:
  • rendering/svg/SVGRenderSupport.cpp:

(WebCore::SVGRenderSupport::clippedOverflowRectForRepaint):
(WebCore::SVGRenderSupport::computeFloatVisibleRectInContainer):

  • rendering/svg/SVGRenderingContext.cpp:

(WebCore::SVGRenderingContext::~SVGRenderingContext):
(WebCore::SVGRenderingContext::prepareToRenderSVGContent):

  • rendering/svg/SVGRenderingContext.h:
10:44 AM Changeset in webkit [281063] by Kocsen Chung
  • 1 copy in tags/Safari-612.1.27.0.23

Tag Safari-612.1.27.0.23.

10:41 AM Changeset in webkit [281062] by Yijia Huang
  • 5 edits in trunk/Source/JavaScriptCore

[ARM64] Add Pre/Post-Indexed Address Mode to Air for ARM64 (Store Instruction)
https://bugs.webkit.org/show_bug.cgi?id=228538

Reviewed by Filip Pizlo.

The previous patch has introduced the pre/post-index address mode for Load instruction,
which benefits loop program. Here, this patch adds the corresponding mode for Store
instruction. Store Register (immediate) stores a word or a doubleword from a register
to memory. The address that is used for the store is calculated from a base register
and an immediate offset.

######################################
## Pre-Index Address Mode For Store ##
######################################

STR Wt, [Xn, #imm]!

In B3 Reduction Strength, since we have this reduction rule:

Turns this: Store(value, Add(address, offset1), offset = offset2)
Into this: Store(value, address, offset = offset1 + offset2)

The equivalent pattern is:

address = Add(base, offset)
...
memory = Store(value, base, offset)

Here, we only consider the pattern:

address = Add(base, offset)
memory = Store(value, base, offset)

And, this patch directly treats it as the canonical form. Ideally, we should move
memory to just after the address like what we did for PreIndex Load in the previous
patch. But, we cannot provide a better way to do that since the value may be
used between address and memory. To move value upward, we must move all descendants
of the value along with it to prevent B3 IR index violations, which is risky and expensive.

Next, lower to Air:

Move %base, %address
Move %value, (%address, prefix(offset))

######################################
## Post-Index Address Mode For Load ##
######################################

STR Wt, [Xn], #imm

Then, the equivalent pattern is:

memory = Store(value, base, 0)
...
address = Add(base, offset)

First, we convert it to the canonical form:

newOffset = Constant
newAddress = Add(base, offset)
memory = Store(value, base, 0) move the offset and address to just before the memory
...
offset = Identity(newOffset)
address = Identity(newAddress)

Next, lower to Air:

Move %base, %newAddress
Move %value, (%newAddress, postfix(offset))

##############################################
## Test for Pre/Post-Increment Address Mode ##
##############################################

B3 IR:


Int64 b@0 = ArgumentReg(%x0)
Int64 b@1 = ArgumentReg(%x1)
Int64 b@2 = Const64(8)
Int64 b@3 = Add(b@0, $8(b@2))
Void b@4 = Store(b@1, b@3, ControlDependent|Writes:Top)
Void b@5 = Return(b@3, Terminal)


W/O Pre-Increment Address Mode:


Move %x0, %x2, b@0
Add64 $8, %x2, %x0, b@3
Move %x1, 8(%x2), b@4
Ret64 %x0, b@5


W/ Pre-Increment Address Mode:


MoveWithIncrement64 %x1, (%x0,Pre($8)), b@4
Ret64 %x0, b@5


B3 IR:


Int64 b@0 = ArgumentReg(%x0)
Int64 b@1 = ArgumentReg(%x1)
Void b@2 = Store(b@1, b@0, ControlDependent|Writes:Top)
Int64 b@3 = Const64(8)
Int64 b@4 = Add(b@0, $8(b@3))
Void b@5 = Return(b@4, Terminal)


W/O Post-Increment Address Mode:


Move %x1, (%x0), b@2
Add64 $8, %x0, %x0, b@4
Ret64 %x0, b@5


W/ Post-Increment Address Mode:


MoveWithIncrement64 %x1, (%x0,Post($8)), b@2
Ret64 %x0, b@5


  • b3/B3CanonicalizePrePostIncrements.cpp:

(JSC::B3::canonicalizePrePostIncrements):

  • b3/B3LowerToAir.cpp:
  • b3/testb3.h:
  • b3/testb3_3.cpp:

(testStorePreIndex32):
(testStorePreIndex64):
(testStorePostIndex32):
(testStorePostIndex64):
(addShrTests):

8:44 AM Changeset in webkit [281061] by Simon Fraser
  • 22 edits
    1 copy in trunk/Source/WebCore

[LFC Display] Introduce type-safe rect types for the display tree
https://bugs.webkit.org/show_bug.cgi?id=220214

Reviewed by Alan Bujtas.

Introduce AbsoluteFloatRect, UnadjustedAbsoluteFloatRect and ViewFloatRect which are
type-safe float rect types for the display tree.

AbsoluteFloatRect is relative to document origin. UnadjustedAbsoluteFloatRect is similar,
but is computed before scrolling and transforms are taken into account.

ViewFloatRect is relative to the view.

  • WebCore.xcodeproj/project.pbxproj:
  • display/DisplayGeometryTypes.h: Copied from Source/WebCore/display/css/DisplayReplacedBox.h.

(WebCore::Display::intersection):
(WebCore::Display::unionRect):

  • display/DisplayTree.cpp:

(WebCore::Display::Tree::setBoxNeedsDisplay const):

  • display/DisplayTree.h:
  • display/DisplayTreeBuilder.cpp:
  • display/css/DisplayBox.cpp:

(WebCore::Display::Box::Box):
(WebCore::Display::Box::setNeedsDisplay):

  • display/css/DisplayBox.h:

(WebCore::Display::Box::Box):
(WebCore::Display::Box::absoluteBoxRect const):
(WebCore::Display::Box::absolutePaintingExtent const):

  • display/css/DisplayBoxClip.cpp:

(WebCore::Display::BoxClip::pushClip):
(WebCore::Display::BoxClip::pushRoundedClip):

  • display/css/DisplayBoxClip.h:

(WebCore::Display::BoxClip::clipRect const):

  • display/css/DisplayBoxDecorationPainter.cpp:

(WebCore::Display::BoxDecorationPainter::paintFillLayer const):

  • display/css/DisplayBoxFactory.cpp:

(WebCore::Display::BoxFactory::displayBoxForRootBox const):
(WebCore::Display::BoxFactory::displayBoxForLayoutBox const):
(WebCore::Display::BoxFactory::displayBoxForTextRun const):
(WebCore::Display::BoxFactory::setupBoxGeometry const):

  • display/css/DisplayBoxModelBox.cpp:

(WebCore::Display::BoxModelBox::BoxModelBox):
(WebCore::Display::BoxModelBox::clipForDescendants const):
(WebCore::Display::BoxModelBox::absolutePaintingExtent const):

  • display/css/DisplayBoxModelBox.h:

(WebCore::Display::BoxModelBox::BoxModelBox):
(WebCore::Display::BoxModelBox::absoluteBorderBoxRect const):
(WebCore::Display::BoxModelBox::absolutePaddingBoxRect const):
(WebCore::Display::BoxModelBox::absoluteContentBoxRect const):
(WebCore::Display::BoxModelBox::setAbsolutePaddingBoxRect):
(WebCore::Display::BoxModelBox::setAbsoluteContentBoxRect):

  • display/css/DisplayContainerBox.cpp:

(WebCore::Display::ContainerBox::ContainerBox):

  • display/css/DisplayContainerBox.h:
  • display/css/DisplayImageBox.cpp:

(WebCore::Display::ImageBox::ImageBox):

  • display/css/DisplayImageBox.h:
  • display/css/DisplayReplacedBox.cpp:

(WebCore::Display::ReplacedBox::ReplacedBox):

  • display/css/DisplayReplacedBox.h:

(WebCore::Display::ReplacedBox::replacedContentRect const):
(WebCore::Display::ReplacedBox::setReplacedContentRect):

  • display/css/DisplayStackingItem.h:

(WebCore::Display::StackingItem::paintedContentBounds const):
(WebCore::Display::StackingItem::paintedBoundsIncludingDescendantItems const):
(WebCore::Display::StackingItem::setPaintedContentBounds):
(WebCore::Display::StackingItem::setPaintedBoundsIncludingDescendantItems):

  • display/css/DisplayTextBox.cpp:

(WebCore::Display::TextBox::TextBox):

  • display/css/DisplayTextBox.h:
8:43 AM Changeset in webkit [281060] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

[LFC Display] Add a Display::Box flag for HasTransfrom
https://bugs.webkit.org/show_bug.cgi?id=229115

Reviewed by Alan Bujtas.

It's possible for a non-box model box to have a RenderStyle with a transform, but that
style isn't applied because transforms only apply to atomic inline or block boxes,
so store a bit on Box for boxes that have transforms.

  • display/css/DisplayBox.h:

(WebCore::Display::Box::setHasTransform):
(WebCore::Display::Box::hasTransform const):

  • display/css/DisplayBoxFactory.cpp:

(WebCore::Display::BoxFactory::constructBoxRareGeometry const):
(WebCore::Display::BoxFactory::setupBoxModelBox const):

  • display/css/DisplayCSSPainter.cpp:

(WebCore::Display::CSSPainter::paintAtomicallyPaintedBox):

Aug 14, 2021:

10:25 PM Changeset in webkit [281059] by Kocsen Chung
  • 5 edits in branches/safari-612.1.27.0-branch/Source

Cherry-pick r281058. rdar://problem/81947517

[GPU Process] REGRESSION: WebContent often crashes when opening a Google spreadsheet with charts
https://bugs.webkit.org/show_bug.cgi?id=229106
<rdar://81806877>

Reviewed by Wenson Hsieh.

Source/WebCore:

Add a method to return the backend of the ImageBuffer.

  • platform/graphics/ConcreteImageBuffer.h:
  • platform/graphics/ImageBuffer.h:

Source/WebKit:

Don't resume processing the DisplayList of an ImageBuffer until its
backend is created.

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp: (WebKit::RemoteRenderingBackendProxy::didAppendData):

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

4:22 PM Changeset in webkit [281058] by Said Abou-Hallawa
  • 5 edits in trunk/Source

[GPU Process] REGRESSION: WebContent often crashes when opening a Google spreadsheet with charts
https://bugs.webkit.org/show_bug.cgi?id=229106
<rdar://81806877>

Reviewed by Wenson Hsieh.

Source/WebCore:

Add a method to return the backend of the ImageBuffer.

  • platform/graphics/ConcreteImageBuffer.h:
  • platform/graphics/ImageBuffer.h:

Source/WebKit:

Don't resume processing the DisplayList of an ImageBuffer until its
backend is created.

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::didAppendData):

10:38 AM Changeset in webkit [281057] by commit-queue@webkit.org
  • 2 edits
    3 deletes in trunk/LayoutTests

[GLIB] Update baselines after r281012
https://bugs.webkit.org/show_bug.cgi?id=229108

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-08-14

  • platform/glib/imported/w3c/web-platform-tests/FileAPI/url/url-with-fetch.any-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/FileAPI/url/url-with-fetch.any.worker-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/content-security-policy/inside-worker/dedicatedworker-report-only-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/fetch/h1-parsing/status-code.window-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/integrity-expected.txt: Removed.

Aug 13, 2021:

9:47 PM Changeset in webkit [281056] by Kate Cheney
  • 5 edits in trunk/Source/WebKit

Check quarantine bits before rendering local files
https://bugs.webkit.org/show_bug.cgi?id=229073
<rdar://problem/81430251>

Reviewed by Brent Fulgham.

We shouldn't load files unless they have no quarantine flags or
have been marked user approved.

  • Platform/spi/mac/QuarantineSPI.h:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::isQuarantinedAndNotUserApproved):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadFile):

  • UIProcess/WebPageProxy.h:
7:28 PM Changeset in webkit [281055] by Chris Dumez
  • 43 edits
    1 add in trunk

Add Cross-Origin-Embedder-Policy support for Blob URLs
https://bugs.webkit.org/show_bug.cgi?id=229041

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing.

  • web-platform-tests/html/cross-origin-embedder-policy/blob.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/cross-origin-isolated-permission.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/coep-blob-popup.https-expected.txt:

Source/WebCore:

Add Cross-Origin-Embedder-Policy (COEP) support for Blob URLs. We do the same thing as for COOP,
we pass the COEP policy when registering the Blob URL and store it in the BlobData. When we need
the construct a Blob resource response as a result of a load, we add the right COEP headers
based on the BlobData's COEP policy.

No new tests, rebaselined existing tests.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::startLoadingBlobURL):

  • fileapi/Blob.cpp:

(WebCore::BlobURLRegistry::registerURL):
(WebCore::Blob::Blob):

  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::start):

  • fileapi/ThreadableBlobRegistry.cpp:

(WebCore::ThreadableBlobRegistry::registerBlobURL):

  • fileapi/ThreadableBlobRegistry.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::loadResource):

  • loader/CrossOriginEmbedderPolicy.cpp:

(WebCore::addCrossOriginEmbedderPolicyHeaders):

  • loader/CrossOriginEmbedderPolicy.h:

(WebCore::operator==):

  • loader/CrossOriginOpenerPolicy.cpp:

(WebCore::addCrossOriginOpenerPolicyHeaders):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::didBeginDocument):

  • platform/network/BlobData.h:

(WebCore::BlobData::crossOriginEmbedderPolicy const):
(WebCore::BlobData::setCrossOriginEmbedderPolicy):

  • platform/network/BlobRegistry.h:
  • platform/network/BlobRegistryImpl.cpp:

(WebCore::BlobRegistryImpl::registerBlobURL):
(WebCore::BlobRegistryImpl::registerBlobURLOptionallyFileBacked):

  • platform/network/BlobRegistryImpl.h:
  • platform/network/BlobResourceHandle.cpp:

(WebCore::BlobResourceHandle::notifyResponseOnSuccess):

Source/WebKit:

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::registerBlobURLFromURL):
(WebKit::NetworkConnectionToWebProcess::registerBlobURLOptionallyFileBacked):

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

(WebKit::NetworkDataTaskBlob::dispatchDidReceiveResponse):

  • NetworkProcess/NetworkProcessPlatformStrategies.cpp:

(WebKit::NetworkProcessPlatformStrategies::createBlobRegistry):

  • WebProcess/FileAPI/BlobRegistryProxy.cpp:

(WebKit::BlobRegistryProxy::registerBlobURL):

  • WebProcess/FileAPI/BlobRegistryProxy.h:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebPlatformStrategies.mm:

Source/WebKitLegacy/win:

  • WebCoreSupport/WebPlatformStrategies.cpp:

LayoutTests:

Update test expectations to unskip tests that are now passing.

5:47 PM Changeset in webkit [281054] by Wenson Hsieh
  • 11 edits in trunk

[iOS 15] fast/events/touch/ios/long-press-on-link.html is a constant crash
https://bugs.webkit.org/show_bug.cgi?id=229095
rdar://80386326

Reviewed by Tim Horton.

Source/WebKit:

This test crashes when run immediately after another test that attempts to present the context menu and ends
with the context menu still showing (in this case, fast/events/touch/ios/long-press-on-image.html). Running
these tests back to back causes us to immediately dismiss the context menu interaction while transitioning to
the second test, which triggers the context menu interaction's dismissal animation.

This animation ends in the middle of the next test (long-press-on-link.html), after the long press has begun and
the context menu interaction has already requested a targeted hint preview, but (importantly) before the context
menu peek animation actually begins (i.e. -contextMenuInteraction:willDisplayMenuForConfiguration:animator:).
As a result, we tear down the hint container too early (with the hint view still in the view hierarchy), and
subsequently crash with an exception when UIKit tries to perform coordinate space conversions with the now-
unparented view.

To fix this, we make two small adjustments:

  1. Avoid unparenting the context menu hint container if it still has subviews.
  2. Add plumbing to ensure that the context menu hint container is unparented once all of its subviews have

been removed (and the container isn't being used for anything else).

  • Platform/spi/ios/UIKitSPI.h:

Add an SPI declaration for the -_didRemoveSubview: subclassing hook.

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

(-[WKTargetedPreviewContainer initWithContentView:]):
(-[WKTargetedPreviewContainer _didRemoveSubview:]):

Add a new subclass for WKTargetedPreviewContainer that notifies WKContentView when its last subview has been
removed, such that WKContentView can tear down the container view if needed.

(-[WKContentView cleanUpInteraction]):
(-[WKContentView removeContextMenuViewIfPossibleForActionSheetAssistant:]):
(-[WKContentView _targetedPreviewContainerDidRemoveLastSubview:]):
(-[WKContentView _createPreviewContainerWithLayerName:]):
(-[WKContentView _removeContextMenuHintContainerIfPossible]):
(-[WKContentView contextMenuInteraction:willEndForConfiguration:animator:]):
(-[WKContentView _removeContextMenuViewIfPossible]): Deleted.

Additionally rename -_removeContextMenuViewIfPossible to -_removeContextMenuHintContainerIfPossible, to make
it clear that this method is about removing the container view for context menu hints (and not the hints
themselves).

  • UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm:

(-[WKDataListSuggestionsDropdown _removeContextMenuInteraction]):

  • UIProcess/ios/forms/WKDateTimeInputControl.mm:

(-[WKDateTimePicker removeContextMenuInteraction]):

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel removeContextMenuInteraction]):

  • UIProcess/ios/forms/WKFormSelectPicker.mm:

(-[WKSelectPicker removeContextMenuInteraction]):

LayoutTests:

Remove the failing test expectation (and remove a passing expectation for iOS 14 which is no longer necessary
after this fix).

  • platform/ios-14/TestExpectations:
  • platform/ios/TestExpectations:
5:35 PM Changeset in webkit [281053] by Alan Coon
  • 8 edits in branches/safari-612.1.27.0-branch/Source

Versioning.

WebKit-7612.1.27.0.23

5:34 PM Changeset in webkit [281052] by Alan Coon
  • 1 copy in tags/Safari-612.1.27.0.22

Tag Safari-612.1.27.0.22.

3:38 PM Changeset in webkit [281051] by Alan Coon
  • 1 copy in tags/Safari-612.1.27.0.9

Tag Safari-612.1.27.0.9.

3:34 PM Changeset in webkit [281050] by Alan Coon
  • 8 edits in branches/safari-612.1.27.0.6-branch/Source

Versioning.

WebKit-7612.1.27.0.9

3:25 PM Changeset in webkit [281049] by Alan Coon
  • 2 edits in branches/safari-612.1.27.0-branch/Source/WebKit

Cherry-pick r281044. rdar://problem/81918718

[Cocoa] RemoteMediaPlayerProxy does not receive acceleratedRenderingStateChanged() when video element switches sources
https://bugs.webkit.org/show_bug.cgi?id=229092
<rdar://81902163>

Reviewed by Eric Carlson.

Follow up to r280723; in that patch, a call to acceleratedRenderingStateChanged() was added to
the MediaPlayerPrivateRemote, but only for non-Cocoa ports. Add the same method to the constructor
for the Cocoa version as well.

  • WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm: (WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote):

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

3:23 PM Changeset in webkit [281048] by Brent Fulgham
  • 3 edits in trunk/Source/WebCore

Unreviewed build fix after r281012
https://bugs.webkit.org/show_bug.cgi?id=228861

Add missing constructor signature when USE(CFURLCONNECTION) is true.

  • platform/network/cf/ResourceError.h:
  • platform/network/cf/ResourceErrorCF.cpp: Add missing constructor signature.

(WebCore::ResourceError::ResourceError):

3:18 PM Changeset in webkit [281047] by Alan Coon
  • 1 copy in tags/Safari-612.1.27.2.3

Tag Safari-612.1.27.2.3.

3:14 PM Changeset in webkit [281046] by Alan Coon
  • 2 edits in branches/safari-612.1.27.2-branch/Source/JavaScriptCore

Cherry-pick r280996. rdar://problem/81901248

Refactor some ARM64EHash code.
https://bugs.webkit.org/show_bug.cgi?id=229054

Reviewed by Keith Miller and Robin Morisset.

This patch only refactors ARM64EHash code by moving some methods into the private
section, and removing some unneeded static_casts.

Verified with a diff of otool -tv dumps of the built JavaScriptCore binaries,
that there are no diffs in the generated code from this change.

  • assembler/AssemblerBuffer.h: (JSC::ARM64EHash::ARM64EHash): (JSC::ARM64EHash::update): (JSC::ARM64EHash::makeDiversifier): (JSC::ARM64EHash::nextValue): (JSC::ARM64EHash::bitsForDiversifier): (JSC::ARM64EHash::currentHash):

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

3:14 PM Changeset in webkit [281045] by Alan Coon
  • 3 edits in branches/safari-612.1.27.2-branch/Source/JavaScriptCore

Cherry-pick r280984. rdar://problem/81901248

Update ARM64EHash
https://bugs.webkit.org/show_bug.cgi?id=228962
<rdar://79883337>

Reviewed by Mark Lam.

  • assembler/AssemblerBuffer.h: (JSC::ARM64EHash::makeDiversifier): (JSC::ARM64EHash::nextValue): (JSC::ARM64EHash::bitsForDiversifier): (JSC::ARM64EHash::currentHash): (JSC::ARM64EHash::setUpdatedHash): (JSC::ARM64EHash::ARM64EHash): (JSC::ARM64EHash::update): (JSC::ARM64EHash::finalize): (JSC::AssemblerBuffer::AssemblerBuffer): (JSC::AssemblerBuffer::putIntegralUnchecked): (JSC::AssemblerBuffer::hash const):
  • assembler/LinkBuffer.cpp: (JSC::LinkBuffer::copyCompactAndLinkCode):

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

3:14 PM Changeset in webkit [281044] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit

[Cocoa] RemoteMediaPlayerProxy does not receive acceleratedRenderingStateChanged() when video element switches sources
https://bugs.webkit.org/show_bug.cgi?id=229092
<rdar://81902163>

Reviewed by Eric Carlson.

Follow up to r280723; in that patch, a call to acceleratedRenderingStateChanged() was added to
the MediaPlayerPrivateRemote, but only for non-Cocoa ports. Add the same method to the constructor
for the Cocoa version as well.

  • WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm:

(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote):

3:13 PM Changeset in webkit [281043] by Alan Coon
  • 8 edits in branches/safari-612.1.27.2-branch/Source

Versioning.

WebKit-7612.1.27.2.3

3:09 PM Changeset in webkit [281042] by Alan Coon
  • 1 copy in tags/Safari-612.1.27.3.4

Tag Safari-612.1.27.3.4.

3:08 PM Changeset in webkit [281041] by Alan Coon
  • 2 edits in branches/safari-612.1.27.3-branch/Source/JavaScriptCore

Cherry-pick r280996. rdar://problem/81901248

Refactor some ARM64EHash code.
https://bugs.webkit.org/show_bug.cgi?id=229054

Reviewed by Keith Miller and Robin Morisset.

This patch only refactors ARM64EHash code by moving some methods into the private
section, and removing some unneeded static_casts.

Verified with a diff of otool -tv dumps of the built JavaScriptCore binaries,
that there are no diffs in the generated code from this change.

  • assembler/AssemblerBuffer.h: (JSC::ARM64EHash::ARM64EHash): (JSC::ARM64EHash::update): (JSC::ARM64EHash::makeDiversifier): (JSC::ARM64EHash::nextValue): (JSC::ARM64EHash::bitsForDiversifier): (JSC::ARM64EHash::currentHash):

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

3:08 PM Changeset in webkit [281040] by Alan Coon
  • 3 edits in branches/safari-612.1.27.3-branch/Source/JavaScriptCore

Cherry-pick r280984. rdar://problem/81901248

Update ARM64EHash
https://bugs.webkit.org/show_bug.cgi?id=228962
<rdar://79883337>

Reviewed by Mark Lam.

  • assembler/AssemblerBuffer.h: (JSC::ARM64EHash::makeDiversifier): (JSC::ARM64EHash::nextValue): (JSC::ARM64EHash::bitsForDiversifier): (JSC::ARM64EHash::currentHash): (JSC::ARM64EHash::setUpdatedHash): (JSC::ARM64EHash::ARM64EHash): (JSC::ARM64EHash::update): (JSC::ARM64EHash::finalize): (JSC::AssemblerBuffer::AssemblerBuffer): (JSC::AssemblerBuffer::putIntegralUnchecked): (JSC::AssemblerBuffer::hash const):
  • assembler/LinkBuffer.cpp: (JSC::LinkBuffer::copyCompactAndLinkCode):

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

3:05 PM Changeset in webkit [281039] by Alan Coon
  • 8 edits in branches/safari-612.1.27.3-branch/Source

Versioning.

WebKit-7612.1.27.3.4

3:04 PM Changeset in webkit [281038] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ Win EWS ] http/tests/misc/webtiming-slow-load.py is failing.
https://bugs.webkit.org/show_bug.cgi?id=229099

Unreviewed test gardening.

  • platform/win/TestExpectations:
3:03 PM Changeset in webkit [281037] by Alan Coon
  • 1 copy in tags/Safari-612.1.28.1

Tag Safari-612.1.28.1.

2:42 PM Changeset in webkit [281036] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ Win EWS ] fast/forms/caps-lock-indicator-width.html is crashing.
https://bugs.webkit.org/show_bug.cgi?id=229098

Unreviewed test gardening.

  • platform/win/TestExpectations:
2:22 PM Changeset in webkit [281035] by Alan Coon
  • 8 edits in branches/safari-612.1.28-branch/Source

Versioning.

WebKit-7612.1.28.1

2:03 PM Changeset in webkit [281034] by Alan Coon
  • 1 copy in tags/Safari-612.1.28

Tag Safari-612.1.28.

2:02 PM Changeset in webkit [281033] by Alan Coon
  • 1 delete in tags/Safari-612.1.28

Delete tag.

1:53 PM Changeset in webkit [281032] by commit-queue@webkit.org
  • 20 edits in trunk/Source/WebKit

SandboxExtension::Handle creation should return std::optional instead of bool
https://bugs.webkit.org/show_bug.cgi?id=228875

Patch by Alex Christensen <achristensen@webkit.org> on 2021-08-13
Reviewed by Youenn Fablet.

This modernizes the code somewhat.
This makes it easier to write code that realizes that handle creation can fail.
This is a step towards removing the unnecessary abstraction HandleArray.

  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):

  • Platform/IPC/FormDataReference.h:

(IPC::FormDataReference::encode const):

  • Shared/Cocoa/SandboxExtensionCocoa.mm:

(WebKit::SandboxExtension::createHandleWithoutResolvingPath):
(WebKit::SandboxExtension::createHandle):
(WebKit::createHandlesForResources):
(WebKit::SandboxExtension::createReadOnlyHandlesForFiles):
(WebKit::SandboxExtension::createHandleForReadWriteDirectory):
(WebKit::SandboxExtension::createHandleForTemporaryFile):
(WebKit::SandboxExtension::createHandleForGenericExtension):
(WebKit::SandboxExtension::createHandleForMachLookup):
(WebKit::SandboxExtension::createHandlesForMachLookup):
(WebKit::SandboxExtension::createHandleForReadByAuditToken):
(WebKit::SandboxExtension::createHandleForIOKitClassExtension):
(WebKit::SandboxExtension::createHandlesForIOKitClassExtensions):

  • Shared/SandboxExtension.h:

(WebKit::SandboxExtension::createHandle):
(WebKit::SandboxExtension::createHandleWithoutResolvingPath):
(WebKit::SandboxExtension::createHandleForReadWriteDirectory):
(WebKit::SandboxExtension::createHandleForTemporaryFile):
(WebKit::SandboxExtension::createHandleForGenericExtension):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::addPlatformLoadParameters):
(WebKit::WebPageProxy::createSandboxExtensionsIfNeeded): Deleted.
(WebKit::WebPageProxy::scrollingUpdatesDisabledForTesting): Deleted.
(WebKit::WebPageProxy::startDrag): Deleted.
(WebKit::WebPageProxy::setPromisedDataForImage): Deleted.
(WebKit::WebPageProxy::setDragCaretRect): Deleted.
(WebKit::WebPageProxy::platformRegisterAttachment): Deleted.
(WebKit::WebPageProxy::platformCloneAttachment): Deleted.
(WebKit::WebPageProxy::performDictionaryLookupAtLocation): Deleted.
(WebKit::WebPageProxy::performDictionaryLookupOfCurrentSelection): Deleted.
(WebKit::WebPageProxy::insertDictatedTextAsync): Deleted.
(WebKit::WebPageProxy::platformDictationAlternatives): Deleted.
(WebKit::WebPageProxy::errorForUnpermittedAppBoundDomainNavigation): Deleted.
(WebKit::WebPageProxy::paymentCoordinatorConnection): Deleted.
(WebKit::WebPageProxy::paymentCoordinatorBoundInterfaceIdentifier): Deleted.
(WebKit::WebPageProxy::paymentCoordinatorSourceApplicationBundleIdentifier): Deleted.
(WebKit::WebPageProxy::paymentCoordinatorSourceApplicationSecondaryIdentifier): Deleted.
(WebKit::WebPageProxy::paymentCoordinatorAddMessageReceiver): Deleted.
(WebKit::WebPageProxy::paymentCoordinatorRemoveMessageReceiver): Deleted.
(WebKit::WebPageProxy::didStartSpeaking): Deleted.
(WebKit::WebPageProxy::didFinishSpeaking): Deleted.
(WebKit::WebPageProxy::didPauseSpeaking): Deleted.
(WebKit::WebPageProxy::didResumeSpeaking): Deleted.
(WebKit::WebPageProxy::speakingErrorOccurred): Deleted.
(WebKit::WebPageProxy::boundaryEventOccurred): Deleted.
(WebKit::WebPageProxy::voicesDidChange): Deleted.
(WebKit::WebPageProxy::didCreateContextInWebProcessForVisibilityPropagation): Deleted.
(WebKit::WebPageProxy::didCreateContextInGPUProcessForVisibilityPropagation): Deleted.
(WebKit::WebPageProxy::grantAccessToPreferenceService): Deleted.
(WebKit::WebPageProxy::mediaUsageManager): Deleted.
(WebKit::WebPageProxy::addMediaUsageManagerSession): Deleted.
(WebKit::WebPageProxy::updateMediaUsageManagerSessionState): Deleted.
(WebKit::WebPageProxy::removeMediaUsageManagerSession): Deleted.
(WebKit::convertPlatformImageToBitmap): Deleted.
(WebKit::WebPageProxy::requestThumbnailWithOperation): Deleted.
(WebKit::WebPageProxy::requestThumbnailWithFileWrapper): Deleted.
(WebKit::WebPageProxy::requestThumbnailWithPath): Deleted.
(WebKit::WebPageProxy::scheduleActivityStateUpdate): Deleted.
(WebKit::WebPageProxy::addActivityStateUpdateCompletionHandler): Deleted.
(WebKit::WebPageProxy::createAppHighlightInSelectedRange): Deleted.
(WebKit::WebPageProxy::restoreAppHighlightsAndScrollToIndex): Deleted.
(WebKit::WebPageProxy::setAppHighlightsVisibility): Deleted.
(WebKit::WebPageProxy::appHighlightsVisibility): Deleted.
(WebKit::WebPageProxy::appHighlightsOverlayRect): Deleted.
(WebKit::WebPageProxy::setUpHighlightsObserver): Deleted.
(WebKit::WebPageProxy::createNetworkExtensionsSandboxExtensions): Deleted.
(WebKit::WebPageProxy::canHandleContextMenuTranslation const): Deleted.
(WebKit::WebPageProxy::handleContextMenuTranslation): Deleted.
(WebKit::WebPageProxy::requestActiveNowPlayingSessionInfo): Deleted.
(WebKit::WebPageProxy::setLastNavigationWasAppInitiated): Deleted.
(WebKit::WebPageProxy::lastNavigationWasAppInitiated): Deleted.
(WebKit::WebPageProxy::grantAccessToAssetServices): Deleted.
(WebKit::WebPageProxy::revokeAccessToAssetServices): Deleted.
(WebKit::WebPageProxy::switchFromStaticFontRegistryToUserFontRegistry): Deleted.
(WebKit::WebPageProxy::fontdMachExtensionHandle): Deleted.
(WebKit::WebPageProxy::contentsOfUserInterfaceItem): Deleted.

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::getPasteboardPathnamesForType):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::platformInitializeNetworkProcess): Deleted.
(WebKit::WebProcessPool::platformInvalidateContext): Deleted.
(WebKit::WebProcessPool::parentBundleDirectory): Deleted.
(WebKit::WebProcessPool::networkingCachesDirectory): Deleted.
(WebKit::WebProcessPool::webContentCachesDirectory): Deleted.
(WebKit::WebProcessPool::containerTemporaryDirectory): Deleted.
(WebKit::WebProcessPool::setJavaScriptConfigurationFileEnabledFromDefaults): Deleted.
(WebKit::WebProcessPool::omitPDFSupport): Deleted.
(WebKit::WebProcessPool::processSuppressionEnabled const): Deleted.
(WebKit::WebProcessPool::displayBrightness): Deleted.
(WebKit::WebProcessPool::backlightLevelDidChangeCallback): Deleted.
(WebKit::WebProcessPool::accessibilityPreferencesChangedCallback): Deleted.
(WebKit::WebProcessPool::mediaAccessibilityPreferencesChangedCallback): Deleted.
(WebKit::WebProcessPool::colorPreferencesDidChangeCallback): Deleted.
(WebKit::WebProcessPool::remoteWebInspectorEnabledCallback): Deleted.
(WebKit::WebProcessPool::startObservingPreferenceChanges): Deleted.
(WebKit::WebProcessPool::registerNotificationObservers): Deleted.
(WebKit::WebProcessPool::unregisterNotificationObservers): Deleted.
(WebKit::WebProcessPool::isURLKnownHSTSHost const): Deleted.
(WebKit::WebProcessPool::nominalFramesPerSecondForDisplay): Deleted.
(WebKit::WebProcessPool::startDisplayLink): Deleted.
(WebKit::WebProcessPool::stopDisplayLink): Deleted.
(WebKit::WebProcessPool::stopDisplayLinks): Deleted.
(WebKit::WebProcessPool::setDisplayLinkPreferredFramesPerSecond): Deleted.
(WebKit::WebProcessPool::setDisplayLinkForDisplayWantsFullSpeedUpdates): Deleted.
(WebKit::WebProcessPool::setCookieStoragePartitioningEnabled): Deleted.
(WebKit::WebProcessPool::clearPermanentCredentialsForProtectionSpace): Deleted.
(WebKit::networkProcessLatencyQOS): Deleted.
(WebKit::networkProcessThroughputQOS): Deleted.
(WebKit::webProcessLatencyQOS): Deleted.
(WebKit::webProcessThroughputQOS): Deleted.
(WebKit::WebProcessPool::applicationIsAboutToSuspend): Deleted.
(WebKit::WebProcessPool::notifyProcessPoolsApplicationIsAboutToSuspend): Deleted.
(WebKit::WebProcessPool::initializeClassesForParameterCoding): Deleted.
(WebKit::WebProcessPool::allowedClassesForParameterCoding const): Deleted.
(WebKit::WebProcessPool::notifyPreferencesChanged): Deleted.
(WebKit::webProcessPoolHighDynamicRangeDidChangeCallback): Deleted.
(WebKit::WebProcessPool::registerHighDynamicRangeChangeCallback): Deleted.
(WebKit::WebProcessPool::systemWillSleep): Deleted.
(WebKit::WebProcessPool::systemDidWake): Deleted.

  • UIProcess/Downloads/DownloadProxy.cpp:

(WebKit::DownloadProxy::publishProgress):
(WebKit::DownloadProxy::decideDestinationWithSuggestedFilename):

  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::GPUProcessProxy):
(WebKit::addCameraSandboxExtensions):
(WebKit::addMicrophoneSandboxExtension):
(WebKit::addTCCDSandboxExtension):
(WebKit::gpuProcessSessionParameters):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::sendCreationParametersToNewProcess):
(WebKit::NetworkProcessProxy::retrieveCacheStorageParameters):

  • UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.cpp:

(WebKit::SpeechRecognitionRemoteRealtimeMediaSourceManager::addSource):

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest):

  • UIProcess/UserMediaProcessManager.cpp:

(WebKit::UserMediaProcessManager::willCreateMediaStream):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):
(WebKit::WebPageProxy::didChooseFilesForOpenPanelWithDisplayStringAndIcon):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::webProcessDataStoreParameters):
(WebKit::WebProcessPool::initializeNewWebProcess):
(WebKit::WebProcessPool::processDidFinishLaunching):
(WebKit::WebProcessPool::resumeDownload):
(WebKit::WebProcessPool::startMemorySampler):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::platformSetNetworkParameters):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::parameters):

  • WebProcess/FileAPI/BlobRegistryProxy.cpp:

(WebKit::BlobRegistryProxy::registerFileBlobURL):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::load):

1:14 PM Changeset in webkit [281031] by Alan Coon
  • 4 edits in branches/safari-612.1.27.0-branch/Tools

Cherry-pick r281023. rdar://problem/81868773

[webkitscmpy] Fix SVN relative URL parsing
https://bugs.webkit.org/show_bug.cgi?id=229075
<rdar://problem/81868773>

Reviewed by Aakash Jain.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py: (Svn.branch): Check if relative URL path contains local path before stripping local path.

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

12:30 PM Changeset in webkit [281030] by youenn@apple.com
  • 4 edits in trunk

Use profile auto level for WebRTC H264 encoder on Apple Silicon
https://bugs.webkit.org/show_bug.cgi?id=229071
<rdar://80345048>

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

AS H264 encoder will fail if its profile is too low compared to the size of the video.
Use autolevel to prevent this.

  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:

LayoutTests:

  • platform/mac/TestExpectations:
12:29 PM Changeset in webkit [281029] by keith_miller@apple.com
  • 4 edits
    1 add in trunk

EnumeratorNextUpdatePropertyName always needs to be able to handle IndexedMode
https://bugs.webkit.org/show_bug.cgi?id=229087

Reviewed by Filip Pizlo.

JSTests:

  • stress/for-in-own-structure-and-generic-with-late-add-indexed.js: Added.

(test):
(Foo):

Source/JavaScriptCore:

Right now, this operation incorrectly assumes that EnumeratorNextUpdateIndexAndMode will guarantee
the mode matches the seen mode set. But no speculation is guaranteed and adding such a guarantee
would require adding checkpoints, which is likely not worth it. Instead, this patch just makes
sure we always handle the allocation for IndexedMode.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileEnumeratorNextUpdatePropertyName):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

12:10 PM Changeset in webkit [281028] by Alan Coon
  • 1 copy in tags/Safari-611.4.0.1

Tag Safari-611.4.0.1.

12:10 PM Changeset in webkit [281027] by Alan Coon
  • 1 delete in tags/Safari-611.4.0.1

Delete tag.

11:58 AM Changeset in webkit [281026] by Alan Coon
  • 2 edits in branches/safari-611.3.10.0-branch/Source/WebCore

Cherry-pick r278729. rdar://problem/80310242

Fix incorrect check in AudioNode.disconnect()
https://bugs.webkit.org/show_bug.cgi?id=226818
<rdar://problem/79076999>

Reviewed by Eric Carlson.

  • Modules/webaudio/AudioNode.cpp: (WebCore::AudioNode::disconnect):

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

11:58 AM Changeset in webkit [281025] by achristensen@apple.com
  • 22 edits
    2 deletes in trunk

Unreviewed, reverting r281009.

Timing not quite right

Reverted changeset:

"Unprefix -webkit-backface-visibility"
https://bugs.webkit.org/show_bug.cgi?id=170983
https://commits.webkit.org/r281009

11:39 AM Changeset in webkit [281024] by Alan Coon
  • 1 copy in tags/Safari-611.4.0.1

Tag Safari-611.4.0.1.

10:24 AM Changeset in webkit [281023] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitscmpy] Fix SVN relative URL parsing
https://bugs.webkit.org/show_bug.cgi?id=229075
<rdar://problem/81868773>

Reviewed by Aakash Jain.

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

(Svn.branch): Check if relative URL path contains local path before stripping local path.

9:50 AM Changeset in webkit [281022] by Alan Coon
  • 68 edits
    11 deletes in branches/safari-612.1.28-branch

Revert r280760. rdar://problem/81903894

9:39 AM Changeset in webkit [281021] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ BigSur Debug wk2 EWS ] webrtc/video-interruption.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=229076

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
8:57 AM Changeset in webkit [281020] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

REGRESSION(r280078): broke fast/images/exif-orientation-composited.html on windows.
https://bugs.webkit.org/show_bug.cgi?id=228325.

Unreviewed test gardening.

  • platform/win/TestExpectations:
8:38 AM Changeset in webkit [281019] by Alan Coon
  • 3 edits in branches/safari-612.1.28-branch/Source/WebCore

Cherry-pick r281008. rdar://problem/81901037

Fix bounds checks for WhitespaceCache string lengths
https://bugs.webkit.org/show_bug.cgi?id=229066
<rdar://81850871>

Reviewed by Simon Fraser.

When the whitespace string length is maximumWhitespaceStringLength,
we read from and write to one element past the end of m_codes and
m_indexes. Since we don't need to store codes and indexes for zero
length strings, subtract one from the index we use.

  • html/parser/HTMLConstructionSite.cpp: (WebCore::WhitespaceCache::lookup):
  • html/parser/HTMLConstructionSite.h:

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

8:30 AM Changeset in webkit [281018] by Alan Coon
  • 2 edits in branches/safari-612.1.27.0-branch/Source/JavaScriptCore

Cherry-pick r280996. rdar://problem/81901248

Refactor some ARM64EHash code.
https://bugs.webkit.org/show_bug.cgi?id=229054

Reviewed by Keith Miller and Robin Morisset.

This patch only refactors ARM64EHash code by moving some methods into the private
section, and removing some unneeded static_casts.

Verified with a diff of otool -tv dumps of the built JavaScriptCore binaries,
that there are no diffs in the generated code from this change.

  • assembler/AssemblerBuffer.h: (JSC::ARM64EHash::ARM64EHash): (JSC::ARM64EHash::update): (JSC::ARM64EHash::makeDiversifier): (JSC::ARM64EHash::nextValue): (JSC::ARM64EHash::bitsForDiversifier): (JSC::ARM64EHash::currentHash):

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

8:30 AM Changeset in webkit [281017] by Alan Coon
  • 3 edits in branches/safari-612.1.27.0-branch/Source/JavaScriptCore

Cherry-pick r280984. rdar://problem/81901248

Update ARM64EHash
https://bugs.webkit.org/show_bug.cgi?id=228962
<rdar://79883337>

Reviewed by Mark Lam.

  • assembler/AssemblerBuffer.h: (JSC::ARM64EHash::makeDiversifier): (JSC::ARM64EHash::nextValue): (JSC::ARM64EHash::bitsForDiversifier): (JSC::ARM64EHash::currentHash): (JSC::ARM64EHash::setUpdatedHash): (JSC::ARM64EHash::ARM64EHash): (JSC::ARM64EHash::update): (JSC::ARM64EHash::finalize): (JSC::AssemblerBuffer::AssemblerBuffer): (JSC::AssemblerBuffer::putIntegralUnchecked): (JSC::AssemblerBuffer::hash const):
  • assembler/LinkBuffer.cpp: (JSC::LinkBuffer::copyCompactAndLinkCode):

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

8:29 AM Changeset in webkit [281016] by Alan Coon
  • 8 edits in branches/safari-612.1.27.0-branch/Source

Versioning.

WebKit-7612.1.27.0.22

7:40 AM Changeset in webkit [281015] by Lauro Moura
  • 3 edits in trunk/Tools

[WPE] WebExtension API test /webkit/WebKitWebView/web-process-crashed is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=229067

Reviewed by Carlos Garcia Campos.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp:

(testWebKitWebViewProcessCrashed): Make warnings non-fatal while waiting for the crash.

  • TestWebKitAPI/glib/TestExpectations.json: Remove expectation
7:16 AM Changeset in webkit [281014] by ntim@apple.com
  • 3 edits in trunk/Source/WebCore

Check for dialog existence in top layer in HTMLDialogElement::showModal & close
https://bugs.webkit.org/show_bug.cgi?id=227907

Reviewed by Antti Koivisto.

Test: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-showModal.html

Test expectations are unchanged because the test uses elementFromPoint, meaning that behaviour difference isn't noticeable
until top layer rendering bits are implemented (which would change elementFromPoint's result by shuffling z-order based on top layer elements).

  • dom/Element.h:

(WebCore::Element::isInTopLayer const):

  • html/HTMLDialogElement.cpp:

(WebCore::HTMLDialogElement::showModal):
(WebCore::HTMLDialogElement::close):

4:57 AM Changeset in webkit [281013] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebCore

nexttrack and previoustrack MediaSession handlers not working
https://bugs.webkit.org/show_bug.cgi?id=229068
rdar://80100092

Reviewed by Youenn Fablet.

Map between MediaSession action next/previousTrack and RemoteControlCommandType ones
were inverted.
There is no infrastrure in place to ensure that the right MRMediaRemoteCommand is
used with the MediaRemote backend, which prevents automating the test.

  • Modules/mediasession/MediaSession.cpp:

(WebCore::platformCommandForMediaSessionAction):

3:22 AM Changeset in webkit [281012] by youenn@apple.com
  • 62 edits in trunk

Overly verbose catchable fetch error messages lead to cross-origin leaks
https://bugs.webkit.org/show_bug.cgi?id=228861

Reviewed by Brent Fulgham.

LayoutTests/imported/w3c:

Rebasing tests with new error message.

  • web-platform-tests/FileAPI/url/url-with-fetch.any-expected.txt:
  • web-platform-tests/FileAPI/url/url-with-fetch.any.worker-expected.txt:
  • web-platform-tests/clipboard-apis/async-navigator-clipboard-basics.https-expected.txt:
  • web-platform-tests/content-security-policy/inside-worker/dedicatedworker-report-only-expected.txt:
  • web-platform-tests/content-security-policy/inside-worker/serviceworker-report-only.https.sub-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-cookies.any.worker-expected.txt:
  • web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-service-worker.https-expected.txt:
  • web-platform-tests/fetch/http-cache/cc-request.any-expected.txt:
  • web-platform-tests/fetch/http-cache/cc-request.any.worker-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/coep-on-response-from-service-worker.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/none-sw-from-none.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/none-sw-from-require-corp.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/require-corp-sw-from-none.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/require-corp-sw-from-require-corp.https-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/credentials.sub-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/credentials.sub-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/credentials.sub-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/dynamic-imports-credentials-setTimeout.sub-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/dynamic-imports-credentials.sub-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/integrity-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-referrer-policy.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/import-scripts-cross-origin.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/redirected-response.https-expected.txt:
  • web-platform-tests/wasm/jsapi/table/constructor-reftypes.tentative.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/table/grow-reftypes.tentative.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/table/set-reftypes.tentative.any.worker-expected.txt:

Source/WebCore:

Standardize error messages to get more uniform with other browsers.
To continue supporting service worker errors going to page errors,
we add a boolean to ResourceError to control whether sanitizing the error message or not.
This allows to keep error messages from service worker type exceptions to be exposed in window environments through fetch rejection.
Also handle ScriptModuleLoader since it is doing its own SRI checks.
Covered by rebased tests.

  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::loadingException const):

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::BodyLoader::didFail):

  • platform/network/ResourceErrorBase.h:

(WebCore::ResourceErrorBase::sanitizedDescription const):
(WebCore::ResourceErrorBase::isSanitized const):
(WebCore::ResourceErrorBase::setAsSanitized):
(WebCore::ResourceErrorBase::ResourceErrorBase):

  • platform/network/cf/ResourceError.h:

(WebCore::ResourceError::ResourceError):

  • platform/network/curl/ResourceError.h:

(WebCore::ResourceError::ResourceError):

  • platform/network/soup/ResourceError.h:

(WebCore::ResourceError::ResourceError):

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadSynchronously):

  • workers/service/FetchEvent.cpp:

(WebCore::FetchEvent::createResponseError):
(WebCore::FetchEvent::respondWith):
(WebCore::FetchEvent::promiseIsSettled):

  • workers/service/FetchEvent.h:
  • workers/service/context/ServiceWorkerFetch.cpp:

(WebCore::ServiceWorkerFetch::processResponse):
(WebCore::ServiceWorkerFetch::dispatchFetchEvent):

  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::ScriptModuleLoader::notifyFinished):

Source/WebKit:

  • Shared/WebCoreArgumentCoders.cpp:

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

LayoutTests:

  • http/tests/contentextensions/block-ping-resource-type-raw-expected.txt:
  • http/tests/contentextensions/fetch-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
  • http/tests/subresource-integrity/sri-module-expected.txt:
  • http/tests/workers/service/shift-reload-navigation-expected.txt:
  • http/tests/workers/resources/worker-importScripts.js: changed error logging for better readability.
  • http/tests/workers/worker-importScripts-expected.txt:
  • http/wpt/service-workers/cors-preflight-star.any-serviceworker-expected.txt:
  • js/dom/modules/module-fetch-failure-not-cached-expected.txt:
  • platform/mac-wk1/http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
  • platform/mac-wk1/http/tests/security/contentSecurityPolicy/worker-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/FileAPI/url/url-with-fetch.any-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/FileAPI/url/url-with-fetch.any.worker-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/clipboard-apis/async-navigator-clipboard-basics.https-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/content-security-policy/inside-worker/dedicatedworker-report-only-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/request/request-cache-only-if-cached.any-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/request/request-cache-only-if-cached.any.worker-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/fetch/http-cache/cc-request.any-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/fetch/http-cache/cc-request.any.worker-expected.txt:
2:38 AM Changeset in webkit [281011] by svillar@igalia.com
  • 3 edits in trunk/Source/WebCore

Crash in MockMediaSourcePrivate
https://bugs.webkit.org/show_bug.cgi?id=226795

Reviewed by Darin Adler.

The MockMediaPlayerMediaSource uses callOnMainThread() to execute advanceCurrentTime(). It might
happen that the object is destructed before the callback is executed as it isn't a ref counted
object. That leads to a crash on ASAN builds.

Made the object capable of creating weak ptrs so that we could check whether the _this_ object
has been freed in the meantime or not. For the former case we just bail out.

  • platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:

(WebCore::MockMediaPlayerMediaSource::play): Create a WeakPtr.
(WebCore::MockMediaPlayerMediaSource::seekWithTolerance): Ditto.
(WebCore::MockMediaPlayerMediaSource::seekCompleted): Ditto.

  • platform/mock/mediasource/MockMediaPlayerMediaSource.h: inherit from CanMakeWeakPtr.
1:40 AM Changeset in webkit [281010] by Martin Robinson
  • 11 edits in trunk

Get lint-test-expectations passing
https://bugs.webkit.org/show_bug.cgi?id=228999

Reviewed by Ryan Haddad.

Tools:

  • Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py:

(LayoutTestFinder._is_test_file): Added a list of patterns for tests to skip
and ensured that 'boot.xml' and 'root.xml' (spurious files created during
the run of the WebKit1 bot) are on the list.

  • Scripts/webkitpy/layout_tests/controllers/layout_test_finder_unittest.py:

(LayoutTestFinderTests.test_is_test_file): Added a test for the changes.

LayoutTests:

  • TestExpectations: Remove expectation for non-existent test.
  • platform/ios-simulator/TestExpectations: Ditto.
  • platform/ios-wk2/TestExpectations: Ditto.
  • platform/ios/TestExpectations: Dito.
  • platform/mac-wk1/TestExpectations: Ditto. Also, the expectations for the non-test

'boot.xml' and 'root.xml' have been moved to workarounds in webkitpy.

  • platform/mac/TestExpectations: Remove references to non-existent tests. Also combined

one expectation that was not linting due to a problem like the one described in bug
120081.

  • platform/win/TestExpectations: Ditto.

Aug 12, 2021:

11:46 PM Changeset in webkit [281009] by commit-queue@webkit.org
  • 22 edits
    2 adds in trunk

Unprefix -webkit-backface-visibility
https://bugs.webkit.org/show_bug.cgi?id=170983

Patch by Alex Christensen <achristensen@webkit.org> on 2021-08-12
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • web-platform-tests/css/css-transforms/css-transform-property-existence-expected.txt: Added.
  • web-platform-tests/css/css-transforms/css-transform-property-existence.html: Added.
  • web-platform-tests/css/css-transforms/parsing/backface-visibility-computed-expected.txt:
  • web-platform-tests/css/css-transforms/parsing/backface-visibility-valid-expected.txt:
  • web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:

Source/WebCore:

This has already been done by Chrome and Firefox.
Keep the prefixed version as an alias.

Test: imported/w3c/web-platform-tests/css/css-transforms/css-transform-property-existence.html

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSProperties.json:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):

LayoutTests:

  • platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/ios/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/ios/svg/css/getComputedStyle-basic-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/mac/svg/css/getComputedStyle-basic-expected.txt:
10:45 PM Changeset in webkit [281008] by Cameron McCormack
  • 3 edits in trunk/Source/WebCore

Fix bounds checks for WhitespaceCache string lengths
https://bugs.webkit.org/show_bug.cgi?id=229066
<rdar://81850871>

Reviewed by Simon Fraser.

When the whitespace string length is maximumWhitespaceStringLength,
we read from and write to one element past the end of m_codes and
m_indexes. Since we don't need to store codes and indexes for zero
length strings, subtract one from the index we use.

  • html/parser/HTMLConstructionSite.cpp:

(WebCore::WhitespaceCache::lookup):

  • html/parser/HTMLConstructionSite.h:
8:58 PM Changeset in webkit [281007] by Peng Liu
  • 3 edits in trunk/Source/WebKit

REGRESSION (r280951): [ Big Sur ] TestWebKitAPI.AudioRoutingArbitration.Close is failing
https://bugs.webkit.org/show_bug.cgi?id=229040

Reviewed by Eric Carlson.

Function AudioSessionRoutingArbitratorProxy::processDidTerminate() should
be called only in the case that the corresponding WebContent process exits,
whereas GPUProcessConnection::didClose() (in WebContent process) deals with
the case that the GPU process crashes.

No new tests. Fix an API test failure.

  • UIProcess/Media/cocoa/AudioSessionRoutingArbitratorProxyCocoa.mm:

(WebKit::AudioSessionRoutingArbitratorProxy::processDidTerminate):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::gpuProcessExited):

8:34 PM Changeset in webkit [281006] by Lauro Moura
  • 2 edits in trunk/Tools

[WPE] Gardening web-process-crashed API test failure

Unreviewed test gardening.

  • TestWebKitAPI/glib/TestExpectations.json:
7:06 PM Changeset in webkit [281005] by Alan Coon
  • 2 edits in branches/safari-611.3.10.0-branch/Source/JavaScriptCore

Cherry-pick r280996. rdar://problem/81752592

Refactor some ARM64EHash code.
https://bugs.webkit.org/show_bug.cgi?id=229054

Reviewed by Keith Miller and Robin Morisset.

This patch only refactors ARM64EHash code by moving some methods into the private
section, and removing some unneeded static_casts.

Verified with a diff of otool -tv dumps of the built JavaScriptCore binaries,
that there are no diffs in the generated code from this change.

  • assembler/AssemblerBuffer.h: (JSC::ARM64EHash::ARM64EHash): (JSC::ARM64EHash::update): (JSC::ARM64EHash::makeDiversifier): (JSC::ARM64EHash::nextValue): (JSC::ARM64EHash::bitsForDiversifier): (JSC::ARM64EHash::currentHash):

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

7:06 PM Changeset in webkit [281004] by Alan Coon
  • 3 edits in branches/safari-611.3.10.0-branch/Source/JavaScriptCore

Cherry-pick r280984. rdar://problem/81752592

Update ARM64EHash
https://bugs.webkit.org/show_bug.cgi?id=228962
<rdar://79883337>

Reviewed by Mark Lam.

  • assembler/AssemblerBuffer.h: (JSC::ARM64EHash::makeDiversifier): (JSC::ARM64EHash::nextValue): (JSC::ARM64EHash::bitsForDiversifier): (JSC::ARM64EHash::currentHash): (JSC::ARM64EHash::setUpdatedHash): (JSC::ARM64EHash::ARM64EHash): (JSC::ARM64EHash::update): (JSC::ARM64EHash::finalize): (JSC::AssemblerBuffer::AssemblerBuffer): (JSC::AssemblerBuffer::putIntegralUnchecked): (JSC::AssemblerBuffer::hash const):
  • assembler/LinkBuffer.cpp: (JSC::LinkBuffer::copyCompactAndLinkCode):

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

6:40 PM Changeset in webkit [281003] by Kocsen Chung
  • 1 copy in tags/Safari-612.1.27.0.8

Tag Safari-612.1.27.0.8.

6:26 PM Changeset in webkit [281002] by clopez@igalia.com
  • 3 edits
    5 adds in trunk/LayoutTests

[GTK][WPE] Gardening of layout test failures

Unreviewed gardening

Rebaseline tests after r280953 and r279838 and report and mark new expected failures.

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/content-security-policy/inside-worker/dedicatedworker-report-only-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/content-security-policy/inside-worker/serviceworker-report-only.https.sub-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/header-parsing.https-expected.txt: Added.
  • platform/gtk/TestExpectations:
6:13 PM Changeset in webkit [281001] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

ThreadSanitizer: data race in WebCore::CARingBufferStorageVector::setCurrentFrameBounds() / getCurrentFrameBounds()
<https://webkit.org/b/229014>
<rdar://problem/81817224>

Reviewed by Chris Dumez.

This turned out to be a false-positive since reads and writes
are protected differently, and it's okay if a read returns data
from the ring buffer that is one slot older than the current
write.

Covered by layout tests running with TSan:

fast/mediastream/getUserMedia-webaudio.html
fast/mediastream/mediastreamtrack-audio-clone.html
imported/w3c/web-platform-tests/webrtc/RTCDTMFSender-insertDTMF.https.html
imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-iceConnectionState.https.html
imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-track-stats.https.html
imported/w3c/web-platform-tests/webrtc/protocol/missing-fields.html
webrtc/audio-peer-connection-g722.html
webrtc/audio-peer-connection-webaudio.html
webrtc/audio-replace-track.html
webrtc/peer-connection-audio-mute.html
webrtc/peer-connection-audio-mute2.html
webrtc/peer-connection-createMediaStreamDestination.html
webrtc/peer-connection-remote-audio-mute.html
webrtc/peer-connection-remote-audio-mute2.html

  • platform/audio/cocoa/CARingBuffer.cpp:

(WebCore::CARingBufferStorageVector::getCurrentFrameBounds):
(WebCore::CARingBufferStorageVector::currentStartFrame const):
(WebCore::CARingBufferStorageVector::currentEndFrame const):

  • Add SUPPRESS_TSAN attribute since reads are protected by std::atomic<int32_t> m_timeBoundsQueuePtr only being incremented after the next m_timeBoundsQueue slot is updated. Writes are potected by Locker locker { m_currentFrameBoundsLock }.
5:36 PM Changeset in webkit [281000] by Alan Coon
  • 1 copy in tags/Safari-612.1.27.0.21

Tag Safari-612.1.27.0.21.

5:08 PM Changeset in webkit [280999] by Chris Dumez
  • 2 edits in trunk/Source/WebKitLegacy/mac

Regression(r273194) Exception being thrown in [WebMainThreadInvoker forwardInvocation] should be autoreleased
https://bugs.webkit.org/show_bug.cgi?id=229056

Reviewed by Geoffrey Garen.

Exception being thrown in [WebMainThreadInvoker forwardInvocation] should be autoreleased. I got this wrong
in r273194.

  • Misc/WebNSObjectExtras.mm:

(-[WebMainThreadInvoker forwardInvocation:]):

5:04 PM Changeset in webkit [280998] by Alan Coon
  • 8 edits in branches/safari-612.1.27.0.6-branch/Source

Cherry-pick r280776. rdar://problem/81861548

[Cocoa|GPU] platformLayer() not always added to remotedly hosted context; black video while playing
https://bugs.webkit.org/show_bug.cgi?id=228873
<rdar://81271107>

Reviewed by Eric Carlson.

Source/WebCore:

Coalesce calls to renderingModeChanged() by setting a flag to call renderingModeChanged() in
the next run loop, and call into this coalescing method, setNeedsRenderingModeChanged(),
whenever the MediaPlayerPrivateAVFoundation subclasses create or destroy a video layer
or software painting context. This ensures that the MediaPlayerClient is always notified
when the rendering mode changes, regardless of why that change occurred.

Drive-by fix: replace the call in createVideoLayer() to "callOnMainThread()"
with "ensureOnMainThread()". The call to "callOnMainThread()" was added to avoid a
deadlock in WebKitLegacy, and "ensureOnMainThread()" has the correct behavior there, but
will be synchronous in WebKit.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: (WebCore::MediaPlayerPrivateAVFoundation::setUpVideoRendering): (WebCore::MediaPlayerPrivateAVFoundation::setNeedsRenderingModeChanged): (WebCore::MediaPlayerPrivateAVFoundation::renderingModeChanged): (WebCore::MediaPlayerPrivateAVFoundation::prepareForRendering):
  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp: (WebCore::MediaPlayerPrivateAVFoundationCF::destroyVideoLayer): (WebCore::AVFWrapper::createAVCFVideoLayer): (WebCore::AVFWrapper::createImageGenerator): (WebCore::AVFWrapper::destroyImageGenerator):
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer): (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer): (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer): (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput): (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoOutput):

Source/WebKit:

Currently, the RemoteMediaPlayerProxy will insert its MediaPlayer's platformLayer() into the
remotely hosted context when it receives a "firstVideoFrameAvailable()" notification.
However this is problematic for two reasons: AVPlayerLayer may not become "ready for
playback" when it is not in an active CALayer heirarchy, and for
MediaPlayerPrivateAVFoundation, firstVideoFrameAvailable() is only fired during
updateStates(), which is not guaranteed to occur unless another state change occurs.

Instead, reparent the MediaPlayer's platformLayer() when we receive a
mediaPlayerRenderingModeChanged() notification, which notifies the client whenever a
platformLayer() is created or destroyed.

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:
  • GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm: (WebKit::RemoteMediaPlayerProxy::mediaPlayerFirstVideoFrameAvailable): (WebKit::RemoteMediaPlayerProxy::mediaPlayerRenderingModeChanged):

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

5:01 PM Changeset in webkit [280997] by Alan Coon
  • 8 edits in branches/safari-612.1.27.0.6-branch/Source

Versioning.

WebKit-7612.1.27.0.8

4:49 PM Changeset in webkit [280996] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Refactor some ARM64EHash code.
https://bugs.webkit.org/show_bug.cgi?id=229054

Reviewed by Keith Miller and Robin Morisset.

This patch only refactors ARM64EHash code by moving some methods into the private
section, and removing some unneeded static_casts.

Verified with a diff of otool -tv dumps of the built JavaScriptCore binaries,
that there are no diffs in the generated code from this change.

  • assembler/AssemblerBuffer.h:

(JSC::ARM64EHash::ARM64EHash):
(JSC::ARM64EHash::update):
(JSC::ARM64EHash::makeDiversifier):
(JSC::ARM64EHash::nextValue):
(JSC::ARM64EHash::bitsForDiversifier):
(JSC::ARM64EHash::currentHash):

4:34 PM Changeset in webkit [280995] by Alan Coon
  • 1 copy in tags/Safari-612.1.15.4.16

Tag Safari-612.1.15.4.16.

4:31 PM Changeset in webkit [280994] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ Mac wk1 ] imported/w3c/web-platform-tests/FileAPI/url/url-in-tags.window.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=229058

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
4:30 PM Changeset in webkit [280993] by Alan Coon
  • 2 edits in branches/safari-612.1.15.4-branch/Source/WebInspectorUI/WebInspectorUI.vcxproj

Apply patch. rdar://problem/81727006

4:26 PM Changeset in webkit [280992] by Chris Dumez
  • 2 edits in trunk/Tools

REGRESSION (iPadOS 14): [ iPadOS wk2 ] TestWebKitAPI.ServiceWorkers.SuspendNetworkProcess is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=217714
<rdar://problem/70296664>

Reviewed by Geoffrey Garen.

Give the database some time to get written out to disk before we try and suspend the network process, to try
and address the flakiness.

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
4:17 PM Changeset in webkit [280991] by Alan Coon
  • 8 edits in branches/safari-612.1.15.4-branch/Source

Versioning.

WebKit-7612.1.15.4.16

4:02 PM Changeset in webkit [280990] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ MacOS EWS ] 3 inspector/canvas/* tests are flaky failing/ crashing.
https://bugs.webkit.org/show_bug.cgi?id=229043

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:50 PM Changeset in webkit [280989] by Patrick Angle
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Adding execution contexts after page load doesn't show a hidden execution selector
https://bugs.webkit.org/show_bug.cgi?id=229053

Reviewed by Devin Rousso.

Add a handler for execution contexts being added to update the display of the execution context list, as when
there is only a single context at page load the dropdown will be hidden and thus needs to be shown when an
execution context is added after page load.

  • UserInterface/Views/QuickConsole.js:

(WI.QuickConsole):
(WI.QuickConsole.prototype._handleFrameExecutionContextAdded):

3:27 PM Changeset in webkit [280988] by achristensen@apple.com
  • 3 edits in trunk/Source/WebCore

Unreviewed, reverting r280977.

Seems to have broken a test in debug

Reverted changeset:

"Migrate Performance::resourceTimingBufferFullTimerFired to
HTML event loop"
https://bugs.webkit.org/show_bug.cgi?id=229044
https://commits.webkit.org/r280977

3:24 PM Changeset in webkit [280987] by Alan Coon
  • 5 edits in branches/safari-612.1.27.0-branch/Source/WebKit

Cherry-pick r280981. rdar://problem/81870941

[GPU Process] REGRESSION: WebContent often crashes when using iCloud photos
https://bugs.webkit.org/show_bug.cgi?id=228969
<rdar://81761078>

Reviewed by Simon Fraser.

Terminating the GPUProcess is very stressful situation which has to be
handled carefully. The side effect of each function which is called through
gpuProcessConnectionDidClose() has to be understood to get the right
sequence of calls. There are problems in releasing all kinds of resources.

  • Releasing NativeImage: Calling clearNativeImageMap() after clearing the backend of the ImageBuffers was causing a problem. When clearing the backend of an ImageBuffer, it will clear its DisplayList which may have the last reference to a NativeImage. The destructor of NativeImage calls releaseRemoteResource() before it is removed from the the NativeImageMap. This will send a message to the relaunched GPUP to release a NativeImage which is not in its cache.
  • Releasing Font: clearFontMap() was always calling releaseRemoteResource() even if it is called form remoteResourceCacheWasDestroyed(). This should not happen because the connection with GPUProcess has been closed.
  • Releasing ImageBuffer: This happen when a DisplayList of an ImageBuffer 'A' holds the last reference to another ImageBuffer 'B' and we call clearBackend() for 'A'. clearBackend() will clear the DisplayList of 'A' and causes the deletion of 'B'. In this case we should not call releaseImageBuffer() for 'B' because the GPUPProcess is closed.
  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h: (WebKit::RemoteImageBufferProxy::~RemoteImageBufferProxy): If the ImageBuffer is being released because of the clean-up we do when the GPUProcess is terminated, we should not release the corresponding RemoteImageBuffer since it is already gone.
  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h: (WebKit::RemoteRenderingBackendProxy::isGPUProcessConnectionClosed const): This will return true if we are deleting a RemoteImageBufferProxy through RemoteResourceCacheProxy::remoteResourceCacheWasDestroyed().
  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp: (WebKit::RemoteResourceCacheProxy::releaseAllRemoteFonts): This function will be used to release the remote fonts. It should be called from RemoteResourceCacheProxy::releaseMemory() where we sure the GPUP is alive and all the fonts are cached there.

(WebKit::RemoteResourceCacheProxy::clearFontMap):
The part of releasing the remote fonts was moved from this function to
releaseAllRemoteFonts().

(WebKit::RemoteResourceCacheProxy::remoteResourceCacheWasDestroyed):

  1. Clearing the NativeImages and the Fonts has to come before clearing the backends of the ImageBuffers. The reason is clearBackend() clears the DisplayList which may release the last reference of a NativeImage or Font. We want to detach the NativeImages and the Fonts from the cache before then.
  2. We should have two different loops: one for clearing the backends of the ImageBuffers and another one for recreating these backends. The reason for this is clearBackend() clears the DisplayList which may release the last reference of a another source RemoteImageBufferProxy used by a DrawImageBuffer item for example.

(WebKit::RemoteResourceCacheProxy::releaseMemory):

  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:

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

2:13 PM Changeset in webkit [280986] by Wenson Hsieh
  • 7 edits in trunk

[ iOS Debug] 3 editing/pasteboard/smart-paste-paragraph tests are flaky failing
https://bugs.webkit.org/show_bug.cgi?id=228285
rdar://81118724

Reviewed by Tim Horton and Aditya Keerthi.

Source/WebKit:

Add SPI declarations. See Tools/ChangeLog for more details.

  • Platform/spi/ios/TextInputSPI.h:
  • Platform/spi/ios/UIKitSPI.h:

Tools:

These three editing tests occasionally fail when synthesizing a double-tap gesture in order to select a word in
editable content. This happens because unless UIKit has observed at least one keypress event (e.g. from a
previous editing test), it presents the software keyboard underneath -[UIKeyboardImpl showKeyboardIfNeeded]
when setting the selection via UITextSelectionInteraction. This causes the input view frame to expand from the
collapsed (UCB) height of 44pt to the full software keyboard height, which in turn causes the second touch in
the synthesized double tap gesture to _sometimes_ hit-test to the wrong location, resulting in these test
failures.

To mitigate this, ensure that we have consistent behavior in layout tests when changing the text selection in
editable content by directly setting a TextInput default to make the keyboard behave as if it has previously
seen a keypress via the hardware keyboard.

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues):

LayoutTests:

Remove the flaky test failure expectations.

  • platform/ios-wk2/TestExpectations:
1:49 PM Changeset in webkit [280985] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ MacOS EWS ] inspector/canvas/recording-webgl-snapshots.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=229043

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:45 PM Changeset in webkit [280984] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Update ARM64EHash
https://bugs.webkit.org/show_bug.cgi?id=228962
<rdar://79883337>

Reviewed by Mark Lam.

  • assembler/AssemblerBuffer.h:

(JSC::ARM64EHash::makeDiversifier):
(JSC::ARM64EHash::nextValue):
(JSC::ARM64EHash::bitsForDiversifier):
(JSC::ARM64EHash::currentHash):
(JSC::ARM64EHash::setUpdatedHash):
(JSC::ARM64EHash::ARM64EHash):
(JSC::ARM64EHash::update):
(JSC::ARM64EHash::finalize):
(JSC::AssemblerBuffer::AssemblerBuffer):
(JSC::AssemblerBuffer::putIntegralUnchecked):
(JSC::AssemblerBuffer::hash const):

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::copyCompactAndLinkCode):

1:35 PM Changeset in webkit [280983] by Patrick Angle
  • 2 edits in trunk/Tools

Add myself (Patrick Angle) to watchlist for Inspector code changes
https://bugs.webkit.org/show_bug.cgi?id=229046

Reviewed by Darin Adler.

  • Scripts/webkitpy/common/config/watchlist:
1:28 PM Changeset in webkit [280982] by Alan Coon
  • 1 copy in tags/Safari-612.1.28

Tag Safari-612.1.28.

1:28 PM Changeset in webkit [280981] by Said Abou-Hallawa
  • 5 edits in trunk/Source/WebKit

[GPU Process] REGRESSION: WebContent often crashes when using iCloud photos
https://bugs.webkit.org/show_bug.cgi?id=228969
<rdar://81761078>

Reviewed by Simon Fraser.

Terminating the GPUProcess is very stressful situation which has to be
handled carefully. The side effect of each function which is called through
gpuProcessConnectionDidClose() has to be understood to get the right
sequence of calls. There are problems in releasing all kinds of resources.

  • Releasing NativeImage: Calling clearNativeImageMap() after clearing the

backend of the ImageBuffers was causing a problem. When clearing the
backend of an ImageBuffer, it will clear its DisplayList which may have
the last reference to a NativeImage. The destructor of NativeImage calls
releaseRemoteResource() before it is removed from the the NativeImageMap.
This will send a message to the relaunched GPUP to release a NativeImage
which is not in its cache.

  • Releasing Font: clearFontMap() was always calling releaseRemoteResource()

even if it is called form remoteResourceCacheWasDestroyed(). This should
not happen because the connection with GPUProcess has been closed.

  • Releasing ImageBuffer: This happen when a DisplayList of an ImageBuffer

'A' holds the last reference to another ImageBuffer 'B' and we call
clearBackend() for 'A'. clearBackend() will clear the DisplayList of 'A'
and causes the deletion of 'B'. In this case we should not call
releaseImageBuffer() for 'B' because the GPUPProcess is closed.

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::~RemoteImageBufferProxy):
If the ImageBuffer is being released because of the clean-up we do when
the GPUProcess is terminated, we should not release the corresponding
RemoteImageBuffer since it is already gone.

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:

(WebKit::RemoteRenderingBackendProxy::isGPUProcessConnectionClosed const):
This will return true if we are deleting a RemoteImageBufferProxy through
RemoteResourceCacheProxy::remoteResourceCacheWasDestroyed().

  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:

(WebKit::RemoteResourceCacheProxy::releaseAllRemoteFonts):
This function will be used to release the remote fonts. It should be called
from RemoteResourceCacheProxy::releaseMemory() where we sure the GPUP is
alive and all the fonts are cached there.

(WebKit::RemoteResourceCacheProxy::clearFontMap):
The part of releasing the remote fonts was moved from this function to
releaseAllRemoteFonts().

(WebKit::RemoteResourceCacheProxy::remoteResourceCacheWasDestroyed):

  1. Clearing the NativeImages and the Fonts has to come before clearing

the backends of the ImageBuffers. The reason is clearBackend() clears the
DisplayList which may release the last reference of a NativeImage or Font.
We want to detach the NativeImages and the Fonts from the cache before then.

  1. We should have two different loops: one for clearing the backends of

the ImageBuffers and another one for recreating these backends. The reason
for this is clearBackend() clears the DisplayList which may release the
last reference of a another source RemoteImageBufferProxy used by a
DrawImageBuffer item for example.

(WebKit::RemoteResourceCacheProxy::releaseMemory):

  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:
1:16 PM Changeset in webkit [280980] by weinig@apple.com
  • 12 edits
    4 adds in trunk

Allow testing of the final UIView tree on iOS platforms
https://bugs.webkit.org/show_bug.cgi?id=229016

Reviewed by Tim Horton.

Source/WebKit:

Test: remote-layer-tree/ios/uiview-tree-basic.html

  • UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
  • UIProcess/API/ios/WKWebViewTestingIOS.mm:

(allowListedClassToString):
(dumpUIView):
(-[WKWebView _uiViewTreeAsText]):
Add partner SPI called _uiViewTreeAsText that dumps the WKWebView's
UIView tree as constructed via remote layer creation. It currently
dumps some basic properties of each view and uses an allow list of
class names so changes to implementation details in frameworks below
us, like UIKit, don't cause tests to fail.

Tools:

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.h:

(WTR::UIScriptController::uiViewTreeAsText const):

  • WebKitTestRunner/ios/UIScriptControllerIOS.h:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::uiViewTreeAsText const):
Pipe new _uiViewTreeAsText SPI through to UIScriptController, matching the pattern
established by scrollingTreeAsText.

LayoutTests:

  • remote-layer-tree: Added.
  • remote-layer-tree/ios: Added.
  • remote-layer-tree/ios/uiview-tree-basic-expected.txt: Added.
  • remote-layer-tree/ios/uiview-tree-basic.html: Added.

Add basic test case excercising UIView tree dumping to ensure
it is working properly.

  • resources/ui-helper.js:

(window.UIHelper.getUIViewTree):
Add helper to use get the UIView tree as text.

Ensure these tests are only run on iOS.

1:16 PM Changeset in webkit [280979] by Alan Coon
  • 8 edits in branches/safari-612.1.28-branch/Source

Versioning.

WebKit-7612.1.28

1:00 PM Changeset in webkit [280978] by Alan Coon
  • 1 copy in branches/safari-612.1.28-branch

New branch.

12:25 PM Changeset in webkit [280977] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Migrate Performance::resourceTimingBufferFullTimerFired to HTML event loop
https://bugs.webkit.org/show_bug.cgi?id=229044

Patch by Alex Christensen <achristensen@webkit.org> on 2021-08-12
Reviewed by Geoff Garen.

Covered by existing tests.
There should be no change in behavior.

  • page/Performance.cpp:

(WebCore::Performance::Performance):
(WebCore::Performance::addResourceTiming):
(WebCore::Performance::dispatchResourceTimingBufferFullEvent):
(WebCore::Performance::contextDestroyed): Deleted.
(WebCore::Performance::resourceTimingBufferFullTimerFired): Deleted.

  • page/Performance.h:
12:16 PM Changeset in webkit [280976] by jer.noble@apple.com
  • 5 edits in trunk/Source

[macOS] Enter fullscreen animation interferes with auto-hiding menu bar
https://bugs.webkit.org/show_bug.cgi?id=229039
<rdar://79150656>

Reviewed by Eric Carlson.

Source/WebCore:

Add a new utility method to calculate the available screen rect taking menu bar
hiding into account.

  • platform/PlatformScreen.h:
  • platform/mac/PlatformScreenMac.mm:

(WebCore::screenRectAvoidingMenuBar):

Source/WebKit:

When entering fullscreen, if a user has unchecked the "auto-hide menu bar in fullscreen"
setting, the fullscreen animation will enter to the full screen frame, then snap down once
the animation completes to reveal the menu bar. Instead, use a WebCore utility method to
calculate the screen's frame taking that menu bar into account, and use it for the initial
enter fullscreen animation.

  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController enterFullScreen:]):

12:13 PM Changeset in webkit [280975] by Alan Coon
  • 8 edits in branches/safari-612.1.27.0-branch/Source

Cherry-pick r280776. rdar://problem/81861548

[Cocoa|GPU] platformLayer() not always added to remotedly hosted context; black video while playing
https://bugs.webkit.org/show_bug.cgi?id=228873
<rdar://81271107>

Reviewed by Eric Carlson.

Source/WebCore:

Coalesce calls to renderingModeChanged() by setting a flag to call renderingModeChanged() in
the next run loop, and call into this coalescing method, setNeedsRenderingModeChanged(),
whenever the MediaPlayerPrivateAVFoundation subclasses create or destroy a video layer
or software painting context. This ensures that the MediaPlayerClient is always notified
when the rendering mode changes, regardless of why that change occurred.

Drive-by fix: replace the call in createVideoLayer() to "callOnMainThread()"
with "ensureOnMainThread()". The call to "callOnMainThread()" was added to avoid a
deadlock in WebKitLegacy, and "ensureOnMainThread()" has the correct behavior there, but
will be synchronous in WebKit.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: (WebCore::MediaPlayerPrivateAVFoundation::setUpVideoRendering): (WebCore::MediaPlayerPrivateAVFoundation::setNeedsRenderingModeChanged): (WebCore::MediaPlayerPrivateAVFoundation::renderingModeChanged): (WebCore::MediaPlayerPrivateAVFoundation::prepareForRendering):
  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp: (WebCore::MediaPlayerPrivateAVFoundationCF::destroyVideoLayer): (WebCore::AVFWrapper::createAVCFVideoLayer): (WebCore::AVFWrapper::createImageGenerator): (WebCore::AVFWrapper::destroyImageGenerator):
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer): (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer): (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer): (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput): (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoOutput):

Source/WebKit:

Currently, the RemoteMediaPlayerProxy will insert its MediaPlayer's platformLayer() into the
remotely hosted context when it receives a "firstVideoFrameAvailable()" notification.
However this is problematic for two reasons: AVPlayerLayer may not become "ready for
playback" when it is not in an active CALayer heirarchy, and for
MediaPlayerPrivateAVFoundation, firstVideoFrameAvailable() is only fired during
updateStates(), which is not guaranteed to occur unless another state change occurs.

Instead, reparent the MediaPlayer's platformLayer() when we receive a
mediaPlayerRenderingModeChanged() notification, which notifies the client whenever a
platformLayer() is created or destroyed.

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:
  • GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm: (WebKit::RemoteMediaPlayerProxy::mediaPlayerFirstVideoFrameAvailable): (WebKit::RemoteMediaPlayerProxy::mediaPlayerRenderingModeChanged):

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

12:07 PM Changeset in webkit [280974] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r271348): Web Inspector: Table headers have vertical scrollbar
https://bugs.webkit.org/show_bug.cgi?id=228671
<rdar://problem/81638278>

Reviewed by Devin Rousso.

  • UserInterface/Views/Table.css:

(.table > .header):
Set overflow hidden for the y axis, not just x axis.

11:58 AM Changeset in webkit [280973] by Devin Rousso
  • 6 edits
    1 add in trunk

Fix some NSAttributedString inconsistencies between WK1 and WK2
https://bugs.webkit.org/show_bug.cgi?id=229013
<rdar://problem/81215696>

Reviewed by Timothy Hatcher.

Source/WebCore:

NSAttributedString now uses WK2, which has caused us to discover some inconsistencies (and bugs).

Tests: NSAttributedStringWebKitAdditions.DefaultFontSize

NSAttributedStringWebKitAdditions.MultipleParagraphs

  • editing/cocoa/HTMLConverter.mm:

(HTMLConverter::_blockLevelElementForNode):
Check the given node before looking at the parent as it could already be a block. This
allows for sequental <p> to each have their own positioning instead of only the first one.
(HTMLConverter::computedAttributesForElement):
Fix typo that used margin-right instead of margin-bottom when setting paragraphSpacing.

Source/WebKit:

NSAttributedString now uses WK2, which has caused us to discover some inconsistencies (and bugs).

  • UIProcess/API/Cocoa/NSAttributedString.mm:

(+[_WKAttributedStringWebViewCache configuration]):
Change the default font size to 12 to match WK1.

Tools:

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

(TEST.NSAttributedStringWebKitAdditions.DefaultFontSize):
(TEST.NSAttributedStringWebKitAdditions.MultipleParagraphs):

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
10:13 AM Changeset in webkit [280972] by youenn@apple.com
  • 11 edits in trunk

Adopt span in RTCRtpSFrameTransform
https://bugs.webkit.org/show_bug.cgi?id=229029

Reviewed by Eric Carlson.

Source/WebCore:

Transition to Span for improved readability, no change of behavior.

  • Modules/mediastream/RTCEncodedFrame.cpp:

(WebCore::RTCEncodedFrame::data const):

  • Modules/mediastream/RTCRtpSFrameTransform.cpp:

(WebCore::processFrame):
(WebCore::RTCRtpSFrameTransform::initializeTransformer):
(WebCore::transformFrame):
(WebCore::RTCRtpSFrameTransform::createStreams):

  • Modules/mediastream/RTCRtpSFrameTransformer.cpp:

(WebCore::RTCRtpSFrameTransformer::decryptFrame):
(WebCore::RTCRtpSFrameTransformer::encryptFrame):
(WebCore::RTCRtpSFrameTransformer::transform):

  • Modules/mediastream/RTCRtpSFrameTransformer.h:
  • Modules/mediastream/RTCRtpScriptTransformer.cpp:

(WebCore::RTCRtpScriptTransformer::writable):

  • Modules/mediastream/RTCRtpTransformableFrame.h:

(): Deleted.

  • Modules/mediastream/libwebrtc/LibWebRTCRtpTransformableFrame.cpp:

(WebCore::LibWebRTCRtpTransformableFrame::data const):
(WebCore::LibWebRTCRtpTransformableFrame::setData):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpTransformableFrame.h:

Tools:

  • TestWebKitAPI/Tests/WebCore/RTCRtpSFrameTransformerTests.cpp:

(TestWebKitAPI::TEST):

9:26 AM Changeset in webkit [280971] by Alan Coon
  • 3 edits
    2 adds in branches/safari-612.1.27.0-branch

Cherry-pick r280931. rdar://problem/81852494

REGRESSION (r278392) performance.measure should never throw an InvalidAccessError for fetchStart
https://bugs.webkit.org/show_bug.cgi?id=229008
<rdar://79960877>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-08-11
Reviewed by Chris Dumez.

Source/WebCore:

Test: http/tests/performance/performance-measure-fetch-start.html

PerformanceTiming::fetchStart is returning 0 when we get a main resource from the cache sometimes.
This is causing PerformanceUserTiming::convertMarkToTimestamp to throw an error, which it should.
Like PerformanceResourceTiming::fetchStart we need to fall back to ResourceLoadTiming::startTime
if the NetworkLoadMetrics doesn't have any useful data for us.

  • page/PerformanceTiming.cpp: (WebCore::PerformanceTiming::fetchStart const):

LayoutTests:

  • http/tests/performance/performance-measure-fetch-start-expected.txt: Added.
  • http/tests/performance/performance-measure-fetch-start.html: Added.

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

9:20 AM Changeset in webkit [280970] by Alan Coon
  • 8 edits in branches/safari-612.1.27.0-branch/Source

Versioning.

WebKit-7612.1.27.0.21

8:48 AM Changeset in webkit [280969] by Chris Dumez
  • 2 edits in trunk/Tools

Unreviewed API test build fix with recent MacOS SDK.

  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:

(verifyCertificateAndPublicKey):

8:47 AM Changeset in webkit [280968] by commit-queue@webkit.org
  • 26 edits
    16 moves in trunk/Source/WebCore

Removal of "TypedOM" prefix for CSSOM Object names
https://bugs.webkit.org/show_bug.cgi?id=229028

Patch by Johnson Zhou <qiaosong_zhou@apple.com> on 2021-08-12
Reviewed by Alex Christensen.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSCSSStyleValueCustom.cpp: Renamed from Source/WebCore/bindings/js/JSTypedOMCSSStyleValueCustom.cpp.

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • css/typedom/CSSNumericValue.cpp: Renamed from Source/WebCore/css/typedom/TypedOMCSSUnitValue.cpp.
  • css/typedom/CSSNumericValue.h: Renamed from Source/WebCore/css/typedom/TypedOMCSSNumericValue.h.
  • css/typedom/CSSNumericValue.idl: Renamed from Source/WebCore/css/typedom/TypedOMCSSNumericValue.idl.
  • css/typedom/CSSStyleImageValue.cpp: Renamed from Source/WebCore/css/typedom/TypedOMCSSImageValue.cpp.

(WebCore::CSSStyleImageValue::CSSStyleImageValue):
(WebCore::CSSStyleImageValue::document const):

  • css/typedom/CSSStyleImageValue.h: Renamed from Source/WebCore/css/typedom/TypedOMCSSImageValue.h.
  • css/typedom/CSSStyleImageValue.idl: Renamed from Source/WebCore/css/typedom/TypedOMCSSImageValue.idl.
  • css/typedom/CSSStyleValue.cpp: Renamed from Source/WebCore/css/typedom/TypedOMCSSStyleValue.cpp.
  • css/typedom/CSSStyleValue.h: Renamed from Source/WebCore/css/typedom/TypedOMCSSStyleValue.h.
  • css/typedom/CSSStyleValue.idl: Renamed from Source/WebCore/css/typedom/TypedOMCSSStyleValue.idl.
  • css/typedom/CSSUnitValue.cpp: Renamed from Source/WebCore/css/typedom/TypedOMCSSNumericValue.cpp.
  • css/typedom/CSSUnitValue.h: Renamed from Source/WebCore/css/typedom/TypedOMCSSUnitValue.h.
  • css/typedom/CSSUnitValue.idl: Renamed from Source/WebCore/css/typedom/TypedOMCSSUnitValue.idl.
  • css/typedom/CSSUnparsedValue.cpp: Renamed from Source/WebCore/css/typedom/TypedOMCSSUnparsedValue.cpp.
  • css/typedom/CSSUnparsedValue.h: Renamed from Source/WebCore/css/typedom/TypedOMCSSUnparsedValue.h.
  • css/typedom/CSSUnparsedValue.idl: Renamed from Source/WebCore/css/typedom/TypedOMCSSUnparsedValue.idl.
  • css/typedom/StylePropertyMapReadOnly.cpp:

(WebCore::StylePropertyMapReadOnly::reifyValue):
(WebCore::StylePropertyMapReadOnly::customPropertyValueOrDefault):

  • css/typedom/StylePropertyMapReadOnly.h:
  • css/typedom/StylePropertyMapReadOnly.idl:
  • dom/StyledElement.cpp:
  • html/CustomPaintImage.cpp:

(WebCore::extractComputedProperty):
(WebCore::CustomPaintImage::doCustomPaint):

  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::createPromise):

  • html/ImageBitmap.h:
  • html/canvas/CanvasDrawImage.idl:
  • html/canvas/CanvasFillStrokeStyles.idl:
  • html/canvas/CanvasRenderingContext.cpp:

(WebCore::CanvasRenderingContext::checkOrigin):

  • html/canvas/CanvasRenderingContext.h:
  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::size):
(WebCore::CanvasRenderingContext2DBase::drawImage):
(WebCore::CanvasRenderingContext2DBase::createPattern):

  • html/canvas/CanvasRenderingContext2DBase.h:
  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::processArgument):
(WebCore::InspectorCanvas::indexForData):

  • inspector/InspectorCanvas.h:
  • inspector/InspectorCanvasCallTracer.cpp:
  • inspector/InspectorCanvasCallTracer.h:
  • inspector/agents/InspectorCanvasAgent.cpp:
  • page/WindowOrWorkerGlobalScope.idl:
8:23 AM Changeset in webkit [280967] by Jonathan Bedard
  • 2 edits in trunk/Tools

[check-github-mirror-integrity] Differentiate between slow sync and collapsed commits
https://bugs.webkit.org/show_bug.cgi?id=229004
<rdar://problem/81795644>

Reviewed by Aakash Jain.

  • Scripts/check-github-mirror-integrity: Use commit timestamps to differentiate between a slow sync between svn.webkit.org

and GitHub and git-svn combining commits

6:53 AM Changeset in webkit [280966] by Carlos Garcia Campos
  • 4 edits
    1 delete in trunk/Tools

[GTK] Simplify TestWebKitAccessibility
https://bugs.webkit.org/show_bug.cgi?id=229032

Reviewed by Michael Catanzaro.

We don't really need to have a different process to test a11y. We can remove AccessibilityTestServer and use the
same test executable. That way we don't need to spawn a process and use DBus for the communication.

  • TestWebKitAPI/Tests/WebKitGtk/AccessibilityTestServer.cpp: Removed.
  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(AccessibilityTest::findTestApplication): Find the accessible application corresponding to the test executable.
(AccessibilityTest::waitUntilChildrenRemoved): Use the WebViewTest main loop.
(testAtspiBasicHierarchy): Use WebViewTest::loadHtml.

  • TestWebKitAPI/glib/PlatformGTK.cmake:
  • TestWebKitAPI/glib/WebKitGLib/TestMain.cpp:

(main): Set the program name to the executable name. It helps to a11y test to find the accessible app.

6:52 AM Changeset in webkit [280965] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GTK] run-gtk-tests always fails to start accessibility daemons
https://bugs.webkit.org/show_bug.cgi?id=229031

Reviewed by Michael Catanzaro.

This is because it uses exec_prefix variable from atspi2 pkg-config file to try to find the executables, but
atspi2 pkg-config file doesn't have a exec_prefix variable anymore. It was always set to $prefix, so we can just
use prefix variable instead.

  • Scripts/run-gtk-tests:

(GtkTestRunner._lookup_atspi2_binary):

6:51 AM Changeset in webkit [280964] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[ATK] Critical warnings on children-changed::add signal emission
https://bugs.webkit.org/show_bug.cgi?id=229030

Reviewed by Michael Catanzaro.

Implement AtkObjectClass::ref_state_set.

  • WebProcess/WebPage/atk/WebKitWebPageAccessibilityObject.cpp:

(webkitWebPageAccessibilityObjectRefStateSet): Return our child state set.
(webkit_web_page_accessibility_object_class_init): Add an implementation for AtkObjectClass::ref_state_set.

6:35 AM Changeset in webkit [280963] by commit-queue@webkit.org
  • 4 edits in trunk

webgl/1.0.x/conformance/textures/misc/texture-corner-case-videos.html fails on Cocoa
https://bugs.webkit.org/show_bug.cgi?id=228821
<rdar://problem/81562236>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-08-12
Reviewed by Kenneth Russell.

When uploading the WebGL texture content from videos, use the video
visible data size instead of video element size. The video data can
be scaled with its filters, but we should upload only the original
pixels.

The GPU codepath already did this, but CPU codepath did not.
This change fixes the CPU codepath.

Fixes webgl/1.0.x/conformance/textures/misc/texture-corner-case-videos.html
webgl/2.0.y/conformance/textures/misc/texture-corner-case-videos.html

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::texImageSourceHelper):
(WebCore::WebGLRenderingContextBase::videoFrameToImage):
(WebCore::WebGLRenderingContextBase::LRUImageBufferCache::imageBuffer):

  • html/canvas/WebGLRenderingContextBase.h:
6:01 AM Changeset in webkit [280962] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/ANGLE

ANGLE Cocoa compiles contents of ContextEAGL on mac
https://bugs.webkit.org/show_bug.cgi?id=228987

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-08-12
Reviewed by Kenneth Russell.

Add include guards that are consistent with other EAGL files.

  • src/libANGLE/renderer/gl/eagl/ContextEAGL.cpp:
4:43 AM Changeset in webkit [280961] by youenn@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

REGRESSION (r280726): [ Big Sur wk1 ] 25 imported/w3c/web-platform-tests/fetch/ failing
https://bugs.webkit.org/show_bug.cgi?id=228926
<rdar://problem/81715332>

Reviewed by Eric Carlson.

isFeatureFlagEnabled is called when creating/initializing WebPreferences.
It used to check for WebView, which triggers the execution of WebView initialize method
while DumpRenderTree is in the middle of creating its testing setup, including its storage testing sessions.
Instead, check for WebResource to remove this side effect and get back to past DumpRenderTree initialization.

  • WebView/WebPreferencesDefaultValues.mm:

(WebKit::isFeatureFlagEnabled):

4:27 AM Changeset in webkit [280960] by Martin Robinson
  • 29 edits
    14 copies
    95 moves
    103 adds
    27 deletes in trunk/LayoutTests

Update import of css/css-position from WPT
https://bugs.webkit.org/show_bug.cgi?id=228988

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/css/css-position/crashtests/position-absolute-crash-014.html: Added.
  • web-platform-tests/css/css-position/crashtests/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-position/resources/w3c-import.log.
  • web-platform-tests/css/css-position/fixed-z-index-blend-expected.html:
  • web-platform-tests/css/css-position/fixed-z-index-blend.html:
  • web-platform-tests/css/css-position/invalidate-opacity-negative-z-index-expected.html: Added.
  • web-platform-tests/css/css-position/invalidate-opacity-negative-z-index.html: Added.
  • web-platform-tests/css/css-position/multicol/static-position/vlr-ltr-ltr-in-multicol-expected.html: Added.
  • web-platform-tests/css/css-position/multicol/static-position/vlr-ltr-ltr-in-multicol.html: Added.
  • web-platform-tests/css/css-position/multicol/static-position/vlr-ltr-rtl-in-multicol.tentative-expected.html: Added.
  • web-platform-tests/css/css-position/multicol/static-position/vlr-ltr-rtl-in-multicol.tentative.html: Added.
  • web-platform-tests/css/css-position/multicol/static-position/vlr-rtl-ltr-in-multicol.tentative-expected.html: Added.
  • web-platform-tests/css/css-position/multicol/static-position/vlr-rtl-ltr-in-multicol.tentative.html: Added.
  • web-platform-tests/css/css-position/multicol/static-position/vlr-rtl-rtl-in-multicol-expected.html: Added.
  • web-platform-tests/css/css-position/multicol/static-position/vlr-rtl-rtl-in-multicol.html: Added.
  • web-platform-tests/css/css-position/multicol/static-position/vrl-ltr-ltr-in-multicol-expected.html: Added.
  • web-platform-tests/css/css-position/multicol/static-position/vrl-ltr-ltr-in-multicol.html: Added.
  • web-platform-tests/css/css-position/multicol/static-position/vrl-ltr-rtl-in-multicol.tentative-expected.html: Added.
  • web-platform-tests/css/css-position/multicol/static-position/vrl-ltr-rtl-in-multicol.tentative.html: Added.
  • web-platform-tests/css/css-position/multicol/static-position/vrl-rtl-ltr-in-multicol.tentative-expected.html: Added.
  • web-platform-tests/css/css-position/multicol/static-position/vrl-rtl-ltr-in-multicol.tentative.html: Added.
  • web-platform-tests/css/css-position/multicol/static-position/vrl-rtl-rtl-in-multicol-expected.html: Added.
  • web-platform-tests/css/css-position/multicol/static-position/vrl-rtl-rtl-in-multicol.html: Added.
  • web-platform-tests/css/css-position/multicol/static-position/w3c-import.log: Added.
  • web-platform-tests/css/css-position/multicol/vlr-ltr-ltr-in-multicols-expected.html: Added.
  • web-platform-tests/css/css-position/multicol/vlr-ltr-ltr-in-multicols.html: Added.
  • web-platform-tests/css/css-position/multicol/vlr-ltr-rtl-in-multicols.tentative-expected.html: Added.
  • web-platform-tests/css/css-position/multicol/vlr-ltr-rtl-in-multicols.tentative.html: Added.
  • web-platform-tests/css/css-position/multicol/vlr-rtl-ltr-in-multicols.tentative-expected.html: Added.
  • web-platform-tests/css/css-position/multicol/vlr-rtl-ltr-in-multicols.tentative.html: Added.
  • web-platform-tests/css/css-position/multicol/vlr-rtl-rtl-in-multicols-expected.html: Added.
  • web-platform-tests/css/css-position/multicol/vlr-rtl-rtl-in-multicols.html: Added.
  • web-platform-tests/css/css-position/multicol/vrl-ltr-ltr-in-multicols-expected.html: Added.
  • web-platform-tests/css/css-position/multicol/vrl-ltr-ltr-in-multicols.html: Added.
  • web-platform-tests/css/css-position/multicol/vrl-ltr-rtl-in-multicols.tentative-expected.html: Added.
  • web-platform-tests/css/css-position/multicol/vrl-ltr-rtl-in-multicols.tentative.html: Added.
  • web-platform-tests/css/css-position/multicol/vrl-rtl-ltr-in-multicols.tentative-expected.html: Added.
  • web-platform-tests/css/css-position/multicol/vrl-rtl-ltr-in-multicols.tentative.html: Added.
  • web-platform-tests/css/css-position/multicol/vrl-rtl-rtl-in-multicols-expected.html: Added.
  • web-platform-tests/css/css-position/multicol/vrl-rtl-rtl-in-multicols.html: Added.
  • web-platform-tests/css/css-position/multicol/w3c-import.log: Added.
  • web-platform-tests/css/css-position/parsing/inset-after-computed-expected.txt: Removed.
  • web-platform-tests/css/css-position/parsing/inset-after-computed.html: Removed.
  • web-platform-tests/css/css-position/parsing/inset-after-invalid-expected.txt: Removed.
  • web-platform-tests/css/css-position/parsing/inset-after-invalid.html: Removed.
  • web-platform-tests/css/css-position/parsing/inset-after-valid-expected.txt: Removed.
  • web-platform-tests/css/css-position/parsing/inset-after-valid.html: Removed.
  • web-platform-tests/css/css-position/parsing/inset-before-computed-expected.txt: Removed.
  • web-platform-tests/css/css-position/parsing/inset-before-computed.html: Removed.
  • web-platform-tests/css/css-position/parsing/inset-before-invalid-expected.txt: Removed.
  • web-platform-tests/css/css-position/parsing/inset-before-invalid.html: Removed.
  • web-platform-tests/css/css-position/parsing/inset-before-valid-expected.txt: Removed.
  • web-platform-tests/css/css-position/parsing/inset-before-valid.html: Removed.
  • web-platform-tests/css/css-position/parsing/inset-computed-expected.txt: Added.
  • web-platform-tests/css/css-position/parsing/inset-computed.html: Added.
  • web-platform-tests/css/css-position/parsing/inset-end-computed-expected.txt: Removed.
  • web-platform-tests/css/css-position/parsing/inset-end-computed.html: Removed.
  • web-platform-tests/css/css-position/parsing/inset-end-invalid-expected.txt: Removed.
  • web-platform-tests/css/css-position/parsing/inset-end-invalid.html: Removed.
  • web-platform-tests/css/css-position/parsing/inset-end-valid-expected.txt: Removed.
  • web-platform-tests/css/css-position/parsing/inset-end-valid.html: Removed.
  • web-platform-tests/css/css-position/parsing/inset-invalid-expected.txt: Added.
  • web-platform-tests/css/css-position/parsing/inset-invalid.html: Added.
  • web-platform-tests/css/css-position/parsing/inset-start-computed-expected.txt: Removed.
  • web-platform-tests/css/css-position/parsing/inset-start-computed.html: Removed.
  • web-platform-tests/css/css-position/parsing/inset-start-invalid-expected.txt: Removed.
  • web-platform-tests/css/css-position/parsing/inset-start-invalid.html: Removed.
  • web-platform-tests/css/css-position/parsing/inset-start-valid-expected.txt: Removed.
  • web-platform-tests/css/css-position/parsing/inset-start-valid.html: Removed.
  • web-platform-tests/css/css-position/parsing/inset-valid-expected.txt: Added.
  • web-platform-tests/css/css-position/parsing/inset-valid.html: Added.
  • web-platform-tests/css/css-position/parsing/w3c-import.log:
  • web-platform-tests/css/css-position/position-absolute-center-001-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-center-001.tentative-expected.xht.
  • web-platform-tests/css/css-position/position-absolute-center-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-center-001.tentative.html.
  • web-platform-tests/css/css-position/position-absolute-center-002-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-center-002.tentative-expected.xht.
  • web-platform-tests/css/css-position/position-absolute-center-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-center-002.tentative.html.
  • web-platform-tests/css/css-position/position-absolute-dynamic-auto-overflow-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-center-001.tentative-expected.xht.
  • web-platform-tests/css/css-position/position-absolute-dynamic-auto-overflow.html: Added.
  • web-platform-tests/css/css-position/position-absolute-dynamic-list-marker.html:
  • web-platform-tests/css/css-position/position-absolute-fit-content-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-center-001.tentative-expected.xht.
  • web-platform-tests/css/css-position/position-absolute-fit-content.html: Added.
  • web-platform-tests/css/css-position/position-absolute-iframe-print-001.sub-expected.html: Added.
  • web-platform-tests/css/css-position/position-absolute-iframe-print-001.sub.html: Added.
  • web-platform-tests/css/css-position/position-absolute-iframe-print-002.sub-expected.html: Added.
  • web-platform-tests/css/css-position/position-absolute-iframe-print-002.sub.html: Added.
  • web-platform-tests/css/css-position/position-absolute-in-inline-003-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-center-001.tentative-expected.xht.
  • web-platform-tests/css/css-position/position-absolute-in-inline-003.html: Added.
  • web-platform-tests/css/css-position/position-absolute-in-inline-004-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-center-001.tentative-expected.xht.
  • web-platform-tests/css/css-position/position-absolute-in-inline-004.html: Added.
  • web-platform-tests/css/css-position/position-absolute-large-negative-inset-expected.html: Added.
  • web-platform-tests/css/css-position/position-absolute-large-negative-inset.html: Added.
  • web-platform-tests/css/css-position/position-absolute-replaced-intrinsic-size.tentative-expected.html: Added.
  • web-platform-tests/css/css-position/position-absolute-replaced-intrinsic-size.tentative.html: Added.
  • web-platform-tests/css/css-position/position-absolute-replaced-no-intrinsic-size.tentative-expected.html: Added.
  • web-platform-tests/css/css-position/position-absolute-replaced-no-intrinsic-size.tentative.html: Added.
  • web-platform-tests/css/css-position/position-absolute-replaced-with-display-table-expected.html: Added.
  • web-platform-tests/css/css-position/position-absolute-replaced-with-display-table.html: Added.
  • web-platform-tests/css/css-position/position-fixed-overflow-print-expected.html: Added.
  • web-platform-tests/css/css-position/position-fixed-overflow-print.html: Added.
  • web-platform-tests/css/css-position/position-fixed-scroll-nested-fixed-expected.html: Added.
  • web-platform-tests/css/css-position/position-fixed-scroll-nested-fixed.html: Added.
  • web-platform-tests/css/css-position/position-relative-001-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-center-001.tentative-expected.xht.
  • web-platform-tests/css/css-position/position-relative-001.html: Added.
  • web-platform-tests/css/css-position/position-relative-002-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-center-001.tentative-expected.xht.
  • web-platform-tests/css/css-position/position-relative-002.html: Added.
  • web-platform-tests/css/css-position/position-relative-003-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-center-001.tentative-expected.xht.
  • web-platform-tests/css/css-position/position-relative-003.html: Added.
  • web-platform-tests/css/css-position/position-relative-004-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-center-001.tentative-expected.xht.
  • web-platform-tests/css/css-position/position-relative-004.html: Added.
  • web-platform-tests/css/css-position/position-relative-005-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-center-001.tentative-expected.xht.
  • web-platform-tests/css/css-position/position-relative-005.html: Added.
  • web-platform-tests/css/css-position/position-relative-006-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-center-001.tentative-expected.xht.
  • web-platform-tests/css/css-position/position-relative-006.html: Added.
  • web-platform-tests/css/css-position/position-relative-007-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-center-001.tentative-expected.xht.
  • web-platform-tests/css/css-position/position-relative-007.html: Added.
  • web-platform-tests/css/css-position/position-relative-008-expected.html: Added.
  • web-platform-tests/css/css-position/position-relative-008.html: Added.
  • web-platform-tests/css/css-position/position-relative-009-expected.html: Added.
  • web-platform-tests/css/css-position/position-relative-009.html: Added.
  • web-platform-tests/css/css-position/position-relative-010-expected.html: Added.
  • web-platform-tests/css/css-position/position-relative-010.html: Added.
  • web-platform-tests/css/css-position/position-relative-011-expected.html: Added.
  • web-platform-tests/css/css-position/position-relative-011.html: Added.
  • web-platform-tests/css/css-position/position-relative-012-expected.html: Added.
  • web-platform-tests/css/css-position/position-relative-012.html: Added.
  • web-platform-tests/css/css-position/position-relative-013-expected.html: Added.
  • web-platform-tests/css/css-position/position-relative-013.html: Added.
  • web-platform-tests/css/css-position/position-relative-table-tfoot-top-absolute-child.html:
  • web-platform-tests/css/css-position/position-sticky-input-box-gets-focused-after-scroll-expected.txt: Removed.
  • web-platform-tests/css/css-position/position-sticky-offset-overflow-expected.txt: Removed.
  • web-platform-tests/css/css-position/position-sticky-parsing-expected.txt: Removed.
  • web-platform-tests/css/css-position/positon-absolute-scrollable-overflow-001-expected.txt: Added.
  • web-platform-tests/css/css-position/positon-absolute-scrollable-overflow-001.html: Added.
  • web-platform-tests/css/css-position/resources/position-absolute-iframe-child-002.sub.html: Added.
  • web-platform-tests/css/css-position/resources/position-absolute-iframe-child.html: Added.
  • web-platform-tests/css/css-position/resources/w3c-import.log:
  • web-platform-tests/css/css-position/static-position/vlr-ltr-ltr-expected.html:
  • web-platform-tests/css/css-position/static-position/vlr-ltr-ltr.html:
  • web-platform-tests/css/css-position/static-position/vlr-ltr-rtl.tentative-expected.html:
  • web-platform-tests/css/css-position/static-position/vlr-ltr-rtl.tentative.html:
  • web-platform-tests/css/css-position/static-position/vlr-rtl-ltr.tentative-expected.html:
  • web-platform-tests/css/css-position/static-position/vlr-rtl-ltr.tentative.html:
  • web-platform-tests/css/css-position/static-position/vlr-rtl-rtl-expected.html:
  • web-platform-tests/css/css-position/static-position/vlr-rtl-rtl.html:
  • web-platform-tests/css/css-position/static-position/vrl-ltr-ltr-expected.html:
  • web-platform-tests/css/css-position/static-position/vrl-ltr-ltr.html:
  • web-platform-tests/css/css-position/static-position/vrl-ltr-rtl.tentative-expected.html:
  • web-platform-tests/css/css-position/static-position/vrl-ltr-rtl.tentative.html:
  • web-platform-tests/css/css-position/static-position/vrl-rtl-ltr.tentative-expected.html:
  • web-platform-tests/css/css-position/static-position/vrl-rtl-ltr.tentative.html:
  • web-platform-tests/css/css-position/static-position/vrl-rtl-rtl-expected.html:
  • web-platform-tests/css/css-position/static-position/vrl-rtl-rtl.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-bottom-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-bottom-expected.txt.
  • web-platform-tests/css/css-position/sticky/position-sticky-bottom.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-bottom.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-change-top-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-change-top-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-change-top.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-change-top.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-child-multicolumn-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-child-multicolumn-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-child-multicolumn.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-child-multicolumn.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-fixed-ancestor-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-fixed-ancestor-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-fixed-ancestor-iframe-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-fixed-ancestor-iframe-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-fixed-ancestor-iframe.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-fixed-ancestor-iframe.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-fixed-ancestor.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-fixed-ancestor.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-flexbox-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-flexbox-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-flexbox.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-flexbox.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-get-bounding-client-rect-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-get-bounding-client-rect-expected.txt.
  • web-platform-tests/css/css-position/sticky/position-sticky-get-bounding-client-rect.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-get-bounding-client-rect.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-grid-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-grid-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-grid.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-grid.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-hyperlink-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-hyperlink-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-hyperlink.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-hyperlink.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-inflow-position-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-inflow-position-expected.txt.
  • web-platform-tests/css/css-position/sticky/position-sticky-inflow-position.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-inflow-position.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-inline-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-inline-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-inline.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-inline.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-input-box-gets-focused-after-scroll-expected.txt: Added.
  • web-platform-tests/css/css-position/sticky/position-sticky-input-box-gets-focused-after-scroll.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-input-box-gets-focused-after-scroll.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-large-top-2.tentative-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-large-top-2.tentative-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-large-top-2.tentative.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-large-top-2.tentative.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-large-top.tentative-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-large-top.tentative-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-large-top.tentative.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-large-top.tentative.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-left-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-left-expected.txt.
  • web-platform-tests/css/css-position/sticky/position-sticky-left.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-left.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-margins-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-margins-expected.txt.
  • web-platform-tests/css/css-position/sticky/position-sticky-margins.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-margins.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-nested-bottom-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-bottom-expected.txt.
  • web-platform-tests/css/css-position/sticky/position-sticky-nested-bottom.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-bottom.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-nested-inline-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-inline-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-nested-inline.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-inline.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-nested-left-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-left-expected.txt.
  • web-platform-tests/css/css-position/sticky/position-sticky-nested-left.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-left.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-nested-right-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-right-expected.txt.
  • web-platform-tests/css/css-position/sticky/position-sticky-nested-right.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-right.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-nested-table-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-table-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-nested-table.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-table.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-nested-thead-th-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-table-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-nested-thead-th.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-table.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-nested-top-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-top-expected.txt.
  • web-platform-tests/css/css-position/sticky/position-sticky-nested-top.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-top.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-offset-overflow-expected.txt: Added.
  • web-platform-tests/css/css-position/sticky/position-sticky-offset-overflow.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-offset-overflow.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-offset-top-left-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-offset-top-left-expected.txt.
  • web-platform-tests/css/css-position/sticky/position-sticky-offset-top-left.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-offset-top-left.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-overflow-hidden-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-overflow-hidden-expected.txt.
  • web-platform-tests/css/css-position/sticky/position-sticky-overflow-hidden.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-overflow-hidden.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-overflow-padding-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-overflow-padding-expected.txt.
  • web-platform-tests/css/css-position/sticky/position-sticky-overflow-padding.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-overflow-padding.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-parsing-expected.txt: Added.
  • web-platform-tests/css/css-position/sticky/position-sticky-parsing.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-parsing.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-rendering-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-rendering-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-rendering.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-rendering.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-right-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-right-expected.txt.
  • web-platform-tests/css/css-position/sticky/position-sticky-right.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-right.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-root-scroller-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-root-scroller-expected.txt.
  • web-platform-tests/css/css-position/sticky/position-sticky-root-scroller.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-root-scroller.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-scroll-reposition-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-scroll-reposition-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-scroll-reposition.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-scroll-reposition.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-scroll-with-clip-and-abspos-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-scroll-with-clip-and-abspos-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-scroll-with-clip-and-abspos.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-scroll-with-clip-and-abspos.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-scrollIntoView-expected.txt: Added.
  • web-platform-tests/css/css-position/sticky/position-sticky-scrollIntoView.html: Added.
  • web-platform-tests/css/css-position/sticky/position-sticky-scrolled-remove-sibling-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-scrolled-remove-sibling-expected.txt.
  • web-platform-tests/css/css-position/sticky/position-sticky-scrolled-remove-sibling.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-scrolled-remove-sibling.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-stacking-context-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-stacking-context-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-stacking-context.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-stacking-context.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-table-parts-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-parts-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-table-parts.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-parts.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-table-tfoot-bottom-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-tfoot-bottom-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-table-tfoot-bottom.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-tfoot-bottom.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-table-th-bottom-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-th-bottom-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-table-th-bottom.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-th-bottom.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-table-th-left-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-th-left-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-table-th-left.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-th-left.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-table-th-right-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-th-right-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-table-th-right.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-th-right.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-table-th-top-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-th-top-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-table-th-top.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-th-top.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-table-thead-top-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-thead-top-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-table-thead-top.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-thead-top.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-table-tr-bottom-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-tr-bottom-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-table-tr-bottom.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-tr-bottom.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-table-tr-top-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-tr-top-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-table-tr-top.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-tr-top.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-top-and-bottom-expected.txt: Added.
  • web-platform-tests/css/css-position/sticky/position-sticky-top-and-bottom.html: Added.
  • web-platform-tests/css/css-position/sticky/position-sticky-top-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-top-expected.txt.
  • web-platform-tests/css/css-position/sticky/position-sticky-top.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-top.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-transforms-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-transforms-expected.txt.
  • web-platform-tests/css/css-position/sticky/position-sticky-transforms-translate-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-transforms-translate-expected.txt.
  • web-platform-tests/css/css-position/sticky/position-sticky-transforms-translate.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-transforms-translate.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-transforms.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-transforms.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-writing-modes-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-writing-modes-expected.html.
  • web-platform-tests/css/css-position/sticky/position-sticky-writing-modes.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-writing-modes.html.
  • web-platform-tests/css/css-position/sticky/sticky-after-input-expected.txt: Added.
  • web-platform-tests/css/css-position/sticky/sticky-after-input.html: Added.
  • web-platform-tests/css/css-position/sticky/w3c-import.log: Added.
  • web-platform-tests/css/css-position/w3c-import.log:

LayoutTests:

  • TestExpectations: Update test expectations.
  • platform/mac-wk1/TestExpectations: Ditto.
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-position/sticky/position-sticky-scrollIntoView-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-position/sticky/sticky-after-input-expected.txt: Added.
3:16 AM Changeset in webkit [280959] by commit-queue@webkit.org
  • 3 edits in trunk/Source/ThirdParty/ANGLE

ANGLE Cocoa compiles parts of HLSL translator, vulkan translator, libgl api, capture redundantly
https://bugs.webkit.org/show_bug.cgi?id=228986

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-08-12
Reviewed by Kenneth Russell.

Remove following from ANGLE (dynamic) target:

  • HLSL translator and tree ops used only by it
  • Vulkan translator output
  • libgl API validation implementation
  • API trace capture implementation (was only partially compiled)

The features are not part of Cocoa use of ANGLE, and should
not be compiled as such.
Does not affect the binary size more than few kilobytes.

  • ANGLE.xcodeproj/project.pbxproj:
  • Configurations/ANGLE-dynamic.xcconfig:
2:37 AM Changeset in webkit [280958] by youenn@apple.com
  • 18 edits
    2 copies
    4 adds in trunk

Implement SFrameTransform error handling
https://bugs.webkit.org/show_bug.cgi?id=228947

Reviewed by Eric Carlson.

Source/WebCore:

Add support for RTCRtpSFrameTransformErrorEvent.
When RTCRtpSFrameTransformer encounters an issue, dispatch a task to RTCRtpSFrameTransform context and fire a corresponding event.
This follows https://w3c.github.io/webrtc-encoded-transform/#sframe-transform-algorithm, except that:

  • we are not yet exposing some fields in RTCRtpSFrameTransformErrorEvent.
  • we are using errorType instead of type which should be fixed in the spec.

Test: imported/w3c/web-platform-tests/webrtc-encoded-transform/sframe-transform-error.html

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/mediastream/RTCRtpSFrameTransform.cpp:

(WebCore::RTCRtpSFrameTransform::RTCRtpSFrameTransform):
(WebCore::errorTypeFromInformation):
(WebCore::processFrame):
(WebCore::RTCRtpSFrameTransform::hasKey const):
(WebCore::RTCRtpSFrameTransform::initializeTransformer):
(WebCore::transformFrame):
(WebCore::RTCRtpSFrameTransform::createStreams):
(WebCore::RTCRtpSFrameTransform::writable):
(WebCore::RTCRtpSFrameTransform::virtualHasPendingActivity const):

  • Modules/mediastream/RTCRtpSFrameTransform.h:
  • Modules/mediastream/RTCRtpSFrameTransform.idl:
  • Modules/mediastream/RTCRtpSFrameTransformErrorEvent.cpp: Added.

(WebCore::RTCRtpSFrameTransformErrorEvent::create):
(WebCore::RTCRtpSFrameTransformErrorEvent::RTCRtpSFrameTransformErrorEvent):
(WebCore::RTCRtpSFrameTransformErrorEvent::eventInterface const):

  • Modules/mediastream/RTCRtpSFrameTransformErrorEvent.h: Added.
  • Modules/mediastream/RTCRtpSFrameTransformErrorEvent.idl: Added.
  • Modules/mediastream/RTCRtpSFrameTransformer.cpp:

(WebCore::RTCRtpSFrameTransformer::hasKey const):
(WebCore::RTCRtpSFrameTransformer::decryptFrame):
(WebCore::RTCRtpSFrameTransformer::encryptFrame):
(WebCore::RTCRtpSFrameTransformer::transform):

  • Modules/mediastream/RTCRtpSFrameTransformer.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/EventNames.in:
  • dom/EventTargetFactory.in:

Tools:

  • TestWebKitAPI/Tests/WebCore/RTCRtpSFrameTransformerTests.cpp:

(TestWebKitAPI::TEST):

LayoutTests:

  • http/wpt/webrtc/sframe-transform-error-worker.js: Added.

(onrtctransform.async event):

  • http/wpt/webrtc/sframe-transform-error.html: Added.
  • http/wpt/webrtc/sframe-transform-error-expected: Added.

Aug 11, 2021:

9:35 PM Changeset in webkit [280957] by Peng Liu
  • 7 edits in trunk/Source

Function _os_feature_enabled_impl() expects compile-time static strings as arguments
https://bugs.webkit.org/show_bug.cgi?id=229017
<rdar://81813732>

Reviewed by Tim Horton.

There are multiple issues in the current implementation of isFeatureFlagEnabled().

  1. _os_feature_enabled_impl() expects compile-time static strings as arguments.

So we should not use String here.

  1. As Simon Fraser pointed out, String::characters8() is not null terminated.

Source/WebKit:

  • Shared/Cocoa/WebPreferencesDefaultValuesCocoa.mm:

(WebKit::isFeatureFlagEnabled):

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::isFeatureFlagEnabled):

  • Shared/WebPreferencesDefaultValues.h:

Source/WebKitLegacy/mac:

  • WebView/WebPreferencesDefaultValues.h:
  • WebView/WebPreferencesDefaultValues.mm:

(WebKit::isFeatureFlagEnabled):

9:29 PM Changeset in webkit [280956] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Remove optimistic assertion added in r280931
https://bugs.webkit.org/show_bug.cgi?id=229008

  • page/PerformanceTiming.cpp:

(WebCore::PerformanceTiming::fetchStart const):
This assertion is hit in the test fast/dom/Window/property-access-on-cached-window-after-frame-removed.html
when accessing window.performance.fetchStart from a detached window object from a frame that has been removed from the DOM.

8:48 PM Changeset in webkit [280955] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebKit

[Monterey] WebContent process immediately crash when GPU Process is disabled
https://bugs.webkit.org/show_bug.cgi?id=228944
rdar://81727094

Reviewed by Brent Fulgham.

  • WebProcess/com.apple.WebProcess.sb.in: Allow SYS_getpriority syscall.
7:47 PM Changeset in webkit [280954] by Lauro Moura
  • 3 edits in trunk/LayoutTests

[GLIB] Gardening a few failures and passes

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/wpe/TestExpectations:
7:43 PM Changeset in webkit [280953] by Chris Dumez
  • 91 edits
    4 adds
    2 deletes in trunk

Add initial support for Cross-Origin-Embedder-Policy (COEP)
https://bugs.webkit.org/show_bug.cgi?id=228754

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline COEP WPT tests now that we are passing more checks.

  • web-platform-tests/html/cross-origin-embedder-policy/blob.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/coep-frame-javascript.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/coep-on-response-from-service-worker.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-require-corp.tentative.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/cross-origin-isolated-permission.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/data.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/dedicated-worker-cache-storage.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/dedicated-worker.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/header-parsing.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/javascript.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/multi-globals/workers-coep-report.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/no-secure-context-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/none-sw-from-require-corp.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/none.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/reporting-to-endpoint.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-blank-expected.txt: Removed.
  • web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-blank.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-srcdoc-expected.txt: Removed.
  • web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-srcdoc.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/require-corp-load-from-cache-storage.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/require-corp-sw-from-none.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/require-corp-sw-from-require-corp.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/require-corp-sw.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/require-corp.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/sandbox.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/service-worker-cache-storage.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/srcdoc.https-expected.txt:

Source/WebCore:

Add initial support for Cross-Origin-Embedder-Policy (COEP) behind a runtime feature flag, off by default:

The COEP header has the following impacts:

  • When a document with Cross-Origin-Embedder-Policy: require-corp loads an iframe or a worker script, if the network response for that iframe doesn't also contain Cross-Origin-Embedder-Policy: require-corp, then we fail the load.
  • When a document with Cross-Origin-Embedder-Policy: require-corp loads cross-origin subresources, then either CORS must be used or the resource response must be allowed by Cross-Origin-Resource-Policy (CORP) header.

Support is only for WK2 and checks are done in the network process for better security. Support for workers and service
workers (including cache storage) is included.

Most of the Web-Platform-Tests for COEP are passing with this patch. The exceptions are:

  • Some tests relying on Blob are failing. Similarly to COOP, Blobs need to inherit COEP from their creator. This is currently unimplemented as the change will likely be non-trivial. I will follow-up to fix Blob support for both COOP and COEP.
  • Tests in the credentialless/ folder are failing because we do not support Cross-Origin-Embedder-Policy: credentialless. This seems to be a fairly recent extension proposed by Google and it is not part of the HTML specification yet.
  • Some tests expect violation reporting and they are failing and we do not implement reporting yet.

Note that self.crossOriginIsolated still returns false, even if the pages opts into both COOP & COEP, and APIs such
as SharedArrayBuffer still are not permitted to use. In order to support this, we will have to actually implement process
swapping so that we know a process is not actually shared by several origins.

Test: http/wpt/html/cross-origin-embedder-policy/require-corp.https.html

  • Modules/cache/DOMCache.cpp:

(WebCore::DOMCache::queryCache):

  • Modules/cache/DOMCacheEngine.cpp:

(WebCore::DOMCacheEngine::convertToException):

  • Modules/cache/DOMCacheEngine.h:
  • Modules/cache/RetrieveRecordsOptions.h:

(WebCore::RetrieveRecordsOptions::isolatedCopy const):
(WebCore::RetrieveRecordsOptions::encode const):
(WebCore::RetrieveRecordsOptions::decode):

  • dom/Document.cpp:

(WebCore::Document::initSecurityContext):

  • dom/SecurityContext.h:

(WebCore::SecurityContext::crossOriginEmbedderPolicy const):
(WebCore::SecurityContext::setCrossOriginEmbedderPolicy):

  • loader/CrossOriginAccessControl.cpp:

(WebCore::shouldCrossOriginResourcePolicyCancelLoad):
(WebCore::validateCrossOriginResourcePolicy):

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

(WebCore::obtainCrossOriginEmbedderPolicy):
(WebCore::CrossOriginEmbedderPolicy::isolatedCopy const):

  • loader/CrossOriginEmbedderPolicy.h:

(WebCore::CrossOriginEmbedderPolicy::encode const):
(WebCore::CrossOriginEmbedderPolicy::decode):

  • loader/CrossOriginOpenerPolicy.cpp:

(WebCore::obtainCrossOriginOpenerPolicy):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::loadResourceSynchronously):
(WebCore::DocumentThreadableLoader::create):
(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
(WebCore::DocumentThreadableLoader::crossOriginEmbedderPolicy const):

  • loader/DocumentThreadableLoader.h:
  • loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::begin):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::didBeginDocument):

  • loader/ResourceLoaderOptions.h:
  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):

  • page/SecurityOrigin.h:
  • platform/network/HTTPParsers.cpp:

(WebCore::parseCrossOriginResourcePolicyHeader):

  • platform/network/HTTPParsers.h:
  • workers/Worker.cpp:

(WebCore::Worker::notifyFinished):

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::WorkerGlobalScope):

  • workers/WorkerGlobalScopeProxy.h:
  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):

  • workers/WorkerMessagingProxy.h:
  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadSynchronously):
(WebCore::WorkerScriptLoader::loadAsynchronously):
(WebCore::WorkerScriptLoader::didReceiveResponse):

  • workers/WorkerScriptLoader.h:

(WebCore::WorkerScriptLoader::crossOriginEmbedderPolicy const):

  • workers/WorkerThread.cpp:

(WebCore::WorkerParameters::isolatedCopy const):

  • workers/WorkerThread.h:
  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::jobFinishedLoadingScript):

  • workers/service/ServiceWorkerContainer.h:
  • workers/service/ServiceWorkerContextData.cpp:

(WebCore::ServiceWorkerContextData::isolatedCopy const):

  • workers/service/ServiceWorkerContextData.h:

(WebCore::ServiceWorkerContextData::encode const):
(WebCore::ServiceWorkerContextData::decode):

  • workers/service/ServiceWorkerFetchResult.h:

(WebCore::ServiceWorkerFetchResult::isolatedCopy const):
(WebCore::serviceWorkerFetchError):
(WebCore::ServiceWorkerFetchResult::encode const):
(WebCore::ServiceWorkerFetchResult::decode):

  • workers/service/ServiceWorkerJob.cpp:

(WebCore::ServiceWorkerJob::notifyFinished):

  • workers/service/ServiceWorkerJobClient.h:
  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::ServiceWorkerThread):

  • workers/service/server/RegistrationDatabase.cpp:

(WebCore::RegistrationDatabase::doPushChanges):
(WebCore::RegistrationDatabase::importRecords):

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::addRegistrationFromStore):
(WebCore::SWServer::updateWorker):
(WebCore::SWServer::installContextData):

  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::scriptFetchFinished):

  • workers/service/server/SWServerWorker.cpp:

(WebCore::SWServerWorker::SWServerWorker):
(WebCore::SWServerWorker::contextData const):

  • workers/service/server/SWServerWorker.h:

Source/WebKit:

As mentioned in the WebCore changelog, we do all the COEP checks in the network process
instead of WebCore for added security. As a result, we need to pass more information
to the network process when doing loads in order to do those checks. The checks are done
in NetworkResourceLoader for navigations & worker script loads (similarly to CSP,
X-FrameOptions) and in NetworkLoadChecker for CORP checks of subresource loads (similarly
to CORS checks).

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::NetworkLoadChecker):
(WebKit::NetworkLoadChecker::validateResponse):

  • NetworkProcess/NetworkLoadChecker.h:

(WebKit::NetworkLoadChecker::setParentCrossOriginEmbedderPolicy):
(WebKit::NetworkLoadChecker::setCrossOriginEmbedderPolicy):

  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::parentOrigin const):
(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):

  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::shouldInterruptLoadForCSPFrameAncestorsOrXFrameOptions):
(WebKit::NetworkResourceLoader::shouldInterruptNavigationForCrossOriginEmbedderPolicy):
(WebKit::NetworkResourceLoader::shouldInterruptWorkerLoadForCrossOriginEmbedderPolicy):
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::willSendRedirectedRequest):

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/PingLoad.cpp:

(WebKit::PingLoad::PingLoad):
(WebKit::PingLoad::initialize):

  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:

(WebKit::ServiceWorkerFetchTask::didReceiveResponse):

  • NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp:

(WebKit::ServiceWorkerSoftUpdateLoader::processResponse):
(WebKit::ServiceWorkerSoftUpdateLoader::didFinishLoading):

  • NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.h:
  • NetworkProcess/cache/CacheStorageEngineCache.cpp:

(WebKit::CacheStorage::Cache::retrieveRecords):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::addParametersShared):
(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):

Source/WTF:

Add experimental feature flag for Cross-Origin-Embedder-Policy (COEP), off by default.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

Update test expectations now that we support COEP on WK2.

  • TestExpectations:
  • http/wpt/html/cross-origin-embedder-policy/require-corp.https-expected.txt: Added.
  • http/wpt/html/cross-origin-embedder-policy/require-corp.https.html: Added.
  • http/wpt/html/cross-origin-embedder-policy/require-corp.https.html.headers: Added.
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
7:08 PM Changeset in webkit [280952] by Darin Adler
  • 4 edits in trunk/Source

Add deduction guide to RetainPtr, use constexpr a bit more, and streamline the implementation
https://bugs.webkit.org/show_bug.cgi?id=228852

Reviewed by Sam Weinig.

Source/WebKit:

  • UIProcess/mac/WKTextFinderClient.mm:

(-[WKTextFinderClient findMatchesForString:relativeToMatch:findOptions:maxResults:resultCollector:]):
Test the deduction guide by writing RetainPtr instead of RetainPtr<NSProgress>.

Source/WTF:

  • wtf/RetainPtr.h: Sort includes. Made many functions constexpr including the move

constructors and adoptCF. Use using instead of typedef in most places. Use
remove_pointer_t, conditional_t, is_convertible_v, is_same_v, and other such templates
to simplify expressions. Initialize the m_ptr data member and use the default constructor.
Removed unneeded StorageType synonym for CFTypeRef. Move some inline function bodies out
of the class template definition. Use if constexpr to get rid of the need for the overloaded
autoreleaseHelper function. Added a deduction guide so we can use expressions with the
type RetainPtr on the left side, and an Objective-C pointer or CFTypeRef on the right side,
and have the appropriate RetainPtr type deduced.

6:11 PM Changeset in webkit [280951] by Peng Liu
  • 5 edits in trunk

[ BigSur Debug ] TestWebKitAPI.GPUProcess.CrashWhilePlayingAudioViaCreateMediaElementSource is flaky, hitting ASSERTION FAILED: !isInRoutingArbitrationForToken(token)
https://bugs.webkit.org/show_bug.cgi?id=227728
<rdar://problem/80237464>

Reviewed by Jer Noble.

Source/WebKit:

After the GPU process crashes, the UI process will clean up the
SharedRoutingArbitrator, while a WebContent process might be resuming
the media playback and setup AudioSessionRoutingArbitrator.
There is a race condition here. If the WebContent process runs faster,
SharedRoutingArbitrator in the UI process will try to begin a duplicated
routing arbitration and lead to an assertion failure.

No new tests. Fixed following two API test failures:

  • TestWebKitAPI.WebKit2.CrashGPUProcessWhileCapturing
  • TestWebKitAPI.GPUProcess.CrashWhilePlayingAudioViaCreateMediaElementSource
  • UIProcess/Media/cocoa/AudioSessionRoutingArbitratorProxyCocoa.mm:

(WebKit::AudioSessionRoutingArbitratorProxy::processDidTerminate):

  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::didClose):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:

(TEST):

6:00 PM Changeset in webkit [280950] by Alan Coon
  • 1 copy in tags/Safari-612.1.27.0.7

Tag Safari-612.1.27.0.7.

5:58 PM Changeset in webkit [280949] by Alan Coon
  • 1 copy in tags/Safari-612.1.26.1.5

Tag Safari-612.1.26.1.5.

5:46 PM Changeset in webkit [280948] by Jean-Yves Avenard
  • 4 edits
    3 adds in trunk

Audio buffer may contain more frames than decoded.
https://bugs.webkit.org/show_bug.cgi?id=228732
rdar://problem/81447014

Reviewed by Eric Carlson.

Source/WebCore:

It is necessary to call repeatedly ExtAudioFileRead until it explicitly indicates that
it reached EOF.
Test: webaudio/decode-audio-data-wav.html.

  • platform/audio/cocoa/AudioFileReaderCocoa.cpp:

(WebCore::AudioFileReader::createBus): Ensure that all frames have been decoded and
trim length to the actual number of frames returned.
This was already done for the webm case.

LayoutTests:

  • platform/mac/TestExpectations:
  • webaudio/decode-audio-data-wav-expected.txt: Added.
  • webaudio/decode-audio-data-wav.html: Added.
  • webaudio/pinknoise.wav: Added. Generated with command

sox -b 16 -r 44100 -n pinknoise.wav synth 4 pinknoise

5:45 PM Changeset in webkit [280947] by Alan Coon
  • 8 edits in branches/safari-612.1.26.1-branch/Source

Versioning.

WebKit-7612.1.26.1.5

5:39 PM Changeset in webkit [280946] by Alan Coon
  • 1 copy in tags/Safari-612.1.27.0.20

Tag Safari-612.1.27.0.20.

5:35 PM Changeset in webkit [280945] by Alan Coon
  • 1 copy in tags/Safari-612.1.27.2.2

Tag Safari-612.1.27.2.2.

5:32 PM Changeset in webkit [280944] by Alan Coon
  • 1 copy in tags/Safari-612.1.27.3.3

Tag Safari-612.1.27.3.3.

5:30 PM Changeset in webkit [280943] by Alan Coon
  • 9 edits in branches/safari-612.1.27.3-branch

Cherry-pick r280922. rdar://problem/81804209

Apply patch. rdar://problem/81804209

git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-612.1.27.0-branch@280922 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:27 PM Changeset in webkit [280942] by Alan Coon
  • 9 edits in branches/safari-612.1.27.2-branch

Cherry-pick r280922. rdar://problem/81804209

Apply patch. rdar://problem/81804209

git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-612.1.27.0-branch@280922 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:24 PM Changeset in webkit [280941] by Alan Coon
  • 8 edits in branches/safari-612.1.27.2-branch/Source

Versioning.

WebKit-7612.1.27.2.2

5:16 PM Changeset in webkit [280940] by Alan Coon
  • 8 edits in branches/safari-612.1.27.3-branch/Source

Versioning.

WebKit-7612.1.27.3.3

5:07 PM Changeset in webkit [280939] by Alan Coon
  • 8 edits in branches/safari-612.1.27.0.6-branch/Source

Versioning.

WebKit-7612.1.27.0.7

4:57 PM Changeset in webkit [280938] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[BigSur wk2] webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html.
https://bugs.webkit.org/show_bug.cgi?id=229015.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:51 PM Changeset in webkit [280937] by Wenson Hsieh
  • 4 edits in trunk/LayoutTests

[ iOS ] fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow-after-tap-on-body.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=228672
rdar://81348960

Reviewed by Simon Fraser.

On rare occasion, this test times out when the synthesized swipe gesture fails to cause the scrollable overflow
container to scroll past an arbitrary scroll position threshold (previously 400px). Mitigate this by rewriting
the test, such that we'll swipe _until_ we scroll past the threshold (which has also been lowered to just
100px).

Additionally, rewrite parts of this test to be generally easier to follow; for example, remove the scroll event
listener and instead just synthesize swipe gestures until scroller.scrollTop crosses 100px.

  • fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow-after-tap-on-body-expected.txt:
  • fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow-after-tap-on-body.html:
  • platform/ios-wk2/TestExpectations: Remove the failing test expectation.
3:54 PM Changeset in webkit [280936] by Peng Liu
  • 6 edits in trunk/Source/WebKit

[BigSur] TestWebKitAPI.AudioRoutingArbitration.Updating fails after r280726
https://bugs.webkit.org/show_bug.cgi?id=228966

Reviewed by Eric Carlson.

Add an IPC message RemoteAudioSessionProxy::SetIsPlayingToBluetoothOverride
for testing purpose, so that the test AudioRoutingArbitration.Updating will
work as expected when "Media in GPU Process" is enabled.

No new tests. Fix an API test failure.

  • GPUProcess/media/RemoteAudioSessionProxy.cpp:

(WebKit::RemoteAudioSessionProxy::setCategory):
(WebKit::RemoteAudioSessionProxy::setIsPlayingToBluetoothOverride):

  • GPUProcess/media/RemoteAudioSessionProxy.h:
  • GPUProcess/media/RemoteAudioSessionProxy.messages.in:
  • WebProcess/GPU/media/RemoteAudioSession.cpp:

(WebKit::RemoteAudioSession::setCategory):
(WebKit::RemoteAudioSession::setIsPlayingToBluetoothOverride):

  • WebProcess/GPU/media/RemoteAudioSession.h:
3:33 PM Changeset in webkit [280935] by ddkilzer@apple.com
  • 5 edits in trunk/Source/WebKit

ThreadSanitizer: data race in WTF::StringImpl::deref() under WebKit::NetworkCache::IOChannel::~IOChannel()
<https://webkit.org/b/229003>
<rdar://problem/81795626>

Reviewed by Chris Dumez.

Covered by 3245 layout tests running with TSan including:

http/wpt/service-workers/file-upload.html

  • NetworkProcess/cache/NetworkCacheIOChannel.h:

(WebKit::NetworkCache::IOChannel::open):

  • Update to use #pragma once.
  • Make an isolatedCopy() for m_path.

(WebKit::NetworkCache::IOChannel::IOChannel):

  • Switch to using an rvalue reference.
  • NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:

(WebKit::NetworkCache::IOChannel::IOChannel): Ditto.

  • NetworkProcess/cache/NetworkCacheIOChannelCurl.cpp:

(WebKit::NetworkCache::IOChannel::IOChannel): Ditto.

  • NetworkProcess/cache/NetworkCacheIOChannelGLib.cpp:

(WebKit::NetworkCache::IOChannel::IOChannel): Ditto.

  • Switch to use m_path instead of filePath to prevent use-after-move.
3:25 PM Changeset in webkit [280934] by sihui_liu@apple.com
  • 28 edits
    2 adds in trunk/Source

Suspend WorkQueue of ResourceLoadStatistics and LocalStorage sooner
https://bugs.webkit.org/show_bug.cgi?id=228748
<rdar://problem/81626714>

Reviewed by Chris Dumez.

Source/WebKit:

When suspending ResourceLoadStatistics and LocalStorage, we dispatched a suspend task, which waits on a
condition, to their WorkQueue. That means the queue will be suspended after completing all tasks scheduled
before the suspend task. These tasks may take a long time to complete and assertion may be timed out.

When network process receives PrepareToSuspend message, we want the queues to suspend as soon as possible. To
achieve that, now we check if the queue needs to be suspended before each task, which ensures the queue
execute as most one task after suspend().

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore):

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

(WebKit::ResourceLoadStatisticsMemoryStore::ResourceLoadStatisticsMemoryStore):

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:

(WebKit::ResourceLoadStatisticsStore::ResourceLoadStatisticsStore):

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:

(WebKit::ResourceLoadStatisticsStore::workQueue):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::sharedStatisticsQueue):
(WebKit::WebResourceLoadStatisticsStore::suspend):
(WebKit::WebResourceLoadStatisticsStore::resume):
(WebKit::WTF_GUARDED_BY_LOCK): Deleted.

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

(WebKit::LocalStorageDatabase::create):
(WebKit::LocalStorageDatabase::LocalStorageDatabase):

  • NetworkProcess/WebStorage/LocalStorageDatabase.h:
  • NetworkProcess/WebStorage/LocalStorageNamespace.cpp:

(WebKit::LocalStorageNamespace::getOrCreateStorageArea):

  • NetworkProcess/WebStorage/LocalStorageNamespace.h:
  • NetworkProcess/WebStorage/SessionStorageNamespace.cpp:

(WebKit::SessionStorageNamespace::getOrCreateStorageArea):

  • NetworkProcess/WebStorage/SessionStorageNamespace.h:
  • NetworkProcess/WebStorage/StorageArea.cpp:

(WebKit::StorageArea::StorageArea):

  • NetworkProcess/WebStorage/StorageArea.h:
  • NetworkProcess/WebStorage/StorageManager.cpp:

(WebKit::StorageManager::createLocalStorageArea):
(WebKit::StorageManager::createTransientLocalStorageArea):
(WebKit::StorageManager::createSessionStorageArea):

  • NetworkProcess/WebStorage/StorageManager.h:
  • NetworkProcess/WebStorage/StorageManagerSet.cpp:

(WebKit::StorageManagerSet::StorageManagerSet):
(WebKit::StorageManagerSet::suspend):
(WebKit::StorageManagerSet::resume):

  • NetworkProcess/WebStorage/StorageManagerSet.h:

(WebKit::StorageManagerSet::WTF_GUARDED_BY_LOCK): Deleted.

  • NetworkProcess/WebStorage/TransientLocalStorageNamespace.cpp:

(WebKit::TransientLocalStorageNamespace::getOrCreateStorageArea):

  • NetworkProcess/WebStorage/TransientLocalStorageNamespace.h:

Source/WTF:

Add SuspendableWorkQueue that would perform suspend check before each task.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/Forward.h:
  • wtf/SuspendableWorkQueue.cpp: Added.

(WTF::SuspendableWorkQueue::create):
(WTF::SuspendableWorkQueue::SuspendableWorkQueue):
(WTF::SuspendableWorkQueue::suspend):
(WTF::SuspendableWorkQueue::resume):
(WTF::SuspendableWorkQueue::dispatch):
(WTF::SuspendableWorkQueue::dispatchAfter):
(WTF::SuspendableWorkQueue::dispatchSync):
(WTF::SuspendableWorkQueue::invokeAllSuspensionCompletionHandlers):
(WTF::SuspendableWorkQueue::suspendIfNeeded):

  • wtf/SuspendableWorkQueue.h: Added.
  • wtf/WorkQueue.h:

(): Deleted.

3:21 PM Changeset in webkit [280933] by Chris Dumez
  • 5 edits in trunk

<a rel="opener noopener" target="_blank"> should create a window without opener
https://bugs.webkit.org/show_bug.cgi?id=229011

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing.

  • web-platform-tests/html/semantics/links/links-created-by-a-and-area-elements/target_blank_implicit_noopener-expected.txt:
  • web-platform-tests/html/semantics/links/links-created-by-a-and-area-elements/target_blank_implicit_noopener_base-expected.txt:

Source/WebCore:

<a rel="opener noopener" target="_blank"> should create a window without opener, as per:

Firefox and Chrome match the specification.

No new tests, rebaselined existing tests.

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::handleClick):

3:18 PM Changeset in webkit [280932] by Chris Dumez
  • 5 edits in trunk/LayoutTests

http/tests/xmlhttprequest/interactive-state.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=229006
<rdar://80343834>

Reviewed by Alex Christensen.

  • http/tests/xmlhttprequest/interactive-state-expected.txt:

Rebaseline test as the output is a bit different now.

  • http/tests/xmlhttprequest/interactive-state.cgi:

Use sleep instead of writing a lot of data to make sure that
the data is processed in chunks.

  • http/tests/xmlhttprequest/interactive-state.html:

Modernize test a bit.

  • platform/mac-wk1/TestExpectations:

Unskip test as it should no longer be flaky.

3:05 PM Changeset in webkit [280931] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

REGRESSION (r278392) performance.measure should never throw an InvalidAccessError for fetchStart
https://bugs.webkit.org/show_bug.cgi?id=229008
<rdar://79960877>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-08-11
Reviewed by Chris Dumez.

Source/WebCore:

Test: http/tests/performance/performance-measure-fetch-start.html

PerformanceTiming::fetchStart is returning 0 when we get a main resource from the cache sometimes.
This is causing PerformanceUserTiming::convertMarkToTimestamp to throw an error, which it should.
Like PerformanceResourceTiming::fetchStart we need to fall back to ResourceLoadTiming::startTime
if the NetworkLoadMetrics doesn't have any useful data for us.

  • page/PerformanceTiming.cpp:

(WebCore::PerformanceTiming::fetchStart const):

LayoutTests:

  • http/tests/performance/performance-measure-fetch-start-expected.txt: Added.
  • http/tests/performance/performance-measure-fetch-start.html: Added.
1:39 PM Changeset in webkit [280930] by wilander@apple.com
  • 3 edits in trunk/Source/WebCore

PCM: Flip WebCore's FraudPreventionEnabled to true if HAVE(RSA_BSSA) to match the experimental setting
https://bugs.webkit.org/show_bug.cgi?id=228961

Reviewed by Tim Horton.

Existing tests use the affected anchor attribute.

  • page/RuntimeEnabledFeatures.h:
  • page/Settings.yaml:
1:35 PM Changeset in webkit [280929] by Alan Coon
  • 3 edits in branches/safari-612.1.27.0-branch/Source/ThirdParty/ANGLE

Cherry-pick r280926. rdar://problem/81810533

Avoid infinite recursion when command buffer creation fails
https://bugs.webkit.org/show_bug.cgi?id=228978
<rdar://79224824>

Reviewed by Kenneth Russell.

In cases where the MTLCommandBuffer is not a valid metal object,
we can end up in an infinite recursive loop during draw call setup. Refactor setupDraw to take no more than two attempts through the setup function.

Testing: Ran WebGL tests, use case samples. Set up synthetic
repro forcing bail out path, saw WebGL content fail to render
instead of a web process crash.

  • src/libANGLE/renderer/metal/ContextMtl.h:
  • src/libANGLE/renderer/metal/ContextMtl.mm: (rx::ContextMtl::setupDraw): (rx::ContextMtl::setupDrawImpl):

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

1:32 PM Changeset in webkit [280928] by commit-queue@webkit.org
  • 8 edits
    4 adds in trunk

Start smooth keyboard scrolling animation when pageUp or pageDown key is pressed.
https://bugs.webkit.org/show_bug.cgi?id=228156

Patch by Dana Estra <destra@apple.com> on 2021-08-11
Reviewed by Tim Horton.

Source/WebCore:

UIProcess now no longer handles scrollPageUp and scrollPageDown events. They return to eventHandler as
unhandled and the keyboard scroll animation is started.

Tests: fast/scrolling/keyboard-scrolling-distance-downArrow.html

fast/scrolling/keyboard-scrolling-distance-pageDown.html

  • page/EventHandler.cpp:

(WebCore::EventHandler::defaultKeyboardEventHandler):

  • platform/KeyboardScrollingAnimator.cpp:

(WebCore::KeyboardScrollingAnimator::keyboardScrollForKeyboardEvent const):

Source/WebKit:

UIProcess now no longer handles scrollPageUp and scrollPageDown events. They return
to eventHandler as unhandled and the keyboard scroll animation is started.

  • UIProcess/API/mac/WKWebViewMac.mm:

(-[WKWebView scrollPageDown:]):
(-[WKWebView scrollPageUp:]):

LayoutTests:

Tests check that at least 2 scroll events occur when the downArrow key or pageDown key is pressed, and
that with each event, the page's offset from its original position increases.

  • fast/scrolling/keyboard-scrolling-distance-downArrow-expected.txt: Added.
  • fast/scrolling/keyboard-scrolling-distance-downArrow.html: Added.
  • fast/scrolling/keyboard-scrolling-distance-pageDown-expected.txt: Added.
  • fast/scrolling/keyboard-scrolling-distance-pageDown.html: Added.
1:19 PM Changeset in webkit [280927] by Aditya Keerthi
  • 5 edits
    2 adds in trunk

REGRESSION (r273072): Caps lock indicator in password field is too large
https://bugs.webkit.org/show_bug.cgi?id=228970
rdar://81546781

Reviewed by Wenson Hsieh.

Source/WebCore:

r273072 made it so that flex items with an intrinsic size will honor
their aspect ratio when computing their content size. Prior to the
change, in taller password fields, the flex item representing the caps
lock indicator would be tall and narrow. The height would stretch to
fill the container, but the width would maintain its intrinsic width of
17px. Now that aspect ratio is accounted for, the width increases to
match the height, resulting in a much larger indicator in taller password
fields.

However, while r273072 regressed the appearance of the caps lock
indicator, it merely exposed an issue with the styling of the indicator.

Consider the following test case, which is a reduced version how the
caps lock indicator is styled:

<div style="display: flex; height: 100px">

<div style="content: url(17_x_17_blue_square.svg); align-self: stretch;"></div>

</div>

Prior to r273072, this displayed a 17x17 blue square (inside a 17x100
flex item). However, in Chrome, Firefox, and WebKit after r273072, this
shows a 100x100 blue square (inside a 100x100 flex item). This is the
expected behavior now that aspect ratio is accounted for.

Consequently, to fix the issue, the width of the indicator must be
limited to a maximum value. 17px was chosen to be the max-width, as the
indicator's width would not exceed 17px prior to r273072.

Test: fast/forms/caps-lock-indicator-width.html

  • css/html.css:

(input::-webkit-caps-lock-indicator):

LayoutTests:

Added a layout test to verify that the width of the caps lock indicator
adapts to the height of the password field, but does not exceed a
maximum width.

The added test is skipped on WK1, since DumpRenderTree does not support
toggling caps lock state. Implementing the testing hook in DRT is made
difficult by the fact that, in WK1, the caps lock state is queried
directly from the OS, using GetCurrentKeyModifiers.

  • fast/forms/caps-lock-indicator-width-expected.txt: Added.
  • fast/forms/caps-lock-indicator-width.html: Added.
  • platform/ios-wk1/TestExpectations:
  • platform/mac-wk1/TestExpectations:
1:04 PM Changeset in webkit [280926] by Kyle Piddington
  • 3 edits in trunk/Source/ThirdParty/ANGLE

Avoid infinite recursion when command buffer creation fails
https://bugs.webkit.org/show_bug.cgi?id=228978
<rdar://79224824>

Reviewed by Kenneth Russell.

In cases where the MTLCommandBuffer is not a valid metal object,
we can end up in an infinite recursive loop during draw call setup. Refactor setupDraw to take no more than two attempts through the setup function.

Testing: Ran WebGL tests, use case samples. Set up synthetic
repro forcing bail out path, saw WebGL content fail to render
instead of a web process crash.

  • src/libANGLE/renderer/metal/ContextMtl.h:
  • src/libANGLE/renderer/metal/ContextMtl.mm:

(rx::ContextMtl::setupDraw):
(rx::ContextMtl::setupDrawImpl):

1:00 PM Changeset in webkit [280925] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix iOS debug build after r280875
https://bugs.webkit.org/show_bug.cgi?id=228683

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _removeTemporaryFilesIfNecessary]):

12:44 PM Changeset in webkit [280924] by Chris Dumez
  • 20 edits in trunk

Stop evaluating <script>s moved between Documents during fetching
https://bugs.webkit.org/show_bug.cgi?id=202714
<rdar://problem/56208425>

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing. Note that these checks were already passing in both Firefox and Chrome.

  • web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-fetch-error-external-classic-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-fetch-error-external-module-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-parse-error-external-classic-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-parse-error-external-module-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-parse-error-inline-classic-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-success-external-classic-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-success-external-module-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/after-prepare-iframe-success-inline-classic-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-fetch-error-external-classic-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-fetch-error-external-module-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-parse-error-external-classic-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-parse-error-external-module-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-parse-error-inline-classic-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-success-external-classic-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-success-external-module-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/move-back-iframe-success-inline-classic-expected.txt:

Source/WebCore:

Stop evaluating <script>s moved between Documents during fetching:

Both Firefox and Chrome already behave this way.

No new tests, rebaselined existing tests.

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::prepareScript):
Set the element's preparation-time document to its node document, as per:

(WebCore::ScriptElement::executePendingScript):
If scriptElement's preparation-time document is not equal to scriptElement's node document, then return, as per:

  • dom/ScriptElement.h:
11:46 AM Changeset in webkit [280923] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ Win EWS ] fast/forms/input-baseline.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=229009

Unreviewed Windows test gardening to seed up EWS.

  • platform/win/TestExpectations:
11:42 AM Changeset in webkit [280922] by Alan Coon
  • 9 edits in branches/safari-612.1.27.0-branch

Apply patch. rdar://problem/81804209

11:28 AM Changeset in webkit [280921] by Alan Coon
  • 1 copy in branches/safari-612.1.27.0.6-branch

New branch.

11:08 AM Changeset in webkit [280920] by youenn@apple.com
  • 4 edits in trunk

Media element is not always autoplaying when going from background to foreground if it is initially not in viewport
https://bugs.webkit.org/show_bug.cgi?id=228955
Source/WebCore:

Reviewed by Eric Carlson.

In case video element is autoplayable but is paused, we should try to autoplay even if we are not interrupted due to invisible autoplay.
Covered by API test.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updateShouldAutoplay):

Tools:

rdar://81751653

Reviewed by Eric Carlson.

  • TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
10:59 AM Changeset in webkit [280919] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ Win EWS ] http/tests/xmlhttprequest/xmlhttprequest-50ms-download-dispatch.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=229007

Unreviewed Windows test gardening to seed up EWS.

  • platform/win/TestExpectations:
10:48 AM Changeset in webkit [280918] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[Gstreamer] mark media/media-source/media-mp4-h264-sequence-mode.html as failing
https://bugs.webkit.org/show_bug.cgi?id=228976

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-08-11

  • platform/glib/TestExpectations:
10:22 AM Changeset in webkit [280917] by Alan Coon
  • 2 edits in branches/safari-611.3.10.0-branch/Source/WebCore/page

Apply patch. rdar://problem/80288774

10:20 AM Changeset in webkit [280916] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Remove --no-demangle XLinker option from WebCore
https://bugs.webkit.org/show_bug.cgi?id=228949

Reviewed by Alexey Proskuryakov.

Remove options that were added inadvertently.
No change of behavior as this is changing the linker log only.

  • Configurations/WebCore.xcconfig:
  • Configurations/WebCoreTestSupport.xcconfig:
9:56 AM Changeset in webkit [280915] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix iOS debug build after r280875

https://bugs.webkit.org/show_bug.cgi?id=228683

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _removeTemporaryFilesIfNecessary]):

9:51 AM Changeset in webkit [280914] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Disable menu bar related code in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=229002
<rdar://problem/80408291>

Reviewed by Brent Fulgham.

Disable some menu bar related code running in the WebContent process on macOS, since it only makes sense to execute it in the UI process.

  • WebProcess/EntryPoint/Cocoa/XPCService/WebContentService/Info-OSX.plist:
9:39 AM Changeset in webkit [280913] by Chris Dumez
  • 5 edits in trunk

HTMLMetaElement http-equiv should not be processed in shadow trees
https://bugs.webkit.org/show_bug.cgi?id=228973

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now passing.

  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/not-in-shadow-tree-expected.txt:

Source/WebCore:

HTMLMetaElement http-equiv should not be processed in shadow trees:

Firefox and Chrome already match the specification here.

No new tests, rebaselined existing test.

  • dom/Node.h:

(WebCore::Node::isInDocumentTree const):

  • html/HTMLMetaElement.cpp:

(WebCore::HTMLMetaElement::attributeChanged):
(WebCore::HTMLMetaElement::process):

9:22 AM Changeset in webkit [280912] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ Win EWS ] fast/events/dropzone-005.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=229005

Unreviewed Windows test gardening to seed up EWS.

  • platform/win/TestExpectations:
9:03 AM Changeset in webkit [280911] by Kocsen Chung
  • 8 edits in branches/safari-612.1.27.0-branch/Source

Versioning.

WebKit-7612.1.27.0.20

8:40 AM Changeset in webkit [280910] by Chris Dumez
  • 4 edits in trunk

HTMLStyleElement should create its style sheet even if its media attribute is invalid
https://bugs.webkit.org/show_bug.cgi?id=228977

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now passing.

  • web-platform-tests/html/semantics/document-metadata/the-style-element/style_non_matching_media-expected.txt:

Source/WebCore:

HTMLStyleElement should create its style sheet even if its media attribute is invalid.

WebKit currently didn't and this was causing us to fail the following WPT test:

  • html/semantics/document-metadata/the-style-element/style_non_matching_media.html

This WPT test is passing in both Firefox and Chrome.

No new tests, rebaselined existing tests.

  • dom/InlineStyleSheetOwner.cpp:

(WebCore::InlineStyleSheetOwner::createSheet):

8:39 AM Changeset in webkit [280909] by Chris Dumez
  • 4 edits in trunk

Dynamically changing HTMLStyleElement.type should change the rendering accordingly
https://bugs.webkit.org/show_bug.cgi?id=228980

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now passing.

  • web-platform-tests/html/semantics/document-metadata/the-style-element/style_type_change-expected.txt:

Source/WebCore:

Dynamically changing HTMLStyleElement.type should change the rendering accordingly.

This is causing the following WPT test to fail in WebKit:

  • html/semantics/document-metadata/the-style-element/style_type_change.html

This test is passing in both Firefox and Chrome.

No new tests, rebaselined existing test.

  • html/HTMLStyleElement.cpp:

(WebCore::HTMLStyleElement::parseAttribute):

8:09 AM Changeset in webkit [280908] by youenn@apple.com
  • 2 edits in trunk/Source/WTF

Enable WebRTC relay by default
https://bugs.webkit.org/show_bug.cgi?id=229000
<rdar://78767922>

Reviewed by Eric Carlson.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
7:13 AM Changeset in webkit [280907] by Lauro Moura
  • 1 edit
    1 delete in trunk/LayoutTests/imported/w3c

Remove leftover offscreen canvas test case after r280084

Unreviewed test gardening.

This test was replaced by others in r280084 but not fully removed.

  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.worker.html: Removed.
4:24 AM Changeset in webkit [280906] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r275126 - [RenderTreeBuilder] No need to update the counters when the renderer is moved internally
https://bugs.webkit.org/show_bug.cgi?id=223801
<rdar://75835208>

Reviewed by Ryosuke Niwa.

When the renderer re-parenting is initiated by an "internal move" (e.g. anonymous block parent is not needed anymore so all the descendants
are moved "one level" up), we don't need to re-compute the counters. Their state should not be any different after this re-parenting.

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::attachToRenderElementInternal):
(WebCore::RenderTreeBuilder::move):

  • rendering/updating/RenderTreeBuilder.h:
4:24 AM Changeset in webkit [280905] by Adrian Perez de Castro
  • 6 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r274862 - Nullptr crash in HTMLConverter::convert
https://bugs.webkit.org/show_bug.cgi?id=221719

Patch by Frédéric Wang <fwang@igalia.com> on 2021-03-23
Reviewed by Ryosuke Niwa.

When the "Undo" command is called after DOM changes, one of the selection's position anchors
may have been moved to a new document. In that case, just clear the selection. Also add
asserts to ensure the selection is in good state after unapply and reapply commands.

  • editing/CompositeEditCommand.cpp:

(WebCore::EditCommandComposition::unapply): Add security assert to ensure selection is in
good state.
(WebCore::EditCommandComposition::reapply): Ditto.

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance): If the selection's
position anchors have been moved to a new document then just clear the selection.
(WebCore::FrameSelection::isConnectedToDocument const): New method to verify that all the
positions of the visible selection are in m_document.

  • editing/FrameSelection.h: Declare new method.
  • editing/VisibleSelection.cpp:

(WebCore::VisibleSelection::document const): New method that returns a common document for
all positions or nullptr otherwise.

  • editing/VisibleSelection.h: Declare new method.
4:20 AM Changeset in webkit [280904] by commit-queue@webkit.org
  • 5 edits in trunk

Cherry-pick ANGLE: Revise WebGL's shaderSource validation
https://bugs.webkit.org/show_bug.cgi?id=228951

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-08-11
Reviewed by Kenneth Russell.

Source/ThirdParty/ANGLE:

Cherry-pick ANGLE commit: b4fd46288aa65d61dc9c7140c7d1cdba3f4cdf9a
From: Kenneth Russell <kbr@chromium.org>
Date: Wed, 27 Jan 2021 15:56:58 -0800
Revise WebGL's shaderSource validation.

Per discussion in the WebGL working group, shaderSource no longer
generates INVALID_VALUE for sources containing characters outside the
ESSL character set. Compilation and/or linking is still specified to
fail when illegal constructs are used.

With this change, https://github.com/KhronosGroup/WebGL/pull/3206
passes with the passthrough command decoder.

Revise WebGL compatibility tests to follow the new rules.

  • src/libANGLE/validationES2.cpp:

(gl::ValidateShaderSource):

  • src/tests/gl_tests/WebGLCompatibilityTest.cpp:

LayoutTests:

Fixes tests:
webgl/1.0.x/conformance/misc/invalid-passed-params.html
webgl/1.0.x/conformance/glsl/bugs/character-set.html
webgl/2.0.y/conformance/misc/invalid-passed-params.html
webgl/2.0.y/conformance/glsl/bugs/character-set.html

3:50 AM Changeset in webkit [280903] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.32

Merge r274849 - Nullptr crash in WebCore::RenderObject::RenderObjectBitfields::isLineBreak() where a NULL check is missing.
https://bugs.webkit.org/show_bug.cgi?id=223409

Patch by Venky Dass <yaranamavenkataramana@apple.com> on 2021-03-22
Reviewed by Ryosuke Niwa.

Source/WebCore:

When the check for LineBreak is performed the BR elmement NULL check is not performed. Which results in a crash
The fix therefore is to check for NULL.

Test: LayoutTests/editing/inserting/insert-paragraph-between-hr-and-br-assigned-to-slot-crash.html

  • editing/InsertParagraphSeparatorCommand.cpp:

(WebCore::InsertParagraphSeparatorCommand::doApply):

LayoutTests:

Adding a regression test case.

  • editing/inserting/insert-paragraph-between-hr-and-br-assigned-to-slot-crash-expected.txt: Added.
  • editing/inserting/insert-paragraph-between-hr-and-br-assigned-to-slot-crash.html: Added.
3:50 AM Changeset in webkit [280902] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r274824 - [Web Animations] nullptr crash in updatePlaybackRate() with no timeline
https://bugs.webkit.org/show_bug.cgi?id=223095

Patch by Ian Gilbert <iang@apple.com> on 2021-03-22
Reviewed by Ryosuke Niwa.

Changed to WebAnimation::remove() to use setTimeline() instead of setTimelineInternal()
to ensure the animation is in the correct play state.

No new tests as this relies on navigating while updating the playback rate and I was unable to make
a reliable test case.

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::remove): Changed setTimelineInternal() to setTimeline() in order to
ensure the animation has the correct play state.

3:43 AM Changeset in webkit [280901] by Adrian Perez de Castro
  • 10 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r274818 - REGRESSION(r272433): Inspector should not instrument inside WebCore::Node::setRenderer
https://bugs.webkit.org/show_bug.cgi?id=223559

Reviewed by Ryosuke Niwa and Devin Rousso.

Existing test coverage:

  • inspector/css/nodeLayoutContextTypeChanged.html
  • inspector/css/setLayoutContextTypeChangedMode.html

The previous approach to observing render changes was most likely a performance regression in a very hot code
path (Node::setRenderer). This patch resolves this by not instrumenting in this the hot path. Instead we call
inspector instrumentation inside the constructors/destructors of only the RenderObject subclasses we are
interested in observing layout changes for.

Additionally, layout change events are now added to a Vector of pending changes, which will be sent to the
front-end later in order to avoid evaluating JavaScript inside a destructor in WK1 with the new instrumentation
points.

  • dom/Element.cpp:

(WebCore::Element::didChangeRenderer): Deleted.

  • dom/Element.h:
  • dom/Node.h:

(WebCore::Node::didChangeRenderer): Deleted.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::nodeLayoutContextChangedImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::nodeLayoutContextChanged):

  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::InspectorCSSAgent):
(WebCore::InspectorCSSAgent::reset):
(WebCore::InspectorCSSAgent::nodeLayoutContextTypeChanged):
(WebCore::InspectorCSSAgent::layoutContextTypeChangedTimerFired):

  • Moved layout change events behind a timer firing.
  • inspector/agents/InspectorCSSAgent.h:
  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::RenderGrid):
(WebCore::RenderGrid::~RenderGrid):

  • Move instrumentation from Node::setRenderer to RenderGrid.
  • rendering/RenderObject.h:

(WebCore::Node::setRenderer):

3:43 AM Changeset in webkit [280900] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r274776 - Better validate JSArrays in AudioWorkletProcessor
https://bugs.webkit.org/show_bug.cgi?id=223548

Reviewed by Geoffrey Garen.

Better validate JSArrays in AudioWorkletProcessor. Replaces debug assertions with runtime
checks for robustness.

  • Modules/webaudio/AudioWorkletProcessor.cpp:

(WebCore::copyDataFromBusesToJSArray):
(WebCore::copyDataFromParameterMapToJSObject):
(WebCore::zeroJSArray):
(WebCore::AudioWorkletProcessor::buildJSArguments):

3:21 AM Changeset in webkit [280899] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r274723 - Protect frame before calling didBeginDocument
https://bugs.webkit.org/show_bug.cgi?id=217185

Patch by Rob Buis <rbuis@igalia.com> on 2021-03-19
Reviewed by Alex Christensen.

Protect frame before calling didBeginDocument
since it could potentially delete the frame
through event handling.

  • loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::begin):

3:21 AM Changeset in webkit [280898] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r274675 - Protect frame before calling setPrinting
https://bugs.webkit.org/show_bug.cgi?id=222664

Patch by Rob Buis <rbuis@igalia.com> on 2021-03-18
Reviewed by Ryosuke Niwa.

Protect frame before calling setPrinting
since it could potentially delete the frame
through event handling.

  • page/PrintContext.cpp:

(WebCore::PrintContext::begin):

3:20 AM Changeset in webkit [280897] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r274630 - Invalidate RenderTreePosition's next sibling with display:contents
https://bugs.webkit.org/show_bug.cgi?id=218578

Reviewed by Antti Koivisto.

When inserting elements in the tree from JS it might happen that the renderTreePosition() in the RenderTreeUpdater
caches a nextSibling() value which is only temporarily correct because we sequentially process the descendants of a
given root node in RenderTreeUpdater::updateRenderTree(). One of those potentially incorrect scenarios is when
using display:contents. We can detect those cases because we would leave a parent element in RenderTreeUpdater::popParent()
without changing renderingParent() and so without changing renderTreePosition(). Once we are in that situation we
must invalidate the cached position so the next sibling is recomputed.

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::popParent): Invalidate the render tree position's next sibling if the parent element is not
the renderingParent().

3:19 AM Changeset in webkit [280896] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r274626 - ASSERTION FAILED: node.isConnected() in matchSlottedPseudoElementRules
https://bugs.webkit.org/show_bug.cgi?id=221440

Patch by Frédéric Wang <fwang@igalia.com> on 2021-03-18
Reviewed by Ryosuke Niwa.

ReplaceSelectionCommand::doApply() removes a <br> from an element and immediately calls
highestNodeToRemoveInPruning() on that element. The former operation may destroy the
element's renderer and confuses the latter operation. This happens in particular for a
<summary> element which ends up being removed from the tree. This in turn causes unexpected
issues such as a debug assertion failure in matchSlottedPseudoElementRules. To address that
problem, ensure the document is laid out before calling highestNodeToRemoveInPruning().
This patch also increases and improves use of RefPtr<Node>.

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::removeNodeAndPruneAncestors): Use auto & makeRefPtr.
(WebCore::CompositeEditCommand::prune): Store local highestNodeToRemove variable in a RefPtr.
(WebCore::CompositeEditCommand::cleanupAfterDeletion): Store local node variable in a RefPtr.
(WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph): Store local parentNode variable in a RefPtr.

  • editing/Editing.cpp:

(WebCore::highestNodeToRemoveInPruning): Store local currentNode variable in a a RefPtr.

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::doApply): Use auto & makeRefPtr. Store local odeToRemove variable in a RefPtr.
Ensure the document is laid out before calling highestNodeToRemoveInPruning.

3:16 AM Changeset in webkit [280895] by Adrian Perez de Castro
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.32

Merge r274539 - Object allocation sinking phase should prioritize materializations with no dependencies before materializations with no reverse dependencies
https://bugs.webkit.org/show_bug.cgi?id=221069
<rdar://problem/73686589>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/allocation-sinking-scope-materialization-order.js: Added.

(var3.var2.x):
(var3):

Source/JavaScriptCore:

Suppose we have two scope objects, A and B. Let's say A points to B, so B is
A's parent scope. A then depends on B. B has no dependencies here. When deciding
an order to materialize scope objects, we should always do it in reverse dependency
order. So above, we should materialize B, then A.

Inside object allocation sinking phase, when at an object materialization
site, we do track both dependencies and reverse dependencies. In the above
object graph, we'd attempt to materialize the objects in the right order,
always picking things with no dependencies first (and updating the list of
dependencies as we materialzed objects).

The code was using an std::list to track things to materialize, and it had
notions for materializing something first, and materializing something last.
However, there was a bug in how the code managed to insert things when
it first inserted last followed by inserting first. This patch simplifies
the code and makes it do the right thing.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:
3:15 AM Changeset in webkit [280894] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r274437 - Do not collapse the anonymous block when it is a candidate container for the list marker
https://bugs.webkit.org/show_bug.cgi?id=223196
<rdar://74574330>

Reviewed by Antti Koivisto.

Do not merge empty anonymous siblings when the callers says "do not collpase anonymous block". Those merge candidate
anonymous blocks may be candidate containers for some other conent (we expand on r238119 here).

  • rendering/updating/RenderTreeBuilderBlock.cpp:

(WebCore::RenderTreeBuilder::Block::detach):

3:14 AM Changeset in webkit [280893] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r274398 - RenderLineBreak should stay inline level box even when display property says otherwise.
https://bugs.webkit.org/show_bug.cgi?id=223151
<rdar://74339837>

Reviewed by Antti Koivisto.

In this patch we make sure that the RenderLineBreak object always stays inline.

While the display property applies to all elements (https://drafts.csswg.org/css-display/#the-display-properties), the line
break element (<br>) seems to be an exception and all browsers handle <br style="display: block"> still as an inline level element.

Renderers can (and do see RenderSVGInline::updateFromStyle) diverge from this computed display value and say they always want to
be inline level boxes. This is ensured by RenderObject::setInline/isInline function pair.

Initially there were 2 setInline() calls:
One in RenderObject::setStyle(). It dealt with "block to inline" transition and
one call in RenderBox::setStyle().
In these functions we simply set the renderer's "inInline" bit to the computed style value (setInline(style.isDisplayInlineType)).
However derived renderer classes were able to override it by implementing the ::setStyle function and
explicitly set the "isInline" bit to true/false.

Over the years the second (RenderBox::setStyle) call transitioned to RenderBoxModelObject::updateFromStyle()
and the first (RenderObject::setStyle) call got moved to normalizeTreeAfterStyleChange() and their order got flipped.

Derived renderer classes can still explicitly set the "isInline" bit by implementing the ::updateFromStyle() function
(this is similar to what we had with ::setStyle).
However since the order is flipped, the "setInline()" call in normalizeTreeAfterStyleChange() now runs after
updateFromStyle() and it may re-reset the "isInline" bit back to the computed value (hence the FIXME).

The "setInline" call in normalizeTreeAfterStyleChange() is not needed anymore since the "isInline" bit is already updated by
the time we get here (as opposed to when it was initially introduced in RenderObject::setStyle, see above).

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::updateFromStyle):

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange):

3:13 AM Changeset in webkit [280892] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r274387 - Mark the line dirty when list marker goes from inline to block
https://bugs.webkit.org/show_bug.cgi?id=223132

Reviewed by Antti Koivisto.

This patch ensures that the line layout has a chance to clean up the inline boxes when the marker goes from inline to block.
Instead of deleting the inline box wrapper (InlineElement) here let's

  1. mark both the renderer and the line dirty and let the inline layout code run its normal cleanup process on dirty lines.
  2. detach the inline box wrapper from the now-block list marker.
  • rendering/RenderListMarker.cpp:

(WebCore::RenderListMarker::styleDidChange):

  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::verticalPositionForBox):

3:12 AM Changeset in webkit [280891] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r274361 - Use refptr to PeerConnectionFactoryInterface
https://bugs.webkit.org/show_bug.cgi?id=222725

Patch by Rob Buis <rbuis@igalia.com> on 2021-03-12
Reviewed by Youenn Fablet.

Use refptr instead of reference to PeerConnectionFactoryInterface.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::LibWebRTCMediaEndpoint):
(WebCore::LibWebRTCMediaEndpoint::addTrack):
(WebCore::LibWebRTCMediaEndpoint::createSourceAndRTCTrack):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
2:47 AM Changeset in webkit [280890] by Adrian Perez de Castro
  • 6 edits in trunk/Source/WebCore

Non-unified build fixes, mid August 2021 edition
https://bugs.webkit.org/show_bug.cgi?id=228985

Unreviewed non-unified build fixes.

  • fileapi/ThreadableBlobRegistry.cpp: Add missing CrossOriginOpenerPolicy.h include.
  • html/FormController.cpp: Add missing TypedElementDescendantIterator.h include.
  • html/FormController.h: Add missing forward declaration for the Document type.
  • loader/CrossOriginEmbedderPolicy.cpp: Add missing ResourceResponse.h include.
  • loader/CrossOriginOpenerPolicy.cpp: Ditto.
12:53 AM Changeset in webkit [280889] by cathiechen
  • 4 edits in trunk

REGRESSION (r277997): Max-height not applied for image
https://bugs.webkit.org/show_bug.cgi?id=228872

Reviewed by Antti Koivisto.

Source/WebCore:

The image get stretched because constrainLogicalHeightByMinMax uses the intrinsic height for the minimum height.
According to [1], the automatic minimum size in the ratio-dependent axis of a box is its min-content size,
not the intrinsic size. To fix this, the ratio-dependent minimum height of a box should be computed from aspect-ratio
if it doesn't have any child, otherwise, then it should consider the intrinsic height.

[1] https://www.w3.org/TR/css-sizing-4/#aspect-ratio-minimum

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::constrainLogicalHeightByMinMax const): The minimum height is computed from aspect-ratio if it doesn't have any child.

LayoutTests:

12:46 AM Changeset in webkit [280888] by Lauro Moura
  • 2 edits in trunk/Tools

[WPE] Handle escape key in wpeKeySymForKeyRef
https://bugs.webkit.org/show_bug.cgi?id=228981

Reviewed by Carlos Garcia Campos.

Some dialog tests were failing due to "escape" key ref being
translated to the 'e' keysym.

Covered by existing tests.

  • WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:

(WTR::wpeKeySymForKeyRef):

12:43 AM Changeset in webkit [280887] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[SVG] Attribute change triggers redundant (and out of order) setNeedsLayout call
https://bugs.webkit.org/show_bug.cgi?id=228125

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

As explained in the bug the setNeedsLayout call is redundant, however
keep using it for embedded SVG's to update width/height of the embedder.

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::svgAttributeChanged):

12:39 AM Changeset in webkit [280886] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

WTFCrash in JSC::Lexer<char16_t>::append8
https://bugs.webkit.org/show_bug.cgi?id=228982

Reviewed by Mark Lam.

JSTests:

  • stress/directive-includes-non-latin1.js: Added.

Source/JavaScriptCore:

sourceURL / sourceMapURL directive should not assume Latin1 characters.

  • parser/Lexer.cpp:

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

Note: See TracTimeline for information about the timeline view.