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

Timeline



Sep 5, 2021:

7:48 PM Changeset in webkit [282052] by Alan Bujtas
  • 5 edits in trunk

In-page search results overlay broken if the result spans more than two elements
https://bugs.webkit.org/show_bug.cgi?id=229926
<rdar://82741616>

Reviewed by Tim Horton.

Source/WebCore:

pathsWithShrinkWrappedRects fails to form a closed path for adjoining rects when they are horizontally out-of-order.
e.g.
1: (60,0) (30x20)
2: (0,0) (30x20)
3: (30,0) (30x20)
Let's sort the rects horizontally too (as we already do y ordering in polygonsForRect).

  • platform/graphics/PathUtilities.cpp:

(WebCore::polygonsForRect):

LayoutTests:

  • fast/shrink-wrap/rect-shrink-wrap-expected.html:
  • fast/shrink-wrap/rect-shrink-wrap.html: Add the out-of-order rect case.
4:47 PM Changeset in webkit [282051] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Let content with newlineCharacter be measured by FontCascade::widthForSimpleText
https://bugs.webkit.org/show_bug.cgi?id=229849
<rdar://problem/82708348>

Reviewed by Simon Fraser.

Apparently r281978 did not address it properly.

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::characterCanUseSimplifiedTextMeasuring):

12:17 PM Changeset in webkit [282050] by Antti Koivisto
  • 9 edits in trunk

[LFC][Integration] Skip inline boxes in iterator
https://bugs.webkit.org/show_bug.cgi?id=229922

Reviewed by Alan Bujtas.

Source/WebCore:

Start including root and non-root inline boxes to the run vector.
Change the iterator to skip over these boxes.

The new boxes are not used for anything yet.

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::build):
(WebCore::Layout::InlineDisplayContentBuilder::createRunsAndUpdateGeometryForLineSpanningInlineBoxes):

  • layout/integration/LayoutIntegrationInlineContent.cpp:

(WebCore::LayoutIntegration::InlineContent::hasContent const):

  • layout/integration/LayoutIntegrationInlineContent.h:
  • layout/integration/LayoutIntegrationLineIteratorModernPath.h:

(WebCore::LayoutIntegration::LineIteratorModernPath::firstRun const):
(WebCore::LayoutIntegration::LineIteratorModernPath::lastRun const):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::lineCount const):
(WebCore::LayoutIntegration::LineLayout::enclosingBorderBoxRectFor const):
(WebCore::LayoutIntegration::LineLayout::paint):
(WebCore::LayoutIntegration::LineLayout::hitTest):

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::RunIteratorModernPath::traverseNextTextRun):
(WebCore::LayoutIntegration::RunIteratorModernPath::traverseNextOnLine):
(WebCore::LayoutIntegration::RunIteratorModernPath::traversePreviousOnLine):
(WebCore::LayoutIntegration::RunIteratorModernPath::traverseNextLeaf):
(WebCore::LayoutIntegration::RunIteratorModernPath::traversePreviousLeaf):

LayoutTests:

  • fast/repaint/iframe-on-subpixel-position-expected.txt:
10:47 AM Changeset in webkit [282049] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Remove unnecessary uses of Ref protect = m_backing from FontFaceSet
https://bugs.webkit.org/show_bug.cgi?id=229911

Reviewed by Anders Carlsson.

The only callers of these are from JS. So, JS will maintain a ref to
the FontFaceSet, and the FontFaceSet will maintain a ref to its
CSSFontFaceSet. So it doesn't need to be protected.

No new tests because there is no behavior change.

  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::size):
(WebCore::FontFaceSet::check):
(WebCore::FontFaceSet::status const):

10:03 AM Changeset in webkit [282048] by Simon Fraser
  • 16 edits in trunk/Source/WebKit

Use a strongly typed identifier for authentication challenge IDs
https://bugs.webkit.org/show_bug.cgi?id=229890

Reviewed by Anders Carlsson.

