Timeline
Sep 5, 2021:
- 7:48 PM Changeset in webkit [282052] by
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
rateto 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
propertydefaultPlaybackRateas well.
Tested manually.
- platform/ios/WebAVPlayerController.mm:
(-[WebAVPlayerController setDefaultPlaybackRate:fromJavaScript:]):
(-[WebAVPlayerController setRate:fromJavaScript:]):
- 6:20 AM Changeset in webkit [282045] by
-
- 5 edits2 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.