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

Timeline



Jun 6, 2021:

11:59 PM Changeset in webkit [278547] by youenn@apple.com
  • 38 edits
    1 copy
    2 moves
    1 add in trunk/Source/ThirdParty/libwebrtc

Update libsrtp to M92
https://bugs.webkit.org/show_bug.cgi?id=226487

Reviewed by Eric Carlson.

  • Configurations/libsrtp.xcconfig:
  • Source/third_party/libsrtp: Resynced.
  • libwebrtc.xcodeproj/project.pbxproj:
11:31 PM Changeset in webkit [278546] by commit-queue@webkit.org
  • 5 edits in trunk/Source

Unreviewed, reverting r277464.
https://bugs.webkit.org/show_bug.cgi?id=226709

No longer necessary

Reverted changeset:

"Work around WebCore failing to build due to NDEBUG getting
undefined in release"
https://bugs.webkit.org/show_bug.cgi?id=225782
https://trac.webkit.org/changeset/277464

11:19 PM Changeset in webkit [278545] by Antti Koivisto
  • 9 edits
    1 add in trunk/Source/WebCore

Factor selection clamping into a type
https://bugs.webkit.org/show_bug.cgi?id=226697

Reviewed by Sam Weinig.

TextBoxSelectableRange will be helpful for moving selection code out of the legacy inline boxes.
It also allows some code sharing already in this patch.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/integration/LayoutIntegrationRunIteratorLegacyPath.h:

(WebCore::LayoutIntegration::RunIteratorLegacyPath::isSelectable const):

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::RunIteratorModernPath::positionForOffset const):
(WebCore::LayoutIntegration::RunIteratorModernPath::isSelectable const):
(WebCore::LayoutIntegration::RunIteratorModernPath::selectionRect const):
(WebCore::LayoutIntegration::RunIteratorModernPath::selectableRange const):
(WebCore::LayoutIntegration::RunIteratorModernPath::clampedOffset const): Deleted.

  • rendering/LegacyInlineTextBox.cpp:

(WebCore::LegacyInlineTextBox::isSelectable const):
(WebCore::LegacyInlineTextBox::localSelectionRect const):
(WebCore::LegacyInlineTextBox::paint):
(WebCore::LegacyInlineTextBox::selectableRange const):
(WebCore::LegacyInlineTextBox::clampedStartEndForState const):
(WebCore::LegacyInlineTextBox::calculateDocumentMarkerBounds const):
(WebCore::LegacyInlineTextBox::collectMarkedTextsForDraggedContent):
(WebCore::LegacyInlineTextBox::collectMarkedTextsForDocumentMarkers const):
(WebCore::LegacyInlineTextBox::paintCompositionBackground):
(WebCore::LegacyInlineTextBox::positionForOffset const):
(WebCore::LegacyInlineTextBox::isSelected const): Deleted.
(WebCore::LegacyInlineTextBox::clampedOffset const): Deleted.

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

(WebCore::RenderBlockFlow::inlineSelectionGaps):

  • rendering/TextBoxSelectableRange.h: Added.

(WebCore::TextBoxSelectableRange::clamp const):
(WebCore::TextBoxSelectableRange::intersects const):

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::localSelectionRect const):

11:16 PM Changeset in webkit [278544] by Chris Dumez
  • 5 edits
    1 delete in trunk/Source/WebCore

Drop MainThreadTaskDispatcher and use callOnMainThread() instead
https://bugs.webkit.org/show_bug.cgi?id=226701

Reviewed by Darin Adler.

Drop MainThreadTaskDispatcher and use callOnMainThread() instead. There is a no need for a
global Timer or a Deque of tasks.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/DeferrableTask.h:

(WebCore::MainThreadDeferrableTask::scheduleTask):

  • platform/GenericTaskQueue.cpp: Removed.
  • platform/GenericTaskQueue.h:

(WebCore::MainThreadTaskQueue::MainThreadTaskQueue):
(WebCore::MainThreadTaskQueue::enqueueTask):

9:22 PM Changeset in webkit [278543] by Chris Dumez
  • 10 edits
    1 add in trunk/Source

Stop using legacy EventLoopDeferrableTask
https://bugs.webkit.org/show_bug.cgi?id=226700

Reviewed by Darin Adler.

Source/WebCore:

Stop using legacy EventLoopDeferrableTask and drop the class entirely. Call sites are
now using the HTML event loop directly and using WTF::CancellableTask to wrap the task
they schedule. This achieves the same result as EventLoopDeferrableTask but is more
lightweight and flexible.

  • animation/DocumentTimelinesController.cpp:

(WebCore::DocumentTimelinesController::DocumentTimelinesController):
(WebCore::DocumentTimelinesController::detachFromDocument):
(WebCore::DocumentTimelinesController::cacheCurrentTime):

  • animation/DocumentTimelinesController.h:
  • dom/ActiveDOMObject.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::scheduleCheckPlaybackTargetCompatability):
(WebCore::HTMLMediaElement::seekWithTolerance):
(WebCore::HTMLMediaElement::setVolume):
(WebCore::HTMLMediaElement::scheduleConfigureTextTracks):
(WebCore::HTMLMediaElement::scheduleMediaEngineWasUpdated):
(WebCore::HTMLMediaElement::scheduleUpdatePlayState):
(WebCore::HTMLMediaElement::cancelPendingTasks):
(WebCore::HTMLMediaElement::closeTaskQueues):
(WebCore::HTMLMediaElement::suspend):
(WebCore::HTMLMediaElement::resume):
(WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured):
(WebCore::HTMLMediaElement::mediaPlayerBufferedTimeRangesChanged):
(WebCore::HTMLMediaElement::scheduleUpdateMediaState):
(WebCore::HTMLMediaElement::playbackControlsManagerBehaviorRestrictionsTimerFired):

  • html/HTMLMediaElement.h:
  • platform/DeferrableTask.h:

Source/WTF:

Introduce new WTF::CancellableTask type which is a wrapper around a WTF::Function.
It can create a handle for the task and this handle can be used to check if the
task is still pending and to cancel it. This is useful when scheduling tasks in the
event loop for example as there are cases where we need to know if a task we
scheduled is still pending (to avoid double scheduling) or where we need to cancel
a previously scheduled task.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/CancellableTask.h: Added.

(WTF::CancellableTask::CancellableTask):
(WTF::CancellableTask::operator()):
(WTF::CancellableTask::isPending const):
(WTF::CancellableTask::cancel):
(WTF::CancellableTask::Handle::Handle):
(WTF::CancellableTask::Handle::isPending const):
(WTF::CancellableTask::Handle::cancel):
(WTF::CancellableTask::createHandle):

9:11 PM Changeset in webkit [278542] by Wenson Hsieh
  • 29 edits in trunk/Source

Turn TextIteratorBehaviorFlag into an enum class and wrap it in OptionSet
https://bugs.webkit.org/show_bug.cgi?id=226691

Reviewed by Darin Adler.

Source/WebCore:

Modernize some editing code by turning TextIteratorBehaviorFlag into an enum class, TextIteratorBehavior,
with an explicit width of 16 bits. Additionally, since this is a bitmask, refactor various codepaths to use
OptionSet<TextIteratorBehavior> instead of the underlying type.

This gives us improved type safety when using this enum, and also narrows the width of this enum to 16 bits
(from 32). No change in behavior.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::traverseToOffsetInRange):
(WebCore::AXObjectCache::rangeMatchesTextNearRange):
(WebCore::AXObjectCache::nextBoundary):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::textIteratorBehaviorForTextRange const):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/atk/WebKitAccessibleHyperlink.cpp:

(rangeLengthForObject):

  • accessibility/atk/WebKitAccessibleInterfaceText.cpp:

(getSelectionOffsetsForObject):

  • accessibility/atk/WebKitAccessibleUtil.cpp:

(objectFocusedAndCaretOffsetUnignored):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::textIteratorBehaviorForTextRange const):

Fix this method to return the empty (default) option set instead of false (which was previously implicitly
converted to TextIteratorDefaultBehavior).

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::applyBlockStyle):

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::moveParagraphs):

  • editing/Editing.cpp:

(WebCore::indexForVisiblePosition):
(WebCore::visiblePositionForIndex):

  • editing/Editor.cpp:

(WebCore::Editor::selectedText const):
(WebCore::Editor::selectedTextForDataTransfer const):

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

(WebCore::ReplacementFragment::ReplacementFragment):

  • editing/TextIterator.cpp:

(WebCore::isClippedByFrameAncestor):
(WebCore::TextIterator::TextIterator):
(WebCore::TextIterator::init):
(WebCore::firstChild):
(WebCore::nextSibling):
(WebCore::nextNode):
(WebCore::isDescendantOf):
(WebCore::parentNodeOrShadowHost):
(WebCore::TextIterator::advance):
(WebCore::TextIterator::handleTextNode):
(WebCore::TextIterator::handleTextRun):
(WebCore::TextIterator::handleTextNodeFirstLetter):
(WebCore::TextIterator::handleReplacedElement):
(WebCore::TextIterator::shouldRepresentNodeOffsetZero):
(WebCore::TextIterator::shouldEmitSpaceBeforeAndAfterNode):
(WebCore::TextIterator::handleNonTextNode):
(WebCore::TextIterator::exitNode):
(WebCore::TextIterator::emitText):
(WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode):
(WebCore::SimplifiedBackwardsTextIterator::exitNode):
(WebCore::CharacterIterator::CharacterIterator):
(WebCore::characterCount):
(WebCore::resolveCharacterRange):
(WebCore::hasAnyPlainText):
(WebCore::plainText):
(WebCore::plainTextReplacingNoBreakSpace):
(WebCore::findIteratorOptions):

  • editing/TextIterator.h:

(WebCore::characterCount):
(WebCore::characterRange):
(WebCore::resolveCharacterLocation):
(WebCore::resolveCharacterRange):
(WebCore::plainText):
(WebCore::hasAnyPlainText):
(WebCore::plainTextReplacingNoBreakSpace):
(WebCore::TextIterator::TextIterator):
(WebCore::CharacterIterator::CharacterIterator):

  • editing/TextIteratorBehavior.h:

Add an alias for OptionSet<TextIteratorBehavior>, TextIteratorBehaviors, to help with readability when
specifying or consulting these flags. Additionally remove the TextIteratorDefaultBehavior enum value
altogether, since we can now just use the default constructor (OptionSet<TextIteratorBehavior> { }) to get a
set of empty options.

  • editing/TextManipulationController.cpp:

(WebCore::ParagraphContentIterator::ParagraphContentIterator):

  • editing/VisibleSelection.cpp:

(WebCore::VisibleSelection::appendTrailingWhitespace):

  • editing/VisibleUnits.cpp:

(WebCore::nextBoundary):

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::renderedTextRespectingRange):

  • page/EventHandler.cpp:

(WebCore::textDistance):

Source/WebKit:

See WebCore/ChangeLog for more information.

  • WebProcess/WebPage/ViewGestureGeometryCollector.cpp:

(WebKit::ViewGestureGeometryCollector::computeTextLegibilityScales):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::plainTextForDisplay):
(WebKit::rangeNearPositionMatchesText):

Source/WebKitLegacy/mac:

See WebCore/ChangeLog for more information.

  • WebView/WebFrame.mm:

(-[WebFrame _stringForRange:]):

8:53 PM Changeset in webkit [278541] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Flaky assertion hit in AudioSessionRoutingArbitratorProxy::endRoutingArbitration()
https://bugs.webkit.org/show_bug.cgi?id=226699

Reviewed by Darin Adler.

If m_setupArbitrationOngoing is true, then beginRoutingArbitrationForToken() only adds the token to
m_tokens once the setup is done, asynchronously. As a result, if endRoutingArbitrationForToken() during
setup, the isInRoutingArbitrationForToken(token) assertion will hit, because the token wasn't added
to m_tokens yet. Tweak the assertion so that it doesn't hit when m_setupArbitrationOngoing is true.

This is a speculative fix as I wasn't able to reproduce the assertion hit locally.

  • platform/audio/mac/SharedRoutingArbitrator.mm:

(WebCore::SharedRoutingArbitrator::endRoutingArbitrationForToken):

7:39 PM Changeset in webkit [278540] by Darin Adler
  • 66 edits in trunk

Handle custom identifiers and strings separately, so we can quote strings correctly consistently
https://bugs.webkit.org/show_bug.cgi?id=226694

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-animations/parsing/animation-name-valid-expected.txt:
  • web-platform-tests/css/css-counter-styles/counter-style-negative-syntax-expected.txt:
  • web-platform-tests/css/css-counter-styles/counter-style-pad-syntax-expected.txt:
  • web-platform-tests/css/css-counter-styles/counter-style-prefix-suffix-syntax-expected.txt:
  • web-platform-tests/css/css-counter-styles/counter-style-symbols-syntax-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-area-computed-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-area-shorthand-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-area-valid-expected.txt:
  • web-platform-tests/css/css-lists/parsing/content-invalid-expected.txt:
  • web-platform-tests/css/css-transitions/transition-property-002-expected.txt:
  • web-platform-tests/css/cssom/getComputedStyle-pseudo-expected.txt:
  • web-platform-tests/css/cssom/serialize-values-expected.txt:

Rebased to reflect progressions. In some cases the entire test passes, in other cases we still
have failures, but the string serialization part of the test has progressed.

Source/WebCore:

Progressions in a number of WPT tests.

  • animation/CSSAnimation.cpp:

(WebCore::CSSAnimation::CSSAnimation): Update since Animation::name() now
returns a struct.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::computeCSSAnimationBlendingKeyframes): Ditto.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::OrderedNamedLinesCollector::appendLines const): Use
createCustomIdent for line names.
(WebCore::valueForGridPosition): Use createCustomIdent for grid line name.
(WebCore::createTransitionPropertyValue): Use createCustomIdent for
animation property names.
(WebCore::counterToCSSValue): Use createCustomIdent for counter names.
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle): Use
createCustomIdent for list-style-type, locale, animation names if they
were created from a custom-ident, and line-grid.

  • css/CSSCustomIdentValue.cpp: Emptied out this file; we can delete it soon.
  • css/CSSCustomIdentValue.h: Ditto.
  • css/CSSMarkup.cpp:

(WebCore::serializeCharacterAsCodePoint): Optimized to do a single
StringBuilder::append call.
(WebCore::serializeAsStringOrCustomIdent): Deleted.

  • css/CSSMarkup.h: Removed serializeAsStringOrCustomIdent.
  • css/CSSPrimitiveValue.cpp:

(WebCore::isValidCSSUnitTypeForDoubleConversion): Added a case for
CustomIdent. Changed CSS_IDENT to assert not reached, since it should
never be passed to this function. More cleanup of CSSUnitType is needed,
but for now mostly leaving it alone.
(WebCore::isStringType): Added a case for CustomIdent. Moved CSS_DIMENSION,
which was incorrectly returning true, to return false. Pretty sure there's
no way to create one of these with CSS_DIMENSION, but this is less peculiar.
(WebCore::CSSPrimitiveValue::primitiveType const): Added transformation
from CustomIdent to CSS_IDENT as we do with CSS_PROPERTY_ID and CSS_VALUE_ID.
(WebCore::CSSPrimitiveValue::cleanup): Added a case for CustomIdent.
Moved CSS_DIMENSION to the correct section. Pretty sure there's no way to
create one of these with CSS_DIMENSION, but this is less peculiar.
(WebCore::CSSPrimitiveValue::setFloatValue): Deleted.
(WebCore::CSSPrimitiveValue::setStringValue): Deleted.
(WebCore::CSSPrimitiveValue::getStringValue const): Deleted.
(WebCore::CSSPrimitiveValue::stringValue const): Added a case for CustomIdent.
(WebCore::CSSPrimitiveValue::unitTypeString): Added a case for CustomIdent
and an ASSERT_NOT_REACHED for invalid enumeration values.
(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText const):
Removed inaccurate FIXME comment for CSS_DIMENSION and changed it to do
something less wrong, but still incorrect. Pretty sure there's no way to
create one of these with CSS_DIMENSION, but this is less peculiar. Changed
CSS_STRING case to always serializeAsString. Added a CustomIdent case
that always serializes as an identifier.
(WebCore::CSSPrimitiveValue::equals const): Moved the CSS_DIMENSION to
the correct part of this switch statement. Pretty sure there's no way to
create one of these with CSS_DIMENSION, but this is less peculiar.
Added case for CustomIdent.

  • css/CSSPrimitiveValue.h: Made isFontRelativeLength, isResolution,

and isViewportPercentageLength private. Made those plus isLength all
constexpr. Removed WEBCORE_EXPORT from primitiveType and getFloatValue:
those needed to be exported when this was the web-exposed class, but
that is now DeprecatedCSSOMPrimitiveValue. Deleted setFloatValue,
setStringValue, and getStringValue for the same reason: those functions
are now in DeprecatedCSSOMPrimitiveValue and don't need to be here.

  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapAnimationName): Updated to pass a boolean
in to the animation name to keep track of whether it was created with
a string or a custom-ident so we it can properly round-trip in computed
style. This is required to pass some of the WPT tests, although I could
not find clear guidance in the specification that this behavior is required.
The same name with a string and custom-ident are equivalent in other ways.

  • css/CSSUnits.cpp:

(WebCore::operator<<): Added a case for CustomIdent.

  • css/CSSUnits.h: Added CustomIdent. Added some FIXME about how we can

change this in the future. It's a remnant of the past when these were part
of our web-facing API, and this can be greatly cleaned up.

  • css/CSSValue.cpp:

(WebCore::CSSValue::cssText const): Removed CSSCustomIdentValue.h,
CustomIdentClass, CSSCustomIdentValue. We are not going to use a separate
class for custom-ident, just a separate type of primitive value.
(WebCore::CSSValue::destroy): Ditto.

  • css/CSSValue.h: Deleted isCustomIdentValue and CustomIdentClass.
  • css/CSSValueList.cpp:

(WebCore::CSSValueList::customCSSText const): Tweaked algorithm
to be slightly more efficient.

  • css/CSSValuePool.h: Added createCustomIdent. Later should remove

the create function that takes a string value and a type and use
separate named functions for the few different cases, but doing the
new one this way for now.

  • css/DeprecatedCSSOMPrimitiveValue.cpp:

(WebCore::DeprecatedCSSOMPrimitiveValue::primitiveType const):
Rewrote this to be a switch that preserves the current behavior
but no longer relies on the numeric values of CSSUnitType values.
Added a FIXME about using CSS_UNKNOWN more: some of the numbers
we are exposing to the web are doing no good.
(WebCore::DeprecatedCSSOMPrimitiveValue::setFloatValue): Moved this
function to the header.
(WebCore::DeprecatedCSSOMPrimitiveValue::getFloatValue const):
Rewrote this to be a switch as above. Preserves current behavior
but stops relying on CSSUnitType numeric values.
(WebCore::DeprecatedCSSOMPrimitiveValue::setStringValue): Moved this
function to the header.
(WebCore::DeprecatedCSSOMPrimitiveValue::getStringValue const):
Ditto. By putting a switch on primitiveType here, we can enforce
the desired exception behavior here, instead of getting it from
CSSPrimitiveValue, and it's better for this class to deal with
the legacy bindings issues.
(WebCore::DeprecatedCSSOMPrimitiveValue::getCounterValue const): Ditto.
(WebCore::DeprecatedCSSOMPrimitiveValue::getRectValue const): Ditto.
(WebCore::DeprecatedCSSOMPrimitiveValue::getRGBColorValue const): Ditto.

  • css/DeprecatedCSSOMPrimitiveValue.h: Removed unneeded cssValueType

function. Made both setFloatValue and setStringValue simpler since
they always raise an exception and we do not intend to change that.
Also stop using protected since we have no classes derived from this.
Could do more cleanup, but this is a start.

  • css/DeprecatedCSSOMValue.cpp:

(WebCore::DeprecatedCSSOMValue::cssValueType const): Put the constant
values, CSS_PRIMITIVE_VALUE and CSS_VALUE_LIST, here rather than
calling member functions.

  • css/DeprecatedCSSOMValueList.cpp:

(WebCore::DeprecatedCSSOMValueList::cssText const): Tweaked to make
the code more efficient.

  • css/DeprecatedCSSOMValueList.h: Removed unneeded cssValueType

function and const overload of item function. Also stop using protected
since we have no classes derived from this.

  • css/MediaQueryExpression.cpp:

(WebCore::featureWithValidIdent): Fixed indentation to match WebKit style.
(WebCore::featureWithValidDensity): Ditto.
(WebCore::featureWithValidPositiveLength): Ditto.
(WebCore::featureExpectingPositiveInteger): Ditto.
(WebCore::featureWithPositiveNumber): Ditto.

  • css/calc/CSSCalcCategoryMapping.cpp:

(WebCore::hasDoubleValue): Added a case for CustomIdent.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeWillChange): Removed comment saying we should use
CSSCustomIdentValue since using a property ID for the value is great.
(WebCore::consumeAnimationName): Removed comment saying we should use
CSSCustomIdentValue here because that would be incorrect: we need to
preserve and round-trip the fact that this was string, not custom-ident.
(WebCore::consumeTransitionProperty): Remove special case for
CSSValueAll that wasn't doing anything. Removed comment saying we should
use CSSCustomIdentValue since using a value ID for the value is great.
(WebCore::consumeAttr): Updated comment.
(WebCore::isCustomIdentValue): Updated to work with the new primitive value.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeCustomIdent):
Use the new createCustomIdent and removed an outdated comment. While we
might some day want to implement custom-ident differently, we won't need
to change the code here to make that happen.

  • platform/animation/Animation.cpp:

(WebCore::Animation::animationsMatch const): Update since m_name now is a
struct.
(WebCore::Animation::initialName): Update to return Name instead of String.
(WebCore::operator<<): Update since name() now returns a struct.

  • platform/animation/Animation.h: Added the Name struct so we can store a

boolean to indicate whether it's a string or custom-ident for round tripping.
Update types and implementations of function and data members accordingly.

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::createGridPosition): Update code to expect
custom-ident instead of string; they used to both be the same thing.

  • style/Styleable.cpp:

(WebCore::shouldConsiderAnimation): Update since Animation::name() now
returns a struct. Also got rid of unsuccessful attempt to optimize comparison
againt the string "none"; later might be good to clean out that special case.
(WebCore::Styleable::updateCSSAnimations const): Ditto.

Tools:

  • TestRunnerShared/TestFeatures.cpp:

(WTR::parseTestHeader): Fixed a missing quote that made a log message read strangely.

LayoutTests:

  • TestExpectations: Removed expected failures from 13 css-counter-styles tests that are not

currently failing. I had planned to work on making more of these pass, but first found I could
fix them with a corrected custom-ident implementation.

  • css3/supports-expected.txt: Rebased.
  • css3/supports.html: Updated to expect the value of the content property to be a quoted string,

rather than the old behavior, which was to leave the string unquoted if it happened to be a
string with all characters legal for a custom-ident. New expectation is the correct behavior.

  • fast/css/alt-inherit-initial-expected.txt: Rebased.
  • fast/css/alt-inherit-initial.html: Updated to expect the value of the language property to be

a custom-ident, and serialize unusual cases with custom-ident rules, not as a quoted string. New
expectation is the correct behavior.

  • fast/css/content-language-comma-separated-list-expected.txt: Ditto.
  • fast/css/content-language-empty-expected.txt: Ditto.
  • fast/css/content-language-only-whitespace-expected.txt: Ditto.
  • fast/css/content-language-with-whitespace-expected.txt: Ditto.
  • fast/css/getComputedStyle/computed-style-properties-expected.txt: Rebased.
  • fast/css/getComputedStyle/computed-style-properties.html: Expect content string (see above).
  • fast/css/lang-mapped-to-webkit-locale-expected.txt: Rebased.
  • fast/css/lang-mapped-to-webkit-locale.xhtml: Expect language custom-ident (see above).
  • fast/css/nested-at-rules-expected.txt: Rebased.
  • fast/css/nested-at-rules.html: Expect content string (see above).
  • fast/css/parsing-text-emphasis-expected.txt: Rebased.
  • fast/css/parsing-text-emphasis.html: Updated to expect strings to remaing quoted strings in

the text-emphasis property, not change into custom-ident if all characters happen to fit.

  • fast/encoding/css-charset-default-expected.txt: Expect content string (see above).
  • inspector/css/pseudo-element-matches-for-pseudo-element-node-expected.txt: Ditto.
5:01 PM Changeset in webkit [278539] by Jean-Yves Avenard
  • 10 edits in trunk/Source

[GPUP][MSE] QuotaExceededError Exception not thrown even if the sum of totalTrackBufferSize and appendBuffer size exceeds maximumBufferSize
https://bugs.webkit.org/show_bug.cgi?id=226034
rdar://78579904

Reviewed by Eric Carlson.

Source/WebCore:

Existing media-source-append-buffer-full-quota-exceeded-error.html test will
be exercising this code once bug 225367 has been fixed.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::appendBufferInternal): fly-by fix, use size of pending
buffer rather than the capacity of the holding vector.

  • platform/graphics/SourceBufferPrivate.h: Make totalTrackBufferSizeInBytes method virtual.

Source/WebKit:

Cache the size of the remote source buffer's track size. We pass an extra
totalTrackBufferSizeInBytes argument to each method that could impact
a source buffer size.

  • GPUProcess/media/RemoteSourceBufferProxy.cpp:

(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateAppendComplete):
(WebKit::RemoteSourceBufferProxy::removeCodedFrames):
(WebKit::RemoteSourceBufferProxy::evictCodedFrames):

  • GPUProcess/media/RemoteSourceBufferProxy.h:
  • GPUProcess/media/RemoteSourceBufferProxy.messages.in:
  • WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:

(WebKit::SourceBufferPrivateRemote::abort): Add comment explaining on why
getting an up to date totalTrackBufferSizeInBytes isn't necessary at this point.
(WebKit::SourceBufferPrivateRemote::removeCodedFrames):
(WebKit::SourceBufferPrivateRemote::evictCodedFrames):
(WebKit::SourceBufferPrivateRemote::clearTrackBuffers):
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateAppendComplete):
(WebKit::SourceBufferPrivateRemote::totalTrackBufferSizeInBytes const):

  • WebProcess/GPU/media/SourceBufferPrivateRemote.h:
  • WebProcess/GPU/media/SourceBufferPrivateRemote.messages.in:
12:13 PM Changeset in webkit [278538] by Chris Dumez
  • 22 edits in trunk/Source/WebCore

Reduce use of legacy EventLoopEventQueue and EventLoopTaskQueue
https://bugs.webkit.org/show_bug.cgi?id=226692

Reviewed by Darin Adler.

Reduce use of legacy EventLoopEventQueue and EventLoopTaskQueue, and use the HTML event
loop directly instead. Those are very simple cases, they really don't need any of the
features the queue was providing (such as cancelling events).

To get rid of the remaining usage of EventLoopEventQueue / EventLoopTaskQueue, I believe
we'll need a way to cancel tasks scheduled in the HTML event loop.

  • Modules/mediasession/MediaSessionCoordinator.cpp:

(WebCore::MediaSessionCoordinator::MediaSessionCoordinator):
(WebCore::MediaSessionCoordinator::coordinatorStateChanged):

  • Modules/mediasession/MediaSessionCoordinator.h:
  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::MediaSource):
(WebCore::MediaSource::virtualHasPendingActivity const):
(WebCore::MediaSource::scheduleEvent):

  • Modules/mediasource/MediaSource.h:
  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::SourceBuffer):
(WebCore::SourceBuffer::virtualHasPendingActivity const):
(WebCore::SourceBuffer::scheduleEvent):

  • Modules/mediasource/SourceBuffer.h:
  • Modules/mediasource/SourceBufferList.cpp:

(WebCore::SourceBufferList::SourceBufferList):
(WebCore::SourceBufferList::scheduleEvent):

  • Modules/mediasource/SourceBufferList.h:
  • Modules/remoteplayback/RemotePlayback.cpp:

(WebCore::RemotePlayback::RemotePlayback):
(WebCore::RemotePlayback::watchAvailability):
(WebCore::RemotePlayback::cancelWatchAvailability):
(WebCore::RemotePlayback::prompt):
(WebCore::RemotePlayback::setState):
(WebCore::RemotePlayback::disconnect):
(WebCore::RemotePlayback::availabilityChanged):
(WebCore::RemotePlayback::stop): Deleted.

  • Modules/remoteplayback/RemotePlayback.h:
  • animation/DocumentTimelinesController.cpp:

(WebCore::DocumentTimelinesController::DocumentTimelinesController):
(WebCore::DocumentTimelinesController::detachFromDocument):
(WebCore::DocumentTimelinesController::cacheCurrentTime):
(WebCore::DocumentTimelinesController::maybeClearCachedCurrentTime):

  • animation/DocumentTimelinesController.h:
  • dom/FullscreenManager.cpp:

(WebCore::FullscreenManager::FullscreenManager):
(WebCore::FullscreenManager::requestFullscreenForElement):
(WebCore::FullscreenManager::exitFullscreen):
(): Deleted.

  • dom/FullscreenManager.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::removedFromAncestor):
(WebCore::HTMLMediaElement::scheduleResolvePendingPlayPromises):
(WebCore::HTMLMediaElement::scheduleRejectPendingPlayPromises):
(WebCore::HTMLMediaElement::scheduleNotifyAboutPlaying):
(WebCore::HTMLMediaElement::setMediaKeys):
(WebCore::HTMLMediaElement::closeTaskQueues):
(WebCore::HTMLMediaElement::virtualHasPendingActivity const):
(WebCore::HTMLMediaElement::setIsPlayingToWirelessTarget):
(WebCore::HTMLMediaElement::enterFullscreen):
(WebCore::HTMLMediaElement::isVisibleInViewportChanged):

  • html/HTMLMediaElement.h:
  • html/shadow/MediaControlTextTrackContainerElement.cpp:

(WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement):
(WebCore::MediaControlTextTrackContainerElement::updateSizes):

  • html/shadow/MediaControlTextTrackContainerElement.h:
  • html/track/TrackListBase.cpp:

(WebCore::TrackListBase::TrackListBase):
(WebCore::TrackListBase::scheduleChangeEvent):
(WebCore::TrackListBase::isChangeEventScheduled const):
(WebCore::TrackListBase::virtualHasPendingActivity const): Deleted.

  • html/track/TrackListBase.h:
  • platform/network/curl/CurlMultipartHandle.cpp:

(WebCore::CurlMultipartHandle::processContent):
(WebCore::CurlMultipartHandle::matchedLength):

  • platform/network/curl/CurlMultipartHandle.h:
  • testing/MockMediaSessionCoordinator.h:
8:15 AM Changeset in webkit [278537] by Alan Bujtas
  • 9 edits
    2 adds in trunk

[LFC][TFC] Adopt a less quirky fixed column width space distribution
https://bugs.webkit.org/show_bug.cgi?id=226696

Reviewed by Antti Koivisto.

Source/WebCore:

This patch adopts a less quirky space distribution model where any fixed cell width
makes the column fixed (as opposed to just when <col> has fixed with).
This distribution model matches both Chrome and Firefox.
It also enables us to simplify some of the distribution logic by using the same set of values (min vs max)
as the base for the distribution ratio.

Test: fast/layoutformattingcontext/table-fixed-width-variations-simple.html

  • layout/formattingContexts/table/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::computedPreferredWidthForColumns): Collect the fixed with values from the cells too now.

  • layout/formattingContexts/table/TableFormattingGeometry.cpp:

(WebCore::Layout::TableFormattingGeometry::intrinsicWidthConstraintsForCellContent const):
(WebCore::Layout::TableFormattingGeometry::intrinsicWidthConstraintsForCell const): Deleted.

  • layout/formattingContexts/table/TableFormattingGeometry.h:
  • layout/formattingContexts/table/TableGrid.cpp:

(WebCore::Layout::TableGrid::appendCell):
(WebCore::Layout::TableGrid::Column::isFixedWidth const): Deleted.
(WebCore::Layout::TableGrid::Columns::hasFixedColumnsOnly const): Deleted.
(WebCore::Layout::TableGrid::Cell::isFixedWidth const): Deleted.

  • layout/formattingContexts/table/TableGrid.h:

(WebCore::Layout::TableGrid::Column::setFixedWidth):
(WebCore::Layout::TableGrid::Column::fixedWidth const):
(WebCore::Layout::TableGrid::Columns::logicalWidth const):
(WebCore::Layout::TableGrid::Column::setHasFixedWidthCell): Deleted.
(WebCore::Layout::TableGrid::Column::hasFixedWidthCell const): Deleted.

  • layout/formattingContexts/table/TableLayout.cpp:

(WebCore::Layout::TableFormattingContext::TableLayout::distributedHorizontalSpace): Adjust the distribution values based on whether
the column has fixed width and use max/max in both fixed and non-fixed cases.

LayoutTests:

  • TestExpectations: We don't match current WebKit space distribution anymore.
  • fast/layoutformattingcontext/table-fixed-width-variations-simple-expected.html: Added.
  • fast/layoutformattingcontext/table-fixed-width-variations-simple.html: Added.
7:47 AM Changeset in webkit [278536] by ddkilzer@apple.com
  • 3 edits in trunk/Tools

Unexport llvm coverage symbols to fix build
<https://webkit.org/b/226684>
<rdar://problem/78906691>

Reviewed by Darin Adler.

  • Scripts/check-for-weak-vtables-and-externals:
  • Revert change from r278444. That fixes errors when this script is run, but the Generate TAPI build phase for some projects still fails due to the new weak external symbols.
  • coverage/coverage.xcconfig:

(UNEXPORTED_SYMBOL_LDFLAGS_FOR_COVERAGE): Add.

  • Linker flags to unexport llvm symbols added by the compiler for coverage.

(OTHER_LDFLAGS):

  • Add $(UNEXPORTED_SYMBOL_LDFLAGS_FOR_COVERAGE) to list of switches to unexport the symbols during linking.
7:44 AM Changeset in webkit [278535] by ddkilzer@apple.com
  • 9 edits
    2 adds in trunk/Source/WebKit

Weak external symbols found in WebKit.framework with Release+Coverage configuration
<https://webkit.org/b/226668>
<rdar://problem/78890081>

Reviewed by Darin Adler.

  • Configurations/WebKit.xcconfig:

(UNEXPORTED_SYMBOL_LDFLAGS):

  • Remove std::function<> symbols as those were replaced by WTF::Function<> a while ago.
  • Shared/Cocoa/DefaultWebBrowserChecks.mm:

(WebKit::determineITPStateInternal):
(WebKit::doesParentProcessHaveITPEnabled):

  • Switch to use TCCSoftLink.h.
  • Shared/Cocoa/TCCSoftLink.h: Add.
  • Shared/Cocoa/TCCSoftLink.mm: Add.
  • Implement a single place for soft-linking to TCC.framework.
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:

(WebKit::XPCServiceInitializerDelegate::getProcessIdentifier):

  • Change ProcessIdentifier to WebCore::ProcessIdentifier to fix the build since this source file no longer gets using namespace WebCore; from another source file after changes to SourcesCocoa.txt.
  • SourcesCocoa.txt:
  • Add DefaultWebBrowserChecks.mm since it no longer contains any SOFT_LINK macros.
  • Add new TCCSoftLink.mm file.
  • UIProcess/Cocoa/MediaPermissionUtilities.mm:

(WebKit::checkUsageDescriptionStringForType):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::isAXAuthenticated):

  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant defaultActionsForLinkSheet:]):
(-[WKActionSheetAssistant defaultActionsForImageSheet:]):

  • Switch to use TCCSoftLink.h.
  • WebKit.xcodeproj/project.pbxproj:
  • Add TCCSoftLink.{h,mm} to the project.
  • Remove DefaultWebBrowserChecks.mm from the WebKit.framework target after adding it to SourcesCocoa.txt.
7:41 AM Changeset in webkit [278534] by Antti Koivisto
  • 28 edits
    4 moves in trunk/Source/WebCore

Rename InlineElementBox to LegacyInlineElementBox
https://bugs.webkit.org/show_bug.cgi?id=226695

Reviewed by Sam Weinig.

Also EllipsisBox -> LegacyEllipsisBox.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/AXObjectCache.cpp:
  • dom/Position.cpp:
  • layout/integration/LayoutIntegrationRunIterator.h:
  • rendering/LegacyEllipsisBox.cpp: Renamed from Source/WebCore/rendering/EllipsisBox.cpp.

(WebCore::LegacyEllipsisBox::LegacyEllipsisBox):
(WebCore::LegacyEllipsisBox::paint):
(WebCore::LegacyEllipsisBox::markupBox const):
(WebCore::LegacyEllipsisBox::paintMarkupBox):
(WebCore::LegacyEllipsisBox::selectionRect):
(WebCore::LegacyEllipsisBox::paintSelection):
(WebCore::LegacyEllipsisBox::nodeAtPoint):

  • rendering/LegacyEllipsisBox.h: Renamed from Source/WebCore/rendering/EllipsisBox.h.
  • rendering/LegacyInlineElementBox.cpp: Renamed from Source/WebCore/rendering/InlineElementBox.cpp.

(WebCore::LegacyInlineElementBox::deleteLine):
(WebCore::LegacyInlineElementBox::extractLine):
(WebCore::LegacyInlineElementBox::attachLine):
(WebCore::LegacyInlineElementBox::paint):
(WebCore::LegacyInlineElementBox::nodeAtPoint):

  • rendering/LegacyInlineElementBox.h: Renamed from Source/WebCore/rendering/InlineElementBox.h.

(WebCore::LegacyInlineElementBox::LegacyInlineElementBox):

  • rendering/LegacyInlineFlowBox.cpp:

(WebCore::LegacyInlineFlowBox::nodeAtPoint):

  • rendering/LegacyInlineTextBox.cpp:

(WebCore::LegacyInlineTextBox::selectionState):

  • rendering/LegacyLineLayout.cpp:

(WebCore::LegacyLineLayout::computeBlockDirectionPositionsForLine):

  • rendering/LegacyRootInlineBox.cpp:

(WebCore::LegacyRootInlineBox::placeEllipsis):
(WebCore::LegacyRootInlineBox::ellipsisBox const):

  • rendering/LegacyRootInlineBox.h:
  • rendering/RenderBlock.cpp:
  • rendering/RenderBlock.h:
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::createInlineBox):
(WebCore::RenderBox::positionLineBox):

  • rendering/RenderBox.h:

(WebCore::RenderBox::inlineBoxWrapper const):
(WebCore::RenderBox::setInlineBoxWrapper):

  • rendering/RenderFragmentedFlow.cpp:

(WebCore::RenderFragmentedFlow::computedFragmentRangeForBox const):

  • rendering/RenderImage.cpp:
  • rendering/RenderInline.cpp:
  • rendering/RenderLineBoxList.cpp:
  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::createInlineBox):
(WebCore::RenderLineBreak::setInlineBoxWrapper):
(WebCore::RenderLineBreak::replaceInlineBoxWrapper):

  • rendering/RenderLineBreak.h:
  • rendering/RenderListItem.cpp:
  • rendering/RenderListMarker.cpp:

(WebCore::RenderListMarker::createInlineBox):

  • rendering/RenderListMarker.h:
  • rendering/RenderReplaced.cpp:
  • rendering/RenderText.cpp:
  • rendering/RenderTextLineBoxes.cpp:

Jun 5, 2021:

10:27 PM Changeset in webkit [278533] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Fix repeated call to String::utf8() in SQLiteFileSystem::computeHashForFileName()
https://bugs.webkit.org/show_bug.cgi?id=226693

Reviewed by Darin Adler.

  • platform/sql/SQLiteFileSystem.cpp:

(WebCore::SQLiteFileSystem::computeHashForFileName):

10:25 PM Changeset in webkit [278532] by Chris Dumez
  • 104 edits in trunk

Use const uint8_t* type more consistently to store bytes in WebKit
https://bugs.webkit.org/show_bug.cgi?id=226688

Reviewed by Darin Adler.

Source/WebCore:

  • Modules/cache/DOMCache.cpp:

(WebCore::DOMCache::addAll):
(WebCore::DOMCache::put):

  • Modules/fetch/FetchBodyConsumer.cpp:

(WebCore::FetchBodyConsumer::resolve):
(WebCore::FetchBodyConsumer::append):

  • Modules/fetch/FetchBodyConsumer.h:
  • Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp:

(WebCore::LibWebRTCDataChannelHandler::OnMessage):

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::send):
(WebCore::WebSocketChannel::didReceiveSocketStreamData):
(WebCore::WebSocketChannel::appendToBuffer):
(WebCore::WebSocketChannel::startClosingHandshake):
(WebCore::WebSocketChannel::processFrame):
(WebCore::WebSocketChannel::enqueueRawFrame):
(WebCore::WebSocketChannel::processOutgoingFrameQueue):
(WebCore::WebSocketChannel::sendFrame):

  • Modules/websockets/WebSocketChannel.h:
  • Modules/websockets/WebSocketDeflater.cpp:

(WebCore::setStreamParameter):
(WebCore::WebSocketDeflater::addBytes):
(WebCore::WebSocketInflater::addBytes):
(WebCore::WebSocketInflater::finish):

  • Modules/websockets/WebSocketDeflater.h:

(WebCore::WebSocketDeflater::data):
(WebCore::WebSocketInflater::data):

  • Modules/websockets/WebSocketFrame.cpp:

(WebCore::WebSocketFrame::parseFrame):
(WebCore::appendFramePayload):
(WebCore::WebSocketFrame::makeFrameData):
(WebCore::WebSocketFrame::WebSocketFrame):

  • Modules/websockets/WebSocketFrame.h:
  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::trimInputSample):
(WebCore::WebSocketHandshake::readServerHandshake):
(WebCore::WebSocketHandshake::readStatusLine):
(WebCore::WebSocketHandshake::readHTTPHeaders):

  • Modules/websockets/WebSocketHandshake.h:
  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::Bridge::send):

  • contentextensions/SerializedNFA.cpp:

(WebCore::ContentExtensions::writeAllToFile):

  • crypto/SubtleCrypto.cpp:

(WebCore::SubtleCrypto::unwrapKey):

  • crypto/mac/SerializedCryptoKeyWrapMac.mm:

(WebCore::findMasterKey):

  • dom/DecodedDataDocumentParser.cpp:

(WebCore::DecodedDataDocumentParser::appendBytes):

  • dom/DecodedDataDocumentParser.h:
  • dom/DocumentParser.h:
  • dom/RawDataDocumentParser.h:
  • html/ImageDocument.cpp:

(WebCore::ImageDocumentParser::appendBytes):

  • html/MediaDocument.cpp:

(WebCore::MediaDocumentParser::appendBytes):

  • html/PluginDocument.cpp:

(WebCore::PluginDocumentParser::appendBytes):

  • html/track/InbandTextTrack.h:
  • html/track/InbandWebVTTTextTrack.cpp:

(WebCore::InbandWebVTTTextTrack::parseWebVTTCueData):

  • html/track/InbandWebVTTTextTrack.h:
  • html/track/WebVTTParser.cpp:

(WebCore::WebVTTParser::parseBytes):
(WebCore::WebVTTParser::fileFinished):

  • html/track/WebVTTParser.h:
  • loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::addData):

  • loader/DocumentWriter.h:
  • loader/SinkDocument.cpp:
  • loader/TextTrackLoader.cpp:

(WebCore::TextTrackLoader::processNewCueData):

  • platform/graphics/InbandTextTrackPrivateClient.h:
  • platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:

(WebCore::InbandTextTrackPrivateGStreamer::notifyTrackOfSample):

  • platform/network/HTTPParsers.cpp:

(WebCore::trimInputSample):
(WebCore::isValidHeaderNameCharacter):
(WebCore::parseHTTPHeader):
(WebCore::parseHTTPRequestBody):

  • platform/network/HTTPParsers.h:
  • platform/network/SocketStreamHandle.cpp:

(WebCore::SocketStreamHandle::sendData):

  • platform/network/SocketStreamHandle.h:
  • platform/network/SocketStreamHandleClient.h:
  • platform/network/cf/SocketStreamHandleImplCFNet.cpp:

(WebCore::SocketStreamHandleImpl::readStreamCallback):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::dataChanged):

Source/WebKit:

  • GPUProcess/media/RemoteTextTrackProxy.cpp:

(WebKit::RemoteTextTrackProxy::parseWebVTTCueData):

  • GPUProcess/media/RemoteTextTrackProxy.h:
  • WebProcess/GPU/media/TextTrackPrivateRemote.cpp:

(WebKit::TextTrackPrivateRemote::parseWebVTTCueData):

8:21 PM Changeset in webkit [278531] by Wenson Hsieh
  • 3 edits in trunk/Source/WebKit

[macOS] Dictionary lookup highlights in image overlays should include background content
https://bugs.webkit.org/show_bug.cgi?id=226686

Reviewed by Tim Horton.

Make a few minor adjustments to text indicator options on macOS when triggering Look Up.

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::dictionaryPopupInfoForRange):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::performImmediateActionHitTestAtLocation):

Add both PaintAllContent and PaintBackgrounds options when creating text indicators, in the case where the
indicated range is inside an image overlay.

6:18 PM Changeset in webkit [278530] by Wenson Hsieh
  • 21 edits
    2 adds in trunk/Source

[macOS] Move DataDetectors softlinking in DataDetectorsSPI.h out into a separate PAL header
https://bugs.webkit.org/show_bug.cgi?id=226669

Reviewed by Sam Weinig.

Source/WebCore:

Clean up some softlinking code for the DataDetectors framework. Currently, the SOFT_LINK_* macros are defined
inside the SPI header (pal/spi/mac/DataDetectorsSPI.h); this patch moves them out into
pal/mac/DataDetectorsSoftLink.{h|mm} instead, and updates a few places that use these soft-linked symbols to
import DataDetectorsSoftLink.h instead of DataDetectorsSPI.h.

  • editing/cocoa/DataDetection.mm:

(WebCore::detectItem):
(WebCore::DataDetection::detectItemAroundHitTestResult):

  • page/mac/ImageOverlayControllerMac.mm:

(WebCore::ImageOverlayController::updateDataDetectorHighlights):
(WebCore::ImageOverlayController::platformHandleMouseEvent):

  • page/mac/ServicesOverlayController.mm:

(WebCore::ServicesOverlayController::mouseIsOverHighlight const):
(WebCore::ServicesOverlayController::buildPhoneNumberHighlights):
(WebCore::ServicesOverlayController::buildSelectionHighlight):

  • platform/mac/DataDetectorHighlight.mm:

(WebCore::DataDetectorHighlight::setHighlight):
(WebCore::DataDetectorHighlight::paintContents):

Source/WebCore/PAL:

Add the new softlinking headers. See WebCore/ChangeLog for more details.

  • PAL.xcodeproj/project.pbxproj:
  • pal/PlatformMac.cmake:
  • pal/cocoa/DataDetectorsCoreSoftLink.h:
  • pal/cocoa/DataDetectorsCoreSoftLink.mm:

Move the DDBinderPhoneNumberKey soft link into DataDetectorsCoreSoftLink instead, since this symbol comes
from DataDetectorsCore rather than the DataDetectors framework.

  • pal/mac/DataDetectorsSoftLink.h: Added.
  • pal/mac/DataDetectorsSoftLink.mm: Added.
  • pal/mac/QuickLookUISoftLink.h:
  • pal/spi/mac/DataDetectorsSPI.h:

Source/WebKit:

Adopt the new PAL softlinking header in a few places. See WebCore/ChangeLog for more details. Additionally, move
several softlinking header imports so that they're the last imported headers in a few sources.

  • Platform/mac/MenuUtilities.mm:

(WebKit::actionForMenuItem):
(WebKit::menuItemForTelephoneNumber):

  • Shared/Cocoa/DataDetectionResult.mm:

(WebKit::DataDetectionResult::decode):

  • Shared/ios/InteractionInformationAtPosition.mm:

(WebKit::InteractionInformationAtPosition::decode):

  • Shared/mac/WebHitTestResultData.mm:

(WebKit::WebHitTestResultData::platformDecode):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::dismissContentRelativeChildWindowsFromViewOnly):

  • UIProcess/mac/WKImmediateActionController.mm:

(-[WKImmediateActionController _clearImmediateActionState]):
(-[WKImmediateActionController immediateActionRecognizerWillBeginAnimation:]):
(-[WKImmediateActionController _animationControllerForDataDetectedText]):
(-[WKImmediateActionController _animationControllerForDataDetectedLink]):

Source/WebKitLegacy/mac:

Adopt the new PAL softlinking header in a few places. See WebCore/ChangeLog for more details.

  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController _clearImmediateActionState]):
(-[WebImmediateActionController immediateActionRecognizerWillBeginAnimation:]):
(-[WebImmediateActionController _animationControllerForDataDetectedText]):
(-[WebImmediateActionController _animationControllerForDataDetectedLink]):

5:30 PM Changeset in webkit [278529] by Alan Coon
  • 5 edits in branches/safari-611-branch/Source/WebKit

Revert r277536. rdar://problem/78875336

Reverting for build failure.

4:22 PM Changeset in webkit [278528] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

[WebXR] Supply an IOSurface in SimulatedXRDevice
https://bugs.webkit.org/show_bug.cgi?id=226564
<rdar://problem/78793086>

Reviewed by Sam Weinig.

Rather than handle the case where we get a null IOSurface,
have the SimulatedXRDevice create one on each frame.

  • Modules/webxr/WebXROpaqueFramebuffer.cpp:

(WebCore::WebXROpaqueFramebuffer::startFrame):

  • testing/WebFakeXRDevice.cpp:

(WebCore::SimulatedXRDevice::frameTimerFired):

3:54 PM Changeset in webkit [278527] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Remove some duplicated code related to scrollbars
https://bugs.webkit.org/show_bug.cgi?id=226685

Reviewed by Alan Bujtas.

RenderLayerScrollableArea and RenderBox had some very similar code related to
computing whether scrollbars are present, so remove the duplication, and prepare
for ScrollbarOrientation to become an enum class.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::hasAutoScrollbar const):
(WebCore::RenderBox::hasAlwaysPresentScrollbar const):
(WebCore::RenderBox::hasVerticalScrollbarWithAutoBehavior const): Deleted.
(WebCore::RenderBox::hasHorizontalScrollbarWithAutoBehavior const): Deleted.

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

(WebCore::RenderLayerScrollableArea::updateScrollbarsAfterLayout):
(WebCore::RenderLayerScrollableArea::updateScrollbarsAfterStyleChange):
(WebCore::styleRequiresScrollbar): Deleted.
(WebCore::styleDefinesAutomaticScrollbar): Deleted.

2:18 PM Changeset in webkit [278526] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

[WebXR] WebXR on Cocoa doesn't work with webgl 1 contexts
https://bugs.webkit.org/show_bug.cgi?id=226675

Reviewed by Sam Weinig.

Support WebGL 1 contexts by attaching the correct combined depth+stencil
target.

While here, rename some variables to be a bit more clear about what
they do.

  • Modules/webxr/WebXROpaqueFramebuffer.cpp:

(WebCore::WebXROpaqueFramebuffer::~WebXROpaqueFramebuffer): Make sure we delete
the texture if we created one.
(WebCore::WebXROpaqueFramebuffer::startFrame): Use the correct attachment point
if we're a WebGL 1 context.
(WebCore::WebXROpaqueFramebuffer::setupFramebuffer):

7:09 AM BuildingGtk edited by Philippe Normand
(diff)
5:19 AM Changeset in webkit [278525] by Antti Koivisto
  • 47 edits
    2 moves in trunk/Source/WebCore

Rename InlineTextBox to LegacyInlineTextBox
https://bugs.webkit.org/show_bug.cgi?id=226633

Rubber-stamped by Sam Weinig.

More legacy line layout naming.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/ContainerNode.cpp:
  • dom/DocumentMarkerController.cpp:

(WebCore::DocumentMarkerController::addMarker):

  • dom/Position.cpp:
  • editing/CompositeEditCommand.cpp:
  • editing/Editor.h:
  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::debugRenderer const):

  • editing/RenderedPosition.cpp:
  • editing/TextIterator.cpp:
  • editing/VisiblePosition.cpp:
  • layout/Verification.cpp:

(WebCore::Layout::checkForMatchingTextRuns):
(WebCore::Layout::outputMismatchingComplexLineInformationIfNeeded):

  • layout/formattingContexts/inline/text/TextUtil.h:
  • layout/integration/LayoutIntegrationRunIterator.cpp:

(WebCore::LayoutIntegration::firstTextRunInTextOrderFor):

  • layout/integration/LayoutIntegrationRunIterator.h:

(WebCore::LayoutIntegration::PathTextRun::legacyInlineBox const):

  • layout/integration/LayoutIntegrationRunIteratorLegacyPath.h:

(WebCore::LayoutIntegration::RunIteratorLegacyPath::traverseNextTextRunInTextOrder):
(WebCore::LayoutIntegration::RunIteratorLegacyPath::inlineTextBox const):

  • layout/layouttree/LayoutBox.h:

(WebCore::Layout::Box::isInlineTextBox const):

  • layout/layouttree/LayoutInlineTextBox.cpp:

(WebCore::Layout::InlineTextBox::InlineTextBox):

  • rendering/CaretRectComputation.cpp:

(WebCore::computeCaretRectForSVGInlineText):

  • rendering/EllipsisBox.cpp:
  • rendering/LegacyInlineBox.h:
  • rendering/LegacyInlineFlowBox.cpp:

(WebCore::LegacyInlineFlowBox::addToLine):
(WebCore::LegacyInlineFlowBox::placeBoxRangeInInlineDirection):
(WebCore::LegacyInlineFlowBox::requiresIdeographicBaseline const):
(WebCore::LegacyInlineFlowBox::placeBoxesInBlockDirection):
(WebCore::LegacyInlineFlowBox::addTextBoxVisualOverflow):
(WebCore::LegacyInlineFlowBox::computeOverflow):
(WebCore::LegacyInlineFlowBox::computeOverAnnotationAdjustment const):
(WebCore::LegacyInlineFlowBox::computeUnderAnnotationAdjustment const):

  • rendering/LegacyInlineFlowBox.h:
  • rendering/LegacyInlineTextBox.cpp: Renamed from Source/WebCore/rendering/InlineTextBox.cpp.

