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

Timeline



Aug 20, 2021:

11:10 PM Changeset in webkit [281366] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Unreviewed, reverting r281343.
https://bugs.webkit.org/show_bug.cgi?id=229362

caused iOS test failure

Reverted changeset:

"Update baseline for http/tests/websocket/tests/hybi/close-
code-and-reason.html."
https://commits.webkit.org/r281343

10:58 PM Changeset in webkit [281365] by Simon Fraser
  • 3 edits
    2 deletes in trunk/Source/WebKit

Remove AsyncRequest, which is unused
https://bugs.webkit.org/show_bug.cgi?id=229358

Reviewed by Alex Christensen.

  • Shared/AsyncRequest.cpp: Removed.
  • Shared/AsyncRequest.h: Removed.
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
10:53 PM Changeset in webkit [281364] by ntim@apple.com
  • 2 edits in trunk/Source/WebCore

Walk up stacking contexts in RenderLayerBacking::compositingOpacity
https://bugs.webkit.org/show_bug.cgi?id=229350

Reviewed by Simon Fraser.

Shorter way to do the same thing, since stackingContext() chain is top-layer aware and opacity creates stacking contexts anyway.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::compositingOpacity const):

10:25 PM Changeset in webkit [281363] by Jonathan Bedard
  • 5 edits
    2 adds in trunk/Tools

[git-webkit] Add pull-request command (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=229089
<rdar://problem/81908751>

Reviewed by Dewei Zhu.

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

(Git.init): Add 'check-ref-format' and 'checkout -b'.
(Git.checkout): Add ability to create branch.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program/init.py:

(main): Add Branch command.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program/branch.py:

(Branch.parser): Allow user to specify engineering branch name.
(Branch.normalize_issue): Turn provided string into eng branch if it isn't already.
(Branch.main): Create eng branch from current checkout state.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/branch_unittest.py:

(TestBranch):
(TestBranch.setUp):
(TestBranch.test_basic_svn):
(TestBranch.test_basic_git):
(TestBranch.test_prompt_git):
(TestBranch.test_invalid_branch):

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

[IFC][Integration] canUseForLineLayoutWithReason's establishesInlineFormattingContext should check against inflow content
https://bugs.webkit.org/show_bug.cgi?id=229104

Reviewed by Antti Koivisto.

<div><div style="position: absolute"></div>this is still a inline formatting context</div>
We don't allow to mix inline and block inflow content.
However out-of-flow block level boxes can certainly have inline siblings. canUseForLineLayoutWithReason should check
the content accordingly.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):

8:16 PM Changeset in webkit [281361] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[IFC][Integration] Walk the box tree to update the replaced content location
https://bugs.webkit.org/show_bug.cgi?id=229105

Reviewed by Antti Koivisto.

Normally there are more runs than entries in the box list. It's more performant to iterate
the box list for the renderer location adjustment.

  • layout/integration/LayoutIntegrationBoxTree.h:

(WebCore::LayoutIntegration::BoxTree::boxAndRendererList):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::constructContent):

7:56 PM Changeset in webkit [281360] by Simon Fraser
  • 20 edits
    1 add in trunk/Source

Use UserMediaRequestIdentifier in WebKit rather than a mysterious uint64_t
https://bugs.webkit.org/show_bug.cgi?id=229308

Reviewed by Youenn Fablet.

Source/WebCore:

Move UserMediaRequestIdentifier to its own header.

  • Headers.cmake:
  • Modules/mediastream/UserMediaRequest.h:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

Use the existing WebCore::UserMediaRequestIdentifier in WebKit code. We need to pull
it out of the ENABLE(MEDIA_STREAM) #ifdef.

In UserMediaPermissionRequestManagerProxy use a new identifier type, MediaDevicePermissionRequestIdentifier,
which is used to identify pending permission requests (but never send to the web process).

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared): Sort
(headers_for_type):

  • UIProcess/MediaKeySystemPermissionRequestManagerProxy.h:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::denyRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::grantRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):
(WebKit::UserMediaPermissionRequestManagerProxy::processUserMediaPermissionRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::processUserMediaPermissionInvalidRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::processUserMediaPermissionValidRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::checkUserMediaPermissionForSpeechRecognition):
(WebKit::UserMediaPermissionRequestManagerProxy::getUserMediaPermissionInfo):
(WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame):
(WebKit::generateRequestID): Deleted.

  • UIProcess/UserMediaPermissionRequestManagerProxy.h:
  • UIProcess/UserMediaPermissionRequestProxy.cpp:

(WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy):

  • UIProcess/UserMediaPermissionRequestProxy.h:

(WebKit::UserMediaPermissionRequestProxy::create):
(WebKit::UserMediaPermissionRequestProxy::userMediaID const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestUserMediaPermissionForFrame):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj: Some files that were in Sources.txt were missing from the project.
  • WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:

(WebKit::UserMediaPermissionRequestManager::sendUserMediaRequest):
(WebKit::UserMediaPermissionRequestManager::userMediaAccessWasGranted):
(WebKit::UserMediaPermissionRequestManager::userMediaAccessWasDenied):

  • WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::userMediaAccessWasGranted):
(WebKit::WebPage::userMediaAccessWasDenied):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
7:48 PM Changeset in webkit [281359] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Initialize root box's border and padding values
https://bugs.webkit.org/show_bug.cgi?id=229109

Reviewed by Antti Koivisto.

This is what LFC would normally do.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::layout):
(WebCore::LayoutIntegration::LineLayout::prepareLayoutState):

7:44 PM Changeset in webkit [281358] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][Integration] HTMLTextFormControlElement should use the inline iterator to collect content for wrap=hard
https://bugs.webkit.org/show_bug.cgi?id=228882

Reviewed by Antti Koivisto.

getNextSoftBreak is simply returns the position of the last item on the line unless it's a hard line break.
(endsWithBreak -> previousLineBrokeCleanly -> previousLineBrokeAtBR see https://trac.webkit.org/changeset/6107)

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks const):
(WebCore::getNextSoftBreak): Deleted. line->lineBreakPos() translates to the position where the line breaks within the run.
maximumCaretOffset() returns the same value, though the naming is a bit confusing and probably should be renamed or introduce
something similar on the line iterator.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):

6:45 PM Changeset in webkit [281357] by Alan Bujtas
  • 6 edits in trunk

[IFC][Integration] Enable inline level boxes with relative (min/max)width and (min/max)height values
https://bugs.webkit.org/show_bug.cgi?id=229065

Reviewed by Antti Koivisto.

Source/WebCore:

When a block level box's style changes, while we mark the box itself for layout we normally don't
walk the subtree for damaged inline content. Instead during layout, we dirty these individual descendant renderers as needed.
Inline level boxes with relative width/height values are part of this group.
It's also similar to what we do in LegacyLineLayout::layoutLineBoxes.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForChild):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutModernLines):

LayoutTests:

  • platform/ios/fast/frames/onlyCommentInIFrame-expected.txt:
  • platform/mac/fast/frames/onlyCommentInIFrame-expected.txt:
6:13 PM Changeset in webkit [281356] by Alan Bujtas
  • 5 edits in trunk

[IFC][Integration] Enable non-auto line-break values
https://bugs.webkit.org/show_bug.cgi?id=228842

Reviewed by Antti Koivisto.

Source/WebCore:

IFC already supports line-break (except after-white-space).

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForStyle):

LayoutTests:

  • TestExpectations: progressions
  • platform/mac/fast/text/trailing-white-space-expected.txt: collapsed trailing whitespace cleanup.
5:54 PM Changeset in webkit [281355] by ysuzuki@apple.com
  • 20 edits in trunk/Source/JavaScriptCore

[JSC] Simplify moveIntsToDouble
https://bugs.webkit.org/show_bug.cgi?id=229351

Reviewed by Saam Barati.

MacroAssembler::moveIntsToDouble required scratch FPRReg. But it was only required for MacroAssemblerX86, and it is already removed.
This means that we no longer need this scratch FPRReg. This change makes a lot of IC code, property access code simpler.
This patch removes that scratch FPRReg, and removed scratch FPRReg of many arithmetic ICs. This patch is important for PutByVal modern
IC since some of property access requires FPRReg because of MacroAssembler::moveIntsToDouble, and it requires adding new m_scratch2FPR
to AccessCase. But after this simplification, this is no longer necessary.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::moveIntsToDouble):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::moveIntsToDouble):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileValueToInt32):
(JSC::DFG::SpeculativeJIT::compileDoubleRep):
(JSC::DFG::SpeculativeJIT::emitUntypedOrBigIntRightShiftBitOp):
(JSC::DFG::SpeculativeJIT::compileValueAdd):
(JSC::DFG::SpeculativeJIT::compileValueSub):
(JSC::DFG::SpeculativeJIT::compileMathIC):
(JSC::DFG::SpeculativeJIT::compileValueNegate):
(JSC::DFG::SpeculativeJIT::compileValueMul):
(JSC::DFG::SpeculativeJIT::speculateRealNumber):
(JSC::DFG::SpeculativeJIT::compileNormalizeMapKey):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::unboxDouble):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileBinaryMathIC):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitConvertValueToBoolean):
(JSC::AssemblyHelpers::branchIfValue):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::unboxDoubleNonDestructive):
(JSC::AssemblyHelpers::unboxDouble):

  • jit/JITAddGenerator.cpp:

(JSC::JITAddGenerator::generateFastPath):

  • jit/JITAddGenerator.h:

(JSC::JITAddGenerator::JITAddGenerator):

  • jit/JITArithmetic.cpp:

(JSC::JIT::emitRightShiftFastPath):
(JSC::JIT::emitMathICFast):

  • jit/JITDivGenerator.cpp:

(JSC::JITDivGenerator::loadOperand):

  • jit/JITMulGenerator.cpp:

(JSC::JITMulGenerator::generateInline):
(JSC::JITMulGenerator::generateFastPath):

  • jit/JITMulGenerator.h:

(JSC::JITMulGenerator::JITMulGenerator):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitFloatTypedArrayPutByVal):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emitGenericContiguousPutByVal):

  • jit/JITRightShiftGenerator.cpp:

(JSC::JITRightShiftGenerator::generateFastPath):

  • jit/JITRightShiftGenerator.h:

(JSC::JITRightShiftGenerator::JITRightShiftGenerator):

  • jit/JITSubGenerator.cpp:

(JSC::JITSubGenerator::generateInline):
(JSC::JITSubGenerator::generateFastPath):

  • jit/JITSubGenerator.h:

(JSC::JITSubGenerator::JITSubGenerator):

5:35 PM Changeset in webkit [281354] by Patrick Angle
  • 6 edits
    2 adds in trunk

Web Inspector: Style rules declared after a rule whose selector has over 8192 components are not shown correctly
https://bugs.webkit.org/show_bug.cgi?id=229218

Reviewed by Devin Rousso.

Source/WebCore:

Test: inspector/css/getMatchedStylesForNodeLargeSelectors.html

CSS rules are limited to 8192 selector components in WebCore, and when more components are present the rule is
split into multiple StyleRule instances. This meant Web Inspector could not reliably resolve a StyleRule
back to its source data, which we do to enable things like editing, as well as to make sure we show the un-split
selector in the Styles sidebar of the Elements tab. Previously, the presences of multiple StyleRules for a
single source data declaration was not accounted for, which meant that rules after the split rules would show a
mix of style information from the actual rule as well as a rule some number of declarations later in the same
style sheet. This is resolved by marking StyleRules that have been split and marking the last of the split
rules. This allows us to then forgo incrementing the index for looking up raw declarations until we encounter
the last rule from a split StyleRule.

  • css/StyleRule.cpp:

(WebCore::StyleRule::StyleRule):
(WebCore::StyleRule::createForSplitting):
(WebCore::StyleRule::splitIntoMultipleRulesWithMaximumSelectorComponentCount const):

  • css/StyleRule.h:
  • Added two members to track rules that are split into multiple rules due to exceeding the 8192 component limit

for selectors in order to determine later which rules are effectively duplicates of each other. We use two
members here, one to track that the rule was split from a larger authored rule (m_isSplitRule), and one to
mark the last rule split from a given rule (m_isLastRuleInSplitRule). The second member prevents situations
where we might otherwise accidentally continue iterating into a list of StyleRule where two large authored
rules that had to be split are present next to each other in an ordered collection of StyleRule.

  • inspector/InspectorStyleSheet.cpp:

(WebCore::selectorsFromSource):

  • Use a vector of CSSSelectors for specificity information since we now collect selectors from potentially

multiple CSSStyleRules.

(WebCore::InspectorStyleSheet::cssStyleRulesSplitFromSameRule):

  • Find any neighboring CSSStyleRules that were split from the same original rule based on the order of rules as

well as the new flags in StyleRule

(WebCore::InspectorStyleSheet::selectorsForCSSStyleRule):

  • Find all selectors for a given CSSStyleRule, including other CSSStyleRules split from the same rule in a

style sheet.

(WebCore::InspectorStyleSheet::buildObjectForSelectorList):

  • Use all CSSSelectors from for the CSSStyleRule and other rules that were split from the same rule in a style

sheet.

(WebCore::InspectorStyleSheet::ruleSourceDataFor const):
(WebCore::InspectorStyleSheet::ruleIndexByStyle const):

  • When looking up an index to get rule source data, make sure we don't overcount split rules.
  • inspector/InspectorStyleSheet.h:

LayoutTests:

Test very large (8192 individual component) selectors to ensure surrounding styles are correctly resolved.

  • inspector/css/getMatchedStylesForNodeLargeSelectors-expected.txt: Added.
  • inspector/css/getMatchedStylesForNodeLargeSelectors.html: Added.
5:19 PM Changeset in webkit [281353] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for fast/scrolling/ios/overflow-div-scrolling.html.
<rdar://80392444>.

Unreviewed test gardening.

  • platform/ios-wk1/TestExpectations:
5:14 PM Changeset in webkit [281352] by Aditya Keerthi
  • 2 edits in trunk/Source/WebKit

[macCatalyst] Crash when clicking a phone number link
https://bugs.webkit.org/show_bug.cgi?id=229344
rdar://81804638

Reviewed by Tim Horton.

Clicking on a phone number link should present data detection UI.
However, -[WKActionSheetAssistant _elementActionForDDAction:] always
returns nil on Catalyst, resulting in crash when attempting to add the
returned action to an NSArray.

Given that the methods used in _elementActionForDDAction: are available
on Catalyst, fix the crash by ensuring the method does not return nil, and
only making the method available on platforms where ENABLE(DATA_DETECTION)
is defined.

  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant _elementActionForDDAction:]):

5:00 PM Changeset in webkit [281351] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ Sky ] editing/input/cocoa/autocorrect-on.html is timing out.
<rdar://82191308>

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:22 PM Changeset in webkit [281350] by Eric Hutchison
  • 4 edits in trunk/LayoutTests

Update test expectations for http/tests/media/modern-media-controls/overflow-support/playback-speed-live-broadcast.html.
<rdar://80393995>.

Unreviewed test gardening.

  • platform/ios-14/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
4:01 PM Changeset in webkit [281349] by achristensen@apple.com
  • 11 edits in trunk

Make UIEventAttribution tests less platform dependent
https://bugs.webkit.org/show_bug.cgi?id=229323

Reviewed by John Wilander.

Source/WebKit:

This allows me to run the UIEventAttribution tests on macOS.
It also makes them not time out, which they were doing since r277447.
To accomplish this, I added more test SPI to prevent the network process
suspension message, which was causing the test to time out on the iOS simulator.

  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _addEventAttributionWithSourceID:destinationURL:sourceDescription:purchaser:reportEndpoint:optionalNonce:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(+[WKWebsiteDataStore _preventNetworkProcessSuspensionForTesting]):

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

(-[WKWebView _setUIEventAttributionForTesting:withNonce:]): Deleted.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::preventSuspensionForTesting):
(WebKit::NetworkProcessProxy::sendPrepareToSuspend):

  • UIProcess/Network/NetworkProcessProxy.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::exampleURL):
(TestWebKitAPI::runBasicEventAttributionTest):
(TestWebKitAPI::TEST):

3:58 PM Changeset in webkit [281348] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Outdent WorkerRunLoop class definition
https://bugs.webkit.org/show_bug.cgi?id=229352

Reviewed by Wenson Hsieh.

Just outdent the class.

  • workers/WorkerRunLoop.h:

(WebCore::WorkerRunLoop::terminated const):
(WebCore::WorkerRunLoop::createUniqueId):
(WebCore::WorkerRunLoop::Task::mode const):
(WebCore::WorkerRunLoop::isBeingDebugged const):

3:54 PM Changeset in webkit [281347] by Russell Epstein
  • 1 copy in tags/Safari-612.2.1

Tag Safari-612.2.1.

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

[git-webkit] Add pull-request command (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=229089
<rdar://problem/81908751>

Reviewed by Dewei Zhu.

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

(main): Sort programs, add aliases.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program/command.py:

(Command): Add alias
(FilteredCommand): Inherit from Command.

3:43 PM Changeset in webkit [281345] by Russell Epstein
  • 1 copy in tags/Safari-612.1.29

Tag Safari-612.1.29.

3:24 PM Changeset in webkit [281344] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS & BigSur Debug wk2 ] compositing/video/video-update-rendering.html is a flakey text failure.
https://bugs.webkit.org/show_bug.cgi?id=223900

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:19 PM Changeset in webkit [281343] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update baseline for http/tests/websocket/tests/hybi/close-code-and-reason.html.
<rdar://82186597>.

Unreviewed rebaseline.

  • http/tests/websocket/tests/hybi/close-code-and-reason-expected.txt:
3:01 PM Changeset in webkit [281342] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

Unreviewed. Skip failing tests in 32 bits archs
https://bugs.webkit.org/show_bug.cgi?id=229345

Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-08-20
Reviewed by Yusuke Suzuki.

  • platform/glib/TestExpectations:
  • platform/wpe/TestExpectations:
3:00 PM Changeset in webkit [281341] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Make mid-word breaking surrogate pair aware
https://bugs.webkit.org/show_bug.cgi?id=229026

Reviewed by Antti Koivisto.

Surrogate pairs represent one "character" (U16_IS_LEAD + U16_IS_TAIL).
We should never break them half even when CSS tells us to break the word at arbitrary position.
This is in preparation for removing the U16_IS_SURROGATE check in canUseForCharacter.

  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::tryBreakingTextRun const):

  • layout/formattingContexts/inline/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::midWorkdBreak):
(WebCore::Layout::TextUtil::split): Deleted.

  • layout/formattingContexts/inline/text/TextUtil.h:
2:57 PM Changeset in webkit [281340] by jonlee@apple.com
  • 4 edits in trunk/Tools

Teach run-webkit-tests to print a summary of test status
https://bugs.webkit.org/show_bug.cgi?id=200556

Reviewed by Simon Fraser.

Add a new option to print a summary listing test expectation health.
It uses the same expected results as --print-expectations.

To run it: run-webkit-tests --print-summary

You can pass the same arguments as normal run-webkit-tests and it will
return stats based on the tests collected.

It also outputs a .csv file with the data.

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

(Manager.print_expectations): Gather the tests. Note whether the test
is marked as skip, pass, flaky, or fail, the definitions of which are
dictated by model.get_tests_with_result_type(). Output the results to
command line as well as to file.

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py: Add the new option.

It goes through the same path as --print-expectations.

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

[git-webkit] Forward unknown args to log and blame
https://bugs.webkit.org/show_bug.cgi?id=229342
<rdar://problem/82178743>

Rubber-stamped by Aakash Jain.

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

(main): Both log and blame might be passed options that need to be forwarded to git/svn.

2:28 PM Changeset in webkit [281338] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Use the logical width when passing in the constraint for the inline content
https://bugs.webkit.org/show_bug.cgi?id=228942

Reviewed by Simon Fraser.

Let's pass in the logical width (e.g. block box's height in case of vertical writing direction) to the inline line layout.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::layout):

2:24 PM Changeset in webkit [281337] by Alan Bujtas
  • 6 edits in trunk

[LFC][IFC] Add support for justified non-breaking space
https://bugs.webkit.org/show_bug.cgi?id=228727

Reviewed by Antti Koivisto.

Let's use FontCascade::expansionOpportunityCount to figure out the number of expansion counts in a run.
It helps with finding non-breakable space in an otherwise non-whitespace content (foo&nbsp;bar where the contet forms one run but the because
of the non-breakable _space_ in the middle, it also produces an expansion opportunity).
This patch moves all the expansion handling over to Line::applyRunExpansion as we anyway need to walk the content to find such spaces (i.e. not worth trying to pre-compute them).

  • layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::applyRunExpansion):
(WebCore::Layout::Line::Run::Run):
(WebCore::Layout::Line::Run::expand):
(WebCore::Layout::Line::Run::visuallyCollapseTrailingWhitespace):
(WebCore::Layout::Line::Run::setExpansionBehavior): Deleted.
(WebCore::Layout::Line::Run::expansionBehavior const): Deleted.
(WebCore::Layout::Line::Run::setHorizontalExpansion): Deleted.

  • layout/formattingContexts/inline/InlineLine.h:

(WebCore::Layout::Line::Run::expansion const):
(WebCore::Layout::Line::Run::setExpansion):
(WebCore::Layout::Line::Run::hasExpansionOpportunity const): Deleted.
(WebCore::Layout::Line::Run::expansionOpportunityCount const): Deleted.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForCharacter):
(WebCore::LayoutIntegration::canUseForText):
(WebCore::LayoutIntegration::canUseForFontAndText):
(WebCore::LayoutIntegration::canUseForStyle):

1:56 PM Changeset in webkit [281336] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS 15 ]editing/selection/ios/hide-selection-in-tiny-contenteditable.html is a flaky failure.
<rdar://82183980>

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
1:50 PM Changeset in webkit [281335] by Alan Bujtas
  • 11 edits in trunk/Source/WebCore

[LFC][IFC] LineBox provides redundant geometry information
https://bugs.webkit.org/show_bug.cgi?id=228050

Reviewed by Sam Weinig.

LineBoxGeometry class provides the line's geometry. This is also in preparation for making LineBox a non-persistent type of structure.

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

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

  • layout/formattingContexts/inline/InlineFormattingGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::build):
(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::computeLineBoxHeightAndAlignInlineLevelBoxesVertically):
(WebCore::Layout::InlineFormattingGeometry::verticallyAdjustedLineForLineContent const):
(WebCore::Layout::InlineFormattingGeometry::lineBoxForLineContent const): Deleted.

  • layout/formattingContexts/inline/InlineFormattingGeometry.h:
  • layout/formattingContexts/inline/InlineLineBox.cpp:

(WebCore::Layout::LineBox::LineBox):
(WebCore::Layout::m_rootInlineBox): Deleted.

  • layout/formattingContexts/inline/InlineLineBox.h:

(WebCore::Layout::LineBox::logicalRect const): Deleted.
(WebCore::Layout::LineBox::alignmentBaseline const): Deleted.
(WebCore::Layout::LineBox::setLogicalHeight): Deleted.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayNonRootInlineBoxes const):

1:44 PM Changeset in webkit [281334] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Followup to <trac.webkit.org/r281288>
https://bugs.webkit.org/show_bug.cgi?id=229269
rdar://81349236

Reviewed by Jer Noble.

Make two minor adjustments after the changes in r281288:

  1. Rename keyPathsForValuesAffectingValueCanBeginTouchBarScrubbing to just

keyPathsForValuesAffectingCanBeginTouchBarScrubbing, since the Objective-C property name is
-canBeginTouchBarScrubbing rather than -valueCanBeginTouchBarScrubbing.

  1. After fixing (1), the implementation of this method is no longer dead code, so we'll to make sure that the

NSSet we create and return contains valid Objective-C objects (i.e. NSString instead of const char*) --
in particular, this affects "contentDuration".

  • platform/mac/WebPlaybackControlsManager.mm:

(+[WebPlaybackControlsManager keyPathsForValuesAffectingCanBeginTouchBarScrubbing]):
(+[WebPlaybackControlsManager keyPathsForValuesAffectingValueCanBeginTouchBarScrubbing]): Deleted.

1:05 PM Changeset in webkit [281333] by clopez@igalia.com
  • 9 edits in trunk

REGRESSION(r274166): [GTK] It broke run-javascriptcore-tests causing all tests to use lot of memory
https://bugs.webkit.org/show_bug.cgi?id=229321

Unreviewed, reverting r274166 because it caused JSC tests to use too much memory.

Reverted changeset:

"[GTK] Reenable -fvisibility=hidden"
https://bugs.webkit.org/show_bug.cgi?id=181916
https://commits.webkit.org/r274166

.:

  • Source/cmake/OptionsGTK.cmake:

Source/WebCore:

Covered by existing tests.

  • PlatformGTK.cmake:
  • dom/EventTarget.cpp:
  • dom/EventTarget.h:

Tools:

  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/glib/TestExpectations.json:
12:44 PM Changeset in webkit [281332] by Simon Fraser
  • 9 edits in trunk/Source/WebKit

Change the mysterious uint64_t argument to detectDataInAllFrames() to OptionSet<WebCore::DataDetectorType>
https://bugs.webkit.org/show_bug.cgi?id=229304

Reviewed by Tim Horton.

We can encode a OptionSet<WebCore::DataDetectorType> in IPC messages now, so do so for DetectDataInAllFrames().
Also use OptionSet<WebCore::DataDetectorType> in some cases where WebCore::DataDetectorType was being used
to hold a bit set.

  • Shared/API/Cocoa/WKDataDetectorTypesInternal.h:

(fromWKDataDetectorTypes):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setupPageConfiguration:]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::detectDataInAllFrames):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::detectDataInAllFrames):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
12:41 PM Changeset in webkit [281331] by dino@apple.com
  • 3 edits
    6 adds in trunk

[WebXR] A session with only one view should cover the full screen
https://bugs.webkit.org/show_bug.cgi?id=229110
<rdar://problem/81940621>

Reviewed by Tim Horton.

Source/WebCore:

If we get into the state with an immersive session and only one view,
we should treat that view as the full width. This situation should never
happen with a real headset, but can be found in testing scenarios.

Test: http/wpt/webxr/xrViewport_singleView_valid.https.html

  • Modules/webxr/WebXRWebGLLayer.cpp:

(WebCore::WebXRWebGLLayer::computeViewports): Add test for only one
view and assume it is the left eye.

LayoutTests:

Add a test that provides an immersive session with only one view.
This required copying a few more things over from the WPT directory.

  • http/wpt/webxr/resources/test-only-api.js: Added.

(loadScript):

  • http/wpt/webxr/resources/webxr_test_constants_single_view.js: Added.
  • http/wpt/webxr/resources/webxr_util.js: Added.
  • http/wpt/webxr/xrViewport_singleView_valid.https-expected.txt: Added.
  • http/wpt/webxr/xrViewport_singleView_valid.https.html: Added.
12:38 PM Changeset in webkit [281330] by Aditya Keerthi
  • 2 edits in trunk/Source/WebCore

[macOS] Crash when painting <meter> with large scale
https://bugs.webkit.org/show_bug.cgi?id=229273
rdar://81219669

Reviewed by Wenson Hsieh.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintMeter):

Draw the cell into an image buffer to avoid an assertion beneath WebKit.

12:28 PM Changeset in webkit [281329] by clopez@igalia.com
  • 3 edits in trunk/LayoutTests

[GTK][WPE] Gardening of expected failures

Unreviewed gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
11:43 AM Changeset in webkit [281328] by Eric Hutchison
  • 3 edits in trunk/LayoutTests

[iOS wk2, Mac wk2] http/wpt/mediarecorder/video-rotation.html is a flaky failure.
<rdar://76434263>.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
11:25 AM Changeset in webkit [281327] by clopez@igalia.com
  • 4 edits in trunk/Tools

[build.webkit.org] GTK-Linux-64-bit-Release-Skip-Failing-Tests worker should run only layout tests
https://bugs.webkit.org/show_bug.cgi?id=229312

Reviewed by Jonathan Bedard.

Add a new factory for testing only layout tests and make this bot use it.

  • CISupport/build-webkit-org/config.json:
  • CISupport/build-webkit-org/factories.py:

(TestLayoutFactory):
(TestLayoutFactory.init):

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

(TestExpectedBuildSteps):

11:09 AM Changeset in webkit [281326] by ysuzuki@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

[JSC] Remove unnecessary moves in Yarr's sub32 / add32 related code
https://bugs.webkit.org/show_bug.cgi?id=228813

Reviewed by Mark Lam.

This patch adds three operand sub32 to X64 masm so that we can use it in all masms.
We use add32 and sub32 in YarrJIT to remove unnecessary mov instructions in ARM64.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::sub32):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::sub32):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::sub32):

  • assembler/testmasm.cpp:

(JSC::testSub32ArgImm):

  • yarr/YarrJIT.cpp:
10:50 AM Changeset in webkit [281325] by ysuzuki@apple.com
  • 4 edits
    1 delete in trunk/Source/JavaScriptCore

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

Reviewed by Mark Lam.

This patch removes MacroAssemblerX86, which allows simplifying some 32bit MacroAssembler code
in a subsequent patch.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/MacroAssembler.h:
  • assembler/MacroAssemblerX86.h: Removed.
10:47 AM Changeset in webkit [281324] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Fix DFG compilation of StringCharAt in 32 bits jsc debug build
https://bugs.webkit.org/show_bug.cgi?id=229293

Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-08-20
Reviewed by Keith Miller.

In SpeculativeJIT::compileGetByValOnString the format can be either DataFormatJS
or DataFormatCell so assert either value when compiling it in 32 bits.
It's the same assert already present in the DFG 64 bits counterpart

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

10:31 AM Changeset in webkit [281323] by Patrick Angle
  • 3 edits
    3 adds in trunk

Release assert in ScriptController::canExecuteScripts via WebCore::WebSocket::didReceiveMessage
https://bugs.webkit.org/show_bug.cgi?id=229301

Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: http/tests/websocket/tests/hybi/inspector/send-and-recieve-debugger.html

WebCore::WebSocket::didReceiveMessage and other functions that fire JS events may be called while the
WebSocketChannel is being resumed, but it is not yet safe to evaluate JavaScript during resuming. This was
already accounted for with some events like errors and closing, but it holds true for all events. We should
delay firing these events as well.

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::didConnect):
(WebCore::WebSocket::didReceiveMessage):
(WebCore::WebSocket::didReceiveBinaryData):

LayoutTests:

  • http/tests/websocket/tests/hybi/inspector/echo-delayed_wsh.py: Added.

(web_socket_do_extra_handshake):
(web_socket_transfer_data):

  • Similar to echo_wsh.py, respond with the provided message when received, but delay the response by 100ms.
  • http/tests/websocket/tests/hybi/inspector/send-and-recieve-debugger-expected.txt: Added.
  • http/tests/websocket/tests/hybi/inspector/send-and-recieve-debugger.html: Added.
10:12 AM Changeset in webkit [281322] by clopez@igalia.com
  • 3 edits in trunk/Tools

[ews-build.webkit.org] Add unit test with the expected build steps for each queue
https://bugs.webkit.org/show_bug.cgi?id=229319

Reviewed by Aakash Jain.

Add a unit test listing all the expected build steps for each queue
like the one added in r281286 for build.webkit.org
Also remove the previous unit tests to not duplicate test functionality.
And replace doble-quotes with single-ones on the test for build.webkit.org

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

(TestExpectedBuildSteps):
(TestExpectedBuildSteps.test_all_expected_steps):
(TestExpectedBuildSteps.test_unnecessary_expected_steps):

  • CISupport/ews-build/factories_unittest.py:

(TestExpectedBuildSteps):
(TestExpectedBuildSteps.setUp):
(TestExpectedBuildSteps.test_all_expected_steps):
(TestExpectedBuildSteps.test_unnecessary_expected_steps):

10:01 AM Changeset in webkit [281321] by mark.lam@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Add some offlineasm enhancements.
https://bugs.webkit.org/show_bug.cgi?id=229332
rdar://82163923

Reviewed by Keith Miller.

  1. Enhance "include" offlineasm Instruction to always attempt to include an asm file from <build-products>/usr/local/include/WebKitAdditions/ first. If the specified file is not available there, then it will attempt to include the file from the same directory as the current source file (which in practice, means Source/JavaScriptCore/llint/).
  1. Enhance "include" offlineasm Instruction to allow an optional file to be included if it exists. For example, the following offlineasm code:

include? LowLevelInterpreterAdditions

... will attempt to include a file LowLevelInterpreterAdditions.asm. If the
file does not exist, this will be a no-op. Note: the "?" after the "include"
means the include is optional.

  1. Enhanced "emit" offlineasm Instruction to be able to take more than one operand.

"emit" used to just copy the string operand that follows into the generated
LLIntAssembly.h. Now, "emit" can take multiple comma separated operands, and
will concatenate all the operands.

Additionally, "emit" can now take a LocalLabelReference as an operand. For
example, this offline asm code:

emit "b ", .done
...

.done:

... will generate this inline asm code in LLIntAssembly.h:

"b " LOCAL_LABEL_STRING(_offlineasm_someLabel_done) "\n"

This makes it easier to emit branches to local labels.

  1. Also fixed LLInt code alignment for ARM_THUMB2 and ARM64.

Previously, it was aligned using ".align 4" which means aligned on a 4
instruction boundary. Note: the interpretation of .align varies for different
target CPU architectures.

Now, we do the alignment using ".balign 4" which means align on a 4 byte
boundary. This is the intended alignment because ARM64 instruction size is
4 bytes, and ARM_THUMB2 instruction size is either 2 bytes or 4 bytes.
Using .align before was potentially wasting some code space.

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter.cpp:
  • offlineasm/ast.rb:
  • offlineasm/parser.rb:
9:22 AM Changeset in webkit [281320] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS Debug ] animations/unprefixed-events.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=229338

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:21 AM Changeset in webkit [281319] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Reduce StructureID entropy bits to 5 to make room for more StructureIDs.
https://bugs.webkit.org/show_bug.cgi?id=229326
rdar://60141624

Reviewed by Yusuke Suzuki.

  • runtime/StructureIDTable.h:
8:56 AM Changeset in webkit [281318] by mark.lam@apple.com
  • 3 edits in trunk/Source/WTF

Make ptrTagName and tagForPtr WTF_EXPORT_PRIVATE.
https://bugs.webkit.org/show_bug.cgi?id=229328

Reviewed by Yusuke Suzuki.

If ptrTagName and tagForPtr are defined, make them WTF_EXPORT_PRIVATE instead of
static functions. This allows us to call them from the debugger during
interactive debugging sessions.

  • wtf/PtrTag.cpp:

(WTF::tagForPtr):
(WTF::ptrTagName):

  • wtf/PtrTag.h:
8:53 AM Changeset in webkit [281317] by mark.lam@apple.com
  • 2 edits in trunk/Source/WTF

Remove assertIsTagged and assertIsNullOrTagged.
https://bugs.webkit.org/show_bug.cgi?id=229329
rdar://82162851

Reviewed by Yusuke Suzuki.

These assertion utility functions rely on tagged pointers always having non-zero
PAC bits. This is an incorrect assumption. A tagged pointer can have PAC bits
that are completely zero. Hence, these assert functions cannot be made to work
reliably. We should remove them to prevent them from being used, and potentially
resulting in flaky assertion failures that will be hard to debug later.

Note: assertIsNotTagged is fine to keep. It asserts that PAC bits of a pointer
are all 0. As a result, this assertion can have false positives where it may think
a tagged pointer is an untagged pointer. However, this is rare because it is not
common to have 0 PAC bits in tagged pointers. False positives on this assertion
won't result in flaky test failures that will waste our time later. Hence,
keeping the assertion will do more good (it will tend to help us find bugs) than
bad (it will rarely let false positives thru). As a result, I'm opting to not
remove it.

  • wtf/PtrTag.h:

(WTF::assertIsTagged): Deleted.
(WTF::assertIsNullOrTagged): Deleted.

8:30 AM Changeset in webkit [281316] by Alan Coon
  • 1 copy in tags/Safari-612.1.27.3.5

Tag Safari-612.1.27.3.5.

8:27 AM Changeset in webkit [281315] by Alan Coon
  • 4 edits in branches/safari-612.1.27.3-branch/Source/JavaScriptCore

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

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

Reviewed by Mark Lam.

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

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

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

8:24 AM Changeset in webkit [281314] by commit-queue@webkit.org
  • 6 edits in trunk

Unreviewed, reverting r281307.
https://bugs.webkit.org/show_bug.cgi?id=229336

broke layout tests

Reverted changeset:

"[IFC][Integration] Enable non-auto line-break values"
https://bugs.webkit.org/show_bug.cgi?id=228842
https://commits.webkit.org/r281307

8:10 AM Changeset in webkit [281313] by Alan Coon
  • 8 edits in branches/safari-612.1.27.3-branch/Source

Versioning.

WebKit-7612.1.27.3.5

6:29 AM Changeset in webkit [281312] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[IFC] Undo incorrect InlineTextBox -> LegacyInlineTextBox renaming
https://bugs.webkit.org/show_bug.cgi?id=229081

Reviewed by Antti Koivisto.

  • layout/formattingContexts/inline/text/TextUtil.h:
  • layout/layouttree/LayoutBox.h:

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

  • layout/layouttree/LayoutInlineTextBox.cpp:

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

6:21 AM Changeset in webkit [281311] by Antti Koivisto
  • 7 edits
    2 deletes in trunk

[LFC][Integration] Enable full underline support
https://bugs.webkit.org/show_bug.cgi?id=229322

Reviewed by Alan Bujtas.

Source/WebCore:

We can now paint all underlines.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForStyle):

  • layout/integration/LayoutIntegrationCoverage.h:
  • layout/integration/LayoutIntegrationInlineContent.cpp:

(WebCore::LayoutIntegration::InlineContent::iteratorForRun const):
(WebCore::LayoutIntegration::InlineContent::iteratorForTextRun const):

  • layout/integration/LayoutIntegrationInlineContent.h:
  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paint):

LayoutTests:

Remove a test that just checks we are forcing legacy for underline-position:under.

  • fast/text/simple-line-layout-with-text-underline-position-expected.html: Removed.
  • fast/text/simple-line-layout-with-text-underline-position.html: Removed.
6:18 AM Changeset in webkit [281310] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] Enable custom hyphen strings
https://bugs.webkit.org/show_bug.cgi?id=229049

Reviewed by Antti Koivisto.

This was most likely the case of non-primary font handling in SLL. It just works in IFC.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForStyle):

5:56 AM Changeset in webkit [281309] by ntim@apple.com
  • 8 edits in trunk

Initial implementation of inert subtrees
https://bugs.webkit.org/show_bug.cgi?id=110952

Reviewed by Antti Koivisto.

Currently covers:

  • Blocking focus & selecting
  • aria-hidden like behaviour

Hit testing/event retargeting will be covered by https://bugs.webkit.org/show_bug.cgi?id=229330 pending a spec issue

Relevant WPT enabled. More testing coverage will be provided with the inert attribute.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-node-is-unfocusable-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/remove-dialog-should-unblock-document-expected.txt:

Source/WebCore:

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::isAXHidden const):

  • dom/Element.cpp:

(WebCore::Element::isFocusable const):

  • dom/Node.cpp:

(WebCore::Node::canStartSelection const):
(WebCore::Node::isInert const):

  • dom/Node.h:
5:49 AM Changeset in webkit [281308] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][Integration] line-clamp is an unsupported CSS property
https://bugs.webkit.org/show_bug.cgi?id=228794

Reviewed by Simon Fraser.

Let's bail out on -webkit-line-clamp instead of the presence of a deprecated flex box. While line clamping requires legacy line layout, regular flex item content is fine with either line layout codepaths.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):

  • layout/integration/LayoutIntegrationCoverage.h:
5:44 AM Changeset in webkit [281307] by Alan Bujtas
  • 6 edits in trunk

[IFC][Integration] Enable non-auto line-break values
https://bugs.webkit.org/show_bug.cgi?id=228842

Reviewed by Antti Koivisto.

Source/WebCore:

IFC already supports line-break.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForStyle):

LayoutTests:

  • TestExpectations: progressions
  • platform/mac/fast/text/trailing-white-space-expected.txt: collapsed trailing whitespace cleanup.
5:34 AM Changeset in webkit [281306] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Add support for -webkit-nbsp-mode: space
https://bugs.webkit.org/show_bug.cgi?id=228805

Reviewed by Antti Koivisto.

Treat non-breaking space as regular space.
TextUtil::findNextBreakablePosition already covers the "find the soft wrapping opportunity" part.

e.g.

<div style="-webkit-nbsp-mode: space">1&nbsp2</div>

produces 3 InlineTextItem objects as follows

[1][whitespace][2]

as opposed to just 1 [1non-breakable-space2]

  • layout/formattingContexts/inline/InlineTextItem.cpp:

(WebCore::Layout::moveToNextNonWhitespacePosition):
(WebCore::Layout::InlineTextItem::createAndAppendTextItems):

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForStyle):

3:16 AM Changeset in webkit [281305] by Philippe Normand
  • 9 edits in trunk

REGRESSION(r280732) [GStreamer] fast/mediastream/getDisplayMedia-max-constraints1.html and other are failing
https://bugs.webkit.org/show_bug.cgi?id=228941

Reviewed by Youenn Fablet.

Source/WebCore:

The GStreamer mock display capture source is now wrapped in another RealtimeMediaSource in
order to avoid a spurious setSize() call from the RealtimeVideoSource constructor that would
then prevent the mock source to ensure its size matches the intrinsic size.

For the non-mock display capture source, we now ensure the size matches the intrinsic size
whenever the capture settings have changed.

  • platform/mediastream/RealtimeVideoCaptureSource.h:
  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:

(WebCore::GStreamerVideoCaptureSource::settingsDidChange):

  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:

(WebCore::MockDisplayCaptureSourceGStreamer::create):
(WebCore::MockDisplayCaptureSourceGStreamer::capabilities):
(WebCore::MockDisplayCaptureSourceGStreamer::settings):

  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.h:
  • platform/mock/MockRealtimeMediaSourceCenter.cpp:
  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::generateFrame):

LayoutTests:

  • platform/glib/TestExpectations: Unflag tests now passing.
2:22 AM Changeset in webkit [281304] by Adrian Perez de Castro
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.32

Merge r275189 - REGRESSION(r274992): Nullptr crash in FontCache::retrieveOrAddCachedFonts
https://bugs.webkit.org/show_bug.cgi?id=223858
<rdar://75883697>

Reviewed by Darin Adler and Ryosuke Niwa.

Source/WebCore:

Stop using a hash as key in the FontCascadeCache. Instead, use HashTraits and use
FontCascadeCacheKey as key.

Test: fonts/font-cache-crash.html

  • platform/graphics/FontCache.cpp:

(WebCore::FontCache::retrieveOrAddCachedFonts):
(WTF::FontCascadeCacheKeyHash::hash):

  • platform/graphics/FontCache.h:

(WebCore::FontCascadeCacheKey::operator== const):
(WTF::FontCascadeCacheKeyHash::equal):
(WTF::HashTraits<WebCore::FontCascadeCacheKey>::emptyValue):
(WTF::HashTraits<WebCore::FontCascadeCacheKey>::constructDeletedValue):
(WTF::HashTraits<WebCore::FontCascadeCacheKey>::isDeletedValue):

LayoutTests:

Add layout test coverage.

  • fonts/font-cache-crash-expected.txt: Added.
  • fonts/font-cache-crash.html: Added.
2:19 AM Changeset in webkit [281303] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r275168 - Make a Ref to HTMLPlugInElement when resolving callback
https://bugs.webkit.org/show_bug.cgi?id=223846

Patch by Ian Gilbert <iang@apple.com> on 2021-03-29
Reviewed by Ryosuke Niwa.

Take a Ref to the HTMLPlugInElement to keep it alive while invoking HTMLPlugInElement::swapRendererTimerFired()

  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::swapRendererTimerFired):

2:18 AM Changeset in webkit [281302] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r275143 - Don't add Frame as an opaque root of DOMWindow
https://bugs.webkit.org/show_bug.cgi?id=223838

Reviewed by Simon Fraser.

Don't add Frame as an opaque root of DOMWindow since we don't use Frame
as an opaque root of any JS wrappers since r248276.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::visitAdditionalChildren):

2:16 AM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
2:16 AM Changeset in webkit [281301] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r275130 - Dirty layout for floating children of inline on full layout
https://bugs.webkit.org/show_bug.cgi?id=223660

Patch by Ian Gilbert <iang@apple.com> on 2021-03-26
Reviewed by Zalan Bujtas.

Avoid consuming an object on an empty line when that object is floating or out-of-flow.

  • rendering/line/BreakingContext.h:

(WebCore::BreakingContext::handleEndOfLine):

2:13 AM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
1:05 AM Changeset in webkit [281300] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebCore

GlyphBuffer can become inconsistent with its backing string
https://bugs.webkit.org/show_bug.cgi?id=229064

Reviewed by Alan Bujtas.

This is split out from https://bugs.webkit.org/show_bug.cgi?id=215643.

Before shaping, the glyphs in the GlyphBuffer need to match one-to-one with code units in the string.
We iterate over the string, adding glyphs into the GlyphBuffer, but there was one early "continue"
in the loop that skips the add() call.

Because this patch adds ASSERT()s, this is actually covered by existing tests.

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::commitCurrentFontRange):
(WebCore::addToGlyphBuffer):
(WebCore::WidthIterator::advanceInternal):

  • platform/graphics/WidthIterator.h:
1:03 AM Changeset in webkit [281299] by ntim@apple.com
  • 3 edits
    2 adds in trunk

Ensure ancestors with opacity don't affect top layer elements
https://bugs.webkit.org/show_bug.cgi?id=229317

Reviewed by Antti Koivisto.

Test: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-opacity.html

Associated WPT PR: https://github.com/web-platform-tests/wpt/pull/30104

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-opacity-expected.html: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-opacity.html: Added.

Source/WebCore:

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::compositingOpacity const):

12:55 AM Changeset in webkit [281298] by youenn@apple.com
  • 15 edits in trunk

Add support for RTCPeerConnection.canTrickleIceCandidates
https://bugs.webkit.org/show_bug.cgi?id=229287

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCPeerConnection-canTrickleIceCandidates-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-constructor-expected.txt:
  • web-platform-tests/webrtc/idlharness.https.window-expected.txt:

Source/WebCore:

Add support for https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-cantrickleicecandidates.
Return null in case connection is closed or setRemoteDescription was never called successfully.
Add binding code to get the value from webrtc backend.
Covered by rebased tests.

  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::canTrickleIceCandidates const):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::canTrickleIceCandidates const):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::LibWebRTCPeerConnectionBackend::canTrickleIceCandidates const):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:

LayoutTests:

  • webrtc/rtcpeerconnection-error-messages-expected.txt:
12:50 AM Changeset in webkit [281297] by youenn@apple.com
  • 5 edits in trunk/Tools

Remove all WTR output before Content-Type:text/plain for WebRTC tests in case of known excessive logging
https://bugs.webkit.org/show_bug.cgi?id=229188

Reviewed by Jonathan Bedard.

Some logging beneath WebKit is making WebRTC tests flaky.
While we work on the cause of this bug, we can still beef-up our test output clean up steps to handle this logging.
Instead of stripping lines based on a known pattern, which does not always work as per current results,
we can simply remove all logging before the 'Content-Type:text/plain\n' string that WebKitTestRunner is adding before
printing the text generated by the test itself.
We update webkitpy scripts accordingly and add this new clean-up for:

  • tests that have webrtc in their name
  • tests whose output contain some known logging strings like 'LRP' or 'Negotiation String'.

This should hopefully be more robust while not hiding real regressions.

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

(SingleTestRunner):

  • Scripts/webkitpy/port/base.py:

(Port.logging_detectors_to_strip_text_start):

  • Scripts/webkitpy/port/driver.py:

(DriverOutput.strip_text_start_if_needed):

  • Scripts/webkitpy/port/mac.py:

(MacPort.logging_patterns_to_strip):
(MacPort.logging_detectors_to_strip_text_start):

Aug 19, 2021:

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

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

Reviewed by Simon Fraser.

Enabled relevant WPTs. Some WPTs need extra layout work.

Source/WebCore:

  • dom/Document.cpp:

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

  • dom/Element.cpp:

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

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

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

  • rendering/RenderLayer.h:

LayoutTests:

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

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

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

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

Source/WebCore:

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

The feature is disabled by default.

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::selectorText const):

Serialization.

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

(WebCore::SelectorChecker::checkOne const):

Selector matching using nested SelectorChecker.

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

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

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

(WebCore::CSSParserSelector::setPseudoClassType):

  • css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::consumeForgivingSelectorList):

Add a template version of the forgiving parsing function.

(WebCore::CSSSelectorParser::consumeForgivingComplexSelectorList):

Use it for complex selector lists.

(WebCore::CSSSelectorParser::consumeForgivingRelativeSelectorList):

And the new relative selector lists.

(WebCore::CSSSelectorParser::consumeRelativeSelector):

Parse relative selectors like "> foo".

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

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

(WebCore::SelectorCompiler::addPseudoClassType):

No compiler support yet.

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Add off-by-default HasPseudoClassEnabled preference value.

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

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

Reviewed by Alan Bujtas.

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

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

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

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

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

  • platform/graphics/Font.cpp:

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

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

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

  • platform/graphics/GlyphBuffer.h:

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

  • platform/graphics/WidthIterator.cpp:

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

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

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

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

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

Reviewed by Sam Weinig.

Source/WebCore:

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

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

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

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

LayoutTests:

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

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

Reviewed by Antti Koivisto.

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

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

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

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

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

Reviewed by Sam Weinig.

Source/WebCore:

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

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

fast/text/variable-system-font.html

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::preparePlatformFont):

Source/WTF:

  • wtf/PlatformUse.h:

LayoutTests:

Update tests.

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

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

Reviewed by Wenson Hsieh.

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

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(headers_for_type):

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

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

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

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

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

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

  • WebProcess/WebPage/WebPage.cpp:

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

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

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

Reviewed by Myles C. Maxfield.

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

  • UIProcess/UserMediaProcessManager.cpp:

(WebKit::UserMediaProcessManager::willCreateMediaStream):

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

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

Reviewed by Jer Noble.

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

  • platform/mac/WebPlaybackControlsManager.mm:

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

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

Tag Safari-612.1.28.4.

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

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

Reviewed by Aakash Jain.

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

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

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

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

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

Reviewed by Antti Koivisto.

It's not used anymore.

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

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

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

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

Reviewed by Geoff Garen.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing.

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

Source/WebCore:

Implement Crypto.randomUUID():

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

No new tests, rebaselined existing tests.

  • page/Crypto.cpp:

(WebCore::Crypto::randomUUID const):

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

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

Reviewed by Alan Bujtas.

m_inPostLayoutUpdate was unused.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateCompositingLayers):

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

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

Unreviewed test gardening.

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

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

Unreviewed test gardening.

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

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

Reviewed by Sam Weinig.

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

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

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

  • layout/formattingContexts/inline/InlineFormattingGeometry.cpp:

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

  • layout/formattingContexts/inline/InlineLineBox.cpp:

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

  • layout/formattingContexts/inline/InlineLineBox.h:

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

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

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

Reviewed by Tim Horton.

Source/WebCore:

See WebKit ChangeLog for more details.

  • page/ChromeClient.h:

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

  • page/EventHandler.cpp:

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

Source/WebKit:

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

  • UIProcess/API/APIUIClient.h:

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

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

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

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

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

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

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

  • UIProcess/ios/WebPageProxyIOS.mm:

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

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

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

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

(WebKit::WebPage::isPlayingMediaDidChange):

  • WebProcess/WebPage/WebPage.h:

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

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

  • WebProcess/WebPage/ios/WebPageIOS.mm:

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

Tools:

Remove test runner support for testing the meaningful tap heuristic.

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

(WTR::InjectedBundle::didReceiveMessageToPage):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

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

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

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

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

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

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

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

LayoutTests:

Remove all layout tests that exercised the meaningful tap heuristic.

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

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

Reviewed by Tim Horton.

Source/WebKit:

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

(-[WKDateTimePicker showDateTimePicker]):

Source/WTF:

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

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

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

No change in behavior. Just more modern code.

  • GPUProcess/GPUProcessCreationParameters.cpp:

(WebKit::GPUProcessCreationParameters::decode):

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

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

  • Platform/IPC/FormDataReference.h:

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

  • Shared/Cocoa/LoadParametersCocoa.mm:

(WebKit::LoadParameters::platformDecode):

  • Shared/Cocoa/SandboxExtensionCocoa.mm:

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

  • Shared/Databases/IndexedDB/WebIDBResult.cpp:

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

  • Shared/Databases/IndexedDB/WebIDBResult.h:

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

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

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

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::decode):

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

(WebKit::WebProcessCreationParameters::decode):

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

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

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::getPasteboardPathnamesForType):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::performDragOperation):

  • UIProcess/UserMediaProcessManager.cpp:

(WebKit::UserMediaProcessManager::willCreateMediaStream):

  • UIProcess/WebPageProxy.cpp:

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

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

(WebKit::WebProcessPool::initializeNewWebProcess):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView dropInteraction:performDrop:]):

  • WebProcess/MediaStream/MediaDeviceSandboxExtensions.cpp:

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

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

(WebKit::WebPlatformStrategies::getPathnamesForType):

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::consumeNetworkExtensionSandboxExtensions):

  • WebProcess/WebPage/WebPage.cpp:

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

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

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

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

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

Reviewed by Wenson Hsieh.

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

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

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(headers_for_type):

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

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

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

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

  • UIProcess/ios/WebPageProxyIOS.mm:

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

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

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

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

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

Reviewed by Tim Horton.

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(TestWebKitAPI::TEST):

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

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

Reviewed by Chris Fleizach.

Tools:

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

  • DumpRenderTree/AccessibilityUIElement.cpp:

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

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

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

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

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

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

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

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

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

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

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

  • WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp:

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

LayoutTests:

Updated all test files to use new name.

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

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

Reviewed by Anders Carlsson.

Source/WebKitLegacy/ios:

  • WebKit.iOS.exp:

Source/WebKitLegacy/mac:

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

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

Reviewed by Antti Koivisto.

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

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::endsWithSoftWrapOpportunity):

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

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

Reviewed by Antti Koivisto.

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

  • layout/formattingContexts/inline/InlineLine.cpp:

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

  • layout/integration/LayoutIntegrationCoverage.cpp:

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

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

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

Reviewed by Darin Adler.

  • wtf/Deque.h:

(WTF::inlineCapacity>::appendAndBubble):

  • wtf/Scope.h:

(WTF::ScopeExit::ScopeExit):

  • wtf/ScopedLambda.h:

(WTF::scopedLambda):

  • wtf/SharedTask.h:

(WTF::createSharedTask):

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

Versioning.

WebKit-7612.2.1

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

Revert "Add support for RTCDtlsTransport"

This reverts commit r281225.

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

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

This reverts commit r281231.

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

Revert "Implement ::backdrop pseudo element"

This reverts commit r281229.

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

Revert "Port HTMLDetailsElement to use modern event handling code"

This reverts commit r281230.

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

New branch.

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

Revert "Add support for RTCDtlsTransport"

This reverts commit r281225.

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

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

This reverts commit r281231.

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

Revert "Implement ::backdrop pseudo element"

This reverts commit r281229.

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

Revert "Port HTMLDetailsElement to use modern event handling code"

This reverts commit r281230.

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

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

LayoutTests/imported/w3c:

Reviewed by Antti Koivisto.

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

Source/WebCore:

Reviewed by Antti Koivisto.

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

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

  • css/CSSPrimitiveValueMappings.h:

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

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

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

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::breakWords const):

  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<):

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

LayoutTests:

Reviewed by Antti Koivisto.

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

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

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

Source/WebCore:

No change in behavior.

  • WebCore.order:
  • features.json:

Source/WebInspectorUI:

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

(return.parseTrackName):
(parseTrackName):

  • UserInterface/Views/ConsoleMessageView.js:

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

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype.populateDOMNodeContextMenu):

Source/WebKit:

  • mac/WebKit2.order:

Source/WebKitLegacy/mac:

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

Source/WTF:

  • icu/unicode/uspoof.h:

This comment change comes from upstream ICU.

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

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

Reviewed by Alexey Proskuryakov.

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

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

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

New branch.

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

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

Unreviewed test gardening.

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

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

Reviewed by Wenson Hsieh.

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

Rename to Element::boundingBoxInRootViewCoordinates() for clarity.

Source/WebCore:

  • dom/Element.cpp:

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

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

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

  • page/Page.cpp:

(WebCore::Page::editableElementsInRect const):

Source/WebKit:

  • WebProcess/WebCoreSupport/WebValidationMessageClient.cpp:

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

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::contextForElement const):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

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

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebValidationMessageClient.mm:

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

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

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

Unreviewed test gardening.

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

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

Reviewed by Simon Fraser.

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

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

Source/WebCore:

  • style/StyleAdjuster.cpp:

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

LayoutTests:

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

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

Unreviewed.

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

LayoutTests/imported/w3c:

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

(.pseudodialog):

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

LayoutTests:

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

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

Build fix after r281245.

Link with Metal.framework.

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

Tag Safari-612.1.27.0.26.

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

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

Unreviewed test gardening.

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

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

Reviewed by Geoffrey Garen.

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

Source/WebCore:

  • page/EventHandler.cpp:

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

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

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

  • page/FrameView.h:

Source/WebKitLegacy/mac:

  • WebView/WebFrame.mm:

(-[WebFrame sendScrollEvent]):

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

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

Reviewed by Tim Horton.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _contentBoundsExtendedForRubberbandingWithScale:]):

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

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

Source/WebCore:

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

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

Tests: webgl/webgl-metal-disabled.html

webgl/webgl-metal-enabled.html

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

(WebCore::WebGLRenderingContextBase::create):

  • testing/Internals.cpp:

(WebCore::Internals::requestedMetal):

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

(WebCore::Internals::platformSupportsMetal):

LayoutTests:

Add tests to verify WebGL feature flag works as intended.

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

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

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

Reviewed by Eric Carlson.

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

  • html/track/VTTRegion.cpp:

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

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

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

Reviewed by Tim Horton.

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

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

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

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

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

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

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

Reviewed by Tim Horton.

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

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::dispatchAfterEnsuringUpdatedScrollPosition):

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

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

Reviewed by Alan Bujtas.

Source/WebCore:

Use the inline iterator instead.

  • layout/integration/LayoutIntegrationLineIterator.h:

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

  • layout/integration/LayoutIntegrationLineIteratorLegacyPath.h:

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

  • layout/integration/LayoutIntegrationLineIteratorModernPath.h:

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

  • layout/integration/LayoutIntegrationRunIterator.cpp:

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

  • layout/integration/LayoutIntegrationRunIterator.h:

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

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

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

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

(WebCore::LegacyInlineTextBox::paintMarkedTextDecoration):

  • rendering/LegacyLineLayout.cpp:

(WebCore::setLogicalWidthForTextRun):

  • rendering/RenderElement.cpp:

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

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

(WebCore::TextDecorationPainter::paintTextDecoration):

  • rendering/TextDecorationPainter.h:

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

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeAffectsVisualOverflow const):

  • style/InlineTextBoxStyle.cpp:

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

Moved from LegacyInlineFlowBox.

(WebCore::enclosingRendererWithTextDecoration):

Moved from RenderElement.

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

  • style/InlineTextBoxStyle.h:

LayoutTests:

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

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

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

Reviewed by Alan Bujtas.

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

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

(WebCore::LegacyInlineTextBox::paint):

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

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

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

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

Reviewed by Antti Koivisto.

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

  • html/HTMLAnchorElement.cpp:

(WebCore::appendServerMapMousePosition):

  • rendering/RenderBox.cpp:

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

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

(WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint const):

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

(WebCore::RenderFragmentedFlow::mapLocalToContainer const):

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

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

  • rendering/RenderGeometryMap.h:

(WebCore::RenderGeometryMap::mapCoordinatesFlags const):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::mapLocalToContainer const):

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

(WebCore::RenderMultiColumnFlow::mapAbsoluteToLocalPoint const):

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

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

  • rendering/RenderObject.h:

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

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

(WebCore::RenderTheme::volumeSliderOffsetFromMuteButton const):

  • rendering/RenderView.cpp:

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

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

(WebCore::RenderSVGForeignObject::mapLocalToContainer const):

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

(WebCore::RenderSVGInline::mapLocalToContainer const):

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

(WebCore::RenderSVGModelObject::mapLocalToContainer const):

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

(WebCore::RenderSVGRoot::mapLocalToContainer const):

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

(WebCore::RenderSVGText::mapLocalToContainer const):

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

(WebCore::SVGRenderSupport::mapLocalToContainer):

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

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

Reviewed by Antti Koivisto.

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

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

(WebCore::PageOverlayController::shouldSkipLayerInDump const):

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

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

  • platform/graphics/GraphicsLayer.h:

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

  • platform/graphics/GraphicsLayerClient.h:

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

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

(WebCore::GraphicsLayerCA::dumpAdditionalProperties const):

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

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

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

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

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

(WebCore::RenderLayerCompositor::layerTreeAsText):

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

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

  • testing/MockPageOverlayClient.cpp:

(WebCore::MockPageOverlayClient::layerTreeAsText):

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

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

Reviewed by Alex Christensen.

Convert the bool argument to an enum class.

  • css/makeprop.pl:

(colorFromPrimitiveValue):

  • style/StyleBuilderCustom.h:

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

  • style/StyleBuilderState.cpp:

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

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

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

Unreviewed test gardening.

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

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

Reviewed by Brent Fulgham.

Check quarantine bits for webarchive files only.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::isQuarantinedAndNotUserApproved):

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

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

Reviewed by Brent Fulgham.

Source/WebKit:

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

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

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

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

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

LayoutTests:

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

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

Unreviewed, GStreamer gardening

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

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

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

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

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

  • Shared/SandboxExtension.h:

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

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

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

Reviewed by Eric Carlson.

No change of behavior.

  • Modules/mediastream/RTCPeerConnection.cpp:

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

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

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

Reviewed by Antti Koivisto.

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

  • html/HTMLDetailsElement.cpp:

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

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

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

Reviewed by Antti Koivisto.

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

LayoutTests/imported/w3c:

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

Source/JavaScriptCore:

  • inspector/protocol/CSS.json:

Source/WebCore:

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::pseudoId):

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

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

  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::protocolValueForPseudoId):

  • rendering/RenderElement.cpp:

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

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

(WebCore::operator<<):

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

(WebCore::RenderTreeBuilder::destroyAndCleanUpAnonymousWrappers):

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateAfterDescendants):

  • rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:

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

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

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

Source/WebInspectorUI:

  • UserInterface/Controllers/CSSManager.js:

(WI.CSSManager.displayNameForPseudoId):

LayoutTests:

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

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

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

Source/WebCore:

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

  • dom/Document.cpp:

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

Tools:

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

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

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

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(testWebViewDocumentFocus):
(beforeAll):

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

(-[TestWKWebView focus]):

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

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

Reviewed by Eric Carlson.

Source/WebCore:

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

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::visibilityStateChanged):

  • platform/graphics/MediaPlayer.cpp:

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

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

(WebCore::MediaPlayerPrivateInterface::setVisibleForCanvas):

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

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

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

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

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

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

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

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

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

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

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

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

Source/WebKit:

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

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

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

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

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:

Source/WebKitLegacy/win:

  • FullscreenVideoController.cpp:

(FullscreenVideoController::exitFullscreen):

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

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

Reviewed by Eric Carlson.

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

  • Modules/mediastream/RTCIceTransport.cpp:

(WebCore::RTCIceTransport::~RTCIceTransport):

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

(WebCore::RTCRtpTransceiver::RTCRtpTransceiver):

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

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

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

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

Source/ThirdParty/libwebrtc:

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

Source/WebCore:

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

Covered by rebased tests.

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

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

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

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

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

(WebCore::operator==):

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

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

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

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

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

(WebCore::LibWebRTCRtpReceiverBackend::rtpDtlsTransportBackend):

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

(WebCore::LibWebRTCRtpSenderBackend::rtpDtlsTransportBackend):

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

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:
Note: See TracTimeline for information about the timeline view.