Timeline
Nov 18, 2020:
- 10:08 PM Changeset in webkit [270016] by
-
- 7 edits83 adds in trunk/LayoutTests
Import web-platform-tests/worklets tests from usptream
https://bugs.webkit.org/show_bug.cgi?id=219121
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
Import web-platform-tests/worklets tests from usptream dd35c2b21b76772123f76.
- resources/import-expectations.json:
- web-platform-tests/worklets/*: Added.
LayoutTests:
- tests-options.json:
- 8:11 PM Changeset in webkit [270015] by
-
- 15 edits in trunk
[WASM-References] Remove subtyping rule for externref and funcref
https://bugs.webkit.org/show_bug.cgi?id=218885
Patch by Dmitry Bezhetskov <dbezhetskov> on 2020-11-18
Reviewed by Yusuke Suzuki.
Make funcref is not a subtype of externref.
The spec: https://webassembly.github.io/reference-types/core/
The PR for removing subtype from the spec:
https://github.com/WebAssembly/reference-types/pull/87.
JSTests:
- wasm/references/func_ref.js:
(assert.eq.instance.exports.fix.fun):
(assert.eq.instance.exports.fix):
- wasm/references/validation.js:
Source/JavaScriptCore:
- wasm/WasmFormat.h:
(JSC::Wasm::isSubtype):
- wasm/WasmFunctionParser.h:
(JSC::Wasm::FunctionParser<Context>::parseExpression):
- wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::WebAssemblyModuleRecord::link):
- 8:02 PM Changeset in webkit [270014] by
-
- 5 edits25 adds in trunk/LayoutTests
Import web-platform-tests/geolocation-API tests from usptream
https://bugs.webkit.org/show_bug.cgi?id=219128
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
Import web-platform-tests/geolocation-API tests from usptream dd35c2b21b76772123f76.
- resources/import-expectations.json:
- web-platform-tests/geolocation-API/META.yml: Added.
- web-platform-tests/geolocation-API/PositionOptions.https-expected.txt: Added.
- web-platform-tests/geolocation-API/PositionOptions.https.html: Added.
- web-platform-tests/geolocation-API/clearWatch_TypeError-expected.txt: Added.
- web-platform-tests/geolocation-API/clearWatch_TypeError.html: Added.
- web-platform-tests/geolocation-API/getCurrentPosition_IDL.https-expected.txt: Added.
- web-platform-tests/geolocation-API/getCurrentPosition_IDL.https.html: Added.
- web-platform-tests/geolocation-API/getCurrentPosition_TypeError-expected.txt: Added.
- web-platform-tests/geolocation-API/getCurrentPosition_TypeError.html: Added.
- web-platform-tests/geolocation-API/getCurrentPosition_permission_allow.https-expected.txt: Added.
- web-platform-tests/geolocation-API/getCurrentPosition_permission_allow.https.html: Added.
- web-platform-tests/geolocation-API/getCurrentPosition_permission_deny.https-expected.txt: Added.
- web-platform-tests/geolocation-API/getCurrentPosition_permission_deny.https.html: Added.
- web-platform-tests/geolocation-API/idlharness.https.window-expected.txt: Added.
- web-platform-tests/geolocation-API/idlharness.https.window.html: Added.
- web-platform-tests/geolocation-API/idlharness.https.window.js: Added.
- web-platform-tests/geolocation-API/non-secure-contexts.http-expected.txt: Added.
- web-platform-tests/geolocation-API/non-secure-contexts.http.html: Added.
- web-platform-tests/geolocation-API/support.js: Added.
(setup):
(dummyFunction):
(positionToString):
(errorToString):
- web-platform-tests/geolocation-API/w3c-import.log: Added.
- web-platform-tests/geolocation-API/watchPosition_TypeError-expected.txt: Added.
- web-platform-tests/geolocation-API/watchPosition_TypeError.html: Added.
- web-platform-tests/geolocation-API/watchPosition_permission_deny.https-expected.txt: Added.
- web-platform-tests/geolocation-API/watchPosition_permission_deny.https.html: Added.
LayoutTests:
Skip tests that are timing out.
- TestExpectations:
- tests-options.json:
- 8:00 PM Changeset in webkit [270013] by
-
- 2 edits in trunk/Source/WTF
[WTF] Fix a condition to check if statvfs() succeeds in getVolumeFreeSpace()
https://bugs.webkit.org/show_bug.cgi?id=219138
Reviewed by Alexey Proskuryakov.
statvfs() returns Zero on success but getVolumeFreeSpace() treats a non Zero value
as a succes case. The condition is oppsite to the spec of statvfs().
- wtf/posix/FileSystemPOSIX.cpp:
- 7:59 PM Changeset in webkit [270012] by
-
- 1 copy in tags/Safari-611.1.5.3
Tag Safari-611.1.5.3.
- 7:55 PM Changeset in webkit [270011] by
-
- 8 edits in branches/safari-611.1.5-branch/Source
Versioning.
WebKit-7611.1.5.3
- 7:40 PM Changeset in webkit [270010] by
-
- 13 edits19 adds in trunk/LayoutTests
Resync web-platform-tests/FileAPI tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=219125
Reviewed by Sam Weinig.
Resync web-platform-tests/FileAPI tests from upstream dd35c2b21b76772123f7.
- web-platform-tests/FileAPI/file/File-constructor-expected.txt:
- web-platform-tests/FileAPI/file/File-constructor.html:
- web-platform-tests/FileAPI/file/resources/echo-content-escaped.py: Added.
(escape_byte):
(main):
- web-platform-tests/FileAPI/file/resources/w3c-import.log: Added.
- web-platform-tests/FileAPI/file/send-file-form-controls.tentative-expected.txt: Added.
- web-platform-tests/FileAPI/file/send-file-form-controls.tentative.html: Added.
- web-platform-tests/FileAPI/file/send-file-form-punctuation.tentative-expected.txt: Added.
- web-platform-tests/FileAPI/file/send-file-form-punctuation.tentative.html: Added.
- web-platform-tests/FileAPI/file/send-file-form-utf-8.html:
- web-platform-tests/FileAPI/file/send-file-form-windows-1252.tentative.html:
- web-platform-tests/FileAPI/file/send-file-form-x-user-defined.tentative.html:
- web-platform-tests/FileAPI/file/send-file-formdata-controls.tentative-expected.txt: Added.
- web-platform-tests/FileAPI/file/send-file-formdata-controls.tentative.html: Added.
- web-platform-tests/FileAPI/file/send-file-formdata-expected.txt: Added.
- web-platform-tests/FileAPI/file/send-file-formdata-punctuation.tentative-expected.txt: Added.
- web-platform-tests/FileAPI/file/send-file-formdata-punctuation.tentative.html: Added.
- web-platform-tests/FileAPI/file/send-file-formdata-utf-8-expected.txt: Added.
- web-platform-tests/FileAPI/file/send-file-formdata-utf-8.html: Added.
- web-platform-tests/FileAPI/file/send-file-formdata.html: Added.
- web-platform-tests/FileAPI/file/w3c-import.log:
- web-platform-tests/FileAPI/fileReader-expected.txt:
- web-platform-tests/FileAPI/fileReader.html:
- web-platform-tests/FileAPI/support/send-file-form-helper.js:
(escapeString):
(const.formPostFileUploadTest):
- web-platform-tests/FileAPI/support/send-file-formdata-helper.js: Added.
(const.formDataPostFileUploadTest):
- web-platform-tests/FileAPI/support/w3c-import.log:
- web-platform-tests/FileAPI/url/url-charset.window-expected.txt: Added.
- web-platform-tests/FileAPI/url/url-charset.window.html: Added.
- web-platform-tests/FileAPI/url/url-charset.window.js: Added.
(async_test.t.t.add_cleanup):
(async_test.t.win.onload.t.step_func_done):
- web-platform-tests/FileAPI/url/w3c-import.log:
- 7:38 PM Changeset in webkit [270009] by
-
- 4 edits62 adds in trunk/LayoutTests
Import web-platform-tests/compat tests from usptream
https://bugs.webkit.org/show_bug.cgi?id=219126
Reviewed by Sam Weinig.
Import web-platform-tests/compat tests from usptream dd35c2b21b76772123.
- resources/import-expectations.json:
- resources/resource-files.json:
- web-platform-tests/compat/*: Added.
- 7:17 PM Changeset in webkit [270008] by
-
- 2 edits28 adds in trunk/LayoutTests/imported/w3c
Import web-platform-tests/entries-api tests from usptream
https://bugs.webkit.org/show_bug.cgi?id=219127
Reviewed by Sam Weinig.
Import web-platform-tests/entries-api tests from usptream dd35c2b21b76772123f76a1.
- resources/import-expectations.json:
- web-platform-tests/entries-api/META.yml: Added.
- web-platform-tests/entries-api/README.md: Added.
- web-platform-tests/entries-api/idlharness.window-expected.txt: Added.
- web-platform-tests/entries-api/idlharness.window.html: Added.
- web-platform-tests/entries-api/idlharness.window.js: Added.
- web-platform-tests/entries-api/support.js: Added.
(entry_test):
(getEntriesAsPromise):
- web-platform-tests/entries-api/support/a/b/c/3.txt: Added.
- web-platform-tests/entries-api/support/a/b/c/d/1.txt: Added.
- web-platform-tests/entries-api/support/a/b/c/d/2.txt: Added.
- web-platform-tests/entries-api/support/a/b/c/d/w3c-import.log: Added.
- web-platform-tests/entries-api/support/a/b/c/w3c-import.log: Added.
- web-platform-tests/entries-api/support/upload.txt: Added.
- web-platform-tests/entries-api/support/upload/file.txt: Added.
- web-platform-tests/entries-api/support/upload/subdir/1.txt: Added.
- web-platform-tests/entries-api/support/upload/subdir/2.txt: Added.
- web-platform-tests/entries-api/support/upload/subdir/3.txt: Added.
- web-platform-tests/entries-api/support/upload/subdir/w3c-import.log: Added.
- web-platform-tests/entries-api/support/upload/w3c-import.log: Added.
- web-platform-tests/entries-api/support/w3c-import.log: Added.
- web-platform-tests/entries-api/w3c-import.log: Added.
- 7:16 PM Changeset in webkit [270007] by
-
- 2 edits in trunk/Source/WebKit
Menu Bar support for app highlights in book.
https://bugs.webkit.org/show_bug.cgi?id=219117
Reviewed by Wenson Hsieh.
Add menu stubs in iOS to support highlights for books in modern webkit.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setUpInteraction]):
(-[WKContentView canPerformAction:withSender:]):
(-[WKContentView setupAppHighlightMenus]):
(-[WKContentView createHighlightInCurrentGroupWithRange:]):
(-[WKContentView createHighlightInNewGroupWithRange:]):
- 6:53 PM Changeset in webkit [270006] by
-
- 13 edits in trunk
Rename MetaCommandSwitchTo to MetaCommandSwitchToItemBuffer
https://bugs.webkit.org/show_bug.cgi?id=219130
Reviewed by Tim Horton.
Source/WebCore:
Rename MetaCommandSwitchTo to MetaCommandSwitchToItemBuffer. The new name helps to clarify that this item is
about changing or swapping between display list item buffers, rather than image buffers.
- platform/graphics/displaylists/DisplayList.cpp:
(WebCore::DisplayList::DisplayList::append):
- platform/graphics/displaylists/DisplayListItemBuffer.cpp:
(WebCore::DisplayList::ItemHandle::apply):
(WebCore::DisplayList::ItemHandle::destroy):
(WebCore::DisplayList::ItemHandle::copyTo const):
(WebCore::DisplayList::ItemBuffer::swapWritableBufferIfNeeded):
- platform/graphics/displaylists/DisplayListItemType.cpp:
(WebCore::DisplayList::sizeOfItemInBytes):
(WebCore::DisplayList::isDrawingItem):
(WebCore::DisplayList::isInlineItem):
- platform/graphics/displaylists/DisplayListItemType.h:
- platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::operator<<):
- platform/graphics/displaylists/DisplayListItems.h:
(WebCore::DisplayList::MetaCommandSwitchToItemBuffer::MetaCommandSwitchToItemBuffer):
(WebCore::DisplayList::MetaCommandSwitchTo::MetaCommandSwitchTo): Deleted.
(WebCore::DisplayList::MetaCommandSwitchTo::identifier const): Deleted.
Source/WebKit:
- GPUProcess/graphics/RemoteImageBuffer.h:
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::decodeItem):
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
Tools:
- TestWebKitAPI/Tests/WebCore/DisplayListTests.cpp:
(TestWebKitAPI::TEST):
- 6:32 PM Changeset in webkit [270005] by
-
- 7 edits in trunk
[JSC] Reinstate String#at
https://bugs.webkit.org/show_bug.cgi?id=219124
Reviewed by Yusuke Suzuki.
JSTests:
- stress/at-method.js: Re-add tests.
- test262/config.yaml: Re-enable feature.
- test262/expectations.yaml:
"at/prop-desc.js" failures are due to a typo; will be fixed in https://github.com/tc39/test262/pull/2908.
Source/JavaScriptCore:
At this week's TC39 meeting, consensus was achieved on renaming item() *and* keeping it for strings too.
Accordingly, this patch reinstates String.prototype.at behind the existing useAtMethod runtime option.
- builtins/StringPrototype.js:
(at):
- runtime/StringPrototype.cpp:
(JSC::StringPrototype::finishCreation):
- 5:42 PM Changeset in webkit [270004] by
-
- 4 edits in trunk/Tools
[webitscmpy] Branch point incorrect for Git checkouts
https://bugs.webkit.org/show_bug.cgi?id=219132
<rdar://problem/71561569>
Reviewed by Dewei Zhu.
- Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
(Git.commit): Banca-point is the distance from the primordial commit minus the distance from
the default branch.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
- 5:37 PM Changeset in webkit [270003] by
-
- 4 edits14 deletes in trunk/Tools
Remove IRC bots from webkitpy
https://bugs.webkit.org/show_bug.cgi?id=219111
Reviewed by Jonathan Bedard and Aakash Jain.
We haven't been running any IRC bots for a while, this is dead code.
- Scripts/webkitpy/common/net/irc: Removed.
- Scripts/webkitpy/thirdparty/irc: Removed.
- Scripts/webkitpy/tool/bot/irc_command.py: Removed.
- Scripts/webkitpy/tool/bot/irc_command_unittest.py: Removed.
- Scripts/webkitpy/tool/bot/ircbot.py: Removed.
- Scripts/webkitpy/tool/bot/ircbot_unittest.py: Removed.
- Scripts/webkitpy/tool/bot/sheriff.py: Removed.
- Scripts/webkitpy/tool/bot/sheriff_unittest.py: Removed.
- Scripts/webkitpy/tool/commands/init.py:
- Scripts/webkitpy/tool/commands/newcommitbot.py: Removed.
- Scripts/webkitpy/tool/commands/newcommitbot_unittest.py: Removed.
- Scripts/webkitpy/tool/commands/perfalizer.py: Removed.
- Scripts/webkitpy/tool/commands/perfalizer_unittest.py: Removed.
- Scripts/webkitpy/tool/commands/sheriffbot.py: Removed.
- Scripts/webkitpy/tool/commands/sheriffbot_unittest.py: Removed.
- Scripts/webkitpy/tool/main.py:
(WebKitPatch):
(WebKitPatch.init):
(WebKitPatch.path):
(WebKitPatch.command_completed):
(WebKitPatch.handle_global_options):
(WebKitPatch.ensure_irc_connected): Deleted.
(WebKitPatch.irc): Deleted.
- Scripts/webkitpy/tool/mocktool.py:
(MockTool.init):
(MockTool.path):
(MockTool.ensure_irc_connected): Deleted.
(MockTool.irc): Deleted.
- 5:20 PM Changeset in webkit [270002] by
-
- 15 edits2 adds in trunk
[Concurrent display lists] Add a way for display lists to partially replay
https://bugs.webkit.org/show_bug.cgi?id=219067
Reviewed by Simon Fraser.
Source/WebCore:
Make it possble for a display list replayer to stop early in the middle of processing a display list. This
capability is a prerequisite to three items:
- Allow display list processing in the GPU process to pause when encountering missing cached resources.
- Allow the GPU process to replay display list item buffers that contain display list data targeting different
destination image buffers.
- Allow the GPU process to prematurely halt display list processing and perform a MESSAGE_CHECK to terminate
the web content process, in the case of an invalid display list item (e.g. decoding failure).
See below for more details.
Test: DisplayListTests.ReplayWithMissingResource
- platform/graphics/ImageBuffer.h:
(WebCore::ImageBuffer::flushDrawingContextAndCommit):
(WebCore::ImageBuffer::submitDisplayList): Deleted.
Remove the generic
submitDisplayListmethod onImageBuffer; instead, call directly into
RemoteImageBuffer::submitDisplayListto replay display lists.
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::platformCALayerPaintContents):
Adjust several call sites of
replay()to grab the tracked display list from theReplayResult.
- platform/graphics/displaylists/DisplayList.cpp:
(WebCore::DisplayList::DisplayList::asText const):
(WebCore::DisplayList::DisplayList::dump const):
- platform/graphics/displaylists/DisplayList.h:
(WebCore::DisplayList::DisplayList::iterator::operator* const):
Pull the iterator value out into a separate
Valuestruct, and include the size of the current display list
item in the item buffer.
- platform/graphics/displaylists/DisplayListDrawingContext.cpp:
(WebCore::DisplayList::DrawingContext::replayDisplayList):
- platform/graphics/displaylists/DisplayListReplayer.cpp:
(WebCore::DisplayList::applyImageBufferItem):
(WebCore::DisplayList::applyNativeImageItem):
(WebCore::DisplayList::Replayer::applyItem):
Make this private helper method return an optional flag indicating whether display list replay should stop.
(WebCore::DisplayList::Replayer::replay):
Make replay() return a
ReplayResult, which contains the tracked display list (if tracking is enabled), as well
as the number of bytes of display list item data that were consumed, and the reason why display list replay
stopped (the default reason beingReplayedAllItems).
- platform/graphics/displaylists/DisplayListReplayer.h:
(WebCore::DisplayList::Replayer::replay):
Source/WebKit:
See WebCore ChangeLog for more details.
- GPUProcess/graphics/RemoteImageBuffer.h:
Make
submitDisplayListonRemoteImageBufferreturn aReplayResult.
(WebKit::RemoteImageBuffer::submitDisplayList):
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::applyDisplayListsFromHandle):
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
(WebKit::RemoteImageBufferProxy::submitDisplayList):
Tools:
Add a test that exercises partial display list replay.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebCore/DisplayListTests.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp: Added.
(TestWebKitAPI::TEST):
- 4:31 PM Changeset in webkit [270001] by
-
- 7 edits1 copy1 move3 adds1 delete in trunk/LayoutTests/imported/w3c
Resync web-platform-tests/WebIDL tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=219120
Reviewed by Alex Christensen.
Resync web-platform-tests/WebIDL tests from upstream dd35c2b21b76772123f.
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-custom-bindings.any-expected.txt:
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-custom-bindings.any.js:
(test):
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-custom-bindings.any.worker-expected.txt:
- web-platform-tests/WebIDL/ecmascript-binding/legacy-callback-interface-object.html:
- web-platform-tests/WebIDL/ecmascript-binding/w3c-import.log:
- web-platform-tests/WebIDL/idlharness.any-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/WebIDL/idlharness-expected.txt.
- web-platform-tests/WebIDL/idlharness.any.html: Added.
- web-platform-tests/WebIDL/idlharness.any.js: Added.
- web-platform-tests/WebIDL/idlharness.any.worker-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebIDL/idlharness-expected.txt.
- web-platform-tests/WebIDL/idlharness.any.worker.html: Added.
- web-platform-tests/WebIDL/idlharness.html: Removed.
- web-platform-tests/WebIDL/w3c-import.log:
- 4:27 PM Changeset in webkit [270000] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r269895): Google Maps expanded route options are missing background color
https://bugs.webkit.org/show_bug.cgi?id=219119
<rdar://problem/71510412>
Reviewed by Said Abou-Hallawa.
No new tests, yet. Test is pending.
- platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawPlatformImage):
r199071 removed the state save/restore around the CG implementation of
drawNativeImage, explicitly saving and restoring the few things it knew
that the implementation would change. However, it failed to save/restore
the composite operator.
This was mostly not a problem, because e.g. canvas always hands down the
global op. However, in r269895, I added code that passes in a /different/
compositing operator, and it gets stuck on the context.
Save and restore the composite operator and blend mode like we do for other properties.
- 4:15 PM Changeset in webkit [269999] by
-
- 7 edits1 move in trunk/Source/WebCore
[iOS][FCR] Rename UA style sheet to follow naming convention
https://bugs.webkit.org/show_bug.cgi?id=219108
Reviewed by Tim Horton.
- DerivedSources-input.xcfilelist:
- DerivedSources.make:
- WebCore.xcodeproj/project.pbxproj:
- css/formControlsIOS.css: Renamed from Source/WebCore/css/iOSFormControlRefresh.css.
- style/InspectorCSSOMWrappers.cpp:
(WebCore::Style::InspectorCSSOMWrappers::collectDocumentWrappers):
- style/UserAgentStyle.cpp:
(WebCore::Style::UserAgentStyle::ensureDefaultStyleSheetsForElement):
- style/UserAgentStyle.h:
- 3:50 PM Changeset in webkit [269998] by
-
- 16 edits in trunk
[JSC] Improve Wasm binary test coverage
https://bugs.webkit.org/show_bug.cgi?id=204843
Reviewed by Darin Adler.
JSTests:
- wasm/function-tests/grow-memory.js:
(binaryShouldNotParse):
- wasm/spec-tests/binary-leb128.wast.js:
- wasm/spec-tests/binary.wast.js:
- wasm/wasm.json:
Source/JavaScriptCore:
This patch fixes some of bugs in wasm parser so that we validate malformed wasm modules more strictly.
- current_memory / grow_memory should have uint8 flag, not varuint32 flag.
- global section should have uint8 mutability information, not varuint32.
- memory section should have varuint32 memory count.
- wasm/WasmFunctionParser.h:
(JSC::Wasm::FunctionParser<Context>::parseExpression):
(JSC::Wasm::FunctionParser<Context>::parseUnreachableExpression):
- wasm/WasmSectionParser.cpp:
(JSC::Wasm::SectionParser::parseResizableLimits):
(JSC::Wasm::SectionParser::parseMemory):
(JSC::Wasm::SectionParser::parseGlobalType):
- wasm/wasm.json:
Source/WTF:
LEBDecoder should have more strict validation. One thing is that, we should reject pattern that includes ignored bits.
For example, in uint32_t, we can represent UINT32_MAX in 5 bytes like this.
0xff, 0xff, 0xff, 0xff, 0x0f
0b1111111_1111111_1111111_1111111_1111
Leading bytes has 0x80 trailing marker. And they includes each 7 bit slice. And the last byte includes 0b1111 part.
But we can also make it in the following form
0xff, 0xff, 0xff, 0xff, 0xff
0b1111111_1111111_1111111_1111111_1111
In the above case, the last byte's upper 4 bits are ignored in the result, and this is wrong in LEB128 encoding.
We should reject this input since the last byte includes overflown bits.
This patch adds this validation to WTF.
- wtf/LEBDecoder.h:
(WTF::LEBDecoder::maxByteLength):
(WTF::LEBDecoder::lastByteMask):
(WTF::LEBDecoder::decodeUInt):
(WTF::LEBDecoder::decodeInt):
Tools:
We add more tests for LEBDecoder. In particular, the added tests focus on the case which overflow bits.
- TestWebKitAPI/Tests/WTF/LEBDecoder.cpp:
(TestWebKitAPI::toString):
(TestWebKitAPI::testUInt32LEBDecode):
(TestWebKitAPI::TEST):
(TestWebKitAPI::testUInt64LEBDecode):
(TestWebKitAPI::testInt32LEBDecode):
(TestWebKitAPI::testInt64LEBDecode):
- 3:38 PM Changeset in webkit [269997] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r269227?): Flaky crash in WebCore::DOMPromiseProxy seen with imported/w3c/web-platform-tests/service-workers/service-worker/referrer-toplevel-script-fetch.https.html
https://bugs.webkit.org/show_bug.cgi?id=219009
<rdar://problem/71464073>
Reviewed by Geoffrey Garen.
The lambda in ServiceWorkerContainer::ready() was dereferencing m_readyPromise unconditionally.
This is not correct and we need a null-check since ServiceWorkerContainer::stop() nulls out
m_readyPromise.
No new tests, already covered by existing test that is flakily crashing.
- workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::ready):
- 3:26 PM Changeset in webkit [269996] by
-
- 2 edits2 deletes in trunk/LayoutTests/imported/w3c
Unreviewed, drop manual test in web-platform-tests/notifications.
- web-platform-tests/notifications/shownotification-resolve-manual.https-expected.txt: Removed.
- web-platform-tests/notifications/shownotification-resolve-manual.https.html: Removed.
- web-platform-tests/notifications/w3c-import.log:
- 3:25 PM Changeset in webkit [269995] by
-
- 1 copy in tags/Safari-610.4.1
Tag Safari-610.4.1.
- 3:22 PM Changeset in webkit [269994] by
-
- 1 copy in tags/Safari-610.3.7.1.5
Tag Safari-610.3.7.1.5.
- 3:01 PM Changeset in webkit [269993] by
-
- 6 edits in trunk/Source/WebKit
Drop redundant code that tries to bump the QoS of the WebContent main thread of UserInteractive when handling a sync IPC
https://bugs.webkit.org/show_bug.cgi?id=219110
Reviewed by Alex Christensen.
Drop redundant code that tries to bump the QoS of the WebContent main thread of UserInteractive when
handling a sync IPC. Nowadays, we always run the main thread of the WebContent at UserInteractive QoS
(see WTF::Thread::setCurrentThreadIsUserInteractive() call in WebProcess::initializeWebProcess()) so
there is no need to boost the QoS during a sync IPC.
- Platform/IPC/Connection.cpp:
(IPC::Connection::processIncomingMessage):
- Platform/IPC/Connection.h:
(IPC::Connection::setShouldBoostMainThreadOnSyncMessage): Deleted.
- Platform/IPC/Decoder.h:
(IPC::Decoder::setQOSClassOverride): Deleted.
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeConnection):
- 2:50 PM Changeset in webkit [269992] by
-
- 2 edits in trunk/Tools
[ews] Add timeout to network requests
https://bugs.webkit.org/show_bug.cgi?id=218994
Reviewed by Jonathan Bedard.
- CISupport/ews-build/steps.py:
(BugzillaMixin.fetch_data_from_url_with_authentication): Added timeout to requests.get() call.
(BugzillaMixin.fetch_data_from_url): Ditto.
(ValidateCommiterAndReviewer.load_contributors_from_trac): Ditto.
(CheckPatchStatusOnEWSQueues.get_patch_status): Ditto.
- 2:48 PM Changeset in webkit [269991] by
-
- 2 edits in trunk/Tools
Extend check-for-inappropriate-files-in-framework to check for .tmp files
https://bugs.webkit.org/show_bug.cgi?id=219064
<rdar://problem/71519010>
Reviewed by Alexey Proskuryakov.
Some *.tmp files that were generated from post-processing header files
were appearing in *.framework/Headers directories. The problem doesn't
seem to be occurring any more, but update
check-for-inappropriate-files-in-framework to catch it if it does
again.
- Scripts/check-for-inappropriate-files-in-framework:
- 2:44 PM Changeset in webkit [269990] by
-
- 2 edits in trunk/Tools
[webkitpy] Respect --result-report-flavor on device ports
https://bugs.webkit.org/show_bug.cgi?id=219112
<rdar://problem/71553965>
Reviewed by Dewei Zhu.
- Scripts/webkitpy/port/device_port.py:
(DevicePort.configuration_for_upload): Add flavor to the configuration, if flag passed.
- 2:42 PM Changeset in webkit [269989] by
-
- 10 edits in trunk/Source/WebCore
[LFC][Integration] Line::enclosingRect should only include the border box (exclude vertical margins)
https://bugs.webkit.org/show_bug.cgi?id=219106
Reviewed by Antti Koivisto.
LineIteratorPath::top/bottom expects border box enclosing values (and not margin box values).
(and while we are here, let's just compute the vertical enclosing values and ignore the horizontal aspect of it as the line box always
encloses all the inline level boxes on the line anyway)
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):
- layout/inlineformatting/InlineLineBox.cpp:
(WebCore::Layout::LineBox::logicalMarginRectForInlineLevelBox const):
(WebCore::Layout::LineBox::logicalRectForInlineLevelBox const): Deleted.
- layout/inlineformatting/InlineLineBox.h:
- layout/integration/LayoutIntegrationInlineContentBuilder.cpp:
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):
- layout/integration/LayoutIntegrationLine.h:
(WebCore::LayoutIntegration::Line::Line):
(WebCore::LayoutIntegration::Line::enclosingContentTop const):
(WebCore::LayoutIntegration::Line::enclosingContentBottom const):
(WebCore::LayoutIntegration::Line::enclosingContentRect const): Deleted.
- layout/integration/LayoutIntegrationLineIteratorModernPath.h:
(WebCore::LayoutIntegration::LineIteratorModernPath::top const):
(WebCore::LayoutIntegration::LineIteratorModernPath::bottom const):
- layout/integration/LayoutIntegrationPagination.cpp:
(WebCore::LayoutIntegration::makeAdjustedContent):
- layout/integration/LayoutIntegrationRunIteratorModernPath.h:
(WebCore::LayoutIntegration::RunIteratorModernPath::selectionRect const):
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::showInlineTreeAndRuns):
- 2:41 PM Changeset in webkit [269988] by
-
- 2 edits in trunk/Tools
Big Sur testers failing to download build products
https://bugs.webkit.org/show_bug.cgi?id=219095
Reviewed by Aakash Jain.
Fixing the url parsing to deal with special characters. Also
reworking the imports to help with transition to python3.
- CISupport/download-built-product:
(main):
- 2:34 PM Changeset in webkit [269987] by
-
- 4 edits in trunk/LayoutTests
REGRESSION (r269598): [ Mac ] imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-network-error.sub.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=219008
<rdar://problem/71463894>
LayoutTests/imported/w3c:
Unreviewed, rebaseline test.
- web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-network-error.sub-expected.txt:
LayoutTests:
Unreviewed, address flakiness by silencing JS CONSOLE messages.
- 2:26 PM Changeset in webkit [269986] by
-
- 7 edits13 copies23 adds3 deletes in trunk/JSTests
Update test262 (2020.11.18)
https://bugs.webkit.org/show_bug.cgi?id=219109
Reviewed by Yusuke Suzuki.
- test262/config.yaml:
- test262/expectations.yaml:
- test262/latest-changes-summary.txt:
- test262/test/:
- test262/test262-Revision.txt:
- 2:04 PM Changeset in webkit [269985] by
-
- 6 edits2 deletes in trunk
Remove advanced plug-in feature: small plug-in blocking
https://bugs.webkit.org/show_bug.cgi?id=219101
Reviewed by Anders Carlsson.
Source/WebKit:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::pluginIsSmall): Deleted.
(WebKit::WebPage::createPlugin): Removed code that blocks small plug-ins.
Source/WTF:
- Scripts/Preferences/WebPreferencesInternal.yaml: Removed BlockingOfSmallPluginsEnabled.
LayoutTests:
- platform/mac-wk1/TestExpectations: Removed small-plugin-blocked.html.
- plugins/small-plugin-blocked-expected.txt: Removed.
- plugins/small-plugin-blocked.html: Removed.
- 2:04 PM Changeset in webkit [269984] by
-
- 7 edits3 moves1 add in trunk/Source/WebCore
Move <model> code under Modules/model-element
https://bugs.webkit.org/show_bug.cgi?id=219104
Reviewed by Dean Jackson.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources.make:
- Headers.cmake:
- Modules/model-element/HTMLModelElement.cpp: Renamed from Source/WebCore/html/HTMLModelElement.cpp.
- Modules/model-element/HTMLModelElement.h: Renamed from Source/WebCore/html/HTMLModelElement.h.
- Modules/model-element/HTMLModelElement.idl: Renamed from Source/WebCore/html/HTMLModelElement.idl.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- 1:57 PM Changeset in webkit [269983] by
-
- 5 edits in trunk
[iOS] beforeunload event does not fire in MobileSafari
https://bugs.webkit.org/show_bug.cgi?id=219102
<rdar://problem/70550655>
Reviewed by Geoff Garen.
Source/WebCore:
MobileSafari on iOS does not implement WKUIDelegate's runJavaScriptAlertPanelWithMessage because
it never shows any before unload prompt. When the client does not implement this delegate,
Chrome::canRunBeforeUnloadConfirmPanel() returns false and this was causing
FrameLoader::shouldClose() to return early, before even firing the beforeunload event in each
frame. I updated our logic so that we now fire the beforeunload events no matter what and we
merely do not attempt to show the beforeunload prompt when Chrome::canRunBeforeUnloadConfirmPanel()
return false, similarly to what we do when the document does not have a user gesture.
Note that we already fire the pagehide and unload events on iOS so this is not a significant
change in policy.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::shouldClose):
(WebCore::FrameLoader::dispatchBeforeUnloadEvent):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKit/beforeunload.html:
- TestWebKitAPI/Tests/WebKitCocoa/ModalAlerts.mm:
(-[UIDelegateWithoutRunBeforeUnload webViewDidClose:]):
(-[BeforeUnloadMessageHandler userContentController:didReceiveScriptMessage:]):
(TEST):
- 1:47 PM Changeset in webkit [269982] by
-
- 1 edit in trunk/LayoutTests/platform/ios/TestExpectations
[iOS] Rebaseline two tests once EWS is updated to iOS 14.2
Unreviewed test gardening.
- platform/ios/TestExpectations:
Temporarily mark two tests as failing so we don't see false positives on iOS EWS bots
while they are in the process of being updated. We can revert this and rebaseline the
tests once all bots are updated to the newest SDK.
- 1:38 PM Changeset in webkit [269981] by
-
- 1 copy in tags/Safari-611.1.5.2
Tag Safari-611.1.5.2.
- 1:24 PM Changeset in webkit [269980] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, unskip more webaudio tests on Rosetta.
Those tests are still failing on Apple Silicon but not with Rosetta.
- platform/mac/TestExpectationsRosetta:
- 1:19 PM Changeset in webkit [269979] by
-
- 4 edits2 deletes in trunk/LayoutTests
Drop outdated webaudio/convolution-mono-mono.html test
https://bugs.webkit.org/show_bug.cgi?id=219107
Reviewed by Geoffrey Garen.
Drop outdated webaudio/convolution-mono-mono.html test.
An updated version is already present at:
imported/w3c/web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolution-mono-mono.html
- platform/gtk/TestExpectations:
- platform/mac/TestExpectations:
- platform/mac/TestExpectationsRosetta:
- webaudio/convolution-mono-mono-expected.txt: Removed.
- webaudio/convolution-mono-mono.html: Removed.
- 1:09 PM Changeset in webkit [269978] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, unskip several webaudio tests on Apple Silicon.
Those tests are no longer failing or flaky on this platform.
- platform/mac/TestExpectations:
- 12:50 PM Changeset in webkit [269977] by
-
- 2 edits in trunk/Source/WebCore
[iOS][FCR] Use new glyph for -webkit-list-button
https://bugs.webkit.org/show_bug.cgi?id=219040
<rdar://problem/71493560>
Reviewed by Wenson Hsieh.
This updates the appearance of the disclosure button used to view
datalist options for text inputs.
- css/iOSFormControlRefresh.css:
(input::-webkit-list-button): The glyph is taken from SF Symbols.
- 12:45 PM Changeset in webkit [269976] by
-
- 8 edits in branches/safari-611.1.5-branch/Source
Versioning.
WebKit-7611.1.5.2
- 12:28 PM Changeset in webkit [269975] by
-
- 5 edits11 adds in trunk
[iOS][FCR] Add new look for radio buttons
https://bugs.webkit.org/show_bug.cgi?id=219046
<rdar://problem/71498263>
Reviewed by Wenson Hsieh.
Source/WebCore:
Tests: fast/forms/ios/form-control-refresh/radio/border.html
fast/forms/ios/form-control-refresh/radio/checked-appearance.html
fast/forms/ios/form-control-refresh/radio/disabled-appearance.html
fast/forms/ios/form-control-refresh/radio/ignored-properties.html
fast/forms/ios/form-control-refresh/radio/width-height.html
- css/iOSFormControlRefresh.css:
(input:matches([type="checkbox"], [type="radio"])):
Use "border: initial" and "box-sizing: border-box" to match macOS, now
that the native radio button styles on macOS and iOS are similar. This
also aligns with the new iOS checkbox style.
- rendering/RenderThemeIOS.h:
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::paintRadioDecorations):
Move away from using paintRadioDecorations to paintRadio for the new
design. This is necessary to avoid painting custom borders and backgrounds
for native checkboxes, matching macOS. Painting both a CSS background as
well as the native checkbox can lead to background bleeding. Customizations
can still be made using "-webkit-appearance: none".
(WebCore::RenderThemeIOS::paintRadio):
A new implementation for painting radio buttons to match the updated
design. If the button is unchecked, a single circle is painted.
Otherwise, an inner and outer circle are painted.
LayoutTests:
Added tests to verify the stylability of native radio buttons and to
verify that different states are painted with a different appearance.
- fast/forms/ios/form-control-refresh/radio/border-expected-mismatch.html: Added.
- fast/forms/ios/form-control-refresh/radio/border.html: Added.
- fast/forms/ios/form-control-refresh/radio/checked-appearance-expected-mismatch.html: Added.
- fast/forms/ios/form-control-refresh/radio/checked-appearance.html: Added.
- fast/forms/ios/form-control-refresh/radio/disabled-appearance-expected-mismatch.html: Added.
- fast/forms/ios/form-control-refresh/radio/disabled-appearance.html: Added.
- fast/forms/ios/form-control-refresh/radio/ignored-properties-expected.html: Added.
- fast/forms/ios/form-control-refresh/radio/ignored-properties.html: Added.
- fast/forms/ios/form-control-refresh/radio/width-height-expected-mismatch.html: Added.
- fast/forms/ios/form-control-refresh/radio/width-height.html: Added.
- 12:22 PM Changeset in webkit [269974] by
-
- 75 edits17 adds in trunk
Unreviewed, relanding r269940
https://bugs.webkit.org/show_bug.cgi?id=219076
JSTests:
- wasm/function-tests/trap-load-shared.js: Added.
(wasmFrameCountFromError):
- wasm/function-tests/trap-store-shared.js: Added.
- wasm/js-api/test_memory.js:
(binaryShouldNotParse):
- wasm/stress/shared-memory-errors.js: Added.
(assert.throws):
- wasm/stress/shared-wasm-memory-buffer.js: Added.
LayoutTests/imported/w3c:
- web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-success.any.worker-expected.txt:
- web-platform-tests/wasm/jsapi/memory/constructor-shared.tentative.any-expected.txt:
- web-platform-tests/wasm/jsapi/memory/constructor-shared.tentative.any.worker-expected.txt:
- web-platform-tests/wasm/jsapi/memory/constructor.any-expected.txt:
- web-platform-tests/wasm/jsapi/memory/constructor.any.worker-expected.txt:
- web-platform-tests/wasm/jsapi/memory/grow.any-expected.txt:
- web-platform-tests/wasm/jsapi/memory/grow.any.worker-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-copy-channel-expected.txt:
Source/JavaScriptCore:
ARM64E clang optimizer is broken and optimizing forever if Wasm::MemoryHandle::memory() is inlined.
Putting NEVER_INLINE onto this function for now (unfortunate).
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- llint/LLIntPCRanges.h:
(JSC::LLInt::isWasmLLIntPC):
- llint/LowLevelInterpreter.asm:
- llint/WebAssembly.asm:
- runtime/JSArrayBuffer.h:
(JSC::JSArrayBuffer::toWrappedAllowShared):
- runtime/JSArrayBufferView.h:
- runtime/JSArrayBufferViewInlines.h:
(JSC::JSArrayBufferView::toWrappedAllowShared):
- runtime/JSGenericTypedArrayView.h:
(JSC::JSGenericTypedArrayView<Adaptor>::toWrappedAllowShared):
- runtime/Options.cpp:
(JSC::overrideDefaults):
(JSC::Options::initialize):
- wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::AirIRGenerator::AirIRGenerator):
(JSC::Wasm::AirIRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::AirIRGenerator::addCurrentMemory):
(JSC::Wasm::AirIRGenerator::emitCheckAndPreparePointer):
(JSC::Wasm::AirIRGenerator::addCall):
(JSC::Wasm::AirIRGenerator::addCallIndirect):
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::B3IRGenerator::addCurrentMemory):
(JSC::Wasm::B3IRGenerator::emitCheckAndPreparePointer):
(JSC::Wasm::B3IRGenerator::addCall):
(JSC::Wasm::B3IRGenerator::addCallIndirect):
- wasm/WasmBinding.cpp:
(JSC::Wasm::wasmToWasm):
- wasm/WasmFaultSignalHandler.cpp:
(JSC::Wasm::trapHandler):
(JSC::Wasm::enableFastMemory):
(JSC::Wasm::prepareFastMemory):
- wasm/WasmInstance.h:
(JSC::Wasm::Instance::cachedMemory const):
(JSC::Wasm::Instance::cachedBoundsCheckingSize const):
(JSC::Wasm::Instance::updateCachedMemory):
(JSC::Wasm::Instance::offsetOfCachedBoundsCheckingSize):
(JSC::Wasm::Instance::cachedMemorySize const): Deleted.
(JSC::Wasm::Instance::offsetOfCachedMemorySize): Deleted.
- wasm/WasmMemory.cpp:
(JSC::Wasm::MemoryHandle::MemoryHandle):
(JSC::Wasm::MemoryHandle::~MemoryHandle):
(JSC::Wasm::MemoryHandle::memory const):
(JSC::Wasm::Memory::Memory):
(JSC::Wasm::Memory::create):
(JSC::Wasm::Memory::tryCreate):
(JSC::Wasm::Memory::addressIsInGrowableOrFastMemory):
(JSC::Wasm::Memory::growShared):
(JSC::Wasm::Memory::grow):
(JSC::Wasm::Memory::dump const):
(JSC::Wasm::Memory::~Memory): Deleted.
(JSC::Wasm::Memory::addressIsInActiveFastMemory): Deleted.
- wasm/WasmMemory.h:
(JSC::Wasm::Memory::addressIsInGrowableOrFastMemory):
(JSC::Wasm::Memory::operator bool const): Deleted.
(JSC::Wasm::Memory::memory const): Deleted.
(JSC::Wasm::Memory::size const): Deleted.
(JSC::Wasm::Memory::sizeInPages const): Deleted.
(JSC::Wasm::Memory::initial const): Deleted.
(JSC::Wasm::Memory::maximum const): Deleted.
(JSC::Wasm::Memory::mode const): Deleted.
(JSC::Wasm::Memory::check): Deleted.
(JSC::Wasm::Memory::offsetOfMemory): Deleted.
(JSC::Wasm::Memory::offsetOfSize): Deleted.
(JSC::Wasm::Memory::addressIsInActiveFastMemory): Deleted.
- wasm/WasmMemoryInformation.cpp:
(JSC::Wasm::PinnedRegisterInfo::get):
(JSC::Wasm::PinnedRegisterInfo::PinnedRegisterInfo):
- wasm/WasmMemoryInformation.h:
(JSC::Wasm::PinnedRegisterInfo::toSave const):
- wasm/WasmMemoryMode.cpp:
(JSC::Wasm::makeString):
- wasm/WasmMemoryMode.h:
- wasm/js/JSToWasm.cpp:
(JSC::Wasm::createJSToWasmWrapper):
- wasm/js/JSWebAssemblyInstance.cpp:
(JSC::JSWebAssemblyInstance::tryCreate):
- wasm/js/JSWebAssemblyMemory.cpp:
(JSC::JSWebAssemblyMemory::buffer):
(JSC::JSWebAssemblyMemory::growSuccessCallback):
- wasm/js/JSWebAssemblyMemory.h:
- wasm/js/WebAssemblyFunction.cpp:
(JSC::WebAssemblyFunction::jsCallEntrypointSlow):
- wasm/js/WebAssemblyMemoryConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/WebAssemblyMemoryPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::WebAssemblyModuleRecord::evaluate):
Source/WebCore:
Tests: js/dom/webassembly-memory-normal-fail.html
js/dom/webassembly-memory-shared-basic.html
js/dom/webassembly-memory-shared-fail.html
storage/indexeddb/shared-memory-structured-clone.html
- Headers.cmake:
- Modules/indexeddb/server/IDBSerializationContext.cpp:
(WebCore::IDBServer::IDBSerializationContext::initializeVM):
- WebCore.xcodeproj/project.pbxproj:
- bindings/IDLTypes.h:
- bindings/js/CommonVM.cpp:
(WebCore::commonVMSlow):
- bindings/js/JSDOMConvertBufferSource.h:
(WebCore::Detail::BufferSourceConverter::convert):
(WebCore::Converter<IDLArrayBuffer>::convert):
(WebCore::Converter<IDLDataView>::convert):
(WebCore::Converter<IDLInt8Array>::convert):
(WebCore::Converter<IDLInt16Array>::convert):
(WebCore::Converter<IDLInt32Array>::convert):
(WebCore::Converter<IDLUint8Array>::convert):
(WebCore::Converter<IDLUint16Array>::convert):
(WebCore::Converter<IDLUint32Array>::convert):
(WebCore::Converter<IDLUint8ClampedArray>::convert):
(WebCore::Converter<IDLFloat32Array>::convert):
(WebCore::Converter<IDLFloat64Array>::convert):
(WebCore::Converter<IDLArrayBufferView>::convert):
(WebCore::Converter<IDLAllowSharedAdaptor<T>>::convert):
- bindings/js/JSDOMConvertUnion.h:
- bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::serialize):
(WebCore::CloneSerializer::CloneSerializer):
(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneDeserializer::deserialize):
(WebCore::CloneDeserializer::CloneDeserializer):
(WebCore::CloneDeserializer::readTerminal):
(WebCore::SerializedScriptValue::SerializedScriptValue):
(WebCore::SerializedScriptValue::computeMemoryCost const):
(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::deserialize):
- bindings/js/SerializedScriptValue.h:
- bindings/js/WebCoreJSClientData.cpp:
(WebCore::JSVMClientData::initNormalWorld):
- bindings/js/WebCoreJSClientData.h:
- bindings/js/WebCoreTypedArrayController.cpp:
(WebCore::WebCoreTypedArrayController::WebCoreTypedArrayController):
(WebCore::WebCoreTypedArrayController::isAtomicsWaitAllowedOnCurrentThread):
- bindings/js/WebCoreTypedArrayController.h:
- bindings/scripts/CodeGeneratorJS.pm:
(IsAnnotatedType):
(GetAnnotatedIDLType):
- bindings/scripts/IDLAttributes.json:
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjDOMConstructor::construct):
(WebCore::jsTestObjPrototypeFunction_encodeIntoBody):
(WebCore::JSC_DEFINE_HOST_FUNCTION):
- bindings/scripts/test/TestObj.idl:
- dom/TextDecoder.idl:
- dom/TextDecoderStreamDecoder.idl:
- dom/TextEncoder.idl:
- workers/DedicatedWorkerGlobalScope.cpp:
(WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope):
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::WorkerGlobalScope):
- workers/WorkerGlobalScope.h:
- workers/WorkerOrWorkletGlobalScope.cpp:
(WebCore::WorkerOrWorkletGlobalScope::WorkerOrWorkletGlobalScope):
- workers/WorkerOrWorkletGlobalScope.h:
- workers/WorkerOrWorkletScriptController.cpp:
(WebCore::WorkerOrWorkletScriptController::WorkerOrWorkletScriptController):
- workers/WorkerOrWorkletScriptController.h:
- workers/WorkerThreadType.h: Added.
- workers/service/ServiceWorkerGlobalScope.cpp:
(WebCore::ServiceWorkerGlobalScope::ServiceWorkerGlobalScope):
- worklets/WorkletGlobalScope.cpp:
(WebCore::WorkletGlobalScope::WorkletGlobalScope):
Source/WTF:
- wtf/PlatformEnable.h:
LayoutTests:
- js/dom/resources/webassembly-memory-normal-fail-worker.js: Added.
- js/dom/resources/webassembly-memory-shared-worker.js: Added.
(onmessage):
- js/dom/webassembly-memory-normal-fail-expected.txt: Added.
- js/dom/webassembly-memory-normal-fail.html: Added.
- js/dom/webassembly-memory-shared-basic-expected.txt: Added.
- js/dom/webassembly-memory-shared-basic.html: Added.
- js/dom/webassembly-memory-shared-fail-expected.txt: Added.
- js/dom/webassembly-memory-shared-fail.html: Added.
- platform/win/TestExpectations:
- storage/indexeddb/resources/shared-memory-structured-clone.js: Added.
(prepareDatabase):
(async startTests):
(testSharedWebAssemblyMemory):
- storage/indexeddb/shared-memory-structured-clone-expected.txt: Added.
- storage/indexeddb/shared-memory-structured-clone.html: Added.
- 12:14 PM Changeset in webkit [269973] by
-
- 36 edits2 adds in trunk
Propagate wheel event handling back to the scrolling thread
https://bugs.webkit.org/show_bug.cgi?id=219050
Reviewed by Chris Dumez.
Source/WebCore:
Prepare to fix webkit.org/b/218764 by adding a way for the main thread to communicate back
to the scrolling thread information about whether the wheel event was dispatched to JS,
and whether preventDefault() was called on it.
The EventHandling enum has bits that are set when the event is dispatched to JS,
when it's canceled, and if default handling happened. These values are filled in
Element::dispatchWheelEvent(). They propagate back to the scrolling thread via
EventHandler::wheelEventWasProcessedByMainThread(), whose macOS implementation
calls into the ScrollingCoordinator, which will set state on the ScrollingTree in
a future patch.
WheelEventTestMonitor gains a "reason" flag to track the async propagation of
wheelEventWasProcessedByMainThread() back to the scrolling thread.
This patch also adds infrastructure for the scrolling thread to specify that wheel events
sent to the main thread will be uncancelable; WheelEventProcessingSteps gains
MainThreadForNonBlockingDOMEventDispatch and MainThreadForBlockingDOMEventDispatch,
and if MainThreadForNonBlockingDOMEventDispatch is set, then we create
WheelEvents with IsCancelable::No. This will be the case for wheel events in
the passive event region.
Rename ScrollingCoordinator::handleWheelEvent() to performDefaultWheelEventHandling()
for clarity, and stop passing the FrameView* which was unused.
Add a missing lock in ThreadedScrollingTree::handleWheelEventAfterMainThread().
- dom/Element.cpp:
(WebCore::Element::dispatchWheelEvent):
- dom/Element.h:
- dom/WheelEvent.cpp:
(WebCore::WheelEvent::WheelEvent):
(WebCore::WheelEvent::create):
- dom/WheelEvent.h:
- page/EventHandler.cpp:
(WebCore::EventHandler::wheelEventWasProcessedByMainThread):
(WebCore::EventHandler::handleWheelEvent):
(WebCore::EventHandler::handleWheelEventInternal):
- page/EventHandler.h:
- page/FrameView.cpp:
(WebCore::FrameView::wheelEvent):
- page/PointerLockController.cpp:
(WebCore::PointerLockController::dispatchLockedWheelEvent):
- page/WheelEventTestMonitor.cpp:
(WebCore::operator<<):
- page/WheelEventTestMonitor.h:
- page/ios/EventHandlerIOS.mm:
(WebCore::EventHandler::wheelEvent):
- page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::wheelEvent):
(WebCore::EventHandler::wheelEventWasProcessedByMainThread):
- page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::performDefaultWheelEventHandling):
(WebCore::ScrollingCoordinator::wheelEventWasProcessedByMainThread):
(WebCore::ScrollingCoordinator::handleWheelEvent): Deleted.
- page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::determineWheelEventProcessing):
(WebCore::ScrollingTree::handleWheelEvent):
- page/scrolling/ScrollingTree.h:
(WebCore::WheelEventHandlingResult::needsMainThreadProcessing const):
- page/scrolling/ScrollingTreeLatchingController.cpp:
(WebCore::ScrollingTreeLatchingController::receivedWheelEvent): Send in WheelEventProcessingSteps which
a future patch will use.
- page/scrolling/ScrollingTreeLatchingController.h:
- page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::handleWheelEventAfterMainThread): There was a missing lock here.
(WebCore::ThreadedScrollingTree::wheelEventWasProcessedByMainThread):
- page/scrolling/ThreadedScrollingTree.h:
- page/scrolling/mac/ScrollingCoordinatorMac.h:
- page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::performDefaultWheelEventHandling):
(WebCore::nextDeferIdentifier):
(WebCore::ScrollingCoordinatorMac::wheelEventWasProcessedByMainThread):
(WebCore::ScrollingCoordinatorMac::handleWheelEvent): Deleted.
- page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm:
(WebCore::ScrollingTreeOverflowScrollingNodeMac::handleWheelEvent):
- page/scrolling/nicosia/ScrollingCoordinatorNicosia.cpp:
(WebCore::ScrollingCoordinatorNicosia::performDefaultWheelEventHandling):
(WebCore::ScrollingCoordinatorNicosia::wheelEventWasProcessedByMainThread):
(WebCore::ScrollingCoordinatorNicosia::handleWheelEvent): Deleted.
- page/scrolling/nicosia/ScrollingCoordinatorNicosia.h:
- platform/PlatformEvent.h:
- platform/PlatformWheelEvent.cpp:
(WebCore::operator<<): Add dumping of EventHandling.
- platform/PlatformWheelEvent.h:
Source/WebKit:
For now, use MainThreadForBlockingDOMEventDispatch for the default steps (used by non-macOS platforms).
- UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::handleWheelEvent):
- WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::wheelEvent):
Source/WebKitLegacy/win:
Use MainThreadForBlockingDOMEventDispatch.
- WebView.cpp:
(WebView::mouseWheel):
LayoutTests:
- fast/events/wheel/wheel-event-in-passive-region-non-cancelable-expected.txt: Added.
- fast/events/wheel/wheel-event-in-passive-region-non-cancelable.html: Added.
- platform/mac-wk1/TestExpectations:
- platform/win/TestExpectations:
- 12:02 PM Changeset in webkit [269972] by
-
- 11 edits in trunk/LayoutTests
[Rosetta] webaudio/BiquadFilter/tail-time-*.html tests are flaky
https://bugs.webkit.org/show_bug.cgi?id=219096
Reviewed by Geoffrey Garen.
- platform/mac/TestExpectationsRosetta:
Unskip tests as they should no longer be flaky.
- resources/testharnessreport.js:
(self.testRunner.add_completion_callback):
Strip some text from tests output that tends to cause flakiness.
- webaudio/BiquadFilter/tail-time-allpass-expected.txt:
- webaudio/BiquadFilter/tail-time-bandpass-expected.txt:
- webaudio/BiquadFilter/tail-time-highpass-expected.txt:
- webaudio/BiquadFilter/tail-time-highshelf-expected.txt:
- webaudio/BiquadFilter/tail-time-lowpass-expected.txt:
- webaudio/BiquadFilter/tail-time-lowshelf-expected.txt:
- webaudio/BiquadFilter/tail-time-notch-expected.txt:
- webaudio/BiquadFilter/tail-time-peaking-expected.txt:
Rebaseline WPT tests now that their output has been simplified.
- 11:31 AM Changeset in webkit [269971] by
-
- 2 edits in branches/safari-611.1.6-branch/Source/WebKit
Cherry-pick r269966. rdar://problem/71547830
[macOS] Fix message filter sandbox violation
https://bugs.webkit.org/show_bug.cgi?id=219090
<rdar://problem/71522043>
Reviewed by Geoffrey Garen.
The message filter in the WebContent process on macOS needs to allow some additional messages.
- WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@269966 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:31 AM Changeset in webkit [269970] by
-
- 2 edits in branches/safari-611.1.6-branch/Source/WebCore
Cherry-pick r269944. rdar://problem/71547824
REGRESSION(r269614): [iOS] WebContent crashes when entering Full Screen video with text captions
https://bugs.webkit.org/show_bug.cgi?id=219065
Reviewed by Tim Horton.
Pass a CGImageRef of the video caption to CALayer instead of passing a
NativeImage which is now a WebCore class.
- platform/graphics/cocoa/TextTrackRepresentationCocoa.mm: (WebCore::TextTrackRepresentationCocoa::update):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@269944 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:42 AM Changeset in webkit [269969] by
-
- 6 edits in trunk/Source/WebKit
Clean up some code in SharedDisplayListHandle
https://bugs.webkit.org/show_bug.cgi?id=219089
Reviewed by Geoff Garen.
Currently,
reservedCapacityAtStartis defined as a constant 16 bytes, which is enough to encompass the
contents of the header structure in a shared display list handle (i.e. an 8-byte atomic for the lock, and
another 8 bytes for the unread count).
Instead of hard-coding this, we could simply make this a constexpr function that returns the size of
DisplayListSharedMemoryHeader(rounded up to ensure alignment of all display list item data).
No change in behavior.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::wakeUpAndApplyDisplayList):
(WebKit::RemoteRenderingBackend::didCreateSharedDisplayListHandle):
- Shared/SharedDisplayListHandle.h:
(WebKit::SharedDisplayListHandle::headerSize):
- WebProcess/GPU/graphics/DisplayListWriterHandle.cpp:
(WebKit::DisplayListWriterHandle::resetWritableOffsetIfPossible):
- WebProcess/GPU/graphics/DisplayListWriterHandle.h:
(WebKit::DisplayListWriterHandle::DisplayListWriterHandle):
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::createItemBuffer):
Also add a static assert that the size of a newly allocated buffer is larger than the reserved header capacity.
- 10:35 AM Changeset in webkit [269968] by
-
- 4 edits4 copies1 add1 delete in trunk/LayoutTests
Tests for the <model> element should be in a dedicated top-level directory
https://bugs.webkit.org/show_bug.cgi?id=219077
Reviewed by Dean Jackson.
Move the tests for the <model> element from system-preview/model to the top-level model-element directory.
Tests under this directory run only on macOS and iOS following where the ENABLE_MODEL_ELEMENT is defined.
- TestExpectations:
- model-element/model-element-expected.txt: Renamed from LayoutTests/system-preview/model/model-element-expected.txt.
- model-element/model-element-source-expected.txt: Renamed from LayoutTests/system-preview/model/model-element-source-expected.txt.
- model-element/model-element-source.html: Renamed from LayoutTests/system-preview/model/model-element-source.html.
- model-element/model-element.html: Renamed from LayoutTests/system-preview/model/model-element.html.
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
- 10:14 AM Changeset in webkit [269967] by
-
- 2 edits in trunk/LayoutTests
Unskip a few WebAudio tests that are no longer failing on Rosetta since r269853.
- platform/mac/TestExpectationsRosetta:
- 10:06 AM Changeset in webkit [269966] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Fix message filter sandbox violation
https://bugs.webkit.org/show_bug.cgi?id=219090
<rdar://problem/71522043>
Reviewed by Geoffrey Garen.
The message filter in the WebContent process on macOS needs to allow some additional messages.
- WebProcess/com.apple.WebProcess.sb.in:
- 10:02 AM Changeset in webkit [269965] by
-
- 1 edit1 add in trunk/JSTests
[JSC] Import V8 private instance fields tests
https://bugs.webkit.org/show_bug.cgi?id=219075
Patch by Xan Lopez <Xan Lopez> on 2020-11-18
Reviewed by Yusuke Suzuki.
- stress/class-fields-private-harmony.js: Added.
- 9:59 AM Changeset in webkit [269964] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r269774): [ Mac WK2 ] fast/lists/001.html and fast/lists/001-vertical.html are flaky crashing
https://bugs.webkit.org/show_bug.cgi?id=218995
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 9:51 AM Changeset in webkit [269963] by
-
- 3 edits2 adds in trunk
[Web Animations] Ensure we don't schedule animation udpates when there are no styles to update
https://bugs.webkit.org/show_bug.cgi?id=219071
Reviewed by Simon Fraser.
Source/WebCore:
Test: webanimations/scheduling-of-animation-without-keyframes.html
For keyframe effects that don't interpolate any CSS property, run the same logic that we already run
to determine when to schedule the next animation update in the case where we are running accelerated
animations.
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::timeToNextTick const):
LayoutTests:
Add a test that creates animations with various empty keyframes parameters to check that we don't
schedule animation update for them.
- webanimations/scheduling-of-animation-without-keyframes-expected.txt: Added.
- webanimations/scheduling-of-animation-without-keyframes.html: Added.
- 9:45 AM Changeset in webkit [269962] by
-
- 6 edits2 adds in trunk
Support <source> as a child of <model> to specify the current source
https://bugs.webkit.org/show_bug.cgi?id=219080
Reviewed by Dean Jackson.
Source/WebCore:
Test: system-preview/model/model-element-source.html
- html/HTMLModelElement.cpp:
(WebCore::HTMLModelElement::sourcesChanged):
(WebCore::HTMLModelElement::setSourceURL):
(WebCore::HTMLModelElement::didMoveToNewDocument):
- html/HTMLModelElement.h:
- html/HTMLModelElement.idl:
- html/HTMLSourceElement.cpp:
(WebCore::HTMLSourceElement::insertedIntoAncestor):
(WebCore::HTMLSourceElement::removedFromAncestor):
(WebCore::HTMLSourceElement::parseAttribute):
LayoutTests:
Add a series of tests for the HTMLModelElement.currentSrc property and its relationship with <source> elements.
- system-preview/model/model-element-source-expected.txt: Added.
- system-preview/model/model-element-source.html: Added.
- 8:58 AM Changeset in webkit [269961] by
-
- 3 edits in branches/safari-610.3.7.1-branch/Source/JavaScriptCore
Cherry-pick r269931. rdar://problem/71540532
Add more info to the RELEASE_ASSERT inside Parser::parseInner
https://bugs.webkit.org/show_bug.cgi?id=219054
<rdar://problem/71506453>
Reviewed by Mark Lam.
We have some crashes here, and it'll be helpful for the crashlogs to have
more info in the register state.
- parser/Lexer.h: (JSC::Lexer::codeLength):
- parser/Parser.cpp: (JSC::Parser<LexerType>::parseInner):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@269931 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:39 AM Changeset in webkit [269960] by
-
- 4 edits in trunk
navigator.clipboard is not exposed on *.localhost pages
https://bugs.webkit.org/show_bug.cgi?id=219020
Reviewed by Wenson Hsieh.
Source/WebCore:
Make sure that if the host falls within ".localhost", the security origin is treated as
potentially trustworthy, as per:
This makes sure that API that are exposed only to secure context (such as navigator.clipboad)
are exposed on subdomains of localhost.
- page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::isLocalHostOrLoopbackIPAddress):
Tools:
Extend API test coverage.
- TestWebKitAPI/Tests/WebCore/SecurityOrigin.cpp:
(TestWebKitAPI::TEST_F):
- 8:13 AM Changeset in webkit [269959] by
-
- 2 edits in trunk/Tools
[build.webkit.org] Update RunPerlTests step for new buildbot
https://bugs.webkit.org/show_bug.cgi?id=219083
Reviewed by Jonathan Bedard.
- CISupport/build-webkit-org/steps.py:
(RunPerlTests):
(RunPerlTests.start): Initialized log observer.
(RunPerlTests.parseOutputLine): Parse each log line as they come.
(RunPerlTests.countFailures): Updated to return failedTestCount.
- 8:05 AM Changeset in webkit [269958] by
-
- 2 edits in trunk/Tools
[build.webkit.org] Update RunPythonTests step for new buildbot
https://bugs.webkit.org/show_bug.cgi?id=219082
Reviewed by Jonathan Bedard.
- CISupport/build-webkit-org/steps.py:
(RunPythonTests):
(RunPythonTests.start): Initialized log observer.
(RunPythonTests.parseOutputLine): Parse each log line as they come.
(RunPythonTests.countFailures): Updated to return failedTestCount.
- 8:03 AM Changeset in webkit [269957] by
-
- 13 edits2 adds in trunk
Make CSS font shorthands parsable within a worker (i.e. without CSSValuePool)
https://bugs.webkit.org/show_bug.cgi?id=202794
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/html/canvas/element/text-styles/2d.text.font.parse.invalid-expected.txt:
Source/WebCore:
Add functions to make it possible to parse CSS font shorthand
properties without using CSS values, so it can be done safely off of
the main thread. To support and test this, also add functions to make
it possible to resolve those properties into a style without
StyleBuilder and use that within CanvasRenderingContext2D.
No new tests, covered by existing tests.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- css/parser/CSSParser.cpp:
(WebCore::CSSParser::parseFontWorkerSafe):
- css/parser/CSSParser.h:
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeFontWeight):
(WebCore::consumeFontStretchKeywordValue):
(WebCore::consumeFontStyle):
(WebCore::consumeFamilyName):
- css/parser/CSSPropertyParser.h:
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::CalcParser::consumePercentRaw):
(WebCore::CSSPropertyParserHelpers::CalcParser::consumeAngleRaw):
(WebCore::CSSPropertyParserHelpers::CalcParser::consumeLengthRaw):
(WebCore::CSSPropertyParserHelpers::CalcParser::consumeLengthOrPercentRaw):
(WebCore::CSSPropertyParserHelpers::consumeNumberRaw):
(WebCore::CSSPropertyParserHelpers::consumeNumber):
(WebCore::CSSPropertyParserHelpers::consumeFontWeightNumberRaw):
(WebCore::CSSPropertyParserHelpers::consumeFontWeightNumber):
(WebCore::CSSPropertyParserHelpers::consumeLengthRaw):
(WebCore::CSSPropertyParserHelpers::consumeLength):
(WebCore::CSSPropertyParserHelpers::consumePercent):
(WebCore::CSSPropertyParserHelpers::consumeLengthOrPercentRaw):
(WebCore::CSSPropertyParserHelpers::consumeLengthOrPercent):
(WebCore::CSSPropertyParserHelpers::consumeAngleRaw):
(WebCore::CSSPropertyParserHelpers::consumeIdentRaw):
(WebCore::CSSPropertyParserHelpers::consumeIdent):
(WebCore::CSSPropertyParserHelpers::consumeIdentRangeRaw):
(WebCore::CSSPropertyParserHelpers::consumeFontVariantCSS21Raw):
(WebCore::CSSPropertyParserHelpers::consumeFontWeightKeywordValueRaw):
(WebCore::CSSPropertyParserHelpers::consumeFontWeightRaw):
(WebCore::CSSPropertyParserHelpers::consumeFontStretchKeywordValueRaw):
(WebCore::CSSPropertyParserHelpers::consumeFontStyleKeywordValueRaw):
(WebCore::CSSPropertyParserHelpers::consumeFontStyleRaw):
(WebCore::CSSPropertyParserHelpers::concatenateFamilyName):
(WebCore::CSSPropertyParserHelpers::consumeFamilyNameRaw):
(WebCore::CSSPropertyParserHelpers::consumeGenericFamilyRaw):
(WebCore::CSSPropertyParserHelpers::consumeFontFamilyRaw):
(WebCore::CSSPropertyParserHelpers::consumeFontSizeRaw):
(WebCore::CSSPropertyParserHelpers::consumeLineHeightRaw):
(WebCore::CSSPropertyParserHelpers::consumeFontWorkerSafe):
(WebCore::CSSPropertyParserHelpers::genericFontFamilyFromValueID):
- css/parser/CSSPropertyParserHelpers.h:
(WebCore::CSSPropertyParserHelpers::consumeIdentRaw):
- html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::setFont):
- style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyValueFontFamily):
- style/StyleResolveForFontRaw.cpp: Added.
(WebCore::Style::resolveForFontRaw):
- style/StyleResolveForFontRaw.h: Added.
- 7:36 AM Changeset in webkit [269956] by
-
- 3 edits in trunk/Source/WebKit
[GPUProcess] Main thread of the GPUProcess should have same priority as main thread of the WebContent
https://bugs.webkit.org/show_bug.cgi?id=219057
Reviewed by Simon Fraser.
Main thread of the GPUProcess should have same priority as main thread of the WebContent since it
is doing rendering on its behalf.
For now, this means that on macOS, the main threads of the GPU and WebContent processes with both
get UserInteractive QoS. On iOS, they will both still get UserInitiated QoS until our RunningBoard
foreground process assertion get fixed to get the right priority (<rdar://problem/71499731>).
- GPUProcess/EntryPoint/Cocoa/XPCService/GPUService/Info-OSX.plist:
Use _ProcessType=App, similarly as what we do for the WebContent process. If we don't do
this, the process is an adaptive daemon and its QoS can never be higher than UserInitiated.
We need its priority to go to UserInteractive to match the WebContent process.
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::initializeGPUProcess):
Request UserInteractive QoS for the main thread of the GPUProcess, similarly to what we do
for the main thread of the WebContent process already in WebProcess::InitializeWebProcess().
- 7:21 AM WebKitGTK/2.30.x edited by
- (diff)
- 7:11 AM Changeset in webkit [269955] by
-
- 4 edits in trunk
[WPE][GTK] Update Outlook user agent quirk
https://bugs.webkit.org/show_bug.cgi?id=219049
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-11-18
Reviewed by Carlos Garcia Campos.
Source/WebCore:
Users report that our user agent quirk for Outlook no longer works. Problem is
outlook.live.com has moved to outlook.office.com. Thanks to Adrian Vovk for rebuilding
WebKit to confirm that this patch fixes the issue.
- platform/UserAgentQuirks.cpp:
(WebCore::urlRequiresMacintoshPlatform):
Tools:
- TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:
(TestWebKitAPI::TEST):
- 7:03 AM Changeset in webkit [269954] by
-
- 2 edits in trunk/Source/WebCore
RenderTreeBuilderBlock using an incorrect anonymous parent to attach a new renderer
https://bugs.webkit.org/show_bug.cgi?id=218505
Reviewed by Antti Koivisto.
Let's consider the following simplified render tree:
PARENT
|_beforeChildAnonymousContainer
|_hierarchy of anonymous blocks
|_beforeChild
When RenderTreeBuilderBlock is attaching a new renderer given PARENT and beforeChild, it first tries to attach it to the PARENT
if beforeChild is a direct child of PARENT. Otherwise it assumes that beforeChild is the direct child of an anonymous block which is
in between PARENT and beforeChild. However in some cases, as the one presented above, beforeChild might have a whole hierarchy of
anonymous blocks in between. That's why we cannot assume that beforeChild->parent() is a direct child of PARENT. Instead we should use
beforeChildAnonymousContainer as the parent of the new renderer.
- rendering/updating/RenderTreeBuilderBlock.cpp:
(WebCore::RenderTreeBuilder::Block::attachIgnoringContinuation): Use beforeChildAnonymousContainer instead of beforeChild->parent().
- 7:01 AM Changeset in webkit [269953] by
-
- 21 edits1 move in trunk/Source
Address additional feedback from https://bugs.webkit.org/show_bug.cgi?id=218960
https://bugs.webkit.org/show_bug.cgi?id=219044
Reviewed by Alex Christensen.
Source/WebCore:
Address post-review feedback from Darin.
- WebCore.xcodeproj/project.pbxproj:
- editing/cocoa/DataDetectorType.h: Added.
- editing/cocoa/DataDetectorTypes.h: Removed.
- editing/cocoa/DataDetection.h:
- editing/cocoa/DataDetection.mm:
- loader/FrameLoader.cpp:
- page/SettingsBase.h:
- page/Settings.yaml:
Rename DataDetectorTypes to DataDetectorType.
- accessibility/ForcedAccessibilityValue.h:
Put the definition all on one line for easier reading.
- bindings/scripts/CodeGenerator.pm:
(WK_ucfirst):
- editing/EditingBehaviorType.h:
Special case "ios" so that it doesn't become "Ios" but rather "iOS".
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::setActive):
Fixup comment adding period and making it all one line.
- page/FrameView.cpp:
- page/FrameView.h:
Use forward declaration for FrameFlattening enum.
- page/PDFImageCachingPolicy.h:
- platform/graphics/cg/PDFDocumentImage.h:
Remove default value enumeration value and replace it with a standalone constexpr.
Source/WebKit:
- Shared/API/Cocoa/WKDataDetectorTypesInternal.h:
(fromWKDataDetectorTypes):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::detectDataInAllFrames):
- UIProcess/WebPageProxy.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
(WebKit::WebPage::detectDataInAllFrames):
Update for rename of WebCore::DataDetectionTypes to WebCore::DataDetectionType.
- 4:25 AM Changeset in webkit [269952] by
-
- 23 edits in trunk/Source/WebCore
GraphicsContextGL should have robust multivalue getters
https://bugs.webkit.org/show_bug.cgi?id=218976
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-11-18
Reviewed by Simon Fraser.
Change getter calls that are used to obtain single values so that the
value is a normal function return value. This reduces the risk of having
uninitialized out parameter receive location.
Change the getters that are only used to obtain single values so that
the getter itself has the return value. Add a single-value getter for
getters that are used to obtain also multiple values.
Add GCGLSpan type that is used to communicate pair: ptr, number of
elements. This is similar type to std::span in C++20. The type will be
used to receive the multi-value getter results. Use of WTF::Vector as
the return value would be problematic because the call semantics need
the length. Thus the length would be needed to be specified by either
passing in the resized vector or passing in the length. Both of the
options contain redunancy and resizable vector type would still open
interpretation to how the result value would behave. Using std::array
would be problematic because it cannot have dynamic length. GCGLSpan is
not a return value since it does not carry its data. A span is only a
view to existing data store.
The type GCGLSpan will be used to simplify the GPU process
implementation, since the bufSize will be explicitly associated in the
passed data value type, inside the GCGLSpan type.
In subsequent patches GCGLSpan will be used also for multivalue setters,
i.e. arbitrary buffer stores, i.e. const GLtype ptrs.
Use the RobustANGLE variants of the GL API implementation to obtain the
values.
Remove the corresponding RobustANGLE variants from ExtensionsGL, they
are dead code and unused.
Removes requiresRestrictedMaximumTextureSize workaround from ANGLE
GraphicsContextGLOpenGL code, it was dead code (i.e flag always false).
This should be done in ANGLE level.
Fixes cosmetic bugs where uninitialized value was used to store the
location of the gotten property. This value would be unwritten in
edge-cases like GL errors, and thus the read would touch unuinitialized
value.
Fixes a cosmetic bug where uniform block variables code would pass in
too large buffer size to the RobustANGLE call. The bufSize refers to the
number of elements, but the code passed in the size of the buffer (i.e.
number of elements * size of element).
No new tests, a refactor.
- html/OffscreenCanvas.cpp:
(WebCore::OffscreenCanvas::transferToImageBitmap):
- html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::initializeNewContext):
(WebCore::WebGL2RenderingContext::getInt64Parameter):
(WebCore::WebGL2RenderingContext::getTexParameter):
(WebCore::WebGL2RenderingContext::getIndexedParameter):
(WebCore::WebGL2RenderingContext::getActiveUniformBlockParameter):
(WebCore::WebGL2RenderingContext::getFramebufferAttachmentParameter):
(WebCore::WebGL2RenderingContext::getMaxDrawBuffers):
(WebCore::WebGL2RenderingContext::getMaxColorAttachments):
- html/canvas/WebGLDrawBuffers.cpp:
(WebCore::WebGLDrawBuffers::satisfiesWebGLRequirements):
- html/canvas/WebGLFramebuffer.cpp:
(WebCore::WebGLFramebuffer::initializeAttachments):
- html/canvas/WebGLProgram.cpp:
(WebCore::WebGLProgram::cacheActiveAttribLocations):
(WebCore::WebGLProgram::cacheInfoIfNeeded):
- html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter):
(WebCore::WebGLRenderingContext::getMaxDrawBuffers):
(WebCore::WebGLRenderingContext::getMaxColorAttachments):
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::initializeNewContext):
(WebCore::WebGLRenderingContextBase::compileShader):
(WebCore::WebGLRenderingContextBase::getBufferParameter):
(WebCore::WebGLRenderingContextBase::getProgramParameter):
(WebCore::WebGLRenderingContextBase::getRenderbufferParameter):
(WebCore::WebGLRenderingContextBase::getShaderParameter):
(WebCore::WebGLRenderingContextBase::getTexParameter):
(WebCore::WebGLRenderingContextBase::getUniformLocation):
(WebCore::WebGLRenderingContextBase::getBooleanParameter):
(WebCore::WebGLRenderingContextBase::getFloatParameter):
(WebCore::WebGLRenderingContextBase::getIntParameter):
(WebCore::WebGLRenderingContextBase::getUnsignedIntParameter):
(WebCore::WebGLRenderingContextBase::getMaxDrawBuffers):
(WebCore::WebGLRenderingContextBase::getMaxColorAttachments):
- platform/graphics/ExtensionsGL.h:
- platform/graphics/GraphicsContextGL.h:
(WebCore::GraphicsContextGL::getFloat):
(WebCore::GraphicsContextGL::getBoolean):
(WebCore::GraphicsContextGL::getInteger):
(WebCore::GraphicsContextGL::getActiveUniformBlocki):
- platform/graphics/GraphicsTypesGL.h:
(GCGLSpan::GCGLSpan):
(GCGLSpan::operator[]):
(GCGLSpan::operator*):
(std::numeric_limits<size_t>::max):
(makeGCGLSpan):
- platform/graphics/angle/ExtensionsGLANGLE.cpp:
(WebCore::ExtensionsGLANGLE::getTranslatedShaderSourceANGLE):
(WebCore::ExtensionsGLANGLE::getBooleanvRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getBufferParameterivRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getFloatvRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getFramebufferAttachmentParameterivRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getIntegervRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getProgramivRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getRenderbufferParameterivRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getShaderivRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getTexParameterfvRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getTexParameterivRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getUniformfvRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getUniformivRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getVertexAttribfvRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getVertexAttribivRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getVertexAttribPointervRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getIntegeri_vRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getActiveUniformBlockivRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getInteger64vRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getInteger64i_vRobustANGLE): Deleted.
- platform/graphics/angle/ExtensionsGLANGLE.h:
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLOpenGL::getIntegerv):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformImpl):
(WebCore::GraphicsContextGLOpenGL::getBooleanv):
(WebCore::GraphicsContextGLOpenGL::getBufferParameteri):
(WebCore::GraphicsContextGLOpenGL::getFloatv):
(WebCore::GraphicsContextGLOpenGL::getInteger64):
(WebCore::GraphicsContextGLOpenGL::getInteger64i):
(WebCore::GraphicsContextGLOpenGL::getFramebufferAttachmentParameteri):
(WebCore::GraphicsContextGLOpenGL::getProgrami):
(WebCore::GraphicsContextGLOpenGL::getRenderbufferParameteri):
(WebCore::GraphicsContextGLOpenGL::getShaderi):
(WebCore::GraphicsContextGLOpenGL::getTexParameterf):
(WebCore::GraphicsContextGLOpenGL::getTexParameteri):
(WebCore::GraphicsContextGLOpenGL::getUniformfv):
(WebCore::GraphicsContextGLOpenGL::getUniformiv):
(WebCore::GraphicsContextGLOpenGL::getUniformuiv):
(WebCore::GraphicsContextGLOpenGL::getVertexAttribfv):
(WebCore::GraphicsContextGLOpenGL::getVertexAttribiv):
(WebCore::GraphicsContextGLOpenGL::getVertexAttribOffset):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockiv):
(WebCore::GraphicsContextGLOpenGL::getIntegeri_v): Deleted.
(WebCore::GraphicsContextGLOpenGL::getBufferParameteriv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getInteger64v): Deleted.
(WebCore::GraphicsContextGLOpenGL::getInteger64i_v): Deleted.
(WebCore::GraphicsContextGLOpenGL::getFramebufferAttachmentParameteriv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getProgramiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getRenderbufferParameteriv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getShaderiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getTexParameterfv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getTexParameteriv): Deleted.
- platform/graphics/cv/GraphicsContextGLCVANGLE.cpp:
(WebCore::GraphicsContextGLCVANGLE::initializeUVContextObjects):
- platform/graphics/opengl/ExtensionsGLOpenGLCommon.cpp:
(WebCore::ExtensionsGLOpenGLCommon::ensureEnabled):
(WebCore::ExtensionsGLOpenGLCommon::getTranslatedShaderSourceANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getBooleanvRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getBufferParameterivRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getFloatvRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getFramebufferAttachmentParameterivRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getIntegervRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getProgramivRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getRenderbufferParameterivRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getShaderivRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getTexParameterfvRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getTexParameterivRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getUniformfvRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getUniformivRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getVertexAttribfvRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getVertexAttribivRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getVertexAttribPointervRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getIntegeri_vRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getInteger64vRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getInteger64i_vRobustANGLE): Deleted.
- platform/graphics/opengl/ExtensionsGLOpenGLCommon.h:
- platform/graphics/opengl/ExtensionsGLOpenGLES.cpp:
(WebCore::ExtensionsGLOpenGLES::isEnabled):
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp:
(WebCore::GraphicsContextGLOpenGL::getIntegerv):
- platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:
(WebCore::GraphicsContextGLOpenGL::getBooleanv):
(WebCore::GraphicsContextGLOpenGL::getFloatv):
(WebCore::GraphicsContextGLOpenGL::getInteger64):
(WebCore::GraphicsContextGLOpenGL::getInteger64i):
(WebCore::GraphicsContextGLOpenGL::getFramebufferAttachmentParameteri):
(WebCore::GraphicsContextGLOpenGL::getProgrami):
(WebCore::GraphicsContextGLOpenGL::getRenderbufferParameteri):
(WebCore::GraphicsContextGLOpenGL::getShaderi):
(WebCore::GraphicsContextGLOpenGL::getTexParameterf):
(WebCore::GraphicsContextGLOpenGL::getTexParameteri):
(WebCore::GraphicsContextGLOpenGL::getUniformfv):
(WebCore::GraphicsContextGLOpenGL::getUniformiv):
(WebCore::GraphicsContextGLOpenGL::getUniformuiv):
(WebCore::GraphicsContextGLOpenGL::getVertexAttribf):
(WebCore::GraphicsContextGLOpenGL::getVertexAttribiv):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockiv):
(WebCore::GraphicsContextGLOpenGL::getIntegeri_v): Deleted.
(WebCore::GraphicsContextGLOpenGL::getInteger64v): Deleted.
(WebCore::GraphicsContextGLOpenGL::getInteger64i_v): Deleted.
(WebCore::GraphicsContextGLOpenGL::getFramebufferAttachmentParameteriv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getProgramiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getRenderbufferParameteriv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getShaderiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getTexParameterfv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getTexParameteriv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getVertexAttribfv): Deleted.
- platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp:
(WebCore::GraphicsContextGLOpenGL::getIntegerv):
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
- 3:15 AM Changeset in webkit [269951] by
-
- 5 edits in trunk/Source/WebCore
REGRESSION(r269435): [Debug][GStreamer] Several tests are crashing
https://bugs.webkit.org/show_bug.cgi?id=218735
<rdar://problem/71469947>
Patch by Philippe Normand <pnormand@igalia.com> on 2020-11-18
Reviewed by Carlos Garcia Campos.
Cache the referrer value from the main thread before using it in the GStreamer secondary
thread.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::sourceSetup):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
- platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webKitWebSrcMakeRequest):
(webKitWebSrcSetMediaPlayer):
- platform/graphics/gstreamer/WebKitWebSourceGStreamer.h:
- 2:55 AM Changeset in webkit [269950] by
-
- 75 edits15 deletes in trunk
Unreviewed, reverting r269940.
https://bugs.webkit.org/show_bug.cgi?id=219076
caused seemingly-infinite build time regression
Reverted changeset:
"[JSC] Implement WebAssembly.Memory with shared"
https://bugs.webkit.org/show_bug.cgi?id=218693
https://trac.webkit.org/changeset/269940
- 2:44 AM Changeset in webkit [269949] by
-
- 2 edits in trunk/Tools
[FlatPak] update-webkitgtk-libs fails after a clean build
https://bugs.webkit.org/show_bug.cgi?id=218724
Reviewed by Philippe Normand.
The issue was caused because when adding a new flatpak repository
via the method FlatpakRepos.add() that repository is not added to
the internal list of available repositories inside the object FlatpakRepos.
So then the check on setup_builddir() added in r268542 failed because
the internal list of repositories on the object FlatpakRepos() was
empty on the first run (after a clean build).
To fix this we ensure to re-generate the internal list of flatpak
repositories any time that a new reporistory is added by calling
FlatpakRepos.update() after FlatpakRepos.add()
On top of that fix, we add another fix to make the code more robust.
Now it allows the generation of toolchains to fail without causing
a fatal error. Also a new check is added in order to retry to generate
the toolchains in the next run if is detected that they were not
correctly generated.
- flatpak/flatpakutils.py:
(FlatpakRepos.add):
(WebkitFlatpak.load_from_args):
(WebkitFlatpak.main):
(WebkitFlatpak.check_toolchains_generated):
(WebkitFlatpak.pack_toolchain):
- 1:31 AM Changeset in webkit [269948] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed. Fix the build with GCC 10
Add a temporary workaround for a GCC 10 bug.
- platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::sanitizeHTTPHeaderFieldsAccordingToTainting):
- 12:39 AM Changeset in webkit [269947] by
-
- 2 edits in trunk/Source/WebCore
[WPE][GTK] Update Safari version in user agent header for Safari 14
https://bugs.webkit.org/show_bug.cgi?id=219048
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-11-18
Reviewed by Carlos Garcia Campos.
See: https://webkit.org/blog/11340/new-webkit-features-in-safari-14/
- platform/glib/UserAgentGLib.cpp:
(WebCore::buildUserAgentString):
- 12:28 AM Changeset in webkit [269946] by
-
- 4 edits2 adds in trunk
Release assertion failure in Optional<WebCore::SimpleRange>::operator* via CompositeEditCommand::moveParagraphs
https://bugs.webkit.org/show_bug.cgi?id=218494
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2020-11-18
Reviewed by Ryosuke Niwa.
Source/WebCore:
This is happening when insert list command is called for a list item containing a body element as a child. When
the tree is iterated looking for the end position, the body element selected as candidate, but a null position
is returned because it's considered to be in a different editing element. This happens because
Node::rootEditableElement() always returns the node itseld for body elements, but it should actually check that
the node is the document body.
Test: editing/inserting/insert-list-with-body-child-crash.html
- dom/Node.cpp:
(WebCore::Node::isRootEditableElement const): Check node is the document body, not just a body element.
(WebCore::Node::rootEditableElement const): Ditto.
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs): Add an assert to ensure it's not called with a null endOfParagraphToMove.
LayoutTests:
- editing/inserting/insert-list-with-body-child-crash-expected.txt: Added.
- editing/inserting/insert-list-with-body-child-crash.html: Added.
Nov 17, 2020:
- 10:37 PM Changeset in webkit [269945] by
-
- 4 edits in trunk/Tools
[buildbot] Add buildAndTest bot for WebKitGTK (GTK4)
https://bugs.webkit.org/show_bug.cgi?id=213016
Reviewed by Carlos Alberto Lopez Perez.
Add a new post-commit bot to test WebKitGTK using GTK4 library.
The bot builds WebKitGTK and runs the following test suites: layout-test, api-test
and webdriver-test.
- CISupport/build-webkit-org/config.json:
- CISupport/build-webkit-org/factories.py:
(BuildAndTestAllButJSCFactory):
(BuildAndTestAllButJSCFactory.getProduct):
(BuildAndTestAllButJSCFactory.init):
- CISupport/build-webkit-org/steps_unittest.py:
- 10:27 PM Changeset in webkit [269944] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r269614): [iOS] WebContent crashes when entering Full Screen video with text captions
https://bugs.webkit.org/show_bug.cgi?id=219065
Reviewed by Tim Horton.
Pass a CGImageRef of the video caption to CALayer instead of passing a
NativeImage which is now a WebCore class.
- platform/graphics/cocoa/TextTrackRepresentationCocoa.mm:
(WebCore::TextTrackRepresentationCocoa::update):
- 10:15 PM Changeset in webkit [269943] by
-
- 9 edits in trunk/Source/WebKit
GPU-process-hosted RemoteLayerBackingStore should flush off the main thread
https://bugs.webkit.org/show_bug.cgi?id=219063
Reviewed by Simon Fraser.
- GPUProcess/graphics/RemoteRenderingBackend.h:
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::display):
Construct the ImageBuffer flusher /after/ submitting the final DisplayList,
so that it takes the correct flush identifier.
- GPUProcess/graphics/RemoteImageBuffer.h:
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::didFlush):
(WebKit::RemoteRenderingBackend::flushDisplayListWasCommitted): Deleted.
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
(WebKit::RemoteImageBufferProxy::didFlush):
(WebKit::RemoteImageBufferProxy::lastSentFlushIdentifier const):
(WebKit::RemoteImageBufferProxy::waitForDidFlushOnSecondaryThread):
(WebKit::RemoteImageBufferProxy::hasPendingFlush const):
(WebKit::RemoteImageBufferProxy::waitForDidFlushWithTimeout):
(WebKit::ThreadSafeRemoteImageBufferFlusher::ThreadSafeRemoteImageBufferFlusher):
(WebKit::RemoteImageBufferProxy::commitFlushDisplayList): Deleted.
(WebKit::RemoteImageBufferProxy::isPendingFlush const): Deleted.
(WebKit::RemoteImageBufferProxy::timeoutWaitForFlushDisplayListWasCommitted): Deleted.
Some renames:
Rename flushDisplayListWasCommitted to didFlush; this is the back-message from
GPU process to Web Content process that a FlushContext display list item was completed successfully.
Rename isPendingFlush to hasPendingFlush, for grammar.
Rename timeoutWaitForFlushDisplayListWasCommitted to waitForDidFlushWithTimeout, for similar reasons.
Rename waitForFlushDisplayListWasCommitted to waitForDidFlush.
Rename commitFlushDisplayList to didFlush.
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::waitForDidFlush):
(WebKit::RemoteRenderingBackendProxy::didFlush):
(WebKit::RemoteRenderingBackendProxy::waitForFlushDisplayListWasCommitted): Deleted.
(WebKit::RemoteRenderingBackendProxy::flushDisplayListWasCommitted): Deleted.
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.messages.in:
Reimplement ThreadSafeRemoteImageBufferFlusher such that it waits
(on the RemoteLayerTreeDrawingArea CommitQueue, in the only current use of it)
for the correct flush reply to come in before continuing. This is analogous
to what we do for in-process buffers, where we call CGContextFlush()
in the flusher.
- 9:09 PM Changeset in webkit [269942] by
-
- 2 edits1 delete in trunk/LayoutTests
[GLIB] Update webaudio baselines after r269853
Unreviewed test gardening.
- platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-connections-expected.txt: Removed.
- platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-expected.txt: Removed.
- platform/glib/webaudio/BiquadFilter/tail-time-peaking-expected.txt:
- 9:01 PM Changeset in webkit [269941] by
-
- 4 edits in trunk/LayoutTests
Gardening webrtc/audio-sframe.html flaky crashes
Unreviewed test gardening.
- platform/glib/TestExpectations:
- platform/ios-simulator-wk2/TestExpectations:
- platform/mac/TestExpectations:
- 7:46 PM Changeset in webkit [269940] by
-
- 74 edits17 adds in trunk
[JSC] Implement WebAssembly.Memory with shared
https://bugs.webkit.org/show_bug.cgi?id=218693
Reviewed by Saam Barati.
JSTests:
- wasm/function-tests/trap-load-shared.js: Added.
(wasmFrameCountFromError):
- wasm/function-tests/trap-store-shared.js: Added.
- wasm/js-api/test_memory.js:
(binaryShouldNotParse):
- wasm/stress/shared-memory-errors.js: Added.
(assert.throws):
- wasm/stress/shared-wasm-memory-buffer.js: Added.
LayoutTests/imported/w3c:
- web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-success.any.worker-expected.txt:
- web-platform-tests/wasm/jsapi/memory/constructor-shared.tentative.any-expected.txt:
- web-platform-tests/wasm/jsapi/memory/constructor-shared.tentative.any.worker-expected.txt:
- web-platform-tests/wasm/jsapi/memory/constructor.any-expected.txt:
- web-platform-tests/wasm/jsapi/memory/constructor.any.worker-expected.txt:
- web-platform-tests/wasm/jsapi/memory/grow.any-expected.txt:
- web-platform-tests/wasm/jsapi/memory/grow.any.worker-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-copy-channel-expected.txt:
Source/JavaScriptCore:
This patch implements shared WebAssembly.Memory. This can be shared between workers like SharedArrayBuffer.
The most interesting thing of shared WebAssembly.Memory is that it is growable. The memory can be grown in
one thread, and immediately, it should be accessible in the other threads.
To achieve that, shared WebAssembly.Memory leverages signaling even if bounds-checking is mainly used.
If the fast memory is enabled, we just use it so that mprotect can make memory grown easily. But if fast memory
is disabled, we allocates requested VA region and perform bounds-checking with this VA. Since WebAssembly.Memory
always requires "maximum" size of memory, we can first allocate VA and map active part of memory first. And
when growing, we perform mprotect to the rest of the memory. Since this VA is not 4GB, we still need to perform
bounds-checking, but we perform bounds-checking with VA size instead of active memory size. As a result, even if
shared WebAssembly.Memory is grown, we do not need to update (1) pointer and (2) bounds-checking size.
The shared bounds-checking WebAssembly.Memory is something like below.
<================================================ maximum ============================><------------ other memory, protected by bounds-checking --...
<======= active ==========><===================== not active yet =====================>
[ if we access this, fault handler will detect it]
pointer bounds checking size
These "growable bound-checking memory" is now managed by wasm memory-manager. And fault handler is used even if fast memory is disabled.
And fault handler also accepts signals from Wasm LLInt code since both bounds-checkings + signalings are required to confine memory access even in
Wasm LLInt. This patch also renamed memory-size and size-register to bounds-checking-size and bounds-checking-size-register since this is no longer
a size of memory.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- llint/LLIntPCRanges.h:
(JSC::LLInt::isWasmLLIntPC):
- llint/LowLevelInterpreter.asm:
- llint/WebAssembly.asm:
- runtime/JSArrayBuffer.h:
(JSC::JSArrayBuffer::toWrappedAllowShared):
- runtime/JSArrayBufferView.h:
- runtime/JSArrayBufferViewInlines.h:
(JSC::JSArrayBufferView::toWrappedAllowShared):
- runtime/JSGenericTypedArrayView.h:
(JSC::JSGenericTypedArrayView<Adaptor>::toWrappedAllowShared):
- runtime/Options.cpp:
(JSC::overrideDefaults):
(JSC::Options::initialize):
- wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::AirIRGenerator::AirIRGenerator):
(JSC::Wasm::AirIRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::AirIRGenerator::addCurrentMemory):
(JSC::Wasm::AirIRGenerator::emitCheckAndPreparePointer):
(JSC::Wasm::AirIRGenerator::addCall):
(JSC::Wasm::AirIRGenerator::addCallIndirect):
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::B3IRGenerator::addCurrentMemory):
(JSC::Wasm::B3IRGenerator::emitCheckAndPreparePointer):
(JSC::Wasm::B3IRGenerator::addCall):
(JSC::Wasm::B3IRGenerator::addCallIndirect):
- wasm/WasmBinding.cpp:
(JSC::Wasm::wasmToWasm):
- wasm/WasmFaultSignalHandler.cpp:
(JSC::Wasm::trapHandler):
(JSC::Wasm::enableFastMemory):
(JSC::Wasm::prepareFastMemory):
- wasm/WasmInstance.h:
(JSC::Wasm::Instance::cachedMemory const):
(JSC::Wasm::Instance::cachedBoundsCheckingSize const):
(JSC::Wasm::Instance::updateCachedMemory):
(JSC::Wasm::Instance::offsetOfCachedBoundsCheckingSize):
(JSC::Wasm::Instance::cachedMemorySize const): Deleted.
(JSC::Wasm::Instance::offsetOfCachedMemorySize): Deleted.
- wasm/WasmMemory.cpp:
(JSC::Wasm::MemoryHandle::MemoryHandle):
(JSC::Wasm::MemoryHandle::~MemoryHandle):
(JSC::Wasm::Memory::Memory):
(JSC::Wasm::Memory::create):
(JSC::Wasm::Memory::tryCreate):
(JSC::Wasm::Memory::addressIsInGrowableOrFastMemory):
(JSC::Wasm::Memory::growShared):
(JSC::Wasm::Memory::grow):
(JSC::Wasm::Memory::dump const):
(JSC::Wasm::Memory::~Memory): Deleted.
(JSC::Wasm::Memory::addressIsInActiveFastMemory): Deleted.
- wasm/WasmMemory.h:
(JSC::Wasm::Memory::addressIsInGrowableOrFastMemory):
(JSC::Wasm::Memory::operator bool const): Deleted.
(JSC::Wasm::Memory::memory const): Deleted.
(JSC::Wasm::Memory::size const): Deleted.
(JSC::Wasm::Memory::sizeInPages const): Deleted.
(JSC::Wasm::Memory::initial const): Deleted.
(JSC::Wasm::Memory::maximum const): Deleted.
(JSC::Wasm::Memory::mode const): Deleted.
(JSC::Wasm::Memory::check): Deleted.
(JSC::Wasm::Memory::offsetOfMemory): Deleted.
(JSC::Wasm::Memory::offsetOfSize): Deleted.
(JSC::Wasm::Memory::addressIsInActiveFastMemory): Deleted.
- wasm/WasmMemoryInformation.cpp:
(JSC::Wasm::PinnedRegisterInfo::get):
(JSC::Wasm::PinnedRegisterInfo::PinnedRegisterInfo):
- wasm/WasmMemoryInformation.h:
(JSC::Wasm::PinnedRegisterInfo::toSave const):
- wasm/WasmMemoryMode.cpp:
(JSC::Wasm::makeString):
- wasm/WasmMemoryMode.h:
- wasm/js/JSToWasm.cpp:
(JSC::Wasm::createJSToWasmWrapper):
- wasm/js/JSWebAssemblyInstance.cpp:
(JSC::JSWebAssemblyInstance::tryCreate):
- wasm/js/JSWebAssemblyMemory.cpp:
(JSC::JSWebAssemblyMemory::buffer):
(JSC::JSWebAssemblyMemory::growSuccessCallback):
- wasm/js/JSWebAssemblyMemory.h:
- wasm/js/WebAssemblyFunction.cpp:
(JSC::WebAssemblyFunction::jsCallEntrypointSlow):
- wasm/js/WebAssemblyMemoryConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/WebAssemblyMemoryPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::WebAssemblyModuleRecord::evaluate):
Source/WebCore:
In WebCore, we need three things.
- Shared WebAssembly.Memory serialization/deserialization
This patch adds structure-cloning for WebAssembly.Memory to pass it to the other workers. Cloning is available
only when the WebAssembly.Memory is shared mode. And it is only available when we are using it in postMessage.
So we cannot store WebAssembly.Memory in IndexedDB.
- WebCoreTypedArrayController::isAtomicsWaitAllowedOnCurrentThread
Atomics.wait is usable only in Workers, and *not* usable in Service Workers. When creating VM, we pass WorkerThreadType
and make WebCoreTypedArrayController::isAtomicsWaitAllowedOnCurrentThread return appropriate value.
- [AllowShared] support for WPT
WPT tests for this are broken, and tests are saying "PASS" while the feature is not implemented at all.
Now, the feature is actually implemented, and WPT tests start showing that [AllowShared] annotation in IDL
is not implemented. [AllowShared] is that, usually, DOM does not accept TypedArray originated from SharedArrayBuffer.
e.g. encodeInto(..., Uint8Array) DOM IDL throws an error if Uint8Array is backed by SharedArrayBuffer.
But in the limited places, we are explicitly allowing this. This is [AllowShared] annotation.
This patch implements that so that we keep passing TextEncoder / TextDecoder tests.
- Headers.cmake:
- Modules/indexeddb/server/IDBSerializationContext.cpp:
(WebCore::IDBServer::IDBSerializationContext::initializeVM):
- WebCore.xcodeproj/project.pbxproj:
- bindings/IDLTypes.h:
- bindings/js/CommonVM.cpp:
(WebCore::commonVMSlow):
- bindings/js/JSDOMConvertBufferSource.h:
(WebCore::Detail::BufferSourceConverter::convert):
(WebCore::Converter<IDLArrayBuffer>::convert):
(WebCore::Converter<IDLDataView>::convert):
(WebCore::Converter<IDLInt8Array>::convert):
(WebCore::Converter<IDLInt16Array>::convert):
(WebCore::Converter<IDLInt32Array>::convert):
(WebCore::Converter<IDLUint8Array>::convert):
(WebCore::Converter<IDLUint16Array>::convert):
(WebCore::Converter<IDLUint32Array>::convert):
(WebCore::Converter<IDLUint8ClampedArray>::convert):
(WebCore::Converter<IDLFloat32Array>::convert):
(WebCore::Converter<IDLFloat64Array>::convert):
(WebCore::Converter<IDLArrayBufferView>::convert):
(WebCore::Converter<IDLAllowSharedAdaptor<T>>::convert):
- bindings/js/JSDOMConvertUnion.h:
- bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::serialize):
(WebCore::CloneSerializer::CloneSerializer):
(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneDeserializer::deserialize):
(WebCore::CloneDeserializer::CloneDeserializer):
(WebCore::CloneDeserializer::readTerminal):
(WebCore::SerializedScriptValue::SerializedScriptValue):
(WebCore::SerializedScriptValue::computeMemoryCost const):
(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::deserialize):
- bindings/js/SerializedScriptValue.h:
- bindings/js/WebCoreJSClientData.cpp:
(WebCore::JSVMClientData::initNormalWorld):
- bindings/js/WebCoreJSClientData.h:
- bindings/js/WebCoreTypedArrayController.cpp:
(WebCore::WebCoreTypedArrayController::WebCoreTypedArrayController):
(WebCore::WebCoreTypedArrayController::isAtomicsWaitAllowedOnCurrentThread):
- bindings/js/WebCoreTypedArrayController.h:
- bindings/scripts/CodeGeneratorJS.pm:
(IsAnnotatedType):
(GetAnnotatedIDLType):
- bindings/scripts/IDLAttributes.json:
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjDOMConstructor::construct):
(WebCore::jsTestObjPrototypeFunction_encodeIntoBody):
(WebCore::JSC_DEFINE_HOST_FUNCTION):
- bindings/scripts/test/TestObj.idl:
- dom/TextDecoder.idl:
- dom/TextDecoderStreamDecoder.idl:
- dom/TextEncoder.idl:
- workers/DedicatedWorkerGlobalScope.cpp:
(WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope):
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::WorkerGlobalScope):
- workers/WorkerGlobalScope.h:
- workers/WorkerOrWorkletGlobalScope.cpp:
(WebCore::WorkerOrWorkletGlobalScope::WorkerOrWorkletGlobalScope):
- workers/WorkerOrWorkletGlobalScope.h:
- workers/WorkerOrWorkletScriptController.cpp:
(WebCore::WorkerOrWorkletScriptController::WorkerOrWorkletScriptController):
- workers/WorkerOrWorkletScriptController.h:
- workers/WorkerThreadType.h: Added.
- workers/service/ServiceWorkerGlobalScope.cpp:
(WebCore::ServiceWorkerGlobalScope::ServiceWorkerGlobalScope):
- worklets/WorkletGlobalScope.cpp:
(WebCore::WorkletGlobalScope::WorkletGlobalScope):
LayoutTests:
- js/dom/resources/webassembly-memory-normal-fail-worker.js: Added.
- js/dom/resources/webassembly-memory-shared-worker.js: Added.
(onmessage):
- js/dom/webassembly-memory-normal-fail-expected.txt: Added.
- js/dom/webassembly-memory-normal-fail.html: Added.
- js/dom/webassembly-memory-shared-basic-expected.txt: Added.
- js/dom/webassembly-memory-shared-basic.html: Added.
- js/dom/webassembly-memory-shared-fail-expected.txt: Added.
- js/dom/webassembly-memory-shared-fail.html: Added.
- platform/win/TestExpectations:
- storage/indexeddb/resources/shared-memory-structured-clone.js: Added.
(prepareDatabase):
(async startTests):
(testSharedWebAssemblyMemory):
- storage/indexeddb/shared-memory-structured-clone-expected.txt: Added.
- storage/indexeddb/shared-memory-structured-clone.html: Added.
- 7:19 PM Changeset in webkit [269939] by
-
- 25 edits in trunk
[JSC] Enable static public class fields
https://bugs.webkit.org/show_bug.cgi?id=219058
Reviewed by Saam Barati.
JSTests:
- stress/big-int-as-property-name.js:
- stress/class-fields-bytecode-cache.js:
- stress/class-fields-computed-to-property-key.js:
- stress/class-fields-function-name.js:
- stress/class-fields-harmony.js:
- stress/class-fields-private-use-eval.js:
- stress/class-fields-proxy-define-property.js:
- stress/class-fields-stress-instance.js:
- stress/class-fields-to-property-key-const-string-ftl.js:
- stress/class-fields-to-property-key-const-symbol-ftl.js:
- stress/class-fields-to-property-key-slow-object-tostring-ftl.js:
- stress/class-fields-to-property-key-slow-object-valueof-ftl.js:
- stress/class-fields-to-property-key-string-object-ftl.js:
- stress/class-fields-to-property-key-string-or-string-object-ftl.js:
- stress/class-fields-with-special-names.js:
- stress/generator-syntax.js:
- stress/method-name.js:
- stress/private-name-access-in-computed-property.js:
- test262/config.yaml:
Source/JavaScriptCore:
Let's flip the runtime flag (usePublicStaticClassFields). And we drop usePublicClassFields flag since it is already shipped.
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
- bytecompiler/NodesCodegen.cpp:
(JSC::FunctionCallValueNode::emitBytecode):
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseClass):
- runtime/OptionsList.h:
- 5:31 PM Changeset in webkit [269938] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r269744): ASSERTION FAILED: m_hasValidContentHeight in WebCore::Layout::BoxGeometry::contentBoxHeight()
https://bugs.webkit.org/show_bug.cgi?id=219004
<rdar://problem/71459284>
Reviewed by Antti Koivisto.
Unfortunately we have to disable all percentage height/width content until after the integration codepath is fixed.
(in this case, the layout code assumes that percentage height values can always be resolved by climbing up on the
ancestor chain -worst case scenario we find the ICB which always has fixed height value.
However the integration codepath does not set the height on the fake ICB (RenderBlockFlow) even when the flow's height
is fixed and the IFC code can't climb farther up on the tree)
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForChild):
- 5:24 PM Changeset in webkit [269937] by
-
- 2 edits in trunk/Source/WebCore
Fix for localizableStrings.string in WebCore
https://bugs.webkit.org/show_bug.cgi?id=219060
Unreviewed build fix.
- WebCore.xcodeproj/project.pbxproj:
- 4:49 PM Changeset in webkit [269936] by
-
- 3 edits in trunk/Source/WebCore
Use SetForScope to temporarily change members of TextureMapperPaintOptions instead of copying all members
https://bugs.webkit.org/show_bug.cgi?id=219022
Reviewed by Carlos Garcia Campos.
All members of TextureMapperPaintOptions don't need to be copied
just to change some members. Use WTF::SetForScope to temporarily
change members of TextureMapperPaintOptions.
No behavior changes.
- platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::paintSelf):
(WebCore::TextureMapperLayer::paintSelfAndChildren):
(WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica):
(WebCore::TextureMapperLayer::paintUsingOverlapRegions):
(WebCore::TextureMapperLayer::applyMask):
(WebCore::TextureMapperLayer::paintIntoSurface):
(WebCore::commitSurface):
(WebCore::TextureMapperLayer::paintWithIntermediateSurface):
(WebCore::TextureMapperLayer::paintRecursive):
- platform/graphics/texmap/TextureMapperLayer.h:
- 4:42 PM Changeset in webkit [269935] by
-
- 2 edits in trunk/Source/WebKit
[iOS] ASSERTION FAILED: Completion handler should always be called under WebKit::GPUProcess::didReceiveMessage
https://bugs.webkit.org/show_bug.cgi?id=219055
<rdar://problem/71508223>
Reviewed by Alex Christensen.
Make sure GPUProcess::prepareToSuspend() calls its completion handler to avoid delaying suspension
and avoid assertion hits in debug.
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::prepareToSuspend):
- 4:36 PM Changeset in webkit [269934] by
-
- 2 edits in trunk/Source/WebKit
Make sure ProcessThrottler is always holding a ProcessAssertion for its child process
https://bugs.webkit.org/show_bug.cgi?id=219053
Reviewed by Geoff Garen.
Make sure ProcessThrottler is always holding a ProcessAssertion for its child process. Previously, when changing the assertion
type (e.g. when going from background to foreground) we would release the previous assertion and then take the new one.
RunningBoard developers recommend that we wait until the new ProcessAssertion is taken before we release the previous one to
avoid churn. It is also important we always hold a ProcessAssertion at all times for the child process because the child process
may exit otherwise.
- UIProcess/ProcessThrottler.cpp:
(WebKit::ProcessThrottler::setAssertionType):
- 4:04 PM Changeset in webkit [269933] by
-
- 2 edits in trunk/Source/JavaScriptCore
[CMake] generate_offset_extractor.rb missing build dependency for llint/WebAssembly.asm
https://bugs.webkit.org/show_bug.cgi?id=219043
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-11-17
Reviewed by Don Olmstead.
generate_offset_extractor.rb is missing a build dependency for llint/WebAssembly.asm. If
WebAssembly.asm is modified, generate_offset_extracter.rb needs to be run again.
- CMakeLists.txt:
- 4:00 PM Changeset in webkit [269932] by
-
- 2 edits in trunk/Source/WebCore
Fix for localizableStrings.string in WebCore
https://bugs.webkit.org/show_bug.cgi?id=219056
Unreviewed build fix.
- WebCore.xcodeproj/project.pbxproj:
- 3:53 PM Changeset in webkit [269931] by
-
- 3 edits in trunk/Source/JavaScriptCore
Add more info to the RELEASE_ASSERT inside Parser::parseInner
https://bugs.webkit.org/show_bug.cgi?id=219054
<rdar://problem/71506453>
Reviewed by Mark Lam.
We have some crashes here, and it'll be helpful for the crashlogs to have
more info in the register state.
- parser/Lexer.h:
(JSC::Lexer::codeLength):
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseInner):
- 3:51 PM Changeset in webkit [269930] by
-
- 2 edits in trunk/Source/WTF
Build fails on internal simulator builds due to missing enum kCVPixelFormatType_AGX_420YpCbCr8BiPlanarVideoRange
https://bugs.webkit.org/show_bug.cgi?id=219030
Unreviewed build fix for macCatalyst.
- wtf/PlatformHave.h:
- 3:49 PM Changeset in webkit [269929] by
-
- 15 edits in trunk
Add support for the Wasm i32 sign-extension-ops proposal
https://bugs.webkit.org/show_bug.cgi?id=210302
Patch by Sergey Rubanov <Sergey Rubanov> on 2020-11-17
Reviewed by Yusuke Suzuki.
JSTests:
- wasm/spec-tests/i32.wast.js:
- wasm/spec-tests/i64.wast.js:
- wasm/wasm.json:
Source/JavaScriptCore:
- llint/LowLevelInterpreter.asm:
- llint/WebAssembly.asm:
- offlineasm/arm64.rb:
- offlineasm/cloop.rb:
- offlineasm/instructions.rb:
- offlineasm/x86.rb:
- wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32Extend8S>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32Extend16S>):
- wasm/wasm.json:
LayoutTests:
- workers/wasm-references/test.js:
- 3:30 PM Changeset in webkit [269928] by
-
- 3 edits in trunk/Source/WebKit
[macOS] Stop using RunLoopType=_WebKit starting in Big Sur
https://bugs.webkit.org/show_bug.cgi?id=219052
<rdar://problem/61742969>
Reviewed by Geoffrey Garen.
Stop using RunLoopType=_WebKit starting in Big Sur. This was a temporary hack so that our WebProcesses would get the right
scheduling priority. Starting with Big Sur, the right way to do this is to use _ProcessType=App and restore the RunLoopType
to be NSRunLoop.
After this change, I have verified that the WebContent's main thread still runs at UserInteractive QoS. App Nap is also
still working as expected.
- Configurations/WebContentService.xcconfig:
- WebProcess/EntryPoint/Cocoa/XPCService/WebContentService/Info-OSX.plist:
- 2:59 PM Changeset in webkit [269927] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed build fix for non-unified builds.
- rendering/RenderBox.cpp: Add missing LayoutIntegrationLineIterator.h header.
- 2:39 PM Changeset in webkit [269926] by
-
- 1 copy in tags/Safari-611.1.5.1
Tag Safari-611.1.5.1.
- 2:35 PM Changeset in webkit [269925] by
-
- 8 edits in branches/safari-611.1.5-branch/Source
Versioning.
WebKit-7611.1.5.1
- 2:25 PM Changeset in webkit [269924] by
-
- 3 edits in trunk/Source/WebKit
[macOS] Issue sandbox extension to trust service if Media in the GPU process is not enabled
https://bugs.webkit.org/show_bug.cgi?id=218986
<rdar://problem/71439885>
Reviewed by Brent Fulgham.
Since Media is using the trust service, issue a sandbox extension to the WebContent process if Media in the GPU process is not enabled.
- UIProcess/WebPageProxy.cpp:
(WebKit::mediaRelatedMachServices):
- WebProcess/com.apple.WebProcess.sb.in:
- 2:14 PM Changeset in webkit [269923] by
-
- 10 edits in trunk/Source/WebCore
Implementation of AXCoreObject::innerHTML and outerHTML.
https://bugs.webkit.org/show_bug.cgi?id=219037
Reviewed by Chris Fleizach.
No change in functionality, debugging code.
- Added innerHTML and outerHTmL methods to AXCoreObject for debugging
purposes.
- The AXIsolatedObject implementation of these methods forwards the call
to the associated AXObject and does a lazy caching of the Inner/OuterHTML
properties.
- The AXLogger class is now declared and defined only #if !LOG_DISABLED.
- accessibility/AXLogger.cpp:
(WebCore::AXLogger::log):
(WebCore::operator<<):
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::innerHTML const):
(WebCore::AccessibilityObject::outerHTML const):
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityObjectInterface.h:
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::innerHTML const):
(WebCore::AXIsolatedObject::outerHTML const):
- accessibility/isolatedtree/AXIsolatedObject.h:
- accessibility/isolatedtree/AXIsolatedTree.h:
- accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(-[WebAccessibilityObjectWrapperBase innerHTML]):
(-[WebAccessibilityObjectWrapperBase outerHTML]):
- 1:37 PM Changeset in webkit [269922] by
-
- 17 edits2 adds in trunk
[JSC] Add support for static public class fields
https://bugs.webkit.org/show_bug.cgi?id=194095
Patch by Xan López <Xan Lopez> on 2020-11-17
Reviewed by Yusuke Suzuki.
JSTests:
Enable static public fields, and import new stress tests from the
V8 project. Also split the support code into a separate file
(harmony-support.js) to avoid duplication.
- test262/config.yaml: enable static public fields.
- stress/class-fields-harmony.js: use the new support file.
- stress/class-fields-static-harmony.js: Added.
- stress/resources/harmony-support.js: Added.
Source/JavaScriptCore:
Add support for static public class fields. We can reuse most of
the existing machinery available for instance fields. Like
instance fields, static fields are initialized with a synthetic
function. This is done to allow us to trivially follow the scoping
rules in the spec. As it happens with instance fields this could
be inlined in a future patch.
A lot of small changes in many files are just a matter of doing
s/instance/class/ for variables related to class fields, which
before were assuming there are only instance fields implemented.
- bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::generateUnlinkedFunctionCodeBlock): do s/instanceField/classField/.
- bytecode/UnlinkedFunctionExecutable.h: ditto.
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitNewClassFieldInitializerFunction): ditto.
- bytecompiler/BytecodeGenerator.h: ditto, plus add a parameter
for static field locations in emitDefineClassElements.
- bytecompiler/NodesCodegen.cpp:
(JSC::PropertyListNode::emitBytecode): save static fields
locations when going through the property list.
(JSC::PropertyListNode::emitSaveComputedFieldName): consider
static fields here too.
(JSC::ClassExprNode::emitBytecode): call the initializer for
static fields as the very last action of the class creation.
- parser/ASTBuilder.h:
(JSC::ASTBuilder::createDefineField): field nodes can be static
too now.
- parser/NodeConstructors.h:
(JSC::DefineFieldNode::DefineFieldNode): ditto.
- parser/Nodes.h: ditto.
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseInner): s/instanceField/classField/
(JSC::Parser<LexerType>::parseClass): consider static fields.
(JSC::Parser<LexerType>::parseInstanceFieldInitializerSourceElements):
s/instanceField/classField/, and consider static fields.
- parser/Parser.h:
(JSC::Parser<LexerType>::parse): s/instanceField/classField/
(JSC::parse): ditto.
- runtime/JSFunction.cpp:
(JSC::JSFunction::setFunctionName): s/instanceField/classField/
- runtime/OptionsList.h: add option to enable/disable static public fields.
- 1:14 PM Changeset in webkit [269921] by
-
- 2 edits in trunk/Source/WebCore
[LFC][Integration] Disable percentage type min/max-width/height
https://bugs.webkit.org/show_bug.cgi?id=219045
Reviewed by Antti Koivisto.
The integration layer code does not support them yet.
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForChild):
- 1:05 PM Changeset in webkit [269920] by
-
- 2 edits in trunk/Tools
Big Sur testers fail to find proper archives due to architecture keys.
https://bugs.webkit.org/show_bug.cgi?id=219039
Reviewed by Aakash Jain.
- CISupport/build-webkit-org/config.json:
- 1:01 PM Changeset in webkit [269919] by
-
- 3 edits2 adds1 delete in trunk/Tools
[webkitcorepy] Support mocking request network calls.
https://bugs.webkit.org/show_bug.cgi?id=218927
<rdar://problem/71389720>
Rubber-stamped by Aakash Jain.
- Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Bump version.
- Scripts/libraries/webkitcorepy/webkitcorepy/mocks/init.py:
- Scripts/libraries/webkitcorepy/webkitcorepy/mocks/requests.py: Moved to requests_.
- Scripts/libraries/webkitcorepy/webkitcorepy/mocks/requests_.py: Copied from Tools/Scripts/libraries/webkitcorepy/webkitcorepy/mocks/requests.py.
(Response): Object mimicking the structure of Requests's response object, useful for mocking.
(Requests): Context manager which will intercept http and https requests to a specific host.
(Requests.exit):
- Scripts/libraries/webkitcorepy/webkitcorepy/tests/mocks/requests_unittest.py: Added.
(MockRequests):
(MockRequests.test_basic):
(MockRequests.test_fallback):
- 1:00 PM Changeset in webkit [269918] by
-
- 15 edits1 delete in trunk/Source
Add a default action for SpeechRecognition permission request
https://bugs.webkit.org/show_bug.cgi?id=219021
Reviewed by Youenn Fablet.
Source/WebCore:
Manually tested in Minibrowser.
- en.lproj/Localizable.strings:
Source/WebKit:
When there is no delegate or selector for deciding user permission on speech recognition, force an alert and let
user decide. This is currently what we do for UserMedia permission request, and it makes testing easier.
- SourcesCocoa.txt:
- UIProcess/API/APIUIClient.h:
(API::UIClient::decidePolicyForSpeechRecognitionPermissionRequest):
- UIProcess/Cocoa/MediaPermissionUtilities.mm:
(WebKit::visibleDomain):
(WebKit::alertMessageText):
(WebKit::allowButtonText):
(WebKit::doNotAllowButtonText):
(WebKit::alertForPermission):
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::decidePolicyForSpeechRecognitionPermissionRequest):
- UIProcess/Cocoa/UserMediaPermissionRequestProxy.mm: Removed. Moved alert code to MediaPermissionUtilities so
it can be shared between UserMedia and SpeechRecognition.
- UIProcess/MediaPermissionUtilities.h:
- UIProcess/SpeechRecognitionPermissionManager.cpp:
(WebKit::SpeechRecognitionPermissionManager::decideByDefaultAction):
- UIProcess/SpeechRecognitionPermissionManager.h:
- UIProcess/UserMediaPermissionRequestProxy.cpp:
(WebKit::UserMediaPermissionRequestProxy::doDefaultAction):
- UIProcess/UserMediaPermissionRequestProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestSpeechRecognitionPermissionByDefaultAction):
- UIProcess/WebPageProxy.h:
- WebKit.xcodeproj/project.pbxproj:
- 12:25 PM Changeset in webkit [269917] by
-
- 3 edits in trunk/Source/WebKit
Check com.apple.private.webkit.use-xpc-endpoint only on internal builds
https://bugs.webkit.org/show_bug.cgi?id=215423
Patch by Saagar Jha <saagar@saagarjha.com> on 2020-11-17
Reviewed by Per Arne Vollan.
Signing with com.apple.private entitlements can only be done by Apple internally. Thus,
it should only checked for internal builds.
- Shared/Cocoa/XPCEndpoint.mm:
(WebKit::XPCEndpoint::XPCEndpoint): Wrap check in USE(APPLE_INTERNAL_SDK).
- Shared/Cocoa/XPCEndpointClient.mm:
(WebKit::XPCEndpointClient::setEndpoint): Wrap check in USE(APPLE_INTERNAL_SDK).
- 12:24 PM Changeset in webkit [269916] by
-
- 11 edits in trunk/Source/WebCore
[LFC][Integration] Cache inline boxes in logical order to run iterator
https://bugs.webkit.org/show_bug.cgi?id=219031
Reviewed by Zalan Bujtas.
Expand use of the existing cache to cover line traversal. This will make porting code in VisibleUnit.cpp to iterator easier.
Also a bunch of related cleanups.
- layout/integration/LayoutIntegrationLineIterator.cpp:
(WebCore::LayoutIntegration::LineIterator::logicalStartRun const):
(WebCore::LayoutIntegration::LineIterator::logicalEndRun const):
(WebCore::LayoutIntegration::LineIterator::logicalStartRunWithNode const):
(WebCore::LayoutIntegration::LineIterator::logicalEndRunWithNode const):
- layout/integration/LayoutIntegrationLineIterator.h:
- layout/integration/LayoutIntegrationLineIteratorLegacyPath.h:
(WebCore::LayoutIntegration::LineIteratorLegacyPath::logicalStartRun const):
(WebCore::LayoutIntegration::LineIteratorLegacyPath::logicalEndRun const):
(WebCore::LayoutIntegration::LineIteratorLegacyPath::logicalStartRunWithNode const): Deleted.
(WebCore::LayoutIntegration::LineIteratorLegacyPath::logicalEndRunWithNode const): Deleted.
- layout/integration/LayoutIntegrationLineIteratorModernPath.h:
(WebCore::LayoutIntegration::LineIteratorModernPath::logicalStartRun const):
(WebCore::LayoutIntegration::LineIteratorModernPath::logicalEndRun const):
(WebCore::LayoutIntegration::LineIteratorModernPath::logicalStartRunWithNode const): Deleted.
(WebCore::LayoutIntegration::LineIteratorModernPath::logicalEndRunWithNode const): Deleted.
- layout/integration/LayoutIntegrationRunIterator.cpp:
(WebCore::LayoutIntegration::RunIterator::traverseNextOnLineInLogicalOrder):
(WebCore::LayoutIntegration::RunIterator::traversePreviousOnLineInLogicalOrder):
(WebCore::LayoutIntegration::firstTextRunInTextOrderFor):
- layout/integration/LayoutIntegrationRunIterator.h:
- layout/integration/LayoutIntegrationRunIteratorLegacyPath.h:
(WebCore::LayoutIntegration::RunIteratorLegacyPath::RunIteratorLegacyPath):
(WebCore::LayoutIntegration::RunIteratorLegacyPath::traverseNextTextRunInTextOrder):
(WebCore::LayoutIntegration::RunIteratorLegacyPath::traverseNextOnLineInLogicalOrder):
(WebCore::LayoutIntegration::RunIteratorLegacyPath::traversePreviousOnLineInLogicalOrder):
(WebCore::LayoutIntegration::RunIteratorLegacyPath::inlineTextBox const):
(WebCore::LayoutIntegration::RunIteratorLegacyPath::initializeLogicalOrderCacheForLine):
(WebCore::LayoutIntegration::RunIteratorLegacyPath::traverseNextInlineBoxInCacheOrder):
(WebCore::LayoutIntegration::RunIteratorLegacyPath::traversePreviousInlineBoxInCacheOrder):
(WebCore::LayoutIntegration::RunIteratorLegacyPath::nextInlineTextBoxInTextOrder const): Deleted.
- layout/integration/LayoutIntegrationRunIteratorModernPath.h:
(WebCore::LayoutIntegration::RunIteratorModernPath::traverseNextOnLineInLogicalOrder):
(WebCore::LayoutIntegration::RunIteratorModernPath::traversePreviousOnLineInLogicalOrder):
- rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::getLogicalStartBoxWithNode const): Deleted.
(WebCore::RootInlineBox::getLogicalEndBoxWithNode const): Deleted.
- rendering/RootInlineBox.h:
- 11:34 AM Changeset in webkit [269915] by
-
- 2 edits in trunk/Source/WebCore
Speculative fix for localizableStrings.string in WebCore
https://bugs.webkit.org/show_bug.cgi?id=219042
Unreviewed build fix.
- WebCore.xcodeproj/project.pbxproj:
- 11:04 AM Changeset in webkit [269914] by
-
- 6 edits in trunk/Source/WebCore
[Web Animations] Move all effect-specific parts of WebAnimation::timeToNextTick() to effect classes
https://bugs.webkit.org/show_bug.cgi?id=219028
Reviewed by Antti Koivisto.
Most of WebAnimation::timeToNextTick() is code that is specific to effects. We move this code out to
KeyframeEffect and a virtual method with a default implementation on AnimationEffect. This is the first
step towards adding more smarts to this method such as avoiding style recalcs if there are no keyframes
set up on a KeyframeEffect or running fewer style recalcs when animating a discrete property.
No new tests since this we are just moving code around.
- animation/AnimationEffect.h:
(WebCore::AnimationEffect::timeToNextTick const):
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::timeToNextTick const):
- animation/KeyframeEffect.h:
(WebCore::KeyframeEffect::isCompletelyAccelerated const): Make this method private since it is now only
called by KeyframeEffect.
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::timeToNextTick const):
(WebCore::WebAnimation::isCompletelyAccelerated const): Deleted. This method no longer has any call sites.
- animation/WebAnimation.h:
- 10:59 AM Changeset in webkit [269913] by
-
- 5 edits12 adds in trunk
[iOS][FCR] Add new look for checkboxes
https://bugs.webkit.org/show_bug.cgi?id=218808
<rdar://problem/71286037>
Reviewed by Wenson Hsieh.
Source/WebCore:
Tests: fast/forms/ios/form-control-refresh/checkbox/border.html
fast/forms/ios/form-control-refresh/checkbox/checked-appearance.html
fast/forms/ios/form-control-refresh/checkbox/ignored-properties.html
fast/forms/ios/form-control-refresh/checkbox/indeterminate-appearance.html
fast/forms/ios/form-control-refresh/checkbox/width-height.html
- css/iOSFormControlRefresh.css:
(input[type="checkbox"]):
Use "border: initial" and "box-sizing: border-box" to match macOS, now
that the native checkbox styles on macOS and iOS are similar.
- rendering/RenderThemeIOS.h:
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::paintCheckboxDecorations):
Move away from using paintCheckboxDecorations to paintCheckbox for the
new design. This is necessary to avoid painting custom borders and
backgrounds for native checkboxes, matching macOS. Painting both a
CSS background as well as the native checkbox can lead to background
bleeding. Customizations can still be made using "-webkit-appearance: none".
(WebCore::RenderThemeIOS::paintCheckbox):
A new implementation for painting checkboxes to match the updated
design. The checkmark drawing was generated using SF Symbols.
LayoutTests:
Added tests to verify the stylability of native checkboxes and to verify
that different checkbox states are painted with a different appearance.
- fast/forms/ios/form-control-refresh/checkbox/border-expected-mismatch.html: Added.
- fast/forms/ios/form-control-refresh/checkbox/border.html: Added.
- fast/forms/ios/form-control-refresh/checkbox/checked-appearance-expected-mismatch.html: Added.
- fast/forms/ios/form-control-refresh/checkbox/checked-appearance.html: Added.
- fast/forms/ios/form-control-refresh/checkbox/ignored-properties-expected.html: Added.
- fast/forms/ios/form-control-refresh/checkbox/ignored-properties.html: Added.
- fast/forms/ios/form-control-refresh/checkbox/indeterminate-appearance-expected-mismatch.html: Added.
- fast/forms/ios/form-control-refresh/checkbox/indeterminate-appearance.html: Added.
- fast/forms/ios/form-control-refresh/checkbox/width-height-expected-mismatch.html: Added.
- fast/forms/ios/form-control-refresh/checkbox/width-height.html: Added.
- 10:06 AM Changeset in webkit [269912] by
-
- 8 edits in trunk
[LFC][Integration] Add even more integral snapping to inline level boxes
https://bugs.webkit.org/show_bug.cgi?id=219011
Reviewed by Antti Koivisto.
It is required to match current legacy inline geometries.
- layout/inlineformatting/InlineLineBox.cpp:
(WebCore::Layout::LineBox::InlineLevelBox::setLogicalTop):
(WebCore::Layout::LineBox::InlineLevelBox::setLogicalHeight):
- layout/inlineformatting/InlineLineBox.h:
(WebCore::Layout::LineBox::InlineLevelBox::setLogicalTop): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::setLogicalHeight): Deleted.
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::updateLayoutBoxDimensions):
- 9:56 AM Changeset in webkit [269911] by
-
- 3 edits in trunk/Source/WebKit
[macOS] Remove access to the unused AppleSNBFBUserClient IOKit class
https://bugs.webkit.org/show_bug.cgi?id=219014
<rdar://problem/70463873>
Reviewed by Eric Carlson.
Although we originally thought this was needed for H.264 decoding, testing shows
that this class is never used in WebKit flows, and is not needed. We should remove it.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- WebProcess/com.apple.WebProcess.sb.in:
- 9:53 AM Changeset in webkit [269910] by
-
- 3 edits2 adds in branches/safari-611.1.6-branch
Cherry-pick r269895. rdar://problem/71490402
REGRESSION (r269824): YouTube media control bar sometimes flickers
https://bugs.webkit.org/show_bug.cgi?id=219017
<rdar://problem/71454799>
Reviewed by Simon Fraser.
Source/WebKit:
Test: compositing/repaint/transparent-layer-repaint.html
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: (WebKit::RemoteLayerBackingStore::display): I accidentally lost the Copy composite operator in r269824, causing the repaint copy-forward to blend instead of just copying. This wreaks havoc on layers with contents with colors that have 0 < alpha < 1, because every repaint means the colors intensify.
LayoutTests:
- compositing/repaint/transparent-layer-repaint-expected.html: Added.
- compositing/repaint/transparent-layer-repaint.html: Added.
Add a test that:
- repaints a backingstoreful compositing layer
- more than once
- in a small enough area that we use partial repaint
- with partially-transparent pixels
And then ensures that the background of that layer (the non-repainted part)
remains the color that it should.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@269895 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:38 AM Changeset in webkit [269909] by
-
- 6 edits in trunk/Source/WebCore
REGRESSION(r269579) [WPE] Many tests with scrolling flaky after this revision
https://bugs.webkit.org/show_bug.cgi?id=218859
Reviewed by Simon Fraser.
Set scrolling node ID correctly on CoordinatedGraphicsLayer.
- page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::commitStateBeforeChildren):
- page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:
- page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h:
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::setScrollingNodeID):
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
- 9:28 AM Changeset in webkit [269908] by
-
- 3 edits in trunk/Source/WebKit
[iOS] Stop leaking an XPC transaction in our XPC services
https://bugs.webkit.org/show_bug.cgi?id=219036
Reviewed by Geoffrey Garen.
Stop leaking an XPC transaction in our XPC services on iOS. We were doing this to control the lifetime of our child services
ourselves. However, this is not needed on iOS because the UIProcess takes RunningBoard process assertions on behalf of its
child processes.
I have verified that our child processes do not exit/jetsam early. I have verified that our child processes are in the
correct jetsam band (IDLE/0 when background and FG/10 when foreground). I have also verified that the main thread of these
processes runs at UserInitiated QoS before and after this change.
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:
(WebKit::XPCServiceInitializer):
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:
(WebKit::XPCServiceExit):
- 9:25 AM Changeset in webkit [269907] by
-
- 48 edits5 copies8 adds in trunk/Source
[Media In GPU Process][MSE] Add infrastructure needed to run MediaPlayerPrivateMediaSourceAVFObjC in the GPU process
https://bugs.webkit.org/show_bug.cgi?id=218912
Reviewed by Eric Carlson.
Source/WebCore:
This patch makes the MSE version of MediaPlayer::load() the same as the one in MediaPlayerPrivate
to support running MSE MediaPlayerPrivate(s) in the GPU process.
No new tests, no functional change yet.
- Headers.cmake:
- Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::createSourceBufferPrivate):
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::appendBufferTimerFired):
(WebCore::SourceBuffer::sourceBufferPrivateAppendComplete):
- WebCore.xcodeproj/project.pbxproj:
- platform/ContentType.h:
- platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::load):
(WebCore::MediaPlayer::loadWithNextMediaEngine):
- platform/graphics/MediaPlayer.h:
- platform/graphics/MediaPlayerPrivate.h:
- platform/graphics/MediaSourcePrivate.h:
- platform/graphics/SourceBufferPrivateClient.h:
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::load):
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::load):
- platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
(WebCore::MediaSourcePrivateAVFObjC::addSourceBuffer):
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::appendCompleted):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::load):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
- platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::load):
- platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
- platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:
(WebCore::PlaybackPipeline::addSourceBuffer):
- platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:
(WebCore::SourceBufferPrivateGStreamer::didReceiveAllPendingSamples):
(WebCore::SourceBufferPrivateGStreamer::appendParsingFailed):
- platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
(WebCore::MockMediaPlayerMediaSource::load):
- platform/mock/mediasource/MockMediaPlayerMediaSource.h:
- platform/mock/mediasource/MockMediaSourcePrivate.cpp:
(WebCore::MockMediaSourcePrivate::addSourceBuffer):
- platform/mock/mediasource/MockSourceBufferPrivate.cpp:
(WebCore::MockSourceBufferPrivate::append):
Source/WebKit:
Add MediaSourcePrivateRemote/RemoteMediaSourceProxy and SourceBufferPrivateRemote/RemoteSourceBufferProxy,
and setup IPC connections for them.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- GPUProcess/GPUProcessSessionParameters.h:
- GPUProcess/media/RemoteLegacyCDMFactoryProxy.cpp:
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::loadMediaSource):
- GPUProcess/media/RemoteMediaPlayerProxy.h:
- GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
- GPUProcess/media/RemoteMediaSourceProxy.cpp: Added.
(WebKit::RemoteMediaSourceProxy::RemoteMediaSourceProxy):
(WebKit::RemoteMediaSourceProxy::~RemoteMediaSourceProxy):
(WebKit::RemoteMediaSourceProxy::setPrivateAndOpen):
(WebKit::RemoteMediaSourceProxy::duration const):
(WebKit::RemoteMediaSourceProxy::buffered const):
(WebKit::RemoteMediaSourceProxy::seekToTime):
(WebKit::RemoteMediaSourceProxy::monitorSourceBuffers):
(WebKit::RemoteMediaSourceProxy::setLogIdentifier):
(WebKit::RemoteMediaSourceProxy::failedToCreateRenderer):
(WebKit::RemoteMediaSourceProxy::addSourceBuffer):
- GPUProcess/media/RemoteMediaSourceProxy.h: Added.
- GPUProcess/media/RemoteMediaSourceProxy.messages.in: Added.
- GPUProcess/media/RemoteSourceBufferIdentifier.h: Added.
- GPUProcess/media/RemoteSourceBufferProxy.cpp: Added.
(WebKit::RemoteSourceBufferProxy::create):
(WebKit::RemoteSourceBufferProxy::RemoteSourceBufferProxy):
(WebKit::RemoteSourceBufferProxy::~RemoteSourceBufferProxy):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidReceiveInitializationSegment):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidReceiveSample):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateHasAudio const):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateHasVideo const):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateReenqueSamples):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidBecomeReadyForMoreSamples):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateFastSeekTimeForMediaTime):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateAppendComplete):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidReceiveRenderingError):
(WebKit::RemoteSourceBufferProxy::append):
- GPUProcess/media/RemoteSourceBufferProxy.h: Added.
- GPUProcess/media/RemoteSourceBufferProxy.messages.in: Added.
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp:
- Scripts/webkit/messages.py:
- Sources.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::load):
(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote::load): Deleted.
- WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
- WebProcess/GPU/media/MediaSourcePrivateRemote.cpp: Added.
(WebKit::MediaSourcePrivateRemote::create):
(WebKit::MediaSourcePrivateRemote::MediaSourcePrivateRemote):
(WebKit::MediaSourcePrivateRemote::~MediaSourcePrivateRemote):
(WebKit::MediaSourcePrivateRemote::addSourceBuffer):
(WebKit::MediaSourcePrivateRemote::durationChanged):
(WebKit::MediaSourcePrivateRemote::markEndOfStream):
(WebKit::MediaSourcePrivateRemote::unmarkEndOfStream):
(WebKit::MediaSourcePrivateRemote::readyState const):
(WebKit::MediaSourcePrivateRemote::setReadyState):
(WebKit::MediaSourcePrivateRemote::waitForSeekCompleted):
(WebKit::MediaSourcePrivateRemote::seekCompleted):
(WebKit::MediaSourcePrivateRemote::logChannel const):
- WebProcess/GPU/media/MediaSourcePrivateRemote.h: Added.
- WebProcess/GPU/media/RemoteCDMConfiguration.h:
- WebProcess/GPU/media/RemoteCDMInstanceConfiguration.h:
- WebProcess/GPU/media/RemoteMediaPlayerManager.h:
- WebProcess/GPU/media/RemoteMediaSourceIdentifier.h: Added.
- WebProcess/GPU/media/SourceBufferPrivateRemote.cpp: Added.
(WebKit::SourceBufferPrivateRemote::create):
(WebKit::SourceBufferPrivateRemote::SourceBufferPrivateRemote):
(WebKit::SourceBufferPrivateRemote::~SourceBufferPrivateRemote):
(WebKit::SourceBufferPrivateRemote::setClient):
(WebKit::SourceBufferPrivateRemote::append):
(WebKit::SourceBufferPrivateRemote::abort):
(WebKit::SourceBufferPrivateRemote::resetParserState):
(WebKit::SourceBufferPrivateRemote::removedFromMediaSource):
(WebKit::SourceBufferPrivateRemote::readyState const):
(WebKit::SourceBufferPrivateRemote::setReadyState):
(WebKit::SourceBufferPrivateRemote::flush):
(WebKit::SourceBufferPrivateRemote::enqueueSample):
(WebKit::SourceBufferPrivateRemote::isReadyForMoreSamples):
(WebKit::SourceBufferPrivateRemote::setActive):
(WebKit::SourceBufferPrivateRemote::notifyClientWhenReadyForMoreSamples):
(WebKit::SourceBufferPrivateRemote::canSetMinimumUpcomingPresentationTime const):
(WebKit::SourceBufferPrivateRemote::setMinimumUpcomingPresentationTime):
(WebKit::SourceBufferPrivateRemote::clearMinimumUpcomingPresentationTime):
(WebKit::SourceBufferPrivateRemote::canSwitchToType):
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateAppendComplete):
(WebKit::SourceBufferPrivateRemote::logChannel const):
- WebProcess/GPU/media/SourceBufferPrivateRemote.h: Added.
- WebProcess/GPU/media/SourceBufferPrivateRemote.messages.in: Added.
- 9:21 AM Changeset in webkit [269906] by
-
- 7 edits in trunk/Source
[macOS] Perform AX TCC check in the UI process
https://bugs.webkit.org/show_bug.cgi?id=218870
<rdar://problem/71339830>
Reviewed by Brent Fulgham.
Source/WebCore/PAL:
Add typedef for TCC authentication callback.
- pal/spi/mac/HIServicesSPI.h:
Source/WebKit:
On behalf of the WebContent process, perform AX TCC check in the UI process on macOS.
This is in preparation of blocking tccd in the WebContent process.
No new tests. It has been manually tested that the WebContent process is allowing VoiceOver
to perform AX requests with this patch.
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::isAXAuthenticated):
- UIProcess/WebProcessProxy.h:
- UIProcess/WebProcessProxy.messages.in:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::isAXAuthenticatedCallback):
(WebKit::WebProcess::platformInitializeWebProcess):
- 9:09 AM Changeset in webkit [269905] by
-
- 2 edits in trunk/Source/WebKit
[Cocoa] _WKInspectorExtensionHost should conform to NSObject protocol
https://bugs.webkit.org/show_bug.cgi?id=219035
Reviewed by Alex Christensen.
This was overlooked in the initial patch. Without it, we can't call -isEqual: and
similar basic methods on a type of id<_WKInspectorExtensionHost>.
- UIProcess/API/Cocoa/_WKInspectorExtensionHost.h:
- 9:07 AM Changeset in webkit [269904] by
-
- 2 edits in trunk/Tools
[build.webkit.org] Update ExtractTestResults step for new buildbot (follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=218759
<rdar://problem/71246754>
Unreviewed minor follow-up fix.
- CISupport/build-webkit-org/steps.py:
(ExtractTestResults):
- 8:38 AM Changeset in webkit [269903] by
-
- 2 edits in trunk/LayoutTests
REGRESSION(r269227) [GTK] editing/selection/navigation-clears-editor-state.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=219019
Reviewed by Chris Dumez.
Apply a similar fix to what was done in
requestidlecallback/requestidlecallback-document-gc.html in the
original revision, giving the timers a spin to allow the released
documents to be collected.
- editing/selection/navigation-clears-editor-state.html:
- 8:29 AM Changeset in webkit [269902] by
-
- 3 edits2 adds in trunk
Null check anchorNode of endingSelection start
https://bugs.webkit.org/show_bug.cgi?id=218492
Patch by Rob Buis <rbuis@igalia.com> on 2020-11-17
Reviewed by Alex Christensen.
Source/WebCore:
Null check anchorNode of endingSelection start.
Test: editing/deleting/delete-contenteditable-crash.html
- editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::mergeParagraphs):
LayoutTests:
Add testcase.
- editing/deleting/delete-contenteditable-crash-expected.txt: Added.
- editing/deleting/delete-contenteditable-crash.html: Added.
- 8:04 AM Changeset in webkit [269901] by
-
- 2 edits in trunk/Source/WebKit
Preemptive build fix for https://bugs.webkit.org/show_bug.cgi?id=219024
- UIProcess/ios/forms/WKAirPlayRoutePicker.mm:
(SOFT_LINK_CLASS):
(-[WKAirPlayRoutePicker show:fromRect:]):
- 7:31 AM Changeset in webkit [269900] by
-
- 6 edits in trunk/Source
Build fails on internal simulator builds due to missing enum kCVPixelFormatType_AGX_420YpCbCr8BiPlanarVideoRange
https://bugs.webkit.org/show_bug.cgi?id=219030
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-11-17
Reviewed by Antti Koivisto.
Fix compile for simulator builds.
Rename HAVE_CV_AGX_420_PIXEL_FORMAT_TYPES to
HAVE_COREVIDEO_COMPRESSED_PIXEL_FORMAT_TYPES to better reflect what the ifdef does.
Source/WebCore:
- platform/graphics/cv/GraphicsContextGLCVANGLE.cpp:
(WebCore::pixelRangeFromPixelFormat):
(WebCore::GraphicsContextGLCVANGLE::copyPixelBufferToTexture):
Source/WebCore/PAL:
- pal/spi/cf/CoreVideoSPI.h:
Source/WTF:
- wtf/PlatformHave.h:
- 7:25 AM WebKitGTK/2.30.x edited by
- (diff)
- 6:48 AM Changeset in webkit [269899] by
-
- 2 edits in trunk/Source/WebCore
More non-unified build fixes
https://bugs.webkit.org/show_bug.cgi?id=219029
Unreviewed.
- rendering/RenderLayerBacking.cpp:
- 6:07 AM Changeset in webkit [269898] by
-
- 4 edits in trunk/Source
Build fails on internal Catalina due to missing enum kCVPixelFormatType_AGX_420YpCbCr8BiPlanarVideoRange
https://bugs.webkit.org/show_bug.cgi?id=219026
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-11-17
Reviewed by Antti Koivisto.
Fix compile for macOS versions before Big Sur.
On macOS, only use the private header on Big Sur. On Catalina, use the
manual enums.
Regressed in:
Textures Fail to Render in WebGL from HLS Stream on iPhone 12 [iOS 14.2]
- pal/spi/cf/CoreVideoSPI.h:
- 4:56 AM Changeset in webkit [269897] by
-
- 2 edits in trunk/Source/WTF
Make <model> disabled by default everywhere
https://bugs.webkit.org/show_bug.cgi?id=219027
Reviewed by Devin Rousso.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 2:43 AM Changeset in webkit [269896] by
-
- 2 edits in trunk/LayoutTests
Clean up title-text-property.html
https://bugs.webkit.org/show_bug.cgi?id=219025
Patch by Rob Buis <rbuis@igalia.com> on 2020-11-17
Reviewed by Žan Doberšek.
Remove unused test function, it seems this was added
for debugging purposes.
- fast/dom/title-text-property.html:
- 12:28 AM Changeset in webkit [269895] by
-
- 3 edits2 adds in trunk
REGRESSION (r269824): YouTube media control bar sometimes flickers
https://bugs.webkit.org/show_bug.cgi?id=219017
<rdar://problem/71454799>
Reviewed by Simon Fraser.
Source/WebKit:
Test: compositing/repaint/transparent-layer-repaint.html
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::display):
I accidentally lost the Copy composite operator in r269824, causing
the repaint copy-forward to blend instead of just copying.
This wreaks havoc on layers with contents with colors that have 0 < alpha < 1,
because every repaint means the colors intensify.
LayoutTests:
- compositing/repaint/transparent-layer-repaint-expected.html: Added.
- compositing/repaint/transparent-layer-repaint.html: Added.
Add a test that:
- repaints a backingstoreful compositing layer
- more than once
- in a small enough area that we use partial repaint
- with partially-transparent pixels
And then ensures that the background of that layer (the non-repainted part)
remains the color that it should.
- 12:22 AM Changeset in webkit [269894] by
-
- 3 edits2 adds in trunk
Check whether destination still can be selected
https://bugs.webkit.org/show_bug.cgi?id=218491
Patch by Rob Buis <rbuis@igalia.com> on 2020-11-17
Reviewed by Ryosuke Niwa.
Source/WebCore:
Check whether destination still can be selected
after deletion.
Test: editing/deleting/delete-selection-crash.html
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs):
LayoutTests:
Add testcase.
- editing/deleting/delete-selection-crash-expected.txt: Added.
- editing/deleting/delete-selection-crash.html: Added.