Timeline
Jun 28, 2021:
- 11:11 PM Changeset in webkit [279363] by
-
- 6 edits in trunk/Source/WebCore
[GStreamer][EME] Fix resources release when a MediaKeySession is closed
https://bugs.webkit.org/show_bug.cgi?id=227403
Reviewed by Philippe Normand.
Thunder sessions should be a BoxPtr, already when stored at the
CDMInstanceSessionThunder, it does not make sense to store then in
a unique_ptr. This way the same session lives in the
MediaKeySession wrapper (CDMInstanceSessionThunder) and inside the
KeyStores.
Removed the CDMInstanceProxy key store. It is not needed.
When a session is closed in Thunder, there should be a cascade to
remove it from the other synced stores, that's why we introduce
the removeAllKeysFrom logic.
Regular key stores do not manage key session references
anymore. They are only needed in the CDMProxy class, which is
where the keys are shared among different sessions. We were
managing key session references in other stores and they were
messing up with the key references in the CDMProxy class. In
those cases, a key kept in a local store could have a reference
that would prevent the CDMProxy key store from removing it when
asked from it. There were also cases of removing keys from local
stores that were creating negative reference numbers, which
created the opposite effect, this is, leaving in place keys in the
CDMProxy store that should be released.
- platform/encryptedmedia/CDMProxy.cpp:
(WebCore::KeyStore::merge): Simplified to just add keys.
(WebCore::KeyStore::add): Adds references (if needed) and merges
if needed.
(WebCore::KeyStore::unrefAllKeys): Renamed. Unrefs all keys from a
store by copying itself and calling unrefAllKeysFrom that copy.
(WebCore::KeyStore::unref): Renamed. Uses proper refefencing.
(WebCore::CDMProxy::unrefAllKeysFrom): Method to unref all keys
that are contained in some other store.
(WebCore::CDMInstanceProxy::mergeKeysFrom): There is no more key
store in this class.
(WebCore::CDMInstanceProxy::unrefAllKeysFrom): Renamed. Calls the
CDMproxy to unref the keys from there.
- platform/encryptedmedia/CDMProxy.h:
(WebCore::KeyHandle::mergeKeyInto): Merges one key into self by
copying status, data and summing reference count.
(WebCore::KeyHandle::numSessionReferences const): Turn int.
(WebCore::KeyHandle::hasReferences const): Added.
(WebCore::KeyStore::addSessionReferenceTo const):
(WebCore::KeyStore::removeSessionReferenceFrom const): Helpers to
check if the store is reference counted or not. Default is do
nothing and but the ReferenceAwareKeyStore redefines them to do
reference counting.
(WebCore::KeyStore::unrefAllKeys): Deleted.
- platform/encryptedmedia/clearkey/CDMClearKey.cpp:
(WebCore::CDMInstanceSessionClearKey::updateLicense):
(WebCore::CDMInstanceSessionClearKey::removeSessionData): Use
renamed methods.
- platform/graphics/gstreamer/eme/CDMThunder.h:
- platform/graphics/gstreamer/eme/CDMThunder.cpp:
(WebCore::CDMInstanceSessionThunder::status const):
(WebCore::CDMInstanceSessionThunder::keyUpdatedCallback):
(WebCore::CDMInstanceSessionThunder::requestLicense):
(WebCore::CDMInstanceSessionThunder::updateLicense):
(WebCore::CDMInstanceSessionThunder::removeSessionData):
(WebCore::CDMInstanceSessionThunder::loadSession): Use BoxPtr in
the session.
(WebCore::CDMInstanceSessionThunder::closeSession): Close the
current session, release the BoxPtr, notify the instance and
therefore the proxy to unref all they key IDs in this session and
empty the local key store.
- 9:05 PM Changeset in webkit [279362] by
-
- 11 edits in trunk/Source/JavaScriptCore
Add a new pattern to instruction selector to use BIC supported by ARM64
https://bugs.webkit.org/show_bug.cgi?id=227202
Patch by Yijia Huang <Yijia Huang> on 2021-06-28
Reviewed by Filip Pizlo.
This patch includes three modifications:
- Add bit clear (BIC), or not (ORN), and extract and insert bitfield at lower end (FBXIL) to Air opcode to serve intruciton selector.
- Add bitfield clear (BFC) to MacroAssembler.
- Do refactoring - rename Air opcodes added in the previous patches.
### Part A BIC ###
Given the operation:
bic Rd, Rn, Rm
The BIC (Bit Clear) instruction performs an AND operation on the bits in Rn with the
complements of the corresponding bits in the value of Rm. The instruction selector can
utilize this to lowering certain patterns in B3 IR before further Air optimization.
The equivalent patterns of this instruction are:
Pattern 1:
d = n & (-m - 1)
Pattern 2:
d = n & (m -1)
In order to get benefits for complement operation, current instruction selector uses
mvn instruction to lower the pattern value -1. Then, a new strength reduction rule is
introduced:
Turn this: -value - 1
Into this: value -1
So, d = n & (m -1) is selected as the canonical form.
Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = ArgumentReg(%x1)
Int @2 = -1
Int @3 = BitXor(@1, @2)
Int @4 = BitAnd(@0, @3)
Void@5 = Return(@4, Terminal)
Before Adding BIC:
Old optimized AIR
Not %x1, %x1, @3
And %x0, %x1, %x0, @4
Ret %x0, @5
After Adding BIC:
New optimized AIR
Bic %x0, %x1, %x0, @4
Ret %x0, @5
### Part A ORN ###
Given the operation:
orn Rd, Rn, Rm
Bitwise OR NOT (shifted register) performs a bitwise (inclusive) OR of a register value
Rn and the complement of an optionally-shifted register value Rm, and writes the result
to the destination register Rd.
The equivalent patterns of this instruction are:
Pattern 1:
d = n | (-m - 1)
Pattern 2:
d = n | (m -1)
Then, d = n | (m -1) is selected as the canonical form.
Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = ArgumentReg(%x1)
Int @2 = -1
Int @3 = BitXor(@1, @2)
Int @4 = BitOr(@0, @3)
Void@5 = Return(@4, Terminal)
Before Adding BIC:
Old optimized AIR
Not %x1, %x1, @3
Or %x0, %x1, %x0, @4
Ret %x0, @5
After Adding BIC:
New optimized AIR
Orn %x0, %x1, %x0, @4
Ret %x0, @5
### Part A FBXIL ###
Given the operation:
bfxil Rd, Rn, lsb, width
Bitfield extract and insert at low end(FBXIL) copies any number of low-order bits
from a source register into the same number of adjacent bits at the low end in
the destination register, leaving other bits unchanged.
The equivalent patterns of this instruction are:
Pattern 1:
mask1 = (1 << width) - 1
mask2 = ~mask1
((n >> lsb) & mask1) | (d & mask2)
Pattern 2:
mask1 = ((1 << width) - 1) << lsb
mask2 = ~(mask1 >> lsb)
((n & mask1) >> lsb) | (d & mask2)
Then, introduce a strength reduction rule for easier recognization.
Turn this: (v & maskShift) >> shiftAmount
Into this: (v >> shiftAmount) & mask
with constraints:
- maskShift = mask << lsb
- mask = (1 << width) - 1
- 0 <= shiftAmount < datasize
- 0 < width < datasize
- shiftAmount + width <= datasize
The canonical form to match FBXIL is d = ((n >> lsb) & mask1) | (d & mask2).
Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = ArgumentReg(%x1)
Int @2 = lsb
Int @3 = mask1
Int @4 = mask2
Int @5 = BitAnd(@1, @3)
Int @6 = BitAnd(@0, @4))
Int @7 = ZShr(@5, @2)
Int @8 = BitOr(@7, @6)
Void@9 = Return(@8, Terminal)
Before Adding BIC:
Old optimized AIR
And mask2, %x0, %x0, @6
ExtractUnsignedBitfield %x1, lsb, width, %x1, @7
Or %x0, %x1, %x0, @8
Ret %x0, @9
After Adding BIC:
New optimized AIR
ExtractInsertBitfieldAtLowEnd %x1, lsb, width, %x0, @8
Ret64 %x0, @9
### Part B ###
The Bitfield Clear (BFC), leaving other bits unchanged, is similar to BFI which is an
alias of BFM. Given the operation:
bfc Rd, lsb, width
The equivalent pattern of this instruction is:
mask = ((1 << width) - 1) << lsb
d = d & ~mask
Since mask is a constant and B3 performs constant fold in the optimization phase, this
pattern will directly lower to the BitAnd binary operation. So, no need to match this pattern.
### Part C ###
At MacroAssembler level, the emitters are exepected to be expressed in english
(e.g. something like clearBitField for BFC). Do refactoring to rename Air opcode for
UBFX, UBFIZ, BFI, and BIC.
- assembler/ARM64Assembler.h:
(JSC::ARM64Assembler::bfc):
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::extractUnsignedBitfield32):
(JSC::MacroAssemblerARM64::extractUnsignedBitfield64):
(JSC::MacroAssemblerARM64::insertUnsignedBitfieldInZero32):
(JSC::MacroAssemblerARM64::insertUnsignedBitfieldInZero64):
(JSC::MacroAssemblerARM64::insertBitField32):
(JSC::MacroAssemblerARM64::insertBitField64):
(JSC::MacroAssemblerARM64::clearBitField32):
(JSC::MacroAssemblerARM64::clearBitField64):
(JSC::MacroAssemblerARM64::clearBitsWithMask32):
(JSC::MacroAssemblerARM64::clearBitsWithMask64):
(JSC::MacroAssemblerARM64::orNot32):
(JSC::MacroAssemblerARM64::orNot64):
(JSC::MacroAssemblerARM64::ubfx32): Deleted.
(JSC::MacroAssemblerARM64::ubfx64): Deleted.
(JSC::MacroAssemblerARM64::ubfiz32): Deleted.
(JSC::MacroAssemblerARM64::ubfiz64): Deleted.
(JSC::MacroAssemblerARM64::bitFieldInsert32): Deleted.
(JSC::MacroAssemblerARM64::bitFieldInsert64): Deleted.
- assembler/testmasm.cpp:
(JSC::testMultiplySignExtend32):
(JSC::testMultiplySubSignExtend32):
(JSC::testExtractUnsignedBitfield32):
(JSC::testExtractUnsignedBitfield64):
(JSC::testInsertUnsignedBitfieldInZero32):
(JSC::testInsertUnsignedBitfieldInZero64):
(JSC::testInsertBitField32):
(JSC::testInsertBitField64):
(JSC::testClearBitField32):
(JSC::testClearBitField64):
(JSC::testClearBitsWithMask32):
(JSC::testClearBitsWithMask64):
(JSC::testOrNot32):
(JSC::testOrNot64):
(JSC::testMul32SignExtend): Deleted.
(JSC::testMulSubSignExtend32): Deleted.
(JSC::testUbfx32): Deleted.
(JSC::testUbfx64): Deleted.
(JSC::testUbfiz32): Deleted.
(JSC::testUbfiz64): Deleted.
(JSC::testBitFieldInsert32): Deleted.
(JSC::testBitFieldInsert64): Deleted.
- b3/B3LowerToAir.cpp:
- b3/B3ReduceStrength.cpp:
- b3/air/AirOpcode.opcodes:
- b3/testb3.h:
- b3/testb3_2.cpp:
(testInsertBitField32):
(testInsertBitField64):
(testBIC32):
(testBIC64):
(testOrNot32):
(testOrNot64):
(addBitTests):
(testBitFieldInsert32): Deleted.
(testBitFieldInsert64): Deleted.
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::cageWithoutUntagging):
(JSC::AssemblyHelpers::cageConditionallyAndUntag):
- 8:11 PM Changeset in webkit [279361] by
-
- 13 edits2 adds in trunk
REGRESSION (r279310): Occasional crash when focusing login fields on iPad with a software keyboard
https://bugs.webkit.org/show_bug.cgi?id=227472
rdar://79876040
Reviewed by Tim Horton.
Source/WebKit:
I added a mechanism in r279310 to defer calling
-[WKContentView _setSuppressSoftwareKeyboard:NO]until we've
gotten a response from the web process containing an up-to-date autocorrection context. However, in the case
where the WKWebView client sets_suppressSoftwareKeyboardtoYESand then immediately toNOunderneath the
scope of a call to-_webView:willStartInputSession:, we'll end up calling into-_setSuppressSoftwareKeyboard:
inside the scope of-requestAutocorrectionContextWithCompletionHandler:, when we've received an
autocorrection context while sync-waiting. This is problematic because it breaks UIKeyboardTaskQueue's state,
since the call to-_setSuppressSoftwareKeyboard:will attempt to enqueue a new task after the previous task's
context has already returned execution to the parent.
To fix this, we instead invoke
self._suppressSoftwareKeyboard = NO;*before* calling the completion block in
-_handleAutocorrectionContext:. This allows the request for an autocorrection context underneath
-_setSuppressSoftwareKeyboard:to be handled (and completed) as a child task of the previous task, which keeps
UIKeyboardTaskQueue in a valid state.
Test: fast/forms/ios/suppress-software-keyboard-while-focusing-input.html
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _handleAutocorrectionContext:]):
Tools:
Make it possible to induce the crash (prior to the fix) by introducing two new testing primitives on iOS:
-
UIScriptController.suppressSoftwareKeyboard, a readwrite attribute that can be used to suppress the
appearance of the software keyboard on iOS by calling
-[WKWebView _setSuppressSoftwareKeyboard:].
-
UIScriptController.willStartInputSessionCallback, a callback that is invoked when we're about to start a
UI-process-side input session. On iOS, this corresponds to
-[_WKInputDelegate _webView:willStartInputSession:].
- TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
- TestRunnerShared/UIScriptContext/UIScriptContext.h:
- TestRunnerShared/UIScriptContext/UIScriptController.h:
(WTR::UIScriptController::suppressSoftwareKeyboard const):
(WTR::UIScriptController::setSuppressSoftwareKeyboard):
- TestRunnerShared/UIScriptContext/UIScriptControllerShared.cpp:
(WTR::UIScriptController::setWillStartInputSessionCallback):
(WTR::UIScriptController::willStartInputSessionCallback const):
- WebKitTestRunner/cocoa/TestRunnerWKWebView.h:
- WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:
(-[TestRunnerWKWebView initWithFrame:configuration:]):
(-[TestRunnerWKWebView resetInteractionCallbacks]):
(-[TestRunnerWKWebView _webView:willStartInputSession:]):
- WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformResetStateToConsistentValues):
Make sure that we revert
_suppressSoftwareKeyboardtoNO, in case a layout test ends while leaving this on,
to prevent subsequent layout tests from behaving in unexpected ways.
- WebKitTestRunner/ios/UIScriptControllerIOS.h:
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptControllerIOS::setWillStartInputSessionCallback):
(WTR::UIScriptControllerIOS::suppressSoftwareKeyboard const):
(WTR::UIScriptControllerIOS::setSuppressSoftwareKeyboard):
LayoutTests:
Add a new layout test to exercise the crash. See Tools and Source/WebKit ChangeLogs for more information.
This new test suppresses and then immediately un-suppresses the software keyboard inside the
-_webView:willStartInputSession:input delegate hook while focusing a regular text field.
- fast/forms/ios/suppress-software-keyboard-while-focusing-input-expected.txt: Added.
- fast/forms/ios/suppress-software-keyboard-while-focusing-input.html: Added.
- 6:44 PM Changeset in webkit [279360] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Mark media/track/video/video-track-mkv-{vorbis,theora}-language.html as passing
https://bugs.webkit.org/show_bug.cgi?id=227458
Unreviewed test gardening. These tests were fixed by r278860.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-06-28
- platform/glib/TestExpectations:
- 6:35 PM Changeset in webkit [279359] by
-
- 2 edits in branches/safari-612.1.21-branch/Source/WebKit
Cherry-pick r279352. rdar://problem/79891891
REGRESSION (r279305) [Mac DEBUG] 4 SOAuthorizationRedirect Tests are Crashing with Assert: !m_sheetWindow
https://bugs.webkit.org/show_bug.cgi?id=227454
<rdar://problem/79871423>
Reviewed by Kate Cheney.
The new assertion is wrong in the case that the app is hidden. When minimized (or hidden) we need to remember
to dismiss the sheet once Cocoa restores the app to visible state. So the m_sheetWindow may still exist after
returning from 'dismissViewController'. We should assert that either m_sheetWindow is nullptr, or that both
m_sheetWindow and m_sheetWindowWillCloseObserver exist.
- UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm: (WebKit::SOAuthorizationSession::becomeCompleted):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@279352 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:34 PM Changeset in webkit [279358] by
-
- 38 edits in trunk
CSS parser "consume declaration" algorithm does not handle whitespace correctly
https://bugs.webkit.org/show_bug.cgi?id=227368
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-properties-values-api/at-property-animation-expected.txt:
- web-platform-tests/css/css-properties-values-api/at-property-expected.txt:
- web-platform-tests/css/css-properties-values-api/at-property-shadow-expected.txt:
- web-platform-tests/css/css-properties-values-api/determine-registration-expected.txt:
- web-platform-tests/css/css-properties-values-api/registered-property-cssom-expected.txt:
- web-platform-tests/css/css-properties-values-api/var-reference-registered-properties-expected.txt:
Regenerated to reflect the whitespace trimming: one new pass, no new failures. Some of
these tests will also need updates to match the newer CSS specification. Not doing those
here right now.
- web-platform-tests/css/css-properties-values-api/at-property.html:
Pulled down a newer version of this test from the WPT repository with expectations in line
with newer CSS specification.
- web-platform-tests/css/css-syntax/declarations-trim-whitespace-expected.txt:
- web-platform-tests/css/css-variables/variable-cssText-expected.txt:
Expect most tests to pass instead of fail. There are still some failures. Given my reading
of the CSS specification I suspect it is the tests that are incorrect.
- web-platform-tests/css/css-variables/variable-definition-expected.txt:
- web-platform-tests/css/css-variables/variable-definition.html:
Pulled down a newer version of this test from the WPT repository with expectations in line
with newer CSS specification. Some tests are still failing because of expectations about
trailing whitespace. Given my reading of the CSS specification I suspect it is the tests
that are incorrect.
- web-platform-tests/css/css-variables/variable-reference-expected.txt:
- web-platform-tests/css/css-variables/variable-reference.html:
- web-platform-tests/css/css-variables/variable-substitution-variable-declaration-expected.txt:
- web-platform-tests/css/css-variables/variable-substitution-variable-declaration.html:
Pulled down a newer version of these tests from the WPT repository with expectations in
line with newer CSS specification.
- web-platform-tests/css/cssom/variable-names-expected.txt: Expect tests to pass, not fail.
Source/WebCore:
Test: imported/w3c/web-platform-tests/css/css-syntax/declarations-trim-whitespace.html
To avoid creating regressions in CSS variable behavior, had to make
changes there to handle whitespace correctly at the same time as the
change to the "consume declaration" algorithm.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::customPropertyValue): Restructured
to not have a case for each variant custom value type. This lets us
support the new Empty value type without extra code here.
- css/CSSCustomPropertyValue.cpp:
(WebCore::CSSCustomPropertyValue::createEmpty): Added. Used for a new
Empty value type for properties that have empty string as their value,
which is a new capability added to the CSS specification.
(WebCore::CSSCustomPropertyValue::equals const): Removed unneeded pointer
comparison optimization. Added support for Empty value.
(WebCore::CSSCustomPropertyValue::customCSSText const): Updated to use
null string for m_stringValue instead of a separate m_serialized flag.
Added support for Empty value.
(WebCore::CSSCustomPropertyValue::tokens const): Added support for
Empty value. Also call directly to customCSSText instead of calling
through cssText.
- css/CSSCustomPropertyValue.h: Updated for the above, adding Empty value.
Removed m_serialized. Greatly simplified the copy constructor since Ref
now has a copy constructor.
- css/CSSVariableReferenceValue.cpp:
(WebCore::resolveVariableFallback): Consume whitespace after the comma,
matching what is now called for in the CSS specification.
- css/calc/CSSCalcExpressionNodeParser.cpp:
(WebCore::CSSCalcExpressionNodeParser::parseCalcFunction): Use
consumeCommaIncludingWhitespace to simplify the code. No behavior change,
just refactoring.
- css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::consumeDeclaration): Updated algorithm to match
the CSS specification, trimming whitespace correctly.
(WebCore::CSSParserImpl::consumeCustomPropertyValue): Added support for
a custom property value with no declaration value, as now called for in
the CSS specification, using CSSCustomPropertyValue::createEmpty.
- css/parser/CSSVariableParser.cpp:
(WebCore::isValidVariableReference): Allow empty fallback, as now called
for in the CSS specification.
(WebCore::isValidConstantReference): Ditto.
LayoutTests:
- css-custom-properties-api/inline.html: Update expectations to expect leading
whitespace to be trimmed.
- fast/css/variables/test-suite/011.html: Updated to expect a variable reference
with no fallback tokens to be valid. Change in the CSS specification since this
test was written.
- fast/css/variables/test-suite/013.html: Ditto.
- fast/css/variables/test-suite/041.html: Ditto.
- fast/css/variables/test-suite/043.html: Ditto.
- fast/css/variables/test-suite/061.html: Updated to expect a value with no tokens
to be valid. Change in the CSS specification since this test was written.
- fast/css/variables/test-suite/100.html: Updated to expect a variable reference
with no fallback tokens to be valid. Change in the CSS specification since this
test was written.
- fast/css/variables/test-suite/105.html: Ditto.
- fast/css/variables/test-suite/136.html: Ditto.
- fast/css/variables/test-suite/170.html: Updated to expect a value with no tokens
to be valid. Change in the CSS specification since this test was written.
- fast/css/variables/test-suite/171.html: Ditto.
- platform/mac/TestExpectations: Removed a line for a test that no longer exists
(not changed in this patch).
- 6:29 PM Changeset in webkit [279357] by
-
- 1 copy in branches/safari-612.1.21-branch
New branch.
- 6:10 PM Changeset in webkit [279356] by
-
- 6 edits in trunk/LayoutTests
Fix canvas color stroke test stroke widths
https://bugs.webkit.org/show_bug.cgi?id=223005
<rdar://75239330>
Reviewed by Simon Fraser.
The lineWidth should be the same in both test and reference.
- fast/text/canvas-color-fonts/stroke-color-COLR.html:
- fast/text/canvas-color-fonts/stroke-color-shadow-COLR.html:
- http/tests/canvas/color-fonts/stroke-color-sbix.html:
- http/tests/canvas/color-fonts/stroke-color-shadow-sbix.html:
- platform/mac/TestExpectations:
- 5:39 PM Changeset in webkit [279355] by
-
- 13 edits2 adds in trunk/Source
Refactor MacOS keyboard scrolling and use KeyboardScroll struct
https://bugs.webkit.org/show_bug.cgi?id=226986
Patch by Dana Estra <destra@apple.com> on 2021-06-28
Reviewed by Tim Horton.
Source/WebCore:
No tests yet.
- page/EventHandler.cpp:
(WebCore::EventHandler::defaultSpaceEventHandler):
Added usage of switch EventDrivenSmoothKeyboardScrolling
that when enabled sends KeyboardEvent to
HandleKeyboardScrolling.
(WebCore::EventHandler::scrollDistance):
(WebCore::EventHandler::handleKeyboardScrolling):
Makes KeyboardScroll and calls scrollRecursively.
(WebCore::EventHandler::defaultArrowEventHandler):
Added usage of switch EventDrivenSmoothKeyboardScrolling
that when enabled sends KeyboardEvent to
HandleKeyboardScrolling.
- page/EventHandler.h:
- page/KeyboardScroll.cpp: Added.
- page/KeyboardScroll.h: Added.
Source/WebKit:
In addition to notes underneath, changed usage of WebKit::KeyboardScroll, WebKit::ScrollingIncrement, and WebKit::ScrollingDirection to
WebCore::KeyboardScroll, WebCore::ScrollGranularity, and WebCore::ScrollDirection, respectively.
- UIProcess/ios/WKKeyboardScrollingAnimator.h:
- UIProcess/ios/WKKeyboardScrollingAnimator.mm:
(-[WKKeyboardScrollingAnimator parameters]):
Deleted. Now lives in WebCore/KeyboardScroll.h.
(unitVector):
Deleted. Now lives in WebCore/KeyboardScroll.h.
(perpendicularAbsoluteUnitVector):
(boxSide):
(-[WKKeyboardScrollingAnimator keyboardScrollForEvent:]):
(-[WKKeyboardScrollingAnimator beginWithEvent:]):
(farthestPointInDirection):
(-[WKKeyboardScrollViewAnimator distanceForIncrement:inDirection:]):
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::handleEditingKeyboardEvent):
(WebKit::WebPage::performNonEditingBehaviorForSelector):
Added switch that removes selectors that are now handled by
EventHandler when EventHandlerDrivenSmoothKeyboardScrolling
is enabled.
- 5:24 PM Changeset in webkit [279354] by
-
- 18 edits in trunk/Source/WebKit
NetworkProcessProxy::networkProcessDidTerminate() should copy process pools before iterating over them
https://bugs.webkit.org/show_bug.cgi?id=227468
Reviewed by Alex Christensen.
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::networkProcessDidTerminate):
- 5:21 PM Changeset in webkit [279353] by
-
- 2 edits in trunk/Source/WebKit
Nullptr crash in ResourceLoadStatisticsDatabaseStore::allAttributedPrivateClickMeasurement
https://bugs.webkit.org/show_bug.cgi?id=227462
rdar://50772934
Reviewed by Chris Dumez.
Return early if statement cannot be created.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::insertDomainRelationshipList):
(WebKit::ResourceLoadStatisticsDatabaseStore::allAttributedPrivateClickMeasurement):
- 4:56 PM Changeset in webkit [279352] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION (r279305) [Mac DEBUG] 4 SOAuthorizationRedirect Tests are Crashing with Assert: !m_sheetWindow
https://bugs.webkit.org/show_bug.cgi?id=227454
<rdar://problem/79871423>
Reviewed by Kate Cheney.
The new assertion is wrong in the case that the app is hidden. When minimized (or hidden) we need to remember
to dismiss the sheet once Cocoa restores the app to visible state. So the m_sheetWindow may still exist after
returning from 'dismissViewController'. We should assert that either m_sheetWindow is nullptr, or that both
m_sheetWindow and m_sheetWindowWillCloseObserver exist.
- UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:
(WebKit::SOAuthorizationSession::becomeCompleted):
- 4:52 PM Changeset in webkit [279351] by
-
- 5 edits in trunk/Source/WebKit
I-beam pointer is vertical for vertical text
https://bugs.webkit.org/show_bug.cgi?id=227414
<rdar://problem/77564647>
Reviewed by Tim Horton.
Pass the orientation from the renderer to the WKContentView. Rename
caretHeight to caretLength now that we use it to calculate the I-beam
size for vertical text.
- Shared/ios/InteractionInformationAtPosition.h:
- Shared/ios/InteractionInformationAtPosition.mm:
(WebKit::InteractionInformationAtPosition::encode const):
(WebKit::InteractionInformationAtPosition::decode):
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView pointerInteraction:styleForRegion:]):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::populateCaretContext):
- 4:06 PM Changeset in webkit [279350] by
-
- 2 edits in trunk/Tools
Add wdx to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=227466
Unreviewed
- Scripts/webkitpy/common/config/contributors.json: Add wdx as committer
- 2:44 PM Changeset in webkit [279349] by
-
- 6 edits4 adds in trunk
Live Text selections inside images is misaligned when "object-fit" is not "fill"
https://bugs.webkit.org/show_bug.cgi?id=227453
Reviewed by Tim Horton.
Source/WebCore:
We currently use the bounds of the image overlay host element when injecting transformed Live Text into image
element UA shadow roots. However, this causes text to lay out in the wrong place relative to the image when
using any "object-fit" values that are not "fill". To address this, use thereplacedContentRect()of the image
renderer when injecting OCR text quads instead.
Tests: fast/images/text-recognition/image-overlay-object-fit-change.html
fast/images/text-recognition/image-overlay-object-fit.html
- html/HTMLElement.cpp:
(WebCore::HTMLElement::updateWithTextRecognitionResult): See description above for more details.
- page/Page.cpp:
(WebCore::Page::updateElementsWithTextRecognitionResults):
We also refactor this code so that we don't immediately try to update text recognition results, and instead
queue an internal async task to do so. Immediately performing the update here can potentially cause a debug
assertion due to leaving us in a state where we require layout immediately after a rendering update.
(WebCore::Page::cacheTextRecognitionResult):
Additionally adjust the text recognition result caching mechanism to update image overlay content when changing
the replaced content rect, rather than the element's offset width or height. This ensures that changing CSS
"object-fit" values dynamically for images with Live Text causes Live Text bounds to stay up to date.
- page/Page.h:
LayoutTests:
Add a couple of new tests, and do some minor cleanup in an existing test.
- fast/images/text-recognition/image-overlay-object-fit-change-expected.txt: Added.
- fast/images/text-recognition/image-overlay-object-fit-change.html: Added.
Add a layout test to verify that dynamically changing CSS "object-fit" values for an image with Live Text causes
the dimensions of the Live Text to update as well.
- fast/images/text-recognition/image-overlay-object-fit-expected.txt: Added.
- fast/images/text-recognition/image-overlay-object-fit.html: Added.
Add a layout test to verify that Live Text is injected correctly when using all 5 values of "object-fit".
- fast/images/text-recognition/image-overlay-size-change.html:
Clean up this layout test a bit: remove an unnecessarily included script file, add a missing
headtag and
don't try to inject an image overlay 10 times.
- 2:24 PM Changeset in webkit [279348] by
-
- 3 edits in trunk/LayoutTests
[Catalina WK2 Debug/ iOS 14 Debug] fast/css-custom-paint/out-of-memory-while-adding-worklet-module.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=227273
Unreviewed test gardening.
Updating expectation as previous expectation caused possible flaky failure.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 12:57 PM Changeset in webkit [279347] by
-
- 10 edits1 copy in trunk/Tools
[webkitcorepy] Add test suite with temp directory
https://bugs.webkit.org/show_bug.cgi?id=227327
<rdar://problem/79697909>
Reviewed by Stephanie Lewis.
We had some duplicated code which set up, then cleaned up a temporary
directory associated with a test. This should really be owned by a
base class shared between multiple test suites.
- Scripts/libraries/webkitcorepy/setup.py: Bump version.
- Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
- Scripts/libraries/webkitcorepy/webkitcorepy/testing.py: Added.
(PathTestCase): Create a temporary directory before a test starts, delete it after.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/canonicalize_unittest.py:
(TestCanonicalize): Adopt PathTestCase.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/checkout_unittest.py:
(TestCheckout): Adopt PathTestCase.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py:
(TestFind): Adopt PathTestCase.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:
(TestGit): Adopt PathTestCase.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/scm_unittest.py:
(TestScm): Adopt PathTestCase.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_git_svn_unittest.py:
(TestSetupGitSvn): Adopt PathTestCase.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py:
(TestLocalSvn): Adopt PathTestCase.
- 12:56 PM Changeset in webkit [279346] by
-
- 3 edits in trunk/Source/WebCore
[Modern Media Controls] Support customizing the media controls via WebKitAdditions
https://bugs.webkit.org/show_bug.cgi?id=227433
Reviewed by Eric Carlson.
- Support adding additional style sheets and scripts to the media controls via ADDITIONAL_MODERN_MEDIA_CONTROLS_STYLE_SHEETS and ADDITIONAL_MODERN_MEDIA_CONTROLS_SCRIPTS variables in DerivedSources.make
- Support overriding default layout traits object class name in MediaControlsHost.
- DerivedSources.make:
- Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::layoutTraitsClassName const):
- 12:11 PM Changeset in webkit [279345] by
-
- 2 edits in trunk/Tools
[webkitcorepy] Fix race condition in TaskPool unittests
https://bugs.webkit.org/show_bug.cgi?id=227455
<rdar://problem/79873003>
Reviewed by Dewei Zhu.
- Scripts/libraries/webkitcorepy/webkitcorepy/tests/task_pool_unittest.py:
(TaskPoolUnittest.test_invalid_shutdown): Increase worker load to 5 seconds.
- 12:07 PM Changeset in webkit [279344] by
-
- 85 edits150 copies19 moves260 adds43 deletes in trunk/LayoutTests
Resync fetch WPT tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=227307
Reviewed by Geoff Garen.
LayoutTests/imported/w3c:
Resync fetch WPT tests from upstream a38612f39e7752c35320.
- web-platform-tests/fetch/*: Updated.
LayoutTests:
- TestExpectations:
- platform/gtk/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac-wk2/TestExpectations:
- platform/mac/TestExpectations:
- platform/wk2/TestExpectations:
- platform/wpe/TestExpectations:
- tests-options.json:
- 10:55 AM Changeset in webkit [279343] by
-
- 7 edits2 adds in trunk
Add LLInt fast path for less, lesseq, greater and greatereq
https://bugs.webkit.org/show_bug.cgi?id=226266
Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-06-28
Reviewed by Tadeu Zagallo.
The motivation is to add fast path for integers and doubles
in LLInt, so we don't need to go to slow path for those cases.
This patch implements the less, lesseq, greater, greatereq
instruction for ARMv7, MIPS and CLoop.
Microbenchmarking results:
- x86_64: number-comparison-inline definitely 1.3520x faster
- ARMv7: number-comparison-inline definitely 1.3520x faster
JetStream2 results:
- x86_64 jit: 1.015 times better
- x86_64 no-jit: 1.018 times better
- ARMv7 no-jit: 1.004 times worse
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- offlineasm/arm.rb:
- offlineasm/cloop.rb:
- offlineasm/mips.rb:
- 10:41 AM Changeset in webkit [279342] by
-
- 4 edits in trunk/Source/WebKit
Pass correct value of AX per app settings to the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=227441
<rdar://problem/79857797>
Reviewed by Brent Fulgham.
Pass value of type AXValueState instead of a boolean value for per app AX settings.
- Shared/AccessibilityPreferences.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::accessibilityPreferences):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::accessibilityPreferencesDidChange):
- 9:48 AM Changeset in webkit [279341] by
-
- 9 edits in trunk/Source
Prevent sign-extended casts for 32 bits arch
https://bugs.webkit.org/show_bug.cgi?id=227170
Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-06-28
Reviewed by Yusuke Suzuki.
In a number of places, addresses are reinterpreted as uint64, which can
lead to wrong addresses in 32 bits arch.
Source/JavaScriptCore:
- assembler/testmasm.cpp:
(JSC::testBranchTruncateDoubleToInt32):
- disassembler/ARM64/A64DOpcode.h:
(JSC::ARM64Disassembler::A64DOpcode::appendPCRelativeOffset):
- runtime/JSCell.cpp:
(JSC::reportZappedCellAndCrash):
- wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::AirIRGenerator::emitEntryTierUpCheck):
(JSC::Wasm::AirIRGenerator::emitLoopTierUpCheck):
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::emitEntryTierUpCheck):
(JSC::Wasm::B3IRGenerator::emitLoopTierUpCheck):
Source/WTF:
- wtf/LoggerHelper.h:
(WTF::LoggerHelper::childLogIdentifier):
- 9:39 AM Changeset in webkit [279340] by
-
- 11 edits in trunk
RELEASE_ASSERT hit in NetworkSessionCocoa::removeWebSocketTask when using WKWebViewConfiguration._attributedBundleIdentifier
https://bugs.webkit.org/show_bug.cgi?id=227420
<rdar://79609212>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-06-28
Reviewed by Brady Eidson.
Source/WebKit:
WKWebViewConfiguration._attributedBundleIdentifier makes us use a SessionSet per WKWebView.
When the WKWebView is destroyed with an open WebSocket, there's a race condition between the
NetworkSessionCocoa::removeWebPageNetworkParameters message coming from the UI process and the
NetworkConnectionToWebProcess::didClose message coming from the closing of the web process, which
calls NetworkSessionCocoa::removeWebSocketTask which currently expects the WebSocketTask to still
be there. Instead, keep a WeakPtr<SessionSet> and don't remove it if the SessionSet's map is gone.
I wrote an API test that hits this condition sometimes when HAVE_NSURLSESSION_WEBSOCKET is true.
- NetworkProcess/NetworkSession.h:
(WebKit::NetworkSession::removeWebSocketTask):
- NetworkProcess/NetworkSocketChannel.cpp:
(WebKit::NetworkSocketChannel::~NetworkSocketChannel):
- NetworkProcess/cocoa/NetworkSessionCocoa.h:
(WebKit::SessionSet::create):
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::sessionSetForPage):
(WebKit::NetworkSessionCocoa::sessionSetForPage const):
(WebKit::SessionSet::initializeEphemeralStatelessSessionIfNeeded):
(WebKit::SessionSet::isolatedSession):
(WebKit::NetworkSessionCocoa::createWebSocketTask):
(WebKit::NetworkSessionCocoa::addWebSocketTask):
(WebKit::NetworkSessionCocoa::removeWebSocketTask):
(WebKit::NetworkSessionCocoa::SessionSet::initializeEphemeralStatelessSessionIfNeeded): Deleted.
(WebKit::NetworkSessionCocoa::SessionSet::isolatedSession): Deleted.
- NetworkProcess/cocoa/WebSocketTaskCocoa.h:
(WebKit::WebSocketTask::sessionSet):
- NetworkProcess/cocoa/WebSocketTaskCocoa.mm:
(WebKit::WebSocketTask::WebSocketTask):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WebSocket.mm:
(TestWebKitAPI::TEST):
- 8:34 AM Changeset in webkit [279339] by
-
- 7 edits4 adds in trunk
Add helpers to create Spans from CFDataRef and NSData
https://bugs.webkit.org/show_bug.cgi?id=227217
Reviewed by Chris Dumez.
Source/WTF:
Add overloads of asBytes() for CFDataRef and NSData. This is going to
be a common enough pattern to warrent these helpers.
- WTF.xcodeproj/project.pbxproj:
- wtf/PlatformFTW.cmake:
- wtf/PlatformMac.cmake:
- wtf/PlatformWin.cmake:
- wtf/cf/SpanCF.h: Added.
(WTF::asBytes):
- wtf/cocoa/SpanCocoa.h: Added.
(WTF::asBytes):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/cf/SpanCF.cpp: Added.
- TestWebKitAPI/Tests/WTF/cocoa/SpanCocoa.mm: Added.
Add tests for new asBytes() overloads.
- 6:57 AM Changeset in webkit [279338] by
-
- 2 edits in trunk/Tools
[webkitpy] Test timeouts not properly detected when running layout tests with Python 3
https://bugs.webkit.org/show_bug.cgi?id=227442
Patch by Philippe Normand <pnormand@igalia.com> on 2021-06-28
Reviewed by Jonathan Bedard.
- Scripts/webkitpy/port/driver.py:
(Driver._check_for_driver_timeout): out_line contains a byte string, so test it as such.
- 5:41 AM Changeset in webkit [279337] by
-
- 2 edits in trunk/Tools
[GTK] MiniBrowser: add an option to enable the web process sandbox
https://bugs.webkit.org/show_bug.cgi?id=227343
Reviewed by Michael Catanzaro.
- MiniBrowser/gtk/main.c:
(activate):
(main):
- 5:40 AM WebKitGTK/2.32.x edited by
- (diff)
- 5:40 AM Changeset in webkit [279336] by
-
- 4 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit
Merge r278301 - [GTK] Try harder to find initial WebKitWebView size
https://bugs.webkit.org/show_bug.cgi?id=226320
Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2021-06-01
Reviewed by Michael Catanzaro.
Currently we base the viewport size on the drawing area size. The
drawing area is created with an initial size based on the viewport
size, which will be (0, 0) because the drawing area is still null
by that point.
Then, later, during the widget allocation, the drawing area receives
its proper size.
There are 2 issues here. First, this approach guarantees that the
initial viewport size will always be (0, 0), and then there's no
guarantee the widget will be allocated any time soon - for example,
while GtkNotebook in GTK3 does allocate children that aren't currently
visible, GtkStack doesn't (and that means that GtkNotebook in GTK4 and
HdyTabView don't either). This leads to a situation where a page opened
in background will load with 0, 0 size and if a page depends on that,
it won't load correctly.
The first issue can be fixed by basing the viewport size on the view
allocation as well, and then if the widget isn't allocated, we instead
try to use the size of a parent as an estimation, so that the initial
size is at least not 0 even if not fully accurate.
See https://gitlab.gnome.org/GNOME/epiphany/-/issues/1532
- UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::viewSize):
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseGetViewSize):
- UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
- 5:29 AM Changeset in webkit [279335] by
-
- 67 edits in trunk/Source
Not all uses of AudioToolbox framework use soft linking
https://bugs.webkit.org/show_bug.cgi?id=227250
<rdar://problem/79606090>
Reviewed by Eric Carlson.
Source/WebCore:
Unify AudioToolbox, CoreMedia, VideoToolbox and MediaToolbox's method
definitions and their use, ensuring that they are always soft-linked.
Unified builds and the inconsistent use of explicitly using the PAL namespace
caused some calls to be ambiguous leading to compilation errors; some
code would also use the softlinked methods while others called into the frameworks
directly.
To get around those we ensure that any calls to AudioToolbox or CoreMedia is always using
the fully resolved PAL name.
Remove unnecessaryusing namespace PAL;statements wherever applicable.
No change in observable behavior.
- Modules/mediastream/PeerConnectionBackend.cpp:
- Modules/plugins/QuickTimePluginReplacement.mm:
- Modules/webaudio/MediaStreamAudioSourceCocoa.cpp:
(WebCore::MediaStreamAudioSource::consumeAudio):
- dom/Document.cpp:
- html/HTMLCanvasElement.cpp:
- html/HTMLMediaElement.cpp:
- platform/audio/AudioFileReader.h:
- platform/audio/cocoa/AudioFileReaderCocoa.cpp:
(WebCore::AudioFileReader::AudioFileReader):
(WebCore::AudioFileReader::~AudioFileReader):
(WebCore::AudioFileReader::createBus):
(WebCore::createBusFromAudioFile): Deleted.
- platform/audio/cocoa/AudioFileReaderCocoa.h:
- platform/audio/cocoa/AudioOutputUnitAdaptor.cpp:
(WebCore::AudioOutputUnitAdaptor::~AudioOutputUnitAdaptor):
(WebCore::AudioOutputUnitAdaptor::start):
(WebCore::AudioOutputUnitAdaptor::stop):
- platform/audio/cocoa/AudioSampleBufferList.cpp:
(WebCore::AudioSampleBufferList::copyFrom):
- platform/audio/cocoa/AudioSampleDataSource.mm:
- platform/audio/cocoa/WebAudioBufferList.cpp:
(WebCore::WebAudioBufferList::WebAudioBufferList):
- platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
(WebCore::AudioFileReader::decodeAudioForBusCreation):
(WebCore::createBusFromAudioFile): Deleted.
- platform/audio/ios/AudioOutputUnitAdaptorIOS.cpp:
(WebCore::AudioOutputUnitAdaptor::configure):
- platform/audio/mac/AudioOutputUnitAdaptorMac.cpp:
(WebCore::AudioOutputUnitAdaptor::configure):
- platform/cocoa/MediaUtilities.cpp:
(WebCore::createAudioFormatDescription):
(WebCore::createAudioSampleBuffer):
- platform/graphics/RemoteVideoSample.cpp:
(WebCore::RemoteVideoSample::create):
- platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
(WebCore::AudioSourceProviderAVFObjC::create):
(WebCore::AudioSourceProviderAVFObjC::provideInput):
(WebCore::AudioSourceProviderAVFObjC::createMixIfNeeded):
(WebCore::AudioSourceProviderAVFObjC::finalizeCallback):
(WebCore::AudioSourceProviderAVFObjC::prepareCallback):
(WebCore::AudioSourceProviderAVFObjC::unprepareCallback):
(WebCore::AudioSourceProviderAVFObjC::processCallback):
(WebCore::AudioSourceProviderAVFObjC::prepare):
(WebCore::AudioSourceProviderAVFObjC::process):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createImageGenerator):
(WebCore::MediaPlayerPrivateAVFoundationObjC::getStartDate const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::currentMediaTime const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformBufferedTimeRanges const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformMinTimeSeekable const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformMaxTimeSeekable const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformMaxTimeLoaded const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect):
(WebCore::MediaPlayerPrivateAVFoundationObjC::isAvailable):
(WebCore::MediaPlayerPrivateAVFoundationObjC::metadataGroupDidArrive):
(WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive):
(WebCore::MediaPlayerPrivateAVFoundationObjC::performTaskAtMediaTime):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::EffectiveRateChangedListener::stop):
(WebCore::EffectiveRateChangedListener::EffectiveRateChangedListener):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isAvailable):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::currentMediaTime const):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setCurrentTimeDidChangeCallback):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateLastPixelBuffer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::destroyLayer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::streamSession):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::performTaskAtMediaTime):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::isAvailable):
(WebCore::videoTransformationMatrix):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateCurrentFrameImage):
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
(WTF::CFTypeTrait<CMSampleBufferRef>::typeID):
(WebCore::MediaSampleAVFObjC::createImageSample):
(WebCore::MediaSampleAVFObjC::presentationTime const):
(WebCore::MediaSampleAVFObjC::decodeTime const):
(WebCore::MediaSampleAVFObjC::duration const):
(WebCore::MediaSampleAVFObjC::sizeInBytes const):
(WebCore::MediaSampleAVFObjC::videoPixelFormat const):
(WebCore::isCMSampleBufferAttachmentRandomAccess):
(WebCore::doesCMSampleBufferHaveSyncInfo):
(WebCore::isCMSampleBufferRandomAccess):
(WebCore::isCMSampleBufferAttachmentNonDisplaying):
(WebCore::isCMSampleBufferNonDisplaying):
(WebCore::MediaSampleAVFObjC::presentationSize const):
(WebCore::MediaSampleAVFObjC::offsetTimestampsBy):
(WebCore::MediaSampleAVFObjC::setTimestamps):
(WebCore::MediaSampleAVFObjC::isDivisable const):
(WebCore::MediaSampleAVFObjC::divide):
(WebCore::MediaSampleAVFObjC::createNonDisplayingCopy const):
(WebCore::MediaSampleAVFObjC::getRGBAImageData const):
(WebCore::setSampleBufferAsDisplayImmediately):
(WebCore::MediaSampleAVFObjC::isHomogeneous const):
(WebCore::MediaSampleAVFObjC::divideIntoHomogeneousSamples):
(WebCore::MediaSampleAVFObjC::cloneSampleBufferAndSetAsDisplayImmediately):
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::bufferWasConsumedCallback):
(WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::rendererWasAutomaticallyFlushed):
(WebCore::SourceBufferPrivateAVFObjC::enqueueSample):
(WebCore::SourceBufferPrivateAVFObjC::canSetMinimumUpcomingPresentationTime const):
(WebCore::SourceBufferPrivateAVFObjC::setMinimumUpcomingPresentationTime):
- platform/graphics/cocoa/SourceBufferParserWebM.cpp:
(WebCore::SourceBufferParserWebM::OnFrame):
(WebCore::SourceBufferParserWebM::VideoTrackData::consumeFrameData):
(WebCore::SourceBufferParserWebM::VideoTrackData::createSampleBuffer):
(WebCore::SourceBufferParserWebM::AudioTrackData::consumeFrameData):
(WebCore::SourceBufferParserWebM::AudioTrackData::createSampleBuffer):
- platform/graphics/cocoa/VP9UtilitiesCocoa.mm:
(WebCore::convertToCMColorPrimaries):
(WebCore::convertToCMTransferFunction):
(WebCore::convertToCMYCbCRMatrix):
(WebCore::createFormatDescriptionFromVPCodecConfigurationRecord):
- platform/graphics/cocoa/WebCoreDecompressionSession.mm:
(WTF::CFTypeTrait<CMSampleBufferRef>::typeID):
(WebCore::WebCoreDecompressionSession::setTimebase):
(WebCore::WebCoreDecompressionSession::enqueueSample):
(WebCore::WebCoreDecompressionSession::shouldDecodeSample):
(WebCore::WebCoreDecompressionSession::ensureDecompressionSessionForSample):
(WebCore::WebCoreDecompressionSession::decodeSample):
(WebCore::WebCoreDecompressionSession::handleDecompressionOutput):
(WebCore::WebCoreDecompressionSession::getFirstVideoFrame):
(WebCore::WebCoreDecompressionSession::automaticDequeue):
(WebCore::WebCoreDecompressionSession::enqueueDecodedSample):
(WebCore::WebCoreDecompressionSession::isReadyForMoreMediaData const):
(WebCore::WebCoreDecompressionSession::notifyWhenHasAvailableVideoFrame):
(WebCore::WebCoreDecompressionSession::imageForTime):
(WebCore::WebCoreDecompressionSession::flush):
(WebCore::WebCoreDecompressionSession::getDecodeTime):
(WebCore::WebCoreDecompressionSession::getPresentationTime):
(WebCore::WebCoreDecompressionSession::getDuration):
(WebCore::WebCoreDecompressionSession::compareBuffers):
(WebCore::WebCoreDecompressionSession::updateQosWithDecodeTimeStatistics):
- platform/graphics/cv/ImageTransferSessionVT.mm:
(WebCore::ImageTransferSessionVT::createPixelBuffer):
(WebCore::ImageTransferSessionVT::convertCMSampleBuffer):
(WebCore::ImageTransferSessionVT::createCMSampleBuffer):
- platform/ios/PlaybackSessionInterfaceAVKit.mm:
(WebCore::PlaybackSessionInterfaceAVKit::seekableRangesChanged):
- platform/mac/VideoFullscreenInterfaceMac.mm:
- platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:
(WebCore::MediaRecorderPrivateAVFImpl::videoSampleAvailable):
- platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:
(WebCore::AudioSampleBufferCompressor::~AudioSampleBufferCompressor):
(WebCore::AudioSampleBufferCompressor::initialize):
(WebCore::AudioSampleBufferCompressor::finish):
(WebCore::AudioSampleBufferCompressor::initAudioConverterForSourceFormatDescription):
(WebCore::AudioSampleBufferCompressor::attachPrimingTrimsIfNeeded):
(WebCore::AudioSampleBufferCompressor::gradualDecoderRefreshCount):
(WebCore::AudioSampleBufferCompressor::sampleBufferWithNumPackets):
(WebCore::AudioSampleBufferCompressor::provideSourceDataNumOutputPackets):
(WebCore::AudioSampleBufferCompressor::processSampleBuffersUntilLowWaterTime):
(WebCore::AudioSampleBufferCompressor::processSampleBuffer):
(WebCore::AudioSampleBufferCompressor::getOutputSampleBuffer):
(WebCore::AudioSampleBufferCompressor::takeOutputSampleBuffer):
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:
(WebCore::MediaRecorderPrivateWriter::MediaRecorderPrivateWriter):
(WebCore::MediaRecorderPrivateWriter::processNewCompressedVideoSampleBuffers):
(WebCore::MediaRecorderPrivateWriter::processNewCompressedAudioSampleBuffers):
(WebCore::MediaRecorderPrivateWriter::startAssetWriter):
(WebCore::MediaRecorderPrivateWriter::appendCompressedVideoSampleBuffer):
(WebCore::appendEndsPreviousSampleDurationMarker):
(WebCore::copySampleBufferWithCurrentTimeStamp):
(WebCore::MediaRecorderPrivateWriter::appendVideoSampleBuffer):
(WebCore::MediaRecorderPrivateWriter::appendAudioSampleBuffer):
(WebCore::MediaRecorderPrivateWriter::completeFetchData):
(WebCore::MediaRecorderPrivateWriter::pause):
(WebCore::MediaRecorderPrivateWriter::resume):
- platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:
(WebCore::VideoSampleBufferCompressor::~VideoSampleBufferCompressor):
(WebCore::VideoSampleBufferCompressor::initialize):
(WebCore::VideoSampleBufferCompressor::finish):
(WebCore::VideoSampleBufferCompressor::videoCompressionCallback):
(WebCore::VideoSampleBufferCompressor::vtProfileLevel const):
(WebCore::VideoSampleBufferCompressor::initCompressionSession):
(WebCore::VideoSampleBufferCompressor::processSampleBuffer):
(WebCore::VideoSampleBufferCompressor::getOutputSampleBuffer):
(WebCore::VideoSampleBufferCompressor::takeOutputSampleBuffer):
- platform/mediastream/cocoa/AudioMediaStreamTrackRendererInternalUnit.cpp:
(WebCore::LocalAudioMediaStreamTrackRendererInternalUnit::start):
(WebCore::LocalAudioMediaStreamTrackRendererInternalUnit::stop):
(WebCore::LocalAudioMediaStreamTrackRendererInternalUnit::createAudioUnitIfNeeded):
- platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::setSessionSizeAndFrameRate):
(WebCore::AVVideoCaptureSource::frameDurationForFrameRate):
(WebCore::AVVideoCaptureSource::generatePresets):
- platform/mediastream/mac/CoreAudioCaptureDevice.cpp:
(WebCore::CoreAudioCaptureDevice::deviceClock):
- platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioSharedUnit::setupAudioUnit):
(WebCore::CoreAudioSharedUnit::configureMicrophoneProc):
(WebCore::CoreAudioSharedUnit::configureSpeakerProc):
(WebCore::CoreAudioSharedUnit::cleanupAudioUnit):
(WebCore::CoreAudioSharedUnit::reconfigureAudioUnit):
(WebCore::CoreAudioSharedUnit::startInternal):
(WebCore::CoreAudioSharedUnit::stopInternal):
(WebCore::CoreAudioSharedUnit::defaultInputDevice):
- platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp:
- platform/mediastream/mac/MockAudioSharedUnit.mm:
(WebCore::MockAudioSharedUnit::reconfigure):
(WebCore::MockAudioSharedUnit::emitSampleBuffers):
- platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
- platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.cpp:
(WebCore::RealtimeIncomingAudioSourceCocoa::OnData):
- platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:
(WebCore::RealtimeIncomingVideoSourceCocoa::OnFrame):
- platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp:
(WebCore::RealtimeOutgoingVideoSourceCocoa::videoSampleAvailable):
- platform/mediastream/mac/WindowDisplayCapturerMac.mm:
Source/WebCore/PAL:
- pal/cf/AudioToolboxSoftLink.cpp:
- pal/cf/AudioToolboxSoftLink.h: Add methods whose definitions were scattered across
the code.
- pal/cocoa/MediaToolboxSoftLink.cpp:
- pal/cocoa/MediaToolboxSoftLink.h: Same as above.
- pal/cf/AudioToolboxSoftLink.cpp:
- pal/cf/AudioToolboxSoftLink.h: Add missing methods
- pal/cf/CoreMediaSoftLink.cpp:
- pal/cf/CoreMediaSoftLink.h: Add missing methods; Reshuffled definitions as many didn't
exist on Windows, yet could potentially be loaded and error.
- pal/cf/VideoToolboxSoftLink.cpp:
- pal/cf/VideoToolboxSoftLink.h: Add missing methods and fix some spelling in define names
- pal/cocoa/MediaToolboxSoftLink.cpp:
- pal/cocoa/MediaToolboxSoftLink.h: Add missing methods
Source/WebKit:
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::sendAudioComponentRegistrations):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::consumeAudioComponentRegistrations):
- Shared/mac/MediaFormatReader/CoreMediaWrapped.cpp:
(WebKit::createWrapper):
(WebKit::wrapperStorage):
(WebKit::wrapperVTable):
- Shared/mac/MediaFormatReader/MediaFormatReader.cpp:
(WebKit::MediaFormatReader::copyProperty):
- Shared/mac/MediaFormatReader/MediaSampleByteRange.cpp:
(WebKit::MediaSampleByteRange::MediaSampleByteRange):
- Shared/mac/MediaFormatReader/MediaSampleCursor.cpp:
- Shared/mac/MediaFormatReader/MediaTrackReader.cpp:
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::sendAudioComponentRegistrations):
- UIProcess/Media/cocoa/MediaUsageManagerCocoa.mm:
- WebProcess/cocoa/RemoteRealtimeAudioSource.cpp:
- WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.cpp:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::consumeAudioComponentRegistrations):
- 5:20 AM Changeset in webkit [279334] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit
Merge r278198 - [WPE] Correctly compute wheel event phase for 2D axis events
https://bugs.webkit.org/show_bug.cgi?id=226370
Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-05-28
Reviewed by Adrian Perez de Castro.
2D-capable wpe_input_axis_event objects don't have usable axis and delta
values set on the base struct, but keep all that information on the more
detailed wpe_input_axis_2d_event struct.
For such events, the correct phase then has to be special-cased,
otherwise the default determination marks both axes as inactive and only
PhaseEnded events are dispatched into the engine.
- UIProcess/API/wpe/WPEView.cpp:
(WKWPE::m_backend):
- 5:20 AM WebKitGTK/2.32.x edited by
- (diff)
- 5:20 AM Changeset in webkit [279333] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/JavaScriptCore
Merge r278157 - [JSC] Fix crash on 32-bit big endian systems.
https://bugs.webkit.org/show_bug.cgi?id=226264
Patch by Daniel Kolesa <Daniel Kolesa> on 2021-05-27
Reviewed by Caio Araujo Neponoceno de Lima.
This is an instance where properly offsetting was missed since
the issue was not present in 2.30 series and therefore not fixed
by r273104.
- llint/LowLevelInterpreter32_64.asm:
- 5:20 AM Changeset in webkit [279332] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit
Merge r278156 - Transient quarter display with a HiDPI /4k screen and a 200% scaling
https://bugs.webkit.org/show_bug.cgi?id=219202
Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2021-05-27
Reviewed by Adrian Perez de Castro.
Set the root layer transformation before syncing animations and not after.
This way we avoid having the first frame use the wrong scale on hidpi.
- Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):
- 4:53 AM WebKitGTK/2.32.x edited by
- (diff)
- 4:52 AM Changeset in webkit [279331] by
-
- 7 edits in releases/WebKitGTK/webkit-2.32/Source/ThirdParty/ANGLE
Merge r278152 - Cherry-pick ANGLE: D3D11: Skip blits if there is no intersection of dest areas
https://bugs.webkit.org/show_bug.cgi?id=225190
<rdar://77084155>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-05-27
Reviewed by David Kilzer.
Cherry-pick ANGLE commit b574643ef28c92fcea5122dd7a72acb42a514eed
Fixes a security issue on D3D11.
Potential a correctness issue on some OpenGL drivers.
No effect on Metal, but the nodiscard part is still useful.
Upstream description:
D3D11: Skip blits if there is no intersection of dest areas
Blit11 would clip the destination rectangle with the destination size
but ignore the result. gl::ClipRectangle returns false when the
rectangles do not intersect at all, indicating the blit can be skipped.
This could lead to an out-of-bounds write to the GPU memory for the
destination texture.
Mark ClipRectangle as nodiscard to prevent future issues.
- src/libANGLE/angletypes.h:
- src/libANGLE/renderer/d3d/d3d11/Blit11.cpp:
- src/libANGLE/renderer/gl/FramebufferGL.cpp:
(rx::FramebufferGL::clipSrcRegion):
- src/libANGLE/renderer/metal/ContextMtl.mm:
(rx::ContextMtl::updateScissor):
- src/libANGLE/renderer/vulkan/ContextVk.cpp:
(rx::ContextVk::updateScissor):
- src/tests/gl_tests/BlitFramebufferANGLETest.cpp:
(TEST_P):
- 4:49 AM Changeset in webkit [279330] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r277999 - GLContextEGL::swapBuffers() shouldn't do anything for Surfaceless contexts
https://bugs.webkit.org/show_bug.cgi?id=226164
Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-05-24
Reviewed by Philippe Normand.
In case of a surfaceless GLContextEGL, the swapBuffers() method should
return early, avoiding an assert expecting a non-null EGLSurface (not
viable for surfaceless context) and a call to eglSwapBuffers(), which
on some drivers could still fail even when the surfaceless context
support is present and active.
- platform/graphics/egl/GLContextEGL.cpp:
(WebCore::GLContextEGL::swapBuffers):
- 4:49 AM Changeset in webkit [279329] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit
Merge r277998 - [CoordinatedGraphics] Handle null native surface handle for surfaceless rendering
https://bugs.webkit.org/show_bug.cgi?id=226165
Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-05-24
Reviewed by Philippe Normand.
During ThreadedCompositor initialization, a null native surface handle
would represent a surfaceless rendering target. Assuming corresponding
driver support for this behavior, the GL context creation would still
succeed and composition could be performed.
To support this behavior, the GL context is now spawned first, and if
successful, the scene is set as active. But in case of a null native
surface (i.e. surfaceless rendering), the painting has to be mirrored
by default because of the OpenGL coordinate system being the immediate
coordinate system inside which we end up working.
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::m_displayRefreshMonitor):
(WebKit::ThreadedCompositor::createGLContext):
- 3:47 AM Changeset in webkit [279328] by
-
- 2 edits in trunk/Source/WebKit
Possible build breakage after r279221 in some unified build configurations
https://bugs.webkit.org/show_bug.cgi?id=227440
Unreviewed build fix.
Add missing #import <wtf/MachSendRight.h> since
the code use MachSendRight. The code happens to work on default configuration
due to unified build.
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-06-28
- Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
- 3:03 AM Changeset in webkit [279327] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
iPhone 6S - iOS 15.0 - unable to retrieve WebGL2 context
https://bugs.webkit.org/show_bug.cgi?id=226975
rdar://78966563
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-06-28
Reviewed by Kenneth Russell.
Limit the OpenGL ES 3.0 contexts to iOS GPU Family 3, not
4.
The limit was most likely added to guard sample_compare
lod_options properties .lod and .gradient. However, these
are always supported on iOS.
Currently there is already ES 3.0 features implemented
in ANGLE that are guarded by iOS GPU Family 3.
Fixes WebGL 2.0 to work on iPhone6s and similar
devices (A9, A9X).
- src/libANGLE/renderer/metal/DisplayMtl.mm:
(rx::DisplayMtl::getMaxSupportedESVersion const):
- 3:02 AM Changeset in webkit [279326] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
ANGLE Metal index buffer left mapped when building primitive restart ranges
https://bugs.webkit.org/show_bug.cgi?id=227371
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-06-28
Reviewed by Kenneth Russell.
- src/libANGLE/renderer/metal/BufferMtl.mm:
(rx::calculateRestartRanges):
Add unmap.
- 2:24 AM Changeset in webkit [279325] by
-
- 2 edits in trunk/Tools
[GTK][WPE] Add libvpx to jhbuild
https://bugs.webkit.org/show_bug.cgi?id=227437
Patch by Daniel Kolesa <Daniel Kolesa> on 2021-06-28
Reviewed by Philippe Normand.
- jhbuild/jhbuild-minimal.modules:
- 12:57 AM WebKitGTK/2.32.x edited by
- (diff)
- 12:56 AM Changeset in webkit [279324] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r277177 - AudioWorkletProcessor which does not extend base class crashes Safari
https://bugs.webkit.org/show_bug.cgi?id=225449
<rdar://problem/77624792>
Reviewed by Sam Weinig.
Update AudioWorkletGlobalScope::createProcessor() to validate the type of the processor
after constructing it.
- Modules/webaudio/AudioWorkletGlobalScope.cpp:
(WebCore::AudioWorkletGlobalScope::createProcessor):
Jun 27, 2021:
- 10:07 PM Changeset in webkit [279323] by
-
- 67 edits in trunk/Source
Unreviewed, reverting r279322.
https://bugs.webkit.org/show_bug.cgi?id=227434
Reverted changeset:
"Not all uses of AudioToolbox framework use soft linking"
https://bugs.webkit.org/show_bug.cgi?id=227250
https://commits.webkit.org/r279322
- 8:30 PM Changeset in webkit [279322] by
-
- 67 edits in trunk/Source
Not all uses of AudioToolbox framework use soft linking
https://bugs.webkit.org/show_bug.cgi?id=227250
<rdar://problem/79606090>
Reviewed by Eric Carlson.
Source/WebCore:
Unify AudioToolbox, CoreMedia, VideoToolbox and MediaToolbox's method
definitions and their use, ensuring that they are always soft-linked.
Unified builds and the inconsistent use of explicitly using the PAL namespace
caused some calls to be ambiguous leading to compilation errors; some
code would also use the softlinked methods while others called into the frameworks
directly.
To get around those we ensure that any calls to AudioToolbox or CoreMedia is always using
the fully resolved PAL name.
Remove unnecessaryusing namespace PAL;statements wherever applicable.
No change in observable behavior.
- Modules/mediastream/PeerConnectionBackend.cpp:
- Modules/plugins/QuickTimePluginReplacement.mm:
- Modules/webaudio/MediaStreamAudioSourceCocoa.cpp:
(WebCore::MediaStreamAudioSource::consumeAudio):
- dom/Document.cpp:
- html/HTMLCanvasElement.cpp:
- html/HTMLMediaElement.cpp:
- platform/audio/AudioFileReader.h:
- platform/audio/cocoa/AudioFileReaderCocoa.cpp:
(WebCore::AudioFileReader::AudioFileReader):
(WebCore::AudioFileReader::~AudioFileReader):
(WebCore::AudioFileReader::createBus):
(WebCore::createBusFromAudioFile): Deleted.
- platform/audio/cocoa/AudioFileReaderCocoa.h:
- platform/audio/cocoa/AudioOutputUnitAdaptor.cpp:
(WebCore::AudioOutputUnitAdaptor::~AudioOutputUnitAdaptor):
(WebCore::AudioOutputUnitAdaptor::start):
(WebCore::AudioOutputUnitAdaptor::stop):
- platform/audio/cocoa/AudioSampleBufferList.cpp:
(WebCore::AudioSampleBufferList::copyFrom):
- platform/audio/cocoa/AudioSampleDataSource.mm:
- platform/audio/cocoa/WebAudioBufferList.cpp:
(WebCore::WebAudioBufferList::WebAudioBufferList):
- platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
(WebCore::AudioFileReader::decodeAudioForBusCreation):
(WebCore::createBusFromAudioFile): Deleted.
- platform/audio/ios/AudioOutputUnitAdaptorIOS.cpp:
(WebCore::AudioOutputUnitAdaptor::configure):
- platform/audio/mac/AudioOutputUnitAdaptorMac.cpp:
(WebCore::AudioOutputUnitAdaptor::configure):
- platform/cocoa/MediaUtilities.cpp:
(WebCore::createAudioFormatDescription):
(WebCore::createAudioSampleBuffer):
- platform/graphics/RemoteVideoSample.cpp:
(WebCore::RemoteVideoSample::create):
- platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
(WebCore::AudioSourceProviderAVFObjC::create):
(WebCore::AudioSourceProviderAVFObjC::provideInput):
(WebCore::AudioSourceProviderAVFObjC::createMixIfNeeded):
(WebCore::AudioSourceProviderAVFObjC::finalizeCallback):
(WebCore::AudioSourceProviderAVFObjC::prepareCallback):
(WebCore::AudioSourceProviderAVFObjC::unprepareCallback):
(WebCore::AudioSourceProviderAVFObjC::processCallback):
(WebCore::AudioSourceProviderAVFObjC::prepare):
(WebCore::AudioSourceProviderAVFObjC::process):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createImageGenerator):
(WebCore::MediaPlayerPrivateAVFoundationObjC::getStartDate const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::currentMediaTime const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformBufferedTimeRanges const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformMinTimeSeekable const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformMaxTimeSeekable const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformMaxTimeLoaded const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect):
(WebCore::MediaPlayerPrivateAVFoundationObjC::isAvailable):
(WebCore::MediaPlayerPrivateAVFoundationObjC::metadataGroupDidArrive):
(WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive):
(WebCore::MediaPlayerPrivateAVFoundationObjC::performTaskAtMediaTime):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::EffectiveRateChangedListener::stop):
(WebCore::EffectiveRateChangedListener::EffectiveRateChangedListener):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isAvailable):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::currentMediaTime const):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setCurrentTimeDidChangeCallback):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateLastPixelBuffer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::destroyLayer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::streamSession):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::performTaskAtMediaTime):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::isAvailable):
(WebCore::videoTransformationMatrix):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateCurrentFrameImage):
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
(WTF::CFTypeTrait<CMSampleBufferRef>::typeID):
(WebCore::MediaSampleAVFObjC::createImageSample):
(WebCore::MediaSampleAVFObjC::presentationTime const):
(WebCore::MediaSampleAVFObjC::decodeTime const):
(WebCore::MediaSampleAVFObjC::duration const):
(WebCore::MediaSampleAVFObjC::sizeInBytes const):
(WebCore::MediaSampleAVFObjC::videoPixelFormat const):
(WebCore::isCMSampleBufferAttachmentRandomAccess):
(WebCore::doesCMSampleBufferHaveSyncInfo):
(WebCore::isCMSampleBufferRandomAccess):
(WebCore::isCMSampleBufferAttachmentNonDisplaying):
(WebCore::isCMSampleBufferNonDisplaying):
(WebCore::MediaSampleAVFObjC::presentationSize const):
(WebCore::MediaSampleAVFObjC::offsetTimestampsBy):
(WebCore::MediaSampleAVFObjC::setTimestamps):
(WebCore::MediaSampleAVFObjC::isDivisable const):
(WebCore::MediaSampleAVFObjC::divide):
(WebCore::MediaSampleAVFObjC::createNonDisplayingCopy const):
(WebCore::MediaSampleAVFObjC::getRGBAImageData const):
(WebCore::setSampleBufferAsDisplayImmediately):
(WebCore::MediaSampleAVFObjC::isHomogeneous const):
(WebCore::MediaSampleAVFObjC::divideIntoHomogeneousSamples):
(WebCore::MediaSampleAVFObjC::cloneSampleBufferAndSetAsDisplayImmediately):
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::bufferWasConsumedCallback):
(WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::rendererWasAutomaticallyFlushed):
(WebCore::SourceBufferPrivateAVFObjC::enqueueSample):
(WebCore::SourceBufferPrivateAVFObjC::canSetMinimumUpcomingPresentationTime const):
(WebCore::SourceBufferPrivateAVFObjC::setMinimumUpcomingPresentationTime):
- platform/graphics/cocoa/SourceBufferParserWebM.cpp:
(WebCore::SourceBufferParserWebM::OnFrame):
(WebCore::SourceBufferParserWebM::VideoTrackData::consumeFrameData):
(WebCore::SourceBufferParserWebM::VideoTrackData::createSampleBuffer):
(WebCore::SourceBufferParserWebM::AudioTrackData::consumeFrameData):
(WebCore::SourceBufferParserWebM::AudioTrackData::createSampleBuffer):
- platform/graphics/cocoa/VP9UtilitiesCocoa.mm:
(WebCore::convertToCMColorPrimaries):
(WebCore::convertToCMTransferFunction):
(WebCore::convertToCMYCbCRMatrix):
(WebCore::createFormatDescriptionFromVPCodecConfigurationRecord):
- platform/graphics/cocoa/WebCoreDecompressionSession.mm:
(WTF::CFTypeTrait<CMSampleBufferRef>::typeID):
(WebCore::WebCoreDecompressionSession::setTimebase):
(WebCore::WebCoreDecompressionSession::enqueueSample):
(WebCore::WebCoreDecompressionSession::shouldDecodeSample):
(WebCore::WebCoreDecompressionSession::ensureDecompressionSessionForSample):
(WebCore::WebCoreDecompressionSession::decodeSample):
(WebCore::WebCoreDecompressionSession::handleDecompressionOutput):
(WebCore::WebCoreDecompressionSession::getFirstVideoFrame):
(WebCore::WebCoreDecompressionSession::automaticDequeue):
(WebCore::WebCoreDecompressionSession::enqueueDecodedSample):
(WebCore::WebCoreDecompressionSession::isReadyForMoreMediaData const):
(WebCore::WebCoreDecompressionSession::notifyWhenHasAvailableVideoFrame):
(WebCore::WebCoreDecompressionSession::imageForTime):
(WebCore::WebCoreDecompressionSession::flush):
(WebCore::WebCoreDecompressionSession::getDecodeTime):
(WebCore::WebCoreDecompressionSession::getPresentationTime):
(WebCore::WebCoreDecompressionSession::getDuration):
(WebCore::WebCoreDecompressionSession::compareBuffers):
(WebCore::WebCoreDecompressionSession::updateQosWithDecodeTimeStatistics):
- platform/graphics/cv/ImageTransferSessionVT.mm:
(WebCore::ImageTransferSessionVT::createPixelBuffer):
(WebCore::ImageTransferSessionVT::convertCMSampleBuffer):
(WebCore::ImageTransferSessionVT::createCMSampleBuffer):
- platform/ios/PlaybackSessionInterfaceAVKit.mm:
(WebCore::PlaybackSessionInterfaceAVKit::seekableRangesChanged):
- platform/mac/VideoFullscreenInterfaceMac.mm:
- platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:
(WebCore::MediaRecorderPrivateAVFImpl::videoSampleAvailable):
- platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:
(WebCore::AudioSampleBufferCompressor::~AudioSampleBufferCompressor):
(WebCore::AudioSampleBufferCompressor::initialize):
(WebCore::AudioSampleBufferCompressor::finish):
(WebCore::AudioSampleBufferCompressor::initAudioConverterForSourceFormatDescription):
(WebCore::AudioSampleBufferCompressor::attachPrimingTrimsIfNeeded):
(WebCore::AudioSampleBufferCompressor::gradualDecoderRefreshCount):
(WebCore::AudioSampleBufferCompressor::sampleBufferWithNumPackets):
(WebCore::AudioSampleBufferCompressor::provideSourceDataNumOutputPackets):
(WebCore::AudioSampleBufferCompressor::processSampleBuffersUntilLowWaterTime):
(WebCore::AudioSampleBufferCompressor::processSampleBuffer):
(WebCore::AudioSampleBufferCompressor::getOutputSampleBuffer):
(WebCore::AudioSampleBufferCompressor::takeOutputSampleBuffer):
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:
(WebCore::MediaRecorderPrivateWriter::MediaRecorderPrivateWriter):
(WebCore::MediaRecorderPrivateWriter::processNewCompressedVideoSampleBuffers):
(WebCore::MediaRecorderPrivateWriter::processNewCompressedAudioSampleBuffers):
(WebCore::MediaRecorderPrivateWriter::startAssetWriter):
(WebCore::MediaRecorderPrivateWriter::appendCompressedVideoSampleBuffer):
(WebCore::appendEndsPreviousSampleDurationMarker):
(WebCore::copySampleBufferWithCurrentTimeStamp):
(WebCore::MediaRecorderPrivateWriter::appendVideoSampleBuffer):
(WebCore::MediaRecorderPrivateWriter::appendAudioSampleBuffer):
(WebCore::MediaRecorderPrivateWriter::completeFetchData):
(WebCore::MediaRecorderPrivateWriter::pause):
(WebCore::MediaRecorderPrivateWriter::resume):
- platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:
(WebCore::VideoSampleBufferCompressor::~VideoSampleBufferCompressor):
(WebCore::VideoSampleBufferCompressor::initialize):
(WebCore::VideoSampleBufferCompressor::finish):
(WebCore::VideoSampleBufferCompressor::videoCompressionCallback):
(WebCore::VideoSampleBufferCompressor::vtProfileLevel const):
(WebCore::VideoSampleBufferCompressor::initCompressionSession):
(WebCore::VideoSampleBufferCompressor::processSampleBuffer):
(WebCore::VideoSampleBufferCompressor::getOutputSampleBuffer):
(WebCore::VideoSampleBufferCompressor::takeOutputSampleBuffer):
- platform/mediastream/cocoa/AudioMediaStreamTrackRendererInternalUnit.cpp:
(WebCore::LocalAudioMediaStreamTrackRendererInternalUnit::start):
(WebCore::LocalAudioMediaStreamTrackRendererInternalUnit::stop):
(WebCore::LocalAudioMediaStreamTrackRendererInternalUnit::createAudioUnitIfNeeded):
- platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::setSessionSizeAndFrameRate):
(WebCore::AVVideoCaptureSource::frameDurationForFrameRate):
(WebCore::AVVideoCaptureSource::generatePresets):
- platform/mediastream/mac/CoreAudioCaptureDevice.cpp:
(WebCore::CoreAudioCaptureDevice::deviceClock):
- platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioSharedUnit::setupAudioUnit):
(WebCore::CoreAudioSharedUnit::configureMicrophoneProc):
(WebCore::CoreAudioSharedUnit::configureSpeakerProc):
(WebCore::CoreAudioSharedUnit::cleanupAudioUnit):
(WebCore::CoreAudioSharedUnit::reconfigureAudioUnit):
(WebCore::CoreAudioSharedUnit::startInternal):
(WebCore::CoreAudioSharedUnit::stopInternal):
(WebCore::CoreAudioSharedUnit::defaultInputDevice):
- platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp:
- platform/mediastream/mac/MockAudioSharedUnit.mm:
(WebCore::MockAudioSharedUnit::reconfigure):
(WebCore::MockAudioSharedUnit::emitSampleBuffers):
- platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
- platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.cpp:
(WebCore::RealtimeIncomingAudioSourceCocoa::OnData):
- platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:
(WebCore::RealtimeIncomingVideoSourceCocoa::OnFrame):
- platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp:
(WebCore::RealtimeOutgoingVideoSourceCocoa::videoSampleAvailable):
- platform/mediastream/mac/WindowDisplayCapturerMac.mm:
Source/WebCore/PAL:
- pal/cf/AudioToolboxSoftLink.cpp:
- pal/cf/AudioToolboxSoftLink.h: Add methods whose definitions were scattered across
the code.
- pal/cocoa/MediaToolboxSoftLink.cpp:
- pal/cocoa/MediaToolboxSoftLink.h: Same as above.
- pal/cf/AudioToolboxSoftLink.cpp:
- pal/cf/AudioToolboxSoftLink.h: Add missing methods
- pal/cf/CoreMediaSoftLink.cpp:
- pal/cf/CoreMediaSoftLink.h: Add missing methods; Reshuffled definitions as many didn't
exist on Windows, yet could potentially be loaded and error.
- pal/cf/VideoToolboxSoftLink.cpp:
- pal/cf/VideoToolboxSoftLink.h: Add missing methods and fix some spelling in define names
- pal/cocoa/MediaToolboxSoftLink.cpp:
- pal/cocoa/MediaToolboxSoftLink.h: Add missing methods
Source/WebKit:
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::sendAudioComponentRegistrations):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::consumeAudioComponentRegistrations):
- Shared/mac/MediaFormatReader/CoreMediaWrapped.cpp:
(WebKit::createWrapper):
(WebKit::wrapperStorage):
(WebKit::wrapperVTable):
- Shared/mac/MediaFormatReader/MediaFormatReader.cpp:
(WebKit::MediaFormatReader::copyProperty):
- Shared/mac/MediaFormatReader/MediaSampleByteRange.cpp:
(WebKit::MediaSampleByteRange::MediaSampleByteRange):
- Shared/mac/MediaFormatReader/MediaSampleCursor.cpp:
- Shared/mac/MediaFormatReader/MediaTrackReader.cpp:
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::sendAudioComponentRegistrations):
- UIProcess/Media/cocoa/MediaUsageManagerCocoa.mm:
- WebProcess/cocoa/RemoteRealtimeAudioSource.cpp:
- WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.cpp:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::consumeAudioComponentRegistrations):
- 2:17 PM Changeset in webkit [279321] by
-
- 7 edits in trunk/Source/WebCore
Treat image data url's as not identical
https://bugs.webkit.org/show_bug.cgi?id=226924
Patch by Rob Buis <rbuis@igalia.com> on 2021-06-27
Reviewed by Said Abou-Hallawa.
Treat image data url's as not identical
in fillImagesAreIdentical.
- rendering/RenderElement.cpp:
(WebCore::RenderElement::updateFillImages):
- rendering/style/StyleCachedImage.cpp:
(WebCore::StyleCachedImage::usesDataProtocol const):
- rendering/style/StyleCachedImage.h:
- rendering/style/StyleCursorImage.cpp:
(WebCore::StyleCursorImage::usesDataProtocol const):
- rendering/style/StyleCursorImage.h:
- rendering/style/StyleImage.h:
(WebCore::StyleImage::usesDataProtocol const):
- 12:49 PM Changeset in webkit [279320] by
-
- 2 edits in trunk/Source/WebCore
[iOS 15] Fix the internal build after rdar://76549109
https://bugs.webkit.org/show_bug.cgi?id=227430
rdar://79832425
Reviewed by Sam Weinig.
Fix the build by replacing the use of the
UIFloatIsZeromacro with its actual definition. The immediate cause
of this build failure is a UIKit change that changed the definition ofUIFloatIsZero, such that we end up
redefiningUIFloatIsZeroin HTMLConverter.mm. However, sinceUIFloatIsZerois specific to iOS family and
HTMLConverter is used only in this one place on both macOS and iOS, it makes more sense to simply use the macro
definition itself.
- editing/cocoa/HTMLConverter.mm:
(HTMLConverter::computedAttributesForElement):
- 12:17 PM Changeset in webkit [279319] by
-
- 2 edits in trunk/Source/WebCore
Backgrounding and returning to a FaceTime call in MobileSafari leads to a blank black sreen
https://bugs.webkit.org/show_bug.cgi?id=227406
Reviewed by Eric Carlson.
The
RequireUserGestureForFullscreenrestriction will be kept in aMediaElementSession
if the corresponding media element isautoplay. Therefore, the request to enter
picture-in-picture from the UI process will be ignored by the media element, and the
state machine managing video presentation mode in the UI process will be an inconsistent state.
This patch creates a
UserGestureIndicatorbefore requesting the media element
to change its presentation mode to make sure the request will be handled.
- platform/cocoa/VideoFullscreenModelVideoElement.mm:
(WebCore::VideoFullscreenModelVideoElement::fullscreenModeChanged):
- 12:16 PM Changeset in webkit [279318] by
-
- 3 edits4 adds in trunk
[LFC][TFC] Add support for shrinking over-constrained columns based on the width type priority list
https://bugs.webkit.org/show_bug.cgi?id=227426
Reviewed by Antti Koivisto.
Source/WebCore:
Let's take the priority list into use when shrinking the columns in an over-constrained context.
e.g.
<div style="width: 100px">
<table><tr><td style="width: 90%""></td><td style="width: 400px;"></td><td style="width: 100px;"></td></tr></table>
</div>
While the second and the third columns have the preferred width of 400px and 100px respectively, we can't accommodate
them as the containing block (<div>) sets a 100px horizontal constraint on the table content and the first column already takes up 90px space.
Now we start shrinking the columns using the following priority list: auto < relative < fixed < percent (ignoring the actual column order).
The preferred width of the table (assume 0px border spacing and padding) is 90px + 400px + 100px. It produces a -490px
available space. This negative space needs to be distributed among the columns staring with the fixed sized ones.
The fixed sized columns have a flex space of 500px which covers the -490px gap. Based on their 4:1 distribution ratio, they'll end
up with 8px and 2px and the percent column stays at 90px.
Tests: fast/layoutformattingcontext/table-space-shinking-mixed-width-type-simple.html
fast/layoutformattingcontext/table-space-shinking-mixed-width-type-simple2.html
- layout/formattingContexts/table/TableLayout.cpp:
(WebCore::Layout::distributeAvailableSpace):
(WebCore::Layout::TableFormattingContext::TableLayout::distributedHorizontalSpace):
(WebCore::Layout::TableFormattingContext::TableLayout::distributedVerticalSpace):
LayoutTests:
- fast/layoutformattingcontext/table-space-shinking-mixed-width-type-simple-expected.html: Added.
- fast/layoutformattingcontext/table-space-shinking-mixed-width-type-simple.html: Added.
- fast/layoutformattingcontext/table-space-shinking-mixed-width-type-simple2-expected.html: Added.
- fast/layoutformattingcontext/table-space-shinking-mixed-width-type-simple2.html: Added.
- 10:39 AM Changeset in webkit [279317] by
-
- 4 edits in trunk/Source/WebKit
Unreviewed, fix the iOS build after rdar://76781873
Remove support for
-[UIResponder _insertTextFromCamera:]in WebKit2, now that UIKit only supports the public
API version (-[UIResponder captureTextFromCamera:]).
- Platform/spi/ios/UIKitSPI.h:
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView canPerformActionForWebView:withSender:]):
(-[WKContentView _insertTextFromCameraForWebView:]): Deleted.
- 10:20 AM Changeset in webkit [279316] by
-
- 2 edits in trunk/Source/WebCore
[LFC][TFC] Rename GridSpace::preferredSpace to preferredSize
https://bugs.webkit.org/show_bug.cgi?id=227425
Reviewed by Antti Koivisto.
It is a more descriptive name.
- layout/formattingContexts/table/TableLayout.cpp:
(WebCore::Layout::GridSpace::isEmpty const):
(WebCore::Layout::operator-):
(WebCore::Layout::operator+=):
(WebCore::Layout::operator/):
(WebCore::Layout::distributeAvailableSpace):
(WebCore::Layout::TableFormattingContext::TableLayout::distributedHorizontalSpace): preferredWidth is the same in both cases.
- 9:51 AM Changeset in webkit [279315] by
-
- 2 edits in trunk/Source/WebCore
[LFC][TFC] Introduce a priority order for the grid types
https://bugs.webkit.org/show_bug.cgi?id=227417
Reviewed by Antti Koivisto.
Extra space distribution is based on a priority list with percent columns having the highest priority
and auto columns having the lowest (percent > fixed > relative > auto).
- layout/formattingContexts/table/TableLayout.cpp:
(WebCore::Layout::distributeAvailableSpace):
- 7:48 AM Changeset in webkit [279314] by
-
- 2 edits in trunk/Source/WebCore
[LFC][TFC] Introduce GridSpace::type
https://bugs.webkit.org/show_bug.cgi?id=227409
Reviewed by Antti Koivisto.
This is in preparation for supporting mixed width/height types (percent/fixed/relative/auto).
Available space distribution is based on type priority (e.g. percent value takes precedence over fixed width).
- layout/formattingContexts/table/TableLayout.cpp:
(WebCore::Layout::distributeAvailableSpace):
(WebCore::Layout::TableFormattingContext::TableLayout::distributedHorizontalSpace):
(WebCore::Layout::TableFormattingContext::TableLayout::distributedVerticalSpace):
(WebCore::Layout::max): Deleted.
- 2:32 AM Changeset in webkit [279313] by
-
- 3 edits2 adds in trunk
[GStreamer] SleepDisabler not destroyed when video playback stops
https://bugs.webkit.org/show_bug.cgi?id=219353
Patch by Philippe Normand <pnormand@igalia.com> on 2021-06-27
Reviewed by Eric Carlson.
Source/WebCore:
In GStreamer ports the SleepDisabler remained active after EOS because
HTMLMediaElement::updateSleepDisabling() was not being triggered. An explicit clean-up upon
the ended event in the media element is better than any other implicit action.
Test: media/video-ended-does-not-hold-sleep-assertion.html
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::dispatchEvent):
LayoutTests:
- media/video-ended-does-not-hold-sleep-assertion-expected.txt: Added.
- media/video-ended-does-not-hold-sleep-assertion.html: Added.
- 1:55 AM Changeset in webkit [279312] by
-
- 11 edits2 adds in trunk/Source
[Model] [iOS] Add support for rendering model resources
https://bugs.webkit.org/show_bug.cgi?id=227392
<rdar://problem/79770136>
Reviewed by Tim Horton.
Source/WebCore:
Ensure the anchor point is set correctly for model content layers, otherwise the preview layer shows
its center at the corner of the parent layer's origin.
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setContentsToModel):
Source/WebCore/PAL:
Declare the ASVInlinePreview class.
- pal/spi/ios/SystemPreviewSPI.h:
Source/WebKit:
Add a new WKModelView class which manages an ASVInlinePreview and displays its layer.
The current incarnation of the ASVInlinePreview SPI requires a URL to a file to specify
the resource, so we write a file to the temporary directory added in 279267 with the data
wrapped in the Model object passed through the remote layer tree. Ultimately we will be
able to use an SPI that does not require a file and instead will allow data to be passed
directly, this is purely for a temporary experimentation.
- Platform/Logging.h:
- SourcesCocoa.txt:
- UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm:
(WebKit::RemoteLayerTreeHost::makeNode):
- UIProcess/ios/WKModelView.h: Added.
- UIProcess/ios/WKModelView.mm: Added.
(-[WKModelView preview]):
(-[WKModelView initWithFrame:]):
(-[WKModelView initWithCoder:]):
(-[WKModelView initWithModel:]):
(-[WKModelView createFileForModel:]):
(-[WKModelView layoutSubviews]):
(-[WKModelView updateBounds]):
- WebKit.xcodeproj/project.pbxproj:
Source/WTF:
Add a new compile-time flag indicating the availability of the ASVInlinePreview SPI on iOS.
We only define it when the header itself is present for now to avoid issues with older iOS
15 SDKs, but ultimately we will only use the iOS version check.
- wtf/PlatformHave.h: