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

Timeline



Aug 19, 2021:

11:20 PM Changeset in webkit [281296] by ntim@apple.com
  • 8 edits in trunk

Implement top layer rendering bits
https://bugs.webkit.org/show_bug.cgi?id=84796

Reviewed by Simon Fraser.

Enabled relevant WPTs. Some WPTs need extra layout work.

Source/WebCore:

  • dom/Document.cpp:

(WebCore::Document::addToTopLayer):
(WebCore::Document::removeFromTopLayer):

  • dom/Element.cpp:

(WebCore::Element::isInTopLayerWillChange):
(WebCore::Element::isInTopLayerDidChange):

  • dom/Element.h:
  • rendering/RenderLayer.cpp:

(WebCore::canCreateStackingContext):
(WebCore::RenderLayer::stackingContext const):
(WebCore::RenderLayer::rebuildZOrderLists):
(WebCore::RenderLayer::collectLayers):
(WebCore::RenderLayer::enclosingAncestorForPosition const):
(WebCore::RenderLayer::establishesTopLayer const):
(WebCore::RenderLayer::establishesTopLayerWillChange):
(WebCore::RenderLayer::establishesTopLayerDidChange):

  • rendering/RenderLayer.h:

LayoutTests:

10:15 PM Changeset in webkit [281295] by Antti Koivisto
  • 18 edits in trunk

[:has() pseudo-class] Basic support
https://bugs.webkit.org/show_bug.cgi?id=228894

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/has-basic-expected.txt:
  • web-platform-tests/css/selectors/has-relative-argument-expected.txt:
  • web-platform-tests/css/selectors/parsing/parse-has-expected.txt:
  • web-platform-tests/dom/nodes/Element-closest-expected.txt:

Source/WebCore:

This patch adds basic support for :has() pseudo-class, https://drafts.csswg.org/selectors/#has-pseudo.
The initial implementation is very inefficient. There is no support for invalidation yet.

The feature is disabled by default.

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::selectorText const):

Serialization.

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

(WebCore::SelectorChecker::checkOne const):

Selector matching using nested SelectorChecker.

  • css/SelectorPseudoClassAndCompatibilityElementMap.in:
  • css/parser/CSSParserContext.cpp:

(WebCore::operator==):
(WebCore::add):

  • css/parser/CSSParserContext.h:
  • css/parser/CSSParserSelector.h:

(WebCore::CSSParserSelector::setPseudoClassType):

  • css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::consumeForgivingSelectorList):

Add a template version of the forgiving parsing function.

(WebCore::CSSSelectorParser::consumeForgivingComplexSelectorList):

Use it for complex selector lists.

(WebCore::CSSSelectorParser::consumeForgivingRelativeSelectorList):

And the new relative selector lists.

(WebCore::CSSSelectorParser::consumeRelativeSelector):

Parse relative selectors like "> foo".

(WebCore::CSSSelectorParser::consumePseudo):
(WebCore::CSSSelectorParser::consumeComplexForgivingSelectorList): Deleted.

  • css/parser/CSSSelectorParser.h:
  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addPseudoClassType):

No compiler support yet.

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Add off-by-default HasPseudoClassEnabled preference value.

9:53 PM Changeset in webkit [281294] by mmaxfield@apple.com
  • 9 edits in trunk/Source/WebCore

The fast text codepath does not handle run initial advances
https://bugs.webkit.org/show_bug.cgi?id=227979

Reviewed by Alan Bujtas.

This is the next step to delete the complex text codepath from Cocoa ports.

The initial advance contributes to the layout width of text. Its purpose is to move
all the visually successive glyphs to the right. For the leftmost run, WidthIterator
saves this initial advance to the GlyphBuffer, because knowing it is necessary to
compute the paint location of glyphs (inside GlyphBuffer::flatten()). For all other
runs other than the leftmost run, those runs' initial advance is added to the advance
width of whichever glyph ends up being just to the left of the run. In LTR, this is
the last glyph of the last (logical) run, whereas in RTL this is the first glyph of
the next (logical) run.

Because this is just adding infrastructure, it doesn't add any tests yet. This will be
tested when we delete the complex text codepath.

  • platform/graphics/ComplexTextController.h: Because we're going to stop using

ComplexTextController, we should move this (presumably helpful) comment somewhere
where it will be accessible to the Cocoa ports. This would be GlyphBuffer::flatten().

  • platform/graphics/Font.cpp:

(WebCore::Font::applyTransforms const): Return the initial advance.

  • platform/graphics/Font.h: Ditto.
  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::widthOfTextRange const):
(WebCore::FontCascade::widthForSimpleText const): Make sure that the initial advance
contributes to layout width.
(WebCore::FontCascade::layoutSimpleText const): The initial advance is actually NOT
supposed to point directly to the first glyph's paint position. See
https://bugs.webkit.org/show_bug.cgi?id=228180.
(WebCore::FontCascade::drawEmphasisMarks const):

  • platform/graphics/GlyphBuffer.h:

(WebCore::GlyphBuffer::flatten):
(WebCore::GlyphBuffer::isFlattened const):

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::applyFontTransforms): Return the initial advance.
(WebCore::expandWithInitialAdvance):
(WebCore::WidthIterator::applyInitialAdvance): This implements the logic above, where
the initial advance of non-leftmost runs get added to the visually previous glyph's
advance. For LTR, we can just add it directly to the previously-recorded glyph advance.
However, for RTL, we have to save the initial advance to a variable, which is named
m_leftoverInitialAdvance, and apply it when we encounter the next run. This is because
WidthIterator encounters run in logical order.
(WebCore::WidthIterator::commitCurrentFontRange):
(WebCore::WidthIterator::finalize): For RTL, if the last run has an initial advance,
we need to save it to the GlyphBuffer's initial advance field. We know if the last run
has an initial advance because there will still be data in m_leftoverInitialAdvance
left over.

  • platform/graphics/WidthIterator.h:
  • platform/graphics/coretext/FontCoreText.cpp:

(WebCore::Font::applyTransforms const): Return the initial advance.

9:07 PM Changeset in webkit [281293] by mmaxfield@apple.com
  • 7 edits
    1 move in trunk

[Cocoa] Stop honoring any dot-prefixed font names
https://bugs.webkit.org/show_bug.cgi?id=228177

Reviewed by Sam Weinig.

Source/WebCore:

Dot-prefixed fonts are intentionally unsupported. We should stop supporting them.
If authors want to access the various system fonts, they can use system-ui,
ui-serif, ui-monospace, or ui-rounded.

Test: fast/text/font-lookup-dot-prefix-case-sensitive.html

  • platform/cocoa/VersionChecks.h:
  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::isDotPrefixedForbiddenFont):
(WebCore::platformFontLookupWithFamily):

LayoutTests:

  • fast/text/font-lookup-dot-prefix-case-sensitive-expected.html: Renamed from LayoutTests/fast/text/font-lookup-dot-prefix-case-sensitive-expected-mismatch.html.
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
8:53 PM Changeset in webkit [281292] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] The root inlinebox's style is always the IFC's root style
https://bugs.webkit.org/show_bug.cgi?id=228062

Reviewed by Antti Koivisto.

This is in preparation for keeping the inline box structure private to the layout code.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::computeLineLevelVisualAdjustmentsForRuns const):

8:21 PM Changeset in webkit [281291] by mmaxfield@apple.com
  • 11 edits
    6 adds
    1 delete in trunk

[Cocoa] Stop treating the system font as a non-variable font
https://bugs.webkit.org/show_bug.cgi?id=228176

Reviewed by Sam Weinig.

Source/WebCore:

Modern versions of macOS and iOS can treat the system font as a variable font,
and be able to apply weights like "342" instead of just "300" or "400".

Tests: fast/text/variable-system-font-2.html

fast/text/variable-system-font.html

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::preparePlatformFont):

Source/WTF:

  • wtf/PlatformUse.h:

LayoutTests:

Update tests.

  • fast/text/resources/Ahem-trak.ttf: Added. This is a font which has a trak table.
  • fast/text/trak-optimizeLegibility-expected-mismatch.html: Added.
  • fast/text/trak-optimizeLegibility-expected.txt: Removed.
  • fast/text/trak-optimizeLegibility.html:
  • fast/text/variable-system-font-2-expected-mismatch.html: Added.
  • fast/text/variable-system-font-2.html: Added.
  • fast/text/variable-system-font-expected-mismatch.html: Added.
  • fast/text/variable-system-font.html: Added.
  • svg/dom/altGlyph-dom-expected.txt:
  • svg/dom/resources/altGlyph-dom.js:
7:46 PM Changeset in webkit [281290] by Simon Fraser
  • 12 edits in trunk/Source/WebKit

Use an ObjectIdentifier<> for text checker requests
https://bugs.webkit.org/show_bug.cgi?id=229302

Reviewed by Wenson Hsieh.

Introduce TextCheckerRequestID and use it to identify text checker requests in a type-safe
way.

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(headers_for_type):

  • Shared/IdentifierTypes.h:
  • UIProcess/TextCheckerCompletion.cpp:

(WebKit::TextCheckerCompletion::create):
(WebKit::TextCheckerCompletion::TextCheckerCompletion):

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

(WebKit::WebPageProxy::requestCheckingOfString):
(WebKit::WebPageProxy::didFinishCheckingText):
(WebKit::WebPageProxy::didCancelCheckingText):

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

(WebKit::WebEditorClient::requestCheckingOfString):
(WebKit::generateTextCheckingRequestID): Deleted.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::addTextCheckingRequest):
(WebKit::WebPage::didFinishCheckingText):
(WebKit::WebPage::didCancelCheckingText):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
7:35 PM Changeset in webkit [281289] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Fix the apple internal build after r281277
https://bugs.webkit.org/show_bug.cgi?id=229100
<rdar://problem/82145920>

Reviewed by Myles C. Maxfield.

Update code guarded by USE(APPLE_INTERNAL_SDK), such that it works with a Vector<SandboxExtension::Handle>.
Preserve the existing behavior of appending handles and ids in reverse order, but leave a FIXME questioning
the need for this.

  • UIProcess/UserMediaProcessManager.cpp:

(WebKit::UserMediaProcessManager::willCreateMediaStream):

6:41 PM Changeset in webkit [281288] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebCore

Touchbar not showing time scrubbing
https://bugs.webkit.org/show_bug.cgi?id=229269
rdar://81349236

Reviewed by Jer Noble.

AVKit uses canSeek to determine when to show the time scrubber
in the touch bar. This was a synthesized method determined on weither the video
is seekable and has a seekable range set.
Should the value of either boolean change which would impact the final value of
[AVTouchBarPlaybackControlsControlling canSeek] , no observers would be called.
Add the appropriate obj-c methods to explicitly set a dependency between properties
willChange/didChange.
Been unable to reproduce the problem programatically, the issue is highly timing
dependent.
An API test will be added with https://bugs.webkit.org/show_bug.cgi?id=229286.

  • platform/mac/WebPlaybackControlsManager.mm:

(+[WebPlaybackControlsManager keyPathsForValuesAffectingCanSeek]):
(+[WebPlaybackControlsManager keyPathsForValuesAffectingContentDuration]):
(-[WebPlaybackControlsManager setSeekableTimeRanges:]):
(+[WebPlaybackControlsManager keyPathsForValuesAffectingValueCanBeginTouchBarScrubbing]):

6:12 PM Changeset in webkit [281287] by Kocsen Chung
  • 1 copy in tags/Safari-612.1.28.4

Tag Safari-612.1.28.4.

5:38 PM Changeset in webkit [281286] by clopez@igalia.com
  • 1 edit
    1 add
    1 delete in trunk/Tools

[build.webkit.org] Port old unit test with the expected build steps to the new buildbot
https://bugs.webkit.org/show_bug.cgi?id=229311

Reviewed by Aakash Jain.

Port the test that checked every worker and the expected steps to the new buildbot version.
Also delete the file steps_unittest_old.py because the gross of the other tests contained in
this old file are already ported in the current steps_unittests.py

  • CISupport/build-webkit-org/factories_unittest.py: Added.

(TestExpectedBuildSteps):
(TestExpectedBuildSteps.setUp):
(TestExpectedBuildSteps.test_all_expected_results):
(TestExpectedBuildSteps.test_unnecessary_expected_results):

  • CISupport/build-webkit-org/steps_unittest_old.py: Removed.
5:37 PM Changeset in webkit [281285] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Remove redundant inlineBoxEndSet in InlineFormattingContext::computeGeometryForLineContent
https://bugs.webkit.org/show_bug.cgi?id=228054

Reviewed by Antti Koivisto.

It's not used anymore.

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

5:12 PM Changeset in webkit [281284] by Chris Dumez
  • 7 edits in trunk

Implement Crypto.randomUUID()
https://bugs.webkit.org/show_bug.cgi?id=229240

Reviewed by Geoff Garen.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing.

  • web-platform-tests/WebCryptoAPI/randomUUID.https.any-expected.txt:
  • web-platform-tests/WebCryptoAPI/randomUUID.https.any.worker-expected.txt:

Source/WebCore:

Implement Crypto.randomUUID():

Chrome already implements this and Firefox seems to be working on it
(https://bugzilla.mozilla.org/show_bug.cgi?id=1705264).

No new tests, rebaselined existing tests.

  • page/Crypto.cpp:

(WebCore::Crypto::randomUUID const):

  • page/Crypto.h:
  • page/Crypto.idl:
4:58 PM Changeset in webkit [281283] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Remove unused RenderLayerCompositor member variable
https://bugs.webkit.org/show_bug.cgi?id=229257

Reviewed by Alan Bujtas.

m_inPostLayoutUpdate was unused.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateCompositingLayers):

  • rendering/RenderLayerCompositor.h:
4:53 PM Changeset in webkit [281282] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[iOS] 3 imported/w3c/web-platform-tests/css/css-typed-om/ tests are flaky failure.
<rdar://82147623>.

Unreviewed test gardening.

  • platform/ios/TestExpectations:
4:25 PM Changeset in webkit [281281] by Eric Hutchison
  • 3 edits in trunk/LayoutTests

[Mac, iOS Release] imported/w3c/web-platform-tests/worklets/layout-worklet-csp.https.html is a flaky failure.
<rdar://82146367>.

Unreviewed test gardening.

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
4:21 PM Changeset in webkit [281280] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Remove redundant LineBox functions
https://bugs.webkit.org/show_bug.cgi?id=228046

Reviewed by Sam Weinig.

The line box's contentLogicalWidth always matches the root inlinebox's logical width.

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/formattingContexts/inline/InlineFormattingGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::computeLineBoxHeightAndAlignInlineLevelBoxesVertically):

  • layout/formattingContexts/inline/InlineLineBox.cpp:

(WebCore::Layout::LineBox::LineBox):

  • layout/formattingContexts/inline/InlineLineBox.h:

(WebCore::Layout::LineBox::logicalRect const):
(WebCore::Layout::LineBox::logicalWidth const): Deleted.
(WebCore::Layout::LineBox::logicalHeight const): Deleted.
(WebCore::Layout::LineBox::logicalTopLeft const): Deleted.
(WebCore::Layout::LineBox::logicalSize const): Deleted.
(WebCore::Layout::LineBox::contentLogicalWidth const): Deleted.

4:17 PM Changeset in webkit [281279] by Wenson Hsieh
  • 32 edits
    10 deletes in trunk

[iOS] Remove support for the meaningful tap heuristic
https://bugs.webkit.org/show_bug.cgi?id=229298
rdar://82130066

Reviewed by Tim Horton.

Source/WebCore:

See WebKit ChangeLog for more details.

  • page/ChromeClient.h:

(WebCore::ChromeClient::didHandleOrPreventMouseDownOrMouseUpEvent): Deleted.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseDoubleClickEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):

Source/WebKit:

Remove all support for the meaningful tap heuristic, which was used to allow users to toggle tab pill visibility
in earlier versions of the Safari redesign. As of the latest iOS 15 beta, this heuristic is no longer necessary,
so we don't need this SPI support anymore.

  • UIProcess/API/APIUIClient.h:

(API::UIClient::didNotHandleTapAsClick):
(API::UIClient::didTapAtPoint): Deleted.

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

(-[WKWebView _didTapAtPoint:withResult:]): Deleted.

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

(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::didTapAtPoint): Deleted.

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

(WebKit::PageClientImpl::didTapAtPoint): Deleted.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::didTapAtPoint): Deleted.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::didHandleOrPreventMouseDownOrMouseUpEvent): Deleted.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::isPlayingMediaDidChange):

  • WebProcess/WebPage/WebPage.h:

Drive-by fix: initialize m_appHighlightsVisible using the correct type.

(WebKit::WebPage::platformNeedsLayoutForEditorState const):
(WebKit::WebPage::prepareToRunModalJavaScriptDialog):
(WebKit::WebPage::didHandleOrPreventMouseDownOrMouseUpEvent): Deleted.
(WebKit::WebPage::platformIsPlayingMediaDidChange): Deleted.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::completeSyntheticClick):
(WebKit::WebPage::attemptSyntheticClick):
(WebKit::WebPage::handleTwoFingerTapAtPoint):
(WebKit::WebPage::commitPotentialTapFailed):
(WebKit::WebPage::clearSelectionAfterTapIfNeeded):
(WebKit::isProbablyMeaningfulClick): Deleted.
(WebKit::WebPage::didHandleOrPreventMouseDownOrMouseUpEvent): Deleted.
(WebKit::WebPage::platformIsPlayingMediaDidChange): Deleted.

Tools:

Remove test runner support for testing the meaningful tap heuristic.

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

(WTR::InjectedBundle::didReceiveMessageToPage):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::installDidHandleTapCallback): Deleted.
(WTR::TestRunner::callDidHandleTapCallback): Deleted.

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

(WTR::TestController::didHandleTap): Deleted.

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

(WTR::TestInvocation::didHandleTap): Deleted.

  • WebKitTestRunner/TestInvocation.h:
  • WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:

(-[TestRunnerWKWebView _didTapAtPoint:withResult:]): Deleted.

LayoutTests:

Remove all layout tests that exercised the meaningful tap heuristic.

  • fast/events/ios/did-not-handle-meaningful-click-expected.txt: Removed.
  • fast/events/ios/did-not-handle-meaningful-click.html: Removed.
  • fast/events/ios/meaningful-click-when-focusing-body-expected.txt: Removed.
  • fast/events/ios/meaningful-click-when-focusing-body.html: Removed.
  • fast/events/ios/meaningful-click-when-playing-media-expected.txt: Removed.
  • fast/events/ios/meaningful-click-when-playing-media.html: Removed.
  • fast/events/ios/meaningful-click-when-tapping-draggable-content-expected.txt: Removed.
  • fast/events/ios/meaningful-click-when-tapping-draggable-content.html: Removed.
  • fast/events/ios/non-meaningful-click-when-tapping-document-expected.txt: Removed.
  • fast/events/ios/non-meaningful-click-when-tapping-document.html: Removed.
4:13 PM Changeset in webkit [281278] by Aditya Keerthi
  • 5 edits in trunk/Source

Remove has_include guard for _UIDatePickerOverlayPresentation
https://bugs.webkit.org/show_bug.cgi?id=227298
rdar://79970171

Reviewed by Tim Horton.

Source/WebKit:

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/forms/WKDateTimeInputControl.mm:

(-[WKDateTimePicker showDateTimePicker]):

Source/WTF:

  • wtf/PlatformHave.h:
4:02 PM Changeset in webkit [281277] by commit-queue@webkit.org
  • 36 edits in trunk/Source/WebKit

Use Vector<SandboxExtension::Handle> instead of SandboxExtension::HandleArray
https://bugs.webkit.org/show_bug.cgi?id=229100

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

No change in behavior. Just more modern code.

  • GPUProcess/GPUProcessCreationParameters.cpp:

(WebKit::GPUProcessCreationParameters::decode):

  • GPUProcess/GPUProcessCreationParameters.h:
  • NetworkProcess/NetworkResourceLoadParameters.cpp:

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

  • Platform/IPC/FormDataReference.h:

(IPC::FormDataReference::encode const):
(IPC::FormDataReference::decode):

  • Shared/Cocoa/LoadParametersCocoa.mm:

(WebKit::LoadParameters::platformDecode):

  • Shared/Cocoa/SandboxExtensionCocoa.mm:

(WebKit::createHandlesForResources):
(WebKit::SandboxExtension::createReadOnlyHandlesForFiles):
(WebKit::SandboxExtension::createHandlesForMachLookup):
(WebKit::SandboxExtension::createHandlesForIOKitClassExtensions):
(WebKit::SandboxExtension::consumePermanently):
(WebKit::SandboxExtension::HandleArray::HandleArray): Deleted.
(WebKit::SandboxExtension::HandleArray::~HandleArray): Deleted.
(WebKit::SandboxExtension::HandleArray::allocate): Deleted.
(WebKit::SandboxExtension::HandleArray::append): Deleted.
(WebKit::SandboxExtension::HandleArray::operator[]): Deleted.
(WebKit::SandboxExtension::HandleArray::operator[] const): Deleted.
(WebKit::SandboxExtension::HandleArray::size const): Deleted.
(WebKit::SandboxExtension::HandleArray::encode const): Deleted.
(WebKit::SandboxExtension::HandleArray::decode): Deleted.

  • Shared/Databases/IndexedDB/WebIDBResult.cpp:

(WebKit::WebIDBResult::encode const):
(WebKit::WebIDBResult::decode):

  • Shared/Databases/IndexedDB/WebIDBResult.h:

(WebKit::WebIDBResult::WebIDBResult):
(WebKit::WebIDBResult::handles const):

  • Shared/LoadParameters.h:
  • Shared/SandboxExtension.h:

(WebKit::SandboxExtension::Handle::decode):
(WebKit::SandboxExtension::createReadOnlyHandlesForFiles):
(WebKit::SandboxExtension::consumePermanently):
(WebKit::SandboxExtension::HandleArray::at): Deleted.
(WebKit::SandboxExtension::HandleArray::HandleArray): Deleted.
(WebKit::SandboxExtension::HandleArray::~HandleArray): Deleted.
(WebKit::SandboxExtension::HandleArray::allocate): Deleted.
(WebKit::SandboxExtension::HandleArray::append): Deleted.
(WebKit::SandboxExtension::HandleArray::size const): Deleted.
(WebKit::SandboxExtension::HandleArray::operator[] const): Deleted.
(WebKit::SandboxExtension::HandleArray::operator[]): Deleted.
(WebKit::SandboxExtension::HandleArray::begin): Deleted.
(WebKit::SandboxExtension::HandleArray::end): Deleted.
(WebKit::SandboxExtension::HandleArray::begin const): Deleted.
(WebKit::SandboxExtension::HandleArray::end const): Deleted.
(WebKit::SandboxExtension::HandleArray::encode const): Deleted.
(WebKit::SandboxExtension::HandleArray::decode): Deleted.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::decode):

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

(WebKit::WebProcessCreationParameters::decode):

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

(WebKit::WebPageProxy::createSandboxExtensionsIfNeeded):
(WebKit::WebPageProxy::createNetworkExtensionsSandboxExtensions):

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::getPasteboardPathnamesForType):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::performDragOperation):

  • UIProcess/UserMediaProcessManager.cpp:

(WebKit::UserMediaProcessManager::willCreateMediaStream):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::performDragOperation):
(WebKit::WebPageProxy::performDragControllerAction):
(WebKit::WebPageProxy::processNextQueuedMouseEvent):
(WebKit::WebPageProxy::createNetworkExtensionsSandboxExtensions):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPasteboardProxy.h:
  • UIProcess/WebPasteboardProxy.messages.in:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView dropInteraction:performDrop:]):

  • WebProcess/MediaStream/MediaDeviceSandboxExtensions.cpp:

(WebKit::MediaDeviceSandboxExtensions::MediaDeviceSandboxExtensions):
(WebKit::MediaDeviceSandboxExtensions::encode const):
(WebKit::MediaDeviceSandboxExtensions::decode):

  • WebProcess/MediaStream/MediaDeviceSandboxExtensions.h:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::getPathnamesForType):

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::consumeNetworkExtensionSandboxExtensions):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::mouseEvent):
(WebKit::WebPage::didReceivePolicyDecision):
(WebKit::WebPage::performDragControllerAction):
(WebKit::WebPage::extendSandboxForFilesFromOpenPanel):
(WebKit::WebPage::consumeSandboxExtensions):
(WebKit::WebPage::consumeNetworkExtensionSandboxExtensions):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::unblockPreferenceService):
(WebKit::WebProcess::unblockServicesRequiredByAccessibility):

3:48 PM Changeset in webkit [281276] by Simon Fraser
  • 14 edits
    1 add in trunk/Source/WebKit

Replace the uint64_t used to identify taps with an ObjectIdentifier<> type
https://bugs.webkit.org/show_bug.cgi?id=229278

Reviewed by Wenson Hsieh.

Interaction code used "uint64_t requestID" to identify taps, but there are other
things that used "uint64_t requestID", which may result in bugs.

Fix by using a strongly typed ObjectIdentifier<TapIdentifierType> to identify taps.
This is defined in IdentifierTypes.h since I expect to add more of them.

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(headers_for_type):

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

(WebKit::PageClientImpl::disableDoubleTapGesturesDuringTapIfNecessary):
(WebKit::PageClientImpl::handleSmartMagnificationInformationForPotentialTap):
(WebKit::PageClientImpl::didGetTapHighlightGeometries):

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

(-[WKContentView _didGetTapHighlightForRequest:color:quads:topLeftRadius:topRightRadius:bottomLeftRadius:bottomRightRadius:nodeHasBuiltInClickHandling:]):
(-[WKContentView _disableDoubleTapGesturesDuringTapIfNecessary:]):
(-[WKContentView _handleSmartMagnificationInformationForPotentialTap:renderRect:fitEntireRect:viewportMinimumScale:viewportMaximumScale:nodeIsRootLevel:]):
(-[WKContentView nextTapIdentifier]):
(-[WKContentView _highlightLongPressRecognized:]):
(-[WKContentView _twoFingerSingleTapGestureRecognized:]):
(-[WKContentView _singleTapIdentified:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::handleTwoFingerTapAtPoint):
(WebKit::WebPageProxy::potentialTapAtPosition):
(WebKit::WebPageProxy::tapHighlightAtPosition):
(WebKit::WebPageProxy::didGetTapHighlightGeometries):
(WebKit::WebPageProxy::disableDoubleTapGesturesDuringTapIfNecessary):
(WebKit::WebPageProxy::handleSmartMagnificationInformationForPotentialTap):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::sendTapHighlightForNodeIfNecessary):
(WebKit::WebPage::handleTwoFingerTapAtPoint):
(WebKit::WebPage::potentialTapAtPosition):
(WebKit::WebPage::tapHighlightAtPosition):

3:32 PM Changeset in webkit [281275] by Megan Gardner
  • 2 edits in trunk/Tools

Turn on TestWebKitAPI.WKAttachmentTests.CopyAndPasteBetweenWebViews as it is now passing again.
https://bugs.webkit.org/show_bug.cgi?id=204969

Reviewed by Tim Horton.

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(TestWebKitAPI::TEST):

3:28 PM Changeset in webkit [281274] by Andres Gonzalez
  • 15 edits in trunk

Rename AccessibilityUIElement::setSelectedVisibleTextRange to setSelectedTextMarkerRange for naming consistency and maintainability.
https://bugs.webkit.org/show_bug.cgi?id=229290
<rdar://problem/82128453>

Reviewed by Chris Fleizach.

Tools:

Renamed this method for consistency and to reflect what it is actually
doing. The goal is to avoid confusion with methods for VisiblePosition,
VisibleSelection and so forth, which are Core objects not exposed to AX
clients.

  • DumpRenderTree/AccessibilityUIElement.cpp:

(setSelectedTextMarkerRangeCallback):
(AccessibilityUIElement::setSelectedTextMarkerRange):
(AccessibilityUIElement::getJSClass):
(setSelectedVisibleTextRangeCallback): Deleted.
(AccessibilityUIElement::setSelectedVisibleTextRange): Deleted.

  • DumpRenderTree/AccessibilityUIElement.h:
  • DumpRenderTree/ios/AccessibilityUIElementIOS.mm:

(AccessibilityUIElement::setSelectedTextMarkerRange):
(AccessibilityUIElement::setSelectedVisibleTextRange): Deleted.

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(AccessibilityUIElement::setSelectedTextMarkerRange):
(AccessibilityUIElement::setSelectedVisibleTextRange): Deleted.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::setSelectedTextMarkerRange):
(WTR::AccessibilityUIElement::setSelectedVisibleTextRange): Deleted.

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::setSelectedTextMarkerRange):
(WTR::AccessibilityUIElement::setSelectedVisibleTextRange): Deleted.

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::setSelectedTextMarkerRange):
(WTR::AccessibilityUIElement::setSelectedVisibleTextRange): Deleted.

  • WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp:

(WTR::AccessibilityUIElement::setSelectedTextMarkerRange):
(WTR::AccessibilityUIElement::setSelectedVisibleTextRange): Deleted.

LayoutTests:

Updated all test files to use new name.

  • accessibility/mac/selected-visible-position-range.html:
  • accessibility/mac/selection-sync.html:
  • accessibility/mac/wk1-set-selected-text-marker-range-input-element.html:
3:25 PM Changeset in webkit [281273] by Megan Gardner
  • 5 edits in trunk/Source/WebKitLegacy

Remove old unused code and out of date comments.
https://bugs.webkit.org/show_bug.cgi?id=229210

Reviewed by Anders Carlsson.

Source/WebKitLegacy/ios:

  • WebKit.iOS.exp:

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:
  • WebView/WebViewPrivate.h:
3:23 PM Changeset in webkit [281272] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[Line layout] "zero width space" (U+200B) is a breaking space
https://bugs.webkit.org/show_bug.cgi?id=227858

Reviewed by Antti Koivisto.

This is a workaround for handling mismatching prior-context content in break iterators.

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::endsWithSoftWrapOpportunity):

2:59 PM Changeset in webkit [281271] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Add support for negative horizontal margin (inline box)
https://bugs.webkit.org/show_bug.cgi?id=227837

Reviewed by Antti Koivisto.

When building up the line for line breaking, each inline item is placed adjacent with no gaps
in-between the neighboring entries. They are considered atomic with their margins, padding, borders and content width.
Later when we form the inline runs out of these entries, we offset them by their horizontal margin values.

  • layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::appendInlineBoxStart):

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForChild):

  • layout/integration/LayoutIntegrationCoverage.h:
2:25 PM Changeset in webkit [281270] by ddkilzer@apple.com
  • 5 edits in trunk/Source/WTF

[WTF] Fix static analyzer warnings for clang tidy bugprone-move-forwarding-reference checker
<https://webkit.org/b/229114>

Reviewed by Darin Adler.

  • wtf/Deque.h:

(WTF::inlineCapacity>::appendAndBubble):

  • wtf/Scope.h:

(WTF::ScopeExit::ScopeExit):

  • wtf/ScopedLambda.h:

(WTF::scopedLambda):

  • wtf/SharedTask.h:

(WTF::createSharedTask):

  • Replace WTFMove() with std::forward<>().
1:50 PM Changeset in webkit [281269] by Russell Epstein
  • 8 edits in branches/safari-612-branch/Source

Versioning.

WebKit-7612.2.1

1:42 PM Changeset in webkit [281268] by Russell Epstein
  • 44 edits
    8 deletes in branches/safari-612.1.29-branch

Revert "Add support for RTCDtlsTransport"

This reverts commit r281225.

1:42 PM Changeset in webkit [281267] by Russell Epstein
  • 3 edits in branches/safari-612.1.29-branch/Source/WebCore

Revert "RTCPeerConnection::m_transceiverSet does not need to be allocated separately from its RTCPeerConnection"

This reverts commit r281231.

1:42 PM Changeset in webkit [281266] by Russell Epstein
  • 24 edits in branches/safari-612.1.29-branch

Revert "Implement ::backdrop pseudo element"

This reverts commit r281229.

1:42 PM Changeset in webkit [281265] by Russell Epstein
  • 3 edits in branches/safari-612.1.29-branch/Source/WebCore

Revert "Port HTMLDetailsElement to use modern event handling code"

This reverts commit r281230.

1:36 PM Changeset in webkit [281264] by Russell Epstein
  • 1 copy in branches/safari-612.1.29-branch

New branch.

1:29 PM Changeset in webkit [281263] by Russell Epstein
  • 44 edits
    8 deletes in branches/safari-612-branch

Revert "Add support for RTCDtlsTransport"

This reverts commit r281225.

1:29 PM Changeset in webkit [281262] by Russell Epstein
  • 3 edits in branches/safari-612-branch/Source/WebCore

Revert "RTCPeerConnection::m_transceiverSet does not need to be allocated separately from its RTCPeerConnection"

This reverts commit r281231.

1:29 PM Changeset in webkit [281261] by Russell Epstein
  • 24 edits in branches/safari-612-branch

Revert "Implement ::backdrop pseudo element"

This reverts commit r281229.

1:29 PM Changeset in webkit [281260] by Russell Epstein
  • 3 edits in branches/safari-612-branch/Source/WebCore

Revert "Port HTMLDetailsElement to use modern event handling code"

This reverts commit r281230.

1:02 PM Changeset in webkit [281259] by Alan Bujtas
  • 16 edits in trunk

[LFC][IFC] Add support for overflow-wrap: anywhere
https://bugs.webkit.org/show_bug.cgi?id=227695

LayoutTests/imported/w3c:

Reviewed by Antti Koivisto.

  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-anywhere-span-002-expected.txt:
  • web-platform-tests/css/css-text/parsing/overflow-wrap-computed-expected.txt:
  • web-platform-tests/css/css-text/parsing/overflow-wrap-valid-expected.txt:
  • web-platform-tests/css/css-text/parsing/word-wrap-computed-expected.txt:
  • web-platform-tests/css/css-text/parsing/word-wrap-valid-expected.txt:

Source/WebCore:

Reviewed by Antti Koivisto.

Adjust the line breaking logic in IFC to support "overflow-wrap: anywhere".
From the line breaking point of view, "anywhere" and "break-word" work the same way
(i.e. an unbreakable content can be broken at an arbitrary position if there are no other, previous break points in the line).

https://drafts.csswg.org/css-text-3/#overflow-wrap-property

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator OverflowWrap const):

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::wordBreakBehavior const):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::breakWords const):

  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<):

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

LayoutTests:

Reviewed by Antti Koivisto.

12:58 PM Changeset in webkit [281258] by commit-queue@webkit.org
  • 15 edits in trunk/Source

Remove more non-inclusive language from Source
https://bugs.webkit.org/show_bug.cgi?id=229230

Patch by Alex Christensen <achristensen@webkit.org> on 2021-08-19
Reviewed by Myles C. Maxfield.

Source/WebCore:

No change in behavior.

  • WebCore.order:
  • features.json:

Source/WebInspectorUI:

  • UserInterface/External/three.js/three.js:

(return.parseTrackName):
(parseTrackName):

  • UserInterface/Views/ConsoleMessageView.js:

(WI.ConsoleMessageView.prototype._formatWithSubstitutionString.styleFormatter):
(WI.ConsoleMessageView.prototype._formatWithSubstitutionString.isAllowedProperty):
(WI.ConsoleMessageView.prototype._formatWithSubstitutionString.isWhitelistedProperty): Deleted.

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype.populateDOMNodeContextMenu):

Source/WebKit:

  • mac/WebKit2.order:

Source/WebKitLegacy/mac:

  • WebKit.order:
  • WebView/WebViewPrivate.h:

Source/WTF:

  • icu/unicode/uspoof.h:

This comment change comes from upstream ICU.

  • wtf/URL.h:
12:46 PM Changeset in webkit [281257] by Jonathan Bedard
  • 3 edits in trunk/Tools

[run-webkit-tests] Handle json crash logs (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=229288
<rdar://problem/77074039>

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/common/system/crashlogs.py:

(CrashLogs._parse_darwin_crash_log): Attempt to parse crash logs as json, since Monterey .ips
(CrashLogs._find_newest_log_darwin.is_crash_log):

  • Scripts/webkitpy/common/system/crashlogs_unittest.py:
12:44 PM Changeset in webkit [281256] by Russell Epstein
  • 1 copy in branches/safari-612-branch

New branch.

11:56 AM Changeset in webkit [281255] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[iOS 15 wk2] storage/indexeddb/dont-wedge-private.html is a flaky failure.
rdar://82134088.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
11:24 AM Changeset in webkit [281254] by Simon Fraser
  • 11 edits in trunk/Source

Rename Element::clientRect() which does not return a value in web-exposed "client" coordinates
https://bugs.webkit.org/show_bug.cgi?id=229243

Reviewed by Wenson Hsieh.

The result of Element::clientRect() is in the coordinate space of the root view,
not in the space of the Element's Frame, so does not match the other functions on Element
with "client" in the name.

Rename to Element::boundingBoxInRootViewCoordinates() for clarity.

Source/WebCore:

  • dom/Element.cpp:

(WebCore::Element::boundingBoxInRootViewCoordinates const):
(WebCore::Element::clientRect const): Deleted.

  • dom/Element.h:
  • html/MediaElementSession.cpp:

(WebCore::isElementMainContentForPurposesOfAutoplay):
(WebCore::isElementRectMostlyInMainFrame):

  • page/Page.cpp:

(WebCore::Page::editableElementsInRect const):

Source/WebKit:

  • WebProcess/WebCoreSupport/WebValidationMessageClient.cpp:

(WebKit::WebValidationMessageClient::showValidationMessage):
(WebKit::WebValidationMessageClient::updateValidationBubbleStateIfNeeded):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::contextForElement const):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::isObscuredElement):
(WebKit::WebPage::textInputContextsInRect):

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebValidationMessageClient.mm:

(WebValidationMessageClient::showValidationMessage):
(WebValidationMessageClient::updateValidationBubbleStateIfNeeded):

11:12 AM Changeset in webkit [281253] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ Win EWS ] http/tests/security/no-javascript-refresh-spaces.py is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=229300

Unreviewed test gardening.

  • platform/win/TestExpectations:
11:05 AM Changeset in webkit [281252] by ntim@apple.com
  • 4 edits in trunk

Top layer: handle display: contents and non out-of-flow position values
https://bugs.webkit.org/show_bug.cgi?id=229093

Reviewed by Simon Fraser.

From: https://fullscreen.spec.whatwg.org/#new-stacking-layer
If its specified display property is contents, it computes to block.
If its specified position property is not absolute or fixed, it computes to absolute.

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

Source/WebCore:

  • style/StyleAdjuster.cpp:

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

LayoutTests:

10:45 AM Changeset in webkit [281251] by ntim@apple.com
  • 8 edits
    43 copies
    4 adds
    1 delete in trunk/LayoutTests

Re-import html/semantics/interactive-elements/the-dialog-element WPT - August 19th 2021
https://bugs.webkit.org/show_bug.cgi?id=229297

Unreviewed.

Also removed LayoutTests/imported/blink/dialog since the tests are now in the WPT repo.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-descendant-selector-expected.html: Renamed from LayoutTests/imported/blink/dialog/backdrop-descendant-selector-expected.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-descendant-selector.html: Renamed from LayoutTests/imported/blink/dialog/backdrop-descendant-selector.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-does-not-inherit-expected.html: Renamed from LayoutTests/imported/blink/dialog/backdrop-does-not-inherit-expected.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-does-not-inherit.html: Renamed from LayoutTests/imported/blink/dialog/backdrop-does-not-inherit.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-dynamic-display-none-expected.html: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-dynamic-display-none.html: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-dynamic-style-change-expected.html: Renamed from LayoutTests/imported/blink/dialog/backdrop-dynamic-style-change-expected.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-dynamic-style-change.html: Renamed from LayoutTests/imported/blink/dialog/backdrop-dynamic-style-change.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-in-flow-expected.html: Renamed from LayoutTests/imported/blink/dialog/backdrop-in-flow-expected.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-in-flow.html: Renamed from LayoutTests/imported/blink/dialog/backdrop-in-flow.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-stacking-order-expected.html: Renamed from LayoutTests/imported/blink/dialog/backdrop-stacking-order-expected.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-stacking-order.html: Renamed from LayoutTests/imported/blink/dialog/backdrop-stacking-order.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/centering.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-cancel-with-input.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialogs-with-no-backdrop-expected.html: Renamed from LayoutTests/imported/blink/dialog/dialogs-with-no-backdrop-expected.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialogs-with-no-backdrop.html: Renamed from LayoutTests/imported/blink/dialog/dialogs-with-no-backdrop.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dont-share-style-to-top-layer-expected.html: Renamed from LayoutTests/imported/blink/dialog/dont-share-style-to-top-layer-expected.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dont-share-style-to-top-layer.html: Renamed from LayoutTests/imported/blink/dialog/dont-share-style-to-top-layer.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/element-removed-from-top-layer-has-original-position-expected.html: Renamed from LayoutTests/imported/blink/dialog/element-removed-from-top-layer-has-original-position-expected.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/element-removed-from-top-layer-has-original-position.html: Renamed from LayoutTests/imported/blink/dialog/element-removed-from-top-layer-has-original-position.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-node-is-not-highlighted-expected.html: Renamed from LayoutTests/imported/blink/dialog/inert-node-is-not-highlighted-expected.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-node-is-not-highlighted.html: Renamed from LayoutTests/imported/blink/dialog/inert-node-is-not-highlighted.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-backdrop-expected.html: Renamed from LayoutTests/imported/blink/dialog/modal-dialog-backdrop-expected.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-backdrop.html: Renamed from LayoutTests/imported/blink/dialog/modal-dialog-backdrop.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-display-contents-expected.html: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-display-contents.html: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-generated-content-expected.html: Renamed from LayoutTests/imported/blink/dialog/modal-dialog-generated-content-expected.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-generated-content.html: Renamed from LayoutTests/imported/blink/dialog/modal-dialog-generated-content.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-replaced-renderer-expected.html: Renamed from LayoutTests/imported/blink/dialog/modal-dialog-in-replaced-renderer-expected.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-replaced-renderer.html: Renamed from LayoutTests/imported/blink/dialog/modal-dialog-in-replaced-renderer.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-table-column-expected.html: Renamed from LayoutTests/imported/blink/dialog/modal-dialog-in-table-column-expected.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-table-column.html: Renamed from LayoutTests/imported/blink/dialog/modal-dialog-in-table-column.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-sibling-expected.html: Renamed from LayoutTests/imported/blink/dialog/modal-dialog-sibling-expected.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-sibling.html: Renamed from LayoutTests/imported/blink/dialog/modal-dialog-sibling.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/removed-element-is-removed-from-top-layer-expected.html: Renamed from LayoutTests/imported/blink/dialog/removed-element-is-removed-from-top-layer-expected.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/removed-element-is-removed-from-top-layer.html: Renamed from LayoutTests/imported/blink/dialog/removed-element-is-removed-from-top-layer.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/resources/dialog.css: Renamed from LayoutTests/imported/blink/dialog/resources/dialog.css.

(.pseudodialog):

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/resources/w3c-import.log:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-containing-block-expected.html: Renamed from LayoutTests/imported/blink/dialog/top-layer-containing-block-expected.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-containing-block.html: Renamed from LayoutTests/imported/blink/dialog/top-layer-containing-block.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-display-none-expected.html: Renamed from LayoutTests/imported/blink/dialog/top-layer-display-none-expected.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-display-none.html: Renamed from LayoutTests/imported/blink/dialog/top-layer-display-none.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-nesting-expected.html: Renamed from LayoutTests/imported/blink/dialog/top-layer-nesting-expected.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-nesting.html: Renamed from LayoutTests/imported/blink/dialog/top-layer-nesting.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-stacking-correct-order-remove-readd-expected.html: Renamed from LayoutTests/imported/blink/dialog/top-layer-stacking-correct-order-remove-readd-expected.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-stacking-correct-order-remove-readd.html: Renamed from LayoutTests/imported/blink/dialog/top-layer-stacking-correct-order-remove-readd.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-stacking-dynamic-expected.html: Renamed from LayoutTests/imported/blink/dialog/top-layer-stacking-dynamic-expected.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-stacking-dynamic.html: Renamed from LayoutTests/imported/blink/dialog/top-layer-stacking-dynamic.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-stacking-expected.html: Renamed from LayoutTests/imported/blink/dialog/top-layer-stacking-expected.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-stacking.html: Renamed from LayoutTests/imported/blink/dialog/top-layer-stacking.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/w3c-import.log:

LayoutTests:

https://github.com/web-platform-tests/wpt/commit/02c0e1b2b1b316a20d5377a202d83799794ce510

10:23 AM Changeset in webkit [281250] by dino@apple.com
  • 1 edit in trunk/Source/WebCore/Configurations/WebCoreTestSupport.xcconfig

Build fix after r281245.

Link with Metal.framework.

  • Configurations/WebCoreTestSupport.xcconfig:
10:14 AM Changeset in webkit [281249] by Russell Epstein
  • 1 copy in tags/Safari-612.1.27.0.26

Tag Safari-612.1.27.0.26.

9:43 AM Changeset in webkit [281248] by Eric Hutchison
  • 4 edits in trunk/LayoutTests

[Mac, iOS] imported/w3c/web-platform-tests/html/rendering/replaced-elements/images/revoked-blob-print.html is an image-only failure.
https://bugs.webkit.org/show_bug.cgi?id=229291.

Unreviewed test gardening.

  • platform/ios/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
9:38 AM Changeset in webkit [281247] by Simon Fraser
  • 7 edits in trunk/Source

Rename EventHandler::sendScrollEvent() to scheduleScrollEvent() since the event is not sent synchronously
https://bugs.webkit.org/show_bug.cgi?id=229256

Reviewed by Geoffrey Garen.

Rename EventHandler::sendScrollEvent() and FrameView::sendScrollEvent()
to scheduleScrollEvent() since the event dispatch happens via the next rendering update.

Source/WebCore:

  • page/EventHandler.cpp:

(WebCore::EventHandler::scheduleScrollEvent):
(WebCore::EventHandler::sendScrollEvent): Deleted.

  • page/EventHandler.h:
  • page/FrameView.cpp:

(WebCore::FrameView::FrameView):
(WebCore::FrameView::scrollPositionChanged):
(WebCore::FrameView::scheduleScrollEvent):
(WebCore::FrameView::sendScrollEvent): Deleted.

  • page/FrameView.h:

Source/WebKitLegacy/mac:

  • WebView/WebFrame.mm:

(-[WebFrame sendScrollEvent]):

9:32 AM Changeset in webkit [281246] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Fix the typo in horiontalRubberbandAmountInContentCoordinates
https://bugs.webkit.org/show_bug.cgi?id=229255

Reviewed by Tim Horton.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _contentBoundsExtendedForRubberbandingWithScale:]):

9:28 AM Changeset in webkit [281245] by dino@apple.com
  • 7 edits
    4 adds in trunk

WebGL via Metal experimental feature does not correctly toggle metal backend
https://bugs.webkit.org/show_bug.cgi?id=229267
<rdar://81855735>

Source/WebCore:

Patch by Kyle Piddington <Kyle Piddington> on 2021-08-19
Reviewed by Dean Jackson.

GraphicsContextGLAttributes defines 'useMetal' as 'true' by default.
Since this branch was only checking if Metal was enabled via the
setting, rather than checking the status of the flag, the metal backend
was never disabled, even when requested.

Tests: webgl/webgl-metal-disabled.html

webgl/webgl-metal-enabled.html

  • WebCore.xcodeproj/project.pbxproj:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::create):

  • testing/Internals.cpp:

(WebCore::Internals::requestedMetal):

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

(WebCore::Internals::platformSupportsMetal):

LayoutTests:

Add tests to verify WebGL feature flag works as intended.

Patch by Kyle Piddington <Kyle Piddington> on 2021-08-19
Reviewed by Dean Jackson.

  • webgl/webgl-metal-disabled-expected.txt: Added.
  • webgl/webgl-metal-disabled.html: Added.
  • webgl/webgl-metal-enabled-expected.txt: Added.
  • webgl/webgl-metal-enabled.html: Added.
9:26 AM Changeset in webkit [281244] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Avoid DOMRect overhead in VTTRegion
https://bugs.webkit.org/show_bug.cgi?id=229249

Reviewed by Eric Carlson.

Use Element::boundingClientRect() instead of Element::getBoundingClientRect() to
avoid DOMRect overhead. No behavior change.

  • html/track/VTTRegion.cpp:

(WebCore::VTTRegion::displayLastTextTrackCueBox):
(WebCore::VTTRegion::willRemoveTextTrackCueBox):

9:23 AM Changeset in webkit [281243] by Simon Fraser
  • 5 edits in trunk/Source/WebKit

Rename WebPageProxy::headerHeight() and related to make it clear they are for printing
https://bugs.webkit.org/show_bug.cgi?id=229242

Reviewed by Tim Horton.

Disambiguate WebPageProxy::headerHeight(), used for printing, from FrameView::headerHeight()
which is not.

  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::headerHeightForPrinting):
(WebKit::WebPageProxy::footerHeightForPrinting):
(WebKit::WebPageProxy::drawHeaderForPrinting):
(WebKit::WebPageProxy::drawFooterForPrinting):
(WebKit::WebPageProxy::headerHeight): Deleted.
(WebKit::WebPageProxy::footerHeight): Deleted.
(WebKit::WebPageProxy::drawHeader): Deleted.
(WebKit::WebPageProxy::drawFooter): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView _adjustPrintingMarginsForHeaderAndFooter]):
(-[WKPrintingView drawPageBorderWithSize:]):

9:10 AM Changeset in webkit [281242] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Use a Ref<> argument to keep WebPage alive in TiledCoreAnimationDrawingArea::dispatchAfterEnsuringUpdatedScrollPosition()
https://bugs.webkit.org/show_bug.cgi?id=229239

Reviewed by Tim Horton.

Replace a manual ref()/deref() with a makeRef() argument to the function.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::dispatchAfterEnsuringUpdatedScrollPosition):

9:08 AM Changeset in webkit [281241] by Antti Koivisto
  • 21 edits in trunk

TextDecorationPainter should not depend on LegacyInlineTextBox
https://bugs.webkit.org/show_bug.cgi?id=228814

Reviewed by Alan Bujtas.

Source/WebCore:

Use the inline iterator instead.

  • layout/integration/LayoutIntegrationLineIterator.h:

(WebCore::LayoutIntegration::LineIterator::isFirst const):
(WebCore::LayoutIntegration::PathLine::baselineType const):

  • layout/integration/LayoutIntegrationLineIteratorLegacyPath.h:

(WebCore::LayoutIntegration::LineIteratorLegacyPath::baselineType const):

  • layout/integration/LayoutIntegrationLineIteratorModernPath.h:

(WebCore::LayoutIntegration::LineIteratorModernPath::baselineType const):

  • layout/integration/LayoutIntegrationRunIterator.cpp:

(WebCore::LayoutIntegration::RunIterator::line const):
(WebCore::LayoutIntegration::PathRun::line const):
(WebCore::LayoutIntegration::PathRun::style const):
(WebCore::LayoutIntegration::textRunFor):

  • layout/integration/LayoutIntegrationRunIterator.h:

(WebCore::LayoutIntegration::PathTextRun::renderer const):

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:
  • rendering/LegacyInlineFlowBox.cpp:

(WebCore::LegacyInlineFlowBox::maxLogicalBottomForTextDecorationLine const): Deleted.
(WebCore::LegacyInlineFlowBox::minLogicalTopForTextDecorationLine const): Deleted.

  • rendering/LegacyInlineFlowBox.h:
  • rendering/LegacyInlineTextBox.cpp:

(WebCore::LegacyInlineTextBox::paintMarkedTextDecoration):

  • rendering/LegacyLineLayout.cpp:

(WebCore::setLogicalWidthForTextRun):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::enclosingRendererWithTextDecoration const): Deleted.

  • rendering/RenderElement.h:
  • rendering/TextDecorationPainter.cpp:

(WebCore::TextDecorationPainter::paintTextDecoration):

  • rendering/TextDecorationPainter.h:

(WebCore::TextDecorationPainter::setTextRunIterator):
(WebCore::TextDecorationPainter::setInlineTextBox): Deleted.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeAffectsVisualOverflow const):

  • style/InlineTextBoxStyle.cpp:

(WebCore::isAncestorAndWithinBlock):
(WebCore::minLogicalTopForTextDecorationLine):
(WebCore::maxLogicalBottomForTextDecorationLine):

Moved from LegacyInlineFlowBox.

(WebCore::enclosingRendererWithTextDecoration):

Moved from RenderElement.

(WebCore::computeUnderlineOffset):
(WebCore::visualOverflowForDecorations):

  • style/InlineTextBoxStyle.h:

LayoutTests:

Fix the expected results to not depend on inline culling (which this patch ignores).

  • fast/text/text-underline-first-line-decoration-expected.html:
  • fast/text/text-underline-vertical-first-line-decoration-expected.html:
9:05 AM Changeset in webkit [281240] by Antti Koivisto
  • 4 edits
    2 moves in trunk/Source/WebCore

Move MarkedTextStyle into StyledMarkedText scope
https://bugs.webkit.org/show_bug.cgi?id=228956

Reviewed by Alan Bujtas.

As StyledMarkedText::Style.
Also other cleanups and a file rename to match the type.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/LegacyInlineTextBox.cpp:

(WebCore::LegacyInlineTextBox::paint):

  • rendering/StyledMarkedText.cpp: Renamed from Source/WebCore/rendering/MarkedTextStyle.cpp.

(WebCore::resolveStyleForMarkedText):
(WebCore::computeStyleForUnmarkedMarkedText):
(WebCore::StyledMarkedText::subdivideAndResolve):
(WebCore::coalesceAdjacent):
(WebCore::StyledMarkedText::coalesceAdjacentWithEqualBackground):
(WebCore::StyledMarkedText::coalesceAdjacentWithEqualForeground):
(WebCore::StyledMarkedText::coalesceAdjacentWithEqualDecorations):

  • rendering/StyledMarkedText.h: Renamed from Source/WebCore/rendering/MarkedTextStyle.h.
8:51 AM Changeset in webkit [281239] by Simon Fraser
  • 31 edits in trunk/Source/WebCore

Use an OptionSet<MapCoordinatesMode> in place of MapCoordinatesFlags
https://bugs.webkit.org/show_bug.cgi?id=229170

Reviewed by Antti Koivisto.

Replace MapCoordinatesFlags with OptionSet<MapCoordinatesMode>. No behavior
change.

  • html/HTMLAnchorElement.cpp:

(WebCore::appendServerMapMousePosition):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::mapLocalToContainer const):
(WebCore::RenderBox::mapAbsoluteToLocalPoint const):

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

(WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint const):

  • rendering/RenderBoxModelObject.h:
  • rendering/RenderFragmentedFlow.cpp:

(WebCore::RenderFragmentedFlow::mapLocalToContainer const):

  • rendering/RenderFragmentedFlow.h:
  • rendering/RenderGeometryMap.cpp:

(WebCore::RenderGeometryMap::RenderGeometryMap):
(WebCore::RenderGeometryMap::pushMappingsToAncestor):

  • rendering/RenderGeometryMap.h:

(WebCore::RenderGeometryMap::mapCoordinatesFlags const):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::mapLocalToContainer const):

  • rendering/RenderInline.h:
  • rendering/RenderMultiColumnFlow.cpp:

(WebCore::RenderMultiColumnFlow::mapAbsoluteToLocalPoint const):

  • rendering/RenderMultiColumnFlow.h:
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::absoluteBoundingBoxRect const):
(WebCore::RenderObject::localToAbsolute const):
(WebCore::RenderObject::absoluteToLocal const):
(WebCore::RenderObject::absoluteToLocalQuad const):
(WebCore::RenderObject::mapLocalToContainer const):
(WebCore::RenderObject::mapAbsoluteToLocalPoint const):
(WebCore::RenderObject::localToContainerQuad const):
(WebCore::RenderObject::localToContainerPoint const):

  • rendering/RenderObject.h:

(WebCore::RenderObject::localToAbsolute):
(WebCore::RenderObject::absoluteToLocal):
(WebCore::RenderObject::localToAbsoluteQuad const):

  • rendering/RenderObjectEnums.h:
  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::volumeSliderOffsetFromMuteButton const):

  • rendering/RenderView.cpp:

(WebCore::RenderView::mapLocalToContainer const):
(WebCore::RenderView::mapAbsoluteToLocalPoint const):

  • rendering/RenderView.h:
  • rendering/svg/RenderSVGForeignObject.cpp:

(WebCore::RenderSVGForeignObject::mapLocalToContainer const):

  • rendering/svg/RenderSVGForeignObject.h:
  • rendering/svg/RenderSVGInline.cpp:

(WebCore::RenderSVGInline::mapLocalToContainer const):

  • rendering/svg/RenderSVGInline.h:
  • rendering/svg/RenderSVGModelObject.cpp:

(WebCore::RenderSVGModelObject::mapLocalToContainer const):

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

(WebCore::RenderSVGRoot::mapLocalToContainer const):

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

(WebCore::RenderSVGText::mapLocalToContainer const):

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

(WebCore::SVGRenderSupport::mapLocalToContainer):

8:47 AM Changeset in webkit [281238] by Simon Fraser
  • 21 edits
    1 add in trunk/Source

Remove duplicate LayerTreeAsText enums and use an OptionSet<>
https://bugs.webkit.org/show_bug.cgi?id=229226

Reviewed by Antti Koivisto.

GraphicsLayerClient had enum LayerTreeAsTextBehaviorFlags and Frame had an anonymous
enum and typedef unsigned LayerTreeFlags. Clean up by adding LayerTreeAsTextOptions.h
and using OptionSet<LayerTreeAsTextOptions> everywhere.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • page/Frame.h:
  • page/PageOverlayController.cpp:

(WebCore::PageOverlayController::shouldSkipLayerInDump const):

  • page/PageOverlayController.h:
  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::dumpLayer const):
(WebCore::dumpChildren):
(WebCore::GraphicsLayer::dumpProperties const):
(WebCore::GraphicsLayer::layerTreeAsText const):
(showGraphicsLayerTree):

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::dumpLayer):
(WebCore::GraphicsLayer::layerTreeAsText):
(WebCore::GraphicsLayer::dumpAdditionalProperties const):

  • platform/graphics/GraphicsLayerClient.h:

(WebCore::GraphicsLayerClient::shouldSkipLayerInDump const):
(WebCore::GraphicsLayerClient::shouldDumpPropertyForLayer const):

  • platform/graphics/LayerTreeAsTextOptions.h: Added.
  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::dumpAdditionalProperties const):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::dumpInnerLayer):
(WebCore::CoordinatedGraphicsLayer::dumpAdditionalProperties const):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::shouldSkipLayerInDump const):
(WebCore::RenderLayerBacking::shouldDumpPropertyForLayer const):

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

(WebCore::RenderLayerCompositor::layerTreeAsText):

  • rendering/RenderLayerCompositor.h:
  • testing/Internals.cpp:

(WebCore::toLayerTreeAsTextOptions):
(WebCore::Internals::layerTreeAsText const):
(WebCore::Internals::pageOverlayLayerTreeAsText const):
(WebCore::toLayerTreeFlags): Deleted.

  • testing/MockPageOverlayClient.cpp:

(WebCore::MockPageOverlayClient::layerTreeAsText):

  • testing/MockPageOverlayClient.h:
8:46 AM Changeset in webkit [281237] by Simon Fraser
  • 5 edits in trunk/Source/WebCore

Use an enum for the forVisitedLink argument to BuilderState::colorFromPrimitiveValue()
https://bugs.webkit.org/show_bug.cgi?id=229224

Reviewed by Alex Christensen.

Convert the bool argument to an enum class.

  • css/makeprop.pl:

(colorFromPrimitiveValue):

  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyValueCaretColor):
(WebCore::Style::BuilderCustom::applyValueStrokeColor):

  • style/StyleBuilderState.cpp:

(WebCore::Style::BuilderState::colorFromPrimitiveValue const):

  • style/StyleBuilderState.h:
