Timeline
Jun 29, 2021:
- 10:37 PM Changeset in webkit [279401] by
-
- 23 edits1 add in trunk
Implement form[method=dialog]
https://bugs.webkit.org/show_bug.cgi?id=226172
Reviewed by Chris Dumez.
Marked relevant WPT as pass & unskipped relevant test.
LayoutTests/imported/w3c:
- web-platform-tests/html/dom/reflection-forms-expected.txt:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-form-submission-expected.txt:
Source/WebCore:
- html/HTMLFormControlElement.h:
(WebCore::HTMLFormControlElement::resultForDialogSubmit const):
- html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::submit):
(WebCore::HTMLFormElement::submitDialog):
- html/HTMLFormElement.h:
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::resultForDialogSubmit const):
- html/HTMLInputElement.h:
- html/ImageInputType.cpp:
(WebCore::ImageInputType::resultForDialogSubmit const):
- html/ImageInputType.h:
- html/InputType.cpp:
(WebCore::InputType::resultForDialogSubmit const):
- html/InputType.h:
- loader/FormSubmission.cpp:
(WebCore::FormSubmission::Attributes::parseMethodType):
(WebCore::FormSubmission::FormSubmission):
(WebCore::FormSubmission::create):
(WebCore::FormSubmission::populateFrameLoadRequest):
(WebCore::FormSubmission::requestURL const):
- loader/FormSubmission.h:
(WebCore::FormSubmission::Attributes::methodString):
(WebCore::FormSubmission::data const):
(WebCore::FormSubmission::returnValue const):
LayoutTests:
- platform/gtk/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-form-submission-expected.txt: Added.
- platform/ios/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
- platform/mac/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
- TestExpectations:
- 7:13 PM Changeset in webkit [279400] by
-
- 15 edits10 adds4 deletes in trunk/LayoutTests
Resync speech-api WPT tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=227503
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
Resync speech-api WPT tests from upstream a38612f39e7752c353208.
- web-platform-tests/speech-api/*: Updated.
LayoutTests:
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
- 7:12 PM Changeset in webkit [279399] by
-
- 1 edit2 deletes in trunk/LayoutTests
[GLIB] Unreviewed test gardening, update baselines after r279169
https://bugs.webkit.org/show_bug.cgi?id=227407
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-06-29
- platform/glib/imported/w3c/web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-same-none-block-expected.txt: Removed.
- platform/glib/imported/w3c/web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-same-self-block-expected.txt: Removed.
- 6:09 PM Changeset in webkit [279398] by
-
- 16 edits1 copy13 adds in trunk/LayoutTests
Resync css/cssom WPT tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=227506
Reviewed by Sam Weinig.
Resync css/cssom WPT tests from upstream a38612f39e7752c353208.
- resources/resource-files.json:
- web-platform-tests/css/cssom/*: Updated.
- 5:14 PM Changeset in webkit [279397] by
-
- 2 edits in trunk/LayoutTests
5 media/modern-media-controls/* tests are failing constantly on Catalina
https://bugs.webkit.org/show_bug.cgi?id=227319
<rdar://problem/79693462>
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
Skip these tests on Catalina while the underlying issue is investigated.
- 5:09 PM Changeset in webkit [279396] by
-
- 2 edits in trunk/LayoutTests
[ BigSur ] webrtc/multi-audio.html is now flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=223043.
Unreviewed test gardnening.
Patch by Ayumi Kojima <Ayumi Kojima> on 2021-06-29
- platform/mac/TestExpectations:
- 4:51 PM Changeset in webkit [279395] by
-
- 2 edits in trunk/LayoutTests
[BigSur WK1] imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-v* is consistently failing.
https://bugs.webkit.org/show_bug.cgi?id=221300.
Unreviewed test gardening.
Updating prior test expectations.
- platform/mac-wk1/TestExpectations:
- 4:49 PM Changeset in webkit [279394] by
-
- 2 edits in trunk/Tools
Add new argument of device os version for reporting JavaScriptCore test result
https://bugs.webkit.org/show_bug.cgi?id=227363
Reviewed by Dewei Zhu.
- Scripts/run-javascriptcore-tests:
(configurationForUpload):
- 4:48 PM Changeset in webkit [279393] by
-
- 2 edits in trunk/Source/JavaScriptCore
Remove "function declared ‘static’ but never defined" build warnings since r278971.
https://bugs.webkit.org/show_bug.cgi?id=227436
This patch removes the build warnings below.
warning: ‘bool JSC::cannotBeIdentPartOrEscapeStart(LChar)’ declared ‘static’ but never defined [-Wunused-function]
Reviewed by Michael Catanzaro.
- runtime/LiteralParser.cpp: Add definitions for cannotBeIdentPartOrEscapeStart.
(JSC::cannotBeIdentPartOrEscapeStart):
- 3:50 PM Changeset in webkit [279392] by
-
- 4 edits in trunk/Source
WebKit_iosmac build failure: SystemPreviewSPI.h:29:9: fatal error: 'AssetViewer/ARQuickLookWebKitItem.h' file not found
https://bugs.webkit.org/show_bug.cgi?id=227507
<rdar://problem/79902043>
Reviewed by Dean Jackson.
When we added new SPIs in Source/WebCore/PAL/pal/spi/ios/SystemPreviewSPI.h as part of r279312 we also included this file
from a new file that is compiled on Catalyst. This revealed an issue where existing SPIs included in that file weren't
actually available on Catalyst. We now make sure we compile those out on Catalyst.
Source/WebCore/PAL:
- pal/spi/ios/SystemPreviewSPI.h:
Source/WTF:
- wtf/PlatformHave.h:
- 3:25 PM Changeset in webkit [279391] by
-
- 4 edits in trunk
Encoding specified in the 'charset' attribute should have precedence over 'content' attribute
https://bugs.webkit.org/show_bug.cgi?id=227464
Patch by Johnson Zhou <qiaosong_zhou@apple.com> on 2021-06-29
LayoutTests/imported/w3c:
Reviewed by Geoffrey Garen.
- web-platform-tests/html/syntax/parsing/meta-inhead-insertion-mode-expected.txt:
Source/WebCore:
Reviewed by Geoffrey Garen.
Puts precedence on 'charset' attribute by breaking out of the parsing process.
This test passes Firefox and Chrome. Tested using
http://wpt.live/html/syntax/parsing/meta-inhead-insertion-mode.html
- html/parser/HTMLMetaCharsetParser.cpp:
(WebCore::HTMLMetaCharsetParser::encodingFromMetaAttributes):
- 3:17 PM Changeset in webkit [279390] by
-
- 3 edits in trunk/LayoutTests
Updating test expectations for webanimations/css-transition-retargeting-during-ready-promise.html
https://bugs.webkit.org/show_bug.cgi?id=215335
Unreviewed test gardening
Patch by Eric Hutchison <Eric Hutchison> on 2021-06-29
- platform/mac-wk1/TestExpectations:
- platform/mac/TestExpectations:
- 3:04 PM Changeset in webkit [279389] by
-
- 104 edits2 copies3 moves55 adds8 deletes in trunk/LayoutTests
Resync service-worker WPT tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=227490
Reviewed by Geoffrey Garen.
LayoutTests/imported/w3c:
Resync service-worker WPT tests from upstream a38612f39e7752c353208.
- web-platform-tests/service-workers/*: Updated.
LayoutTests:
- TestExpectations:
- tests-options.json:
- 2:51 PM Changeset in webkit [279388] by
-
- 2 edits in trunk/Source/WebKit
Don't null check destination in the RemoteRenderingBackend::nextDestinationImageBufferAfterApply main loop
https://bugs.webkit.org/show_bug.cgi?id=227475
Reviewed by Wenson Hsieh.
We already null check it and return early as part of the
MESSAGE_CHECK_WITH_RETURN_VALUE call just above.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::nextDestinationImageBufferAfterApplyingDisplayLists):
- 2:50 PM Changeset in webkit [279387] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: accessibility/table-title.html is a flaky timeout on BigSur wk2 Debug
https://bugs.webkit.org/show_bug.cgi?id=227504
Unreviewed test gardening
Patch by Ayumi Kojima <Ayumi Kojima> on 2021-06-29
- platform/mac-wk2/TestExpectations:
- 2:17 PM Changeset in webkit [279386] by
-
- 2 edits in trunk/LayoutTests
[Big Sur Release wk2 arm64] fast/css/sticky/sticky-left.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=227467
Unreviewed test gardnening
Patch by Eric Hutchison <Eric Hutchison> on 2021-06-29
- platform/mac-wk2/TestExpectations:
- 2:03 PM Changeset in webkit [279385] by
-
- 80 edits4 moves77 adds6 deletes in trunk/LayoutTests
Resync IDL interfaces from upstream web-platform-tests
https://bugs.webkit.org/show_bug.cgi?id=227485
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
Resync IDL interfaces from upstream web-platform-tests a38612f39e7752c353208.
- web-platform-tests/content-security-policy/securitypolicyviolation/idlharness.window-expected.txt:
- web-platform-tests/css/css-images/idlharness.html:
- web-platform-tests/css/cssom/idlharness-expected.txt:
- web-platform-tests/css/cssom/idlharness.html:
- web-platform-tests/fetch/cors-rfc1918/idlharness.tentative.any-expected.txt: Removed.
- web-platform-tests/fetch/cors-rfc1918/idlharness.tentative.any.html: Removed.
- web-platform-tests/fetch/cors-rfc1918/idlharness.tentative.any.js: Removed.
- web-platform-tests/fetch/cors-rfc1918/idlharness.tentative.any.worker-expected.txt: Removed.
- web-platform-tests/fetch/cors-rfc1918/idlharness.tentative.any.worker.html: Removed.
- web-platform-tests/fetch/cors-rfc1918/w3c-import.log: Removed.
- web-platform-tests/geolocation-API/idlharness.https.window-expected.txt:
- web-platform-tests/html/dom/idlharness.worker-expected.txt:
- web-platform-tests/mediacapture-streams/idlharness.https.window-expected.txt:
- web-platform-tests/mediacapture-streams/idlharness.https.window.js:
(async idl_array):
- web-platform-tests/payment-request/idlharness.https.window-expected.txt:
- web-platform-tests/pointerevents/idlharness.window-expected.txt:
- web-platform-tests/uievents/idlharness.window-expected.txt:
- web-platform-tests/wasm/jsapi/idlharness.any-expected.txt:
- web-platform-tests/wasm/jsapi/idlharness.any.worker-expected.txt:
Update / rebaseline a few tests due to IDL interface changes.
- web-platform-tests/interfaces/*: Updated.
LayoutTests:
Rebaseline a few tests.
- platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- 2:01 PM Changeset in webkit [279384] by
-
- 2 edits2 adds in trunk/LayoutTests/imported/w3c
Resync intersection-observer WPT tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=227500
Reviewed by Sam Weinig.
Resync intersection-observer WPT tests from upstream a38612f39e7752c353208.
- web-platform-tests/intersection-observer/target-is-root-expected.txt: Added.
- web-platform-tests/intersection-observer/target-is-root.html: Added.
- web-platform-tests/intersection-observer/w3c-import.log:
- 1:36 PM Changeset in webkit [279383] by
-
- 4 edits in trunk
CSS style sheets loaded by HTMLLinkElement do not fall back correctly when charset is an invalid encoding name
https://bugs.webkit.org/show_bug.cgi?id=227498
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-syntax/charset/page-windows-1251-charset-attribute-bogus-expected.txt:
Expect a pass instead of a fail.
Source/WebCore:
- html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process): Check for invalid text encoding names rather than
just empty string.
- 1:21 PM Changeset in webkit [279382] by
-
- 4 edits3 deletes in trunk
Unreviewed, reverting r279250.
https://bugs.webkit.org/show_bug.cgi?id=227499
Sometimes causes YouTube audio to cut out
Reverted changeset:
"[Cocoa] Last few seconds of 'audio/webm; codecs=vorbis'
appended to a SampleBuffer are not played"
https://bugs.webkit.org/show_bug.cgi?id=226069
https://commits.webkit.org/r279250
- 12:27 PM Changeset in webkit [279381] by
-
- 3 edits2 adds in trunk/Tools
[webkitcorepy] Add NestedFuzzyDict
https://bugs.webkit.org/show_bug.cgi?id=227150
<rdar://problem/79475464>
Reviewed by Dewei Zhu.
- Scripts/libraries/webkitcorepy/setup.py: Bump version.
- Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
- Scripts/libraries/webkitcorepy/webkitcorepy/nested_fuzzy_dict.py: Added.
(NestedFuzzyDict):
(NestedFuzzyDict.assert_valid_key): Ensure that the provided key is fuzz-able.
(NestedFuzzyDict.init): Construct the object the same way a dictionary is constructed.
(NestedFuzzyDict.getitem): Split provided keyname and fuzzy match the second part.
(NestedFuzzyDict.get): Ditto.
(NestedFuzzyDict.getitem): Return the complete keyname and value.
(NestedFuzzyDict.setitem): Add value to dictionary.
(NestedFuzzyDict.update): Given a dictionary, insert it's contents into this object.
(NestedFuzzyDict.keys): Iterate through all keys in the object.
(NestedFuzzyDict.values): Iterate through all values in the object.
(NestedFuzzyDict.items): Iterate through all key/value pairs in the object.
(NestedFuzzyDict.dict): Return a standard dictionary with the contents of this object.
(NestedFuzzyDict.repr):
(NestedFuzzyDict.str):
- Scripts/libraries/webkitcorepy/webkitcorepy/tests/nested_fuzzy_dict_unittest.py: Added.
(TestNestedFuzzyDict):
(TestNestedFuzzyDict.test_constructor):
(TestNestedFuzzyDict.test_index):
(TestNestedFuzzyDict.test_get):
(TestNestedFuzzyDict.test_getitem):
(TestNestedFuzzyDict.test_set):
(TestNestedFuzzyDict.test_dict):
- 12:07 PM Changeset in webkit [279380] by
-
- 9 edits1 move in trunk
xhr.send(URLSearchParams) should align default Content-Type header field with Chrome and Firefox
https://bugs.webkit.org/show_bug.cgi?id=227477
Patch by Alex Christensen <achristensen@webkit.org> on 2021-06-29
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/xhr/setrequestheader-content-type-expected.txt:
Source/WebCore:
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::send):
- xml/XMLHttpRequest.h:
- xml/XMLHttpRequest.idl:
LayoutTests:
- platform/ios-wk2/TestExpectations:
- platform/ios/imported/w3c/web-platform-tests/xhr/setrequestheader-content-type-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/xhr/setrequestheader-content-type-expected.txt: Added.
- platform/mac/TestExpectations:
- 11:55 AM Changeset in webkit [279379] by
-
- 3 edits in trunk/Source/WebCore
Fix more -Wreturn-type warnings
https://bugs.webkit.org/show_bug.cgi?id=227497
Unreviewed. This is getting stupid.
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-06-29
- page/EventHandler.cpp:
(WebCore::EventHandler::scrollDistance):
(WebCore::EventHandler::handleKeyboardScrolling):
- page/KeyboardScroll.cpp:
(WebCore::unitVectorForScrollDirection):
- 11:41 AM Changeset in webkit [279378] by
-
- 9 edits in trunk/Source/JavaScriptCore
Add a new pattern to instruction selector to use SBX and SBFIZ supported by ARM64
https://bugs.webkit.org/show_bug.cgi?id=227203
Patch by Yijia Huang <Yijia Huang> on 2021-06-29
Reviewed by Filip Pizlo.
This patch includes two modifications:
- Introduce a strength reduction rule for sign extending bitfield.
- Add Signed Bitfield Extract (SBFX) and Signed Bitfield Insert in Zero (SBFIZ) to Air opcode to serve instruction selector.
### Part A Sign extending from a variable bit-width ###
According to Bit Twiddling Hacks, there are two ways to sign extend bitfield.
(https://graphics.stanford.edu/~seander/bithacks.html#VariableSignExtend)
int bf; sign extend this width-bit number to bfsx
int width; number of bits representing the number in bf
int bfsx; resulting sign-extended number
Approach 1
mask1 = (1 << width) - 1
mask2 = 1 << (width - 1)
bf = bf & mask1 zero bits in bf above position width
bfsx = (bf mask2) - mask2
Approach 2
amount = CHAR_BIT * sizeof(bf) - width
bfsx = (bf << amount) >> amount
Then, a new strength reduction rule is introduced:
Turn this: ((bf & mask1) mask2) - mask2
Into this: (bf << amount) >> amount
### Part B SBFX ###
Given instruction:
sbfx Rd, Rn, lsb, width
Signed Bitfield Extract (SBFX) extracts width number of adjacent bits at lsb position
from a register Rn, sign-extends them to the size of the register, and writes the
result to the destination register Rd.
The equivalent patterns of this instruction are:
Pattern 1:
bf = src >> lsb
dst = ((bf & mask1) mask2) - mask2
mask1 = (1 << width) - 1
mask2 = 1 << (width - 1) (mask2 << 1) - 1 = mask1
Pattern 2:
bf = src >> lsb
amount = CHAR_BIT * sizeof(bf) - width
dst = (bf << amount) >> amount
Then, (bf << amount) >> amount is selected as the canonical form with the strength reduction
rule introduced above.
Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = lsb
Int @2 = amount
Int @3 = ZShr(@0, @1)
Int @4 = Shl(@3, @2)
Int @5 = SShr(@4, @2)
Void@6 = Return(@5, Terminal)
Before Adding BIC:
Old optimized AIR
Urshift %x0, lsb, %x0, @3
Lshift %x0, amount, %x0, @4
Rshift %x0, amount, %x0, @5
Ret %x0, @6
After Adding BIC:
New optimized AIR
ExtractSignedBitfield %x0, lsb, width, %x0, @5
Ret %x0, @6
### Part B SBFIZ ###
Given instruction:
sbfiz Rd, Rn, lsb, width
Signed Bitfield Insert in Zero (SBFIZ) zeroes the destination register Rd and copies
width number of contiguous bits from a source register Rn into lsb position in the
destination register, sign-extending the most significant bit of the transferred value.
The equivalent patterns of this instruction are:
Pattern 1:
bfsx = ((src & mask1) mask2) - mask2
dst = bfsx << lsb
mask1 = (1 << width) - 1
mask2 = 1 << (width - 1) (mask2 << 1) - 1 = mask1
Pattern 2:
amount = CHAR_BIT * sizeof(bf) - width
bfsx = (src << amount) >> amount
dst = bfsx << lsb
Then, ((src << amount) >> amount) << lsb is selected as the canonical form with the
strength reduction rule introduced above.
Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = lsb
Int @2 = amount
Int @3 = Shl(@0, @2)
Int @4 = SShr(@3, @2)
Int @5 = Shl(@4, @1)
Void@6 = Return(@5, Terminal)
Before Adding BIC:
Old optimized AIR
Lshift %x0, amount, %x0, @3
Rshift %x0, amount, %x0, @4
Lshift %x0, lsb, %x0, @5
Ret %x0, @6
After Adding BIC:
New optimized AIR
InsertSignedBitfieldInZero %x0, lsb, width, %x0, @5
Ret %x0, @6
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::insertSignedBitfieldInZero32):
(JSC::MacroAssemblerARM64::insertSignedBitfieldInZero64):
(JSC::MacroAssemblerARM64::extractSignedBitfield32):
(JSC::MacroAssemblerARM64::extractSignedBitfield64):
- assembler/testmasm.cpp:
(JSC::testInsertSignedBitfieldInZero32):
(JSC::testInsertSignedBitfieldInZero64):
(JSC::testExtractSignedBitfield32):
(JSC::testExtractSignedBitfield64):
- b3/B3LowerToAir.cpp:
- b3/B3ReduceStrength.cpp:
- b3/air/AirOpcode.opcodes:
- b3/testb3.h:
- b3/testb3_2.cpp:
(addBitTests):
- b3/testb3_3.cpp:
(testInsertSignedBitfieldInZero32):
(testInsertSignedBitfieldInZero64):
(testExtractSignedBitfield32):
(testExtractSignedBitfield64):
- 11:07 AM Changeset in webkit [279377] by
-
- 3 edits2 copies in trunk/Tools
[webkitcorepy] Add MeasureTime python tool
https://bugs.webkit.org/show_bug.cgi?id=227313
<rdar://problem/79689588>
Reviewed by Dewei Zhu.
- Scripts/libraries/webkitcorepy/setup.py: Bump version.
- Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
- Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Export MeasureTime object.
- Scripts/libraries/webkitcorepy/webkitcorepy/measure_time.py: Added.
(MeasureTime): Provide class which logs time elapsed in context.
- Scripts/libraries/webkitcorepy/webkitcorepy/tests/measure_time_unittest.py: Added.
(MeasureTimeTests):
- 11:00 AM Changeset in webkit [279376] by
-
- 13 edits2 adds in branches/safari-612.1.21-branch
Cherry-pick r279361. rdar://problem/79923766
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_suppressSoftwareKeyboard
toYES
and then immediately toNO
underneath 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
_suppressSoftwareKeyboard
toNO
, 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.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@279361 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:11 AM Changeset in webkit [279375] by
-
- 12 edits3 adds in trunk
Loading WebM hangs if server sends only small amount of data
https://bugs.webkit.org/show_bug.cgi?id=226217
<rdar://problem/78709010>
Source/WebCore/PAL:
Reviewed by Eric Carlson.
- pal/cf/CoreMediaSoftLink.cpp:
- pal/cf/CoreMediaSoftLink.h:
- pal/spi/cf/CoreMediaSPI.h:
Source/WebKit:
Reviewed by Eric Carlson.
Test: http/tests/media/video-webm-stall.html
Adopt FigThread{Un,}RegisterAbortAction() when blocking against track parsing.
CoreMedia will attempt to abort reads during AVPlayer teardown, but because the parsing
thread is blocked on a Condition variable in WebKit code, the abort request has no effect.
Adopt methods from CoreMedia to run code during an abort request, and wrap these calls in a
stack-based object. The new AbortAction object takes a Condition variable to notify during
an abort, and its aborted() state can be queried by the Condition's predicate.
Drive-by Fix: enable running an unsigned MTFormatReaderPlugin in the GPU process for
engineering builds.
- Configurations/BaseTarget.xcconfig:
- GPUProcess/mac/GPUProcessMac.mm:
(WebKit::GPUProcess::initializeProcess):
- Shared/mac/MediaFormatReader/MediaFormatReader.cpp:
(WebKit::AbortAction::AbortAction):
(WebKit::AbortAction::~AbortAction):
(WebKit::AbortAction::aborted const):
(WebKit::AbortAction::action):
(WebKit::MediaFormatReader::copyProperty):
(WebKit::MediaFormatReader::copyTrackArray):
LayoutTests:
Reviewed by NOBODY Eric Carlson.
- http/tests/media/resources/.htaccess: Added.
- http/tests/media/video-webm-stall-expected.txt: Added.
- http/tests/media/video-webm-stall.html: Added.
- 8:19 AM Changeset in webkit [279374] by
-
- 5 edits in trunk/LayoutTests
P-384 EC public JWK key in layout tests is wrong
https://bugs.webkit.org/show_bug.cgi?id=227432
Reviewed by Chris Dumez.
Fix the y value of the JWK keys. The y value was derived from the x value with openssl,
using EC_POINT_set_compressed_coordinates_GFp() and EC_POINT_get_affine_coordinates_GFp(),
and was verified with EC_KEY_check_key().
- crypto/subtle/ec-import-key-malformed-parameters.html:
- crypto/subtle/ecdh-import-jwk-public-key-p384.html:
- crypto/subtle/ecdsa-import-jwk-public-key-alg-384.html:
- crypto/workers/subtle/resources/ec-import-jwk-key-public.js:
- 6:53 AM Changeset in webkit [279373] by
-
- 3 edits in trunk/Source/ThirdParty/ANGLE
ANGLE Metal primitive restart range computation could index with size_t
https://bugs.webkit.org/show_bug.cgi?id=227449
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-06-29
Reviewed by Kenneth Russell.
Make the
calculateRestartRanges()
a bit simpler in order
for it to be easier to understand.
- src/libANGLE/renderer/metal/BufferMtl.h:
(rx::IndexRange::IndexRange):
Add documentation what the mtl::IndexRange is.
Add constructor so thatstd::vector::emplace_back()
works.
- src/libANGLE/renderer/metal/BufferMtl.mm:
(rx::calculateRestartRanges):
Index with size_t to make it simpler to understand if the index
overflows or not.
Use reinterpret_cast in order to not accidentally cast away
const frommtl::BufferRef::mapReadOnly()
.
Skip the non-marker elements withcontinue
to avoid deep nesting.
Give a name to the restart range marker value.
Remove intermediate variablevalue = bufferData[i]
as it is never
used more than once. This simplifies the code as the do-while loop
does not need to check the if condition as the loop ending condition
already checks.
Make the array a returned result instead of out variable.
(rx::BufferMtl::getRestartIndices):
- 6:52 AM Changeset in webkit [279372] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
ANGLE Metal primitive restart range computation should not be done unless primitive restart is enabled
https://bugs.webkit.org/show_bug.cgi?id=227452
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-06-29
Reviewed by Kenneth Russell.
Primitive restart needs to scan the whole index buffer for values.
This should not be done unless needed.
- src/libANGLE/renderer/metal/VertexArrayMtl.mm:
(rx::VertexArrayMtl::getDrawIndices):
First check for primitive restart enabledness.
Compute the primitive restart values after this.
The algoritm should succeed when the count of primitive
restart ranges is zero, and it does not do much of work.
Use the restart range vector as reference, so that no copy
would be done.
Add spaces the if statements, comments and references.
Move the else arm of the if statement with return statement
to body of the function to reduce nesting.
- 5:06 AM Changeset in webkit [279371] by
-
- 3 edits2 adds in trunk
Nullptr crash in HTMLStackItem::create via DocumentFragment::parseHTML
https://bugs.webkit.org/show_bug.cgi?id=227390
Patch by Rob Buis <rbuis@igalia.com> on 2021-06-29
Reviewed by Ryosuke Niwa.
Source/WebCore:
DOM manipulation can mean document.body() can return null, causing the
crash/ASSERT in DocumentFragment::parseHTML in the test case. Since the
only use of it was to force InBody insertion mode, instead use a fake body element.
Test: editing/pasteboard/paste-create-fragment-crash.html
- editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::createFragment):
LayoutTests:
Add test for this.
- editing/pasteboard/paste-create-fragment-crash-expected.txt: Added.
- editing/pasteboard/paste-create-fragment-crash.html: Added.
- 2:38 AM Changeset in webkit [279370] by
-
- 3 edits2 adds in trunk
Crash in SharedBuffer::data
https://bugs.webkit.org/show_bug.cgi?id=227173
Patch by Rob Buis <rbuis@igalia.com> on 2021-06-29
Reviewed by Ryosuke Niwa.
Source/WebCore:
Null check data in openFunc.
Test: fast/xsl/xslt-transformToDocument-crash.html
- xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::openFunc):
LayoutTests:
- fast/xsl/xslt-transformToDocument-crash-expected.txt: Added.
- fast/xsl/xslt-transformToDocument-crash.html: Added.
- 2:12 AM Changeset in webkit [279369] by
-
- 2 edits in trunk/Source/WebKit
[GTK][WPE] Check GApplication has a valid ID before trying to create the flatpack info
https://bugs.webkit.org/show_bug.cgi?id=227344
Reviewed by Michael Catanzaro.
Show a warning if GApplication is used but app ID is nullptr.
- UIProcess/Launcher/glib/BubblewrapLauncher.cpp:
(WebKit::createFlatpakInfo):
- 1:11 AM Changeset in webkit [279368] by
-
- 2 edits in trunk/Source/WebCore
OES_texture_float should implicitly enable EXT_float_blend
https://bugs.webkit.org/show_bug.cgi?id=227456
<rdar://79804439>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-06-29
Reviewed by Kenneth Russell.
Tested by webgl/1.0.x/conformance/extensions/oes-texture-float.html
- html/canvas/OESTextureFloat.cpp:
(WebCore::OESTextureFloat::OESTextureFloat):
Request EXT_float_blend when user requests OES_texture_float.
WEBGL_color_buffer_float and EXT_color_buffer_float already have
the code.
- 12:59 AM Changeset in webkit [279367] by
-
- 2 edits in trunk/Source/WebKit
[GTK][WPE] Bubblewrap: allow to set DBus proxy logging per proxy
https://bugs.webkit.org/show_bug.cgi?id=227447
Reviewed by Michael Catanzaro.
It's currently global using env var WEBKIT_ENABLE_DBUS_PROXY_LOGGING. Add WEBKIT_ENABLE_A11Y_DBUS_PROXY_LOGGING
to enable logging only on a11y bus.
- UIProcess/Launcher/glib/BubblewrapLauncher.cpp:
(WebKit::XDGDBusProxyLauncher::launch):
(WebKit::bindA11y):
(WebKit::bubblewrapSpawn):
- 12:25 AM Changeset in webkit [279366] by
-
- 15 edits9 deletes in trunk/Source
Remove RemoteAudioMediaStreamTrackRenderer and RemoteAudioMediaStreamTrackRendererManager
https://bugs.webkit.org/show_bug.cgi?id=227438
Reviewed by Eric Carlson.
Source/WebCore:
- platform/mediastream/cocoa/AudioMediaStreamTrackRendererInternalUnit.cpp:
(WebCore::LocalAudioMediaStreamTrackRendererInternalUnit::start):
(WebCore::LocalAudioMediaStreamTrackRendererInternalUnit::stop):
Add some logging.
Source/WebKit:
Remove code no longer enabled.
This code was obsoleted by RemoteAudioMediaStreamTrackRendererInternalUnitManager and friends.
Update GPUProcess to not exit if RemoteAudioMediaStreamTrackRendererInternalUnitManager has some units,
like was done by RemoteAudioMediaStreamTrackRendererManager.
- DerivedSources.make:
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::GPUConnectionToWebProcess):
(WebKit::GPUConnectionToWebProcess::~GPUConnectionToWebProcess):
(WebKit::GPUConnectionToWebProcess::allowsExitUnderMemoryPressure const):
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::audioMediaStreamTrackRendererQueue): Deleted.
- GPUProcess/GPUProcess.h:
- GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp: Removed.
- GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.h: Removed.
- GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.messages.in: Removed.
- GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp:
(WebKit::renderCallback):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::Unit):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::start):
- GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.h:
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::hasUnits):
- GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.cpp: Removed.
- GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.h: Removed.
- GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.messages.in: Removed.
- Scripts/webkit/messages.py:
(types_that_cannot_be_forward_declared):
- Sources.txt:
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp: Removed.
- WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.h: Removed.
- WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererIdentifier.h: Removed.
- 12:19 AM Changeset in webkit [279365] by
-
- 9 edits1 add in trunk/Source
Enable Probabilistic Guard Malloc for RuleData and RuleFeature vectors
https://bugs.webkit.org/show_bug.cgi?id=227446
Reviewed by Geoffrey Garen.
Source/WebCore:
Help for catching a crash.
- style/RuleFeature.cpp:
(WebCore::Style::RuleFeatureSet::collectFeatures):
(WebCore::Style::RuleFeatureSet::add):
- style/RuleFeature.h:
- style/RuleSet.h:
- style/StyleScopeRuleSets.cpp:
(WebCore::Style::makeRuleSet):
(WebCore::Style::ensureInvalidationRuleSets):
Source/WTF:
Add SystemMalloc type that can be used with containers like Vector and
ProbabilisticGuardMalloc alias for it on Mac/iOS platforms.
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/SystemMalloc.h: Added.
(WTF::SystemMalloc::malloc):
(WTF::SystemMalloc::tryMalloc):
(WTF::SystemMalloc::zeroedMalloc):
(WTF::SystemMalloc::tryZeroedMalloc):
(WTF::SystemMalloc::realloc):
(WTF::SystemMalloc::tryRealloc):
(WTF::SystemMalloc::free):
- wtf/Vector.h:
(WTF::Malloc>::appendVector):
Include all template parameters for the appendVector argument.
- 12:14 AM Changeset in webkit [279364] by
-
- 8 edits in trunk
CSS scroll snap should allow scrolling to the middle of snap areas that overflow the snapport
https://bugs.webkit.org/show_bug.cgi?id=223021
<rdar://problem/75518606>
Patch by Martin Robinson <mrobinson@igalia.com> on 2021-06-29
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-scroll-snap/overflowing-snap-areas-expected.txt: Update test
expectations to reflect newly passing tests.
Source/WebCore:
No new tests. This is covered by existing tests and, in particular, a WPT test:
- web-platform-tests/css/css-scroll-snap/overflowing-snap-areas.html
- page/scrolling/ScrollSnapOffsetsInfo.cpp:
(WebCore::searchForPotentialSnapPoints): Record when the target snap offset happens to
fall in the interior of a snap area that overflows the snap port.
(WebCore::closestSnapOffsetWithInfoAndAxis): When this happens and we are in a spec-compliant
sitaution, just snap to the original target offset.
LayoutTests:
Update some existing tests that were relying on non-spec compliant behavior. These tests
used snap areas that were larger than the snapport and didn't expect that the parent
scroller could scroll into them.
- css3/scroll-snap/scroll-snap-click-scrollbar-gutter.html: This test used snap areas that
overflow the snapport, thus meant that it relied on non-spec compliant behavior. Rework it so
that the snap areas do not overflow, maintaining the existing behavior.
- tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-then-horizontal.html: Ditto.
- tiled-drawing/scrolling/scroll-snap/scroll-snap-proximity-overflow.html: Ditto.
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_suppressSoftwareKeyboard
toYES
and then immediately toNO
underneath 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
_suppressSoftwareKeyboard
toNO
, 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
head
tag 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
UIFloatIsZero
macro 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
redefiningUIFloatIsZero
in HTMLConverter.mm. However, sinceUIFloatIsZero
is 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
RequireUserGestureForFullscreen
restriction 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
UserGestureIndicator
before 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:
Jun 26, 2021:
- 10:42 PM Changeset in webkit [279311] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed. Remove the build warnings below since r279050.
warning: redundant move in return statement [-Wredundant-move]
No new tests, no new behavioral changes.
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeCounterStyleAdditiveSymbols):
- css/parser/CSSPropertyParserWorkerSafe.cpp:
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeFontFaceSrcURI):
- 7:06 PM Changeset in webkit [279310] by
-
- 4 edits in trunk/Source/WebKit
[iOS] Safari sometimes hangs under sync IPC in
-[WKWebView _setSuppressSoftwareKeyboard:]
https://bugs.webkit.org/show_bug.cgi?id=227424
rdar://79745385
Reviewed by Tim Horton.
When activating streamlined AutoFill, Safari calls UIKit SPI (
-_setSuppressSoftwareKeyboard:
) on WKWebView to
ensure that the normal software keyboard doesn't briefly appear instead of the AutoFill input view; after
requesting AutoFill credentials, Safari then stops suppressing the software keyboard by setting the SPI property
back to NO. In WebKit, we override-[WKWebView _setSuppressSoftwareKeyboard:]
, such that WKContentView's
keyboard suppression state follows the web view's state (this is necessary, since WKContentView is the actual
-firstResponder
when editing focused text inputs). However, when changing software keyboard suppression from
YES to NO, UIKit reloads input views and (in the process) calls into
-requestAutocorrectionContextWithCompletionHandler:
, which then makes a sync IPC call into the web process.
To avoid this sync IPC call, we refactor the implementation of
-[WKWebView _setSuppressSoftwareKeyboard:]
,
such that we don't immediately attempt to unsuppress the software keyboard by calling into WKContentView.
Instead, we asynchronously request an autocorrection context from the web process, and then call
-[WKContentView _setSuppressSoftwareKeyboard:NO]
after the autocorrection context request completes (using
the last known autocorrection context data in the UI process rather than making a sync IPC call).
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _setSuppressSoftwareKeyboard:]):
Call into
-updateSoftwareKeyboardSuppressionStateFromWebView
below.
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView cleanUpInteraction]):
Invoke
-unsuppressSoftwareKeyboardUsingLastAutocorrectionContextIfNeeded
to ensure that we stop software
keyboard suppression if the web process terminates while we're waiting for autocorrection context data to
arrive.
(-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):
(-[WKContentView _handleAutocorrectionContext:]):
(-[WKContentView updateSoftwareKeyboardSuppressionStateFromWebView]):
Add a new helper that keeps WKContentView's software keyboard suppression state in sync with the WKWebView's
software keyboard suppression state. In the case where we're supressing the software keyboard, we can simply
call into-[WKContentView _setSuppressSoftwareKeyboard:]
right away, since UIKit won't try to request an
autocorrection context.
However, in the case where we're unsuppressing the software keyboard, set a new flag, don't immediately forward
the call to WKContentView. Instead, set the_unsuppressSoftwareKeyboardAfterNextAutocorrectionContextUpdate
flag to YES and call into WebPageProxy to request an updated autocorrection context. Upon receiving the response
in-[WKContentView _handleAutocorrectionContext:]
, we then unset the flag and unsuppress the software keyboard
(crucially, using_lastAutocorrectionContext
instead of making a synchronous call back to the web content
process).
(-[WKContentView unsuppressSoftwareKeyboardUsingLastAutocorrectionContextIfNeeded]):
- 6:07 PM Changeset in webkit [279309] by
-
- 68 edits4 copies in trunk
[Modern Media Controls] Modern media controls should not need to know about specific platforms in shared code
https://bugs.webkit.org/show_bug.cgi?id=227423
Reviewed by Eric Carlson.
Source/WebCore:
Rather than requiring the shared media control classes to know specifics about
the various platforms via the LayoutTraits flags, we now abstract those decisions
via a new polymorphic LayoutTraits class, which each platform subclasses and
implements.
This will gives better separation and will allow easier experimentation with new
control patterns.
- DerivedSources-input.xcfilelist:
- DerivedSources.make:
- PlatformMac.cmake:
- WebCore.xcodeproj/project.pbxproj:
- Modules/modern-media-controls/js-files:
Adds new files for layout traits and its subclasses.
- Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::layoutTraitsClassName const):
(WebCore::MediaControlsHost::platform const): Deleted.
- Modules/mediacontrols/MediaControlsHost.h:
- Modules/mediacontrols/MediaControlsHost.idl:
Replace platform accessor with a new layoutTraitsClassName, which allows
the platform to spcecify which of the trait subclasses to use.
- Modules/modern-media-controls/controls/layout-traits.js: Added.
- Modules/modern-media-controls/controls/ios-layout-traits.js: Added.
- Modules/modern-media-controls/controls/macos-layout-traits.js: Added.
- Modules/modern-media-controls/controls/watchos-layout-traits.js: Added.
Add new layout trait files.
- Modules/modern-media-controls/controls/fullscreen-button.js:
- Modules/modern-media-controls/controls/icon-service.js:
- Modules/modern-media-controls/controls/ios-inline-media-controls.js:
- Modules/modern-media-controls/controls/layout-item.js:
- Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js:
- Modules/modern-media-controls/controls/macos-inline-media-controls.js:
- Modules/modern-media-controls/controls/media-controls.js:
- Modules/modern-media-controls/controls/play-pause-button.js:
- Modules/modern-media-controls/controls/time-control.js:
- Modules/modern-media-controls/controls/watchos-media-controls.js:
- Modules/modern-media-controls/media/media-controller.js:
- Modules/modern-media-controls/media/tracks-support.js:
Replace explicit checks for platform with queries to the layout traits interface.
LayoutTests:
Update tests and results to use LayoutTraits class.
- media/modern-media-controls/airplay-button/airplay-button-on.html:
- media/modern-media-controls/airplay-button/airplay-button.html:
- media/modern-media-controls/airplay-placard/airplay-placard.html:
- media/modern-media-controls/button/button-active-state.html:
- media/modern-media-controls/button/button-click-on-edges.html:
- media/modern-media-controls/button/button-focus-state.html:
- media/modern-media-controls/button/button-icon-name-expected.txt:
- media/modern-media-controls/button/button-icon-name.html:
- media/modern-media-controls/button/button-on.html:
- media/modern-media-controls/forward-button/forward-button.html:
- media/modern-media-controls/fullscreen-button/fullscreen-button.html:
- media/modern-media-controls/icon-service/icon-service-expected.txt:
- media/modern-media-controls/icon-service/icon-service.html:
- media/modern-media-controls/invalid-placard/invalid-placard-constrained-metrics-expected.txt:
- media/modern-media-controls/invalid-placard/invalid-placard-constrained-metrics.html:
- media/modern-media-controls/invalid-placard/invalid-placard.html:
- media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-constructor.html:
- media/modern-media-controls/layout-item/layout-item-expected.txt:
- media/modern-media-controls/layout-item/layout-item.html:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor-expected.txt:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor.html:
- media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-constructor-expected.txt:
- media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-constructor.html:
- media/modern-media-controls/media-controller/media-controller-fullscreen-change.html:
- media/modern-media-controls/media-controls/media-controls-appear-when-focus.html:
- media/modern-media-controls/media-controls/media-controls-constructor-expected.txt:
- media/modern-media-controls/media-controls/media-controls-constructor.html:
- media/modern-media-controls/media-controls/media-controls-placard-compressed-metrics-expected.txt:
- media/modern-media-controls/media-controls/media-controls-placard-compressed-metrics.html:
- media/modern-media-controls/mute-button/mute-button.html:
- media/modern-media-controls/overflow-button/overflow-button.html:
- media/modern-media-controls/pip-button/pip-button.html:
- media/modern-media-controls/pip-placard/pip-placard.html:
- media/modern-media-controls/placard/placard-expected.txt:
- media/modern-media-controls/placard/placard.html:
- media/modern-media-controls/play-pause-button/play-pause-button.html:
- media/modern-media-controls/rewind-button/rewind-button.html:
- media/modern-media-controls/skip-back-button/skip-back-button.html:
- media/modern-media-controls/skip-forward-button/skip-forward-button.html:
- media/modern-media-controls/time-control/time-control-expected.txt:
- media/modern-media-controls/time-control/time-control.html:
- media/modern-media-controls/tracks-button/tracks-button.html:
- media/modern-media-controls/watchos-media-controls/watchos-media-controls-constructor-expected.txt:
- media/modern-media-controls/watchos-media-controls/watchos-media-controls-constructor.html:
- 5:48 PM Changeset in webkit [279308] by
-
- 4 edits in trunk/Source/WebCore
Build fix for iOS Simulator. MTLSharedTexture is not available
on that configuration.
- Modules/webxr/WebXROpaqueFramebuffer.cpp:
(WebCore::WebXROpaqueFramebuffer::startFrame):
(WebCore::WebXROpaqueFramebuffer::endFrame):
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
Jun 25, 2021:
- 10:10 PM Changeset in webkit [279307] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Update test expectations after r279217
https://bugs.webkit.org/show_bug.cgi?id=227410
Unreviewed test gardening.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-06-25
- platform/glib/TestExpectations:
- 7:26 PM Changeset in webkit [279306] by
-
- 2 edits in trunk/Source/WebCore
[LFC][TFC] Remove redundant struct ResolvedItem
https://bugs.webkit.org/show_bug.cgi?id=227405
Reviewed by Sam Weinig.
- layout/formattingContexts/table/TableLayout.cpp:
(WebCore::Layout::distributeAvailableSpace):
- 6:47 PM Changeset in webkit [279305] by
-
- 9 edits in trunk/Source/WebKit
[macOS] Add logging and clean up AppSSO flows
https://bugs.webkit.org/show_bug.cgi?id=227379
Reviewed by Kate Cheney.
This patch adds detailed logging to understand the flows through the AppSSO authentication code,
and adds clean-up code in more places to ensure that the modal sheet used by AppSSO is dismissed
in cases where the authentication has completed (or failed).
- UIProcess/Cocoa/SOAuthorization/NavigationSOAuthorizationSession.mm:
(WebKit::NavigationSOAuthorizationSession::shouldStartInternal): Adds new logging.
(WebKit::NavigationSOAuthorizationSession::webViewDidMoveToWindow): Ditto.
(WebKit::NavigationSOAuthorizationSession::pageActiveURLDidChangeDuringWaiting const): Ditto.
- UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.mm:
(WebKit::PopUpSOAuthorizationSession::shouldStartInternal): Adds new logging.
(WebKit::PopUpSOAuthorizationSession::fallBackToWebPathInternal): Ditto.
(WebKit::PopUpSOAuthorizationSession::abortInternal): Ditto.
(WebKit::PopUpSOAuthorizationSession::completeInternal): Ditto.
(WebKit::PopUpSOAuthorizationSession::close): Ditto.
(WebKit::PopUpSOAuthorizationSession::initSecretWebView): Ditto.
- UIProcess/Cocoa/SOAuthorization/RedirectSOAuthorizationSession.mm:
(WebKit::RedirectSOAuthorizationSession::fallBackToWebPathInternal): Adds new logging.
(WebKit::RedirectSOAuthorizationSession::abortInternal): Ditto.
(WebKit::RedirectSOAuthorizationSession::completeInternal): Ditto.
(WebKit::RedirectSOAuthorizationSession::beforeStart): Ditto.
- UIProcess/Cocoa/SOAuthorization/SOAuthorizationCoordinator.mm:
(WebKit::SOAuthorizationCoordinator::tryAuthorize): Adds new logging.
- UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.h:
- UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:
(WebKit::SOAuthorizationSession::stateString const): Added.
(WebKit::SOAuthorizationSession::~SOAuthorizationSession): Add new logging, and ensure modal sheet is dismissed.
(WebKit::SOAuthorizationSession::becomeCompleted): Added new logging.
(WebKit::SOAuthorizationSession::shouldStart): Ditto.
(WebKit::SOAuthorizationSession::start): Ditto.
(WebKit::SOAuthorizationSession::continueStartAfterGetAuthorizationHints): Ditto.
(WebKit::SOAuthorizationSession::continueStartAfterDecidePolicy): Ditto.
(WebKit::SOAuthorizationSession::fallBackToWebPath): Add new logging, and ensure modal sheet is dismissed.
(WebKit::SOAuthorizationSession::abort): Ditto.
(WebKit::SOAuthorizationSession::complete): Ditto.
(WebKit::SOAuthorizationSession::presentViewController): Added new logging, and dismiss modal if an existing
view is in place.
(WebKit::SOAuthorizationSession::dismissModalSheetIfNecessary): Added.
(WebKit::SOAuthorizationSession::dismissViewController): Use new helper function.
- UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.mm:
(WebKit::SubFrameSOAuthorizationSession::fallBackToWebPathInternal): Adds new logging.
(WebKit::SubFrameSOAuthorizationSession::abortInternal): Ditto.
(WebKit::SubFrameSOAuthorizationSession::completeInternal): Ditto.
(WebKit::SubFrameSOAuthorizationSession::beforeStart): Ditto.
(WebKit::SubFrameSOAuthorizationSession::didFinishLoad): Ditto.
(WebKit::SubFrameSOAuthorizationSession::loadRequestToFrame): Ditto.
- UIProcess/Cocoa/SOAuthorization/WKSOAuthorizationDelegate.mm:
(-[WKSOAuthorizationDelegate authorization:presentViewController:withCompletion:]): Adds new logging.
(-[WKSOAuthorizationDelegate authorizationDidNotHandle:]): Ditto.
(-[WKSOAuthorizationDelegate authorizationDidCancel:]): Ditto.
(-[WKSOAuthorizationDelegate authorizationDidComplete:]): Ditto.
(-[WKSOAuthorizationDelegate authorization:didCompleteWithHTTPAuthorizationHeaders:]): Ditto.
(-[WKSOAuthorizationDelegate authorization:didCompleteWithHTTPResponse:httpBody:]): Ditto.
(-[WKSOAuthorizationDelegate authorization:didCompleteWithError:]): Ditto.
(-[WKSOAuthorizationDelegate setSession:]): Ditto.
- 5:49 PM Changeset in webkit [279304] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Web process sometimes crashes under findDataDetectionResultElementInImageOverlay
https://bugs.webkit.org/show_bug.cgi?id=227412
rdar://79588091
Reviewed by Devin Rousso.
Speculatively fix the crash by ensuring that the hit-tested text node inside an image overlay is inside the
shadow root of the element responding to click events, and that the element responding to click events contains
an image overlay.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::elementPositionInformation):
- 5:39 PM Changeset in webkit [279303] by
-
- 4 edits in trunk/Source
[macOS] WebGL content is unable to use the discrete GPU
https://bugs.webkit.org/show_bug.cgi?id=227408
<rdar://problem/79216506>
Reviewed by Dean Jackson.
Source/ThirdParty/ANGLE:
There appears to be a key collision:
Source/ThirdParty/ANGLE/include/platform/PlatformMethods.h:#define EGL_PLATFORM_ANGLE_PLATFORM_METHODS_ANGLEX 0x3482
Source/ThirdParty/ANGLE/include/EGL/eglext_angle.h:#define EGL_POWER_PREFERENCE_ANGLE 0x3482
Both these keys seem to be accepted by EGL_GetPlatformDisplayEXT().
This patch just changes the value of one of them to a value I picked out of a hat, just so they don't conflict.
We should work with upstream to either:
A) Find a better solution (maybe disambiguate these values based on which function is accepting them), or
B) Make a robust way to make sure keys don't collide in the future.
- include/platform/PlatformMethods.h:
Source/WebCore:
Simply pass along the power preference into ANGLE. This is read in
DisplayMtl::getMetalDeviceMatchingAttribute().
No new tests. I _think_ this is untestable, because the web exposed power preference is being set correctly.
We’re correctly reporting to the web content that they have successfully asked for a high power context.
We’re just not honoring that internally. If the test is a performance test, or checks the renderer string,
that test would be hardware-dependent, and couldn’t be a regular layout test.
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
(WebCore::InitializeEGLDisplay):
- 5:23 PM Changeset in webkit [279302] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r278746): [Mac wk 1] media/media-fullscreen-return-to-inline.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=227367.
Unreviewed test gardening.
Patch by Eric Hutchison <Eric Hutchison> on 2021-06-25
- platform/mac-wk1/TestExpectations:
- 5:09 PM Changeset in webkit [279301] by
-
- 5 edits1 add in trunk
[macOS] -[NSString _web_widthWithFont:] returns 0
https://bugs.webkit.org/show_bug.cgi?id=227385
<rdar://problem/79430938>
Reviewed by Simon Fraser.
Source/WebCore:
Simply take the iOS codepath on macOS.
Test: WebKitLegacyStringWidth.ThaiWidthForWeb
- platform/graphics/FontCascade.cpp:
- platform/graphics/coretext/FontCascadeCoreText.cpp:
(WebCore::FontCascade::FontCascade):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/mac/StringWidth.mm: Added.
(TEST):
- 4:17 PM Changeset in webkit [279300] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: http/tests/preload/onload_event.html is a flaky timeout on Big Sur wk1 Release
https://bugs.webkit.org/show_bug.cgi?id=227366
Unreviewed test gardening
Patch by Ayumi Kojima <Ayumi Kojima> on 2021-06-25
- platform/mac-wk1/TestExpectations:
- 4:04 PM Changeset in webkit [279299] by
-
- 2 edits in trunk/JSTests
Unskip stress/call-apply-exponential-bytecode-size.js on most platforms
https://bugs.webkit.org/show_bug.cgi?id=227354
Reviewed by Yusuke Suzuki.
Instead of skipping, we increase the JIT memory size for this test on
platforms that have less than 64 MB by default.
- stress/call-apply-exponential-bytecode-size.js:
- 3:06 PM Changeset in webkit [279298] by
-
- 8 edits in trunk/Source/WebCore
Add support for MTLSharedTextures in WebXR
https://bugs.webkit.org/show_bug.cgi?id=227245
<rdar://problem/79591620>
Reviewed by Tim Horton.
Source/WebCore:
Sometimes, the IOSurface passed to WebXR come from a shared MTLTexture. In
this case we can't treat the IOSurface data as a regular single-plane
image. Instead we should use it to recreate the MTLTexture and then
bind that to WebGL's framebuffer.
- Modules/webxr/WebXROpaqueFramebuffer.cpp: Use some new binding methods on GraphicsContextGLOpenGL
if given a shared texture.
(WebCore::WebXROpaqueFramebuffer::startFrame):
(WebCore::WebXROpaqueFramebuffer::endFrame):
- Modules/webxr/WebXROpaqueFramebuffer.h:
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: New methods to link an
IOSurface to a GL texture, going through a MTLSharedTexture.
(WebCore::GraphicsContextGLOpenGL::attachIOSurfaceToSharedTexture):
(WebCore::GraphicsContextGLOpenGL::detachIOSurfaceFromSharedTexture):
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- platform/xr/PlatformXR.h: Add a new "isShared" member to LayerData
to differentiate between normal IOSurfaces and those that came
from a shared texture.
(PlatformXR::Device::FrameData::LayerData::encode const):
(PlatformXR::Device::FrameData::LayerData::decode):
Source/WebCore/PAL:
Define MTLSharedTextureHandle's initWithIOSurface.
- pal/spi/cocoa/MetalSPI.h:
- 1:50 PM Changeset in webkit [279297] by
-
- 2 edits in trunk/Source/WTF
Set ImageBitmap experimental feature flag to true
https://bugs.webkit.org/show_bug.cgi?id=227140
Patch by Kenneth Russell <kbr@chromium.org> on 2021-06-25
Reviewed by Dean Jackson.
Web developers - most recently Google's Meet team - have asked for
ImageBitmap support in WebKit. The implementation was
substantially upgraded during development of WebGL 2.0, and is
thoroughly tested on the EWS. Change the default value for
ImageBitmap's experimental flag to true; this can be removed
completely after one release cycle.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 12:51 PM Changeset in webkit [279296] by
-
- 2 edits in trunk/Source/WebCore
Fix null crash in AudioMediaStreamTrackRendererCocoa::start
https://bugs.webkit.org/show_bug.cgi?id=227386
<rdar://79045120>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-06-25
Reviewed by Youenn Fablet.
AudioMediaStreamTrackRendererInternalUnitManager::Proxy::~Proxy calls those callbacks with nullptr.
So can LocalAudioMediaStreamTrackRendererInternalUnit::retrieveFormatDescription when createAudioUnitIfNeeded
has an early return or hasn't been called yet.
When this happens, let's not crash.
- platform/mediastream/cocoa/AudioMediaStreamTrackRendererCocoa.cpp:
(WebCore::AudioMediaStreamTrackRendererCocoa::start):
- 12:06 PM Changeset in webkit [279295] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Add missing methods to IOKit filter
https://bugs.webkit.org/show_bug.cgi?id=227398
<rdar://79487528>
Reviewed by Brent Fulgham.
Add missing methods to the IOAccelerator IOKit filter on macOS.
- WebProcess/com.apple.WebProcess.sb.in:
- 11:50 AM Changeset in webkit [279294] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Sources: Scope Chain sidebar panel is stripping repeating whitespace from strings
https://bugs.webkit.org/show_bug.cgi?id=227234
Reviewed by Devin Rousso.
String and Regular Expression values in Object Trees were having
white-space: nowrap;
applied to them, which
was redundant becausewhite-space: pre;
was already defined for.formatted-string
and.formatted-regexp
,
which makes sure that the text does not wrap unless it contains a newline, and these previews have newlines
replaced with a Unicode symbol to visually represent a newline without breaking to a new line.
- UserInterface/Views/ObjectTreeView.css:
(.object-tree-property :matches(.formatted-string, .formatted-regexp)): Deleted.
- 11:46 AM Changeset in webkit [279293] by
-
- 1 copy in tags/Safari-612.1.20.2
Tag Safari-612.1.20.2.
- 11:45 AM Changeset in webkit [279292] by
-
- 2 edits in branches/safari-612.1.20-branch/Source/WebCore/PAL
Cherry-pick r279290. rdar://problem/79788549
Unreviewed, fix the macOS Monterey build
Some internal builders are still attempting to build WebKit for macOS Monterey using an SDK without the fix for
rdar://74299451. Restore the forward staging declaration for-initWithDataProvider:contentType:previewTitle:
in the meantime.
- pal/spi/mac/QuickLookMacSPI.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@279290 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:42 AM Changeset in webkit [279291] by
-
- 8 edits in branches/safari-612.1.20-branch/Source
Versioning.
WebKit-7612.1.20.2
- 11:08 AM Changeset in webkit [279290] by
-
- 2 edits in trunk/Source/WebCore/PAL
Unreviewed, fix the macOS Monterey build
Some internal builders are still attempting to build WebKit for macOS Monterey using an SDK without the fix for
rdar://74299451. Restore the forward staging declaration for-initWithDataProvider:contentType:previewTitle:
in the meantime.
- pal/spi/mac/QuickLookMacSPI.h:
- 10:55 AM Changeset in webkit [279289] by
-
- 3 edits in trunk/Source/WebCore
WIRELESS_PLAYBACK_TARGET guards protect unrelated code
https://bugs.webkit.org/show_bug.cgi?id=227404
Patch by Philippe Normand <pnormand@igalia.com> on 2021-06-25
Reviewed by Eric Carlson.
The dispatchEvent(), addEventListener() and removeEventListener() are now unconditionally
implemented. The WIRELESS_PLAYBACK_TARGET guards were refactored to enclose only the code
specific to this feature.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::enqueuePlaybackTargetAvailabilityChangedEvent):
(WebCore::HTMLMediaElement::setWirelessPlaybackTarget):
(WebCore::HTMLMediaElement::setShouldPlayToPlaybackTarget):
(WebCore::HTMLMediaElement::playbackTargetPickerWasDismissed):
(WebCore::HTMLMediaElement::remoteHasAvailabilityCallbacksChanged):
(WebCore::HTMLMediaElement::addEventListener):
(WebCore::HTMLMediaElement::removeEventListener):
- html/HTMLMediaElement.h:
- 10:12 AM Changeset in webkit [279288] by
-
- 67 edits in trunk/Source
Unreviewed, reverting r279208.
https://bugs.webkit.org/show_bug.cgi?id=227381
Broke the Apple Windows build.
Reverted changeset:
"Not all uses of AudioToolbox framework use soft linking"
https://bugs.webkit.org/show_bug.cgi?id=227250
https://trac.webkit.org/changeset/279208
- 9:31 AM Changeset in webkit [279287] by
-
- 4 edits in trunk/Source/WebKit
Explicitly invalidate WKFullScreenViewController after a video exits fullscreen
https://bugs.webkit.org/show_bug.cgi?id=227372
Reviewed by Eric Carlson.
Since
WKFullScreenWindowController
ownsWKFullScreenViewController
,
we had better letWKFullScreenWindowController
manage the life cycle
ofWKFullScreenViewController
.
- UIProcess/ios/fullscreen/WKFullScreenViewController.h:
- UIProcess/ios/fullscreen/WKFullScreenViewController.mm:
(-[WKFullScreenViewController initWithWebView:]):
(-[WKFullScreenViewController invalidate]):
(-[WKFullScreenViewController dealloc]):
(-[WKFullScreenViewController showUI]):
(-[WKFullScreenViewController hideUI]):
(-[WKFullScreenViewController videoControlsManagerDidChange]):
(-[WKFullScreenViewController setAnimatingViewAlpha:]):
(-[WKFullScreenViewController setPrefersStatusBarHidden:]):
(-[WKFullScreenViewController setPrefersHomeIndicatorAutoHidden:]):
(-[WKFullScreenViewController setPlaying:]):
(-[WKFullScreenViewController setPictureInPictureActive:]):
(-[WKFullScreenViewController setAnimating:]):
(-[WKFullScreenViewController _manager]):
(-[WKFullScreenViewController _effectiveFullscreenInsets]):
(-[WKFullScreenViewController _cancelAction:]):
(-[WKFullScreenViewController _togglePiPAction:]):
(-[WKFullScreenViewController _touchDetected:]):
(-[WKFullScreenViewController _statusBarFrameDidChange:]):
(-[WKFullScreenViewController _updateWebViewFullscreenInsets]):
(-[WKFullScreenViewController _showPhishingAlert]):
- UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
(-[WKFullScreenWindowController _completedExitFullScreen]):
- 8:42 AM Changeset in webkit [279286] by
-
- 5 edits in trunk
[css-flexbox] Improve computation of intrinsic sizes of flex items with aspect ratio
https://bugs.webkit.org/show_bug.cgi?id=227395
Reviewed by Rob Buis.
Source/WebCore:
Before computing the intrinsic sizes of flex items we first clear the overriding sizes of the item
that might have been set before in order to get the proper intrinsic size. However there is one
situation in which having an overriding size is desirable and it's when the cross size should
be set to the flex container's definite cross size. That's one of the exceptions for definite/indefinite
sizes mentioned in the specs (see https://drafts.csswg.org/css-flexbox/#definite-sizes).
In the aforementioned case we should temporarily set that overriding size in the cross axis so that
the intrinsic size could be computed with that constrain.
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeChildIntrinsicLogicalWidths const): Set the overriding size
in the cross axis to compute the intrinsic size.
(WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing const):
(WebCore::RenderFlexibleBox::childCrossSizeShouldUseContainerCrossSize const): Added a missing check,
the cross size of the child must be auto, otherwise the rule does not apply.
(WebCore::RenderFlexibleBox::computeCrossSizeForChildUsingContainerCrossSize const): Refactored from
computeMainSizeFromAspectRatioUsing() as it's now used in two different places.
- rendering/RenderFlexibleBox.h:
LayoutTests:
- TestExpectations: Unskipped 3 tests that are now passing.
- 8:39 AM Changeset in webkit [279285] by
-
- 4 edits in trunk/Source/WebCore
[GStreamer] TextCombiner has unlinked internal encoders
https://bugs.webkit.org/show_bug.cgi?id=227362
Reviewed by Xabier Rodriguez-Calvar.
Each combiner pad can receive multiple caps events for the same stream, so we can't really
rely on those to modify the internal topology of the combiner. Instead we can check the
sticky events from the pad chain function, this is done at most once per pad. In case a caps
event was sticked to the pad, the combiner now reacts properly.
This issue was detected while running
media/track/in-band/track-in-band-kate-ogg-cues-added-once.html with playbin3 enabled. 6
different encoders where added to the combiner while only 2 are needed actually.
- platform/graphics/gstreamer/TextCombinerGStreamer.cpp:
(webKitTextCombinerHandleCaps):
- platform/graphics/gstreamer/TextCombinerGStreamer.h:
- platform/graphics/gstreamer/TextCombinerPadGStreamer.cpp:
(webkitTextCombinerPadChain):
(webkitTextCombinerPadConstructed):
- 8:28 AM Changeset in webkit [279284] by
-
- 3 edits2 adds in trunk
Nullptr crash in StyledMarkupAccumulator::traverseNodesForSerialization
https://bugs.webkit.org/show_bug.cgi?id=226821
Reviewed by Ryosuke Niwa.
Source/WebCore:
r276394 fixed an issue in serialization when transversing the nodes. It added a new condition
to the ASSERT that was checking that its OK not to have a next pointer when there is a valid
pastEnd in the case of pastEnd being a descendant of the pointer traversing the node tree.
However that descendant check was not including the shadow DOM. This is precisely the case
detected by the test case this patch is adding.
Test: editing/selection/setSelection-shadow-dom-crash.html
- editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):
LayoutTests:
- editing/selection/setSelection-shadow-dom-crash-expected.txt: Added.
- editing/selection/setSelection-shadow-dom-crash.html: Added.
- 8:12 AM Changeset in webkit [279283] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] Build warnings in AudioFileReader since r279123
https://bugs.webkit.org/show_bug.cgi?id=227348
Patch by Philippe Normand <pnormand@igalia.com> on 2021-06-25
Reviewed by Xabier Rodriguez-Calvar.
Simplify the code handling the giostreamsrc creation, now that it is the only option possible.
- platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
(WebCore::AudioFileReader::decodeAudioForBusCreation):
- 8:06 AM Changeset in webkit [279282] by
-
- 8 edits in trunk/Source
Unreviewed, reverting r279266.
https://bugs.webkit.org/show_bug.cgi?id=227402
Causes crash loop
Reverted changeset:
"Remove references to order files"
https://bugs.webkit.org/show_bug.cgi?id=227377
https://trac.webkit.org/changeset/279266
- 7:51 AM Changeset in webkit [279281] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, GStreamer gardening
- platform/glib/TestExpectations: Mark a mediastream as flaky.
- 7:51 AM Changeset in webkit [279280] by
-
- 2 edits in trunk/Tools
Add myself to contributor list
https://bugs.webkit.org/show_bug.cgi?id=227400
Reviewed by Sergio Villar Senin.
- Scripts/webkitpy/common/config/contributors.json:
- 7:08 AM Changeset in webkit [279279] by
-
- 4 edits in trunk/Source/WebKit
[GLib] Guard Cairo inclusions in shared GLib API implementation files
https://bugs.webkit.org/show_bug.cgi?id=227370
Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-06-25
Reviewed by Philippe Normand.
For cross-port GLib API implementation, different Cairo inclusions are
moved into appropriate build guards tha match the build guards where
Cairo is then used.
- UIProcess/API/glib/WebKitFaviconDatabase.cpp:
- UIProcess/API/glib/WebKitProtocolHandler.cpp:
(WebKit::WebKitProtocolHandler::handleGPU):
- UIProcess/API/glib/WebKitWebView.cpp:
- 6:58 AM Changeset in webkit [279278] by
-
- 6 edits in trunk
[css-grid] Consider container's writing mode to get grid item's margin
https://bugs.webkit.org/show_bug.cgi?id=226877
Reviewed by Sergio Villar Senin.
LayoutTests/imported/w3c:
Update test results.
- web-platform-tests/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-008-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-011-expected.txt:
Source/WebCore:
When computing the logical offset of a non-static absolute positioned grid item, we need
to pass its container's style in order to resolve the child margin correctly, especially
for the case when the item has flipped block writing mode (vertical-rl).
This change is an import of the Chromium change at
https://chromium-review.googlesource.com/c/chromium/src/+/2577365
- rendering/RenderBox.h:
(WebCore::RenderBox::marginLogicalLeft const):
(WebCore::RenderBox::marginLogicalRight const):
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::logicalOffsetForOutOfFlowChild const):
- 6:49 AM Changeset in webkit [279277] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] Minor debugging improvements in mediastream source element
https://bugs.webkit.org/show_bug.cgi?id=227396
Patch by Philippe Normand <pnormand@igalia.com> on 2021-06-25
Reviewed by Xabier Rodriguez-Calvar.
- platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp: Give representative name to
the appsrc elements embedded in the MediaStreamSource element. Also add logging calls
related with tracks observation.
- 5:37 AM Changeset in webkit [279276] by
-
- 2 edits in trunk/JSTests
Unskip structure-storedPrototype-should-only-assert-on-the-mutator-thread.js on arm and mips
https://bugs.webkit.org/show_bug.cgi?id=227222
Tested with 50 iterations in both arm and mips.
Unreviewed Gardening.
Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-06-25
- stress/structure-storedPrototype-should-only-assert-on-the-mutator-thread.js:
- 5:28 AM Changeset in webkit [279275] by
-
- 2 edits in trunk/JSTests
Unskip materialized-regexp-has-correct-last-index-set-by-match on arm and mips
https://bugs.webkit.org/show_bug.cgi?id=227213
Unreviewed Gardening.
- stress/materialized-regexp-has-correct-last-index-set-by-match.js:
- 4:22 AM Changeset in webkit [279274] by
-
- 3 edits in trunk/Source/WebCore
[css-flexbox] Cleanup OverridingSizesScope RAII class
https://bugs.webkit.org/show_bug.cgi?id=227394
Reviewed by Rob Buis.
In r279268 we added a new RAII class which adds an overriding sizes free scope to perform
layout computations. That class heavily uses the different set/get/clear methods for overriding
sizes. We can use a macro with subsitutions there to reduce the amount of required code.
Also moving the computeChildIntrinsicLogicalWidths() method to the private section as it does
not require protected visibility.
No new tests as it's just a code refactoring that does not modify the functionality.
- rendering/RenderFlexibleBox.cpp:
(WebCore::OverridingSizesScope::OverridingSizesScope):
(WebCore::OverridingSizesScope::~OverridingSizesScope):
(WebCore::OverridingSizesScope::setOrClearOverridingSize): Deleted.
- rendering/RenderFlexibleBox.h:
- 2:55 AM Changeset in webkit [279273] by
-
- 2 edits in trunk/JSTests
Unskip materialize-regexp-cyclic-regexp.js on ARM and MIPS
https://bugs.webkit.org/show_bug.cgi?id=227223
Tested with 50 iterations in both arm and mips.
Unreviewed Gardening.
Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-06-25
- stress/materialize-regexp-cyclic-regexp.js:
- 2:03 AM Changeset in webkit [279272] by
-
- 2 edits in trunk/Source/WebCore
[css-scroll-snap] Simplify snap point selection helpers
https://bugs.webkit.org/show_bug.cgi?id=227062
Reviewed by Frédéric Wang.
Combine indicesOfNearestSnapOffsets and findFirstSnapStopOffsetBetweenOriginAndDestination
and have the helper return the geometric previous and next snap points. This makes the
code a bit easier to read, slightly more efficient, and prepares for looking at
the geometric previous and next snap points for certain upcoming CSS Scroll Snap features.
Previously, indicesOfNearestSnapOffsets used a binary search and findFirstSnapStopOffsetBetweenOriginAndDestination
used a linear search. This change replaces these two functions with a single linear search.
While findFirstSnapStopOffsetBetweenOriginAndDestination is only called for directional scrolling,
directional scrolling is more common than non-directional scrolling (which is typically only called
by scrollIntoView() and other JS scrolling APIs). I have tested this change with a large table of
snap points and performance does not seem to be changed. In addition, a future change should mean
that this searchForPotentialSnapPoints should be called much less.
No new tests. This should not change behavior in any way.
- page/scrolling/ScrollSnapOffsetsInfo.cpp:
(WebCore::searchForPotentialSnapPoints): Added this new helper which is the combination
of indicesOfNearestSnapOffsets and findFirstSnapStopOffsetBetweenOriginAndDestination.
(WebCore::closestSnapOffsetWithInfoAndAxis): Use the new helper.
- 1:59 AM Changeset in webkit [279271] by
-
- 4 edits in trunk
[css-flexbox] Do not clamp flex base size with {min|max}-{height|width}
https://bugs.webkit.org/show_bug.cgi?id=225590
Reviewed by Alan Bujtas.
Source/WebCore:
When computing flex base size we should not clamp it with neither min-{height|width}
nor max-{height|width}. That would be done later and will be called the hypothetical
main size.
For most of the cases we were already doing it, however there are some particular cases
in which we have to call the generic layout code which does clamp the sizes using min
and max sizes. In order to make those code paths work, we reset the min|max values to
their initial ones (so they effectively become inactive) and then we set the original
values back after computing the base size.
- rendering/RenderFlexibleBox.cpp:
(WebCore::ScopedUnboundedBox::ScopedUnboundedBox): New scoped class that sets min|max sizes
to their initial values on instantiation and restores the original values on destruction.
(WebCore::ScopedUnboundedBox::~ScopedUnboundedBox):
(WebCore::RenderFlexibleBox::constructFlexItems): Wrap the base size computation with a
ScopedUnboundedBox.
LayoutTests:
The patch allows us to pass 3 new tests. We're adding percentage-max-height-003.html to
the list of expected failures because these changes make it fail. This is not really a
regression however because although the size of the deepest flex item was correct (and thus
allowed us to pass the test) the other sizes were completely wrong. So it's more an issue
of the test not being complete enough and passing artificially than anything else.
- TestExpectations: Unskipped 3 tests & skipped 1.
- 1:43 AM Changeset in webkit [279270] by
-
- 2 edits in trunk/LayoutTests
[GTK] Unreviewed test gardening, mark more WebXR tests as unsupported
https://bugs.webkit.org/show_bug.cgi?id=227358
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-06-25
- platform/gtk/TestExpectations:
- 1:31 AM Changeset in webkit [279269] by
-
- 86 edits3 copies330 adds in trunk/LayoutTests
Resync web-platform-tests/css/css-grid tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=223593
Reviewed by Sergio Villar Senin and Manuel Rego Casasnovas.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-grid/abspos/absolute-positioning-grid-container-parent-002-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/absolute-positioning-grid-container-parent-002.html: Added.
- web-platform-tests/css/css-grid/abspos/descendant-static-position-004-expected.html:
- web-platform-tests/css/css-grid/abspos/descendant-static-position-004.html:
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-001-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-001.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-002-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-002.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-img-001-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-img-001.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-img-002-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-img-002.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-img-last-baseline-001-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-img-last-baseline-001.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-img-last-baseline-002-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-img-last-baseline-002.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-last-baseline-001-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-last-baseline-001.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-last-baseline-002-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-last-baseline-002.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-001-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-001.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-002-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-002.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-003-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-003.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-004-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-004.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-last-baseline-001-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-last-baseline-001.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-last-baseline-002-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-last-baseline-002.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-last-baseline-003-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-last-baseline-003.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-last-baseline-004-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-last-baseline-004.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-safe-001-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-safe-001.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-001-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-001.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-002-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-002.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-003-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-003.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-004-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-004.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-last-baseline-001-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-last-baseline-001.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-last-baseline-002-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-last-baseline-002.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-last-baseline-003-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-last-baseline-003.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-last-baseline-004-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-last-baseline-004.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-001-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-001.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-002-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-002.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-img-001-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-img-001.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-img-002-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-img-002.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-img-last-baseline-001-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-img-last-baseline-001.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-img-last-baseline-002-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-img-last-baseline-002.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-last-baseline-001-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-last-baseline-001.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-last-baseline-002-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-last-baseline-002.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-001-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-001.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-002-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-002.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-003-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-003.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-004-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-004.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-last-baseline-001-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-last-baseline-001.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-last-baseline-002-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-last-baseline-002.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-last-baseline-003-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-last-baseline-003.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-last-baseline-004-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-last-baseline-004.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-001-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-001.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-002-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-002.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-003-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-003.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-004-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-004.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-last-baseline-001-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-last-baseline-001.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-last-baseline-002-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-last-baseline-002.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-last-baseline-003-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-last-baseline-003.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-last-baseline-004-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-last-baseline-004.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-positioned-item-dynamic-change-002-expected.xht: Added.
- web-platform-tests/css/css-grid/abspos/grid-positioned-item-dynamic-change-002.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-positioned-item-dynamic-change-003-expected.xht: Added.
- web-platform-tests/css/css-grid/abspos/grid-positioned-item-dynamic-change-003.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-positioned-item-dynamic-change-004-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-positioned-item-dynamic-change-004.html: Added.
- web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-013-expected.txt:
- web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-015-expected.txt:
- web-platform-tests/css/css-grid/abspos/positioned-grid-items-018-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
- web-platform-tests/css/css-grid/abspos/positioned-grid-items-018.html: Added.
- web-platform-tests/css/css-grid/abspos/positioned-grid-items-019-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/positioned-grid-items-019.html: Added.
- web-platform-tests/css/css-grid/abspos/positioned-grid-items-020-expected.xht: Added.
- web-platform-tests/css/css-grid/abspos/positioned-grid-items-020.html: Added.
- web-platform-tests/css/css-grid/abspos/positioned-grid-items-021-expected.xht: Added.
- web-platform-tests/css/css-grid/abspos/positioned-grid-items-021.html: Added.
- web-platform-tests/css/css-grid/abspos/positioned-grid-items-022-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/positioned-grid-items-022.html: Added.
- web-platform-tests/css/css-grid/abspos/positioned-grid-items-negative-indices-001-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/positioned-grid-items-negative-indices-001.html: Added.
- web-platform-tests/css/css-grid/abspos/positioned-grid-items-negative-indices-002-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/positioned-grid-items-negative-indices-002.html: Added.
- web-platform-tests/css/css-grid/abspos/positioned-grid-items-negative-indices-003-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/positioned-grid-items-negative-indices-003.html: Added.
- web-platform-tests/css/css-grid/abspos/support/colors-8x16.png: Added.
- web-platform-tests/css/css-grid/abspos/support/w3c-import.log:
- web-platform-tests/css/css-grid/abspos/w3c-import.log:
- web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-011-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-011.html:
- web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-012-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-012.html:
- web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-013-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-013.html:
- web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-014-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-014.html:
- web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-017-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-017.html:
- web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-018-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-018.html:
- web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-029-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-029.html:
- web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-030-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-030.html:
- web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-031-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-031.html:
- web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-035-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-035.html:
- web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-036-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-036.html:
- web-platform-tests/css/css-grid/alignment/grid-baseline-004-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-baseline-004.html:
- web-platform-tests/css/css-grid/alignment/grid-baseline-align-cycles-001.html:
- web-platform-tests/css/css-grid/alignment/grid-content-alignment-overflow-002-expected.txt: Added.
- web-platform-tests/css/css-grid/alignment/grid-content-alignment-overflow-002.html: Added.
- web-platform-tests/css/css-grid/alignment/grid-content-distribution-026-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-001-expected.html.
- web-platform-tests/css/css-grid/alignment/grid-content-distribution-026.html: Added.
- web-platform-tests/css/css-grid/alignment/grid-content-distribution-027-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
- web-platform-tests/css/css-grid/alignment/grid-content-distribution-027.html: Added.
- web-platform-tests/css/css-grid/alignment/grid-content-distribution-028-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
- web-platform-tests/css/css-grid/alignment/grid-content-distribution-028.html: Added.
- web-platform-tests/css/css-grid/alignment/grid-gutters-015-expected.html: Added.
- web-platform-tests/css/css-grid/alignment/grid-gutters-015.html: Added.
- web-platform-tests/css/css-grid/alignment/grid-gutters-016-expected.html: Added.
- web-platform-tests/css/css-grid/alignment/grid-gutters-016.html: Added.
- web-platform-tests/css/css-grid/alignment/grid-item-auto-margins-001-expected.xht: Added.
- web-platform-tests/css/css-grid/alignment/grid-item-auto-margins-001.html: Added.
- web-platform-tests/css/css-grid/alignment/grid-item-auto-margins-002-expected.xht: Added.
- web-platform-tests/css/css-grid/alignment/grid-item-auto-margins-002.html: Added.
- web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-001-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-001.html:
- web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-002-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-002.html:
- web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-003-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-003.html:
- web-platform-tests/css/css-grid/alignment/grid-self-alignment-expected.txt: Added.
- web-platform-tests/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-008-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-008.html:
- web-platform-tests/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-012-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-012.html:
- web-platform-tests/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-016-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-016.html:
- web-platform-tests/css/css-grid/alignment/grid-self-alignment.html: Added.
- web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001.html:
- web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-002-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-002.html:
- web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-003-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-003.html:
- web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-001-expected.xht: Added.
- web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-001.html: Added.
- web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-002-expected.xht: Added.
- web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-002.html: Added.
- web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-003.tentative-expected.xht: Added.
- web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-003.tentative.html: Added.
- web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-004-expected.xht: Added.
- web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-004.html: Added.
- web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-005-expected.xht: Added.
- web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-005.html: Added.
- web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-006-expected.xht: Added.
- web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-006.html: Added.
- web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-007-expected.xht: Added.
- web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-007.html: Added.
- web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-008-expected.xht: Added.
- web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-008.html: Added.
- web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-009-expected.xht: Added.
- web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-009.html: Added.
- web-platform-tests/css/css-grid/alignment/support/25x50-green.png: Added.
- web-platform-tests/css/css-grid/alignment/support/50x50-green.png: Added.
- web-platform-tests/css/css-grid/alignment/support/w3c-import.log:
- web-platform-tests/css/css-grid/alignment/w3c-import.log:
- web-platform-tests/css/css-grid/dynamic-grid-with-auto-fill-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
- web-platform-tests/css/css-grid/dynamic-grid-with-auto-fill.html: Added.
- web-platform-tests/css/css-grid/dynamic-grid-within-flexbox-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
- web-platform-tests/css/css-grid/dynamic-grid-within-flexbox.html: Added.
- web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-aspect-ratio-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
- web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-aspect-ratio-001.html: Added.
- web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-aspect-ratio-002-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
- web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-aspect-ratio-002.html: Added.
- web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-dynamic-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
- web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-dynamic-001.html: Added.
- web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-dynamic-002-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
- web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-dynamic-002.html: Added.
- web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-dynamic-003-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
- web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-dynamic-003.html: Added.
- web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-min-size-003-expected.txt: Added.
- web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-min-size-003.html: Added.
- web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-min-size-004-expected.txt: Added.
- web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-min-size-004.html: Added.
- web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-multiple-values-004-expected.html: Added.
- web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-multiple-values-004.html: Added.
- web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-multiple-values-005-expected.html: Added.
- web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-multiple-values-005.html: Added.
- web-platform-tests/css/css-grid/grid-definition/grid-repeat-max-width-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
- web-platform-tests/css/css-grid/grid-definition/grid-repeat-max-width-001.html: Added.
- web-platform-tests/css/css-grid/grid-definition/w3c-import.log:
- web-platform-tests/css/css-grid/grid-item-percentage-quirk-001.html:
- web-platform-tests/css/css-grid/grid-item-percentage-quirk-002.html:
- web-platform-tests/css/css-grid/grid-items/aspect-ratio-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
- web-platform-tests/css/css-grid/grid-items/aspect-ratio-001.html: Added.
- web-platform-tests/css/css-grid/grid-items/aspect-ratio-002-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
- web-platform-tests/css/css-grid/grid-items/aspect-ratio-002.html: Added.
- web-platform-tests/css/css-grid/grid-items/aspect-ratio-003-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
- web-platform-tests/css/css-grid/grid-items/aspect-ratio-003.html: Added.
- web-platform-tests/css/css-grid/grid-items/aspect-ratio-004-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
- web-platform-tests/css/css-grid/grid-items/aspect-ratio-004.html: Added.
- web-platform-tests/css/css-grid/grid-items/grid-auto-margin-and-replaced-item-001.html:
- web-platform-tests/css/css-grid/grid-items/grid-item-inline-contribution-001-expected.xht: Added.
- web-platform-tests/css/css-grid/grid-items/grid-item-inline-contribution-001.html: Added.
- web-platform-tests/css/css-grid/grid-items/grid-item-inline-contribution-002.tentative-expected.xht: Added.
- web-platform-tests/css/css-grid/grid-items/grid-item-inline-contribution-002.tentative.html: Added.
- web-platform-tests/css/css-grid/grid-items/grid-item-inline-contribution-003.tentative-expected.xht: Added.
- web-platform-tests/css/css-grid/grid-items/grid-item-inline-contribution-003.tentative.html: Added.
- web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-015-expected.txt: Added.
- web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-015.html: Added.
- web-platform-tests/css/css-grid/grid-items/replaced-element-001-expected.xht: Added.
- web-platform-tests/css/css-grid/grid-items/replaced-element-001.html: Added.
- web-platform-tests/css/css-grid/grid-items/replaced-element-002-expected.xht: Added.
- web-platform-tests/css/css-grid/grid-items/replaced-element-002.html: Added.
- web-platform-tests/css/css-grid/grid-items/replaced-element-007-expected.xht: Added.
- web-platform-tests/css/css-grid/grid-items/replaced-element-007.html: Added.
- web-platform-tests/css/css-grid/grid-items/replaced-element-010-expected.xht: Added.
- web-platform-tests/css/css-grid/grid-items/replaced-element-010.html: Added.
- web-platform-tests/css/css-grid/grid-items/replaced-element-011-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
- web-platform-tests/css/css-grid/grid-items/replaced-element-011.html: Added.
- web-platform-tests/css/css-grid/grid-items/replaced-element-012-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
- web-platform-tests/css/css-grid/grid-items/replaced-element-012.html: Added.
- web-platform-tests/css/css-grid/grid-items/replaced-element-013-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
- web-platform-tests/css/css-grid/grid-items/replaced-element-013.html: Added.
- web-platform-tests/css/css-grid/grid-items/w3c-import.log:
- web-platform-tests/css/css-grid/grid-model/grid-areas-overflowing-grid-container-003-expected.html:
- web-platform-tests/css/css-grid/grid-model/grid-areas-overflowing-grid-container-003.html:
- web-platform-tests/css/css-grid/grid-model/grid-areas-overflowing-grid-container-009-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-model/grid-areas-overflowing-grid-container-003-expected.html.
- web-platform-tests/css/css-grid/grid-model/grid-areas-overflowing-grid-container-009.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-model/grid-areas-overflowing-grid-container-003.html.
- web-platform-tests/css/css-grid/grid-model/grid-button-001-expected.txt:
- web-platform-tests/css/css-grid/grid-model/grid-overflow-padding-001.html:
- web-platform-tests/css/css-grid/grid-model/grid-overflow-padding-002.html:
- web-platform-tests/css/css-grid/grid-model/w3c-import.log:
- web-platform-tests/css/css-grid/grid-within-flexbox-definite-change-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
- web-platform-tests/css/css-grid/grid-within-flexbox-definite-change.html: Added.
- web-platform-tests/css/css-grid/layout-algorithm/baseline-alignment-affects-intrinsic-size-002.html:
- web-platform-tests/css/css-grid/layout-algorithm/baseline-alignment-affects-intrinsic-size-003.html:
- web-platform-tests/css/css-grid/layout-algorithm/baseline-alignment-affects-intrinsic-size-004.html:
- web-platform-tests/css/css-grid/layout-algorithm/baseline-alignment-affects-intrinsic-size-005.html:
- web-platform-tests/css/css-grid/layout-algorithm/baseline-alignment-affects-intrinsic-size-006.html:
- web-platform-tests/css/css-grid/layout-algorithm/flex-and-intrinsic-sizes-001-expected.txt:
- web-platform-tests/css/css-grid/layout-algorithm/flex-and-intrinsic-sizes-001.html:
- web-platform-tests/css/css-grid/layout-algorithm/flex-sizing-rows-indefinite-height-expected.xht: Added.
- web-platform-tests/css/css-grid/layout-algorithm/flex-sizing-rows-indefinite-height.html: Added.
- web-platform-tests/css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-002-expected.txt:
- web-platform-tests/css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-002.html:
- web-platform-tests/css/css-grid/layout-algorithm/grid-flex-track-intrinsic-sizes-001-expected.txt:
- web-platform-tests/css/css-grid/layout-algorithm/grid-flex-track-intrinsic-sizes-001.html:
- web-platform-tests/css/css-grid/layout-algorithm/grid-flex-track-intrinsic-sizes-002-expected.txt:
- web-platform-tests/css/css-grid/layout-algorithm/grid-flex-track-intrinsic-sizes-002.html:
- web-platform-tests/css/css-grid/layout-algorithm/grid-intrinsic-size-with-orthogonal-items-expected.txt:
- web-platform-tests/css/css-grid/layout-algorithm/grid-intrinsic-size-with-orthogonal-items.html:
- web-platform-tests/css/css-grid/layout-algorithm/w3c-import.log:
- web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-001-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-001.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-002-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-002.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-003-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-003.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-004-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-004.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-001-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-001.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-multi-001-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-multi-001.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-stretch-001-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-stretch-001.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-stretch-002-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-stretch-002.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-001-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-001.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-002-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-002.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-003-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-003.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-004-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-004.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-005-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-005.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-006-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-006.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-gap-001-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-gap-001.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-content-baseline-001-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-content-baseline-001.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-self-baseline-001-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-self-baseline-001.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-self-baseline-002a-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-self-baseline-002a.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-self-baseline-002b-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-self-baseline-002b.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-placement-named-lines-001-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-placement-named-lines-001.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-placement-named-lines-002-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-placement-named-lines-002.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-template-columns-computed-withcontent-expected.txt: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-template-columns-computed-withcontent.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-001-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-001.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-002-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-002.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-003-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-003.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-004-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-004.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-005-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-005.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-006-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-006.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-001-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-001.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-002-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-002.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-003-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-003.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-004-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-004.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-005-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-005.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-006-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-006.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-007-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-007.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-001-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-001.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-002-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-002.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-003-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-003.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-004-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-004.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-001-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-001.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-multi-001-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-multi-001.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-stretch-001-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-stretch-001.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-stretch-002-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-stretch-002.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-order-001-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-order-001.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-order-002-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-order-002.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-parsing-expected.txt: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-parsing.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-subgrid-001-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-subgrid-001.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-subgrid-002-expected.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/masonry-subgrid-002.html: Added.
- web-platform-tests/css/css-grid/masonry/tentative/w3c-import.log: Added.
- web-platform-tests/css/css-grid/subgrid/abs-pos-004-expected.html: Added.
- web-platform-tests/css/css-grid/subgrid/abs-pos-004.html: Added.
- web-platform-tests/css/css-grid/subgrid/subgrid-mbp-overflow-004-expected.html: Added.
- web-platform-tests/css/css-grid/subgrid/subgrid-mbp-overflow-004.html: Added.
- web-platform-tests/css/css-grid/subgrid/w3c-import.log:
- web-platform-tests/css/css-grid/support/grid-child-utils.js:
- web-platform-tests/css/css-grid/table-grid-item-005-expected.txt: Added.
- web-platform-tests/css/css-grid/table-grid-item-005.html: Added.
- web-platform-tests/css/css-grid/table-grid-item-dynamic-002-expected.html: Added.
- web-platform-tests/css/css-grid/table-grid-item-dynamic-002.html: Added.
- web-platform-tests/css/css-grid/table-grid-item-dynamic-003-expected.html: Added.
- web-platform-tests/css/css-grid/table-grid-item-dynamic-003.html: Added.
- web-platform-tests/css/css-grid/table-grid-item-dynamic-004-expected.html: Added.
- web-platform-tests/css/css-grid/table-grid-item-dynamic-004.html: Added.
- web-platform-tests/css/css-grid/w3c-import.log:
LayoutTests:
- TestExpectations:
- platform/ios-wk2/TestExpectations:
- 1:09 AM Changeset in webkit [279268] by
-
- 5 edits in trunk/Source/WebCore
[css-flexbox] Move flex item preferred width computation specifics to RenderFlexibleBox class
https://bugs.webkit.org/show_bug.cgi?id=226822
Reviewed by Alan Bujtas.
RenderBlock had some specific code for flex items that cleared the overriding sizes before
computing the {min|max}PreferredWidths and then restored them afterwards. That is done to
properly compute flex items intrinsic sizes. That code is flexbox specific so we better move
it to RenderFlexibleBox. In order to do that a new virtual method was added to RenderBlock which
just calls minPreferredLogicalWidth() and maxPreferredLogicalWidth() for every block except
flexbox containers.
In the case of flexbox containers, it wraps those calls with a RAII class that properly
clears the overriding sizes on instantiation and clears them on destruction. Now that the RAII
class is available we use it also for another existing code path that requires to
temporarily set an overriding size in a given scope.
No need for new tests as there is no change in behaviour.
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeChildIntrinsicLogicalWidths const): New virtual method.
(WebCore::RenderBlock::computeChildPreferredLogicalWidths const): Call computeChildIntrinsicLogicalWidths().
- rendering/RenderBlock.h:
- rendering/RenderFlexibleBox.cpp:
(WebCore::OverridingSizesScope::OverridingSizesScope): New RAII class to set/clear overriding sizes in a scope.
(WebCore::OverridingSizesScope::~OverridingSizesScope):
(WebCore::OverridingSizesScope::setOrClearOverridingSize):
(WebCore::RenderFlexibleBox::computeChildIntrinsicLogicalWidths const): Redefinition for flexbox containers.
(WebCore::RenderFlexibleBox::childIntrinsicLogicalHeight const): Removed constness from attribute.
(WebCore::RenderFlexibleBox::childIntrinsicLogicalWidth): Ditto.
(WebCore::RenderFlexibleBox::crossAxisIntrinsicExtentForChild): Ditto.
- rendering/RenderFlexibleBox.h:
- 12:13 AM Changeset in webkit [279267] by
-
- 13 edits in trunk/Source
[Model] Create a sandbox extension for a temporary directory to store model resources
https://bugs.webkit.org/show_bug.cgi?id=227359
Reviewed by Tim Horton.
The SPIs we will use to render <model> resources expect a file URL to load and render the model.
Before we adopt these SPIs, we extend the sandbox to allow writing to a temporary directory where
we will store these resources.
Source/WebCore:
- Modules/model-element/HTMLModelElement.cpp:
(WebCore::sharedModelElementCacheDirectory):
(WebCore::HTMLModelElement::setModelElementCacheDirectory):
(WebCore::HTMLModelElement::modelElementCacheDirectory):
- Modules/model-element/HTMLModelElement.h:
Source/WebKit:
- Shared/WebProcessDataStoreParameters.h:
(WebKit::WebProcessDataStoreParameters::encode const):
(WebKit::WebProcessDataStoreParameters::decode):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::webProcessDataStoreParameters):
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::defaultModelElementCacheDirectory):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary):
- UIProcess/WebsiteData/WebsiteDataStore.h:
(WebKit::WebsiteDataStore::resolvedModelElementCacheDirectory const):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:
(WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration):
(WebKit::WebsiteDataStoreConfiguration::copy const):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
(WebKit::WebsiteDataStoreConfiguration::modelElementCacheDirectory const):
(WebKit::WebsiteDataStoreConfiguration::setModelElementCacheDirectory):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setWebsiteDataStoreParameters):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformSetWebsiteDataStoreParameters):