Timeline



Mar 2, 2021:

10:43 PM Changeset in webkit [273812] by Manuel Rego Casasnovas
  • 25 edits
    1 copy in trunk

[selectors] :focus-visible implementation
https://bugs.webkit.org/show_bug.cgi?id=222028
<rdar://problem/74679243>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update expectations, most of the :focus-visible tests are passing now.

  • web-platform-tests/css/selectors/focus-in-focus-event-001-expected.txt:
  • web-platform-tests/css/selectors/focus-in-focusin-event-001-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-001-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-002-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-006-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-007-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-007.html: Import last changes on this test
  • web-platform-tests/css/selectors/focus-visible-008-expected.txt:

(see https://github.com/web-platform-tests/wpt/pull/27656).

  • web-platform-tests/css/selectors/focus-visible-011-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-011.html: Import last changes on this test

(see https://github.com/web-platform-tests/wpt/pull/27700).

  • web-platform-tests/css/selectors/focus-visible-013-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-014-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-016-expected.txt:

Source/WebCore:

Add basic :focus-visible implementation behind the FocusVisibleEnabled experimental feature flag.
This patch implements the heuristics defined in the spec (https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo),
except the ones related to script focus.

Test: imported/w3c/web-platform-tests/css/selectors/focus-visible-*

  • css/SelectorCheckerTestFunctions.h:

(WebCore::matchesFocusVisiblePseudoClass): Check element.hasFocusVisible().

  • dom/Element.cpp:

(WebCore::Element::setFocus): When an element loses focus it always call setHasFocusVisible(false). When an element gets focused
it calls setHasFocusVisible(true) for elements that support keyboard input (as they always match :focus-visible).
(WebCore::Element::setHasFocusVisible): New method gated behind the experimental flag.

  • dom/Element.h:

(WebCore::Element::hasFocusVisible const): Add new method.

  • dom/Node.h:

(WebCore::Node::flagHasFocusVisible): Add new flag for :focus-visible matching.

  • page/EventHandler.cpp:

(WebCore::EventHandler::internalKeyEvent): If the user interacts with the page via keyboard, call setHasFocusVisible(true).
Avoid that for modifier keys.

  • page/FocusController.cpp:

(WebCore::FocusController::advanceFocusInDocumentOrder): Call setHasFocusVisible(true) for keyboard focus.

  • page/FrameView.cpp:

(WebCore::FrameView::scrollToFragmentInternal): Call setHasFocusVisible(true) for anchor focus.

  • style/StyleSharingResolver.cpp:

(WebCore::Style::SharingResolver::canShareStyleWithElement const): Add check for hasFocusVisible().

LayoutTests:

  • platform/ios/TestExpectations: Skip focus-visible-008.html and focus-visible-011.html as they timeout in iOS.
  • platform/mac/imported/w3c/web-platform-tests/css/selectors/focus-visible-008-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/css/selectors/focus-visible-008-expected.txt.
9:05 PM Changeset in webkit [273811] by Lauro Moura
  • 6 edits in trunk/LayoutTests

[GLIB] Rebaseline and update expectations

Unreviewed test gardening.

Some tests are not crashing anymore.

  • platform/glib/TestExpectations:
  • platform/gtk-wayland/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/gtk/css1/formatting_model/height_of_lines-expected.txt:
  • platform/wpe/TestExpectations:
8:56 PM Changeset in webkit [273810] by bshafiei@apple.com
  • 1 copy in tags/Safari-612.1.5.2.1

Tag Safari-612.1.5.2.1.

8:52 PM Changeset in webkit [273809] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Crash in removeSymbolElementsFromSubtree()
https://bugs.webkit.org/show_bug.cgi?id=222397

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-03-02
Reviewed by Ryosuke Niwa.

Skip children in removeSymbolElementsFromSubtree(), so that
we don't see nodes that have been removed.

Thanks to Darin Adler for the initial version of this patch
and Ryosuke Niwa for refinements.

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::updateShadowTree):
(WebCore::removeSymbolElementsFromSubtree):

8:49 PM Changeset in webkit [273808] by bshafiei@apple.com
  • 8 edits in branches/safari-612.1.5.2-branch/Source

Versioning.

WebKit-7612.1.5.2.1

8:38 PM Changeset in webkit [273807] by bshafiei@apple.com
  • 1 copy in branches/safari-612.1.5.2-branch

New branch.

8:35 PM Changeset in webkit [273806] by Fujii Hironori
  • 5 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:
  • platform/wincairo/css1/text_properties/text_decoration-expected.txt:
  • platform/wincairo/css1/text_properties/vertical_align-expected.txt:
  • platform/wincairo/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt:
8:29 PM Changeset in webkit [273805] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Enable simplified vertical alignment for hard line breaks
https://bugs.webkit.org/show_bug.cgi?id=222606

Reviewed by Antti Koivisto.

This patch enables the simplified vertical alignment for cases when the line ends with a non-stretching hard line break.
e.g.
<div>text<br>content</div>
<div>text<span><br></span>content</div>
but not when
<div>text<span style="font-size: 100px;"><br></span>content</div>

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::canUseSimplifiedAlignment):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::align):

7:09 PM Changeset in webkit [273804] by Alan Coon
  • 9 edits in branches/safari-612.1.5-branch/Source/JavaScriptCore

Cherry-pick r273751. rdar://problem/74953144

[Cocoa] REGRESSION(r272752): fix some internal builds that use WTFString::WTFString(NSString *)
https://bugs.webkit.org/show_bug.cgi?id=222610
<rdar://74938249>

Unreviewed build fix.

Patch by BJ Burg <BJ Burg> on 2021-03-02

  • inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py: (ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_method_implementation): Some builders seem to find the new version of the header (without the exported NSString constructor) whereas others don't find the new version (expecting the symbol to be exported), causing a linker error later on.

As a workaround, force usage of the CFStringRef constructor, which is always exported.

  • inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
  • inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
  • inspector/scripts/tests/expected/enum-values.json-result:
  • inspector/scripts/tests/expected/type-declaration-array-type.json-result:
  • inspector/scripts/tests/expected/type-declaration-enum-type.json-result:
  • inspector/scripts/tests/expected/type-declaration-object-type.json-result:
  • inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result: Rebaseline generator test results.

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

7:09 PM Changeset in webkit [273803] by Alan Coon
  • 2 edits in branches/safari-612.1.5-branch/Source/WebCore

Cherry-pick r273721. rdar://problem/74952690

Make DictionaryLookup::rangeAtHitTestResult more robust
https://bugs.webkit.org/show_bug.cgi?id=222301
<rdar://problem/74529831>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-01
Reviewed by Brent Fulgham.

This may be related to r265084 but something is crashing and I'm not sure what.
Adding some Optional checks might fix something, but this is still puzzling to me.

  • editing/cocoa/DictionaryLookup.mm: (WebCore::DictionaryLookup::rangeAtHitTestResult):

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

7:09 PM Changeset in webkit [273802] by Alan Coon
  • 3 edits
    2 adds in branches/safari-612.1.5-branch

Cherry-pick r273656. rdar://problem/74952887

REGRESSION(r272004): transform transition with delay doesn't behave correctly
https://bugs.webkit.org/show_bug.cgi?id=222545
<rdar://problem/74865413>

Reviewed by Dean Jackson.

Source/WebCore:

To support accelerated animations of individual transform properties, we introduced the notion of
non-interpolating animations to apply the underlying value for a given property before applying
the actual animations for this property with additivity set to true.

These non-interpolating animations were meant to last between the time at which animations were
committed and the effective start of the first animation for that property, accounting for any
delay.

However, we neglected to handle the case where that first animation had a fill mode that would
make it fill backwards, such as CSS Transitions. In that situation, the animation would have
its first keyframe applied on top of the underlying value, effectively applying the underlying
value twice with additivity.

We now only add these non-interpolating animations if the first animation has a delay and does
not fill backwards.

Test: webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html

  • platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::updateAnimations):

LayoutTests:

Add a new test where an element with a non-identity transform starts a transform transition with a
long delay. Prior to this patch, this test failed because, while in the delay phase, the transition
would mean the underlying transform was applied twice: once by the non-interpolating animation
generated for the underlying "transform" value, and once by the first keyframe of the transition
since it fills backwards.

  • webanimations/transform-transition-with-delay-on-forced-layer-with-transform-expected.html: Added.
  • webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html: Added.

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

7:09 PM Changeset in webkit [273801] by Alan Coon
  • 4 edits in branches/safari-612.1.5-branch

Cherry-pick r273583. rdar://problem/74953376

Add AXTextMarkerRangeForNSRange attribute so that Mac clients can access this functionality.
https://bugs.webkit.org/show_bug.cgi?id=222477
Source/WebCore:

<rdar://problem/74793445>

Reviewed by Chris Fleizach.

This is a follow up to: https://bugs.webkit.org/show_bug.cgi?id=222154.
As Chris Fleizach pointed out in the above review, it is necessary to
add a handler in accessibilityAttributeValue:forParameter: for a new AX
attribute in order for clients to access this functionality.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]): (-[WebAccessibilityObjectWrapper textMarkerRangeForNSRange:]): Deleted.

Tools:

Reviewed by Chris Fleizach.

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::textMarkerRangeForRange):

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

7:09 PM Changeset in webkit [273800] by Alan Coon
  • 20 edits in branches/safari-612.1.5-branch/Source

Cherry-pick r273568. rdar://problem/74952680

[GPUP] Allow painting of GPUP hosted video from the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=222461

Reviewed by Eric Carlson.

Source/WebCore:

  • Change the return type of pixelBufferForCurrentTime() to return a RetainPtr<> rather than just a raw pointer.
  • Add utility methods on IOSurface to retrieve an IOSurface from a CVPixelBuffer and to reconstitute a CVPixelBuffer from an IOSurface.
  • platform/cocoa/CoreVideoSoftLink.cpp:
  • platform/cocoa/CoreVideoSoftLink.h:
  • platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::pixelBufferForCurrentTime):
  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h: (WebCore::MediaPlayerPrivateInterface::pixelBufferForCurrentTime):
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::pixelBufferForCurrentTime):
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pixelBufferForCurrentTime):
  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm: (WebCore::IOSurface::createFromPixelBuffer): (WebCore::IOSurface::createPixelBuffer):
  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp: (WebCore::GraphicsContextGLOpenGL::copyTextureFromMedia):

Source/WebKit:

Add Cocoa implementations for nativeImageForCurrentTime() and pixelBufferForCurrentTime().
Use those methods to implement paintCurrentFrameInContext().

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm: (WebKit::RemoteMediaPlayerProxy::nativeImageForCurrentTime): (WebKit::RemoteMediaPlayerProxy::pixelBufferForCurrentTime):
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: (WebKit::MediaPlayerPrivateRemote::paint): (WebKit::MediaPlayerPrivateRemote::paintCurrentFrameInContext): (WebKit::MediaPlayerPrivateRemote::pixelBufferForCurrentTime):
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm: (WebKit::MediaPlayerPrivateRemote::nativeImageForCurrentTime): (WebKit::MediaPlayerPrivateRemote::pixelBufferForCurrentTime):

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

7:09 PM Changeset in webkit [273799] by Alan Coon
  • 4 edits
    6 adds in branches/safari-612.1.5-branch

Cherry-pick r273513. rdar://problem/74953307

[Cocoa] Appending a partial segment of a WebM audio file results in no additional samples
https://bugs.webkit.org/show_bug.cgi?id=222407
<rdar://74610383>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/media-source/media-source-webm-vorbis-partial.html

When appending a partial WebM segment, it can occur that the parser is mid-way through
parsing a Block or SimpleBlock, and is waiting for enough data to be appended to construct a
full sample. However, previous appends are not accounted for when calculated the amount of
data to be requested from the reader, which both results in too much data read and a
miscalculation of the bytesRemaining out-param. This causes all subsequent appends to
generate no samples, leading to an apparent stall in playback.

Add a new ivar to track the number of partial bytes read, and use that value to calculate
the number of bytes yet to be parsed.

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp: (WebCore::SourceBufferParserWebM::VideoTrackData::createSampleBuffer):
  • platform/graphics/cocoa/SourceBufferParserWebM.h:

LayoutTests:

  • platform/mac-bigsur/media/media-source/content/test-48kHz-vorbis-manifest.json: Added.
  • platform/mac-bigsur/media/media-source/content/test-48kHz-vorbis.webm: Added.
  • platform/mac-bigsur/media/media-source/media-source-webm-vorbis-partial-expected.txt: Added.
  • platform/mac-bigsur/media/media-source/media-source-webm-vorbis-partial.html: Added.

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

7:09 PM Changeset in webkit [273798] by Alan Coon
  • 5 edits
    4 adds in branches/safari-612.1.5-branch

Cherry-pick r273512. rdar://problem/74953022

REGRESSION(r269957): Empty font names passed to canvas2d cause all text routines to crash
https://bugs.webkit.org/show_bug.cgi?id=222402
<rdar://problem/72621268>

Reviewed by Darin Adler and Chris Lord.

Source/WebCore:

It looks like it was simply an oversight from that patch. If the font name is empty,
CanvasRenderingContext2D::setFont() will set the font object to one that doesn't have
its internal FontCascadeFonts pointer set.

Tests: fast/text/canvas-font-resolution-2.html

fast/text/canvas-font-resolution.html

  • html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setFont):
  • html/canvas/CanvasRenderingContext2DBase.h: (WebCore::CanvasRenderingContext2DBase::FontProxy::isPopulated const):
  • style/StyleResolveForFontRaw.cpp: (WebCore::Style::resolveForFontRaw):

LayoutTests:

  • fast/text/canvas-font-resolution-2-expected.html: Added.
  • fast/text/canvas-font-resolution-2.html: Added.
  • fast/text/canvas-font-resolution-expected.txt: Added.
  • fast/text/canvas-font-resolution.html: Added.

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

7:08 PM Changeset in webkit [273797] by Alan Coon
  • 2 edits in branches/safari-612.1.5-branch/Source/WebCore

Cherry-pick r273499. rdar://problem/74952752

Avoid setting page muted state if unchanged
https://bugs.webkit.org/show_bug.cgi?id=222395

Reviewed by Brent Fulgham.

Return early in Page::setMuted if muted state did not change.

No new tests, covered by existing tests.

  • page/Page.cpp: (WebCore::Page::setMuted):

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

7:08 PM Changeset in webkit [273796] by Alan Coon
  • 11 edits in branches/safari-612.1.5-branch/Source/WebCore

Cherry-pick r273477. rdar://problem/74952824

Avoid heap allocation for EventContexts
https://bugs.webkit.org/show_bug.cgi?id=222095
<rdar://problem/74586915>

Reviewed by Simon Fraser.

This patch merges all subclasses of EventContext into itself to avoid heap allocation for each
EventContext in EventPath::m_path. It also merges Node::handleLocalEvents into EventContext's
handleLocalEvents to avoid the extra virtual function call.

No new tests since there should be no observable behavioral differences.

  • dom/EventContext.cpp: (WebCore::EventContext::EventContext): Moved to the header to be inlined. (WebCore::EventContext::handleLocalEvents const): Merged handleLocalEvents of HTMLFormElement and Node. Moved the code to handle related target and touch targets from MouseOrFocusEventContext and TouchEventContext as they have been merged into this class. Also special case dispatching an event on window to preserve the behavior of WindowEventContext. (WebCore::EventContext::initializeTouchLists): Added. Creates TouchList objects. (WebCore::EventContext::isUnreachableNode const): Moved from the header. (WebCore::EventContext::isMouseOrFocusEventContext const): Deleted. (WebCore::EventContext::isTouchEventContext const): Deleted. (WebCore::MouseOrFocusEventContext::MouseOrFocusEventContext): Deleted. (WebCore::MouseOrFocusEventContext::handleLocalEvents const): Deleted. (WebCore::MouseOrFocusEventContext::isMouseOrFocusEventContext const): Deleted. (WebCore::TouchEventContext::TouchEventContext): Deleted. (WebCore::TouchEventContext::handleLocalEvents const): Deleted. (WebCore::TouchEventContext::isTouchEventContext const): Deleted. (WebCore::TouchEventContext::checkReachability const): Deleted. Merged into handleLocalEvents.
  • dom/EventContext.h: (WebCore::EventContext::isMouseOrFocusEventContext const): Now simply checks m_type. (WebCore::EventContext::isTouchEventContext const): Ditto. (WebCore::EventContext::isWindowContext const): Ditto. (WebCore::EventContext::relatedTarget const): Moved from MouseOrFocusEventContext. (WebCore::EventContext::setRelatedTarget): Ditto. (WebCore::EventContext::touchList): Moved from TouchEventContext. (WebCore::m_contextNodeIsFormElement): Added. Caching this state here instead of checking it at every event context during dispatching in EventContext::handleLocalEvents seems to be important to get a speed up in Intel processors. Apple silicons don't seem to be affected by this. (WebCore::m_type): Added. (WebCore::MouseOrFocusEventContext): Deleted. (WebCore::MouseOrFocusEventContext::relatedTarget const): Deleted. (WebCore::TouchEventContext): Deleted. (WebCore::EventContext::EventContext): Moved from cpp file to be inlined here. (WebCore::EventContext::isUnreachableNode const): Moved into cpp as this is only used for asserting shadow DOM related conditions. (WebCore::EventContext::touchList): Renamed from TouchEventContext::touchList. (isType): Deleted.
  • dom/EventDispatcher.cpp: (WebCore::EventDispatcher::dispatchEvent): Deleted the variant that takes a vector of elements since it's not used anywhere.
  • dom/EventDispatcher.h:
  • dom/EventPath.cpp: (WebCore::WindowEventContext): Deleted. (WebCore::EventPath::EventPath): Avoid calling setRelatedTarget if related target is not a node or the path is empty. These were early return conditions in setRelatedTarget before this patch. (WebCore::EventPath::buildPath): Always create EventContext. Dramatically simplifies the code. (WebCore::EventPath::setRelatedTarget): Moved the early exit to EventPath::EventPath. (WebCore::EventPath::retargetTouch): (WebCore::EventPath::retargetTouchList): (WebCore::EventPath::retargetTouchLists): (WebCore::EventPath::EventPath): Deleted the variant which takes a vector of elements as it's not used anywhere.
  • dom/EventPath.h: (WebCore::EventPath::contextAt const): (WebCore::EventPath::contextAt): (WebCore::EventPath::m_path): Now allocates EventContext in place. The size of the inline buffer has been reduced to 16 entries for EventContext from 32 entries for std::unique_ptr<EventContext> since the former is considerably larger than the latter.
  • dom/Node.cpp: (WebCore::Node::handleLocalEvents): Deleted. Merged into EventContext::handleLocalEvents.
  • dom/Node.h:
  • html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::handleLocalEvents): Ditto.
  • html/HTMLFormElement.h:

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

7:08 PM Changeset in webkit [273795] by Alan Coon
  • 5 edits in branches/safari-612.1.5-branch/Source/WebCore

Cherry-pick r273442. rdar://problem/74952740

Regression(r269481) Kugou Music: Can not leave "MV" category after selecting it
https://bugs.webkit.org/show_bug.cgi?id=222380
<rdar://74602294>

Reviewed by Geoffrey Garen.

The new behavior in r269481 aligns us with the specification and with Blink so I
am adding a linked-on-after to maintain pre-r269481 behavior until Apps get
rebuilt against the new SDK.

  • html/HTMLDocument.cpp: (WebCore::HTMLDocument::supportedPropertyNames const):
  • page/Quirks.cpp: (WebCore::Quirks::shouldOmitHTMLDocumentSupportedPropertyNames):
  • page/Quirks.h:
  • platform/cocoa/VersionChecks.h:

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

7:08 PM Changeset in webkit [273794] by Alan Coon
  • 6 edits
    3 adds in branches/safari-612.1.5-branch

Cherry-pick r273438. rdar://problem/74953033

Regression(r268700) postMessage changes prototype of basic types
https://bugs.webkit.org/show_bug.cgi?id=222228
<rdar://problem/74612853>

Reviewed by Geoffrey Garen.

Source/WebCore:

r268700 updated ScriptExecutionContext::globalObject() to call:
WebCore::globalObject(mainThreadNormalWorld(), downcast<Document>(*this).page())
instead of
frame ? frame->script().globalObject(mainThreadNormalWorld()) : nullptr

This was not right for subframes because globalObject() gets the globalObject from
the page's main frame instead of the document's frame.

This patch gets rid of the error-prone WebCore::globalObject() taking in a Page*
and replaces it with one taking in a Frame* to avoid such issues in the future.

Test: fast/dom/Window/postMessage-Object-prototype.html

  • bindings/js/ScriptState.cpp: (WebCore::globalObject):
  • bindings/js/ScriptState.h:
  • dom/ScriptExecutionContext.cpp: (WebCore::ScriptExecutionContext::globalObject):
  • inspector/InspectorFrontendHost.cpp: (WebCore::InspectorFrontendHost::addSelfToGlobalObjectInWorld): (WebCore::InspectorFrontendHost::showContextMenu):

LayoutTests:

Add layout test coverage.

  • fast/dom/Window/postMessage-Object-prototype-expected.txt: Added.
  • fast/dom/Window/postMessage-Object-prototype.html: Added.
  • fast/dom/Window/resources/postMessage-Object-prototype-frame.html: Added.

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

7:08 PM Changeset in webkit [273793] by Alan Coon
  • 3 edits in branches/safari-612.1.5-branch/Source/WebCore

Cherry-pick r273415. rdar://problem/74953177

Move PostResolutionCallbackDisabler to resolveComputedStyle
https://bugs.webkit.org/show_bug.cgi?id=222350

Reviewed by Ryosuke Niwa.

It can be constructed and deleted repeatedly in styleForElementIgnoringPendingStylesheets when
resolveComputedStyle calls it in a loop.

  • dom/Document.cpp: (WebCore::Document::styleForElementIgnoringPendingStylesheets):
  • dom/Element.cpp: (WebCore::Element::resolveComputedStyle): (WebCore::Element::resolvePseudoElementStyle):

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

7:08 PM Changeset in webkit [273792] by Alan Coon
  • 7 edits
    4 adds in branches/safari-612.1.5-branch

Cherry-pick r273385. rdar://problem/74953186

Runtime-disabled CSS features still appear enabled via CSS.supports()
https://bugs.webkit.org/show_bug.cgi?id=222280
rdar://74595641

Reviewed by Sam Weinig.

Source/WebCore:

When parsing CSS.supports() for a runtime-disabled property, we'd successfully
parse a CSS-wide keyword like "inherit" and report that the property is supported.

We need to explicitly check for runtime-disabled properties.

Tests: css3/color-filters/color-filter-exposed-if-disabled.html

fast/css/scroll-behavior-exposed-if-disabled.html

  • css/parser/CSSParserImpl.cpp: (WebCore::CSSParserImpl::isPropertyRuntimeDisabled const): (WebCore::CSSParserImpl::consumeDeclaration):
  • css/parser/CSSParserImpl.h:

LayoutTests:

  • css3/color-filters/color-filter-exposed-if-disabled-expected.txt: Added. Fails tracked in webkit.org/b/217626
  • css3/color-filters/color-filter-exposed-if-disabled.html: Added.
  • fast/css/overscroll-behavior-invalidate-if-disabled-expected.txt:
  • fast/css/overscroll-behavior-invalidate-if-disabled.html:
  • fast/css/scroll-behavior-exposed-if-disabled-expected.txt: Added.
  • fast/css/scroll-behavior-exposed-if-disabled.html: Added.

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

7:08 PM Changeset in webkit [273791] by Alan Coon
  • 6 edits
    2 adds in branches/safari-612.1.5-branch

Cherry-pick r273314. rdar://problem/74953186

aspect-ratio shows in computed style when disabled
https://bugs.webkit.org/show_bug.cgi?id=222286

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

Source/WebCore:

Make aspect-ratio invisible from style when disabled.

Test: fast/css/aspect-ratio-invalidate-if-disabled.html

  • css/CSSComputedStyleDeclaration.cpp: (WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
  • css/CSSProperties.json:

Tools:

Add support for disabling aspect-ratio in wk1.

  • DumpRenderTree/TestOptions.cpp: (WTR::TestOptions::defaults):

LayoutTests:

Add test.

  • fast/css/aspect-ratio-invalidate-if-disabled-expected.txt: Added.
  • fast/css/aspect-ratio-invalidate-if-disabled.html: Added.

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

7:08 PM Changeset in webkit [273790] by Alan Coon
  • 2 edits in branches/safari-612.1.5-branch/Source/WebKit

Cherry-pick r273304. rdar://problem/74953207

[macOS] Crash under AuxiliaryProcess::initializeSandbox
https://bugs.webkit.org/show_bug.cgi?id=222233

Unreviewed, address additional review feedback.

Add comment and logging when the WebKit client is setting the user directory suffix.

  • Shared/mac/AuxiliaryProcessMac.mm: (WebKit::initializeSandboxParameters):

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

7:08 PM Changeset in webkit [273789] by Alan Coon
  • 2 edits in branches/safari-612.1.5-branch/Source/WebKit

Cherry-pick r273289. rdar://problem/74953476

UserMediaPermissionRequestManagerProxy may be released while computing capture device list
https://bugs.webkit.org/show_bug.cgi?id=222236
<rdar://74480265>

Unreviewed, address post-review comment.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp: (WebKit::UserMediaPermissionRequestManagerProxy::computeFilteredDeviceList): Use captured this.

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

7:08 PM Changeset in webkit [273788] by Alan Coon
  • 2 edits in branches/safari-612.1.5-branch/Source/WebKit

Cherry-pick r273271. rdar://problem/74953207

[macOS] Crash under AuxiliaryProcess::initializeSandbox
https://bugs.webkit.org/show_bug.cgi?id=222233
<rdar://problem/74261611>

Reviewed by Brent Fulgham.

When a WebKit client provides a user directory suffix in the process initialization parameters, confstr with the new
user suffix applied will fail to create the full directory path if it does not exist, and return an empty result.
This will lead to empty paths in the sandbox parameters, which will cause the sandbox to fail to compile, which will
eventually crash the WebKit process. This patch addresses this by making sure the new user directory suffix does not
represent a path, since confstr is not able to handle user directory suffixes containing paths that do not exist.
Additionally, this patch reverts r271417, which was the first attempt at fixing this crash, but was unsuccessful in
doing so.

  • Shared/mac/AuxiliaryProcessMac.mm: (WebKit::initializeSandboxParameters): (WebKit::AuxiliaryProcess::initializeSandbox):

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

7:08 PM Changeset in webkit [273787] by Alan Coon
  • 4 edits in branches/safari-612.1.5-branch/Source

Cherry-pick r273270. rdar://problem/74953268

[macOS] Disabling relaunch on login for the WebContent process is racy
https://bugs.webkit.org/show_bug.cgi?id=222074
<rdar://problem/74230216>

Reviewed by Geoffrey Garen.

Source/WebCore/PAL:

Declare Launch Services key to disable relaunch on login.

  • pal/spi/cocoa/LaunchServicesSPI.h:

Source/WebKit:

When NSApplication is being intialized, the method -[NSApplication disableRelaunchOnLogin] is dispatched on a non-main thread, which is in a race
with the revocation of the Launch Services sandbox extension. This patch addresses this by setting this information synchronously with Launch
Services while the sandbox extension is being held. Additionally, accessibility related code under WebPage::platformInitialize may reach out to
the Launch Services daemon once during the lifetime of the WebContent process. Make sure that call succeeds by making a synchronous call while
a sandbox extension to the Launch Services daemon is being held.

  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess):

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

7:08 PM Changeset in webkit [273786] by Alan Coon
  • 2 edits in branches/safari-612.1.5-branch/Source/WebKit

Cherry-pick r273265. rdar://problem/74953476

UserMediaPermissionRequestManagerProxy may be released while computing capture device list
https://bugs.webkit.org/show_bug.cgi?id=222236
<rdar://74480265>

Reviewed by Youenn Fablet.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp: (WebKit::UserMediaPermissionRequestManagerProxy::computeFilteredDeviceList): Return early if weakThis is NULL.

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

7:08 PM Changeset in webkit [273785] by Alan Coon
  • 5 edits
    1 add in branches/safari-612.1.5-branch

Cherry-pick r273264. rdar://problem/74952900

REGRESSION (r266695): twitch.tv: when in fullscreen, WebKit continually does 350ms layouts. Firefox and Chrome do not
https://bugs.webkit.org/show_bug.cgi?id=222202
<rdar://problem/74537782>

Reviewed by Simon Fraser.

PerformanceTests:

New performance test for nested column flexboxes with percentage heights.

  • Layout/nested-column-flexboxes-relative-height.html: Added.

Source/WebCore:

The problem was that we were doing the initial layout for the children of the flex container twice in those cases where
the child inline axis was not the main axis (for example with column flex containers in horizontal writing modes).
Refactored the code (specially the way we clear overriding sizes) so that we only do it once. This saves tons of layouts
in pages with nested column flexboxes with relative heights.

No new tests as there is no change in functionality, we're removing duplicate extra layouts. We're however adding a new
performance test for column flexboxes with percentage heights. With this patch we go from 3.5 layout/s to 145 layout/s
which is ~4000% better.

Inspired by Blink's crrev.com/c/1614058 by <cbiesinger@chromium.org>.

  • rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild): Do not unconditionally clear overriding sizes. Also removed relayoutChildren which is now unused. Do not layout the item, that should have been done in computeInnerFlexBaseSizeForChild() before. Added ASSERTs to verify that child's intrinsic main size was cached as a consequence of the previous layout. (WebCore::RenderFlexibleBox::constructFlexItem): Do not pass relayoutChildren to computeInnerFlexBaseSizeForChild. Also no need to update it after laying out the child.
  • rendering/RenderFlexibleBox.h:

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

7:05 PM Changeset in webkit [273784] by mmaxfield@apple.com
  • 16 edits
    1 copy in trunk

REGRESSION(r270691): It's impossible to use MobileAsset fonts on macOS
https://bugs.webkit.org/show_bug.cgi?id=222582
<rdar://problem/74877450>

Reviewed by Per Arne Vollan.

Source/WebKit:

Simply apply the iOS codepath to macOS.

There is also an additional change here to the Mac sandbox.
On Big Sur and earlier, before this patch, com.apple.mobileassetd was allowed,
and com.apple.mobileassetd.v2 was disallowed. After this patch, they both are
allowed, but only with the com.apple.webkit.extension.mach extension.
On other OSes, before this patch, nothing was allowed, whereas after this patch,
only com.apple.mobileassetd.v2 is allowed with the com.apple.webkit.extension.mach
extension.

Test: WebKit.MobileAssetSandboxCheck

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _grantAccessToAssetServices]):
(-[WKWebView _revokeAccessToAssetServices]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _grantAccessToAssetServices]): Deleted.
(-[WKWebView _revokeAccessToAssetServices]): Deleted.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::grantAccessToAssetServices):
(WebKit::WebPageProxy::revokeAccessToAssetServices):

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

(WebKit::WebPageProxy::grantAccessToAssetServices): Deleted.
(WebKit::WebPageProxy::revokeAccessToAssetServices): Deleted.

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

(WebKit::WebProcess::revokeAccessToAssetServices):

  • WebProcess/com.apple.WebProcess.sb.in:
  • WebProcess/glib/WebProcessGLib.cpp:

(WebKit::WebProcess::grantAccessToAssetServices):
(WebKit::WebProcess::revokeAccessToAssetServices):

  • WebProcess/playstation/WebProcessPlayStation.cpp:

(WebKit::WebProcess::grantAccessToAssetServices):
(WebKit::WebProcess::revokeAccessToAssetServices):

  • WebProcess/win/WebProcessWin.cpp:

(WebKit::WebProcess::grantAccessToAssetServices):
(WebKit::WebProcess::revokeAccessToAssetServices):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/MobileAssetSandboxCheck.mm: Copied from Source/WebKit/WebProcess/win/WebProcessWin.cpp.

(TEST):

6:30 PM Changeset in webkit [273783] by Chris Gambrell
  • 6 edits
    4 adds
    4 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/download convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=222618
<rdar://problem/74949253>

Reviewed by Jonathan Bedard.

  • http/tests/download/anchor-download-attribute-content-disposition-no-extension-octet-stream.html:
  • http/tests/download/anchor-download-attribute-content-disposition-no-extension-text-plain.html:
  • http/tests/download/anchor-download-attribute-content-disposition.html:
  • http/tests/download/basic-ascii-expected.txt:
  • http/tests/download/basic-ascii.html:
  • http/tests/download/resources/basic-ascii.php: Removed.
  • http/tests/download/resources/basic-ascii.py: Added.
  • http/tests/download/resources/content-disposition-pass-no-extension-octet-stream.php: Removed.
  • http/tests/download/resources/content-disposition-pass-no-extension-octet-stream.py: Added.
  • http/tests/download/resources/content-disposition-pass-no-extension-text-plain.php: Removed.
  • http/tests/download/resources/content-disposition-pass-no-extension-text-plain.py: Added.
  • http/tests/download/resources/content-disposition-pass.php: Removed.
  • http/tests/download/resources/content-disposition-pass.py: Added.
6:23 PM Changeset in webkit [273782] by Chris Gambrell
  • 7 edits
    3 adds
    3 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/history convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=222614
<rdar://problem/74946423>

Reviewed by Jonathan Bedard.

  • http/tests/history/popstate-fires-with-pending-requests.html:
  • http/tests/history/replacestate-post-to-get-2.html:
  • http/tests/history/replacestate-post-to-get.html:
  • http/tests/history/resources/replacestate-current.php: Removed.
  • http/tests/history/resources/replacestate-current.py: Added.
  • http/tests/history/resources/replacestate-forward-back.php: Removed.
  • http/tests/history/resources/replacestate-forward-back.py: Added.
  • http/tests/history/resources/slow-image.php: Removed.
  • http/tests/history/resources/slow-image.py: Added.
  • http/tests/inspector/page/resources/slow-test-page.html:
  • http/tests/navigation/page-cache-pending-image-load-cache-partition.html:
  • http/tests/navigation/page-cache-pending-image-load.html:
6:20 PM Changeset in webkit [273781] by Chris Gambrell
  • 30 edits
    36 adds
    36 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/navigation convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=222418
<rdar://problem/74744523>

Reviewed by Jonathan Bedard.

  • TestExpectations:
  • http/tests/navigation/back-send-referrer.html:
  • http/tests/navigation/https-in-page-cache.html:
  • http/tests/navigation/page-cache-fragment-referrer.html:
  • http/tests/navigation/post-goback-repost-policy-expected.txt:
  • http/tests/navigation/post-goback-repost-policy.html:
  • http/tests/navigation/post-goback-same-url-expected.txt:
  • http/tests/navigation/post-goback-same-url.html:
  • http/tests/navigation/post-redirect-get-reload-expected.txt:
  • http/tests/navigation/post-redirect-get-reload.php: Removed.
  • http/tests/navigation/post-redirect-get-reload.py: Added.
  • http/tests/navigation/pushstate-at-unique-origin-denied.php: Removed.
  • http/tests/navigation/pushstate-at-unique-origin-denied.py: Added.
  • http/tests/navigation/redirect-on-back-updates-history-item.html:
  • http/tests/navigation/redirect-on-reload-updates-history-item.html:
  • http/tests/navigation/redirect-preserves-fragment-expected.txt:
  • http/tests/navigation/redirect-preserves-fragment.html:
  • http/tests/navigation/redirect-to-fragment-expected.txt:
  • http/tests/navigation/redirect-to-fragment.html:
  • http/tests/navigation/redirect-to-fragment2-expected.txt:
  • http/tests/navigation/redirect-to-fragment2.html:
  • http/tests/navigation/redirect-to-invalid-url-expected.txt:
  • http/tests/navigation/redirect-to-invalid-url.html:
  • http/tests/navigation/redirect-to-random-url-versus-memory-cache.html:
  • http/tests/navigation/resources/back-send-referrer-helper.php: Removed.
  • http/tests/navigation/resources/back-send-referrer-helper.py: Added.
  • http/tests/navigation/resources/goback-with-policydelegate.php: Removed.
  • http/tests/navigation/resources/goback-with-policydelegate.py: Added.
  • http/tests/navigation/resources/https-in-page-cache-1.php: Removed.
  • http/tests/navigation/resources/https-in-page-cache-1.py: Added.
  • http/tests/navigation/resources/https-in-page-cache-2.php: Removed.
  • http/tests/navigation/resources/https-in-page-cache-2.py: Added.
  • http/tests/navigation/resources/https-no-store-subframe-in-page-cache.html:
  • http/tests/navigation/resources/keyboard-events-test.js:

(waitForProvisionalNavigation):

  • http/tests/navigation/resources/never-respond.php: Removed.
  • http/tests/navigation/resources/never-respond.py: Added.
  • http/tests/navigation/resources/no-store-frame.php: Removed.
  • http/tests/navigation/resources/no-store-frame.py: Added.
  • http/tests/navigation/resources/post-goback-same-url.php: Removed.
  • http/tests/navigation/resources/post-goback-same-url.py: Added.
  • http/tests/navigation/resources/post-target-policy-test.php: Removed.
  • http/tests/navigation/resources/post-target-policy-test.py: Added.
  • http/tests/navigation/resources/randomredirects/0.php: Removed.
  • http/tests/navigation/resources/randomredirects/0.py: Added.
  • http/tests/navigation/resources/randomredirects/1.php: Removed.
  • http/tests/navigation/resources/randomredirects/1.py: Added.
  • http/tests/navigation/resources/randomredirects/2.php: Removed.
  • http/tests/navigation/resources/randomredirects/2.py: Added.
  • http/tests/navigation/resources/randomredirects/3.php: Removed.
  • http/tests/navigation/resources/randomredirects/3.py: Added.
  • http/tests/navigation/resources/randomredirects/4.php: Removed.
  • http/tests/navigation/resources/randomredirects/4.py: Added.
  • http/tests/navigation/resources/randomredirects/5.php: Removed.
  • http/tests/navigation/resources/randomredirects/5.py: Added.
  • http/tests/navigation/resources/randomredirects/6.php: Removed.
  • http/tests/navigation/resources/randomredirects/6.py: Added.
  • http/tests/navigation/resources/randomredirects/7.php: Removed.
  • http/tests/navigation/resources/randomredirects/7.py: Added.
  • http/tests/navigation/resources/randomredirects/8.php: Removed.
  • http/tests/navigation/resources/randomredirects/8.py: Added.
  • http/tests/navigation/resources/randomredirects/9.php: Removed.
  • http/tests/navigation/resources/randomredirects/9.py: Added.
  • http/tests/navigation/resources/randomredirects/randomredirect.php: Removed.
  • http/tests/navigation/resources/randomredirects/randomredirect.py: Added.
  • http/tests/navigation/resources/redirect-on-back-updates-history-item.php: Removed.
  • http/tests/navigation/resources/redirect-on-back-updates-history-item.py: Added.
  • http/tests/navigation/resources/redirect-on-reload-updates-history-item-statistics.php: Removed.
  • http/tests/navigation/resources/redirect-on-reload-updates-history-item-statistics.py: Added.
  • http/tests/navigation/resources/redirect-on-reload-updates-history-item.php: Removed.
  • http/tests/navigation/resources/redirect-on-reload-updates-history-item.py: Added.
  • http/tests/navigation/resources/redirect-preserves-fragment.php: Removed.
  • http/tests/navigation/resources/redirect-preserves-fragment.py: Added.
  • http/tests/navigation/resources/redirect-to-cookie.php: Removed.
  • http/tests/navigation/resources/redirect-to-cookie.py: Added.
  • http/tests/navigation/resources/redirect-to-fragment.php: Removed.
  • http/tests/navigation/resources/redirect-to-fragment.py: Added.
  • http/tests/navigation/resources/redirect-to-fragment2.php: Removed.
  • http/tests/navigation/resources/redirect-to-fragment2.py: Added.
  • http/tests/navigation/resources/redirect-to-invalid-url-frame.php: Removed.
  • http/tests/navigation/resources/redirect-to-invalid-url-frame.py: Added.
  • http/tests/navigation/resources/referrer.php: Removed.
  • http/tests/navigation/resources/referrer.py: Added.
  • http/tests/navigation/resources/target-blank-opener-post-window.php: Removed.
  • http/tests/navigation/resources/target-blank-opener-post-window.py: Added.
  • http/tests/navigation/resources/target-blank-opener-window.php: Removed.
  • http/tests/navigation/resources/target-blank-opener-window.py: Added.
  • http/tests/navigation/resources/user-agent-script.php: Removed.
  • http/tests/navigation/resources/user-agent-script.py: Added.
  • http/tests/navigation/slow-loading-page-with-slow-script.php: Removed.
  • http/tests/navigation/slow-loading-page-with-slow-script.py: Added.
  • http/tests/navigation/statistics.html:
  • http/tests/navigation/target-blank-opener-post.html:
  • http/tests/navigation/target-blank-opener.html:
  • http/tests/navigation/useragent-reload.php: Removed.
  • http/tests/navigation/useragent-reload.py: Added.
  • http/tests/navigation/useragent.php: Removed.
  • http/tests/navigation/useragent.py: Added.
  • platform/wk2/TestExpectations:
  • platform/wk2/http/tests/navigation/redirect-preserves-fragment-expected.txt:
  • platform/wk2/http/tests/navigation/redirect-to-fragment-expected.txt:
  • platform/wk2/http/tests/navigation/redirect-to-invalid-url-expected.txt:
6:12 PM Changeset in webkit [273780] by Alan Coon
  • 8 edits in branches/safari-612.1.5-branch/Source

Versioning.

WebKit-7612.1.5.4

6:02 PM Changeset in webkit [273779] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Flaky JSC test: stress/shared-array-buffer-sort-while-different-thread-is-modifying.js.default
https://bugs.webkit.org/show_bug.cgi?id=221129

Reviewed by Saam Barati.

Speculative fix for JSC shell's termination handling change.

  • jsc.cpp:

(CommandLine::CommandLine):
(jscmain):

5:56 PM Changeset in webkit [273778] by Wenson Hsieh
  • 8 edits
    2 adds in trunk/Source/WebKit

[iOS] Image extraction should install image overlay content
https://bugs.webkit.org/show_bug.cgi?id=222621

Reviewed by Tim Horton.

Take some initial steps towards refactoring image extraction on iOS. See WebKitAdditions for more details.

  • Platform/cocoa/ImageExtractionUtilities.h: Added.
  • Platform/cocoa/ImageExtractionUtilities.mm: Added.

Add a new file to contain image-extraction-related functionality; see WebKitAdditions.

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

(WebKit::WebPageProxy::updateWithImageExtractionResult):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updateWithImageExtractionResult):

Add IPC plumbing between WebPageProxy (in the UI process) and WebPage to allow clients to push image
extraction results down to a given element on the page.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
5:37 PM Changeset in webkit [273777] by ysuzuki@apple.com
  • 13 edits in trunk/Source

[JSC] Remove ImpureProxyType
https://bugs.webkit.org/show_bug.cgi?id=222626

Reviewed by Alexey Shvayka.

Source/JavaScriptCore:

ImpureProxyType is no longer used. This patch just removes it.

  • API/tests/JSObjectGetProxyTargetTest.cpp:

(testJSObjectGetProxyTarget):

  • runtime/HasOwnPropertyCache.h:

(JSC::HasOwnPropertyCache::tryAdd):

  • runtime/JSCast.h:
  • runtime/JSCellInlines.h:

(JSC::JSCell::isProxy const):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::resetPrototype):
(JSC::JSGlobalObject::finishCreation):

  • runtime/JSProxy.h:

(JSC::JSProxy::createStructure):

  • runtime/JSType.cpp:

(WTF::printInternal):

  • runtime/JSType.h:
  • runtime/Structure.h:

(JSC::Structure::isProxy const):

  • tools/JSDollarVM.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

Source/WebCore:

  • workers/WorkerOrWorkletScriptController.cpp:

(WebCore::WorkerOrWorkletScriptController::initScriptWithSubclass):

5:25 PM Changeset in webkit [273776] by weinig@apple.com
  • 16 edits
    2 deletes in trunk

Reduce the size of extended colors by storing the color space in free bits of the owning Color
https://bugs.webkit.org/show_bug.cgi?id=222584

Reviewed by Darin Adler.

Source/WebCore:

Reduce the size of non-SRBGA<uint8_t> colors by moving the color space from the ref counted
out-of-line bit into the free bits of the Color itself.

Also, take the opertunity to move and rename the out of line bit from it's own file named
ExtendedColor to a private nested type called OutOfLineComponents.

Color now encodes the following data:

| 8 bits | 8 bits | 48 (or 32) bits |
| ColorSpace | Flags | InlineColorDataOrOutOfLinePtr |

ColorSpace actually only uses 4 bits, so if we need more room for flags
in the future, we could pack things even more tightly.

Additionally, take the opportunity to remove the isInline/isExtended and
asInline/asExtended functions. The functionality of isInline/asInline
is still necessary in some places, but can be replaced by a single
tryGetAsSRGBABytes which returns an Optional<SRGBA<uint8_t>> with a
valid value when the stored value is inline.

Since ExtendedColor is no longer accessible, a few tests that checked things like
the ref count of the ExtendedColor had to be changed.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/Color.cpp:

(WebCore::Color::Color):
(WebCore::Color::operator=):
(WebCore::Color::semanticColor const):
(WebCore::Color::colorSpaceAndComponents const):

  • platform/graphics/Color.h:

(WebCore::Color::Color):
(WebCore::Color::isOpaque const):
(WebCore::Color::isVisible const):
(WebCore::Color::alphaByte const):
(WebCore::Color::alphaAsFloat const):
(WebCore::Color::OutOfLineComponents::create):
(WebCore::Color::OutOfLineComponents::alpha const):
(WebCore::Color::OutOfLineComponents::components const):
(WebCore::Color::OutOfLineComponents::OutOfLineComponents):
(WebCore::Color::setOutOfLineComponents):
(WebCore::operator==):
(WebCore::outOfLineComponentsEqual):
(WebCore::outOfLineComponentsEqualIgnoringSemanticColor):
(WebCore::equalIgnoringSemanticColor):
(WebCore::Color::~Color):
(WebCore::Color::hash const):
(WebCore::Color::colorSpace const):
(WebCore::Color::callOnUnderlyingType const):
(WebCore::Color::isOutOfLine const):
(WebCore::Color::isInline const):
(WebCore::Color::asOutOfLine const):
(WebCore::Color::asOutOfLineRef const):
(WebCore::Color::tryGetAsSRGBABytes const):
(WebCore::Color::encodedFlags):
(WebCore::Color::encodedColorSpace):
(WebCore::Color::encodedOutOfLineComponents):
(WebCore::Color::decodedFlags):
(WebCore::Color::decodedColorSpace):
(WebCore::Color::decodedOutOfLineComponents):
(WebCore::Color::setColor):
(WebCore::Color::encode const):
(WebCore::Color::decode):
(WebCore::Color::setExtendedColor): Deleted.
(WebCore::extendedColorsEqual): Deleted.
(WebCore::extendedColorsEqualIgnoringSemanticColor): Deleted.
(WebCore::Color::isExtended const): Deleted.
(WebCore::Color::asExtended const): Deleted.
(WebCore::Color::asExtendedRef const): Deleted.
(WebCore::Color::encodedExtendedColor): Deleted.
(WebCore::Color::decodedExtendedColor): Deleted.

  • platform/graphics/ColorSerialization.cpp:
  • platform/graphics/ExtendedColor.h: Removed.
  • platform/graphics/cg/ColorCG.cpp:

(WebCore::cachedCGColor):

  • platform/graphics/cg/GradientCG.cpp:

(WebCore::Gradient::createCGGradient):

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::SetInlineFillGradient::SetInlineFillGradient):
(WebCore::DisplayList::SetInlineFillGradient::isInline):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::containsOnlyInlineStateChanges):
(WebCore::DisplayList::Recorder::appendStateChangeItem):

  • platform/graphics/mac/ColorMac.mm:

(WebCore::nsColor):

Tools:

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/ColorTests.cpp:

(TestWebKitAPI::TEST):
(TestWebKitAPI::makeColor):

  • TestWebKitAPI/Tests/WebCore/DisplayListTests.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/ExtendedColorTests.cpp: Removed.

Update tests to account for removal of the ExtendedColor class.
Merge ExtendedColorTests.cpp that still make sense into ColorTests.cpp

5:12 PM Changeset in webkit [273775] by Peng Liu
  • 2 edits in trunk/Source/WebKit

[ BigSur Debug Wk 2 ] ASSERT NOT REACHED in WebCore::DisplayList::PaintFrameForMedia::apply
https://bugs.webkit.org/show_bug.cgi?id=221989
<rdar://problem/74403030>

Reviewed by Jer Noble.

No new tests, this will fix a crash on debug bots.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::applyMediaItem): When we cannot get the player, the player
with the given identifier must have been destroyed. This function can return true to indicate
that the item has been applied.

4:56 PM Changeset in webkit [273774] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] Better logging when attempting to convert tag to identifier
https://bugs.webkit.org/show_bug.cgi?id=222482
<rdar://problem/74797495>

Reviewed by Aakash Jain.

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

(Svn._commit_count):

4:39 PM Changeset in webkit [273773] by Simon Fraser
  • 11 edits in trunk

Rename ForcePageRenderingUpdatesAt60FPSEnabled preference to PreferPageRenderingUpdatesNear60FPSEnabled
https://bugs.webkit.org/show_bug.cgi?id=222580.

Reviewed by Tim Horton.

Source/WebCore:

The new setting has the inverse sense of the (confusingly named) older one.

Keep the setting off for now to avoid a behavior change.

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::preferredScriptedAnimationInterval const): Use new Setting name.

  • page/Page.cpp:

(WebCore::Page::preferredRenderingUpdateInterval const): If the pref is set, pass in the actual display FPS
so the code uses that in its fps computation (potentially reducing, say, 144fps to 72fps).

  • page/RenderingUpdateScheduler.cpp:

(WebCore::RenderingUpdateScheduler::adjustRenderingUpdateFrequency): Renamed preferredFramesPerSecond() to preferredFramesPerSecondFromInterval()
(WebCore::RenderingUpdateScheduler::scheduleRenderingUpdate):

  • platform/graphics/AnimationFrameRate.h:

(WebCore::preferredFramesPerSecondFromInterval): Renamed to avoid future name collisions.
(WebCore::preferredFramesPerSecond): Deleted.

  • platform/graphics/mac/DisplayRefreshMonitorMac.h:

Source/WTF:

PreferPageRenderingUpdatesNear60FPSEnabled is a better description of what the preference does.

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

  • TestWebKitAPI/Tests/WebCore/AnimationFrameRate.cpp:

(TestWebKitAPI::TEST): Function rename.

4:38 PM Changeset in webkit [273772] by Russell Epstein
  • 1 delete in tags/Safari-611.1.18.3.1

Delete tag.

4:38 PM Changeset in webkit [273771] by Russell Epstein
  • 1 delete in tags/Safari-611.1.18.2.1

Delete tag.

4:21 PM Changeset in webkit [273770] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.0.2

Tag Safari-611.1.21.0.2.

4:20 PM Changeset in webkit [273769] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.1.3

Tag Safari-611.1.21.1.3.

4:01 PM Changeset in webkit [273768] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Improve logging of OSR availability analysis validation failures
https://bugs.webkit.org/show_bug.cgi?id=222612

Reviewed by Yusuke Suzuki.

  • dfg/DFGOSRAvailabilityAnalysisPhase.cpp:

(JSC::DFG::OSRAvailabilityAnalysisPhase::run):

3:47 PM Changeset in webkit [273767] by Devin Rousso
  • 6 edits in trunk/Source

Allow IDL Date to be parsed from a string in addition to a number and actual JS Date
https://bugs.webkit.org/show_bug.cgi?id=222605
<rdar://problem/74502335>

Reviewed by Yusuke Suzuki.

JS Date can be stringified into JSON, but cannot be parsed back into a JS Date without
additional logic since the stringified value is indistinguishable from a regular string.

Source/JavaScriptCore:

  • runtime/JSDateMath.h:

Export DateCache::parseDate so it can be used in WebCore bindings code.

Source/WebCore:

  • bindings/js/JSDOMConvertDate.h:

(WebCore::Converter<IDLDate>::convert):
Pass the JSGlobalObject instead of the VM.

  • bindings/js/JSDOMConvertDate.cpp:

(WebCore::valueToDate):
Check if value.isString() and if so use DateCache::parseDate (same as JS Date.parse).

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::createIDBKeyFromValue):
Pass the JSGlobalObject instead of the VM. Should have no behavioral change since the
valueToDate call is already guarded by a value.inherits<DateInstance>(vm) check.

3:33 PM Changeset in webkit [273766] by ysuzuki@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

[JSC] Optimize getEnumerableLength
https://bugs.webkit.org/show_bug.cgi?id=222539

Reviewed by Alexey Shvayka.

Now getEnumerableLength is only overridden by JSProxy. And this is called in the critical path of propertyNameEnumerator.
We should not use indirect call for getEnumerableLength. We remove indirect functions for getEnumerableLength. For JSProxy,
any results is OK since anyway JSProxy does not utilize the result of this function since it cannot use fast index enumerator.

We also avoid calling holesMustForwardToPrototype in getEnumerableLength when it is meaningless. For example,
if the object is ALL_BLANK_INDEXING_TYPES, then regardless of the condition of holesMustForwardToPrototype, the result of
getEnumerableLength is zero.

  • runtime/ClassInfo.h:
  • runtime/JSCast.h:
  • runtime/JSCell.cpp:

(JSC::JSCell::getEnumerableLength): Deleted.

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

(JSC::JSObject::getEnumerableLength):

  • runtime/JSObject.h:
  • runtime/JSPropertyNameEnumerator.h:

(JSC::propertyNameEnumerator):

  • runtime/JSProxy.cpp:

(JSC::JSProxy::getEnumerableLength): Deleted.

  • runtime/JSProxy.h:
3:27 PM Changeset in webkit [273765] by Jonathan Bedard
  • 13 edits in trunk/Tools

[webkitscmpy] Add UUID
https://bugs.webkit.org/show_bug.cgi?id=222602
<rdar://problem/74931488>

Reviewed by Dewei Zhu.

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

(Commit):
(Commit.Encoder.default): Add order member.
(Commit.init): Ditto.
(Commit.uuid): Compute UUID from timestamp and order.
(Commit.cmp): Use UUID instead of timestamp for comparison.

  • Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git.commit): Compute commit order.

  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/git-repo.json: Add "order" to colliding commit.
  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py: Correct case where comparison fails.
  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/git_hub.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py:

(BitBucket.commit): Compute commit order.

  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:

(GitHub.commit): Compute commit order.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/commit_unittest.py:
  • Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py:
  • Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:

(TestGit.test_order): Added.
(TestGitHub.test_order): Added.
(TestBitBucket.test_order): Added.

3:22 PM Changeset in webkit [273764] by Said Abou-Hallawa
  • 4 edits
    2 adds in trunk

The layout of SVGImage should force the layout for its clients
https://bugs.webkit.org/show_bug.cgi?id=221253
<rdar://problem/74138641>

Reviewed by Simon Fraser.

Source/WebCore:

Unlike the bitmap image, the intrinsic size of SVGImage can only be known
after running its layout. Because SVGImage can be used by multiple clients,
CachedImage maintains an SVGImageCache which maps a client to an
SVGImageForContainer. SVGImageForContainer is just a wrapper of SVGImage
with the intrinsic size of the client. Because we may set an entry for
the renderer in SVGImageCache early before running a layout for SVGImage
and because the renderer intrinsic size depends on the intrinsic size of
SVGImage, SVGImageForContainer may have an empty intrinsic size.

So basically it is a race condition: knowing the intrinsic size of the
SVGImage client depends on the intrinsic size of SVGImage itself. And the
intrinsic size of SVGImageForContainer depends on the intrinsic size of
the client. This may lead to not rendering the clients because their sizes
are empty. To fix this issue we need to force calculateBackgroundImageGeometry()
once we finish the layout of the SVGImage which happens after receiving all
its data and calling RenderBox::imageChanged().

Test: fast/css/background-svg-image-loading.html

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::finishLoading):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::repaintLayerRectsForImage):

LayoutTests:

  • fast/css/background-svg-image-loading-expected.html: Added.
  • fast/css/background-svg-image-loading.html: Added.
3:06 PM Changeset in webkit [273763] by commit-queue@webkit.org
  • 6 edits
    2 deletes in trunk/Tools

Remove the ability to run tests via webkit-patch
https://bugs.webkit.org/show_bug.cgi?id=222617

Patch by Sam Sneddon <Sam Sneddon> on 2021-03-02
Reviewed by Jonathan Bedard.

Also removes the build-and-test and build-and-test-attachment commands, as these are now
equivalent to build and build-attachment with --test support gone.

  • Scripts/webkitpy/tool/bot/layouttestresultsreader.py: Unused import
  • Scripts/webkitpy/tool/commands/download.py:

(BuildAndTest):
(Land):
(LandCowhand):
(BuildAndTestAttachment):
(AbstractPatchLandingCommand):

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

(test_build_and_test):
(test_land):
(test_land_red_builders):
(test_land_no_close):
(test_land_no_comment):
(test_land_no_comment_no_close):

  • Scripts/webkitpy/tool/steps/init.py:
  • Scripts/webkitpy/tool/steps/runtests.py: Removed.
  • Scripts/webkitpy/tool/steps/runtests_unittest.py: Removed.
  • Scripts/webkitpy/tool/steps/steps_unittest.py:

(StepsTest.test_runtests_args):
(StepsTest.test_runtests_debug_args):
(StepsTest.test_runtests_jsc):
(StepsTest.test_runtests_jsc_debug):

2:53 PM Changeset in webkit [273762] by Jonathan Bedard
  • 7 edits in trunk/Tools

[run-webkit-tests] Use webkitscmpy when reporting results
https://bugs.webkit.org/show_bug.cgi?id=222432
<rdar://problem/74755765>

Rubber-stamped by Aakash Jain.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:

(Git): The root directory should be treated as if it does not exist.

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

(SummarizedResultsTest.test_svn_revision): Use webkitscmpy's mock repository.
(SummarizedResultsTest.test_svn_revision_git): Added.

  • Scripts/webkitpy/port/base.py:

(Port.commits_for_upload): Use webkitscmpy instead of webkitpy for repository manipulation.

  • Scripts/webkitpy/port/base_unittest.py:

(PortTest.test_commits_for_upload): Use webkitscmpy's mock repository.
(PortTest.test_commits_for_upload_git_svn): Added.

2:51 PM Changeset in webkit [273761] by Lauro Moura
  • 9 edits
    1 add in trunk/LayoutTests

[GLIB] Rebaseline and update expectations

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/gtk/css1/text_properties/text_decoration-expected.txt: After r273554
  • platform/gtk/fast/text/international/bidi-LDB-2-CSS-expected.txt: After r271110
  • platform/gtk/fast/text/international/bidi-LDB-2-HTML-expected.txt: Ditto
  • platform/gtk/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt: Ditto
  • platform/wpe/css1/text_properties/text_decoration-expected.txt: After r273554
  • platform/wpe/scrollingcoordinator/scrolling-tree/absolute-in-nested-overflow-scroll-expected.txt: Added. After r271651
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug89315-expected.txt: After r271616
2:38 PM Changeset in webkit [273760] by Lauro Moura
  • 2 edits in trunk/Tools

[WPE] Support sending key modifiers after r272572
https://bugs.webkit.org/show_bug.cgi?id=222615

Reviewed by Adrian Perez de Castro.

  • WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:

(WTR::wpeKeySymForKeyRef):

2:11 PM Changeset in webkit [273759] by commit-queue@webkit.org
  • 5 edits in trunk

Unconditionally return information in _autofillContext SPI when a field is focused
https://bugs.webkit.org/show_bug.cgi?id=221828
rdar://74211237

Patch by Ricky Mondello <Ricky Mondello> on 2021-03-02
Reviewed by Darin Adler.

Source/WebKit:

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _autofillContext]): Change the contract of _autofillContext to return information for any focused

text field. Add a "version" key. Explicitly indicate whether we're in a login context. This SPI remains stringly
typed for flexibility.

Tools:

Tests updated by Wenson Hsieh.

Rebaseline tests.

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm:

(-[AutoFillTestView acceptsAutoFillLoginCredentials]): Renamed in line with the Password AutoFill-related

contract these tests are about.

1:31 PM Changeset in webkit [273758] by Simon Fraser
  • 5 edits
    1 copy in trunk/Source/WebCore

Move AnimationFrameRate code into a .cpp file
https://bugs.webkit.org/show_bug.cgi?id=222609

Reviewed by Zalan Bujtas.

AnimationFrameRate code is getting larger. It should not all be inline.

Add ANGLEWebKitBridge.* to the project; they were missing.

Sort the Xcode project, deal with unified sources fallout.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/AnimationFrameRate.cpp: Copied from Source/WebCore/platform/graphics/AnimationFrameRate.h.

(WebCore::framesPerSecondNearestFullSpeed):
(WebCore::preferredFrameInterval):
(WebCore::preferredFramesPerSecond):
(WebCore::operator<<):

  • platform/graphics/AnimationFrameRate.h:

(WebCore::framesPerSecondNearestFullSpeed): Deleted.
(WebCore::preferredFrameInterval): Deleted.
(WebCore::preferredFramesPerSecond): Deleted.
(WebCore::operator<<): Deleted.

  • platform/graphics/cg/ImageUtilitiesCG.cpp:
1:23 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
1:13 PM Changeset in webkit [273757] by Russell Epstein
  • 59 edits in branches/safari-611.1.21.1-branch/Source/WebCore

Apply patch. rdar://problem/74944301

1:12 PM Changeset in webkit [273756] by Russell Epstein
  • 59 edits in branches/safari-611.1.21.0-branch/Source/WebCore

Apply patch. rdar://problem/74944257

1:05 PM Changeset in webkit [273755] by Russell Epstein
  • 1 copy in tags/Safari-612.1.5.3

Tag Safari-612.1.5.3.

12:35 PM Changeset in webkit [273754] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Enable simplified vertical alignment for non-empty root inline box
https://bugs.webkit.org/show_bug.cgi?id=222604

Reviewed by Antti Koivisto.

This patch enables the simplified vertical alignment for cases when the root inline box has text content.
e.g. <div>this is text only</div>

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

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

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

Take box-sizing into account in replaced element intrinsic sizing
https://bugs.webkit.org/show_bug.cgi?id=221671

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

LayoutTests/imported/w3c:

Sync test.

  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-032.html:

Source/WebCore:

Take box-sizing into account in replaced element intrinsic sizing when
using aspect-ratio, but keep using content-box when resolving
width/height when no aspect-ratio is set.

Tests: imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-031.html

imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-032.html
imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-033.html

  • rendering/RenderReplaced.cpp:

(WebCore::resolveWidthForRatio):
(WebCore::RenderReplaced::computeReplacedLogicalWidth const):
(WebCore::resolveHeightForRatio):
(WebCore::RenderReplaced::computeReplacedLogicalHeight const):

LayoutTests:

Enable some tests that pass now.

12:08 PM Changeset in webkit [273752] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

Crash under KeyframeEffect::setTarget()
https://bugs.webkit.org/show_bug.cgi?id=222591
<rdar://problem/74281295>

Reviewed by David Kilzer.

The Styleable returned by targetStyleable() holds a reference to the Element that at
this point is m_target (assuming it's non-null). However, once we set the new value
for m_target, if the only reference to the original target was held by this KeyframeEffect,
then that element will be deallocated and by the time we call didChangeTargetStyleable()
it will be gone.

To address, we create a RefPtr<Element> in the scope of KeyframeEffect::setTarget()
protecting the Styleable's element while didChangeTargetStyleable() is called.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::setTarget):

12:03 PM Changeset in webkit [273751] by achristensen@apple.com
  • 9 edits in trunk/Source/JavaScriptCore

[Cocoa] REGRESSION(r272752): fix some internal builds that use WTFString::WTFString(NSString *)
https://bugs.webkit.org/show_bug.cgi?id=222610
<rdar://74938249>

Unreviewed build fix.

Patch by BJ Burg <BJ Burg> on 2021-03-02

  • inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py:

(ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_method_implementation):
Some builders seem to find the new version of the header (without the exported NSString constructor)
whereas others don't find the new version (expecting the symbol to be exported), causing a linker error later on.

As a workaround, force usage of the CFStringRef constructor, which is always exported.

  • inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
  • inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
  • inspector/scripts/tests/expected/enum-values.json-result:
  • inspector/scripts/tests/expected/type-declaration-array-type.json-result:
  • inspector/scripts/tests/expected/type-declaration-enum-type.json-result:
  • inspector/scripts/tests/expected/type-declaration-object-type.json-result:
  • inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result:

Rebaseline generator test results.

12:00 PM Changeset in webkit [273750] by Alexey Shvayka
  • 8 edits
    1 add in trunk

TypedArray's DefineOwnProperty? should throw in case of failure
https://bugs.webkit.org/show_bug.cgi?id=220492

Reviewed by Darin Adler.

JSTests:

  • stress/array-species-config-array-constructor.js:
  • stress/put-direct-index-broken-2.js:

Update assertions, which are most certainly incorrect, partly aligning JSC with V8.

  • stress/typedarray-access-monomorphic-neutered.js:
  • stress/typedarray-access-neutered.js:
  • stress/typedarray-defineOwnProperty-error.js: Added.
  • test262/expectations.yaml:

Incorrect tests are being updated at https://github.com/tc39/test262/pull/2958.

Source/JavaScriptCore:

While web reality [1] requires failures of the most TypeArray internal methods to be
silent, DefineOwnProperty? can fail loudly if called via Object.defineProperty.

With this patch, TypeError is thrown for detached buffer, out-of-bounds index, and
non-index canonical numeric string key. Aligns JSC with the spec [2], V8, and SM.

[1]: https://github.com/tc39/ecma262/pull/2164
[2]: https://tc39.es/ecma262/#sec-integer-indexed-exotic-objects-defineownproperty-p-desc (step 3.b)

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::defineOwnProperty):

11:51 AM Changeset in webkit [273749] by Ruben Turcios
  • 6 edits in branches/safari-611.1.21.1-branch

Cherry-pick r273695. rdar://problem/74940739

Crash under WebProcessPool::pageBeginUsingWebsiteDataStore()
https://bugs.webkit.org/show_bug.cgi?id=222574
<rdar://68340471>

Reviewed by Geoffrey Garen.

Source/WebKit:

The issue was that when WebProcessProxy::requestTermination() was called (e.g. process is killed by WebKit
for using too much memory), we would fail to remove the process from the WebProcessCache. Because the
terminated would stay in the cache (even though WebProcessProxy::shutDown() was called), we could potentially
try and use it later on for a navigation to the same domain. This would lead to crashes because
WebProcessProxy::shutDown() has already been called.

Note that we were previously correctly removing the process from the cache in case of a proper crash, inside
WebProcessProxy::processDidTerminateOrFailedToLaunch(). I have moved the logic to remove from the cache
from processDidTerminateOrFailedToLaunch() to shutDown() to avoid similar issues in the future.

  • UIProcess/API/Cocoa/WKProcessPool.mm: (-[WKProcessPool _requestWebProcessTermination:]):
  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::shutDown): (WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

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

11:41 AM Changeset in webkit [273748] by Ruben Turcios
  • 8 edits in branches/safari-611.1.21.1-branch/Source

Versioning.

WebKit-7611.1.21.1.3

11:27 AM Changeset in webkit [273747] by Russell Epstein
  • 8 edits in branches/safari-611.1.18.3-branch/Source

Versioning

WebKit-7611.1.18.3.1

11:23 AM Changeset in webkit [273746] by Russell Epstein
  • 8 edits in branches/safari-611.1.18.2-branch/Source

Versioning

WebKit-7611.1.18.2.1

11:19 AM Changeset in webkit [273745] by Chris Gambrell
  • 6 edits
    3 adds
    3 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/uri convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=222599
<rdar://problem/74929709>

Reviewed by Jonathan Bedard.

  • http/tests/uri/css-href.php: Removed.
  • http/tests/uri/css-href.py: Added.
  • http/tests/uri/curly-braces-escaping-expected.txt:
  • http/tests/uri/curly-braces-escaping.html:
  • http/tests/uri/intercept/.htaccess:
  • http/tests/uri/resources/echo-uri.php: Removed.
  • http/tests/uri/resources/echo-uri.py: Added.
  • http/tests/uri/resources/print-uri.php: Removed.
  • http/tests/uri/resources/print-uri.py: Added.
  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
11:19 AM Changeset in webkit [273744] by Russell Epstein
  • 1 copy in branches/safari-611.1.18.3-branch

New branch.

11:18 AM Changeset in webkit [273743] by Russell Epstein
  • 1 copy in branches/safari-611.1.18.2-branch

New branch.

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

Make build.webkit.org loadconfig similar to EWS
https://bugs.webkit.org/show_bug.cgi?id=222597

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/loadConfig.py:

(loadBuilderConfig):
(checkValidWorker): Method to validate worker.
(checkValidBuilder): Method to validate builder.
(checkValidSchedulers): Method to validate schedulers.
(doesTriggerExist):
(isTriggerUsedByAnyBuilder):
(checkWorkersAndBuildersForConsistency):

  • CISupport/build-webkit-org/loadConfig_unittest.py: Added unit-tests.

(ConfigDotJSONTest.test_configuration):
(TestcheckValidWorker):
(TestcheckValidWorker.test_invalid_worker):
(TestcheckValidWorker.test_worker_with_missing_name):
(TestcheckValidWorker.test_worker_with_missing_platName):
(TestcheckValidWorker.test_valid_worker):
(TestcheckValidBuilder):
(TestcheckValidBuilder.test_invalid_builder):
(TestcheckValidBuilder.test_builder_with_missing_name):
(TestcheckValidBuilder.test_builder_with_invalid_identifier):
(TestcheckValidBuilder.test_builder_with_extra_long_name):
(TestcheckValidBuilder.test_builder_with_invalid_configuration):
(TestcheckValidBuilder.test_builder_with_missing_factory):
(TestcheckValidBuilder.test_builder_with_missing_scheduler):
(TestcheckValidBuilder.test_builder_with_missing_platform):
(TestcheckValidBuilder.test_valid_builder):
(TestcheckWorkersAndBuildersForConsistency):
(TestcheckWorkersAndBuildersForConsistency.test_checkWorkersAndBuildersForConsistency):
(TestcheckWorkersAndBuildersForConsistency.test_checkWorkersAndBuildersForConsistency1):
(TestcheckWorkersAndBuildersForConsistency.test_duplicate_worker):
(TestcheckWorkersAndBuildersForConsistency.test_success):

  • CISupport/ews-build/loadConfig.py:

(checkWorkersAndBuildersForConsistency): Added double-quotes in error message for better readability.

  • CISupport/ews-build/loadConfig_unittest.py:

(TestcheckWorkersAndBuildersForConsistency.test_checkWorkersAndBuildersForConsistency1):

11:16 AM Changeset in webkit [273741] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Unreviewed. Fix -Wreturn-type warnings after r273550

  • Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp:

(WebCore::fromRTCPriorityType):
(WebCore::toRTCPriorityType):
(WebCore::toWebRTCBitRatePriority):

11:14 AM Changeset in webkit [273740] by Russell Epstein
  • 1 delete in branches/safari-611.1.18.3-branch

Delete branch.

11:14 AM Changeset in webkit [273739] by Russell Epstein
  • 1 delete in branches/safari-611.1.18.2-branch

Delete branch.

11:09 AM Changeset in webkit [273738] by Alan Coon
  • 3 edits
    2 adds in branches/safari-611.1.21.0-branch

Cherry-pick r273656. rdar://problem/74883345

REGRESSION(r272004): transform transition with delay doesn't behave correctly
https://bugs.webkit.org/show_bug.cgi?id=222545
<rdar://problem/74865413>

Reviewed by Dean Jackson.

Source/WebCore:

To support accelerated animations of individual transform properties, we introduced the notion of
non-interpolating animations to apply the underlying value for a given property before applying
the actual animations for this property with additivity set to true.

These non-interpolating animations were meant to last between the time at which animations were
committed and the effective start of the first animation for that property, accounting for any
delay.

However, we neglected to handle the case where that first animation had a fill mode that would
make it fill backwards, such as CSS Transitions. In that situation, the animation would have
its first keyframe applied on top of the underlying value, effectively applying the underlying
value twice with additivity.

We now only add these non-interpolating animations if the first animation has a delay and does
not fill backwards.

Test: webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html

  • platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::updateAnimations):

LayoutTests:

Add a new test where an element with a non-identity transform starts a transform transition with a
long delay. Prior to this patch, this test failed because, while in the delay phase, the transition
would mean the underlying transform was applied twice: once by the non-interpolating animation
generated for the underlying "transform" value, and once by the first keyframe of the transition
since it fills backwards.

  • webanimations/transform-transition-with-delay-on-forced-layer-with-transform-expected.html: Added.
  • webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html: Added.

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

11:08 AM Changeset in webkit [273737] by Alan Coon
  • 8 edits in branches/safari-611.1.21.0-branch/Source

Versioning.

WebKit-7611.1.21.0.2

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

Versioning.

WebKit-7612.1.5.3

10:25 AM Changeset in webkit [273735] by commit-queue@webkit.org
  • 10 edits in trunk

REGRESSION(r263094): [GTK][WPE] API test /webkit/WebKitWebContext/languages is failing
https://bugs.webkit.org/show_bug.cgi?id=188111

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-03-02
Reviewed by Michael Catanzaro.

Source/WebKit:

The GLib API allows to change the user preferred languages after the web process is created. Since r263094 we
are no loner sending the new overrides to the web process. Instead of calling overrideUserPreferredLanguages()
we now set the overrides in the WebProcessPool configuration, so that we can remove the language observer.

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkit_web_context_set_preferred_languages): Use WebProcessPool::setOverrideLanguages() instead of
overrideUserPreferredLanguages().

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::WebProcessPool) Remove the language observer registration.
(WebKit::WebProcessPool::~WebProcessPool): Remove the language observer unregistration.
(WebKit::WebProcessPool::setOverrideLanguages): Update the language overrides in the configuration and notify
all processes.
(WebKit::WebProcessPool::languageChanged): Deleted.

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

(WebKit::WebProcess::userPreferredLanguagesChanged const): Call overrideUserPreferredLanguages() again here.

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

Tools:

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:

(testWebContextLanguages): Invalid locale is ignored now instead of throwing a exception.

  • TestWebKitAPI/glib/TestExpectations.json: Remove test expectation now that it passes again.
10:22 AM Changeset in webkit [273734] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Enable grid view
https://bugs.webkit.org/show_bug.cgi?id=222369

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/master_buildbot2.cfg:
9:57 AM Changeset in webkit [273733] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Eliminate ScrollAnimatorGeneric::m_smoothAnimation
https://bugs.webkit.org/show_bug.cgi?id=222588

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-03-02
Reviewed by Simon Fraser.

No new tests. This change should not change behavior.

Eliminate the extra ScrollAnimationSmooth in ScrollAnimatorGeneric. The base
class already knows how to do scroll animations for programmatic scrolls,
so we can reuse that animation for doing ScrollAnimator::scroll(...). This
makes the code easier to understand and should simplify managing interactions
between the different animations in the future.

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::ScrollAnimator): Renamed m_animationProgrammaticScroll
to m_scrollAnimation. The more generic name reflects the fact that it is also
used for doing scrolling from UI interaction now.
(WebCore::ScrollAnimator::scroll): Use the ScrollAnimationSmooth member to do
animated scrolls when necessary.
(WebCore::ScrollAnimator::scrollToPositionWithoutAnimation): Make sure the animation
is up to date with the current position when scrolling without it. This is
how ScrollAnimatorGeneric treated its ScrollAnimationSmooth.
(WebCore::ScrollAnimator::scrollToPositionWithAnimation): Rename member.
(WebCore::ScrollAnimator::cancelAnimations): Ditto.
(WebCore::ScrollAnimator::willEndLiveResize): Ditto.
(WebCore::ScrollAnimator::didAddVerticalScrollbar): Ditto.
(WebCore::ScrollAnimator::didAddHorizontalScrollbar): Ditto.

  • platform/ScrollAnimator.h: Ditto.
  • platform/generic/ScrollAnimatorGeneric.cpp:

(WebCore::ScrollAnimatorGeneric::ScrollAnimatorGeneric): Eliminate ScrollAnimationSmooth.
(WebCore::ScrollAnimatorGeneric::scrollToPositionWithoutAnimation): Ditto.
(WebCore::ScrollAnimatorGeneric::didAddVerticalScrollbar): Ditto.
(WebCore::ScrollAnimatorGeneric::didAddHorizontalScrollbar): Ditto.
(WebCore::ScrollAnimatorGeneric::ensureSmoothScrollingAnimation): Deleted.
(WebCore::ScrollAnimatorGeneric::scroll): Deleted.
(WebCore::ScrollAnimatorGeneric::willEndLiveResize): Deleted.

  • platform/generic/ScrollAnimatorGeneric.h:
9:16 AM Changeset in webkit [273732] by youenn@apple.com
  • 8 edits in trunk

Use capture settings after recovering capture from GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=221126
<rdar://problem/73744819>

Reviewed by Eric Carlson.

Source/WebKit:

When updating constraints, store the constraints so that, on crash recovery,
we recreate the remote source and reapply the last constraints.

Manually tested and partially covered by API test.

  • WebProcess/cocoa/RemoteRealtimeAudioSource.cpp:

(WebKit::RemoteRealtimeAudioSource::applyConstraints):
(WebKit::RemoteRealtimeAudioSource::gpuProcessConnectionDidClose):

  • WebProcess/cocoa/RemoteRealtimeAudioSource.h:
  • WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:

(WebKit::RemoteRealtimeVideoSource::setFrameRateWithPreset):
(WebKit::RemoteRealtimeVideoSource::gpuProcessConnectionDidClose):

  • WebProcess/cocoa/RemoteRealtimeVideoSource.h:

Tools:

  • TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/getUserMedia.html:
8:31 AM Changeset in webkit [273731] by calvaris@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer] Error instead of asserting on the player in the source
https://bugs.webkit.org/show_bug.cgi?id=222108

Reviewed by Philippe Normand.

The release assert can be hit in some cases in smoothstreaming
with already invalid pipelines so better to just error out instead
of assert on release.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcCreate):

7:37 AM Changeset in webkit [273730] by youenn@apple.com
  • 24 edits
    1 add in trunk

Enable MEDIA_SOURCE in IOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=222041
Source/WebCore:

<rdar://problem/74433510>

Reviewed by Eric Carlson.

MediaSource IDLs were protected by MEDIA_SOURCE but not by MediaSource runtime flag.
Update IDLs accordingly.

Covered by existing tests.

  • Modules/mediasource/AudioTrack+MediaSource.idl:
  • Modules/mediasource/DOMURL+MediaSource.idl:
  • Modules/mediasource/SourceBuffer.idl:
  • Modules/mediasource/SourceBufferList.idl:
  • Modules/mediasource/TextTrack+MediaSource.idl:
  • Modules/mediasource/VideoTrack+MediaSource.idl:
  • bindings/js/WebCoreBuiltinNames.h:
  • html/HTMLMediaElement.idl:

Minor change to kick in binding generator.

  • html/track/AudioTrack.idl:
  • html/track/TextTrack.idl:
  • html/track/VideoTrack.idl:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::mediaEngine):
If AVStreamDataParser is not available, MSE backend will not be available.
Update assertion accordingly.

Source/WebCore/PAL:

Reviewed by Eric Carlson.

Add missing header declarations in AVStreamDataParserSPI.h and use it for simulator.

  • PAL.xcodeproj/project.pbxproj:
  • pal/spi/cocoa/AVFoundationSPI.h:
  • pal/spi/cocoa/AVStreamDataParserSPI.h: Added.

Source/WTF:

Reviewed by Eric Carlson.

  • Scripts/Preferences/WebPreferences.yaml:

Move this settings out of ENABLE(MEDIA_SOURCE) to allow existing binding code to compile.

  • wtf/PlatformEnableCocoa.h:

Tools:

<rdar://problem/74433510>

Reviewed by Eric Carlson.

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetPreferencesToConsistentValues):
Disable MediaSource runtime flag on simulator since it lacks implementation of AVStreamDataParser.

LayoutTests:

Reviewed by Eric Carlson.

  • fast/mediastream/MediaStream-video-element.html:

Update to sort properties lexicographically.

  • fast/mediastream/MediaStream-video-element-expected.txt:
7:12 AM Changeset in webkit [273729] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Move WebGL test bot to Big Sur (follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=222501
rdar://73900538

Unreviewed infrastructure fix.

  • CISupport/build-webkit-org/config.json: Fixed a typo.
6:44 AM Changeset in webkit [273728] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Merge SimplifiedVerticalAlignment and m_useSimplifiedVerticalAlignment
https://bugs.webkit.org/show_bug.cgi?id=222586

Reviewed by Antti Koivisto.

Let's have SimplifiedVerticalAlignment track if simplified alignment can be applied on the current content.
Also decouple the actual alignment and whether the inline level box can be (simplified)aligned.
(see SimplifiedVerticalAlignment::align and SimplifiedVerticalAlignment::canUseSimplifiedAlignment)
This is in preparation for supporting non-atomic inline level boxes.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::rootInlineBoxLogicalTop const):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::lineBoxHeight const):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::isEnabled const):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::setEnabled):
(WebCore::Layout::LineBoxBuilder::LineBoxBuilder):
(WebCore::Layout::LineBoxBuilder::build):
(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::SimplifiedVerticalAlignment):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::canUseSimplifiedAlignment):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::align):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::adjust):
(WebCore::Layout::SimplifiedVerticalAlignment::SimplifiedVerticalAlignment): Deleted.
(WebCore::Layout::SimplifiedVerticalAlignment::rootInlineBoxLogicalTop const): Deleted.
(WebCore::Layout::SimplifiedVerticalAlignment::lineBoxHeight const): Deleted.
(WebCore::Layout::SimplifiedVerticalAlignment::alignInlineLevelBoxIfApplicable): Deleted.
(WebCore::Layout::SimplifiedVerticalAlignment::adjust): Deleted.
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes): Deleted.

2:15 AM Changeset in webkit [273727] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Null check platformData when decoding
https://bugs.webkit.org/show_bug.cgi?id=221442

Patch by Rob Buis <rbuis@igalia.com> on 2021-03-02
Reviewed by Ryosuke Niwa.

Source/WebKit:

Null check platformData when decoding.

Test: ipc/pasteboard-write-custom-data.html

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<PasteboardCustomData::Entry>::decode):

LayoutTests:

Add test for this.

  • ipc/pasteboard-write-custom-data-expected.txt: Added.
  • ipc/pasteboard-write-custom-data.html: Added.
2:13 AM Changeset in webkit [273726] by Chris Lord
  • 7 edits in trunk/Source/WebCore

Remove document accessor on CSSFontSelector
https://bugs.webkit.org/show_bug.cgi?id=222550

Reviewed by Darin Adler.

Replace FontSelector::document() with FontSelector::scriptExecutionContext().

No new tests because there is no behavior change.

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::appendSources):
(WebCore::CSSFontFace::create):
(WebCore::CSSFontFace::CSSFontFace):

  • css/CSSFontFace.h:
  • css/CSSFontFaceSet.cpp:

(WebCore::CSSFontFaceSet::ensureLocalFontFacesForFamilyRegistered):

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::scriptExecutionContext const):
(WebCore::CSSFontSelector::fontStyleUpdateNeeded):

  • css/CSSFontSelector.h:
  • css/FontFace.cpp:

(WebCore::FontFace::FontFace):

1:18 AM Changeset in webkit [273725] by youenn@apple.com
  • 3 edits in trunk/Source/WebKit

Camera capture in iOS with GPUProcess enabled does not always handle orientation well at start up
https://bugs.webkit.org/show_bug.cgi?id=222167
<rdar://problem/74520496>

Reviewed by Eric Carlson.

Before the patch, GPU process orientation monitors were only getting updates after creation of the web process connection.
The initial value was therefore sometimes wrong.
Update this by storing the orientation value in GPU process and initializing it for every web process connection.
Manually tested.

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::createGPUConnectionToWebProcess):
(WebKit::GPUProcess::setOrientationForMediaCapture):

  • GPUProcess/GPUProcess.h:

Mar 1, 2021:

10:59 PM Changeset in webkit [273724] by Fujii Hironori
  • 4 edits in trunk

[GTK] Web inspector related tests very slow or timeout in debug mode
https://bugs.webkit.org/show_bug.cgi?id=208000

Reviewed by Carlos Garcia Campos.

Source/WebKit:

setTimeout was very slow in the inspector page because it was
throttled by 1 second due to that the page is hidden. Mac port
disables HiddenPageDOMTimerThrottlingEnabled for the inspector
page under testing. Do the same for GTK port.

  • UIProcess/Inspector/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformCreateFrontendPage):
setHiddenPageDOMTimerThrottlingEnabled(false) if under test.

LayoutTests:

  • platform/gtk/TestExpectations: Unmarked tests for Bug 149916 and Bug 208000.
9:00 PM Changeset in webkit [273723] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Move simplified baseline alignment to a dedicated function
https://bugs.webkit.org/show_bug.cgi?id=222564

Reviewed by Antti Koivisto.

This is in preparation for supporting non-atomic inline level boxes.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::simplifiedAlignInlineBoxIfApplicable const):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

8:21 PM Changeset in webkit [273722] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Move simplified vertical alignment computation to struct SimplifiedVerticalAlignment
https://bugs.webkit.org/show_bug.cgi?id=222562

Reviewed by Antti Koivisto.

This is in preparation for supporting non-atomic inline level boxes (by just calling simplifiedVerticalAlignment.adjust(inlineLevelBox)).

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::SimplifiedVerticalAlignment::SimplifiedVerticalAlignment):
(WebCore::Layout::SimplifiedVerticalAlignment::rootInlineBoxLogicalTop const):
(WebCore::Layout::SimplifiedVerticalAlignment::lineBoxHeight const):
(WebCore::Layout::SimplifiedVerticalAlignment::adjust):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

8:17 PM Changeset in webkit [273721] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Make DictionaryLookup::rangeAtHitTestResult more robust
https://bugs.webkit.org/show_bug.cgi?id=222301
<rdar://problem/74529831>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-01
Reviewed by Brent Fulgham.

This may be related to r265084 but something is crashing and I'm not sure what.
Adding some Optional checks might fix something, but this is still puzzling to me.

  • editing/cocoa/DictionaryLookup.mm:

(WebCore::DictionaryLookup::rangeAtHitTestResult):

8:08 PM Changeset in webkit [273720] by Lauro Moura
  • 4 edits in trunk/LayoutTests

[GLIB] Gardening three common timeouts

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
7:37 PM Changeset in webkit [273719] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Do not try to run simplified alignment when line-height is set
https://bugs.webkit.org/show_bug.cgi?id=222559

Reviewed by Antti Koivisto.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::LineBoxBuilder):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

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

Reduce promise reaction memory usage when there are multiple reactions
https://bugs.webkit.org/show_bug.cgi?id=222533

Reviewed by Yusuke Suzuki.

Previously, we would store each reaction in a linked list. This
meant each reaction required 8 bytes to point to the next
reaction. Instead, this patch makes it so the first reaction is
store inline an object and any additional reactions are store into
index storage for that object. This doesn't save memory for the
first reaction since we now need to have a count of all the out of
line reactions but extra reactions use 8 bytes less each.

  • builtins/BuiltinNames.h:
  • builtins/PromiseOperations.js:

(globalPrivate.pushNewPromiseReaction):
(globalPrivate.triggerPromiseReactions):
(globalPrivate.newPromiseReaction): Deleted.
(globalPrivate.resolvePromise): Deleted.
(globalPrivate.rejectPromise): Deleted.
(globalPrivate.fulfillPromise): Deleted.
(globalPrivate.resolvePromiseWithFirstResolvingFunctionCallCheck): Deleted.
(globalPrivate.fulfillPromiseWithFirstResolvingFunctionCallCheck): Deleted.
(globalPrivate.rejectPromiseWithFirstResolvingFunctionCallCheck): Deleted.
(globalPrivate.createResolvingFunctions): Deleted.
(globalPrivate.promiseReactionJobWithoutPromise): Deleted.
(globalPrivate.resolveWithoutPromise): Deleted.
(globalPrivate.rejectWithoutPromise): Deleted.
(globalPrivate.fulfillWithoutPromise): Deleted.
(globalPrivate.createResolvingFunctionsWithoutPromise): Deleted.
(globalPrivate.promiseReactionJob): Deleted.
(globalPrivate.promiseResolveThenableJobFast): Deleted.
(globalPrivate.promiseResolveThenableJobWithoutPromiseFast): Deleted.
(globalPrivate.promiseResolveThenableJob): Deleted.
(globalPrivate.promiseResolveThenableJobWithDerivedPromise): Deleted.
(onFulfilled): Deleted.
(onRejected): Deleted.
(globalPrivate.performPromiseThen): Deleted.

  • runtime/JSGlobalObject.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/JSMicrotask.cpp:

(JSC::createJSMicrotask):

  • runtime/JSMicrotask.h:
6:04 PM Changeset in webkit [273717] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

REGRESSION: Object.defineProperties triggering a setter
https://bugs.webkit.org/show_bug.cgi?id=222538

Reviewed by Keith Miller.

JSTests:

  • stress/dfg-put-by-val-string-or-symbol-should-check-direct.js: Added.

(test1):
(test2):

Source/JavaScriptCore:

DFG's compilePutByValForCellWithString and compilePutByValForCellWithSymbol do not care about "Direct" flag.
This patch fixes that to call appropriate function if node is PutByValDirect.
FTL does not have this issue.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compilePutByValForCellWithString):
(JSC::DFG::SpeculativeJIT::compilePutByValForCellWithSymbol):

5:57 PM Changeset in webkit [273716] by Jonathan Bedard
  • 8 edits in trunk/Tools

[wbkitscmpy] Add commits with colliding timestamps
https://bugs.webkit.org/show_bug.cgi?id=222572
<rdar://problem/74887215>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/git-repo.json: Add commit with colliding timestamp.
  • Scripts/libraries/webkitscmpy/webkitscmpy/test/canonicalize_unittest.py:
  • Scripts/libraries/webkitscmpy/webkitscmpy/test/checkout_unittest.py:
  • Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py:
  • Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:
5:52 PM Changeset in webkit [273715] by Chris Fleizach
  • 6 edits
    2 adds in trunk

AX: VoiceOver announces grid as having "0 columns" and VoiceOver cannot enter the grid
https://bugs.webkit.org/show_bug.cgi?id=222440
<rdar://problem/74763792>

Reviewed by Zalan Bujtas.

Source/WebCore:

Support the ability of an ARIA table row to reference its cells through aria-owns.

Test: accessibility/aria-grid-with-aria-owns-rows.html

  • accessibility/AccessibilityTableCell.cpp:

(WebCore::AccessibilityTableCell::ariaOwnedByParent const):
(WebCore::AccessibilityTableCell::parentObjectUnignored const):
(WebCore::AccessibilityTableCell::parentRow const):

  • accessibility/AccessibilityTableCell.h:
  • accessibility/AccessibilityTableRow.cpp:

(WebCore::AccessibilityTableRow::addChildren):

LayoutTests:

  • accessibility/aria-grid-with-aria-owns-rows-expected.txt: Added.
  • accessibility/aria-grid-with-aria-owns-rows.html: Added.
5:51 PM Changeset in webkit [273714] by Peng Liu
  • 2 edits in trunk/LayoutTests

[GPUP] Some media related security tests time out when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221793

Unreviewed test gardening.

  • platform/wk2/TestExpectations:
5:44 PM Changeset in webkit [273713] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Have WebProcessProxy::requestTermination() call processDidTerminateOrFailedToLaunch()
https://bugs.webkit.org/show_bug.cgi?id=222577

Reviewed by Geoffrey Garen.

Have WebProcessProxy::requestTermination() call processDidTerminateOrFailedToLaunch() instead of duplicating
the code. It was error-prone to have 2 separate code paths whether the process exited due to a crash or a
termination request. It led to Bug 222574 for example because we added some logic to remove the process from
the cache in processDidTerminateOrFailedToLaunch() but had failed to do so in requestTermination().

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::didClose):
(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):
(WebKit::WebProcessProxy::didFinishLaunching):
(WebKit::WebProcessProxy::requestTermination):

  • UIProcess/WebProcessProxy.h:
5:40 PM Changeset in webkit [273712] by Peng Liu
  • 2 edits in trunk/LayoutTests

[GPUP] Some tests in http/tests/media fail or time out when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221694

Unreviewed test gardening.

Remove the tests which are consistently passing on bots from the test expectations.

  • platform/wk2/TestExpectations:
5:32 PM Changeset in webkit [273711] by Wenson Hsieh
  • 7 edits
    1 add in trunk

Support rotated image overlay text for non-rectilinear text quads
https://bugs.webkit.org/show_bug.cgi?id=222535
<rdar://problem/74886200>

Reviewed by Tim Horton.

Source/WebCore:

Add support for rendering image overlay elements at rotated angles. To achieve this, we add a new helper
function to GeometryUtilities.h, rotatedBoundingRect, that takes a FloatQuad and returns a struct that
describes a (potentially) rotated bounding rect that covers all the points in the quad.

Tests: FloatQuad.RotatedBoundingRectForPoint

FloatQuad.RotatedBoundingRectForLineSegment
FloatQuad.RotatedBoundingRectForTriangle
FloatQuad.RotatedBoundingRectForTrapezoid
FloatQuad.RotatedBoundingRectWithMinimumAngle

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::updateWithImageExtractionResult):

Add a slight (0.01 rad) tolerance here, such we won't attempt to apply a rotation transformation if the text
quad is aligned (or nearly aligned) with the unit vector (1, 0).

  • platform/graphics/GeometryUtilities.cpp:

(WebCore::midPoint):
(WebCore::dotProduct):
(WebCore::angleBetweenVectors):
(WebCore::rotatedBoundingRect):

  • platform/graphics/GeometryUtilities.h:
  • platform/graphics/PathTraversalState.cpp:

(WebCore::midPoint): Deleted.

Tools:

Add a new API test file to exercise the new rotatedBoundingRect function, with tests to cover a few degenerate
cases such as a single point, line segments, and triangles.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/FloatQuadTests.cpp: Added.

(TestWebKitAPI::areApproximatelyEqual):
(TestWebKitAPI::expectRotatedRect):
(TestWebKitAPI::TEST):

5:22 PM Changeset in webkit [273710] by Ruben Turcios
  • 1 copy in tags/Safari-611.1.21.3.1

Tag Safari-611.1.21.3.1.

5:16 PM Changeset in webkit [273709] by Ruben Turcios
  • 1 copy in tags/Safari-611.1.21.2.1

Tag Safari-611.1.21.2.1.

5:13 PM Changeset in webkit [273708] by Alan Coon
  • 1 copy in tags/Safari-611.1.21.1.2

Tag Safari-611.1.21.1.2.

5:13 PM Changeset in webkit [273707] by Peng Liu
  • 2 edits in trunk/LayoutTests

[GPUP] Some tests in imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements fail when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221697

Unreviewed test gardening.

  • platform/wk2/TestExpectations:
5:09 PM Changeset in webkit [273706] by Alan Coon
  • 8 edits in branches/safari-611.1.21.1-branch/Source

Versioning.

WebKit-7611.1.21.1.2

5:04 PM Changeset in webkit [273705] by Peng Liu
  • 2 edits in trunk/LayoutTests

[GPUP] Some media related content security policy tests fail when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221792

Unreviewed test gardening.

  • platform/wk2/TestExpectations:
5:03 PM Changeset in webkit [273704] by Truitt Savell
  • 2 edits in trunk/LayoutTests

fast/canvas/webgl/texImage2D-video-flipY-false.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=222500

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
5:00 PM Changeset in webkit [273703] by Alan Coon
  • 1 copy in tags/Safari-611.1.21.0.1

Tag Safari-611.1.21.0.1.

4:51 PM Changeset in webkit [273702] by Alan Coon
  • 1 copy in tags/Safari-611.1.21.1.1

Tag Safari-611.1.21.1.1.

4:10 PM Changeset in webkit [273701] by Peng Liu
  • 2 edits in trunk/LayoutTests

[GPUP] Some modern-media-controls tests are flaky when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221685

Unreviewed test gardening.

  • platform/wk2/TestExpectations:
3:53 PM Changeset in webkit [273700] by Truitt Savell
  • 14 edits in trunk/Source

Unreviewed, reverting r273655.

Broke internal Mac

Reverted changeset:

"Set ownership of IOSurfaces from the GPUProcess instead of
the WebProcess"
https://bugs.webkit.org/show_bug.cgi?id=222391
https://commits.webkit.org/r273655

3:44 PM Changeset in webkit [273699] by pvollan@apple.com
  • 2 edits in trunk

[Win] Fix build failure
https://bugs.webkit.org/show_bug.cgi?id=222576
<rdar://problem/74590803>
Reviewed by Brent Fulgham.

It appears a recent change has unintentionally enabled WebInspectorUI on Apple Win. Address this by explicitly disabling it.

  • Source/cmake/OptionsAppleWin.cmake:
3:28 PM Changeset in webkit [273698] by Chris Gambrell
  • 3 edits
    3 adds
    3 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/websocket convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=221912
<rdar://problem/74358196>

Reviewed by Jonathan Bedard.

  • http/tests/websocket/tests/hybi/contentextensions/block-cookies-worker.php: Removed.
  • http/tests/websocket/tests/hybi/contentextensions/block-cookies-worker.py: Added.
  • http/tests/websocket/tests/hybi/contentextensions/block-cookies.php: Removed.
  • http/tests/websocket/tests/hybi/contentextensions/block-cookies.py: Added.
  • http/tests/websocket/tests/hybi/contentextensions/resources/block-cookies-worker.js:

(clearCookies):

  • http/tests/websocket/tests/hybi/error-event-ready-state-non-existent-url-with-server-responding-404.html:
  • http/tests/websocket/tests/hybi/resources/status-404-without-body.php: Removed.
  • http/tests/websocket/tests/hybi/resources/status-404-without-body.py: Added.
3:15 PM Changeset in webkit [273697] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix unused variable warning
https://bugs.webkit.org/show_bug.cgi?id=222405
<rdar://problem/74769938>

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-01

  • platform/NowPlayingManager.cpp:

(WebCore::NowPlayingManager::setNowPlayingInfo):

3:11 PM Changeset in webkit [273696] by Peng Liu
  • 3 edits in trunk/LayoutTests

[GPUP] Clean up LayoutTests/gpu-process/TestExpectations related to media tests
https://bugs.webkit.org/show_bug.cgi?id=222570

Reviewed by Eric Carlson.

Clean up test expectations.

  • Remove duplicate test expectations.
  • Move some media tests from gpu-process/TestExpectations to platform/wk2/TestExpectations.
  • Remove tests which are passing consistently from gpu-process/TestExpectations.
  • gpu-process/TestExpectations:
  • platform/wk2/TestExpectations:
3:07 PM Changeset in webkit [273695] by Chris Dumez
  • 6 edits in trunk

Crash under WebProcessPool::pageBeginUsingWebsiteDataStore()
https://bugs.webkit.org/show_bug.cgi?id=222574
<rdar://68340471>

Reviewed by Geoffrey Garen.

Source/WebKit:

The issue was that when WebProcessProxy::requestTermination() was called (e.g. process is killed by WebKit
for using too much memory), we would fail to remove the process from the WebProcessCache. Because the
terminated would stay in the cache (even though WebProcessProxy::shutDown() was called), we could potentially
try and use it later on for a navigation to the same domain. This would lead to crashes because
WebProcessProxy::shutDown() has already been called.

Note that we were previously correctly removing the process from the cache in case of a proper crash, inside
WebProcessProxy::processDidTerminateOrFailedToLaunch(). I have moved the logic to remove from the cache
from processDidTerminateOrFailedToLaunch() to shutDown() to avoid similar issues in the future.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _requestWebProcessTermination:]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::shutDown):
(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
3:06 PM Changeset in webkit [273694] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/WebKit

[WinCairo] Building with ENABLE_SERVICE_WORKER=OFF fails
https://bugs.webkit.org/show_bug.cgi?id=222566

Unreviewed build fix.

  • UIProcess/WebProcessPool.cpp: Only compile a method when service

worker is enabled.

2:58 PM Changeset in webkit [273693] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Have WebProcessPool::processForRegistrableDomain() return a Ref<WebProcessProxy>
https://bugs.webkit.org/show_bug.cgi?id=222575

Reviewed by Geoffrey Garen.

Have WebProcessPool::processForRegistrableDomain() return a Ref<WebProcessProxy> instead of a WebProcessProxy&,
for extra safety. Returning a WebProcessProxy& is generally safe because the WebProcessPool is expected to hold
a reference to the WebProcessProxy it is returning (via WebProcessPool::m_processes). However, this is a bit
fragile and can lead to bad bugs as we've seen recently.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::processForRegistrableDomain):
(WebKit::WebProcessPool::createWebPage):

  • UIProcess/WebProcessPool.h:
2:29 PM Changeset in webkit [273692] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Protect AudioWorkletGlobalScope::registerProcessor() against re-entry
https://bugs.webkit.org/show_bug.cgi?id=222567
<rdar://74860464>

Reviewed by Eric Carlson.

AudioWorkletGlobalScope::registerProcessor() checks if 'name' is in m_processorConstructorMap
then does some checks that potentially run JS and thus call registerProcessor() again (potentially
with the same name). To address this, we now check the map again after potentially running the
JS code.

  • Modules/webaudio/AudioWorkletGlobalScope.cpp:

(WebCore::AudioWorkletGlobalScope::registerProcessor):

2:02 PM Changeset in webkit [273691] by Truitt Savell
  • 2 edits
    4 moves in trunk/LayoutTests

[Big Sur] platform/mac-bigsur/media/media-source/media-source-webm-vorbis-partial.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=222495

Unreviewed test gardening.

  • media/media-source/content/test-48kHz-vorbis-manifest.json: Renamed from LayoutTests/platform/mac-bigsur/media/media-source/content/test-48kHz-vorbis-manifest.json.
  • media/media-source/content/test-48kHz-vorbis.webm: Renamed from LayoutTests/platform/mac-bigsur/media/media-source/content/test-48kHz-vorbis.webm.
  • media/media-source/media-source-webm-vorbis-partial-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/media/media-source/media-source-webm-vorbis-partial-expected.txt.
  • media/media-source/media-source-webm-vorbis-partial.html: Renamed from LayoutTests/platform/mac-bigsur/media/media-source/media-source-webm-vorbis-partial.html.
  • platform/mac/TestExpectations:
1:32 PM Changeset in webkit [273690] by Martin Robinson
  • 10 edits
    4 adds in trunk

Scroll snapping doesn't kick in when dragging scrollbars
https://bugs.webkit.org/show_bug.cgi?id=146696

Reviewed by Simon Fraser.

Source/WebCore:

This change adds support for scroll snap when the scrollbar thumb is
released from a drag operation. This animation is currently done with
the non-native scroll animator for all platforms, since that is also
what is used for smooth scrolling.

This change adjusts the non-native scroll animator's smoothness factor,
because it is too slow for short scroll snaps. I have verified that the
new smoothness factor is also a good selection for smooth scrolling
operations (still an experimental feature). A further change should use
"native" animations when possible for both smooth scrolling and scroll
snap after thumb drags. This is tracked by the following bug:
https://bugs.webkit.org/show_bug.cgi?id=218857

Tests: css3/scroll-snap/scroll-snap-click-scrollbar-gutter.html

css3/scroll-snap/scroll-snap-drag-scrollbar-thumb.html

  • platform/ScrollAnimationSmooth.cpp: Modify smoothFactorForProgrammaticScroll to

a value that is good for both scroll snapping and smooth scrolling.

  • platform/ScrollAnimator.cpp: The tick method for the non-native scroll animation

should continually update the current active snap point.
(WebCore::ScrollAnimator::adjustScrollOffsetForSnappingIfNeeded): Split this into
two methods. One that handles a single axis and one that handles both.

  • platform/ScrollAnimator.h: Update method declarations.
  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::doPostThumbDragSnapping): Added this method which does
axial snapping after a scrollbar thum drag.

  • platform/ScrollableArea.h:
  • platform/Scrollbar.cpp:

(WebCore::Scrollbar::mouseUp): Use the new doPostThumbDragSnapping method.

LayoutTests:

Add support for scroll snap after dragging scrollbar thumb

This change adds support for scroll snap when the scrollbar thumb is
released from a drag operation. This animation is currently done with
the non-native scroll animator for all platforms, since that is also
what is used for smooth scrolling.

This change adjusts the non-native scroll animator's smoothness factor,
because it is too slow for short scroll snaps. I have verified that the
new smoothness factor is also a good selection for smooth scrolling
operations (still an experimental feature). A further change should use
"native" animations when possible for both smooth scrolling and scroll
snap after thumb drags. This is tracked by the following bug:
https://bugs.webkit.org/show_bug.cgi?id=218857

  • css3/scroll-snap/scroll-snap-click-scrollbar-gutter-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-click-scrollbar-gutter.html: Added.
  • css3/scroll-snap/scroll-snap-drag-scrollbar-thumb-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-drag-scrollbar-thumb.html: Added.
  • platform/ios-wk2/TestExpectations: Mark new test as failing on iOS

which has issues with scrollbars.

  • platform/ios/TestExpectations: Skip the new test on iOS which does not

support scrolling by dragging the scrollbar.

1:29 PM Changeset in webkit [273689] by Alan Coon
  • 8 edits in branches/safari-611.1.21.1-branch/Source

Cherry-pick r273564. rdar://problem/74886917

[Cocoa] Register VP9 decoders when PlatformMediaSessionManager is created
https://bugs.webkit.org/show_bug.cgi?id=222473
<rdar://problem/74790242>

Reviewed by Eric Carlson.

Source/WebCore:

Currently, VP9 decoders are registered when a Web page is created in the WebContent process. Instead, VP9 decoders can be registered
when PlatformMediaSessionManager is created, which should be a slight performance improvement, since calls into media frameworks will
then not be made unconditionally when creating a Web page, but delayed until required.

No new tests, covered by existing tests.

  • platform/audio/PlatformMediaSessionManager.cpp: (WebCore::PlatformMediaSessionManager::setShouldEnableVP9Decoder): (WebCore::PlatformMediaSessionManager::shouldEnableVP9Decoder): (WebCore::PlatformMediaSessionManager::setShouldEnableVP8Decoder): (WebCore::PlatformMediaSessionManager::shouldEnableVP8Decoder): (WebCore::PlatformMediaSessionManager::setShouldEnableVP9SWDecoder): (WebCore::PlatformMediaSessionManager::shouldEnableVP9SWDecoder):
  • platform/audio/PlatformMediaSessionManager.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm: (WebCore::MediaSessionManagerCocoa::MediaSessionManagerCocoa):

Source/WebKit:

Currently, VP9 decoders are registered when a Web page is created in the WebContent process. Instead, VP9 decoders can be registered when
PlatformMediaSessionManager is created, which should be a slight performance improvement, since calls into media frameworks will then not
be made unconditionally when creating a Web page, but delayed until required.

  • WebProcess/WebPage/WebPage.cpp: (WebKit::m_lastNavigationWasAppBound):
  • WebProcess/WebProcess.cpp: (WebKit::WebProcess::enableVP9Decoder): Deleted. (WebKit::WebProcess::enableVP8SWDecoder): Deleted. (WebKit::WebProcess::enableVP9SWDecoder): Deleted.
  • WebProcess/WebProcess.h:

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

1:27 PM Changeset in webkit [273688] by weinig@apple.com
  • 19 edits
    3 adds in trunk/Source

Add alternate, non-named-getter based, implementation of CSSStyleDeclaration back into WebCore
https://bugs.webkit.org/show_bug.cgi?id=222517

Reviewed by Darin Adler.

Source/WebCore:

Re-lands change from r268564 but disabled behind a new ENABLE flag,
ENABLE(ATTRIBUTE_BASED_PROPERTIES_FOR_CSS_STYLE_DECLARATION).

Replace named getter/setter based implementation of access to CSSStyleDeclaration property values
with a generated partial interface that lists all the properties exactly.

To keep things consistent with existing behavior, in addition to the spec'd properties, we also
maintain additional properties for epub prefixed properties.

  • CMakeLists.txt:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:

Generate CSSStyleDeclaration+PropertyNames.idl and ensure it is compile together with the other
bindings.

  • css/makeprop.pl:

Add generation of CSSStyleDeclaration+PropertyNames.idl from CSSProperties.json. Add checking
of the enable flag to ensure it is not compiled by default.

  • bindings/scripts/CodeGeneratorJS.pm:

(ToMethodName):
Don't transform names that start with CSSOM to ensure property names are consistent.

(GenerateAttributeGetterBodyDefinition):
(GenerateAttributeSetterBodyDefinition):

  • bindings/scripts/IDLAttributes.json:

Add initial support for the new CSSProperty extended attribute. Only the tests and
the disabled code in CSSStyleDeclaration+PropertyNames.idl currently use it.

  • bindings/scripts/test/BindingTestGlobalConstructors.idl:
  • bindings/scripts/test/JS/JSTestCSSProperty.cpp: Added.
  • bindings/scripts/test/JS/JSTestCSSProperty.h: Added.
  • bindings/scripts/test/SupplementalDependencies.dep:
  • bindings/scripts/test/TestCSSProperty.idl: Added.

Add tests for the new CSSProperty extended attribute.

(WebCore::CSSComputedStyleDeclaration::setPropertyInternal):

  • css/CSSComputedStyleDeclaration.h:
  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::getPropertyValueInternal):
(WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):

  • css/PropertySetCSSStyleDeclaration.h:

Remove unused bool return value from getPropertyValueInternal (it goes from
ExceptionOr<bool> to ExceptionOr<void>) to simplify some callers that no longer
need to check the return value.

  • css/CSSStyleDeclaration.cpp:
  • css/CSSStyleDeclaration.h:

Extract out setPropertyValueInternal so it can be used by the bindings generator
for CSSProperty attributes.

  • css/CSSStyleDeclaration.idl:

Move named getter/setter declarations and DefaultDefineOwnProperty inside of
enable flags checks so that when it is disabled, we don't use them.

Source/WTF:

  • wtf/PlatformEnable.h:

Add new off by default ENABLE flag ENABLE(ATTRIBUTE_BASED_PROPERTIES_FOR_CSS_STYLE_DECLARATION) which indicates
that we should use the new attribute based implementation of property getter/setters of CSSStyleDeclaration.
Once we remove the compile time and binary size regressions, we can enable this and remove the macro.

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

media/media-fullscreen-pause-inline.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=222573

RUnreviewed test gardening.

  • platform/mac/TestExpectations:
1:23 PM Changeset in webkit [273686] by Alan Coon
  • 8 edits in branches/safari-611.1.21.0-branch/Source

Cherry-pick r273564. rdar://problem/74886738

[Cocoa] Register VP9 decoders when PlatformMediaSessionManager is created
https://bugs.webkit.org/show_bug.cgi?id=222473
<rdar://problem/74790242>

Reviewed by Eric Carlson.

Source/WebCore:

Currently, VP9 decoders are registered when a Web page is created in the WebContent process. Instead, VP9 decoders can be registered
when PlatformMediaSessionManager is created, which should be a slight performance improvement, since calls into media frameworks will
then not be made unconditionally when creating a Web page, but delayed until required.

No new tests, covered by existing tests.

  • platform/audio/PlatformMediaSessionManager.cpp: (WebCore::PlatformMediaSessionManager::setShouldEnableVP9Decoder): (WebCore::PlatformMediaSessionManager::shouldEnableVP9Decoder): (WebCore::PlatformMediaSessionManager::setShouldEnableVP8Decoder): (WebCore::PlatformMediaSessionManager::shouldEnableVP8Decoder): (WebCore::PlatformMediaSessionManager::setShouldEnableVP9SWDecoder): (WebCore::PlatformMediaSessionManager::shouldEnableVP9SWDecoder):
  • platform/audio/PlatformMediaSessionManager.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm: (WebCore::MediaSessionManagerCocoa::MediaSessionManagerCocoa):

Source/WebKit:

Currently, VP9 decoders are registered when a Web page is created in the WebContent process. Instead, VP9 decoders can be registered when
PlatformMediaSessionManager is created, which should be a slight performance improvement, since calls into media frameworks will then not
be made unconditionally when creating a Web page, but delayed until required.

  • WebProcess/WebPage/WebPage.cpp: (WebKit::m_lastNavigationWasAppBound):
  • WebProcess/WebProcess.cpp: (WebKit::WebProcess::enableVP9Decoder): Deleted. (WebKit::WebProcess::enableVP8SWDecoder): Deleted. (WebKit::WebProcess::enableVP9SWDecoder): Deleted.
  • WebProcess/WebProcess.h:

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

1:16 PM Changeset in webkit [273685] by Chris Gambrell
  • 28 edits
    26 adds
    27 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/loading convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=222198
<rdar://problem/74536576>

Reviewed by Jonathan Bedard.

  • http/tests/loading/307-after-303-after-post-expected.txt:
  • http/tests/loading/307-after-303-after-post.html:
  • http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt:
  • http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials.html:
  • http/tests/loading/authentication-after-redirect-stores-wrong-credentials/resources/wrong-credential-1-redirect-to-auth.php: Removed.
  • http/tests/loading/authentication-after-redirect-stores-wrong-credentials/resources/wrong-credential-1-redirect-to-auth.py: Added.
  • http/tests/loading/authentication-after-redirect-stores-wrong-credentials/resources/wrong-credential-2-auth-then-redirect-to-finish.php: Removed.
  • http/tests/loading/authentication-after-redirect-stores-wrong-credentials/resources/wrong-credential-2-auth-then-redirect-to-finish.py: Added.
  • http/tests/loading/authentication-after-redirect-stores-wrong-credentials/resources/wrong-credential-3-output-credentials-then-finish.php: Removed.
  • http/tests/loading/authentication-after-redirect-stores-wrong-credentials/resources/wrong-credential-3-output-credentials-then-finish.py: Added.
  • http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt:
  • http/tests/loading/basic-auth-load-URL-with-consecutive-slashes.html:
  • http/tests/loading/basic-auth-remove-credentials-expected.txt:
  • http/tests/loading/basic-auth-remove-credentials.html:
  • http/tests/loading/basic-auth-resend-wrong-credentials-expected.txt:
  • http/tests/loading/basic-auth-resend-wrong-credentials.html:
  • http/tests/loading/basic-credentials-sent-automatically-expected.txt:
  • http/tests/loading/basic-credentials-sent-automatically.html:
  • http/tests/loading/nested_bad_objects.php: Removed.
  • http/tests/loading/nested_bad_objects.py: Added.
  • http/tests/loading/oauth.html:
  • http/tests/loading/post-in-iframe-with-back-navigation-expected.txt:
  • http/tests/loading/post-in-iframe-with-back-navigation.html:
  • http/tests/loading/preload-append-scan.php: Removed.
  • http/tests/loading/preload-append-scan.py: Added.
  • http/tests/loading/preload-slow-loading.php: Removed.
  • http/tests/loading/preload-slow-loading.py: Added.
  • http/tests/loading/redirect-with-no-location-crash.html:
  • http/tests/loading/resourceLoadStatistics/resources/get-cookies.php: Removed.
  • http/tests/loading/resourceLoadStatistics/resources/get-cookies.py: Added.
  • http/tests/loading/resourceLoadStatistics/resources/set-cookie.php: Removed.
  • http/tests/loading/resources/303-to-307-target.php: Removed.
  • http/tests/loading/resources/303-to-307-target.py: Added.
  • http/tests/loading/resources/307-post-output-target.php: Removed.
  • http/tests/loading/resources/307-post-output-target.py: Added.
  • http/tests/loading/resources/basic-auth-testing.php: Removed.
  • http/tests/loading/resources/basic-auth-testing.py: Added.
  • http/tests/loading/resources/cached-stylesheet-from-different-domain-frame.css.php: Removed.
  • http/tests/loading/resources/cached-stylesheet-from-different-domain-frame.css.py: Added.
  • http/tests/loading/resources/cached-stylesheet-from-different-domain-frame.html:
  • http/tests/loading/resources/imported-stylesheet-varying-according-domain.css.php: Removed.
  • http/tests/loading/resources/imported-stylesheet-varying-according-domain.css.py: Added.
  • http/tests/loading/resources/oauth-subresource.php: Removed.
  • http/tests/loading/resources/oauth-subresource.py: Added.
  • http/tests/loading/resources/othersubresources/protected-resource.php: Removed.
  • http/tests/loading/resources/othersubresources/protected-resource.py: Added.
  • http/tests/loading/resources/page-with-slow-loading-subresource.html:
  • http/tests/loading/resources/post-in-iframe-with-back-navigation-page-1.php: Removed.
  • http/tests/loading/resources/post-in-iframe-with-back-navigation-page-1.py: Added.
  • http/tests/loading/resources/post-in-iframe-with-back-navigation-page-2.php: Removed.
  • http/tests/loading/resources/post-in-iframe-with-back-navigation-page-2.py: Added.
  • http/tests/loading/resources/post-in-iframe-with-back-navigation-page-3.php: Removed.
  • http/tests/loading/resources/post-in-iframe-with-back-navigation-page-3.py: Added.
  • http/tests/loading/resources/post-to-303-target.php: Removed.
  • http/tests/loading/resources/post-to-303-target.py: Added.
  • http/tests/loading/resources/protected-resource.php: Removed.
  • http/tests/loading/resources/protected-resource.py: Added.
  • http/tests/loading/resources/redirect-with-no-location-crash.php: Removed.
  • http/tests/loading/resources/redirect-with-no-location-crash.py: Added.
  • http/tests/loading/resources/resource-that-goes-back-while-still-loading.php: Removed.
  • http/tests/loading/resources/resource-that-goes-back-while-still-loading.py: Added.
  • http/tests/loading/resources/server-redirect-result.html:
  • http/tests/loading/resources/server-redirect.php: Removed.
  • http/tests/loading/resources/server-redirect.py: Added.
  • http/tests/loading/resources/slowimage.php: Removed.
  • http/tests/loading/resources/slowimage.py: Added.
  • http/tests/loading/resources/subresources/protected-resource.php: Removed.
  • http/tests/loading/resources/subresources/protected-resource.py: Added.
  • http/tests/loading/resources/test2/basic-auth-testing.php: Removed.
  • http/tests/loading/resources/test2/basic-auth-testing.py: Added.
  • http/tests/loading/resources/test2/protected-resource.php: Removed.
  • http/tests/loading/resources/test2/protected-resource.py: Added.
  • http/tests/loading/server-redirect-for-provisional-load-caching-expected.txt:
  • http/tests/loading/server-redirect-for-provisional-load-caching.html:
  • http/tests/loading/unfinished-main-resource-back-to-cached-page-callbacks.html:
  • platform/ios-wk1/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wk2/http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt:
  • platform/wk2/http/tests/loading/basic-credentials-sent-automatically-expected.txt:
  • platform/wk2/http/tests/loading/server-redirect-for-provisional-load-caching-expected.txt:
1:09 PM Changeset in webkit [273684] by Andres Gonzalez
  • 8 edits
    1 copy
    2 moves
    1 add in trunk

WebAccessibilityObjectWrapper method to retrieve related error message elements should return not-ignored accessibility elements.
https://bugs.webkit.org/show_bug.cgi?id=222375

Reviewed by Chris Fleizach.

Source/WebCore:

Tests: accessibility/ios-simulator/aria-errormessage.html

accessibility/mac/aria-errormessage.html

The iOS implementation of [WebAccessibilityObjectWrapper accessibilityErrorMessageElements]
was returning container elements that are not accessibility elements,
i.e., isAccessibilityElement return false. That caused that iOS clients could not get any info about the error messages.
With this patch, accessibilityErrorMessageElements drills down the
hierarchy of accessibility objects for the error message elements and
returns those descendants that are accessibility elements.

  • accessibility/AccessibilityObjectInterface.h:

(WebCore::Accessibility::enumerateDescendants):
Hellper function to enumerate descendants of a given AX object.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityErrorMessageElements]):
Returns elements for which isAccessibilityElement == YES.

LayoutTests:

Replaced accessibility/aria-errormessage.html with mac and ios-simulator variants.

  • accessibility/ios-simulator/aria-errormessage-expected.txt: Added.
  • accessibility/ios-simulator/aria-errormessage.html: Copied from LayoutTests/accessibility/aria-errormessage.html.
  • accessibility/mac/aria-errormessage-expected.txt: Renamed from LayoutTests/accessibility/aria-errormessage-expected.txt.
  • accessibility/mac/aria-errormessage.html: Renamed from LayoutTests/accessibility/aria-errormessage.html.
  • platform/glib/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
12:56 PM Changeset in webkit [273683] by weinig@apple.com
  • 18 edits
    3 adds in trunk

Add experimental support for CSS Color 5 color-contrast()
https://bugs.webkit.org/show_bug.cgi?id=222530

Reviewed by Simon Fraser.

Source/WebCore:

This feature is off by default and can be enabled via the CSSColorContrastEnabled
experimental preference flag.

This implementation has the same restriction on it that the recently landed
Relative Color Syntax and color-mix() do, in that it does support system colors
or currentColor as input, since those can't be resolved at parse time. Ultimately,
we will need to add a late binding version of this for those cases.

Test: fast/css/parsing-color-contrast.html

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:

Add new ColorLuminance.h header where the generic relative luminance and contrast ratio
functions live.

  • css/CSSValueKeywords.in:

Add new keywords, color-contrast and vs, that are needed for the color-contrast() function.

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

Add a setting for color-contrast.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseColorContrastFunctionParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunction):
Add parsing and computation of color-contrast().

  • platform/graphics/ColorUtilities.cpp:

(WebCore::lightness): Deleted.
(WebCore::luminance): Deleted.
(WebCore::contrastRatio): Deleted.
Moved luminance related functions to ColorLuminance.h and inlined lightness
to its one caller, Color and noted it should be removed.

  • platform/graphics/ColorUtilities.h:

(WebCore::invertedColorWithOverriddenAlpha):
(WebCore::invertedcolorWithOverriddenAlpha): Deleted.
Fix capitalization issue seen. invertedcolorWithOverriddenAlpha -> invertedColorWithOverriddenAlpha.

  • platform/graphics/Color.cpp:

(WebCore::Color::lightness const):
Inline implementation and add comment explaining it should be removed.

(WebCore::Color::luminance const):
Re-write to use the new WebCore::relativeLuminance that works for any color type
without conversion to sRGB.

(WebCore::Color::contrastRatio):
Add helper to call generic WebCore::contrastRatio that works on any color types
to avoid callers needing to do the unfolding themselves.

(WebCore::Color::isBlackColor):
(WebCore::Color::isWhiteColor):

  • platform/graphics/Color.h:

(WebCore::Color::isBlackColor): Deleted.
(WebCore::Color::isWhiteColor): Deleted.
Move these rare functions out of line to reduce the number of places in the header we are
calling callOnUnderlyingType(), which produces code linerally with the number of color spaces
supported. Calling it in the cpp files means we only expand it once for each function.

  • platform/graphics/ColorLuminance.h: Added.

(WebCore::relativeLuminance):
This is a generic version of the old luminance function that works for any color type
by converting to XYZ and taking the Y component. The old function required always
converting to sRGB which could be lossy.

(WebCore::contrastRatio):
Split out computation of contrastRatio based on relative luminace floats into its own
function so that if we have the relative luminance computed already, we don't have to
recompute it. Add version contrastRatio that works for any color type utilizing the
generic relativeLuminance function above.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::disabledTextColor const):

  • rendering/TextPaintStyle.cpp:

(WebCore::textColorIsLegibleAgainstBackgroundColor):
Update to use new Color::contrastRatio helper that handles all color types.

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Add new experimental preference for CSS Color 5 color-contrast()
which is off by default.

Tools:

  • TestWebKitAPI/Tests/WebCore/ColorTests.cpp:

(TestWebKitAPI::TEST):
Update luminance values to account for more accurate conversion to
XYZ now that we are usuing the actual matrix values from SRGBADescriptor
and not a truncated copy.

LayoutTests:

  • fast/css/parsing-color-contrast-expected.txt: Added.
  • fast/css/parsing-color-contrast.html: Added.

Add parsing and computed style computation tests for color-contast().

12:53 PM Changeset in webkit [273682] by Ruben Turcios
  • 27 edits
    2 moves
    2 deletes in branches/safari-611.1.21.2-branch

Revert "Cherry-pick r273590. rdar://problem/74881403"

This reverts commit 8714b941c814ac9e9771325be68853be779c4393.

12:51 PM Changeset in webkit [273681] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Change LineBoxBuilder::m_inlineLevelBoxesNeedVerticalAlignment to m_useSimplifiedVerticalAlignment
https://bugs.webkit.org/show_bug.cgi?id=222556

Reviewed by Antti Koivisto.

m_useSimplifiedVerticalAlignment is more descriptive. It's also in preparation for expanding the simplified vertical alignment coverage.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::LineBoxBuilder):
(WebCore::Layout::LineBoxBuilder::build):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

12:37 PM Changeset in webkit [273680] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Remove added element from Style::Update root set
https://bugs.webkit.org/show_bug.cgi?id=222536

Reviewed by Zalan Bujtas.

With combined text and element updates an element might already exist in the root set when added.
Remove it from the root set to avoid updating it twice.

  • style/StyleUpdate.cpp:

(WebCore::Style::Update::addElement):
(WebCore::Style::Update::addText):

12:26 PM Changeset in webkit [273679] by Alan Coon
  • 3 edits
    2 adds in branches/safari-611.1.21.1-branch

Cherry-pick r273656. rdar://problem/74883377

REGRESSION(r272004): transform transition with delay doesn't behave correctly
https://bugs.webkit.org/show_bug.cgi?id=222545
<rdar://problem/74865413>

Reviewed by Dean Jackson.

Source/WebCore:

To support accelerated animations of individual transform properties, we introduced the notion of
non-interpolating animations to apply the underlying value for a given property before applying
the actual animations for this property with additivity set to true.

These non-interpolating animations were meant to last between the time at which animations were
committed and the effective start of the first animation for that property, accounting for any
delay.

However, we neglected to handle the case where that first animation had a fill mode that would
make it fill backwards, such as CSS Transitions. In that situation, the animation would have
its first keyframe applied on top of the underlying value, effectively applying the underlying
value twice with additivity.

We now only add these non-interpolating animations if the first animation has a delay and does
not fill backwards.

Test: webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html

  • platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::updateAnimations):

LayoutTests:

Add a new test where an element with a non-identity transform starts a transform transition with a
long delay. Prior to this patch, this test failed because, while in the delay phase, the transition
would mean the underlying transform was applied twice: once by the non-interpolating animation
generated for the underlying "transform" value, and once by the first keyframe of the transition
since it fills backwards.

  • webanimations/transform-transition-with-delay-on-forced-layer-with-transform-expected.html: Added.
  • webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html: Added.

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

12:24 PM Changeset in webkit [273678] by Alan Coon
  • 3 edits
    2 adds in branches/safari-611.1.21.3-branch

Cherry-pick r273656. rdar://problem/74883325

REGRESSION(r272004): transform transition with delay doesn't behave correctly
https://bugs.webkit.org/show_bug.cgi?id=222545
<rdar://problem/74865413>

Reviewed by Dean Jackson.

Source/WebCore:

To support accelerated animations of individual transform properties, we introduced the notion of
non-interpolating animations to apply the underlying value for a given property before applying
the actual animations for this property with additivity set to true.

These non-interpolating animations were meant to last between the time at which animations were
committed and the effective start of the first animation for that property, accounting for any
delay.

However, we neglected to handle the case where that first animation had a fill mode that would
make it fill backwards, such as CSS Transitions. In that situation, the animation would have
its first keyframe applied on top of the underlying value, effectively applying the underlying
value twice with additivity.

We now only add these non-interpolating animations if the first animation has a delay and does
not fill backwards.

Test: webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html

  • platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::updateAnimations):

LayoutTests:

Add a new test where an element with a non-identity transform starts a transform transition with a
long delay. Prior to this patch, this test failed because, while in the delay phase, the transition
would mean the underlying transform was applied twice: once by the non-interpolating animation
generated for the underlying "transform" value, and once by the first keyframe of the transition
since it fills backwards.

  • webanimations/transform-transition-with-delay-on-forced-layer-with-transform-expected.html: Added.
  • webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html: Added.

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

12:22 PM Changeset in webkit [273677] by Ruben Turcios
  • 3 edits
    2 adds in branches/safari-611.1.21.2-branch

Cherry-pick r273656. rdar://problem/74883395

REGRESSION(r272004): transform transition with delay doesn't behave correctly
https://bugs.webkit.org/show_bug.cgi?id=222545
<rdar://problem/74865413>

Reviewed by Dean Jackson.

Source/WebCore:

To support accelerated animations of individual transform properties, we introduced the notion of
non-interpolating animations to apply the underlying value for a given property before applying
the actual animations for this property with additivity set to true.

These non-interpolating animations were meant to last between the time at which animations were
committed and the effective start of the first animation for that property, accounting for any
delay.

However, we neglected to handle the case where that first animation had a fill mode that would
make it fill backwards, such as CSS Transitions. In that situation, the animation would have
its first keyframe applied on top of the underlying value, effectively applying the underlying
value twice with additivity.

We now only add these non-interpolating animations if the first animation has a delay and does
not fill backwards.

Test: webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html

  • platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::updateAnimations):

LayoutTests:

Add a new test where an element with a non-identity transform starts a transform transition with a
long delay. Prior to this patch, this test failed because, while in the delay phase, the transition
would mean the underlying transform was applied twice: once by the non-interpolating animation
generated for the underlying "transform" value, and once by the first keyframe of the transition
since it fills backwards.

  • webanimations/transform-transition-with-delay-on-forced-layer-with-transform-expected.html: Added.
  • webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html: Added.

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

12:22 PM Changeset in webkit [273676] by Alan Coon
  • 8 edits in branches/safari-611.1.21.3-branch/Source

Versioning.

WebKit-7611.1.21.3.1

12:19 PM Changeset in webkit [273675] by Peng Liu
  • 2 edits in trunk/Source/WebKitLegacy/mac

Rename the delegate property of WebAVPlayerView to webDelegate to fix a build failure with new SDKs
https://bugs.webkit.org/show_bug.cgi?id=222560

Reviewed by Jer Noble.

We have to rename the delegate property of WebAVPlayerView because AVKit adds
a delegate property to AVPlayerView which will conflict with the one in WebKit.

  • WebView/WebVideoFullscreenController.mm:

(WebAVPlayerView_webDelegate):
(WebAVPlayerView_setWebDelegate):
(WebAVPlayerView_isFullScreen):
(WebAVPlayerView_enterFullScreen):
(WebAVPlayerView_exitFullScreen):
(allocWebAVPlayerViewInstance):
(-[WebVideoFullscreenController dealloc]):
(-[WebVideoFullscreenController windowDidLoad]):
(WebAVPlayerView_delegate): Deleted.
(WebAVPlayerView_setDelegate): Deleted.

12:08 PM Changeset in webkit [273674] by Alan Coon
  • 1 copy in branches/safari-611.1.21.3-branch

New branch.

12:02 PM Changeset in webkit [273673] by Ruben Turcios
  • 27 edits
    2 copies
    2 moves in branches/safari-611.1.21.2-branch

Cherry-pick r273590. rdar://problem/74881403

Non-cookie website data not deleted after 7 days of browser use without user interaction
https://bugs.webkit.org/show_bug.cgi?id=222248
<rdar://problem/74612589>

Reviewed by Brent Fulgham and informally by Kate Cheney.

Source/WebKit:

Tests: http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago.html

http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago.html

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: (WebKit::ResourceLoadStatisticsDatabaseStore::updateOperatingDatesParameters):

Now sets two new member variables:

  • Optional<OperatingDate> m_longWindowOperatingDate
  • Optional<OperatingDate> m_shortWindowOperatingDate These are only set if the minimum number of operating days has passed. This function no longer sets m_leastRecentOperatingDate.

(WebKit::ResourceLoadStatisticsDatabaseStore::hasStatisticsExpired const):

Now checks against the two new member variables m_longWindowOperatingDate
and m_shortWindowOperatingDate. This fixes the bug.

(WebKit::ResourceLoadStatisticsDatabaseStore::insertExpiredStatisticForTesting):

Test infrastructure. Now takes the new parameter numberOfOperatingDaysPassed
with which layout tests can control the exact number of operating days
passed since user interaction.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:

Added m_longWindowOperatingDate and m_shortWindowOperatingDate, and
removed m_leastRecentOperatingDate since it's no longer used.

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: (WebKit::ResourceLoadStatisticsMemoryStore::insertExpiredStatisticForTesting):

Test infrastructure. The same changes as in the DB store.

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: (WebKit::WebResourceLoadStatisticsStore::insertExpiredStatisticForTesting):

Test infrastructure.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::insertExpiredStatisticForTesting):

Test infrastructure.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp: (WKWebsiteDataStoreSetStatisticsExpiredStatistic):

Test infrastructure.

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::insertExpiredStatisticForTesting):

Test infrastructure.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::insertExpiredStatisticForTesting):

Test infrastructure.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

A new numberOfOperatingDaysPassed parameter was added to
testRunner.setStatisticsExpiredStatistic() to control the exact
number of operating days passed since user interaction.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setStatisticsExpiredStatistic):
  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp: (WTR::TestController::setStatisticsExpiredStatistic):
  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveMessageFromInjectedBundle):

LayoutTests:

Existing test cases now make use of the new numberOfOperatingDaysPassed
parameter to testRunner.setStatisticsExpiredStatistic() to control the exact
number of operating days passed since user interaction.
A new test case makes sure website data is not deleted below the threshold.

  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago-expected.txt: Added.
  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago.html: Added.

Sets numberOfOperatingDaysPassed to 6.

  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction-expected.txt.
  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction.html.

Sets numberOfOperatingDaysPassed to 7.

  • http/tests/resourceLoadStatistics/operating-dates-all-website-data-removed.html:

Sets numberOfOperatingDaysPassed to 30.

  • platform/wk2/TestExpectations:

Updated existing expectation with new file name.

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

11:57 AM Changeset in webkit [273672] by Said Abou-Hallawa
  • 4 edits in trunk

[GPU Process] Some DisplayList items may not be replayed back before calling getImageData()
https://bugs.webkit.org/show_bug.cgi?id=222343

Reviewed by Tim Horton.

Source/WebKit:

Make sure all the pending DisplayList items are pushed to the GPUP and
submitted to RemoteImageBuffer before calling the asynchronous method
getImageData().

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

LayoutTests:

  • gpu-process/TestExpectations:
11:55 AM Changeset in webkit [273671] by Alan Coon
  • 27 edits
    2 copies
    2 moves in branches/safari-611.1.21.0-branch

Cherry-pick r273590. rdar://problem/74881366

Non-cookie website data not deleted after 7 days of browser use without user interaction
https://bugs.webkit.org/show_bug.cgi?id=222248
<rdar://problem/74612589>

Reviewed by Brent Fulgham and informally by Kate Cheney.

Source/WebKit:

Tests: http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago.html

http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago.html

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: (WebKit::ResourceLoadStatisticsDatabaseStore::updateOperatingDatesParameters):

Now sets two new member variables:

  • Optional<OperatingDate> m_longWindowOperatingDate
  • Optional<OperatingDate> m_shortWindowOperatingDate These are only set if the minimum number of operating days has passed. This function no longer sets m_leastRecentOperatingDate.

(WebKit::ResourceLoadStatisticsDatabaseStore::hasStatisticsExpired const):

Now checks against the two new member variables m_longWindowOperatingDate
and m_shortWindowOperatingDate. This fixes the bug.

(WebKit::ResourceLoadStatisticsDatabaseStore::insertExpiredStatisticForTesting):

Test infrastructure. Now takes the new parameter numberOfOperatingDaysPassed
with which layout tests can control the exact number of operating days
passed since user interaction.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:

Added m_longWindowOperatingDate and m_shortWindowOperatingDate, and
removed m_leastRecentOperatingDate since it's no longer used.

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: (WebKit::ResourceLoadStatisticsMemoryStore::insertExpiredStatisticForTesting):

Test infrastructure. The same changes as in the DB store.

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: (WebKit::WebResourceLoadStatisticsStore::insertExpiredStatisticForTesting):

Test infrastructure.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::insertExpiredStatisticForTesting):

Test infrastructure.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp: (WKWebsiteDataStoreSetStatisticsExpiredStatistic):

Test infrastructure.

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::insertExpiredStatisticForTesting):

Test infrastructure.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::insertExpiredStatisticForTesting):

Test infrastructure.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

A new numberOfOperatingDaysPassed parameter was added to
testRunner.setStatisticsExpiredStatistic() to control the exact
number of operating days passed since user interaction.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setStatisticsExpiredStatistic):
  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp: (WTR::TestController::setStatisticsExpiredStatistic):
  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveMessageFromInjectedBundle):

LayoutTests:

Existing test cases now make use of the new numberOfOperatingDaysPassed
parameter to testRunner.setStatisticsExpiredStatistic() to control the exact
number of operating days passed since user interaction.
A new test case makes sure website data is not deleted below the threshold.

  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago-expected.txt: Added.
  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago.html: Added.

Sets numberOfOperatingDaysPassed to 6.

  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction-expected.txt.
  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction.html.

Sets numberOfOperatingDaysPassed to 7.

  • http/tests/resourceLoadStatistics/operating-dates-all-website-data-removed.html:

Sets numberOfOperatingDaysPassed to 30.

  • platform/wk2/TestExpectations:

Updated existing expectation with new file name.

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

11:50 AM Changeset in webkit [273670] by Antti Koivisto
  • 3 edits in trunk/Source/WebKit

Use PriorityQueue in NetworkCache::Storage
https://bugs.webkit.org/show_bug.cgi?id=222555

Reviewed by Chris Dumez.

Replace Vector<Deque<>> with a more flexible, simpler to use data structure.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::ReadOperation::ReadOperation):
(WebKit::NetworkCache::Storage::isHigherPriority):
(WebKit::NetworkCache::Storage::cancelAllReadOperations):
(WebKit::NetworkCache::Storage::dispatchPendingReadOperations):
(WebKit::NetworkCache::Storage::retrieve):

  • NetworkProcess/cache/NetworkCacheStorage.h:
11:49 AM Changeset in webkit [273669] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

EventDispatcher::wheelEvent is accessing m_scrollingTrees without locking m_scrollingTreesMutex since r271235
https://bugs.webkit.org/show_bug.cgi?id=222529

Reviewed by Carlos Garcia Campos.

r271235 added a code to access m_scrollingTrees, but it didn't
lock m_scrollingTreesMutex. The code can be removed by moving it
into the above lambda expression.

EventDispatcher::wheelEvent was using a local lambda expression.
However the return value wasn't used. And, MSVC can't compile the
lambda expression because it has a bug that 'this' can't be used
in lambda expressions. Converted the lambda expression to a
do-while statement.

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent):

11:47 AM Changeset in webkit [273668] by Alan Coon
  • 27 edits
    2 copies
    2 moves in branches/safari-611.1.21.1-branch

Cherry-pick r273590. rdar://problem/74881385

Non-cookie website data not deleted after 7 days of browser use without user interaction
https://bugs.webkit.org/show_bug.cgi?id=222248
<rdar://problem/74612589>

Reviewed by Brent Fulgham and informally by Kate Cheney.

Source/WebKit:

Tests: http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago.html

http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago.html

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: (WebKit::ResourceLoadStatisticsDatabaseStore::updateOperatingDatesParameters):

Now sets two new member variables:

  • Optional<OperatingDate> m_longWindowOperatingDate
  • Optional<OperatingDate> m_shortWindowOperatingDate These are only set if the minimum number of operating days has passed. This function no longer sets m_leastRecentOperatingDate.

(WebKit::ResourceLoadStatisticsDatabaseStore::hasStatisticsExpired const):

Now checks against the two new member variables m_longWindowOperatingDate
and m_shortWindowOperatingDate. This fixes the bug.

(WebKit::ResourceLoadStatisticsDatabaseStore::insertExpiredStatisticForTesting):

Test infrastructure. Now takes the new parameter numberOfOperatingDaysPassed
with which layout tests can control the exact number of operating days
passed since user interaction.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:

Added m_longWindowOperatingDate and m_shortWindowOperatingDate, and
removed m_leastRecentOperatingDate since it's no longer used.

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: (WebKit::ResourceLoadStatisticsMemoryStore::insertExpiredStatisticForTesting):

Test infrastructure. The same changes as in the DB store.

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: (WebKit::WebResourceLoadStatisticsStore::insertExpiredStatisticForTesting):

Test infrastructure.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::insertExpiredStatisticForTesting):

Test infrastructure.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp: (WKWebsiteDataStoreSetStatisticsExpiredStatistic):

Test infrastructure.

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::insertExpiredStatisticForTesting):

Test infrastructure.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::insertExpiredStatisticForTesting):

Test infrastructure.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

A new numberOfOperatingDaysPassed parameter was added to
testRunner.setStatisticsExpiredStatistic() to control the exact
number of operating days passed since user interaction.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setStatisticsExpiredStatistic):
  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp: (WTR::TestController::setStatisticsExpiredStatistic):
  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveMessageFromInjectedBundle):

LayoutTests:

Existing test cases now make use of the new numberOfOperatingDaysPassed
parameter to testRunner.setStatisticsExpiredStatistic() to control the exact
number of operating days passed since user interaction.
A new test case makes sure website data is not deleted below the threshold.

  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago-expected.txt: Added.
  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago.html: Added.

Sets numberOfOperatingDaysPassed to 6.

  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction-expected.txt.
  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction.html.

Sets numberOfOperatingDaysPassed to 7.

  • http/tests/resourceLoadStatistics/operating-dates-all-website-data-removed.html:

Sets numberOfOperatingDaysPassed to 30.

  • platform/wk2/TestExpectations:

Updated existing expectation with new file name.

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

11:47 AM Changeset in webkit [273667] by Alan Coon
  • 4 edits in branches/safari-611.1.21.1-branch

Cherry-pick r273583. rdar://problem/74881429

Add AXTextMarkerRangeForNSRange attribute so that Mac clients can access this functionality.
https://bugs.webkit.org/show_bug.cgi?id=222477
Source/WebCore:

<rdar://problem/74793445>

Reviewed by Chris Fleizach.

This is a follow up to: https://bugs.webkit.org/show_bug.cgi?id=222154.
As Chris Fleizach pointed out in the above review, it is necessary to
add a handler in accessibilityAttributeValue:forParameter: for a new AX
attribute in order for clients to access this functionality.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]): (-[WebAccessibilityObjectWrapper textMarkerRangeForNSRange:]): Deleted.

Tools:

Reviewed by Chris Fleizach.

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::textMarkerRangeForRange):

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

11:47 AM Changeset in webkit [273666] by Alan Coon
  • 15 edits
    2 adds in branches/safari-611.1.21.1-branch

Cherry-pick r273227. rdar://problem/74880937

Add [WebAccessibilityObjectWrapper textMarkerRangeForNSRange] to allow clients to efficiently get a TextMarkerRange from an NSRange.
https://bugs.webkit.org/show_bug.cgi?id=222154

Reviewed by Chris Fleizach and Darin Adler.

Source/WebCore:

Test: accessibility/mac/textmarker-range-for-range.html

Clients like VoiceOver often need the ability to convert a text range
into an accessibility TextMarkerRange.
This patch adds [WebAccessibilityObjectWrapper textMarkerRangeForNSRange]
to allow clients to efficiently perform this conversion.
This is the Mac implementation, iOS implementation is pending.

  • accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::allowsTextRanges const):
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm: (WebCore::AXIsolatedObject::textMarkerRangeForNSRange const):
  • accessibility/mac/AccessibilityObjectMac.mm: (WebCore::AccessibilityObject::textMarkerRangeForNSRange const):
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper textMarkerRangeForNSRange:]): (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
  • editing/Editing.cpp: (WebCore::visiblePositionForIndexUsingCharacterIterator): Only advance the CharacterIterator if not atEnd yet.

Tools:

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::textMarkerRangeForRange):
  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::textMarkerRangeForRange):

LayoutTests:

  • accessibility/mac/textmarker-range-for-range-expected.txt: Added.
  • accessibility/mac/textmarker-range-for-range.html: Added.

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

11:40 AM Changeset in webkit [273665] by Alan Coon
  • 8 edits in branches/safari-611.1.21.0-branch/Source

Versioning.

WebKit-7611.1.21.0.1

11:40 AM Changeset in webkit [273664] by Alan Coon
  • 8 edits in branches/safari-611.1.21.2-branch/Source

Versioning.

WebKit-7611.1.21.2.1

11:40 AM Changeset in webkit [273663] by Alan Coon
  • 8 edits in branches/safari-611.1.21.1-branch/Source

Versioning.

WebKit-7611.1.21.1.1

11:29 AM Changeset in webkit [273662] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] WebAssembly: make Wasm::Signature 32bit friendly
https://bugs.webkit.org/show_bug.cgi?id=222543

Patch by Xan Lopez <Xan Lopez> on 2021-03-01
Reviewed by Yusuke Suzuki.

The Wasm code uses the address of a Signature object as its
index. To make this work in 32bit just change Wasm::SignatureIndex
to be a uintptr_t instead of uint64_t. Also, remove some
unnecessary includes while we are at it.

  • wasm/WasmModule.h:
  • wasm/WasmSignature.h:
  • wasm/js/JSWebAssemblyModule.h:
11:21 AM Changeset in webkit [273661] by ysuzuki@apple.com
  • 49 edits in trunk

[JSC] Throw TypeError when getFunctionRealm hits revoked Proxy
https://bugs.webkit.org/show_bug.cgi?id=222523

Reviewed by Alexey Shvayka.

JSTests:

  • test262/expectations.yaml:

Source/JavaScriptCore:

This patch throws TypeError when getFunctionRealm encounters revoked Proxy. However,
this makes derived structure creation code difficult to be written inlinely.
The fast path of derived structure creation must be inlined since this is critical
path of every builtin constructors.

So, this patch introduces JSC_GET_DERIVED_STRUCTURE macro which streamlines the derived
structure creation code while keeping the fast path inlined. And it inserts appropriate
error checks after this new getFunctionRealm call.

Then, we appropriately use getFunctionRealm in op_create_this implementation.

  • dfg/DFGOperations.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION):

  • runtime/AggregateErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/BooleanConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/CommonSlowPaths.cpp:

(JSC::JSC_DEFINE_COMMON_SLOW_PATH):

  • runtime/DateConstructor.cpp:

(JSC::constructDate):

  • runtime/ErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/FinalizationRegistryConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/FunctionConstructor.cpp:

(JSC::constructFunctionSkippingEvalEnabledCheck):

  • runtime/InternalFunction.cpp:

(JSC::getFunctionRealm):

  • runtime/InternalFunction.h:
  • runtime/IntlCollatorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/IntlDateTimeFormatConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/IntlDisplayNamesConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/IntlListFormatConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/IntlLocaleConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/IntlNumberFormatConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/IntlPluralRulesConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/IntlRelativeTimeFormatConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/IntlSegmenterConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/JSArrayBufferConstructor.cpp:

(JSC::JSGenericArrayBufferConstructor<sharingMode>::constructImpl):

  • runtime/JSGenericTypedArrayViewConstructorInlines.h:

(JSC::constructCustomArrayBufferIfNeeded):
(JSC::constructGenericTypedArrayViewImpl):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::errorStructureWithErrorType const):
(JSC::JSGlobalObject::arrayBufferStructureWithSharingMode const):
(JSC::JSGlobalObject::typedArrayStructureWithTypedArrayType const):

  • runtime/JSGlobalObjectInlines.h:

(JSC::JSGlobalObject::arrayStructureForIndexingTypeDuringAllocation const):

  • runtime/MapConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/NativeErrorConstructor.cpp:

(JSC::NativeErrorConstructor<errorType>::constructImpl):

  • runtime/NumberConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/ObjectConstructor.cpp:

(JSC::constructObjectWithNewTarget):

  • runtime/ProxyConstructor.cpp:

(JSC::ProxyConstructor::create):
(JSC::ProxyConstructor::finishCreation):

  • runtime/ProxyConstructor.h:
  • runtime/RegExpConstructor.cpp:

(JSC::getRegExpStructure):

  • runtime/SetConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/StringConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/WeakMapConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/WeakObjectRefConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/WeakSetConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyCompileErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyGlobalConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyLinkErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyMemoryConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyModuleConstructor.cpp:

(JSC::WebAssemblyModuleConstructor::createModule):

  • wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyTableConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

Source/WebCore:

  • bindings/js/JSDOMWrapperCache.h:

(WebCore::setSubclassStructureIfNeeded):

  • bindings/js/JSHTMLElementCustom.cpp:

(WebCore::constructJSHTMLElement):

11:18 AM Changeset in webkit [273660] by Alan Coon
  • 1 copy in branches/safari-611.1.21.2-branch

New branch.

11:18 AM Changeset in webkit [273659] by Alan Coon
  • 1 copy in branches/safari-611.1.21.1-branch

New branch.

11:17 AM Changeset in webkit [273658] by Alan Coon
  • 1 copy in branches/safari-611.1.21.0-branch

New branch.

11:15 AM Changeset in webkit [273657] by Simon Fraser
  • 35 edits in trunk/Source

Remove ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING which is always true for macOS
https://bugs.webkit.org/show_bug.cgi?id=222459

Reviewed by Sam Weinig.

ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING is always defined for PLATFORM(MAC), so remove it,
replacing with PLATFORM(MAC) in a few places. In order to reduce the number PLATFORM(MAC), define
HAVE(CVDISPLAYLINK) and use it in WK2 code that relates to DisplayLinks.

Source/WebCore:

  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::ensurePlatformContext):

  • platform/graphics/opengl/GraphicsContextGLOpenGLManager.cpp:

(WebCore::GraphicsContextGLOpenGLManager::addContext):
(WebCore::GraphicsContextGLOpenGLManager::removeContext):

  • platform/mac/KeyEventMac.mm:

(WebCore::PlatformKeyboardEvent::currentStateOfModifierKeys):

  • platform/mac/PlatformScreenMac.mm:

(WebCore::gpuIDForDisplay):

  • platform/mac/ScrollAnimatorMac.mm:

(-[WebScrollbarPartAnimation initWithScrollbar:featureToAnimate:animateFrom:animateTo:duration:]):
(-[WebScrollbarPartAnimation startAnimation]):
(-[WebScrollbarPartAnimation setCurrentProgress:]):
(-[WebScrollbarPartAnimation stopAnimation]):
(-[WebScrollbarPartAnimation setCurrentProgress:setCurrentProgress:]): Deleted.

Source/WebKit:

  • Platform/cocoa/LayerHostingContext.mm:

(WebKit::LayerHostingContext::createForExternalHostingProcess):

  • Shared/mac/HangDetectionDisablerMac.mm:

(WebKit::setClientsMayIgnoreEvents):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::registerNotificationObservers):
(WebKit::WebProcessPool::unregisterNotificationObservers):

  • UIProcess/WebPageProxy.cpp:

(WebKit::ScrollingObserver::singleton):
(WebKit::WebPageProxy::sendWheelEvent):
(WebKit::WebPageProxy::updateCurrentModifierState):

  • UIProcess/WebProcessPool.cpp:

(WebKit::displayReconfigurationCallBack):
(WebKit::WebProcessPool::sendDisplayConfigurationChangedMessageForTesting):

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

(WebKit::WebProcessProxy::~WebProcessProxy):
(WebKit::WebProcessProxy::processWillShutDown):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • UIProcess/mac/DisplayLink.cpp:
  • UIProcess/mac/DisplayLink.h:
  • UIProcess/mac/WebProcessProxyMac.mm:

(WebKit::WebProcessProxy::stopDisplayLink):

  • WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:

(WebKit::InjectedBundle::initialize):

  • WebProcess/Plugins/PDF/PDFLayerControllerSPI.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::PDFPlugin):

  • WebProcess/WebPage/DrawingArea.cpp:
  • WebProcess/WebPage/EventDispatcher.cpp:
  • WebProcess/WebPage/EventDispatcher.h:
  • WebProcess/WebPage/EventDispatcher.messages.in:
  • WebProcess/WebPage/mac/DrawingAreaMac.cpp:

(WebKit::DrawingArea::createDisplayRefreshMonitor):

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

(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::platformInitializeProcess):

Source/WTF:

  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:
  • wtf/PlatformHave.h:
10:47 AM Changeset in webkit [273656] by graouts@webkit.org
  • 3 edits
    2 adds in trunk

REGRESSION(r272004): transform transition with delay doesn't behave correctly
https://bugs.webkit.org/show_bug.cgi?id=222545
<rdar://problem/74865413>

Reviewed by Dean Jackson.

Source/WebCore:

To support accelerated animations of individual transform properties, we introduced the notion of
non-interpolating animations to apply the underlying value for a given property before applying
the actual animations for this property with additivity set to true.

These non-interpolating animations were meant to last between the time at which animations were
committed and the effective start of the first animation for that property, accounting for any
delay.

However, we neglected to handle the case where that first animation had a fill mode that would
make it fill backwards, such as CSS Transitions. In that situation, the animation would have
its first keyframe applied on top of the underlying value, effectively applying the underlying
value twice with additivity.

We now only add these non-interpolating animations if the first animation has a delay and does
not fill backwards.

Test: webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateAnimations):

LayoutTests:

Add a new test where an element with a non-identity transform starts a transform transition with a
long delay. Prior to this patch, this test failed because, while in the delay phase, the transition
would mean the underlying transform was applied twice: once by the non-interpolating animation
generated for the underlying "transform" value, and once by the first keyframe of the transition
since it fills backwards.

  • webanimations/transform-transition-with-delay-on-forced-layer-with-transform-expected.html: Added.
  • webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html: Added.
10:21 AM Changeset in webkit [273655] by Chris Dumez
  • 14 edits in trunk/Source

Set ownership of IOSurfaces from the GPUProcess instead of the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=222391
Source/WebCore:

<rdar://problem/74748353>

Reviewed by Simon Fraser.

Replace use of IOSurfaceSetOwnership() SPI with IOSurfaceSetOwnershipIdentity().
Both do the same thing but IOSurfaceSetOwnershipIdentity() only requires an identity token
for the new owner (instead of a control port). As a result, IOSurfaceSetOwnershipIdentity()
requires a lot less priviledges and can now be used directly in the GPUProcess instead of
the WebProcess.

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

(WebCore::IOSurface::setOwnershipIdentity):

Source/WebCore/PAL:

<rdar://74748353>

Reviewed by Simon Fraser.

Add declaration for new IOSurfaceSetOwnershipIdentity() SPI, for the open source
SDK.

  • pal/spi/cocoa/IOSurfaceSPI.h:

Source/WebKit:

<rdar://problem/74748353>

Reviewed by Simon Fraser.

Replace use of IOSurfaceSetOwnership() SPI with IOSurfaceSetOwnershipIdentity().
Both do the same thing but IOSurfaceSetOwnershipIdentity() only requires an identity token
for the new owner (instead of a control port). As a result, IOSurfaceSetOwnershipIdentity()
requires a lot less priviledges and can now be used directly in the GPUProcess instead of
the WebProcess.

  • GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:

(WebKit::RemoteGraphicsContextGLCocoa::prepareForDisplay):

  • GPUProcess/graphics/RemoteImageBuffer.h:

(WebKit::RemoteImageBuffer::setProcessOwnership):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::createImageBuffer):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::prepareForDisplay):

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.cpp:

(WebKit::ImageBufferShareableMappedIOSurfaceBackend::create):
(WebKit::ImageBufferShareableMappedIOSurfaceBackend::setProcessOwnership):

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.h:

Source/WTF:

<rdar://74748353>

Reviewed by Simon Fraser.

Add HAVE_IOSURFACE_SET_OWNERSHIP_IDENTITY feature flag to protect uses of the
new IOSurfaceSetOwnershipIdentity() SPI.

  • wtf/PlatformHave.h:
9:36 AM Changeset in webkit [273654] by Megan Gardner
  • 4 edits in trunk

Restoring App Highlight crashes if no range is found.
https://bugs.webkit.org/show_bug.cgi?id=222524

Reviewed by Tim Horton.

Source/WebCore:

Test: TestWebKitAPI.AppHighlights.AppHighlightRestoreFailure

  • Modules/highlight/AppHighlightStorage.cpp:

(WebCore::AppHighlightStorage::restoreAppHighlight):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKAppHighlights.mm:

(TestWebKitAPI::TEST):

9:29 AM Changeset in webkit [273653] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[Python-3] Change shebang in runUnittests.py
https://bugs.webkit.org/show_bug.cgi?id=222554

Reviewed by Jonathan Bedard.

  • CISupport/runUnittests.py:
8:41 AM Changeset in webkit [273652] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Use logname instead of deprecated logfile in PrintConfiguration
https://bugs.webkit.org/show_bug.cgi?id=222378

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(PrintConfiguration.run):

8:38 AM Changeset in webkit [273651] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

Teach prepare-ChangeLog to recognize Swift structs/enums/protocols/extensions
https://bugs.webkit.org/show_bug.cgi?id=222551

It formerly only knew how to recognize classes.

Patch by Adam Roben <Adam Roben> on 2021-03-01
Reviewed by Jonathan Bedard.

  • Scripts/prepare-ChangeLog:

(get_function_line_ranges_for_swift): Replaced "class" with "type" in
variable names to make them more general. Generalized the pattern used
to find class declarations to find struct/enum/protocol/extension
declarations as well.

  • Scripts/webkitperl/prepare-ChangeLog_unittest/resources/swift_unittests-expected.txt:

Added new ranges to the results.

  • Scripts/webkitperl/prepare-ChangeLog_unittest/resources/swift_unittests.swift:

(MyStruct.structFunction(argument:)):
(MyEnum.enumFunction(argument:)):
(MyProtocol.protocolFunction(argument:)):
(ExtendedType.extensionFunction(argument:)):
Added these new types/functions (and look, they got parsed!).

7:34 AM Changeset in webkit [273650] by Chris Lord
  • 7 edits in trunk/Source/WebCore

CSSFontFace should not need its m_fontSelector data member
https://bugs.webkit.org/show_bug.cgi?id=208351
<rdar://problem/74346302>

Reviewed by Darin Adler.

Move the m_fontSelector member of CSSFontFace onto CSSFontFaceSource,
the only place where it's actually required.

No new tests because there is no behavior change.

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::appendSources):
(WebCore::CSSFontFace::create):
(WebCore::CSSFontFace::document):
(WebCore::CSSFontFace::opportunisticallyStartFontDataURLLoading):
(WebCore::CSSFontFace::pump):
(WebCore::CSSFontFace::font):

  • css/CSSFontFace.h:
  • css/CSSFontFaceSource.cpp:

(WebCore::CSSFontFaceSource::CSSFontFaceSource):
(WebCore::CSSFontFaceSource::opportunisticallyStartFontDataURLLoading):
(WebCore::CSSFontFaceSource::load):

  • css/CSSFontFaceSource.h:
  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::opportunisticallyStartFontDataURLLoading):

  • css/FontFace.cpp:

(WebCore::populateFontFaceWithArrayBuffer):

7:00 AM Changeset in webkit [273649] by Alexey Shvayka
  • 4 edits in trunk/Source/JavaScriptCore

BytecodeGenerator::fuseCompareAndJump() fails for some language constructs
https://bugs.webkit.org/show_bug.cgi?id=221927

Reviewed by Yusuke Suzuki.

For BytecodeGenerator::fuseCompareAndJump() to merge two ops into one, condition's dst
register should not be referenced from elsewhere. This change tracks down and eliminates
all such cases, which reduces bytecode size for a few language constructs:

-1 per every case of a switch;
-2 per generator function, -2 per every yield / yield*;
-2 per class extends;
-2 per finally, -1 per every break / continue / return inside;
-3 per Function.prototype.apply() with ...spread as a single argument.

Instead of mixing RefPtr with raw C++ pointers, single-line branches were preferred.
To keep them cleaner, this patch introduces emitLoad() override for JSGenerator::ResumeMode
enum, and tweaks existing override for CompletionType.

A few drive-by improvements:

  • to enable future optimizations, replaces emitBinaryOp() with emitEqualityOp() for OpEq / OpStricteq (adds an assert), and vice-versa for other comparison ops;
  • removes OperandTypes for comparison ops as it was ignored (let's re-introduce them consistently once supported);
  • inlines too specific BytecodeGenerator::emitJumpIf();
  • replaces eq with stricteq in ApplyFunctionCallDotNode.

No behavior change, no callee registers count grow.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitYield):
(JSC::BytecodeGenerator::emitDelegateYield):
(JSC::BytecodeGenerator::emitFinallyCompletion):
(JSC::BytecodeGenerator::emitJumpIf): Deleted.

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitEqualityOp):
(JSC::BytecodeGenerator::emitLoad):

  • bytecompiler/NodesCodegen.cpp:

(JSC::ApplyFunctionCallDotNode::emitBytecode):
(JSC::ForInNode::emitBytecode):
(JSC::CaseBlockNode::emitBytecodeForBlock):
(JSC::FunctionNode::emitBytecode):
(JSC::ClassExprNode::emitBytecode):

6:22 AM Changeset in webkit [273648] by Chris Gambrell
  • 4 edits
    1 add
    1 delete in trunk/LayoutTests

[LayoutTests] Convert http/tests/fetch convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=222367
<rdar://problem/74702641>

Reviewed by Jonathan Bedard.

  • http/tests/fetch/caching-with-different-options.html:
  • http/tests/fetch/redirectmode-and-preload-expected.txt:
  • http/tests/fetch/redirectmode-and-preload.html:
  • http/tests/fetch/resources/redirect-with-cache.php: Removed.
  • http/tests/fetch/resources/redirect-with-cache.py: Added.
6:22 AM Changeset in webkit [273647] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Change order in RenderBlock::availableLogicalHeightForPercentageComputation
https://bugs.webkit.org/show_bug.cgi?id=222468

Patch by Rob Buis <rbuis@igalia.com> on 2021-03-01
Reviewed by Manuel Rego Casasnovas.

Change order in RenderBlock::availableLogicalHeightForPercentageComputation in
order to remove one check.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const):

5:27 AM Changeset in webkit [273646] by commit-queue@webkit.org
  • 8 edits
    1 copy in trunk/Source/WebKit

Timeout calculations are error-prone for compound IPC operations
https://bugs.webkit.org/show_bug.cgi?id=222305

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-03-01
Reviewed by Geoffrey Garen.

Add Timeout class to hold the timeout value in blocking functions
of IPC::.
This makes it possible to forward absolute points of time as the timeout
value, as well as preserving the ability to pass points of time relative
to the invocation.

Call the concept Timeout instead of TimeOut since word 'timeout' is an
English word and preferable when used as a noun according to ell stackoverflow.

No new tests, a refactor.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::sendMessage):
(IPC::Connection::waitForMessage):
(IPC::Connection::sendSyncMessage):
(IPC::Connection::waitForSyncReply):

  • Platform/IPC/Connection.h:

(IPC::Connection::sendSync):
(IPC::Connection::waitForAndDispatchImmediately):
(IPC::Connection::waitForAsyncCallbackAndDispatchImmediately):

  • Platform/IPC/IPCSemaphore.h:
  • Platform/IPC/MessageSender.h:

(IPC::MessageSender::sendSync):

  • Platform/IPC/StreamClientConnection.h:

(IPC::StreamClientConnection::send):
(IPC::StreamClientConnection::sendSync):
(IPC::StreamClientConnection::trySendDestinationIDIfNeeded):
(IPC::StreamClientConnection::tryAcquire):
Here are few examples of compound use-case.

  • Platform/IPC/Timeout.h: Copied from Source/WebKit/Platform/IPC/IPCSemaphore.h.

(IPC::Timeout::Timeout):
(IPC::Timeout::infinity):
(IPC::Timeout::operator Seconds const):
(IPC::Timeout::hasPassed const):

  • Platform/IPC/darwin/IPCSemaphoreDarwin.cpp:

(IPC::Semaphore::waitFor):

  • UIProcess/AuxiliaryProcessProxy.h:

(WebKit::AuxiliaryProcessProxy::sendSync):

2:44 AM Changeset in webkit [273645] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

[GPUP] Fix WebRTC layout test failures with GPU Process enabled
https://bugs.webkit.org/show_bug.cgi?id=222505
<rdar://problem/74814573>

Unreviewed.

  • gpu-process/TestExpectations:

Removed no longer valid expectations.

2:06 AM Changeset in webkit [273644] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

[GStreamer][Playbin3] Stream collection handling fixes
https://bugs.webkit.org/show_bug.cgi?id=222322

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

The track orphaning trying to avoid un-necessary track addition/removals was making the
whole thing inconsistent with the final stream collection. Also stream-collection messages
don't need to be handled from a synchronous GstBus handler, this should be needed for
need-context messages only, so the corresponding code has been refactored.

This patch also includes changes and cleanups for the mediastreamsrc element, needed after
the stream collection handling fixes. Most notably the element now keeps an internal list of
tracks, in addition to observing the MediaStreamPrivate for topology changes. Also it emits
a new stream collection whenever a new source pad has been added.

No new tests, but this patch fixes flakyness of http/tests/media/hls/hls-audio-tracks.html
when the pipeline is driven by playbin3.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::updateTracks):
(WebCore::MediaPlayerPrivateGStreamer::setPipeline):
(WebCore::MediaPlayerPrivateGStreamer::handleStreamCollectionMessage):
(WebCore::MediaPlayerPrivateGStreamer::handleNeedContextMessage):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::handleNeedContextSyncMessage):

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(stopObservingTracks):
(webkitMediaStreamSrcDispose):
(webkitMediaStreamSrcAddPad):
(ProbeData::ProbeData):
(webkitMediaStreamSrcPadProbeCb):
(webkitMediaStreamSrcSetupSrc):
(webkitMediaStreamSrcPostStreamCollection):
(webkitMediaStreamSrcAddTrack):
(webkitMediaStreamSrcSetStream):
(webkitMediaStreamSrcTrackEnded):

1:42 AM Changeset in webkit [273643] by berto@igalia.com
  • 2 edits in trunk/Source/WebKit

[GTK] Fails to build in i386: static assertion failed: divisor must be a power of two
https://bugs.webkit.org/show_bug.cgi?id=222480

Reviewed by Carlos Garcia Campos.

  • Platform/IPC/StreamConnectionBuffer.h:

(IPC::StreamConnectionBuffer::headerSize):

Feb 28, 2021:

6:26 PM Changeset in webkit [273642] by weinig@apple.com
  • 4 edits in trunk/Source/WebCore

Consider removing iOS only CSS property alias -webkit-hyphenate-locale introduced in r80288
https://bugs.webkit.org/show_bug.cgi?id=222507

Reviewed by Anders Carlsson.

It's been about 10 years, let's try removing the iOS only CSS property alias for
-webkit-locale, -webkit-hyphenate-locale, and see what happens.

  • css/CSSStyleDeclaration.cpp:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::cssPropertyID):
(WebCore::cssPropertyNameIOSAliasing): Deleted.

  • css/parser/CSSPropertyParser.h:
4:47 PM Changeset in webkit [273641] by ysuzuki@apple.com
  • 4 edits in trunk

[JSC] Add gc and clearKeptObjects to $262
https://bugs.webkit.org/show_bug.cgi?id=222527

Reviewed by Ross Kirsling.

JSTests:

  • test262/config.yaml:

Source/JavaScriptCore:

Add $262.gc and $262.clearKeptObjects functions. They are required for test262 host-gc-required.
Since all the tests using "host-gc-required" are currently also marked with cleanupSome, we are currently not running them.
But if some more tests are landed in test262 with "host-gc-required", we will run them with these functions.

  • jsc.cpp:

(JSC_DEFINE_HOST_FUNCTION):

4:13 PM Changeset in webkit [273640] by Alan Bujtas
  • 11 edits in trunk/Source/WebCore

[LFC][IFC] Content left offset means just content left
https://bugs.webkit.org/show_bug.cgi?id=222522

Reviewed by Antti Koivisto.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::build):

  • layout/inlineformatting/InlineLineBox.cpp:

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

  • layout/inlineformatting/InlineLineBox.h:
  • layout/inlineformatting/InlineLineGeometry.h:

(WebCore::Layout::InlineLineGeometry::contentLogicalLeft const):
(WebCore::Layout::InlineLineGeometry::InlineLineGeometry):
(WebCore::Layout::InlineLineGeometry::contentLogicalLeftOffset const): Deleted.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):

  • layout/integration/LayoutIntegrationLine.h:

(WebCore::LayoutIntegration::Line::Line):
(WebCore::LayoutIntegration::Line::contentLeft const):
(WebCore::LayoutIntegration::Line::contentLeftOffset const): Deleted.

  • layout/integration/LayoutIntegrationLineIteratorModernPath.h:

(WebCore::LayoutIntegration::LineIteratorModernPath::contentLogicalLeft const):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paint):

  • layout/integration/LayoutIntegrationPagination.cpp:

(WebCore::LayoutIntegration::makeAdjustedContent):

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::RunIteratorModernPath::createTextRun const):

12:56 PM Changeset in webkit [273639] by Darin Adler
  • 7 edits in trunk/Source

[iOS] Reduce use of retain/release in WAKWindow and remove unneeded methods from that class
https://bugs.webkit.org/show_bug.cgi?id=222330

Reviewed by Chris Dumez.

Source/WebCore:

  • platform/ios/LegacyTileCache.h: Use pragma once, remove unneeded includes,

tweak coding style a bit to match WebKit standard. Removed hasPendingDraw.
added WEBCORE_EXPORT to setTileBordersVisible and setTilePaintCountersVisible
so they can be used in WebKitLegacy.

  • platform/ios/LegacyTileCache.mm:

(WebCore::LegacyTileCache::hasPendingDraw const): Deleted.

  • platform/ios/wak/WAKWindow.h: Use pragma once, remove unneeded includes,

tweak coding style a bit to match WebKit standard. Removed hasPendingDraw,
setTileControllerShouldUseLowScaleTiles, setTileBordersVisible,
setTilePaintCountsVisible, setAcceleratedDrawingEnabled, freezeVisibleRect,
and unfreezeVisibleRect.

  • platform/ios/wak/WAKWindow.mm: Removed "using namespace WebCore".

Removed unused _WAKKeyWindow global. Converted currentEvent and
gOrientationProvider globals to NeverDestroyed<RetainPtr<>>.
(orientationProvider): Added
(currentEvent): Added.
(-[WAKWindow isKeyWindow]): Remove dead code; this method already always
returns YES.
(-[WAKWindow makeKeyWindow]): Remove dead code. This method wrote to a
global that was never read anywhere.
(-[WAKWindow sendEventSynchronously:]): Use the currentEvent function
and take advantage of the fact that it's a RetainPtr so we don't need a
a local variable named currentEventProtector.
(-[WAKWindow hasPendingDraw]): Deleted. No callers depend on this.
(-[WAKWindow willRotate]): Set _frozenVisibleRect here directly instead
of calling anoether method to do that.
(-[WAKWindow didRotate]): Ditto.
(-[WAKWindow freezeVisibleRect]): Deleted. The method above was the only
caller for this method.
(-[WAKWindow unfreezeVisibleRect]): Ditto.
(+[WAKWindow setOrientationProvider:]): Use the orientationProvider function.
Note, this now retains the passed-in object. This is safe; the only caller
passes in a class, so there's no risk of a retain cycle.
(+[WAKWindow hasLandscapeOrientation]): Use the orientationProvider function.
(-[WAKWindow setTileBordersVisible:]): Deleted. The only caller for this
was in WebKitLegacy, and refactored to use the tile cache directly.
(-[WAKWindow setTilePaintCountsVisible:]): Ditto.
(-[WAKWindow setAcceleratedDrawingEnabled:]): Ditto.
(-[WAKWindow setTileControllerShouldUseLowScaleTiles:]): Deleted. No
callers depend on this.
(+[WAKWindow currentEvent]): Use the currentEvent function.

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]): Call LegacyTileCache functions directly rather
than indirecting through WAKWindow methods.
(-[WebView viewDidMoveToWindow]): Ditto. Also tweaked conditionals a little for clarity.

11:58 AM Changeset in webkit [273638] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] LineBox's horizontalAlignmentOffset is the root inline box's logical left
https://bugs.webkit.org/show_bug.cgi?id=222521

Reviewed by Sam Weinig.

That's where the line content starts.

  • layout/inlineformatting/InlineFormattingContext.cpp:

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

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::m_contentLogicalWidth):
(WebCore::Layout::LineBox::logicalRectForTextRun const):
(WebCore::Layout::m_horizontalAlignmentOffset): Deleted.

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::setLogicalHeight):
(WebCore::Layout::LineBox::horizontalAlignmentOffset const): Deleted.
(WebCore::Layout::LineBox::setHorizontalAlignmentOffset): Deleted.

11:42 AM Changeset in webkit [273637] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

Consider removing support for CSS value keywords with the -khtml- prefix
https://bugs.webkit.org/show_bug.cgi?id=222515

Reviewed by Darin Adler.

Try removing re-writing of the -khtml- prefix to -webkit- for CSS value keywords
and see what breaks.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::cssValueKeywordID):

8:22 AM Changeset in webkit [273636] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Every line box must have a root inline box
https://bugs.webkit.org/show_bug.cgi?id=222520

Reviewed by Antti Koivisto.

Let's create the root inline box during LineBox construction as even
an empty LineBox has to have a root inline box.

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::m_rootInlineBox):
(WebCore::Layout::LineBox::logicalRectForTextRun const):
(WebCore::Layout::LineBox::logicalRectForInlineLevelBox const):
(WebCore::Layout::m_horizontalAlignmentOffset): Deleted.

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::rootInlineBox const):
(WebCore::Layout::LineBox::rootInlineBox):

4:29 AM WebKitGTK/2.32.x edited by berto@igalia.com
(diff)
3:59 AM Changeset in webkit [273635] by graouts@webkit.org
  • 10 edits in trunk

Blending of border-image-width should be discrete between "auto" values and other types
https://bugs.webkit.org/show_bug.cgi?id=222516

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Pass an extra 22 WPT interpolation tests for border-image-width. We also get 3 new FAIL results
in css/css-transitions/properties-value-auto-001.html but that test seems incorrect in assuming
there can be a transition for "clip" between "auto" and a non-auto value, at least Chrome and
Firefox both fail the newly-failed tests.

Incidentally, we also get 50 new PASS results from css-grid tests.

  • web-platform-tests/css/css-backgrounds/animations/border-image-width-interpolation-expected.txt:
  • web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-016-expected.txt:
  • web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-007-expected.txt:
  • web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-012-expected.txt:
  • web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-014-expected.txt:
  • web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-016-expected.txt:
  • web-platform-tests/css/css-transitions/properties-value-auto-001-expected.txt:

Source/WebCore:

The LengthBoxPropertyWrapper::canInterpolate() method checks whether the provided lengths are 0 to see if
they can be blended since 0 lengths can be blended with anything. However, currently Length::isZero() returns
true for "auto" values, which is incorrect, so we change the behavior of isZero() to not work when the type
is LengthType::Auto.

Incidentally, this makes a few css-grid tests progress as well.

  • platform/Length.h:

(WebCore::Length::isZero const):

2:15 AM Changeset in webkit [273634] by ysuzuki@apple.com
  • 4 edits in trunk

[JSC] Update test262 host environments
https://bugs.webkit.org/show_bug.cgi?id=222525

Reviewed by Ross Kirsling.

JSTests:

  • test262/expectations.yaml:

Source/JavaScriptCore:

  1. $262.global should be globalThis of the realm according to test/built-ins/Function/call-bind-this-realm-undef.js
  2. $262.evalScript should uwrap JSProxy to get GlobalObject.

This fixes test262 test/built-ins/Function/call-bind-this-realm-undef.js, it was wrongly tested and failing.

  • jsc.cpp:

(JSC_DEFINE_HOST_FUNCTION):

Feb 27, 2021:

3:07 PM Changeset in webkit [273633] by Kocsen Chung
  • 1 copy in tags/Safari-610.4.3.1.7

Tag Safari-610.4.3.1.7.

3:07 PM Changeset in webkit [273632] by Kocsen Chung
  • 1 copy in tags/Safari-610.4.3.0.4

Tag Safari-610.4.3.0.4.

2:59 PM Changeset in webkit [273631] by Kocsen Chung
  • 4 edits in branches/safari-610.4.3.0-branch/Source/WebCore/Modules/webaudio

Apply patch. rdar://problem/74829324

2:54 PM Changeset in webkit [273630] by Kocsen Chung
  • 8 edits in branches/safari-610.4.3.0-branch/Source

Versioning.

WebKit-7610.4.3.0.4

2:54 PM Changeset in webkit [273629] by Kocsen Chung
  • 4 edits in branches/safari-610.4.3.1-branch/Source/WebCore/Modules/webaudio

Apply patch. rdar://problem/74829334

2:39 PM Changeset in webkit [273628] by Kocsen Chung
  • 8 edits in branches/safari-610.4.3.1-branch/Source

Versioning.

WebKit-7610.4.3.1.7

11:51 AM Changeset in webkit [273627] by weinig@apple.com
  • 5 edits in trunk

Source/WebCore:
Remove support for 'pixel' and 'pos' CSSOM prefixes
https://bugs.webkit.org/show_bug.cgi?id=119712
<rdar://problem/70660490>

Reviewed by Simon Fraser.

Remove support for pixel/pos prefixed properties of CSSStyleDeclaration which
are no longer supported by any other browser.

  • css/CSSStyleDeclaration.cpp:

(WebCore::CSSStyleDeclaration::getCSSPropertyIDFromJavaScriptPropertyName):
(WebCore::CSSStyleDeclaration::namedItem):
(WebCore::CSSStyleDeclaration::setNamedItem):

LayoutTests:

Remove support for 'pixel' and 'pos' CSSOM prefixes
https://bugs.webkit.org/show_bug.cgi?id=119712

Reviewed by Simon Fraser.

  • fast/dom/CSSStyleDeclaration/css-properties-case-sensitive-expected.txt:
  • fast/dom/CSSStyleDeclaration/css-properties-case-sensitive.html:

Update test to reflect removal of pos/pixel prefixes.

7:34 AM Changeset in webkit [273626] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][Coverage] Add missing not-yet-modern-line-layout reasons
https://bugs.webkit.org/show_bug.cgi?id=222488

Reviewed by Sam Weinig.

  • layout/integration/LayoutIntegrationCoverage.cpp:

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

  • layout/integration/LayoutIntegrationCoverage.h:
6:27 AM Changeset in webkit [273625] by graouts@webkit.org
  • 7 edits in trunk

border-image-slice blending does not account for the fill keyword
https://bugs.webkit.org/show_bug.cgi?id=222513

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Pass an extra 96 WPT tests for border-image-slice.

  • web-platform-tests/css/css-backgrounds/animations/border-image-slice-composition-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-image-slice-interpolation-expected.txt:

Source/WebCore:

The border-image-slice CSS property allows for the "fill" keyword on top of the four values defining the slices.
The presence of this keyword is stored as a bool flag on the NinePieceImage returned by RenderStyle::borderImage(),
while the four slices values are stored as a separate LengthBox on that NinePieceImage. So as we blend the
border-image-slice property using the LengthBoxPropertyWrapper, we only account for the four slices values.

In order to account for the "fill" keyword, we use an OptionSet instead of a single flag to represent different blending
options for CSS properties represented by a LengthBox. This allows us to now indicate that a given property,
namely border-image-slice, supports the "fill" keyword.

If this "fill" keyword flag is set, we force discrete interpolation in the case where the from and to blend values
don't have the same value for "fill". Then, as we blend, we set the "fill" keyword to match the from and to values.

To do this, we add a new RenderStyle::setBorderImageSliceFill() property since the NinePieceImage returned by
RenderStyle::borderImage() is marked const.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::LengthBoxPropertyWrapper::LengthBoxPropertyWrapper):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setBorderImageSliceFill):

  • rendering/style/RenderStyle.h:
6:25 AM Changeset in webkit [273624] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Null check ArrayBufferView RefPtr
https://bugs.webkit.org/show_bug.cgi?id=221569

Patch by Rob Buis <rbuis@igalia.com> on 2021-02-27
Reviewed by Ryosuke Niwa.

Source/JavaScriptCore:

Null check ArrayBufferView RefPtr before using it.

  • runtime/JSArrayBufferViewInlines.h:

(JSC::JSArrayBufferView::unsharedImpl):

LayoutTests:

Add test to verify oom situation does not result in a crash.

  • crypto/crypto-random-values-oom-expected.txt: Added.
  • crypto/crypto-random-values-oom.html: Added.
  • platform/win/TestExpectations:
3:49 AM Changeset in webkit [273623] by graouts@webkit.org
  • 9 edits in trunk

Improve blending of LengthBox values
https://bugs.webkit.org/show_bug.cgi?id=222512

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Pass an extra 238 WPT tests across border-image-outset, border-image-slice and border-image-width.
As of this patch, web-platform-tests/css/css-backgrounds/animations/border-image-outset-interpolation.html
only has PASS results.

  • web-platform-tests/css/css-backgrounds/animations/border-image-outset-composition-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-image-outset-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-image-slice-composition-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-image-slice-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-image-width-composition-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-image-width-interpolation-expected.txt:

Source/WebCore:

Blending of LengthBox values used to be handle with a generic wrapper for Length-related types using
LengthVariantPropertyWrapper. However, to properly blend LengthBox values, we need some logic specific
to this value type.

First off, all CSS properties that we represent using a LengthBox disallow negative values, so we update
the blendFunc() implementation for LengthBox to pass in ValueRangeNonNegative to the Length blendFunc().

Then, we need a custom implementation of the canInterpolate() virtual function override so as to cater for
properties that support <length> and <number>, and those that support <length-percentage> and <number>,
namely border-image-width.

Finally, we support the case for discrete blending in the blend() virtual function override.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):
(WebCore::LengthBoxPropertyWrapper::LengthBoxPropertyWrapper):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

1:33 AM Changeset in webkit [273622] by commit-queue@webkit.org
  • 9 edits in trunk/Source/WebCore

Unreviewed, reverting r273474 and r273479.
https://bugs.webkit.org/show_bug.cgi?id=222510

Not a speedup after all

Reverted changesets:

"Optimize the code to check if an element delegates focus to
its shadow root or not"
https://bugs.webkit.org/show_bug.cgi?id=222404
https://trac.webkit.org/changeset/273474

"Avoid tree traversals to look for form and canvas elements"
https://bugs.webkit.org/show_bug.cgi?id=222159
https://trac.webkit.org/changeset/273479

12:24 AM Changeset in webkit [273621] by Antti Koivisto
  • 16 edits in trunk

Render tree updates for Text node content mutations should happen during rendering update
https://bugs.webkit.org/show_bug.cgi?id=222406

Reviewed by Simon Fraser.

Source/WebCore:

Calls to Text.insertData and similar should not mutate render tree synchronously.
Instead render tree should be updated during the next rendering update along with
any style changes.

These updates already go via RenderTreeUpdater. We just need to save the information
about which nodes need updating so the next rendering update can pick them up.

This seems to help with some performance benchmarks.

  • dom/CharacterData.cpp:

(WebCore::CharacterData::parserAppendData):
(WebCore::CharacterData::setDataAndUpdate):

Move in-tree check to the updateRendererAfterContentChange and make it use isConnected().

  • dom/Document.cpp:

(WebCore::Document::removedLastRef):
(WebCore::Document::resolveStyle):

Include the text update when updating the render tree.

(WebCore::Document::updateTextRenderer):

Create a text update that will get flushed during the next rendering update.

(WebCore::Document::needsStyleRecalc const):

We need to recalc if there are pending text updates.

  • dom/Document.h:
  • dom/Text.cpp:

(WebCore::Text::splitText):

Use updateRendererAfterContentChange instead of poking render tree directly.

(WebCore::Text::updateRendererAfterContentChange):

  • rendering/updating/RenderTreeUpdater.cpp:
  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::TreeResolver):
(WebCore::Style::TreeResolver::resolve):

  • style/StyleTreeResolver.h:

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

  • style/StyleUpdate.cpp:

(WebCore::Style::Update::addText):

Merge text updates.

(WebCore::Style::Update::addPossibleRoot):

  • style/StyleUpdate.h:

(WebCore::Style::Update::roots const):
(WebCore::Style::Update:: const): Deleted.

Refcount the nodes since this now has longer lifetime.

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::deleteInsignificantText):

Ensure we leave deleteInsignificantText with updated render tree. Clients expect that.
Do layout (instead of just style update) for consistency, deleteInsignificantText does one anyway in beginning.

  • editing/markup.cpp:

(WebCore::replaceChildrenWithFragment):

Pending text update may ref the node so this refcount assert is not correct.

  • style/StyleUpdate.cpp:

(WebCore::Style::Update::addText):

LayoutTests:

These are progressions.

  • fast/text/splitText-dirty-lines-expected.txt:
  • imported/blink/fast/css/first-letter-range-insert-expected.txt:

Here we were actually drawing text that didn't exist in DOM anymore.

12:04 AM Changeset in webkit [273620] by Megan Gardner
  • 9 edits
    1 add in trunk

API test for AppHighlights
https://bugs.webkit.org/show_bug.cgi?id=222408

Reviewed by Tim Horton.

Source/WebCore:

Test: TestWebKitAPI.AppHighlights.AppHighlightCreateAndRestore

  • testing/Internals.cpp:

(WebCore::Internals::numberOfAppHighlights):

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

Tools:

  • TestWebKitAPI/PlatformUtilities.h:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/WKAppHighlights.mm: Added.

(-[AppHighlightDelegate _webView:storeAppHighlight:inNewGroup:]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/DragAndDropTestsMac.mm:

(TEST):
(waitForConditionWithLogging): Deleted.

  • TestWebKitAPI/cocoa/PlatformUtilitiesCocoa.mm:

(TestWebKitAPI::Util::waitForConditionWithLogging):

Feb 26, 2021:

11:29 PM Changeset in webkit [273619] by commit-queue@webkit.org
  • 1 edit
    1 add in trunk/Tools

[GTK][WPE] Add a script to show a list of bugs closed since a given revision
https://bugs.webkit.org/show_bug.cgi?id=222470

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

It's useful to get a list of specific changes when making releases.

  • Scripts/webkit-filter-log: Added.
11:24 PM Changeset in webkit [273618] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

[WPE][GTK] Bogus Response.{status,ok} for successful fetch() requests to a custom URI scheme handler
https://bugs.webkit.org/show_bug.cgi?id=222471

Reviewed by Carlos Garcia Campos.

No new tests needed.

  • UIProcess/API/glib/WebKitURISchemeRequest.cpp:

(webkitURISchemeRequestReadCallback): Mark response as having status "200 OK" when
webkit_uri_scheme_request_finish() gets passed a GInputStream.

10:52 PM Changeset in webkit [273617] by ysuzuki@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Avoid creating functions unnecessarily in builtins
https://bugs.webkit.org/show_bug.cgi?id=222509

Reviewed by Ross Kirsling.

Avoid unnecessary function creation and make them @globalPrivate.

  • builtins/ArrayPrototype.js:

(globalPrivate.maxWithPositives):
(globalPrivate.minWithMaybeNegativeZeroAndPositive):
(copyWithin):
(maxWithPositives): Deleted.
(minWithMaybeNegativeZeroAndPositive): Deleted.

  • builtins/DatePrototype.js:

(globalPrivate.toDateTimeOptionsAnyAll):
(toLocaleString):
(globalPrivate.toDateTimeOptionsDateDate):
(toLocaleDateString):
(globalPrivate.toDateTimeOptionsTimeTime):
(toLocaleTimeString):
(toLocaleString.toDateTimeOptionsAnyAll): Deleted.
(toLocaleDateString.toDateTimeOptionsDateDate): Deleted.
(toLocaleTimeString.toDateTimeOptionsTimeTime): Deleted.

  • builtins/RegExpPrototype.js:

(globalPrivate.getSubstitution):
(overriddenName.string_appeared_here.replace):
(getSubstitution): Deleted.

9:27 PM Changeset in webkit [273616] by Peng Liu
  • 4 edits in trunk/LayoutTests

[GPUP] Refresh test expectations after adding the support to paint GPUP hosted video to 2D canvas and WebGL surfaces
https://bugs.webkit.org/show_bug.cgi?id=222500

Reviewed by Jer Noble.

r273568 adds the support to paint GPU process hosted video in the WebContent process to
2D canvas and WebGL surfaces. This function is used by layout tests no matter
"GPU Process: Canvas Rendering" and "GPU Process: WebGL" are enabled or not.
A lot of tests depending on it are passing now.

  • gpu-process/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/wk2/TestExpectations:
9:27 PM Changeset in webkit [273615] by Peng Liu
  • 16 edits in trunk/Source/WebKit

[GPUP] Replace references to GPUProcessConnection and Connection with WeakPtr<GPUProcessConnection>
https://bugs.webkit.org/show_bug.cgi?id=222492

Reviewed by Eric Carlson.

As we did in r273473, this patch replaces some references to GPUProcessConnection and Connection
with WeakPtr<GPUProcessConnection>. r273473 was for the GPU process, this patch is for web processes.
When the GPU process crashes, the GPUProcessConnection object (as well as its Connection object)
will be destroyed, and the reference will be invalid.

No new tests, fixing test crashes on bots.

  • WebProcess/GPU/media/AudioTrackPrivateRemote.cpp:

(WebKit::AudioTrackPrivateRemote::AudioTrackPrivateRemote):
(WebKit::AudioTrackPrivateRemote::setEnabled):

  • WebProcess/GPU/media/AudioTrackPrivateRemote.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::addRemoteAudioTrack):
(WebKit::MediaPlayerPrivateRemote::addRemoteTextTrack):
(WebKit::MediaPlayerPrivateRemote::addRemoteVideoTrack):

  • WebProcess/GPU/media/MediaSourcePrivateRemote.cpp:

(WebKit::MediaSourcePrivateRemote::MediaSourcePrivateRemote):
(WebKit::MediaSourcePrivateRemote::~MediaSourcePrivateRemote):
(WebKit::MediaSourcePrivateRemote::addSourceBuffer):
(WebKit::MediaSourcePrivateRemote::durationChanged):
(WebKit::MediaSourcePrivateRemote::setReadyState):
(WebKit::MediaSourcePrivateRemote::setIsSeeking):
(WebKit::MediaSourcePrivateRemote::waitForSeekCompleted):
(WebKit::MediaSourcePrivateRemote::seekCompleted):
(WebKit::MediaSourcePrivateRemote::setTimeFudgeFactor):

  • WebProcess/GPU/media/MediaSourcePrivateRemote.h:
  • WebProcess/GPU/media/RemoteImageDecoderAVF.cpp:

(WebKit::RemoteImageDecoderAVF::RemoteImageDecoderAVF):
(WebKit::RemoteImageDecoderAVF::createFrameImageAtIndex):
(WebKit::RemoteImageDecoderAVF::setExpectedContentSize):
(WebKit::RemoteImageDecoderAVF::setData):
(WebKit::RemoteImageDecoderAVF::gpuProcessConnection const): Deleted.

  • WebProcess/GPU/media/RemoteImageDecoderAVF.h:
  • WebProcess/GPU/media/RemoteImageDecoderAVFManager.cpp:

(WebKit::RemoteImageDecoderAVFManager::gpuProcessConnection const):

  • WebProcess/GPU/media/RemoteImageDecoderAVFManager.h:
  • WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:

(WebKit::SourceBufferPrivateRemote::SourceBufferPrivateRemote):
(WebKit::SourceBufferPrivateRemote::~SourceBufferPrivateRemote):
(WebKit::SourceBufferPrivateRemote::append):
(WebKit::SourceBufferPrivateRemote::abort):
(WebKit::SourceBufferPrivateRemote::resetParserState):
(WebKit::SourceBufferPrivateRemote::removedFromMediaSource):
(WebKit::SourceBufferPrivateRemote::setReadyState):
(WebKit::SourceBufferPrivateRemote::setActive):
(WebKit::SourceBufferPrivateRemote::setMediaSourceEnded):
(WebKit::SourceBufferPrivateRemote::setMode):
(WebKit::SourceBufferPrivateRemote::updateBufferedFromTrackBuffers):
(WebKit::SourceBufferPrivateRemote::removeCodedFrames):
(WebKit::SourceBufferPrivateRemote::evictCodedFrames):
(WebKit::SourceBufferPrivateRemote::addTrackBuffer):
(WebKit::SourceBufferPrivateRemote::resetTrackBuffers):
(WebKit::SourceBufferPrivateRemote::clearTrackBuffers):
(WebKit::SourceBufferPrivateRemote::setAllTrackBuffersNeedRandomAccess):
(WebKit::SourceBufferPrivateRemote::setGroupStartTimestamp):
(WebKit::SourceBufferPrivateRemote::setGroupStartTimestampToEndTimestamp):
(WebKit::SourceBufferPrivateRemote::setShouldGenerateTimestamps):
(WebKit::SourceBufferPrivateRemote::reenqueueMediaIfNeeded):
(WebKit::SourceBufferPrivateRemote::resetTimestampOffsetInTrackBuffers):
(WebKit::SourceBufferPrivateRemote::startChangingType):
(WebKit::SourceBufferPrivateRemote::setTimestampOffset):
(WebKit::SourceBufferPrivateRemote::setAppendWindowStart):
(WebKit::SourceBufferPrivateRemote::setAppendWindowEnd):
(WebKit::SourceBufferPrivateRemote::seekToTime):
(WebKit::SourceBufferPrivateRemote::updateTrackIds):
(WebKit::SourceBufferPrivateRemote::bufferedSamplesForTrackId):

  • WebProcess/GPU/media/SourceBufferPrivateRemote.h:
  • WebProcess/GPU/media/TextTrackPrivateRemote.cpp:

(WebKit::TextTrackPrivateRemote::TextTrackPrivateRemote):
(WebKit::TextTrackPrivateRemote::setMode):

  • WebProcess/GPU/media/TextTrackPrivateRemote.h:
  • WebProcess/GPU/media/VideoTrackPrivateRemote.cpp:

(WebKit::VideoTrackPrivateRemote::VideoTrackPrivateRemote):
(WebKit::VideoTrackPrivateRemote::setSelected):

  • WebProcess/GPU/media/VideoTrackPrivateRemote.h:

(WebKit::VideoTrackPrivateRemote::create):

7:04 PM Changeset in webkit [273614] by Alan Bujtas
  • 1 edit
    1 add in trunk/PerformanceTests

[Performance test][Line layout] Add test with inline boxes
https://bugs.webkit.org/show_bug.cgi?id=222498

Reviewed by Ryosuke Niwa.

We don't have a performance test on inline boxes yet.

  • Layout/line-layout-inline-level-boxes.html: Added.
6:51 PM Changeset in webkit [273613] by msaboff@apple.com
  • 2 edits in trunk/JSTests

Followup test fix to r273594
https://bugs.webkit.org/show_bug.cgi?id=222506

Reviewed by Yusuke Suzuki.

  • stress/regexp-max-size.js:

(testTooBigBMPRegExp):
(testTooBigNonBMPRegExp):
(testAll):

6:42 PM Changeset in webkit [273612] by dino@apple.com
  • 3 edits in trunk/Source/ThirdParty/ANGLE

Support fast/canvas/webgl/copyBufferSubData.html, fix bugs in fast/canvas/webgl/getBufferSubData-webgl1.html in Metal ANGLE on Simulator
https://bugs.webkit.org/show_bug.cgi?id=222508

Patch by Kyle Piddington <Kyle Piddington> on 2021-02-26
Reviewed by Dean Jackson.

  • src/libANGLE/renderer/metal/BufferMtl.mm:

(rx::BufferMtl::unmap):

  • src/libANGLE/renderer/metal/DisplayMtl.mm:

(rx::DisplayMtl::getMaxSupportedESVersion const):

5:58 PM Changeset in webkit [273611] by sbarati@apple.com
  • 3 edits
    1 add in trunk

Remove bad assertion of AI ArrayMode state in various "by val" opcodes
https://bugs.webkit.org/show_bug.cgi?id=222494
<rdar://73613460>

Reviewed by Filip Pizlo.

JSTests:

  • stress/dont-assert-ai-proved-array-mode.js: Added.

(bar):
(foo):

Source/JavaScriptCore:

It's invalid to ever assert that AI must have proved something. We've been
slowly removing these faulty asserts from the compiler, and this patch
removes some more of them. AI is conservative, and it's not guaranteed
that it will prove X, even if X must be true.

In this particular test case, we are looking at a race between the concurrent
compiler thread and the main thread, and the compilation will be thrown away
because of a Structure transition.

What happened in this particular program is we had a CheckStructure that was
proved to exit in an early run of AI, that is not shown to exit during a later
run of AI. Because of that, in the earlier AI run, we have some narrower type
info (because fewer predecessory type info). This narrower type info allowed
us to elide a CheckArray. The later runs don't have this narrower type info,
because the CheckStructure doesn't exit. The safety of all of this is
guaranteed by the compilation being thrown away because we fired the transition
watchpoint from the earlier Structure seen by AI.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetByValOnString):
(JSC::DFG::SpeculativeJIT::compilePutByValForFloatTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValOnDirectArguments):
(JSC::DFG::SpeculativeJIT::compileGetByValOnScopedArguments):
(JSC::DFG::SpeculativeJIT::compileGetArrayLength):

5:54 PM Changeset in webkit [273610] by Chris Dumez
  • 37 edits in trunk

Reduce explicit usage of [objC retain] in WebKit
https://bugs.webkit.org/show_bug.cgi?id=222439

Reviewed by Darin Adler.

Reduce explicit usage of [objC retain] in WebKit by using RetainPtr<>.

Source/JavaScriptCore:

  • API/JSContext.mm:

(+[JSContext currentArguments]):
(-[JSContext beginCallbackWithData:calleeValue:thisValue:argumentCount:arguments:]):
(-[JSContext endCallbackWithData:]):

  • API/JSContextInternal.h:
  • API/tests/testapi.mm:

(-[TinyDOMNode initWithVirtualMachine:]):

Source/WebCore:

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):

  • editing/cocoa/DataDetection.mm:

(WebCore::resultIsURL):

  • editing/cocoa/HTMLConverter.mm:

(WebDefaultFont):

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

(WebCore::imageDecoderAssetOptions):

  • platform/graphics/mac/ColorMac.mm:

(WebCore::nsColor):

  • platform/ios/QuickLook.mm:

(WebCore::QLPreviewGetSupportedMIMETypesSet):
(WebCore::temporaryFileAttributes):
(WebCore::temporaryDirectoryAttributes):

  • platform/ios/WebCoreMotionManager.mm:

(-[WebCoreMotionManager checkClientStatus]):

  • platform/ios/wak/WebCoreThread.mm:

(SendMessage):
(HandleDelegateSource):
(SendDelegateMessage):
(WebThreadCallDelegate):
(WebRunLoopUnlockInternal):
(RunWebThread):
(WebThreadNSRunLoop):

Source/WebKit:

  • NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:

(WebKit::Download::resume):

  • Shared/Cocoa/WebPreferencesDefaultValuesCocoa.mm:

(WebKit::isFeatureFlagEnabled):

  • UIProcess/API/Cocoa/APIContentRuleListStoreCocoa.mm:

(API::ContentRuleListStore::defaultStorePath):

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(+[WKWebsiteDataStore _allWebsiteDataTypesIncludingPrivate]):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::tempDirectoryFileSystemRepresentation):
(WebKit::WebsiteDataStore::cacheDirectoryFileSystemRepresentation):
(WebKit::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView keyCommands]):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(-[WKPDFPluginAccessibilityObject ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):

Source/WebKitLegacy/mac:

  • Misc/WebNSURLExtras.mm:

(-[NSString _webkit_rangeOfURLScheme]):

  • Misc/WebStringTruncator.mm:

(+[WebStringTruncator centerTruncateString:toWidth:]):

  • Storage/WebStorageManager.mm:

(+[WebStorageManager _storageDirectoryPath]):

  • WebCoreSupport/WebEditorClient.mm:

(_WebCreateFragment):

  • WebView/WebHTMLRepresentation.mm:

(+[WebHTMLRepresentation supportedMIMETypes]):
(+[WebHTMLRepresentation supportedMediaMIMETypes]):
(+[WebHTMLRepresentation supportedNonImageMIMETypes]):
(+[WebHTMLRepresentation supportedImageMIMETypes]):
(+[WebHTMLRepresentation unsupportedTextMIMETypes]):

  • WebView/WebPreferencesDefaultValues.mm:

(WebKit::isFeatureFlagEnabled):

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
(-[WebView _close]):
(-[WebView _checkDidPerformFirstNavigation]):
(-[WebView setPreferences:]):
(-[WebView preferences]):
(-[WebView setGroupName:]):

  • WebView/WebViewData.h:

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(allowedFontFamilySet):
(-[DRTMockScroller drawKnob]):
(-[DRTMockScroller drawRect:]):
(prepareConsistentTestingEnvironment):

  • TestWebKitAPI/Tests/WebKitCocoa/QuickLook.mm:

(TEST):

  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[TestWKWebView selectionRectsAfterPresentationUpdate]):

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformLibraryPathForTesting):

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::allowedFontFamilySet):
(WTR::systemHiddenFontFamilySet):
(WTR::TestController::platformLibraryPathForTesting):

  • WebKitTestRunner/mac/main.mm:

(disableAppNapInUIProcess):

5:08 PM Changeset in webkit [273609] by Ryan Haddad
  • 2 edits in trunk/Tools

macOS bots should build with ONLY_ACTIVE_ARCH=NO
https://bugs.webkit.org/show_bug.cgi?id=222502

Reviewed by Aakash Jain.

We need this to correctly build for both arm64e and x86_64 and support M1 hardware in our infrastructure.

  • CISupport/build-webkit-org/steps.py:

(CompileWebKit.start):

5:08 PM Changeset in webkit [273608] by Alan Coon
  • 1 copy in tags/Safari-611.1.21

Tag Safari-611.1.21.

4:55 PM Changeset in webkit [273607] by Ryan Haddad
  • 2 edits in trunk/Tools

Move WebGL test bot to Big Sur
https://bugs.webkit.org/show_bug.cgi?id=222501

Reviewed by Aakash Jain.

  • CISupport/build-webkit-org/config.json:
4:54 PM Changeset in webkit [273606] by commit-queue@webkit.org
  • 6 edits in trunk

Unreviewed, reverting r273435.
https://bugs.webkit.org/show_bug.cgi?id=222503

Broke a test

Reverted changeset:

"[css-grid] Fix min/max widths of grid affected by ancestor"
https://bugs.webkit.org/show_bug.cgi?id=222100
https://trac.webkit.org/changeset/273435

4:37 PM Changeset in webkit [273605] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Avoid function allocations for non-user-provided Promise then callbacks
https://bugs.webkit.org/show_bug.cgi?id=222490

Reviewed by Keith Miller.

At @performPromiseThen point, callback function objects themselves are not accessible from users
if they are not passed from users. So, we can reuse functions if users do not pass functions.

  • builtins/PromiseOperations.js:

(globalPrivate.promiseEmptyOnFulfilled):
(globalPrivate.promiseEmptyOnRejected):
(globalPrivate.performPromiseThen):
(onFulfilled): Deleted.
(onRejected): Deleted.

4:32 PM Changeset in webkit [273604] by commit-queue@webkit.org
  • 9 edits in trunk

Source/WebCore:
[MSE] WebContent/GPU process will hang when appending data under some circumstances.
https://bugs.webkit.org/show_bug.cgi?id=222462

Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-02-26
Reviewed by Jer Noble.

No new test, this is covered by one of the MSE WPT.

  • platform/MediaSample.h:

Add an optional parameter to MediaSample::divide to use the buffer's end time
to determine where to divide it.

  • platform/graphics/SourceBufferPrivate.cpp:

(WebCore::SourceBufferPrivate::didReceiveSample):
When attempting to split the MediaSample so none ends after the
appendWindowEnd attribute, use the MediaSample's end time as split point.

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

(WebCore::MediaSampleAVFObjC::divide):
Expand the divide method to split the content according to the end time.
Side fix; use OutputPresentationTimeStamp thorough the devide method.
All time and duration comparisons made in the SourceBuffer are based on
the Output times, so to ensure consistency we use the output time when
looking on where to split.

  • platform/graphics/gstreamer/MediaSampleGStreamer.h:
  • platform/mock/mediasource/MockSourceBufferPrivate.cpp:

Update per new declaration. New argument is unused.

Tools:
[MSE] Ensure MediaSample is properly trimmed.
https://bugs.webkit.org/show_bug.cgi?id=222462

Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-02-26
Reviewed by Jer Noble.

  • TestWebKitAPI/Tests/WebCore/SampleMap.cpp:

Update per new MediaSample::divide prototype.

4:29 PM Changeset in webkit [273603] by graouts@webkit.org
  • 4 edits in trunk/Source/WebCore

Length blending should allow for a ValueRange parameter
https://bugs.webkit.org/show_bug.cgi?id=222497

Reviewed by Dean Jackson.

We introduced a new NonNegativeLengthPropertyWrapper in r273001, the fix for bug 222034, with a special
blend() override implementation which would disallow negative values. However, this is something that
should ideally be provided lower down in the blending code in the blend() function on the Length type
itself. This will allow us to blend other non-negative length-related types, such as LengthBox, without
duplicating this code.

We also use this opportunity to not use the { 0, Fixed } value in all cases where we clip to 0, and
instead use the type from the blended values, provided one isn't 0.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):
(WebCore::NonNegativeLengthPropertyWrapper::NonNegativeLengthPropertyWrapper):

  • platform/Length.cpp:

(WebCore::blend):

  • platform/Length.h:
4:17 PM Changeset in webkit [273602] by Russell Epstein
  • 1 copy in tags/Safari-612.1.5.2

Tag Safari-612.1.5.2.

4:14 PM Changeset in webkit [273601] by Russell Epstein
  • 8 edits in branches/safari-612.1.5-branch/Source

Versioning.

WebKit-7612.1.5.2

4:11 PM Changeset in webkit [273600] by Alan Bujtas
  • 5 edits in trunk

[LFC][Coverage] Do not bail out on text underline position when text-decoration is 'none'
https://bugs.webkit.org/show_bug.cgi?id=222481

Reviewed by Antti Koivisto.

Source/WebCore:

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForStyle):

LayoutTests:

  • fast/text/simple-line-layout-with-text-underline-position-expected.html:
  • fast/text/simple-line-layout-with-text-underline-position.html:
3:51 PM Changeset in webkit [273599] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[BigSur Wk1] platform/mac-bigsur/media/media-source/media-source-webm-vp8-malformed-header.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=222493

Unreviewed test gardening.

Patch by Amir Mark Jr <Amir Mark Jr.> on 2021-02-26

  • platform/mac-wk1/TestExpectations:
3:48 PM Changeset in webkit [273598] by Russell Epstein
  • 2 edits in branches/safari-612.1.5-branch/Source/WebKit

Revert "Cherry-pick r273560. rdar://problem/74796083"

This reverts commit r273565.

3:45 PM Changeset in webkit [273597] by dino@apple.com
  • 10 edits in trunk/Source/ThirdParty/ANGLE

Fix iOS simulator crashes due to unsupported simulator pixel formats: r8Unorm_srgb, a1bgr5Unorm, b5g6r5Unorm, abgr4Unorm, bgr5A1Unorm, and program generation asserts.

iOS Simulator doesn't support the following packed 16 bit formats natively. While some of these can be emulated, we should fix up the crashing cases first.

Also fix up program generation issues for void fragment shaders

Disable support for PVRTC temporarily, as Non-square / NPOT PVRTC textures are not supported nativley on metal.

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

Patch by Kyle Piddington <Kyle Piddington> on 2021-02-26
Reviewed by Dean Jackson.

  • src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp:

(GenMetalTraverser::emitStructDeclaration):
(GenMetalTraverser::emitFunctionReturn):
(GenMetalTraverser::emitFunctionParameter):

  • src/compiler/translator/TranslatorMetalDirect/Pipeline.cpp:

(PipelineStructs::matches const):

  • src/compiler/translator/TranslatorMetalDirect/Pipeline.h:

(sh::PipelineScoped::matches const):

  • src/libANGLE/renderer/metal/TextureMtl.mm:

(rx::TextureMtl::setPerSliceSubImage):

  • src/libANGLE/renderer/metal/gen_mtl_format_table.py:
  • src/libANGLE/renderer/metal/mtl_format_map.json:
  • src/libANGLE/renderer/metal/mtl_format_table_autogen.mm:

(rx::mtl::Format::init):
(rx::mtl::VertexFormat::init):
(rx::mtl::FormatTable::initNativeFormatCapsAutogen):

  • src/libANGLE/renderer/metal/mtl_format_utils.mm:

(rx::mtl::FormatTable::initialize):

  • src/libANGLE/renderer/metal/mtl_resources.mm:

(rx::mtl::Texture::Make2DTexture):
(rx::mtl::Texture::MakeTexture):

3:41 PM Changeset in webkit [273596] by Devin Rousso
  • 4 edits in trunk

[Payment Request] log when the request is cancelled while waiting for the Promise provided to show()/updateWith() to settle
https://bugs.webkit.org/show_bug.cgi?id=222491

Reviewed by Andy Estes.

Source/WebCore:

  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::cancel):

LayoutTests:

  • http/tests/paymentrequest/payment-request-show-method.https-expected.txt:
3:30 PM Changeset in webkit [273595] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r273560.
https://bugs.webkit.org/show_bug.cgi?id=222499

reverting an unnecessary change after confirming it did not
fix build issues

Reverted changeset:

"Convert WKMediaPlaybackState NS_ENUM back to NSUInteger type"
https://bugs.webkit.org/show_bug.cgi?id=222475
https://trac.webkit.org/changeset/273560

3:22 PM Changeset in webkit [273594] by msaboff@apple.com
  • 3 edits
    1 add in trunk

unexpected minimumInputSize in setupDisjunctionOffsets for regexp engine(yarr)
https://bugs.webkit.org/show_bug.cgi?id=220357

Reviewed by Saam Barati.

JSTests:

New tests to check the boundary conditions for overflowing a pattern in a RegExp.

  • stress/regexp-max-size.js: Added.

(testMaxRegExp):
(testTooBigRegExp):
(testMaxBMPRegExp):
(testTooBigBMPRegExp):
(testMaxNonBMPRegExp):
(testTooBigNonBMPRegExp):
(testAll):

Source/JavaScriptCore:

Removed an unnecessary ASSERT.
This assert checked that the minimum size wasn't UINT_MAX which I believe was
intended to make sure the minimum size was changed while computing the
disjunction's size and offsets. Those calculations involve checked arithmetic,
which would catch any overflow.

The other part of this patch adds a test that checks this condition as well
as the case where the pattern is one character longer, 232, which triggers
the arithmetic overflow.

  • yarr/YarrPattern.cpp:

(JSC::Yarr::YarrPatternConstructor::setupDisjunctionOffsets):

3:20 PM Changeset in webkit [273593] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

Remove unnecessary WKMediaPlaybackState header from Xcode project file
https://bugs.webkit.org/show_bug.cgi?id=222496
<rdar://problem/74808525>

Reviewed by Brent Fulgham.

  • WebKit.xcodeproj/project.pbxproj:
3:17 PM Changeset in webkit [273592] by weinig@apple.com
  • 5 edits in trunk

Remove non-standard 'css'/'Css' prefixed properties on CSSStyleDeclaration
https://bugs.webkit.org/show_bug.cgi?id=218158
Source/WebCore:

<rdar://problem/70666307>

Reviewed by Tim Horton.

Remove support for 'css'/'Css' prefixed properties of CSSStyleDeclaration which
are no longer supported by any other browser.

  • css/CSSStyleDeclaration.cpp:

LayoutTests:

Reviewed by Tim Horton.

  • fast/dom/CSSStyleDeclaration/css-properties-case-sensitive-expected.txt:
  • fast/dom/CSSStyleDeclaration/css-properties-case-sensitive.html:

Update test to reflect removal of css prefixes.

2:39 PM Changeset in webkit [273591] by Peng Liu
  • 3 edits in trunk/LayoutTests

Flaky Test: media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen.html
https://bugs.webkit.org/show_bug.cgi?id=182571

Reviewed by Jer Noble.

Fix a flaky test by:
1) Enable "MockVideoPresentationMode".
2) Wait for a video presentation mode change to complete before moving to the next step in the test.
3) Request the video to exit fullscreen before finish the test (to avoid interference with other tests).

  • media/modern-media-controls/tracks-support/mac/tracks-support-show-panel-fullscreen-expected.txt:
  • media/modern-media-controls/tracks-support/mac/tracks-support-show-panel-fullscreen.html:
2:26 PM Changeset in webkit [273590] by wilander@apple.com
  • 27 edits
    2 copies
    2 moves in trunk

Non-cookie website data not deleted after 7 days of browser use without user interaction
https://bugs.webkit.org/show_bug.cgi?id=222248
<rdar://problem/74612589>

Reviewed by Brent Fulgham and informally by Kate Cheney.

Source/WebKit:

Tests: http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago.html

http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago.html

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::updateOperatingDatesParameters):

Now sets two new member variables:

  • Optional<OperatingDate> m_longWindowOperatingDate
  • Optional<OperatingDate> m_shortWindowOperatingDate These are only set if the minimum number of operating days has passed. This function no longer sets m_leastRecentOperatingDate.

(WebKit::ResourceLoadStatisticsDatabaseStore::hasStatisticsExpired const):

Now checks against the two new member variables m_longWindowOperatingDate
and m_shortWindowOperatingDate. This fixes the bug.

(WebKit::ResourceLoadStatisticsDatabaseStore::insertExpiredStatisticForTesting):

Test infrastructure. Now takes the new parameter numberOfOperatingDaysPassed
with which layout tests can control the exact number of operating days
passed since user interaction.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:

Added m_longWindowOperatingDate and m_shortWindowOperatingDate, and
removed m_leastRecentOperatingDate since it's no longer used.

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::insertExpiredStatisticForTesting):

Test infrastructure. The same changes as in the DB store.

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

(WebKit::WebResourceLoadStatisticsStore::insertExpiredStatisticForTesting):

Test infrastructure.

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

(WebKit::NetworkProcess::insertExpiredStatisticForTesting):

Test infrastructure.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreSetStatisticsExpiredStatistic):

Test infrastructure.

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

(WebKit::NetworkProcessProxy::insertExpiredStatisticForTesting):

Test infrastructure.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::insertExpiredStatisticForTesting):

Test infrastructure.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

A new numberOfOperatingDaysPassed parameter was added to
testRunner.setStatisticsExpiredStatistic() to control the exact
number of operating days passed since user interaction.

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

(WTR::TestRunner::setStatisticsExpiredStatistic):

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

(WTR::TestController::setStatisticsExpiredStatistic):

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

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):

LayoutTests:

Existing test cases now make use of the new numberOfOperatingDaysPassed
parameter to testRunner.setStatisticsExpiredStatistic() to control the exact
number of operating days passed since user interaction.
A new test case makes sure website data is not deleted below the threshold.

  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago-expected.txt: Added.
  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago.html: Added.

Sets numberOfOperatingDaysPassed to 6.

  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction-expected.txt.
  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction.html.

Sets numberOfOperatingDaysPassed to 7.

  • http/tests/resourceLoadStatistics/operating-dates-all-website-data-removed.html:

Sets numberOfOperatingDaysPassed to 30.

  • platform/wk2/TestExpectations:

Updated existing expectation with new file name.

2:11 PM Changeset in webkit [273589] by Devin Rousso
  • 2 edits in trunk/Tools

Unreviewed, add myself to the ConsoleUsage watchlist

  • Scripts/webkitpy/common/config/watchlist:
1:43 PM Changeset in webkit [273588] by BJ Burg
  • 5 edits in trunk/Source/WebKit

Web Inspector: give WebInspectorUIExtensionControllerProxy a chance to teardown when the frontend is about to close
https://bugs.webkit.org/show_bug.cgi?id=222486

Reviewed by Devin Rousso.

Sometimes when closing Web Inspector, the message receiver for WebInspectorUIExtensionControllerProxy
is not removed. Move this teardown into a separate method. It's too late to do this in the destructor
if a lambda has kept a strong reference to the controller beyond the point when the frontend was closed.

Covered by existing API tests, which will hopefully become less flaky as a result.

  • UIProcess/Inspector/RemoteWebInspectorProxy.cpp:

(WebKit::RemoteWebInspectorProxy::closeFrontendPageAndWindow):

  • UIProcess/Inspector/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::closeFrontendPageAndWindow):
Notify the extensions controller that it's time to teardown.

  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h:
  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp:

(WebKit::WebInspectorUIExtensionControllerProxy::~WebInspectorUIExtensionControllerProxy):
By the time this destructor runs, we should have already gotten the message to teardown.

(WebKit::WebInspectorUIExtensionControllerProxy::inspectorFrontendWillClose): Added.
Use the soon-to-be-gone m_frontendPage to unregister as a message receiver.

1:41 PM Changeset in webkit [273587] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Flaky JSC test: stress/atomic-increment-bigint64.js
https://bugs.webkit.org/show_bug.cgi?id=221904

Reviewed by Keith Miller.

bytecode-cache test assumes that code can be cached once it is executed. But this
is not correct for threading tests using JSC shell's agent feature: code is running
different VM in the different thread. And we have no guarantee that this thread destroys
VM when the main thread is finished. So this is possible that bytecode used in that thread
is not committed.

We use Options::forceDiskCache's RELEASE_ASSERT only if it is in main thread.

  • runtime/CodeCache.h:
1:40 PM Changeset in webkit [273586] by BJ Burg
  • 2 edits in trunk/Source/WebKit

[Cocoa] Web Inspector: add support for receiving Web Extension events via _WKInspectorExtensionDelegate
https://bugs.webkit.org/show_bug.cgi?id=222252
<rdar://problem/71206685>

Unreviewed, revert one unintentionally changed error code.

Fixes failing API test WKInspectorExtensionHost.UnregisterExtension.

  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp:

(WebKit::WebInspectorUIExtensionControllerProxy::unregisterExtension):

1:36 PM Changeset in webkit [273585] by Jonathan Bedard
  • 6 edits
    1 add in trunk/Tools

[webkitcorepy] Move credential access from webkitscmpy
https://bugs.webkit.org/show_bug.cgi?id=222487
<rdar://problem/74801487>

Rubber-stamped by Aakash Jain.

  • Scripts/libraries/webkitcorepy/setup.py: Bump version.
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Bump version, move keyring libraries.
  • Scripts/libraries/webkitcorepy/webkitcorepy/credentials.py: Add.
  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Bump version, move keyring libraries.
  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:

(GitHub.credentials): Use webkitcorepy credentials.

1:03 PM Changeset in webkit [273584] by Jonathan Bedard
  • 9 edits in trunk/Tools

[resultsdbpy] Use webkitcorepy requests mocking
https://bugs.webkit.org/show_bug.cgi?id=222443
<rdar://problem/74764567>

Reviewed by Dewei Zhu.

  • Scripts/libraries/resultsdbpy/resultsdbpy/init.py: Bump version.
  • Scripts/libraries/resultsdbpy/resultsdbpy/model/casserole_unittest.py:

(CasseroleTest.test_synchronous): Use webkitcorepy's requests mocking.
(CasseroleTest.test_asynchronous): Ditto.
(CasseroleTest.test_list_like): Ditto.
(MockRequest): Deleted.

  • Scripts/libraries/resultsdbpy/resultsdbpy/model/ci_context_unittest.py:

(URLFactoryTest.mock): Use webkitcorepy's requests mocking.
(URLFactoryTest.MockRequest): Deleted.
(URLFactoryTest.get): Deleted.

  • Scripts/libraries/resultsdbpy/resultsdbpy/view/view_routes_unittest.py:

(WebSiteTestCase.decorator): Referenced static files have already been moved.
(WebSiteTestCase.decorator.MockRequest): Deleted.

  • Scripts/libraries/resultsdbpy/setup.py: Bump version.
  • Scripts/libraries/webkitcorepy/setup.py: Ditto.
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
  • Scripts/libraries/webkitcorepy/webkitcorepy/mocks/requests_.py:

(Requests.init): Allow caller to specify certain responses.
(Requests.request):

1:02 PM Changeset in webkit [273583] by Andres Gonzalez
  • 4 edits in trunk

Add AXTextMarkerRangeForNSRange attribute so that Mac clients can access this functionality.
https://bugs.webkit.org/show_bug.cgi?id=222477
Source/WebCore:

<rdar://problem/74793445>

Reviewed by Chris Fleizach.

This is a follow up to: https://bugs.webkit.org/show_bug.cgi?id=222154.
As Chris Fleizach pointed out in the above review, it is necessary to
add a handler in accessibilityAttributeValue:forParameter: for a new AX
attribute in order for clients to access this functionality.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
(-[WebAccessibilityObjectWrapper textMarkerRangeForNSRange:]): Deleted.

Tools:

Reviewed by Chris Fleizach.

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::textMarkerRangeForRange):

12:44 PM Changeset in webkit [273582] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Textures Fail to Render in WebGL from HLS Stream on iPhone 12 [iOS 14.2]
https://bugs.webkit.org/show_bug.cgi?id=218637
<rdar://problem/71102126>

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

Remove incorrect validation that IOSurface pixel format matches
the pixel format of the texture image being specified.

The "Element" in IOSurface is a block of pixels, while the validation assumed
it means one pixel. The validation failed for a compressed format.

Currently we map non-public YUV formats, to which there is no elequent way
of implementing the validation.
Most likely this started to reproduce if IOSurfaceGetBytesPerElementOfPlane
was changed to produce correct results for the above YUV format.

Later commits could add the validation back for formats that we know the
pixel format type.

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

(rx::IOSurfaceSurfaceEAGL::validateAttributes):

12:31 PM Changeset in webkit [273581] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] Commit queue should show commit identifier every time it updates local checkout
https://bugs.webkit.org/show_bug.cgi?id=222287

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/factories.py:

(CommitQueueFactory.init): Added ShowIdentifier step.

  • CISupport/ews-build/factories_unittest.py: Updated unit-test.
12:27 PM Changeset in webkit [273580] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r273558. rdar://problem/74800042

Unreviewed, address post-landing review feedback for r273542.

Update a comment and fix a check that was reversed.

  • Modules/webaudio/ScriptProcessorNode.cpp: (WebCore::ScriptProcessorNode::createOutputBufferForJS const): (WebCore::ScriptProcessorNode::process):

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

12:27 PM Changeset in webkit [273579] by Alan Coon
  • 5 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r273542. rdar://problem/74800042

Fix threading issue in ScriptProcessorNode::process()
https://bugs.webkit.org/show_bug.cgi?id=222447
<rdar://74700526>

Reviewed by Jer Noble.

It was possible for the audio thread (in ScriptProcessorNode::process())
and the main thread (via ScriptProcessorNode::fireProcessEvent()) to
access the same m_inputBuffers / m_outputBuffers concurrently, causing
crashes. The m_processLock was supposed to avoid this. However, the
scope of the locking in ScriptProcessorNode::process() was insufficient
to protect us. ScriptProcessorNode::process() now grabs the lock very
early, before interacting with any buffers and we make sure not to
modify the buffers when we are unable to grab the lock.

Also, to make sure that the m_inputBuffers / m_outputBuffers are modified
by the main thread only during the scope of the fireProcessEvent() function
(during which we hold the processLock), we no longer pass our internal
buffers to the JS process event handler. Instead, we pass new buffers to
JS and memcpy to and from them. While this is less efficient, this is
actually required because the script could store the buffers it is given
and modify them outside the scope of the process event handler.

  • Modules/webaudio/AudioBuffer.cpp: (WebCore::AudioBuffer::AudioBuffer): (WebCore::AudioBuffer::topologyMatches const): (WebCore::AudioBuffer::copyTo const): (WebCore::AudioBuffer::clone const):
  • Modules/webaudio/AudioBuffer.h:
  • Modules/webaudio/ScriptProcessorNode.cpp: (WebCore::ScriptProcessorNode::createInputBufferForJS const): (WebCore::ScriptProcessorNode::createOutputBufferForJS const): (WebCore::ScriptProcessorNode::process): (WebCore::ScriptProcessorNode::fireProcessEvent):
  • Modules/webaudio/ScriptProcessorNode.h:

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

12:27 PM Changeset in webkit [273578] by Alan Coon
  • 5 edits
    4 adds in branches/safari-611-branch

Cherry-pick r273512. rdar://problem/74799698

REGRESSION(r269957): Empty font names passed to canvas2d cause all text routines to crash
https://bugs.webkit.org/show_bug.cgi?id=222402
<rdar://problem/72621268>

Reviewed by Darin Adler and Chris Lord.

Source/WebCore:

It looks like it was simply an oversight from that patch. If the font name is empty,
CanvasRenderingContext2D::setFont() will set the font object to one that doesn't have
its internal FontCascadeFonts pointer set.

Tests: fast/text/canvas-font-resolution-2.html

fast/text/canvas-font-resolution.html

  • html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setFont):
  • html/canvas/CanvasRenderingContext2DBase.h: (WebCore::CanvasRenderingContext2DBase::FontProxy::isPopulated const):
  • style/StyleResolveForFontRaw.cpp: (WebCore::Style::resolveForFontRaw):

LayoutTests:

  • fast/text/canvas-font-resolution-2-expected.html: Added.
  • fast/text/canvas-font-resolution-2.html: Added.
  • fast/text/canvas-font-resolution-expected.txt: Added.
  • fast/text/canvas-font-resolution.html: Added.

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

12:27 PM Changeset in webkit [273577] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r273498. rdar://problem/74800989

[iOS] Crash when playing Dolby Atmos audio tracks with AVAudioTimePitchAlgorithmTimeDomain
https://bugs.webkit.org/show_bug.cgi?id=222420
<rdar://74612532>

Reviewed by Eric Carlson.

CoreAudio throws an assertion when using the TimeDomain pitch-correction algorithm on tracks
with > 2 channels. To work around this assertion for now, only set the pitch-correction
algorithm when the playbackRate is set to a non 0 or 1 value.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::audioTimePitchAlgorithmForMediaPlayerPitchCorrectionAlgorithm): (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): (WebCore::MediaPlayerPrivateAVFoundationObjC::setPlayerRate): (WebCore::MediaPlayerPrivateAVFoundationObjC::setPreservesPitch): (WebCore::MediaPlayerPrivateAVFoundationObjC::setPitchCorrectionAlgorithm): (WebCore::MediaPlayerPrivateAVFoundationObjC::playerItemStatusDidChange):

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

12:22 PM Changeset in webkit [273576] by pvollan@apple.com
  • 7 edits in trunk/Source/WebKit

[Cocoa] Send QOS parameters as part of Web process creation parameters
https://bugs.webkit.org/show_bug.cgi?id=222474

Reviewed by Chris Dumez.

In order to save one IPC call when starting a WebContent process, send QOS parameters as part of Web process creation parameters.

  • Shared/WebProcessCreationParameters.cpp:

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

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

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess):

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

(WebKit::WebProcess::platformInitializeWebProcess):

12:21 PM Changeset in webkit [273575] by pvollan@apple.com
  • 4 edits in trunk/Source/WebKit

[Cocoa] Start WebContent process pre-warming when process is initialized
https://bugs.webkit.org/show_bug.cgi?id=222476

Reviewed by Chris Dumez.

Instead of pre-warming in response to a message, the WebContent process can start pre-warming automatically
if it is of a pre-warmed process type. This saves one IPC message on startup of the WebContent process.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

  • WebProcess/WebProcess.messages.in:
12:09 PM Changeset in webkit [273574] by Devin Rousso
  • 10 edits in trunk/Source/WebKit

Provide the image URL for accessibility image extraction
https://bugs.webkit.org/show_bug.cgi?id=222483
<rdar://problem/74144895>

Reviewed by Wenson Hsieh.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::requestImageExtraction):

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

(WebKit::WebPageProxy::requestImageExtraction):

  • UIProcess/PageClient.h:

(WebKit::PageClient::requestImageExtraction):

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

(WebKit::PageClientImpl::requestImageExtraction):

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:
12:00 PM Changeset in webkit [273573] by Alan Coon
  • 1 copy in tags/Safari-611.1.20

Tag Safari-611.1.20.

11:51 AM Changeset in webkit [273572] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Remove old buildbot version from webkitpy autoinstaller
https://bugs.webkit.org/show_bug.cgi?id=222272

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/autoinstalled/buildbot.py:
11:29 AM Changeset in webkit [273571] by Alan Coon
  • 2 edits in branches/safari-611-branch/LayoutTests

Cherry-pick r273567. rdar://problem/74798808

Emoji sequences with constituents in the UBLOCK_SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A Unicode block don't get combined properly
https://bugs.webkit.org/show_bug.cgi?id=222438
<rdar://problem/74382039>

Unreviewed test gardening.

  • platform/mac/TestExpectations:

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

11:29 AM Changeset in webkit [273570] by Alan Coon
  • 5 edits
    2 adds in branches/safari-611-branch

Cherry-pick r273539. rdar://problem/74798808

Emoji sequences with constituents in the UBLOCK_SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A Unicode block don't get combined properly
https://bugs.webkit.org/show_bug.cgi?id=222438
<rdar://problem/74382039>

Reviewed by Zalan Bujtas.

Source/WebCore:

Just add UBLOCK_SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A to the list.

We have to do some workarounds because not all versions of ICU include this value.
Luckily, these workarounds are compile-time-only, because we we're only using this value
to compare to a value produced by ICU (not a value we pass into ICU).

Test: fast/text/mending-heart.html

  • platform/text/CharacterProperties.h: (WebCore::isEmojiGroupCandidate):

LayoutTests:

  • fast/text/mending-heart-expected.txt: Added.
  • fast/text/mending-heart.html: Added.
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:

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

11:29 AM Changeset in webkit [273569] by Lauro Moura
  • 4 edits
    15 moves in trunk/LayoutTests

[GLIB] Move some css3 blending baselines to glib and update expectations

Unreviewed test gardening.

These tests are passing in GTK and in WPE, so move the baselines to
glib.

The two GTK expectations left are now in GLIB and the PASS flakiness
removed as they are consistently ImageOnlyFailing. Also moved the
other expectations to the compositing section.

  • platform/glib/TestExpectations:
  • platform/glib/css3/blending/svg-blend-color-burn-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-color-burn-expected.txt.
  • platform/glib/css3/blending/svg-blend-color-dodge-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-color-dodge-expected.txt.
  • platform/glib/css3/blending/svg-blend-darken-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-darken-expected.txt.
  • platform/glib/css3/blending/svg-blend-difference-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-difference-expected.txt.
  • platform/glib/css3/blending/svg-blend-exclusion-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-exclusion-expected.txt.
  • platform/glib/css3/blending/svg-blend-hard-light-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-hard-light-expected.txt.
  • platform/glib/css3/blending/svg-blend-lighten-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-lighten-expected.txt.
  • platform/glib/css3/blending/svg-blend-multiply-alpha-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-multiply-alpha-expected.txt.
  • platform/glib/css3/blending/svg-blend-multiply-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-multiply-expected.txt.
  • platform/glib/css3/blending/svg-blend-normal-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-normal-expected.txt.
  • platform/glib/css3/blending/svg-blend-overlay-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-overlay-expected.txt.
  • platform/glib/css3/blending/svg-blend-plus-darker-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-plus-darker-expected.txt.
  • platform/glib/css3/blending/svg-blend-plus-lighter-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-plus-lighter-expected.txt.
  • platform/glib/css3/blending/svg-blend-screen-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-screen-expected.txt.
  • platform/glib/css3/blending/svg-blend-soft-light-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-soft-light-expected.txt.
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
11:28 AM Changeset in webkit [273568] by jer.noble@apple.com
  • 20 edits in trunk/Source

[GPUP] Allow painting of GPUP hosted video from the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=222461

Reviewed by Eric Carlson.

Source/WebCore:

  • Change the return type of pixelBufferForCurrentTime() to return a RetainPtr<> rather than just a raw pointer.
  • Add utility methods on IOSurface to retrieve an IOSurface from a CVPixelBuffer and to reconstitute a CVPixelBuffer from an IOSurface.
  • platform/cocoa/CoreVideoSoftLink.cpp:
  • platform/cocoa/CoreVideoSoftLink.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::pixelBufferForCurrentTime):

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

(WebCore::MediaPlayerPrivateInterface::pixelBufferForCurrentTime):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::pixelBufferForCurrentTime):

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pixelBufferForCurrentTime):

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

(WebCore::IOSurface::createFromPixelBuffer):
(WebCore::IOSurface::createPixelBuffer):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:

(WebCore::GraphicsContextGLOpenGL::copyTextureFromMedia):

Source/WebKit:

Add Cocoa implementations for nativeImageForCurrentTime() and pixelBufferForCurrentTime().
Use those methods to implement paintCurrentFrameInContext().

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm:

(WebKit::RemoteMediaPlayerProxy::nativeImageForCurrentTime):
(WebKit::RemoteMediaPlayerProxy::pixelBufferForCurrentTime):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::paint):
(WebKit::MediaPlayerPrivateRemote::paintCurrentFrameInContext):
(WebKit::MediaPlayerPrivateRemote::pixelBufferForCurrentTime):

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

(WebKit::MediaPlayerPrivateRemote::nativeImageForCurrentTime):
(WebKit::MediaPlayerPrivateRemote::pixelBufferForCurrentTime):

10:44 AM Changeset in webkit [273567] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

Emoji sequences with constituents in the UBLOCK_SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A Unicode block don't get combined properly
https://bugs.webkit.org/show_bug.cgi?id=222438
<rdar://problem/74382039>

Unreviewed test gardening.

  • platform/mac/TestExpectations:
10:40 AM Changeset in webkit [273566] by Russell Epstein
  • 1 copy in tags/Safari-612.1.5.1

Tag Safari-612.1.5.1.

10:33 AM Changeset in webkit [273565] by Russell Epstein
  • 2 edits in branches/safari-612.1.5-branch/Source/WebKit

Cherry-pick r273560. rdar://problem/74796083

Convert WKMediaPlaybackState NS_ENUM back to NSUInteger type
https://bugs.webkit.org/show_bug.cgi?id=222475
<rdar://problem/74787665>

Reviewed by Alex Christensen.

  • UIProcess/API/Cocoa/WKWebView.h:

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

10:24 AM Changeset in webkit [273564] by pvollan@apple.com
  • 8 edits in trunk/Source

[Cocoa] Register VP9 decoders when PlatformMediaSessionManager is created
https://bugs.webkit.org/show_bug.cgi?id=222473
<rdar://problem/74790242>

Reviewed by Eric Carlson.

Source/WebCore:

Currently, VP9 decoders are registered when a Web page is created in the WebContent process. Instead, VP9 decoders can be registered
when PlatformMediaSessionManager is created, which should be a slight performance improvement, since calls into media frameworks will
then not be made unconditionally when creating a Web page, but delayed until required.

No new tests, covered by existing tests.

  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::setShouldEnableVP9Decoder):
(WebCore::PlatformMediaSessionManager::shouldEnableVP9Decoder):
(WebCore::PlatformMediaSessionManager::setShouldEnableVP8Decoder):
(WebCore::PlatformMediaSessionManager::shouldEnableVP8Decoder):
(WebCore::PlatformMediaSessionManager::setShouldEnableVP9SWDecoder):
(WebCore::PlatformMediaSessionManager::shouldEnableVP9SWDecoder):

  • platform/audio/PlatformMediaSessionManager.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::MediaSessionManagerCocoa):

Source/WebKit:

Currently, VP9 decoders are registered when a Web page is created in the WebContent process. Instead, VP9 decoders can be registered when
PlatformMediaSessionManager is created, which should be a slight performance improvement, since calls into media frameworks will then not
be made unconditionally when creating a Web page, but delayed until required.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_lastNavigationWasAppBound):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::enableVP9Decoder): Deleted.
(WebKit::WebProcess::enableVP8SWDecoder): Deleted.
(WebKit::WebProcess::enableVP9SWDecoder): Deleted.

  • WebProcess/WebProcess.h:
10:24 AM Changeset in webkit [273563] by Ruben Turcios
  • 8 edits in branches/safari-612.1.5-branch/Source

Versioning.

WebKit-7612.1.5.1

9:54 AM Changeset in webkit [273562] by Devin Rousso
  • 10 edits
    2 adds in trunk

[Payment Request] log if updateWith is not called synchronously
https://bugs.webkit.org/show_bug.cgi?id=222436

Reviewed by Andy Estes.

Source/WebCore:

Test: http/tests/paymentrequest/updateWith-log-error-if-not-synchronous.https.html

  • Modules/paymentrequest/PaymentRequest.h:
  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::shippingAddressChanged):
(WebCore::PaymentRequest::shippingOptionChanged):
(WebCore::PaymentRequest::paymentMethodChanged):
(WebCore::PaymentRequest::dispatchAndCheckUpdateEvent): Added.

  • Modules/paymentrequest/PaymentRequestUpdateEvent.h:

(WebCore::PaymentRequestUpdateEvent::didCallUpdateWith const): Added.

LayoutTests:

  • http/tests/paymentrequest/updateWith-log-error-if-not-synchronous.https.html: Added.
  • http/tests/paymentrequest/updateWith-log-error-if-not-synchronous.https-expected.txt: Added.
  • http/tests/paymentrequest/payment-request-change-shipping-address.https.html:
  • http/tests/paymentrequest/payment-request-change-shipping-option.https.html:
  • http/tests/paymentrequest/payment-request-show-method.https.html:
  • http/tests/ssl/applepay/ApplePayBillingAddress.html:
  • http/tests/ssl/applepay/ApplePayPaymentMethodChangeEvent.https.html:

Add updateWith({}) calls to avoid the log.

9:49 AM Changeset in webkit [273561] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ macOS ] fast/text/mending-heart.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=222479

Unreviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2021-02-26

  • platform/mac/TestExpectations: Test consantly fails. Already marked in test for iOS, updating test expectation to fail for macOS until the test is fixed.
9:40 AM Changeset in webkit [273560] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

Convert WKMediaPlaybackState NS_ENUM back to NSUInteger type
https://bugs.webkit.org/show_bug.cgi?id=222475
<rdar://problem/74787665>

Reviewed by Alex Christensen.

  • UIProcess/API/Cocoa/WKWebView.h:
9:14 AM Changeset in webkit [273559] by Peng Liu
  • 6 edits in trunk/LayoutTests

[GPUP] Clean up TestExpectations related to media tests
https://bugs.webkit.org/show_bug.cgi?id=222456

Reviewed by Simon Fraser.

  • gpu-process/TestExpectations:

Remove a duplicated expectation (imported/w3c/web-platform-tests/fetch/range/general.window.html).
Move webaudio related test expectations to platform/wk2/TestExpectations.

  • platform/ios-wk2/TestExpectations:

webkit.org/b/221821 has been fixed in r273504.

  • platform/mac-wk2/TestExpectations:

Two media capabilities test failures have been fixed in r273504.
Move a test expectation (platform/mac/media/media-source/videoplaybackquality-decompressionsession.html)
to platform/mac/TestExpectations.
Reorganize expectations for tests in webgl/2.0.0/conformance2/textures/video.

  • platform/mac/TestExpectations:

Remove a duplicated test expectation (mediaElementAudioSourceToScriptProcessorTest.html).

  • platform/wk2/TestExpectations:

Track all modern-media-controls test failures in one bug.
Track all canvas related media test failures in one bug.

8:02 AM Changeset in webkit [273558] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, address post-landing review feedback for r273542.

Update a comment and fix a check that was reversed.

  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::createOutputBufferForJS const):
(WebCore::ScriptProcessorNode::process):

7:46 AM Changeset in webkit [273557] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Stop using deprecated buildbot.status.builder
https://bugs.webkit.org/show_bug.cgi?id=222373

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/steps.py:
6:51 AM WebKitFlatpakSDK/DebugWithRR edited by Philippe Normand
(diff)
6:48 AM Changeset in webkit [273556] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC][IFC] Inline boxes should not be referred as inline containers
https://bugs.webkit.org/show_bug.cgi?id=222455

Reviewed by Antti Koivisto.

Inline boxes used to be called inline containers (e.g <span> -> [inline container start] and </span> -> [inline container end]).

  • layout/inlineformatting/InlineContentBreaker.cpp:

(WebCore::Layout::hasTextRun):
(WebCore::Layout::InlineContentBreaker::processOverflowingContentWithText const):

  • layout/inlineformatting/InlineContentBreaker.h:
  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::usedContentHeight const):
(WebCore::Layout::InlineFormattingContext::collectInlineContentIfNeeded):

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::appendInlineBoxStart):
(WebCore::Layout::Line::appendInlineBoxEnd):
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::TrimmableTrailingContent::remove):

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::isAtSoftWrapOpportunity):
(WebCore::Layout::LineBuilder::nextWrapOpportunity const):

6:48 AM Changeset in webkit [273555] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Include the inline box in the enclosing geometry only once
https://bugs.webkit.org/show_bug.cgi?id=222454

Reviewed by Antti Koivisto.

  • layout/inlineformatting/InlineFormattingContext.cpp:

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

6:19 AM Changeset in webkit [273554] by Alan Bujtas
  • 4 edits in trunk/LayoutTests

Remove unnecessary whitespace (css1/text_properties/text_decoration.html)
https://bugs.webkit.org/show_bug.cgi?id=222446

Reviewed by Antti Koivisto.

Whitespace characters often end up as trailing content and legacy line layout does not trim them properly.
They cause unnecessary noise in renderer tree dumps when switching to modern line layout.

  • css1/box_properties/border.html:
  • css1/text_properties/text_decoration.html:
  • platform/mac/css1/box_properties/border-expected.txt:
  • platform/mac/css1/text_properties/text_decoration-expected.txt:
6:07 AM Changeset in webkit [273553] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Fix clang compilation error in PlatformXR::ViewData initialization
https://bugs.webkit.org/show_bug.cgi?id=222467

Patch by Imanol Fernandez <imanol> on 2021-02-26
Reviewed by Philippe Normand.

Mixture of designated and non-designated struct initializers is a C99 extension.
Switch to designated initializers to avoid compilation errors in compilers not
supporting the extension.

  • Modules/webxr/WebXRSystem.cpp:

(WebCore::WebXRSystem::DummyInlineDevice::views const):

  • platform/xr/openxr/PlatformXROpenXR.cpp:

(PlatformXR::OpenXRDevice::views const):

  • testing/WebFakeXRDevice.cpp:

(WebCore::SimulatedXRDevice::views const):

6:00 AM Changeset in webkit [273552] by Carlos Garcia Campos
  • 2 edits in trunk

Unreviewed. [GTK] Bump version numbers

  • Source/cmake/OptionsGTK.cmake:
4:45 AM Changeset in webkit [273551] by Philippe Normand
  • 2 edits in trunk/Tools

Unreviewed, WPE build fix after SDK r273544 deployment

  • TestWebKitAPI/PlatformWPE.cmake: GLib include path was missing in the TestJavaScriptCore

build.

4:05 AM Changeset in webkit [273550] by youenn@apple.com
  • 12 edits
    1 move
    7 adds in trunk

Add support for WebRTC priority
https://bugs.webkit.org/show_bug.cgi?id=222416

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/webrtc-priority/META.yml: Added.
  • web-platform-tests/webrtc-priority/RTCPeerConnection-ondatachannel-expected.txt: Added.
  • web-platform-tests/webrtc-priority/RTCPeerConnection-ondatachannel.html: Added.
  • web-platform-tests/webrtc-priority/RTCRtpParameters-encodings-expected.txt: Added.
  • web-platform-tests/webrtc-priority/RTCRtpParameters-encodings.html: Added.
  • web-platform-tests/webrtc-priority/w3c-import.log: Added.

Source/WebCore:

Implement https://w3c.github.io/webrtc-priority/ by piping priorities between binding and backend.

Tests: imported/w3c/web-platform-tests/webrtc-priority/RTCPeerConnection-ondatachannel.html

imported/w3c/web-platform-tests/webrtc-priority/RTCRtpParameters-encodings.html

  • Modules/mediastream/RTCDataChannel.h:
  • Modules/mediastream/RTCDataChannel.idl:
  • Modules/mediastream/RTCRtpEncodingParameters.h:
  • Modules/mediastream/RTCRtpEncodingParameters.idl:
  • Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp:

(WebCore::LibWebRTCDataChannelHandler::fromRTCDataChannelInit):
(WebCore::LibWebRTCDataChannelHandler::channelEvent):
(WebCore::fromStdString): Deleted.

  • Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp:

(WebCore::fromRTCPriorityType):
(WebCore::toRTCPriorityType):
(WebCore::toWebRTCBitRatePriority):
(WebCore::fromWebRTCBitRatePriority):
(WebCore::toRTCEncodingParameters):
(WebCore::fromRTCEncodingParameters):
(WebCore::updateRTCRtpSendParameters):

  • Modules/mediastream/libwebrtc/LibWebRTCUtils.h:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/RTCDataChannelHandler.h:
  • platform/mediastream/RTCPriorityType.h: Renamed from Source/WebCore/Modules/mediastream/RTCPriorityType.h.
3:53 AM Changeset in webkit [273549] by commit-queue@webkit.org
  • 14 edits in trunk

Implement OpenXR port graphics binding
https://bugs.webkit.org/show_bug.cgi?id=222173

Patch by Imanol Fernandez <imanol> on 2021-02-26
Reviewed by Sergio Villar Senin.

.:

Enable OpenXR defines required for EGL graphics binding.

  • Source/cmake/OptionsWPE.cmake:

Source/WebCore:

This patch implements the graphics binding required to initialize OpenXR sessions
with tracking and rendering support. The current implementation was using a headless
OpenXR session which is not valid for tracking.

The headless session was used to avoid allocating the graphics resources during WebXR
device enumeration. The problem is that it can't be converted later to a valid session for
tracking, and the global XrInstance needs to be recreated. This patch implements a new approach
to keep the delayed graphics initialization without using the headless session.

  • platform/graphics/egl/GLContextEGL.cpp: Add EGLConfig argument to create methods

(WebCore::GLContextEGL::createWindowContext):
(WebCore::GLContextEGL::createPbufferContext):
(WebCore::GLContextEGL::createSurfacelessContext):
(WebCore::GLContextEGL::GLContextEGL):

  • platform/graphics/egl/GLContextEGL.h: Add EGLConfig member
  • platform/graphics/egl/GLContextEGLLibWPE.cpp: initialize m_config

(WebCore::GLContextEGL::GLContextEGL):
(WebCore::GLContextEGL::createWPEContext):

  • platform/graphics/egl/GLContextEGLWayland.cpp: initialize m_config

(WebCore::GLContextEGL::GLContextEGL):
(WebCore::GLContextEGL::createWaylandContext):

  • platform/graphics/egl/GLContextEGLX11.cpp: initialize m_config

(WebCore::GLContextEGL::GLContextEGL):
(WebCore::GLContextEGL::createPixmapContext):

  • platform/xr/openxr/OpenXRExtensions.cpp: Add OpenXRExtensionMethods

(PlatformXR::OpenXRExtensions::loadMethods):

  • platform/xr/openxr/OpenXRExtensions.h:
  • platform/xr/openxr/OpenXRInstance.cpp: Enable graphics related extensions instead of XR_MND_HEADLESS_EXTENSION

(PlatformXR::Instance::Impl::Impl):

  • platform/xr/openxr/OpenXRUtils.h: Forward declare symbols required by openxr_platform.
  • platform/xr/openxr/PlatformXROpenXR.cpp:

(PlatformXR::OpenXRDevice::initializeTrackingAndRendering): Setup XrGraphicsBindingEGLMNDX
(PlatformXR::OpenXRDevice::collectEnabledFeatures): Alternative solution to enumerateReferenceSpaces()
(PlatformXR::OpenXRDevice::collectSupportedSessionModes):
(PlatformXR::OpenXRDevice::resetSession): deallocate graphic resources

  • platform/xr/openxr/PlatformXROpenXR.h:
3:10 AM Changeset in webkit [273548] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.32.90

WebKitGTK 2.31.90

3:09 AM Changeset in webkit [273547] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.32

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.31.90 release

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS:Add release notes for 2.31.90.
2:11 AM WebKitGTK/2.32.x created by Carlos Garcia Campos
1:47 AM Changeset in webkit [273546] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.32

Branch WebKitGTK for 2.32

1:37 AM Changeset in webkit [273545] by Carlos Garcia Campos
  • 8 edits in trunk

[GTK][WPE] Bump libsoup3 version to 2.99.1
https://bugs.webkit.org/show_bug.cgi?id=222413

Reviewed by Adrian Perez de Castro.

.:

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

Source/WebCore:

Use new session getters and setters instead of g_object_get/set.

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::SoupNetworkSession):
(WebCore::SoupNetworkSession::setProxySettings):
(WebCore::SoupNetworkSession::setAcceptLanguages):

  • platform/network/soup/SoupVersioning.h:

(soup_session_set_proxy_resolver):
(soup_session_get_proxy_resolver):
(soup_session_set_accept_language):

Source/WTF:

  • wtf/Platform.h: Set minimum required version to 2.99
1:20 AM Changeset in webkit [273544] by Philippe Normand
  • 4 edits
    1 add in trunk/Tools/buildstream

[Flatpak SDK] Add recipe for libsoup3
https://bugs.webkit.org/show_bug.cgi?id=222419

Reviewed by Carlos Garcia Campos.

LibSoup3 is parallel-installable with libsoup2, for now we want to keep libsoup2 in the SDK,
at least until porting to libsoup3 has progressed enough.

  • elements/sdk-platform.bst:
  • elements/sdk/glib.bst: Bump to latest 2.67 release.
  • elements/sdk/gtk+-3.bst: Bump to latest 3.24 release, not strictly needed but I was driving by.
  • elements/sdk/libsoup3.bst: Added.
1:04 AM Changeset in webkit [273543] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r269824): macCatalyst WKWebView shows chunks of other tiles in the middle of content
https://bugs.webkit.org/show_bug.cgi?id=222460
<rdar://problem/74102753>

Reviewed by Simon Fraser.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
Reinstate some code that was accidentally deleted in r269824 that ensures
that we do not use an in-use IOSurface as our front buffer, so that
we don't paint into it while it's being composited in the render server.

Also, add some comments, since this code is all a little confusing
with its fronts and backs.

Note: See TracTimeline for information about the timeline view.