8:32 AM Changeset in webkit [281236] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ Win EWS ] fast/forms/* tests are flaky crashing FAULTING_IP: WebKit!WebCore::FontCache::lastResortFallbackFont+ec [C:\cygwin\home\buildbot\worker\Windows-EWS\build\Source\WebCore\platform\graphics\win\FontCacheWin.cpp @ 424].
https://bugs.webkit.org/show_bug.cgi?id=229009

Unreviewed test gardening.

  • platform/win/TestExpectations:
6:05 AM Changeset in webkit [281235] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

Unable to load downloaded HTML files in Safari
https://bugs.webkit.org/show_bug.cgi?id=229254
<rdar://problem/82051114>

Reviewed by Brent Fulgham.

Check quarantine bits for webarchive files only.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::isQuarantinedAndNotUserApproved):

5:57 AM Changeset in webkit [281234] by Kate Cheney
  • 3 edits
    4 adds in trunk

[App Privacy Report] Some HTTP Redirects from non app initiated requests are marked app initiated
https://bugs.webkit.org/show_bug.cgi?id=229202
<rdar://problem/79467871>

Reviewed by Brent Fulgham.

Source/WebKit:

Tests: http/tests/app-privacy-report/app-attribution-media-redirect.html

http/tests/app-privacy-report/user-attribution-media-redirect.html

The request returned in the completion handler of
NetworkDataTaskCocoa::willPerformHTTPRedirection does not always have
the attribution property of the original request. We should pass it
along and set it.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

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

LayoutTests:

Layout test coverage. This bug was only reproducing with media-related
loading, so these tests redirect to load an mp4.

  • http/tests/app-privacy-report/app-attribution-media-redirect-expected.txt: Added.
  • http/tests/app-privacy-report/app-attribution-media-redirect.html: Added.
  • http/tests/app-privacy-report/user-attribution-media-redirect-expected.txt: Added.
  • http/tests/app-privacy-report/user-attribution-media-redirect.html: Added.
5:23 AM Changeset in webkit [281233] by Philippe Normand
  • 2 edits in trunk/LayoutTests

Unreviewed, GStreamer gardening

  • platform/glib/TestExpectations: http/tests/images/image-supports-video.html no longer crashes.
5:20 AM Changeset in webkit [281232] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Adjust fallback SandboxExtension std::optional<Handle> construction
https://bugs.webkit.org/show_bug.cgi?id=229233

Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-08-19
Reviewed by Carlos Garcia Campos.

In r240512, std::optional<> was adopted as the return type for handle
creation methods in the SandboxExtension class. For no-op methods,
the construction of these return values was done using empty initializer
lists.

The changes here should match pre-r240512 behavior by creating empty
Handle objects and using those to implicitly construct the returning
std::optional<> object. In addition, this avoids compilation breakage
with GCC 8 where ambiguity between possible std::optional<> constructors
is detected.

  • Shared/SandboxExtension.h:

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

2:17 AM Changeset in webkit [281231] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

RTCPeerConnection::m_transceiverSet does not need to be allocated separately from its RTCPeerConnection
https://bugs.webkit.org/show_bug.cgi?id=229183

Reviewed by Eric Carlson.

No change of behavior.

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::addTrack):
(WebCore::RTCPeerConnection::removeTrack):
(WebCore::RTCPeerConnection::getStats):
(WebCore::RTCPeerConnection::doClose):
(WebCore::RTCPeerConnection::addInternalTransceiver):
(WebCore::RTCPeerConnection::getSenders const):
(WebCore::RTCPeerConnection::getReceivers const):
(WebCore::RTCPeerConnection::getTransceivers const):

  • Modules/mediastream/RTCPeerConnection.h:
2:15 AM Changeset in webkit [281230] by ntim@apple.com
  • 3 edits in trunk/Source/WebCore

Port HTMLDetailsElement to use modern event handling code
https://bugs.webkit.org/show_bug.cgi?id=228863

Reviewed by Antti Koivisto.

No behaviour change, follows: https://html.spec.whatwg.org/#details-notification-task-steps

  • html/HTMLDetailsElement.cpp:

(WebCore::HTMLDetailsElement::parseAttribute):
(WebCore::HTMLDetailsElement::toggleOpen):
(WebCore::detailToggleEventSender): Deleted.
(WebCore::HTMLDetailsElement::~HTMLDetailsElement): Deleted.
(WebCore::HTMLDetailsElement::dispatchPendingEvent): Deleted.

  • html/HTMLDetailsElement.h:
2:02 AM Changeset in webkit [281229] by ntim@apple.com
  • 24 edits in trunk

Implement ::backdrop pseudo element
https://bugs.webkit.org/show_bug.cgi?id=227801

Reviewed by Antti Koivisto.

This adds UA styles, RenderTreeBuilder support and WebInspector support for ::backdrop.
Some imported blink tests now start passing, some still need proper top layer support.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-values/ch-empty-pseudo-recalc-on-font-load-expected.txt:

Source/JavaScriptCore:

  • inspector/protocol/CSS.json:

Source/WebCore:

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::pseudoId):

  • css/CSSSelector.h:
  • css/SelectorPseudoElementTypeMap.in:
  • css/dialog.css:

(dialog::backdrop):
(::backdrop):

  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::protocolValueForPseudoId):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::backdropRenderer const):
(WebCore::RenderElement::setBackdropRenderer):

  • rendering/RenderElement.h:
  • rendering/RenderObject.h:
  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<):

  • rendering/style/RenderStyleConstants.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::destroyAndCleanUpAnonymousWrappers):

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateAfterDescendants):

  • rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:

(WebCore::RenderTreeUpdater::GeneratedContent::updateBackdropRenderer):

  • rendering/updating/RenderTreeUpdaterGeneratedContent.h:
  • style/StyleTreeResolver.cpp:

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

Source/WebInspectorUI:

  • UserInterface/Controllers/CSSManager.js:

(WI.CSSManager.displayNameForPseudoId):

LayoutTests:

1:46 AM Changeset in webkit [281228] by commit-queue@webkit.org
  • 7 edits in trunk

document.hasFocus() returns true for unfocused pages
https://bugs.webkit.org/show_bug.cgi?id=229139

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-08-19
Reviewed by Adrian Perez de Castro.

Source/WebCore:

We are always claiming to be focused when the document in the active window even if the page is not actually
focused.

  • dom/Document.cpp:

(WebCore::Document::hasFocus const): Check also that page is focused.

Tools:

Add a unit tests to check document.hasFocus() returns false when a web view is in the active window, but not focused.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST): Ensure web view is focused as required by credentials container.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(testWebViewDocumentFocus):
(beforeAll):

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[TestWKWebView focus]):

1:40 AM Changeset in webkit [281227] by youenn@apple.com
  • 26 edits in trunk/Source

Rename MediaPlayer::setVisible to MediaPlayer::setPageIsVisible
https://bugs.webkit.org/show_bug.cgi?id=228837
<rdar://problem/81857023>

Reviewed by Eric Carlson.

Source/WebCore:

No change of behavior, just renaming a method to make its name more accurate.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::visibilityStateChanged):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::loadWithNextMediaEngine):
(WebCore::MediaPlayer::setPageIsVisible):
(WebCore::MediaPlayer::setVisible): Deleted.

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::setVisibleForCanvas):

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::setPageIsVisible):
(WebCore::MediaPlayerPrivateAVFoundation::setVisible): Deleted.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setPageIsVisible):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVisible): Deleted.

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

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setPageIsVisible):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setVisible): Deleted.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/holepunch/MediaPlayerPrivateHolePunch.h:
  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::setPageIsVisible):
(WebCore::MediaPlayerPrivateMediaFoundation::setVisible): Deleted.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
  • platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:

(WebCore::MockMediaPlayerMediaSource::setPageIsVisible):
(WebCore::MockMediaPlayerMediaSource::setVisible): Deleted.

  • platform/mock/mediasource/MockMediaPlayerMediaSource.h:
  • rendering/RenderVideo.cpp:

(WebCore::RenderVideo::willBeDestroyed):
(WebCore::RenderVideo::updatePlayer):

Source/WebKit:

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::setPageIsVisible):
(WebKit::RemoteMediaPlayerProxy::setVisible): Deleted.

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::setPageIsVisible):
(WebKit::MediaPlayerPrivateRemote::setVisible): Deleted.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:

Source/WebKitLegacy/win:

  • FullscreenVideoController.cpp:

(FullscreenVideoController::exitFullscreen):

1:22 AM Changeset in webkit [281226] by youenn@apple.com
  • 6 edits in trunk/Source/WebCore

RTCRtpTransceiver does not need an ice transport
https://bugs.webkit.org/show_bug.cgi?id=229186

Reviewed by Eric Carlson.

No change of behavior, we are removing a member from RTCRtpTransceiver which is unused.
We are also updating RTCIceTransport as it does not need to have virtual methods yet.

  • Modules/mediastream/RTCIceTransport.cpp:

(WebCore::RTCIceTransport::~RTCIceTransport):

  • Modules/mediastream/RTCIceTransport.h:
  • Modules/mediastream/RTCIceTransport.idl:
  • Modules/mediastream/RTCRtpTransceiver.cpp:

(WebCore::RTCRtpTransceiver::RTCRtpTransceiver):

  • Modules/mediastream/RTCRtpTransceiver.h:
12:36 AM Changeset in webkit [281225] by youenn@apple.com
  • 44 edits
    5 copies
    3 adds in trunk

Add support for RTCDtlsTransport
https://bugs.webkit.org/show_bug.cgi?id=229133

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCDtlsTransport-getRemoteCertificates-expected.txt:
  • web-platform-tests/webrtc/RTCDtlsTransport-state-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-addIceCandidate-connectionSetup-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-helper-test-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-iceConnectionState.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-iceGatheringState-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-onnegotiationneeded-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-answer-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-offer-expected.txt:
  • web-platform-tests/webrtc/RTCRtpSender-transport.https-expected.txt:
  • web-platform-tests/webrtc/RTCRtpTransceiver.https-expected.txt:
  • web-platform-tests/webrtc/protocol/bundle.https-expected.txt:
  • web-platform-tests/webrtc/protocol/crypto-suite.https-expected.txt:

Source/ThirdParty/libwebrtc:

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:

Source/WebCore:

RTCDtlsTransport is an object representing the transport used by RTCRtp senders and receivers.
Add WebIDL and backend implementation.
In particular, we set sender/receiver transports as per spec when setting the descriptions.
Add support for state and certificates access. Add support for statechange event.

Covered by rebased tests.

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

(WebCore::PeerConnectionBackend::setLocalDescriptionSucceeded):
(WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded):

  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCDtlsTransport.cpp: Added.

(WebCore::RTCDtlsTransport::RTCDtlsTransport):
(WebCore::RTCDtlsTransport::~RTCDtlsTransport):
(WebCore::RTCDtlsTransport::getRemoteCertificates):
(WebCore::RTCDtlsTransport::stop):
(WebCore::RTCDtlsTransport::virtualHasPendingActivity const):
(WebCore::RTCDtlsTransport::onStateChanged):
(WebCore::RTCDtlsTransport::onError):

  • Modules/mediastream/RTCDtlsTransport.h: Added.
  • Modules/mediastream/RTCDtlsTransport.idl: Added.
  • Modules/mediastream/RTCDtlsTransportBackend.h: Added.

(WebCore::operator==):

  • Modules/mediastream/RTCDtlsTransportState.h: Added.
  • Modules/mediastream/RTCDtlsTransportState.idl: Added.
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::getOrCreateDtlsTransport):
(WebCore::RTCPeerConnection::updateTransceiverTransports):
(WebCore::RTCPeerConnection::updateTransceiversAfterSuccessfulLocalDescription):
(WebCore::RTCPeerConnection::updateTransceiversAfterSuccessfulRemoteDescription):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCRtpReceiver.cpp:
  • Modules/mediastream/RTCRtpReceiver.h:
  • Modules/mediastream/RTCRtpReceiver.idl:
  • Modules/mediastream/RTCRtpReceiverBackend.h:
  • Modules/mediastream/RTCRtpSender.cpp:
  • Modules/mediastream/RTCRtpSender.h:
  • Modules/mediastream/RTCRtpSender.idl:
  • Modules/mediastream/RTCRtpSenderBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCDtlsTransportBackend.cpp: Added.

(WebCore::toRTCDtlsTransportState):
(WebCore::LibWebRTCDtlsTransportBackendObserver::LibWebRTCDtlsTransportBackendObserver):
(WebCore::LibWebRTCDtlsTransportBackendObserver::updateState):
(WebCore::LibWebRTCDtlsTransportBackendObserver::start):
(WebCore::LibWebRTCDtlsTransportBackendObserver::stop):
(WebCore::LibWebRTCDtlsTransportBackendObserver::OnStateChange):
(WebCore::LibWebRTCDtlsTransportBackendObserver::OnError):
(WebCore::LibWebRTCDtlsTransportBackend::LibWebRTCDtlsTransportBackend):
(WebCore::LibWebRTCDtlsTransportBackend::~LibWebRTCDtlsTransportBackend):
(WebCore::LibWebRTCDtlsTransportBackend::registerClient):
(WebCore::LibWebRTCDtlsTransportBackend::unregisterClient):

  • Modules/mediastream/libwebrtc/LibWebRTCDtlsTransportBackend.h: Added.
  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.cpp:

(WebCore::LibWebRTCRtpReceiverBackend::rtpDtlsTransportBackend):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.cpp:

(WebCore::LibWebRTCRtpSenderBackend::rtpDtlsTransportBackend):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp:
  • Modules/mediastream/libwebrtc/LibWebRTCUtils.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/EventTargetFactory.in:
12:05 AM Changeset in webkit [281224] by Fujii Hironori
  • 2 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:

Aug 18, 2021:

9:04 PM Changeset in webkit [281223] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

Bug 229264: Leak of CMBufferQueueRef (up to 752 bytes each) in com.apple.WebKit.GPU.Development process
<https://webkit.org/b/229264>
<rdar://problem/82101153>

Reviewed by Anders Carlsson.

Covered by running layout tests with --leaks plus future patch
to check for leaks in the GPU process.

  • platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:

(WebCore::VideoSampleBufferCompressor::initialize):

  • Use adoptCF() to fix the leak since CMBufferQueueCreate() returns a retained object.
8:42 PM Changeset in webkit [281222] by ysuzuki@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

[JSC] Remove op_has_indexed_property related code
https://bugs.webkit.org/show_bug.cgi?id=229271

Reviewed by Saam Barati.

After our new for-in protocol, op_has_indexed_property is removed.
As a result, we can remove many ByValInfo code that is used only
for op_has_indexed_property.

  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::emitLoadForArrayMode): Deleted.

  • jit/JITOpcodes.cpp:

(JSC::JIT::privateCompileHasIndexedProperty): Deleted.

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::privateCompileHasIndexedProperty): Deleted.

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitDoubleLoad): Deleted.
(JSC::JIT::emitContiguousLoad): Deleted.
(JSC::JIT::emitArrayStorageLoad): Deleted.

8:40 PM Changeset in webkit [281221] by ddkilzer@apple.com
  • 6 edits in trunk

Bug 229265: run-webkit-tests --leaks should check for leaks in the GPU process
<https://webkit.org/b/229265>
<rdar://problem/82101453>

Reviewed by Alex Christensen.

Source/WebKit:

  • UIProcess/API/C/WKPage.cpp:

(WKPageGetGPUProcessIdentifier): Add.

  • UIProcess/API/C/WKPagePrivate.h:

(WKPageGetGPUProcessIdentifier): Add.

  • Add function to return the PID for the GPU process.

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::findAndDumpWebKitProcessIdentifiers):

  • Include the GPU process PID if it's enabled when sending a list of PIDs back to run-webkit-tests.

(WTR::TestController::gpuProcessName): Add.

  • WebKitTestRunner/TestController.h:

(WTR::TestController::databaseProcessName): Delete.

  • The implementation was removed a while ago.

(WTR::TestController::gpuProcessName): Add.

8:34 PM Changeset in webkit [281220] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebCore

Leak of CMSampleBufferRef (up to 2.25 KB each) in com.apple.WebKit.GPU.Development process
<https://webkit.org/b/229262>
<rdar://problem/82076765>

Reviewed by Darin Adler.

Covered by running layout tests with --leaks plus future patch
to check for leaks in the GPU process.

  • platform/mediarecorder/cocoa/AudioSampleBufferCompressor.h:

(WebCore::AudioSampleBufferCompressor::sampleBufferWithNumPackets):

  • Update signature to return RetainPtr<CMSampleBufferRef>.
  • platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:

(WebCore::AudioSampleBufferCompressor::sampleBufferWithNumPackets):

  • Update signature to return RetainPtr<CMSampleBufferRef>.
  • Rename sampleBuffer to rawSampleBuffer to match similar pattern used in other code, then use sampleBuffer to store rawSampleBuffer wrapped in a RetainPtr<>.

(WebCore::AudioSampleBufferCompressor::processSampleBuffersUntilLowWaterTime):

  • Add get() to buffer variable since it is now a RetainPtr<>.
6:15 PM Changeset in webkit [281219] by clopez@igalia.com
  • 3 edits
    11 adds in trunk/LayoutTests

[GTK][WPE] Gardening of layout tests

Unreviewed test gardening.

Mark expected failures after r281108 and others and update list of flaky tests.
Rebaseline tests after r281136, r281127 and r281097.

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/integrity-expected.txt: Added.
  • platform/gtk/TestExpectations:
  • platform/gtk/fast/repaint/line-layout-block-shrink-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/css/css-typed-om/rotate-by-added-angle-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/css/css-typed-om/width-by-max-px-em-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/css/css-typed-om/width-by-min-px-em-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/css/css-typed-om/rotate-by-added-angle-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/css/css-typed-om/width-by-max-px-em-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/css/css-typed-om/width-by-min-px-em-expected.txt: Added.
5:34 PM Changeset in webkit [281218] by Fujii Hironori
  • 5 edits in trunk/LayoutTests

[Fetch API][WebKit1] http/tests/fetch/keepalive-fetch-2.html is randomly failing
https://bugs.webkit.org/show_bug.cgi?id=229247

Unreviewed test gardening.

WebKit1 doesn't properly support keepalive fetch. Marked it as
flaky. Increased the number of fetches for testing WebKit2 more.

  • http/tests/fetch/keepalive-fetch-2.html:
  • http/tests/fetch/resources/keepalive-fetch-2-window.html:
  • platform/ios-wk1/TestExpectations:
  • platform/mac-wk1/TestExpectations:
5:20 PM Changeset in webkit [281217] by rniwa@webkit.org
  • 2 edits in trunk/Source/WTF

[ iOS Debug ] 12 TestWebKitAPI.WebKitLegacy. tests are crashing
https://bugs.webkit.org/show_bug.cgi?id=229250

Reviewed by Wenson Hsieh.

Disable the assertion when Web Thread is enabled for now.

  • wtf/CheckedRef.h:

(WTF::SingleThreadIntegralWrapper::assertThread const):

5:20 PM Changeset in webkit [281216] by Jonathan Bedard
  • 3 edits in trunk/Tools

[run-webkit-tests] Remember failures when repeating test
https://bugs.webkit.org/show_bug.cgi?id=229217
<rdar://problem/81919223>

Reviewed by Ryan Haddad.

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

(LayoutTestRunner.update_summary_with_result): Replace existing result with unexpected result so
that unexpected results always take precedence over expected ones.

  • Scripts/webkitpy/layout_tests/models/test_run_results.py:

(TestRunResults.add): Do not replace existing result.

4:14 PM Changeset in webkit [281215] by Chris Dumez
  • 7 edits in trunk

Unreviewed, reverting r281206.

Reverting because of branching, will re-land soon

Reverted changeset:

"Implement Crypto.randomUUID()"
https://bugs.webkit.org/show_bug.cgi?id=229240
https://commits.webkit.org/r281206

3:04 PM Changeset in webkit [281214] by Russell Epstein
  • 4 edits in branches/safari-612.1.27.0-branch

Revert "Cherry-pick r280463. rdar://problem/82088775"

This reverts commit r281207.

3:04 PM Changeset in webkit [281213] by Russell Epstein
  • 4 edits in branches/safari-612.1.27.0-branch

Revert "Cherry-pick r280505. rdar://problem/82088775"

This reverts commit r281208.

3:00 PM Changeset in webkit [281212] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[Mac wk1 Debug] imported/w3c/web-platform-tests/IndexedDB/idbcursor-advance-continue-async.htm is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=229252.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
2:41 PM Changeset in webkit [281211] by Lauro Moura
  • 2 edits in trunk/Tools

REGRESSION(r279169) [WebDriver] WPT Tools now requires python3 to launch the server
https://bugs.webkit.org/show_bug.cgi?id=229248

Reviewed by Chris Dumez.

239066@main updated the layout test WPT tools to
94d018bb5d7c0d46df7ba1 and this version requires Python3 to run the
WPT server.

  • Scripts/webkitpy/webdriver_tests/webdriver_w3c_web_server.py:

(WebDriverW3CWebServer.start):

2:17 PM Changeset in webkit [281210] by Megan Gardner
  • 5 edits in trunk/Source

Remove unneeded UIKitSPI declarations
https://bugs.webkit.org/show_bug.cgi?id=210075

Reviewed by Wenson Hsieh.

Source/WebKit:

No code changes, just using the now fully public API.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _webTouchEventsRecognized:]):
(-[WKContentView _highlightLongPressRecognized:]):
(-[WKContentView _doubleTapRecognizedForDoubleClick:]):
(-[WKContentView _twoFingerSingleTapGestureRecognized:]):
(-[WKContentView _singleTapRecognized:]):
(gestureRecognizerModifierFlags): Deleted.

Source/WTF:

Remove unneeded feature define.

  • wtf/PlatformHave.h:
1:21 PM Changeset in webkit [281209] by Fujii Hironori
  • 3 edits in trunk/LayoutTests

[Win] http/tests/fetch/keepalive-fetch-2.html is randomly failing
https://bugs.webkit.org/show_bug.cgi?id=229247

Unreviewed test gardening.

  • platform/win/TestExpectations: Marked it as flaky.
  • platform/wincairo-wk1/TestExpectations: Ditto.
12:51 PM Changeset in webkit [281208] by Russell Epstein
  • 4 edits in branches/safari-612.1.27.0-branch

Cherry-pick r280505. rdar://problem/82088775

putInlineFastReplacingStaticPropertyIfNeeded should handle custom values
https://bugs.webkit.org/show_bug.cgi?id=227963

Reviewed by Alexey Shvayka.

JSTests:

  • stress/reflect-set-custom-value.js:

Source/JavaScriptCore:

Follow up after r280463: as it turns out, putInlineFastReplacingStaticPropertyIfNeeded also needs to handle
custom values, similar to how definePropertyOnReceiverSlow was updated. This function will be called when the
target property of the receiver is a custom value and isn't reified. The previous test case was expanded to
test both the reified and non-reified cases.

  • runtime/JSObject.cpp: (JSC::JSObject::putInlineFastReplacingStaticPropertyIfNeeded):
  • tools/JSDollarVM.cpp:

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

12:51 PM Changeset in webkit [281207] by Russell Epstein
  • 4 edits in branches/safari-612.1.27.0-branch

Cherry-pick r280463. rdar://problem/82088775

definePropertyOnReceiver should check if receiver canPerformFastPutInline
https://bugs.webkit.org/show_bug.cgi?id=227963
<rdar://80259710>

Reviewed by Alexey Shvayka.

JSTests:

  • stress/reflect-set-custom-value.js: Added.

Source/JavaScriptCore:

definePropertyOnReceiver has a fast path if the slot is not opaque and the receiver doesn't
have a custom defineOwnProperty implementation, in which case it calls putInlineFast (and
transitively putDirectInternal<PutModePut>). The issue is that putDirectInternal does not
handle customValues correctly: it just overwrites the property without changing the attributes.
To fix that, we should first check if the property might be a custom value, and if that's the case
we now call definePropertyOnReceiverSlow, which has been updated to handle custom values correctly.
I also added assertions to putInlineFastReplacingStaticPropertyIfNeeded and putDirectInternal
to make sure we don't accidentally overwrite custom values in the future.

  • runtime/JSObject.cpp: (JSC::definePropertyOnReceiverSlow): (JSC::JSObject::definePropertyOnReceiver): (JSC::JSObject::putInlineFastReplacingStaticPropertyIfNeeded):
  • runtime/JSObjectInlines.h: (JSC::JSObject::putDirectInternal):

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

12:13 PM Changeset in webkit [281206] by Chris Dumez
  • 7 edits in trunk

Implement Crypto.randomUUID()
https://bugs.webkit.org/show_bug.cgi?id=229240

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing.

  • web-platform-tests/WebCryptoAPI/randomUUID.https.any-expected.txt:
  • web-platform-tests/WebCryptoAPI/randomUUID.https.any.worker-expected.txt:

Source/WebCore:

Implement Crypto.randomUUID():

Chrome already implements this and Firefox seems to be working on it
(https://bugzilla.mozilla.org/show_bug.cgi?id=1705264).

No new tests, rebaselined existing tests.

  • page/Crypto.cpp:

(WebCore::Crypto::randomUUID const):

  • page/Crypto.h:
  • page/Crypto.idl:
12:05 PM Changeset in webkit [281205] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[Mac Debug] imported/w3c/web-platform-tests/IndexedDB/key-generators/reading-autoincrement-indexes-cursors.any.worker.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=229244.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
11:32 AM Changeset in webkit [281204] by Russell Epstein
  • 1 edit
    2 adds in branches/safari-612.1.27.0-branch/LayoutTests

Cherry-pick r281195. rdar://problem/82083653

Add a layout test for webkit.org/b/229200
https://bugs.webkit.org/show_bug.cgi?id=229222
rdar://81636256

Reviewed by Simon Fraser.

Add a layout test to exercise the hang fixed in bug #229200. This test can be manually run by opening it in
browser and verifying that the page does not hang (and outputs the expected PASS messages).

  • fast/canvas/draw-text-repeatedly-into-disconnected-canvas-expected.txt: Added.
  • fast/canvas/draw-text-repeatedly-into-disconnected-canvas.html: Added.

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

11:31 AM Changeset in webkit [281203] by Russell Epstein
  • 2 edits in branches/safari-612.1.27.0-branch/Source/WebKit

Cherry-pick r281186. rdar://problem/82083653

REGRESSION (iOS 15): DoubleDown Casino app won't load past launch page
https://bugs.webkit.org/show_bug.cgi?id=229200
rdar://81636256

Reviewed by Myles C. Maxfield.

The changes in https://webkit.org/b/228216 to fix rdar://80473805 introduced a mechanism to keep track of uses
of cached fonts and images in display list items in the web and GPU processes, via a useCount counter variable
that's incremented in the web process whenever the font or image is used in a display list item and decremented
in the GPU process whenever the item is processed.

However, the code to increment useCount in the web process currently only triggers at most once per rendering
update — this means that if there are multiple canvas drawing commands that use fonts in the same rendering
update, the web process' notion of useCount will fall out of sync with the GPU process' notion of useCount.

In most cases, this causes the cached font to remain for longer in the GPU process than necessary; however, in
this specific scenario, it's possible for the web process to tell the GPU process to release the cached font too
early, which causes the GPU process to prematurely purge the font from the cache, and subsequently wait for the
cached font to arrive (which will never arrive, since the web process has already released the font).

In other words, the timeline of events between the web and GPU processes looks like this (where f is a cached
web font, A_f is a drawing command that uses f, and B_f is another drawing command that uses f).

WEB GPU
==============================================================

  1. Cache f
  2. Append A_f
    1. Cache f
    2. Play back A_f
  3. Append B_f
  4. Release f (use count was 1 here)
    1. Release f (use count dropped from 1 to 0)
    2. Play back B_f ...and then display list playback stops due to f not being in the cache.

To address this, we simply move the useCount increment in the web process out of the rendering update check.
The original intent of the fix for bug #228216 was to allow for useCount to increment as many times as needed
per rendering update, so this limitation was unintentional.

Unfortunately, I have not been able to come up with a layout test that reliably reproduces this scenario (yet).

  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp: (WebKit::RemoteResourceCacheProxy::recordFontUse):

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

11:31 AM Changeset in webkit [281202] by Russell Epstein
  • 4 edits in branches/safari-612.1.27.0-branch/Source/JavaScriptCore

Cherry-pick r281178. rdar://problem/82083485

Add an option for canonicalizePrePostIncrements
https://bugs.webkit.org/show_bug.cgi?id=229211
<rdar://problem/82050126>

Reviewed by Mark Lam.

The current phase has bugs. Let's disable it for now until the bugs
are fixed. See discussion about the bugs I spotted in:
https://bugs.webkit.org/show_bug.cgi?id=228538

  • b3/B3Generate.cpp: (JSC::B3::generateToAir):
  • b3/testb3_3.cpp: (addShrTests):
  • runtime/OptionsList.h:

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

11:04 AM Changeset in webkit [281201] by youenn@apple.com
  • 3 edits in trunk/Source/WebKit

[MacOS] Use com.apple.webkit.microphone extension to gate microphone access in GPUProcess sandbox
https://bugs.webkit.org/show_bug.cgi?id=229238

Reviewed by Eric Carlson.

Manually tested.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:

Align to iOS and only allow microphone access in sandbox if com.apple.webkit.microphone is sent to GPUProcess.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultCaptureAudioInGPUProcessEnabled):
Do audio capture in UIProcess for non Safari applications until rdar://problem/29448368 is fixed.

10:57 AM Changeset in webkit [281200] by Andres Gonzalez
  • 9 edits
    2 adds in trunk

Add layout test for WebAccessibilityObjectWrapper handler for attribute AXLineForTextMarker on MacOS.
https://bugs.webkit.org/show_bug.cgi?id=229220
<rdar://problem/82057459>

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/mac/line-index-for-textmarker.html

There was not a layout test that exercised directly the handler for the
AXLineForTextMarker attribute in [WebAccessibilityObjectWrapper
accessibilityAttributeValue:withParameter:].
This patch adds the above test to exercise this method for textarea and
contenteditable elements. The text in these elements includes soft and
hard linebreaks, which are important test cases for this API.
The handler for AXLineForTextMarker in turn calls
AccessibilityObject::lineForPosition, and analyzing this method, made a
minor optimization by getting rid off of an unnecessary local variable
and object copy.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::lineForPosition const):

Tools:

Added AccessibilityUIElement::lineIndexForTextMarker.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::lineIndexForTextMarker const):

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

(WTR::AccessibilityUIElement::lineIndexForTextMarker const):

LayoutTests:

  • accessibility/mac/line-index-for-textmarker-expected.txt: Added.
  • accessibility/mac/line-index-for-textmarker.html: Added.
  • platform/mac-wk1/TestExpectations:
10:45 AM Changeset in webkit [281199] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebKit

Do not terminate relaunched network process when getting network process connection
https://bugs.webkit.org/show_bug.cgi?id=229236

Reviewed by Chris Dumez.

When UI process fails to get network process connection for the first time, it will retry on next runloop
iteration. On the retry, it terminates existing network process and relaunch a network process, because the
failure may indicate something is wrong in the network process. If existing network process is different from
the one on first try, the existing process can be functional and we should not terminate it.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::getNetworkProcessConnection):

10:42 AM Changeset in webkit [281198] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Update feature statuses in features.json
https://bugs.webkit.org/show_bug.cgi?id=229212

Reviewed by Wenson Hsieh.

Update the status of various features in features.json to reflect their current state.

Remove "enabled-by-default": true from features that are marked as Supported.

  • features.json:
10:19 AM Changeset in webkit [281197] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] "IndexError: list index out of range" using log
https://bugs.webkit.org/show_bug.cgi?id=229232

Reviewed by Ryan Haddad.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/program/command.py:

(FilteredCommand.pager):

10:16 AM Changeset in webkit [281196] by Megan Gardner
  • 2 edits in trunk/Source/WebCore

Add Highlight API to features.json
https://bugs.webkit.org/show_bug.cgi?id=208226

Reviewed by Simon Fraser.

  • features.json:
9:58 AM Changeset in webkit [281195] by Wenson Hsieh
  • 1 edit
    2 adds in trunk/LayoutTests

Add a layout test for webkit.org/b/229200
https://bugs.webkit.org/show_bug.cgi?id=229222
rdar://81636256

Reviewed by Simon Fraser.

Add a layout test to exercise the hang fixed in bug #229200. This test can be manually run by opening it in
browser and verifying that the page does not hang (and outputs the expected PASS messages).

  • fast/canvas/draw-text-repeatedly-into-disconnected-canvas-expected.txt: Added.
  • fast/canvas/draw-text-repeatedly-into-disconnected-canvas.html: Added.
9:58 AM Changeset in webkit [281194] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[Mac wk1] css/css-position/position-relative-table* tests fail.
https://bugs.webkit.org/show_bug.cgi?id=203449.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
9:50 AM Changeset in webkit [281193] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION(r280723): Protected HLS + EME playback fails with "temporary error"
https://bugs.webkit.org/show_bug.cgi?id=229201
<rdar://81807216>

Reviewed by Eric Carlson.

In r280723, we stopped unconditionally creating an AVPlayerLayer when we create an AVPlayer. However,
we will still create an AVPlayerItemVideoOutput when we create an AVPlayerItem. This leaves our
AVPlayer in a state where AVFoundation will throw a "temporary error; try again later" when given
an otherwise valid protected HLS stream and key data through EME.

To work around this behavior, delay creating the AVPlayerItemVideoOutput until explicitly told to
create video renderers, typically simultaneous to creating an AVPlayerLayer.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):

9:46 AM Changeset in webkit [281192] by commit-queue@webkit.org
  • 11 edits in trunk

REGRESSION(r280382): [GTK] 2.33.3 does not build with gtk-doc enabled, installs broken pkg-config files
https://bugs.webkit.org/show_bug.cgi?id=229152

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-08-18
Reviewed by Philippe Normand.

Source/JavaScriptCore:

  • PlatformGTK.cmake:
  • javascriptcoregtk.pc.in:

Source/WebKit:

CMake is expanding templates in the pkg-config files that are not supposed to be expanded.
Oops! Let's switch back to using @SVN_REVISION@ instead of ${SVN_REVISION} as the template
for inserting the SVN revision into the pkg-config file, so we can tell CMake to leave the
${} variables alone.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • Shared/glib/BuildRevision.h.in:
  • gtk/webkit2gtk-web-extension.pc.in:
  • gtk/webkit2gtk.pc.in:

Tools:

  • glib/apply-build-revision-to-files.py:

(main):

9:34 AM Changeset in webkit [281191] by Jonathan Bedard
  • 3 edits
    2 adds in trunk/Tools

[webkitcorepy] Add CallByNeed object
https://bugs.webkit.org/show_bug.cgi?id=229148
<rdar://problem/81817705>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitcorepy/setup.py: Bump version.
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Bump version, export Defer object.
  • Scripts/libraries/webkitcorepy/webkitcorepy/call_by_need.py: Added.

(CallByNeed):
(CallByNeed.init):
(CallByNeed.getattribute): Depending on the request attribute, either return it or attempt to
resolve the underlying value before returning the attribute of the resolved value.
(CallByNeed.value): Resolve and return underlying object.
(CallByNeed.call): Ditto.
(CallByNeed.repr): Resolve object and return representation.
(CallByNeed.str): Resolve object and return string conversion.

  • Scripts/libraries/webkitcorepy/webkitcorepy/tests/call_by_need_unittest.py: Added.

(TestCallByNeed):
(TestCallByNeed.test_basic):
(TestCallByNeed.test_string_conversion):
(TestCallByNeed.test_attribute_forwarding):
(TestCallByNeed.test_failed_attribute_forwarding):

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

[ MacOS EWS ] inspector/canvas/recording-2d-memoryLimit.html is flaky crashing..
https://bugs.webkit.org/show_bug.cgi?id=229237

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
8:59 AM Changeset in webkit [281189] by Martin Robinson
  • 6 edits in trunk

[css-scroll-snap] Don't snap to offscreen snap areas in unidirectional scrolls
https://bugs.webkit.org/show_bug.cgi?id=227949
<rdar://problem/80895783>

Reviewed by Frédéric Wang.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-scroll-snap/snap-to-visible-areas-both-expected.txt: This bidirectional

scrolling test no longer snaps because we don't have support for choosing between two candidates
properly yet.

  • web-platform-tests/css/css-scroll-snap/snap-to-visible-areas-x-axis-expected.txt: Updated to show newly passing test.
  • web-platform-tests/css/css-scroll-snap/snap-to-visible-areas-y-axis-expected.txt: Ditto.

Source/WebCore:

No new tests. This is covered by two existing WPT tests.

  • page/scrolling/ScrollSnapOffsetsInfo.cpp:

(WebCore::componentForAxis): Added this helper.
(WebCore::hasCompatibleSnapArea): Added this helper that checks to see if any of the snap areas
at a given scroll snap position are compatible with the viewport.
(WebCore::adjustPreviousAndNextForOnscreenSnapAreas): Adjusts the selected previous and next snap
positions by looking backward and forward for the first compatible snap position.
(WebCore::closestSnapOffsetWithInfoAndAxis): Use the new helper.

8:25 AM Changeset in webkit [281188] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Crash under JSIntersectionObserverCallback::handleEvent()
https://bugs.webkit.org/show_bug.cgi?id=229196
<rdar://82016054>

Reviewed by Geoffrey Garen.

Early return in IntersectionObserver::notify() if the callback has already been destroyed.
This is not supposed to happen as we're supposed to be keeping the JSIntersectionObserver
wrapper alive as long as the IntersectionObserver may fire events, which should keep the
callback alive too. However, despite Ryosuke's fix in r280549, the crash is still happening
in the wild. To address the crash, I am simply doing an early return for now, similarly to
what we already do in MutationObserver::deliver(), while keeping a debug assertion around
in hope of finding the root cause at some point.

No new tests, we do not not how this is happening yet.

  • page/IntersectionObserver.cpp:

(WebCore::IntersectionObserver::notify):

8:10 AM Changeset in webkit [281187] by Russell Epstein
  • 8 edits in branches/safari-612.1.28-branch/Source

Versioning.

WebKit-7612.1.28.4

6:42 AM Changeset in webkit [281186] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

REGRESSION (iOS 15): DoubleDown Casino app won't load past launch page
https://bugs.webkit.org/show_bug.cgi?id=229200
rdar://81636256

Reviewed by Myles C. Maxfield.

The changes in https://webkit.org/b/228216 to fix rdar://80473805 introduced a mechanism to keep track of uses
of cached fonts and images in display list items in the web and GPU processes, via a useCount counter variable
that's incremented in the web process whenever the font or image is used in a display list item and decremented
in the GPU process whenever the item is processed.

However, the code to increment useCount in the web process currently only triggers at most once per rendering
update — this means that if there are multiple canvas drawing commands that use fonts in the same rendering
update, the web process' notion of useCount will fall out of sync with the GPU process' notion of useCount.

In most cases, this causes the cached font to remain for longer in the GPU process than necessary; however, in
this specific scenario, it's possible for the web process to tell the GPU process to release the cached font too
early, which causes the GPU process to prematurely purge the font from the cache, and subsequently wait for the
cached font to arrive (which will never arrive, since the web process has already released the font).

In other words, the timeline of events between the web and GPU processes looks like this (where f is a cached
web font, A_f is a drawing command that uses f, and B_f is another drawing command that uses f).

WEB GPU
==============================================================

  1. Cache f
  2. Append A_f
    1. Cache f
    2. Play back A_f
  3. Append B_f
  4. Release f (use count was 1 here)
    1. Release f (use count dropped from 1 to 0)
    2. Play back B_f ...and then display list playback stops due to f not being in the cache.

To address this, we simply move the useCount increment in the web process out of the rendering update check.
The original intent of the fix for bug #228216 was to allow for useCount to increment as many times as needed
per rendering update, so this limitation was unintentional.

Unfortunately, I have not been able to come up with a layout test that reliably reproduces this scenario (yet).

  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:

(WebKit::RemoteResourceCacheProxy::recordFontUse):

6:30 AM Changeset in webkit [281185] by Martin Robinson
  • 6 edits in trunk

position: sticky with display: inline-block
https://bugs.webkit.org/show_bug.cgi?id=224415
<rdar://problem/76811968>

Reviewed by Simon Fraser.

Source/WebCore:

Improve sticky positioning applied to inline items. The first improvement is to
skip anonymous RenderBlock parents of inline display items when looking for the
containing block used to calculate sticky constraints. These anonymous parents
are not the containing block that constrains the movement of these kind of stickily
positioned items. Instead look for containing block for the anonymous parent,
which does limit the scroll boundaries of inline stickily position items.

Previously, when converting the frame rect from the coordinate space of the stickily
positioned item to that of the scrolling container, the code used to apply the offset
from the containing block to the scrolling ancestor directly to the frame rect. That
doesn't work when the containing block that determines sticky constraints is not the
direct containing block of the stickily positioned items (as it is for inlines).

Instead, the code now just maps the frame rect directly from the item parent to
the scrolling ancestor. This simplifies things a bit and allows it to work with
inline stickily positioned items.

Finally, this change adds comments to make it clearer what this method is doing.

No new tests. This is covered by existing WPT tests. Specifically the following
tests are now passing:

imported/w3c/web-platform-tests/css/css-position/sticky/position-sticky-hyperlink.html
imported/w3c/web-platform-tests/css/css-position/sticky/position-sticky-nested-table.html
imported/w3c/web-platform-tests/css/css-position/sticky/position-sticky-table-parts.html
imported/w3c/web-platform-tests/css/css-position/sticky/position-sticky-table-th-bottom.html
imported/w3c/web-platform-tests/css/css-position/sticky/position-sticky-nested-thead-th.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::positionOffsetValue): enclosingClippingBoxForStickyPosition now returns a pair
to avoid passing in a pointer. Only look at the first part of the pair here.

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::computeStickyPositionConstraints const): Modified this method
to return a pair in order to avoid dealing with input parameters. This allows simplifying this
method, making the code a bit simpler.
(WebCore::RenderBoxModelObject::enclosingClippingBoxForStickyPosition const): Deleted.
(WebCore::RenderBoxModelObject::computeStickyPositionConstraints const): Make two changes
to this method to improve sticky positioning for inline elements. The first change is
to be a bit better about finding the appropriate containing block for calculating sticky
constraints. The second is to more resiliently move from coordinate systems. In addition,
improve the comments for this method to make it clearer what is happening at each step.

  • rendering/RenderBoxModelObject.h: Updated method declaration.

LayoutTests:

a false pass previously.

2:13 AM Changeset in webkit [281184] by Martin Robinson
  • 2 edits in trunk/Tools

[Flatpak SDK] Increase the startup performance of webkit-flatpak
https://bugs.webkit.org/show_bug.cgi?id=229185

Reviewed by Philippe Normand.

Improve flatpakutils.py by ensuring that we don't make redundant
calls to flatpak during initialization of the data structures. This
saves 5 seconds on every call to build-webkit and run-webkit-tests.

Before:

$ time ./Tools/Scripts/webkit-flatpak -c true
real 0m6,297s
user 0m0,786s
sys 0m0,513s

After:

$ time ./Tools/Scripts/webkit-flatpak -c true
real 0m1,243s
user 0m0,375s
sys 0m0,162s

  • flatpak/flatpakutils.py:

(FlatpakPackages.init): Separate the update into another
method so that it can be called directly when a package is installed.
Add new packages directly to self.packages.
(FlatpakRepos.init): Ensure that we only update our repositories
and package list once we've initialized our list of repositories.
(FlatpakRepos.add): Return True if this method actually changed anything
and accept a parameter determining whether an update is done to
the repository and package list.
(FlatpakRepos.is_package_installed): Added this method which replaces
FlatpakRepo.is_app_installed.
(FlatpakRepo.init): Remove the app registry because it is duplicated
by FlatpakPackages.
(FlatpakPackage.is_installed): Now call FlatpakRepos.is_package_installed.
(WebkitFlatpak._reset_repository): Set up both repositories here and
pass then as part of the FlatpakRepos constructor.
(WebkitFlatpak.main): Separate out the check which deletes the Flatpak
repository from the one that checks if the packages are installed. This
makes sure we don't install packages and then immediately delete them.
(WebkitFlatpak.check_installed_packages): rename _get_packages to _get_dependency_packages
in order to make it clear that it doesn't return installed packages.
(WebkitFlatpak._get_dependency_packages): Ditto.
(WebkitFlatpak.install_all): Ditto.
(FlatpakRepo.is_app_installed): Deleted.
(WebkitFlatpak._get_packages): Deleted.

1:26 AM Changeset in webkit [281183] by calvaris@igalia.com
  • 5 edits
    1 add in trunk/Source

[GStreamer][EME] Try to parse XML init datas that could possibly come from MPD manifests
https://bugs.webkit.org/show_bug.cgi?id=229145

Reviewed by Alicia Boya Garcia.

Source/WebCore:

Added GStreamerEMEUtilities to include implementation of
InitData::extractCencIfNeeded. This tries to parse the possible
XML inside an init data that could come from MPD manifests. If it
succeeds, it keeps the parsed init data, if not, it returns the
original one.

Based on a patch by Philippe Normand.

  • platform/GStreamer.cmake:
  • platform/graphics/gstreamer/eme/GStreamerEMEUtilities.cpp: Added.

(WebCore::markupStartElement):
(WebCore::markupEndElement):
(WebCore::markupText):
(WebCore::markupPassthrough):
(WebCore::markupError):
(WebCore::InitData::extractCencIfNeeded):

  • platform/graphics/gstreamer/eme/GStreamerEMEUtilities.h:

(WebCore::InitData::InitData):

Source/WTF:

  • wtf/glib/GUniquePtr.h: Added deleter for GMarkupParseContext.
Note: See TracTimeline for information about the timeline view.