Add AuthenticationChallengeIdentifier and use it to replace uint64_t values that
represent authentication challenge identifiers.

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(headers_for_type):

  • Shared/Authentication/AuthenticationManager.cpp:

(WebKit::AuthenticationManager::addChallengeToChallengeMap):
(WebKit::AuthenticationManager::shouldCoalesceChallenge const):
(WebKit::AuthenticationManager::coalesceChallengesMatching const):
(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
(WebKit::AuthenticationManager::completeAuthenticationChallenge):
(WebKit::generateAuthenticationChallengeID): Deleted.

  • Shared/Authentication/AuthenticationManager.h:
  • Shared/Authentication/AuthenticationManager.messages.in:
  • Shared/Authentication/cocoa/AuthenticationManagerCocoa.mm:

(WebKit::AuthenticationManager::initializeConnection):

  • Shared/IdentifierTypes.h:
  • UIProcess/Authentication/AuthenticationChallengeProxy.cpp:

(WebKit::AuthenticationChallengeProxy::AuthenticationChallengeProxy):

  • UIProcess/Authentication/AuthenticationChallengeProxy.h:

(WebKit::AuthenticationChallengeProxy::create):

  • UIProcess/Authentication/cocoa/AuthenticationChallengeProxyCocoa.mm:

(WebKit::AuthenticationChallengeProxy::sendClientCertificateCredentialOverXpc):

  • UIProcess/Downloads/DownloadProxy.cpp:

(WebKit::DownloadProxy::didReceiveAuthenticationChallenge):

  • UIProcess/Downloads/DownloadProxy.h:
  • UIProcess/Downloads/DownloadProxy.messages.in:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
6:44 AM Changeset in webkit [282047] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Ensure fragmented flow state invalidation even when the cached fragmented flow is not present.
https://bugs.webkit.org/show_bug.cgi?id=229914
<rdar://82025006>

Reviewed by Antti Koivisto.

The cached fragmented flow is the byproduct of querying the enclosing fragment during layout/repaint.
Sometimes when the layout process, between 2 subsequent style change does not generate such cached fragmented flows
the invalidation process stops early and leaves subtrees in an inconsistent state.

Let's use the passed in fragmented flow when the cached value is not present.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::resetEnclosingFragmentedFlowAndChildInfoIncludingDescendants):

Sep 4, 2021:

9:55 AM Changeset in webkit [282046] by Peng Liu
  • 2 edits in trunk/Source/WebCore

[iOS] Play/pause button's icon does not update when pausing in full screen
https://bugs.webkit.org/show_bug.cgi?id=229904

Reviewed by Eric Carlson.

AVKit expects KVO notification of rate to update the play/pause icon.
However, with the changes in r280840, -[WebAVPlayerController setRate]
will be called by AVKit only. When a user taps the play/pause button,
-[WebAVPlayerController setRate:fromJavaScript:] will be called, which
does not generate the KVO notification.

This patch fixes the issue by manually generate the KVO notification.

To be safe, this patch manually generates the KVO notification for
property defaultPlaybackRate as well.

Tested manually.

  • platform/ios/WebAVPlayerController.mm:

(-[WebAVPlayerController setDefaultPlaybackRate:fromJavaScript:]):
(-[WebAVPlayerController setRate:fromJavaScript:]):

6:20 AM Changeset in webkit [282045] by Antti Koivisto
  • 5 edits
    2 adds in trunk

REGRESSION(r275515): pointer-events:none may get stuck in LFC runs
https://bugs.webkit.org/show_bug.cgi?id=229854
rdar://81165275

Reviewed by Alan Bujtas.

Source/WebCore:

We only update run style with diff >= StyleDifference::Repaint but pointer-events changes don't require repaint.

Test: fast/events/pointer-events-mutation.html

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::styleDidChange):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::styleDidChange):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::styleDidChange):

Fix by pushing the new style to LFC unconditionally. This has no meaningful cost.

LayoutTests:

  • fast/events/pointer-events-mutation-expected.txt: Added.
  • fast/events/pointer-events-mutation.html: Added.
Note: See TracTimeline for information about the timeline view.