(WebCore::LegacyInlineTextBox::~LegacyInlineTextBox):
(WebCore::LegacyInlineTextBox::hasTextContent const):
(WebCore::LegacyInlineTextBox::markDirty):
(WebCore::LegacyInlineTextBox::logicalOverflowRect const):
(WebCore::LegacyInlineTextBox::setLogicalOverflowRect):
(WebCore::LegacyInlineTextBox::baselinePosition const):
(WebCore::LegacyInlineTextBox::lineHeight const):
(WebCore::LegacyInlineTextBox::selectionTop const):
(WebCore::LegacyInlineTextBox::selectionBottom const):
(WebCore::LegacyInlineTextBox::selectionHeight const):
(WebCore::LegacyInlineTextBox::isSelected const):
(WebCore::LegacyInlineTextBox::selectionState):
(WebCore::LegacyInlineTextBox::verifySelectionState const):
(WebCore::LegacyInlineTextBox::lineFont const):
(WebCore::snappedSelectionRect):
(WebCore::LegacyInlineTextBox::localSelectionRect const):
(WebCore::LegacyInlineTextBox::deleteLine):
(WebCore::LegacyInlineTextBox::extractLine):
(WebCore::LegacyInlineTextBox::attachLine):
(WebCore::LegacyInlineTextBox::placeEllipsisBox):
(WebCore::LegacyInlineTextBox::isLineBreak const):
(WebCore::LegacyInlineTextBox::nodeAtPoint):
(WebCore::LegacyInlineTextBox::emphasisMarkExistsAndIsAbove const):
(WebCore::createMarkedTextFromSelectionInBox):
(WebCore::LegacyInlineTextBox::paint):
(WebCore::LegacyInlineTextBox::clampedOffset const):
(WebCore::LegacyInlineTextBox::clampedStartEndForState const):
(WebCore::LegacyInlineTextBox::selectionStartEnd const):
(WebCore::LegacyInlineTextBox::highlightStartEnd const):
(WebCore::LegacyInlineTextBox::hasMarkers const):
(WebCore::LegacyInlineTextBox::paintPlatformDocumentMarkers):
(WebCore::LegacyInlineTextBox::calculateUnionOfAllDocumentMarkerBounds const):
(WebCore::LegacyInlineTextBox::calculateDocumentMarkerBounds const):
(WebCore::LegacyInlineTextBox::paintPlatformDocumentMarker):
(WebCore::LegacyInlineTextBox::collectMarkedTextsForDraggedContent):
(WebCore::LegacyInlineTextBox::collectMarkedTextsForDocumentMarkers const):
(WebCore::LegacyInlineTextBox::collectMarkedTextsForHighlights const):
(WebCore::LegacyInlineTextBox::textOriginFromBoxRect const):
(WebCore::LegacyInlineTextBox::paintMarkedTexts):
(WebCore::LegacyInlineTextBox::paintMarkedTextBackground):
(WebCore::LegacyInlineTextBox::paintMarkedTextForeground):
(WebCore::LegacyInlineTextBox::paintMarkedTextDecoration):
(WebCore::LegacyInlineTextBox::paintCompositionBackground):
(WebCore::LegacyInlineTextBox::paintCompositionUnderlines const):
(WebCore::mirrorRTLSegment):
(WebCore::LegacyInlineTextBox::paintCompositionUnderline const):
(WebCore::LegacyInlineTextBox::caretMinOffset const):
(WebCore::LegacyInlineTextBox::caretMaxOffset const):
(WebCore::LegacyInlineTextBox::textPos const):
(WebCore::LegacyInlineTextBox::offsetForPosition const):
(WebCore::LegacyInlineTextBox::positionForOffset const):
(WebCore::LegacyInlineTextBox::createTextRun const):
(WebCore::LegacyInlineTextBox::text const):
(WebCore::LegacyInlineTextBox::combinedText const):
(WebCore::LegacyInlineTextBox::debugTextShadow):
(WebCore::LegacyInlineTextBox::expansionBehavior const):
(WebCore::LegacyInlineTextBox::boxName const):
(WebCore::LegacyInlineTextBox::outputLineBox const):

  • rendering/LegacyInlineTextBox.h: Renamed from Source/WebCore/rendering/InlineTextBox.h.

(WebCore::LegacyInlineTextBox::LegacyInlineTextBox):
(WebCore::LegacyInlineTextBox::renderer const):
(WebCore::LegacyInlineTextBox::lineStyle const):
(WebCore::LegacyInlineTextBox::prevTextBox const):
(WebCore::LegacyInlineTextBox::nextTextBox const):
(WebCore::LegacyInlineTextBox::setNextTextBox):
(WebCore::LegacyInlineTextBox::setPreviousTextBox):
(WebCore::LegacyInlineTextBox::start const):
(WebCore::LegacyInlineTextBox::end const):
(WebCore::LegacyInlineTextBox::len const):
(WebCore::LegacyInlineTextBox::setStart):
(WebCore::LegacyInlineTextBox::setLen):
(WebCore::LegacyInlineTextBox::offsetRun):
(WebCore::LegacyInlineTextBox::truncation const):
(WebCore::LegacyInlineTextBox::compareByStart):
(WebCore::LegacyInlineTextBox::logicalTopVisualOverflow const):
(WebCore::LegacyInlineTextBox::logicalBottomVisualOverflow const):
(WebCore::LegacyInlineTextBox::logicalLeftVisualOverflow const):
(WebCore::LegacyInlineTextBox::logicalRightVisualOverflow const):
(WebCore::LegacyInlineTextBox::dirtyOwnLineBoxes):
(WebCore::LegacyInlineTextBox::paintMarkedTexts):

  • rendering/LegacyLineLayout.cpp:

(WebCore::LegacyLineLayout::constructLine):
(WebCore::setLogicalWidthForTextRun):
(WebCore::LegacyLineLayout::computeExpansionForJustifiedText):
(WebCore::expansionBehaviorForInlineTextBox):
(WebCore::applyExpansionBehavior):
(WebCore::LegacyLineLayout::computeInlineDirectionPositionsForSegment):
(WebCore::LegacyLineLayout::removeInlineBox const):
(WebCore::LegacyLineLayout::computeBlockDirectionPositionsForLine):
(WebCore::LegacyLineLayout::createLineBoxesFromBidiRuns):

  • rendering/LegacyRootInlineBox.cpp:

(WebCore::LegacyRootInlineBox::isHyphenated const):
(WebCore::LegacyRootInlineBox::ascentAndDescentForBox const):

  • rendering/RenderBlock.cpp:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::inlineSelectionGaps):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintMaskForTextFillBox):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::generateCulledLineBoxRects const):
(WebCore::RenderInline::culledInlineVisualOverflowBoundingBox const):
(WebCore::RenderInline::dirtyLineBoxes):

  • rendering/RenderLineBoxList.cpp:

(WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):

  • rendering/RenderText.cpp:

(WebCore::RenderText::absoluteQuadsForRange const):
(WebCore::RenderText::createTextBox):
(WebCore::RenderText::positionLineBox):

  • rendering/RenderText.h:

(WebCore::RenderText::extractTextBox):
(WebCore::RenderText::attachTextBox):
(WebCore::RenderText::removeTextBox):
(WebCore::RenderText::createInlineTextBox):
(WebCore::RenderText::firstTextBox const):
(WebCore::RenderText::lastTextBox const):
(WebCore::RenderText::findNextInlineTextBox const):

  • rendering/RenderTextLineBoxes.cpp:

(WebCore::RenderTextLineBoxes::createAndAppendLineBox):
(WebCore::RenderTextLineBoxes::extract):
(WebCore::RenderTextLineBoxes::attach):
(WebCore::RenderTextLineBoxes::remove):
(WebCore::RenderTextLineBoxes::deleteAll):
(WebCore::RenderTextLineBoxes::findNext const):
(WebCore::RenderTextLineBoxes::checkConsistency const):

  • rendering/RenderTextLineBoxes.h:

(WebCore::RenderTextLineBoxes::first const):
(WebCore::RenderTextLineBoxes::last const):

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

(WebCore::TextDecorationPainter::setInlineTextBox):

  • rendering/TextPainter.cpp:

(WebCore::TextPainter::clearGlyphDisplayLists):

  • rendering/svg/RenderSVGInlineText.cpp:

(WebCore::RenderSVGInlineText::createTextBox):

  • rendering/svg/RenderSVGInlineText.h:
  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::SVGInlineTextBox):
(WebCore::SVGInlineTextBox::dirtyOwnLineBoxes):
(WebCore::SVGInlineTextBox::dirtyLineBoxes):
(WebCore::SVGInlineTextBox::offsetForPositionInFragment const):
(WebCore::SVGInlineTextBox::paint):
(WebCore::SVGInlineTextBox::nodeAtPoint):

  • rendering/svg/SVGInlineTextBox.h:
  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::writeSVGInlineTextBoxes):

  • style/InlineTextBoxStyle.cpp:

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

  • style/InlineTextBoxStyle.h:
12:28 AM Changeset in webkit [278524] by Cameron McCormack
  • 3 edits
    2 adds in trunk

Diff aspect-ratio property values correctly
https://bugs.webkit.org/show_bug.cgi?id=226673

Reviewed by Rob Buis.

Source/WebCore:

Test: fast/css/aspect-ratio-no-relayout.html

  • rendering/style/RenderStyle.cpp:

(WebCore::rareNonInheritedDataChangeRequiresLayout):

LayoutTests:

  • fast/css/aspect-ratio-no-relayout-expected.txt: Added.
  • fast/css/aspect-ratio-no-relayout.html: Added.
Note: See TracTimeline for information about the timeline view.