Timeline
Jan 20, 2020:
- 11:21 PM Changeset in webkit [254844] by
-
- 2 edits8 adds in trunk/LayoutTests
[GTK] Gardening, update TestExpectations and baselines
https://bugs.webkit.org/show_bug.cgi?id=206501
Unreviewed gardening.
- platform/gtk/TestExpectations:
- platform/gtk/compositing/visibility/visibility-change-in-subframe-expected.txt: Added.
- platform/gtk/editing/input/scroll-to-edge-if-line-break-at-end-of-document-contenteditable-expected.txt: Added.
- platform/gtk/fast/block/basic/fieldset-stretch-to-legend-expected.txt: Added.
- platform/gtk/js/dom/navigator-maxtouchpoints-expected.txt: Added.
- platform/gtk/svg/W3C-SVG-1.1/color-prop-02-f-expected.txt: Added.
- platform/gtk/svg/W3C-SVG-1.1/color-prop-03-t-expected.txt: Added.
- platform/gtk/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt: Added.
- platform/gtk/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt: Added.
- 8:01 PM Changeset in webkit [254843] by
-
- 40 edits in trunk
Platform.h is out of control Part 8: Macros are used inconsistently
https://bugs.webkit.org/show_bug.cgi?id=206425
Reviewed by Darin Adler.
Source/bmalloc:
- bmalloc/BPlatform.h:
Update OS_EFFECTIVE_ADDRESS_WIDTH to match WTF definition, add needed OS macros.
Source/JavaScriptCore:
- assembler/ARM64Assembler.h:
(JSC::ARM64Assembler::cacheFlush):
(JSC::ARM64Assembler::xOrSp):
(JSC::ARM64Assembler::xOrZr):
- assembler/ARM64Registers.h:
- assembler/ARMv7Assembler.h:
(JSC::ARMv7Assembler::cacheFlush):
- assembler/ARMv7Registers.h:
- assembler/AssemblerCommon.h:
(JSC::isDarwin):
- b3/air/AirCCallingConvention.cpp:
- jit/ExecutableAllocator.h:
- jit/ThunkGenerators.cpp:
- jsc.cpp:
- runtime/MathCommon.cpp:
Use OS(DARWIN) more consistently for darwin level functionality.
- bytecode/CodeOrigin.h:
- runtime/JSString.h:
Update to use OS_CONSTANT.
- disassembler/ARM64/A64DOpcode.cpp:
- disassembler/ARM64Disassembler.cpp:
- disassembler/UDis86Disassembler.cpp:
- disassembler/UDis86Disassembler.h:
- disassembler/X86Disassembler.cpp:
- disassembler/udis86/udis86.c:
- disassembler/udis86/udis86_decode.c:
- disassembler/udis86/udis86_itab_holder.c:
- disassembler/udis86/udis86_syn-att.c:
- disassembler/udis86/udis86_syn-intel.c:
- disassembler/udis86/udis86_syn.c:
- interpreter/Interpreter.cpp:
- interpreter/Interpreter.h:
- interpreter/InterpreterInlines.h:
(JSC::Interpreter::getOpcodeID):
- llint/LowLevelInterpreter.cpp:
- tools/SigillCrashAnalyzer.cpp:
Switch to using ENABLE rather than USE for features internal to WebKit
Source/WTF:
Start addressing FIXMEs added to Platform.h (and helper files) during previous
cleanup work.
- Renames WTF_CPU_EFFECTIVE_ADDRESS_WIDTH to WTF_OS_CONSTANT_EFFECTIVE_ADDRESS_WIDTH, making it available via new macro OS_CONSTANT(...), and syncs bmalloc redefinition.
- Renames:
USE_LLINT_EMBEDDED_OPCODE_ID to ENABLE_LLINT_EMBEDDED_OPCODE_ID
USE_UDIS86 to ENABLE_UDIS86
USE_ARM64_DISASSEMBLER to ENABLE_ARM64_DISASSEMBLER
Enable is more appropriate here as these enable functionality within webkit.
- Removes undefs that are no longer needed due to only defining the macro once now.
- Removes dead defined(LP64) check after PLATFORM(MAC) macOS is always 64-bit these days.
- wtf/Packed.h:
(WTF::alignof):
- wtf/Platform.h:
- wtf/PlatformEnable.h:
- wtf/PlatformOS.h:
- wtf/WTFAssertions.cpp:
- wtf/text/StringCommon.h:
Tools:
- TestWebKitAPI/Tests/WTF/Packed.cpp:
(TestWebKitAPI::TEST):
Update to use OS_CONSTANT.
- 7:48 PM Changeset in webkit [254842] by
-
- 9 edits1 add in trunk
Remove own toString from NativeError prototype
https://bugs.webkit.org/show_bug.cgi?id=204629
Patch by Gus Caplan <me@gus.host> on 2020-01-20
Reviewed by Ross Kirsling.
NativeError prototypes are expected to inherit toString from
Error.prototype. See https://github.com/tc39/ecma262/issues/1794
for additional details.
JSTests:
- stress/nativeerror-prototype-tostring.js:
Source/JavaScriptCore:
- runtime/ErrorPrototype.cpp:
(JSC::ErrorPrototypeBase::ErrorPrototypeBase):
(JSC::ErrorPrototypeBase::finishCreation):
(JSC::ErrorPrototype::ErrorPrototype):
(JSC::ErrorPrototype::create): Deleted.
(JSC::ErrorPrototype::finishCreation): Deleted.
- runtime/ErrorPrototype.h:
(JSC::ErrorPrototype::createStructure): Deleted.
- runtime/NativeErrorPrototype.cpp:
(JSC::NativeErrorPrototype::NativeErrorPrototype):
- runtime/NativeErrorPrototype.h:
LayoutTests:
- http/tests/security/regress-52192-expected.txt:
- http/tests/security/regress-52192.html:
- 6:54 PM Changeset in webkit [254841] by
-
- 9 edits6 adds in trunk
EXIF orientation is ignored for some CSS images
https://bugs.webkit.org/show_bug.cgi?id=203355
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-01-20
Reviewed by Simon Fraser.
Source/WebCore:
Unlike GraphicsContext::drawNativeImage(), GraphicsContext::drawPattern()
can't change the coordinates system before drawing the image to respect
the EXIF orientation. Drawing a pattern tries to fill the destination
rectangle with the image according to the GraphicsContext origin and the
direction of its axes. So we need to create temporary NativeImage with
respecting the EXIF orientation and then use it to draw the pattern.
Tests: fast/images/exif-orientation-background-image-no-repeat.html
fast/images/exif-orientation-background-image-repeat.html
fast/images/exif-orientation-border-image.html
- platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::nativeImageForCurrentFrameRespectingOrientation):
(WebCore::BitmapImage::drawPattern):
- platform/graphics/BitmapImage.h:
- platform/graphics/Image.h:
(WebCore::Image::nativeImage):
(WebCore::Image::nativeImageForCurrentFrameRespectingOrientation):
(WebCore::Image::nativeImageOfSize):
- platform/graphics/ImageBuffer.h:
- platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawPattern):
- platform/graphics/cg/NativeImageCG.cpp:
(WebCore::drawNativeImage):
- rendering/style/NinePieceImage.cpp:
(WebCore::NinePieceImage::paint const):
LayoutTests:
- fast/images/exif-orientation-background-image-no-repeat-expected.html: Added.
- fast/images/exif-orientation-background-image-no-repeat.html: Added.
- fast/images/exif-orientation-background-image-repeat-expected.html: Added.
- fast/images/exif-orientation-background-image-repeat.html: Added.
- fast/images/exif-orientation-border-image-expected.html: Added.
- fast/images/exif-orientation-border-image.html: Added.
- 5:48 PM Changeset in webkit [254840] by
-
- 2 edits in trunk/Source/WebCore
Update status of Resize Observer to "Supported In Preview"
https://bugs.webkit.org/show_bug.cgi?id=206513
Reviewed by Darin Adler.
No new tests. Just updating status.
- features.json: Update Resize Observer to "Supported In Preview"
- 5:35 PM Changeset in webkit [254839] by
-
- 47 edits in trunk
Unreviewed, rolling out r254807.
Breaks Apple internal builds.
Reverted changeset:
"Add support for scroll behavior relies on ScrollAnimation of
the Web process"
https://bugs.webkit.org/show_bug.cgi?id=204882
https://trac.webkit.org/changeset/254807
- 3:55 PM Changeset in webkit [254838] by
-
- 2 edits in trunk/Tools
REGRESSION(r254788): mozilla-tests.yaml/js1_5/Regress/regress-191633.js.mozilla fails
https://bugs.webkit.org/show_bug.cgi?id=206477
<rdar://problem/58714886>
Unreviewed.
In r232603 when we added test specific options, the implementation did not
clear the test specific options before parsing each test inside a yaml
file. It only worked for tests where we ran each js file inside a directory.
This patch makes it also work for yaml files.
- Scripts/run-jsc-stress-tests:
- 3:32 PM Changeset in webkit [254837] by
-
- 5 edits in trunk/Source/WebCore
[LFC][IFC] InlineFormattingContext::lineLayout should take a InlineItem range
https://bugs.webkit.org/show_bug.cgi?id=206507
<rdar://problem/58742468>
Reviewed by Antti Koivisto.
This is in preparation for being able to run inline layout on partial IFC content.
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):
- layout/inlineformatting/InlineFormattingContext.h:
- layout/inlineformatting/LineLayoutContext.cpp:
(WebCore::Layout::nextWrapOpportunity):
(WebCore::Layout::LineLayoutContext::layoutLine):
(WebCore::Layout::LineLayoutContext::close):
(WebCore::Layout::LineLayoutContext::nextContentForLine):
- layout/inlineformatting/LineLayoutContext.h:
- 1:21 PM Changeset in webkit [254836] by
-
- 42 edits5 deletes in trunk
Fix missing header guards and clean up empty files in WebCore, WebKitLegacy, WebKit, Tools
<https://webkit.org/b/206505>
Reviewed by Eric Carlson.
Source/WebCore:
- bindings/js/StructuredClone.h:
- bridge/npruntime_internal.h:
- editing/cocoa/AutofillElements.h:
- platform/graphics/FormatConverter.h:
- platform/graphics/ImageBufferData.h:
- platform/graphics/avfoundation/cf/AVFoundationCFSoftLinking.h:
- platform/ios/wak/WebCoreThreadSystemInterface.h:
- platform/network/mac/WebCoreURLResponse.h:
- Add #pragma once statement.
- platform/cocoa/SystemVersion.h:
- platform/mac/WebNSAttributedStringExtras.h:
- Add @class declarations as hint that this header is only used by Objective-C[++] source files.
- platform/mediastream/libwebrtc/VideoToolBoxDecoderFactory.cpp: Remove.
- platform/mediastream/libwebrtc/VideoToolBoxDecoderFactory.h: Remove.
- platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.cpp: Remove.
- platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.h: Remove.
- Remove unused, empty files.
- platform/network/HTTPStatusCodes.h: Remove.
- Remove unused header.
Source/WebCore/PAL:
- pal/ios/QuickLookSoftLink.h:
- pal/spi/ios/SQLite3SPI.h:
- Add #pragma once statement.
Source/WebKit:
- Platform/IPC/Attachment.h:
- Fix "# pragma" formatting. (It functioned, but WebKit style doesn't indent macros like this.)
- Platform/ios/AccessibilityIOS.h:
- Shared/ShareSheetCallbackID.h:
- Shared/mac/SecItemShim.h:
- UIProcess/API/C/WKPageRenderingProgressEventsInternal.h:
- UIProcess/API/Cocoa/WKNavigationData.h:
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
- UIProcess/API/Cocoa/WKWebArchive.h:
- Add #pragma once statement.
Source/WebKitLegacy:
- WebCoreSupport/WebViewGroup.h:
- Add #pragma once statement.
Source/WebKitLegacy/mac:
- Misc/WebKitStatisticsPrivate.h:
- Misc/WebLocalizableStrings.h: Modernize OBJC and cplusplus checks.
- Misc/WebTypesInternal.h:
- WebView/WebMediaPlaybackTargetPicker.h:
- Add #pragma once statement.
Source/WebKitLegacy/win:
- WebCoreSupport/WebChromeClient.h:
- WebCoreSupport/WebContextMenuClient.h:
- WebCoreSupport/WebDesktopNotificationsDelegate.h:
- WebCoreSupport/WebDragClient.h:
- WebDocumentLoader.h:
- WebKitStatisticsPrivate.h:
- WebPreferenceKeysPrivate.h:
- Add #pragma once statement.
Tools:
- DumpRenderTree/TestNetscapePlugIn/TestObject.h:
- TestWebKitAPI/JavaScriptTest.h:
- TestWebKitAPI/Tests/WebCore/DFAHelpers.h:
- Add #pragma once statement.
- 1:00 PM Changeset in webkit [254835] by
-
- 4 edits in trunk/LayoutTests
inspector/heap/getRemoteObject.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=156077
<rdar://problem/25469998>
Reviewed by Darin Adler.
Instead of blindly assuming that the first object is the
windowglobal object, iterate all
the objects found byWI.HeapSnapshotProxy.prototype.instancesWithClassNameand check that
we see at least onewindowglobal object.
- inspector/heap/getRemoteObject.html:
- inspector/heap/getRemoteObject-expected.txt:
- platform/mac-wk2/TestExpectations:
- 12:51 PM Changeset in webkit [254834] by
-
- 4 edits in trunk/LayoutTests
REGRESSION (r250655?): [ Mac Debug ] inspector/runtime/promise-native-getter.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=206303
<rdar://problem/58612520>
Reviewed by Darin Adler.
Rework the test to not be reliant on real world timing.
- inspector/runtime/promise-native-getter.html:
- inspector/runtime/promise-native-getter-expected.txt:
- platform/mac/TestExpectations:
- 12:24 PM Changeset in webkit [254833] by
-
- 2 edits2 adds in trunk/LayoutTests
Add a test to verify that the callout bar appears after selecting a word
https://bugs.webkit.org/show_bug.cgi?id=206488
<rdar://problem/58661768>
Reviewed by Darin Adler.
- editing/selection/ios/show-callout-bar-after-selecting-word-expected.txt: Added.
- editing/selection/ios/show-callout-bar-after-selecting-word.html: Added.
Add the new layout test.
- resources/ui-helper.js:
(window.UIHelper.rectForMenuAction):
Wrap this UI script in its own function scope, such that it can be used multiple times in the same layout test.
- 12:17 PM Changeset in webkit [254832] by
-
- 10 edits4 deletes in trunk/Source
Fix missing header guards and clean up empty files in bmalloc, WTF, JavaScriptCore
<https://webkit.org/b/206481>
Reviewed by Darin Adler.
Source/bmalloc:
- bmalloc/PerThread.cpp: Remove empty file.
- bmalloc/ScopeExit.h: Add #pragma once.
Source/JavaScriptCore:
- dfg/DFGPrePostNumbering.cpp: Remove empty file.
- dfg/DFGPrePostNumbering.h: Remove empty file.
- runtime/OptionEntry.h: Remove empty file.
- API/JSCallbackObjectFunctions.h:
- b3/testb3.h:
- heap/IsoInlinedHeapCellType.h:
- wasm/WasmGeneratorTraits.h:
- Add #pragma once.
Source/WTF:
- wtf/cocoa/Entitlements.h:
- wtf/win/PathWalker.h:
- Add #pragma once.
- 10:07 AM Changeset in webkit [254831] by
-
- 3 edits in trunk/Tools
check-webkit-style: Improve header guard checks
<https://webkit.org/b/206480>
Reviewed by Darin Adler.
- Scripts/webkitpy/style/checkers/cpp.py:
(check_for_header_guard):
- Add
file_path(filename) argument to check for config.h and *Prefix.h headers. - Use hints in header file to determine if this is a header file only used by Objective-C or not.
- Change #ifndef/#define check to use both lines instead of assuming a format for the macro.
- Emit new 'build/header_guard_missing' error.
(_process_lines):
- Pass
filenameargument to check_for_header_guard().
(CppChecker):
- Enable new 'build/header_guard_missing' check.
- Scripts/webkitpy/style/checkers/cpp_unittest.py:
(CppStyleTestBase.perform_header_guard_check):
(CppStyleTestBase.assert_header_guard):
- Move default
filenameargument from perform_header_guard_check() to assert_header_guard() so tests may pass in different values for header paths.
(CppStyleTest):
- Add tests for config.h, *Prefix.h headers.
- Update test for `build/header_guard' (legacy header guard) error.
- Update test for missing header guard so that it now expects a 'build/header_guard_missing' error message.
- Add tests for Objective-C headers with and without OBJC checks.
- 8:56 AM Changeset in webkit [254830] by
-
- 1 copy in releases/WPE WebKit/webkit-2.27.4
WPE WebKit 2.27.4
- 8:55 AM Changeset in webkit [254829] by
-
- 4 edits in trunk
Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.27.4 release
.:
- Source/cmake/OptionsWPE.cmake: Bump version numbers.
Source/WebKit:
- wpe/NEWS: Add release notes for 2.27.4
- 8:17 AM Changeset in webkit [254828] by
-
- 12 edits2 adds in trunk
[WPE] Add WebKitRectangle, use it for WebKitWebView's SHOW_MENU signal
https://bugs.webkit.org/show_bug.cgi?id=206495
Reviewed by Carlos Garcia Campos.
Source/WebKit:
Add WebKitRectangle, a new boxed-type API containing information about
a simple rectangle consisting of integer coordinates. This would
correspond to types like GdkRectangle or cairo_rectangle_int_t.
Objects of this type are for now needed to inform the position and size
of the option menu. Theshow-menusignal signature is adjusted
accordingly.
No new tests -- the relevant test was updated.
- PlatformWPE.cmake:
- SourcesWPE.txt:
- UIProcess/API/glib/WebKitWebView.cpp:
(WebKitWebViewClient::showOptionMenu):
(webkit_web_view_class_init):
(webkitWebViewShowOptionMenu):
- UIProcess/API/glib/WebKitWebViewPrivate.h:
- UIProcess/API/wpe/WebKitPopupMenu.cpp:
(WebKit::WebKitPopupMenu::showPopupMenu):
- UIProcess/API/wpe/WebKitRectangle.cpp: Added.
(webkit_rectangle_copy):
(webkit_rectangle_free):
- UIProcess/API/wpe/WebKitRectangle.h: Added.
- UIProcess/API/wpe/WebKitWebView.h:
- UIProcess/API/wpe/WebKitWebViewClient.h:
- UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
- UIProcess/API/wpe/docs/wpe-docs.sgml:
Tools:
Update the TestOptionMenu test case for WPE now that a rectangle object
is also passed through to the signal handler.
- TestWebKitAPI/Tests/WebKitGLib/TestOptionMenu.cpp:
(OptionMenuTest::showOptionMenuCallback):
(OptionMenuTest::showOptionMenu):
- 8:06 AM Changeset in webkit [254827] by
-
- 5 edits in trunk/Source/WebCore
[LFC][IFC] Add support for the rare case of revert
https://bugs.webkit.org/show_bug.cgi?id=206486
<rdar://problem/58720638>
Reviewed by Antti Koivisto.
This patch re-introduces the support for revert when a previous wrap position turns out to be the line end position.
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::initialize):
(WebCore::Layout::LineBuilder::clearContent):
- layout/inlineformatting/InlineLineBuilder.h:
- layout/inlineformatting/LineLayoutContext.cpp:
(WebCore::Layout::LineLayoutContext::layoutLine):
(WebCore::Layout::LineLayoutContext::rebuildLineForRevert):
- layout/inlineformatting/LineLayoutContext.h:
- 7:52 AM Changeset in webkit [254826] by
-
- 3 edits in trunk/Source/WebKit
[GTK][WPE] InputMethodFilter: do not notify about focus in when only content type changed
https://bugs.webkit.org/show_bug.cgi?id=206502
Reviewed by Adrian Perez de Castro.
That's unbalancing the focus in/out notifications.
- UIProcess/API/glib/InputMethodFilter.cpp:
(WebKit::InputMethodFilter::setContext): Always call notifyContentType().
(WebKit::InputMethodFilter::setState): Only call notifyFocusedIn() and notifyFocusedOut when there's a focus change.
(WebKit::InputMethodFilter::notifyContentType): Notify content type if changed.
(WebKit::InputMethodFilter::notifyFocusedIn): Move the content type notification to its own function.
- UIProcess/API/glib/InputMethodFilter.h:
- 7:43 AM Changeset in webkit [254825] by
-
- 2 edits in trunk/Source/WebCore
Invalid usage of ENABLE() before it's defined in WebCore/layout/integration/LayoutIntegrationBoxTree.cpp
https://bugs.webkit.org/show_bug.cgi?id=206500
Reviewed by Žan Doberšek.
No new tests needed.
- layout/integration/LayoutIntegrationBoxTree.cpp: Include "config.h"
before using the ENABLE() macro, to make sure that it gets defined.
- 7:20 AM Changeset in webkit [254824] by
-
- 3 edits in trunk/LayoutTests
[GTK] Gardening, remove expected to fail but pass
https://bugs.webkit.org/show_bug.cgi?id=206493
Unreviewed gardening.
- platform/gtk/TestExpectations:
- 7:07 AM Changeset in webkit [254823] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION: ( r254256 ) [ Mojave wk2 ] http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable-gpuprocess.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=206437
<rdar://problem/58692880>
Reviewed by Eric Carlson.
Hypothesis from flakiness is that, in GPUProcess, the call to stopRecording is not synchronously followed by a call to fetchData.
If too much time happened between the two calls, stopRecording will trigger setting m_isStopped and m_hasStartedWriting to false.
Any further call to fetchData will then fail.
To circumvent this issue, we add a flag m_isStopping.
If we are stopping, the completionHandler to fetchData call is delayed until stopRecording is fully finished.
When stopping will be finished, the completionHandler will send back the data.
This also allows to read the file in a background thread.
No new tests, this should unflake the flaky test.
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:
(WebCore::MediaRecorderPrivateWriter::stopRecording):
(WebCore::MediaRecorderPrivateWriter::fetchData):
- 6:46 AM Changeset in webkit [254822] by
-
- 14 edits in trunk
[GTK][WPE] Also include the selection index in webkit_input_method_context_notify_surrounding()
https://bugs.webkit.org/show_bug.cgi?id=206497
Reviewed by Adrian Perez de Castro.
Source/WebKit:
Input methods also want to know the selection.
- Shared/EditorState.cpp:
(WebKit::EditorState::PostLayoutData::encode const): Encode paragraphContextSelectionPosition.
(WebKit::EditorState::PostLayoutData::decode): Decode paragraphContextSelectionPosition.
- Shared/EditorState.h: Add paragraphContextSelectionPosition.
- UIProcess/API/glib/InputMethodFilter.cpp:
(WebKit::InputMethodFilter::notifySurrounding): Also include the selection index.
- UIProcess/API/glib/InputMethodFilter.h:
- UIProcess/API/glib/WebKitInputMethodContext.cpp:
(webkit_input_method_context_notify_surrounding):
- UIProcess/API/gtk/WebKitInputMethodContext.h:
- UIProcess/API/gtk/WebKitInputMethodContextImplGtk.cpp:
(webkitInputMethodContextImplGtkNotifySurrounding): Ignore the selection index, since GtkIMContext doesn't
support it.
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseUpdateTextInputState): Pass paragraphContextSelectionPosition to InputMethodFilter::notifySurrounding().
- UIProcess/API/wpe/WPEView.cpp:
(WKWPE::View::selectionDidChange): Ditto.
- UIProcess/API/wpe/WebKitInputMethodContext.h:
- WebProcess/WebPage/glib/WebPageGLib.cpp:
(WebKit::WebPage::platformEditorState const): Get the selection index too.
Tools:
Add new test case to check the selection index when there's a selection.
- TestWebKitAPI/Tests/WebKitGLib/TestInputMethodContext.cpp:
(webkitInputMethodContextMockNotifySurrounding):
(webkitInputMethodContextMockReset):
(testWebKitInputMethodContextSurrounding):
- 6:43 AM Changeset in webkit [254821] by
-
- 4 edits in trunk
Implement "create a potential-CORS request"
https://bugs.webkit.org/show_bug.cgi?id=205326
Patch by Rob Buis <rbuis@igalia.com> on 2020-01-20
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Update improved test result.
- web-platform-tests/html/semantics/scripting-1/the-script-element/script-crossorigin-network-expected.txt:
Source/WebCore:
The storedCredentialsPolicy should be calculated using a same origin
check when credentials are computed as same-origin.
Test: imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/script-crossorigin-network.html
- loader/CrossOriginAccessControl.cpp:
(WebCore::createPotentialAccessControlRequest):
- 6:28 AM Changeset in webkit [254820] by
-
- 9 edits in trunk/JSTests
Skip tests when there is no JIT build on ARMv7 and MIPS
https://bugs.webkit.org/show_bug.cgi?id=206496
Unreviewed gardening.
- microbenchmarks/bit-test-constant.js:
- microbenchmarks/bit-test-nonconstant.js:
- microbenchmarks/memcpy-typed-loop-large.js:
- microbenchmarks/memcpy-typed-loop-small.js:
- microbenchmarks/mul-immediate-sub.js:
- stress/dont-range-based-iterate-vector-that-is-mutated.js:
- stress/int8-repeat-in-then-out-of-bounds.js:
- stress/sampling-profiler-richards.js:
- 3:24 AM Changeset in webkit [254819] by
-
- 14 edits6 adds1 delete in trunk
[WPE] Expose the WebKitOptionMenu APIs
https://bugs.webkit.org/show_bug.cgi?id=206287
Source/WebKit:
Reviewed by Carlos Garcia Campos.
Enable the GLib-based API covering option menu functionality for WPE.
Most of this can be shared with the GTK port. The only difference is in
the two additional parameters emitted on the WebKitWebView's "show-menu"
signal (GdkEvent and GdkRectangle) that WPE doesn't support at the
moment. The rectangle information will be possible to emit in the near
future once a usable API type is available for this information.
The WebKitPopupMenu implementation for WPE would only work with the
GLib-based API. To avoid using it with other APIs, this is implemented
only on the WebKitWebViewClient interface (renamed from 'WebViewClient'
and its declaration moved into a separate header file) inheriting from
API::ViewClient.
The relevant API test is enabled for WPE.
- PlatformWPE.cmake:
- SourcesWPE.txt:
- UIProcess/API/glib/WebKitWebView.cpp:
(WebKitWebViewClient::WebKitWebViewClient):
(WebKitWebViewClient::showOptionMenu):
(WebKitWebViewClient::handleDownloadRequest):
(WebKitWebViewClient::frameDisplayed):
(WebKitWebViewClient::willStartLoad):
(WebKitWebViewClient::didChangePageID):
(WebKitWebViewClient::didReceiveUserMessage):
(webkitWebViewConstructed):
(webkit_web_view_class_init):
(webkitWebViewShowOptionMenu):
- UIProcess/API/glib/WebKitWebViewPrivate.h:
- UIProcess/API/wpe/APIViewClient.h:
(API::ViewClient::isGLibBasedAPI):
- UIProcess/API/wpe/PageClientImpl.cpp:
(WebKit::PageClientImpl::createPopupMenuProxy):
- UIProcess/API/wpe/WPEView.h:
(WKWPE::View::client const):
- UIProcess/API/wpe/WebKitOptionMenu.h: Added.
- UIProcess/API/wpe/WebKitOptionMenuItem.h: Added.
- UIProcess/API/wpe/WebKitPopupMenu.cpp: Added.
(WebKit::WebKitPopupMenu::create):
(WebKit::WebKitPopupMenu::WebKitPopupMenu):
(WebKit::menuCloseCallback):
(WebKit::WebKitPopupMenu::showPopupMenu):
(WebKit::WebKitPopupMenu::hidePopupMenu):
(WebKit::WebKitPopupMenu::cancelTracking):
(WebKit::WebKitPopupMenu::selectItem):
(WebKit::WebKitPopupMenu::activateItem):
- UIProcess/API/wpe/WebKitPopupMenu.h: Added.
- UIProcess/API/wpe/WebKitWebView.h:
- UIProcess/API/wpe/WebKitWebViewClient.h: Added.
- UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
- UIProcess/API/wpe/webkit.h:
Tools:
Move TestOptionMenu under the WebKitGLib directory, adding the
appropriate adjustments for the WPE variant of the API
- TestWebKitAPI/Tests/WebKitGLib/TestOptionMenu.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKitGtk/TestOptionMenu.cpp.
(OptionMenuTest::OptionMenuTest):
(OptionMenuTest::~OptionMenuTest):
(OptionMenuTest::destroyMenu):
(OptionMenuTest::showOptionMenuCallback):
(OptionMenuTest::menuCloseCallback):
(OptionMenuTest::showOptionMenu):
(OptionMenuTest::clickAtPositionAndWaitUntilOptionMenuShown):
(OptionMenuTest::close):
(OptionMenuTest::activateItem):
(OptionMenuTest::selectItem):
(testOptionMenuSimple):
(testOptionMenuGroups):
(testOptionMenuActivate):
(testOptionMenuSelect):
(beforeAll):
(afterAll):
- TestWebKitAPI/glib/CMakeLists.txt:
- TestWebKitAPI/glib/PlatformGTK.cmake:
- 2:59 AM Changeset in webkit [254818] by
-
- 5 edits in trunk
Make isValidUserAgentHeaderValue GLib only
https://bugs.webkit.org/show_bug.cgi?id=206475
Patch by Rob Buis <rbuis@igalia.com> on 2020-01-20
Reviewed by Youenn Fablet.
Source/WebCore:
The function isValidUserAgentHeaderValue is only used
by code that requires GLib, so move it behind USE(GLIB).
- platform/network/HTTPParsers.cpp:
- platform/network/HTTPParsers.h:
Tools:
Make the unit test that tests isValidUserAgentHeaderValue
depend on USE(GLIB) as well.
- TestWebKitAPI/Tests/WebCore/HTTPParsers.cpp:
- 2:39 AM Changeset in webkit [254817] by
-
- 26 edits3 copies10 adds in trunk/Source
Add support for MediaStream video track rendering in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=206286
Reviewed by Eric Carlson.
Source/WebCore:
Add a way for WebKit layer to create its own specific SampleBufferDisplayLayer.
WebKit layer can set a function pointer that will be used to create SampleBufferDisplayLayer.
If none is provided, LocalSampleBufferDisplayLayer is used.
Update MediaPlayerPrivateMediaStreamAVFObjC to monitor itself its root layer bounds change.
Conversely, LocalSampleBufferDisplayLayer no longer monitors its root layer bounds change.
This removes the need for SampleBufferDisplayLayer::Client to be notified of bounds change.
We add an API to update the root layer bounds of a LocalSampleBufferDisplayLayer as well,
this API being used by GPUProcess to mirror changes done to WebProcess root layer.
WebRTC incoming video tracks do not have presentation timestamps so we mark them as kCMSampleAttachmentKey_DisplayImmediately.
This is currently lost when doing IPC from WebProcess to NetworkProcess. Add this information for every enqueued sample in LocalSampleBufferDisplayLayer.
We might want in the future to serialize all attachments of the sample.
Manually tested.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/avfoundation/SampleBufferDisplayLayer.cpp: Added.
(WebCore::SampleBufferDisplayLayer::setCreator):
(WebCore::SampleBufferDisplayLayer::create):
- platform/graphics/avfoundation/SampleBufferDisplayLayer.h:
- platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.h:
- platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:
(-[WebAVSampleBufferStatusChangeListener invalidate]):
(-[WebAVSampleBufferStatusChangeListener start]):
(-[WebAVSampleBufferStatusChangeListener stop]):
(-[WebAVSampleBufferStatusChangeListener observeValueForKeyPath:ofObject:change:context:]):
(WebCore::LocalSampleBufferDisplayLayer::LocalSampleBufferDisplayLayer):
(WebCore::LocalSampleBufferDisplayLayer::~LocalSampleBufferDisplayLayer):
(WebCore::LocalSampleBufferDisplayLayer::updateBoundsAndPosition):
(WebCore::LocalSampleBufferDisplayLayer::enqueueSample):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(-[WebRootSampleBufferBoundsChangeListener initWithParent:]):
(-[WebRootSampleBufferBoundsChangeListener dealloc]):
(-[WebRootSampleBufferBoundsChangeListener invalidate]):
(-[WebRootSampleBufferBoundsChangeListener start]):
(-[WebRootSampleBufferBoundsChangeListener stop]):
(-[WebRootSampleBufferBoundsChangeListener observeValueForKeyPath:ofObject:change:context:]):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::~MediaPlayerPrivateMediaStreamAVFObjC):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayers):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::rootLayer const):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayLayer):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::rootLayerBoundsDidChange):
- platform/graphics/cg/PDFDocumentImage.cpp:
Unified build fix.
Source/WebKit:
Implement WebProcess SampleBufferDisplayLayer and GPUProcess RemoteSampleBufferDisplayLayer.
RemoteSampleBufferDisplayLayer is a wrapper around LocalSampleBufferDisplayLayer.
A synchronous IPC is used at creation time of the layer to make sure we have a shared layer synchronously.
Future refactoring should allow to remove that constraint as done in regular video playing.
Override SampleBufferDisplayLayer create function pointer when rendering is to be done in GPUProcess.
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::sampleBufferDisplayLayerManager):
(WebKit::GPUConnectionToWebProcess::didReceiveMessage):
(WebKit::GPUConnectionToWebProcess::didReceiveSyncMessage):
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp: Added.
(WebKit::RemoteSampleBufferDisplayLayer::create):
(WebKit::RemoteSampleBufferDisplayLayer::RemoteSampleBufferDisplayLayer):
(WebKit::RemoteSampleBufferDisplayLayer::~RemoteSampleBufferDisplayLayer):
(WebKit::RemoteSampleBufferDisplayLayer::contextID):
(WebKit::RemoteSampleBufferDisplayLayer::bounds const):
(WebKit::RemoteSampleBufferDisplayLayer::updateDisplayMode):
(WebKit::RemoteSampleBufferDisplayLayer::updateAffineTransform):
(WebKit::RemoteSampleBufferDisplayLayer::updateBoundsAndPosition):
(WebKit::RemoteSampleBufferDisplayLayer::flush):
(WebKit::RemoteSampleBufferDisplayLayer::flushAndRemoveImage):
(WebKit::RemoteSampleBufferDisplayLayer::enqueueSample):
(WebKit::RemoteSampleBufferDisplayLayer::clearEnqueuedSamples):
(WebKit::RemoteSampleBufferDisplayLayer::messageSenderConnection const):
(WebKit::RemoteSampleBufferDisplayLayer::sampleBufferDisplayLayerStatusDidChange):
(WebKit::RemoteSampleBufferDisplayLayer::streamTime const):
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h: Added.
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.messages.in: Added.
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp: Added.
(WebKit::RemoteSampleBufferDisplayLayerManager::RemoteSampleBufferDisplayLayerManager):
(WebKit::RemoteSampleBufferDisplayLayerManager::didReceiveLayerMessage):
(WebKit::RemoteSampleBufferDisplayLayerManager::createLayer):
(WebKit::RemoteSampleBufferDisplayLayerManager::releaseLayer):
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.h: Added.
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.messages.in: Added.
- Scripts/webkit/messages.py:
- Shared/WebCoreArgumentCoders.h:
- Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::ArgumentCoder<CGRect>::encode):
(IPC::ArgumentCoder<CGRect>::decode):
(IPC::ArgumentCoder<CGSize>::encode):
(IPC::ArgumentCoder<CGSize>::decode):
(IPC::ArgumentCoder<CGPoint>::encode):
(IPC::ArgumentCoder<CGPoint>::decode):
(IPC::ArgumentCoder<CGAffineTransform>::encode):
(IPC::ArgumentCoder<CGAffineTransform>::decode):
- Sources.txt:
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/GPUProcessConnection.cpp:
(WebKit::GPUProcessConnection::sampleBufferDisplayLayerManager):
(WebKit::GPUProcessConnection::didReceiveMessage):
- WebProcess/GPU/GPUProcessConnection.h:
- WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:
(WebKit::RemoteMediaPlayerManager::updatePreferences):
- WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp: Added.
(WebKit::SampleBufferDisplayLayer::create):
(WebKit::SampleBufferDisplayLayer::SampleBufferDisplayLayer):
(WebKit::SampleBufferDisplayLayer::~SampleBufferDisplayLayer):
(WebKit::SampleBufferDisplayLayer::didFail const):
(WebKit::SampleBufferDisplayLayer::updateDisplayMode):
(WebKit::SampleBufferDisplayLayer::bounds const):
(WebKit::SampleBufferDisplayLayer::updateAffineTransform):
(WebKit::SampleBufferDisplayLayer::updateBoundsAndPosition):
(WebKit::SampleBufferDisplayLayer::flush):
(WebKit::SampleBufferDisplayLayer::flushAndRemoveImage):
(WebKit::SampleBufferDisplayLayer::enqueueSample):
(WebKit::SampleBufferDisplayLayer::clearEnqueuedSamples):
(WebKit::SampleBufferDisplayLayer::rootLayer):
(WebKit::SampleBufferDisplayLayer::setDidFail):
(WebKit::SampleBufferDisplayLayer::boundsChanged):
- WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h: Added.
- WebProcess/GPU/webrtc/SampleBufferDisplayLayer.messages.in: Added.
- WebProcess/GPU/webrtc/SampleBufferDisplayLayerIdentifier.h: Added.
- WebProcess/GPU/webrtc/SampleBufferDisplayLayerManager.cpp: Added.
(WebKit::SampleBufferDisplayLayerManager::didReceiveLayerMessage):
(WebKit::SampleBufferDisplayLayerManager::createLayer):
(WebKit::SampleBufferDisplayLayerManager::addLayer):
(WebKit::SampleBufferDisplayLayerManager::removeLayer):
- WebProcess/GPU/webrtc/SampleBufferDisplayLayerManager.h: Added.
- WebProcess/WebProcess.h:
- 1:49 AM Changeset in webkit [254816] by
-
- 2 edits6 moves in trunk/LayoutTests
[css-grid] Import grid-align-content-distribution tests to WebKit
https://bugs.webkit.org/show_bug.cgi?id=205926
Patch by Rossana Monteriso <rmonteriso@igalia.com> on 2020-01-20
Reviewed by Javier Fernandez.
LayoutTests/imported/w3c:
Add align-content-distribution tests, checked and adapted to the WPT project,
to the css-grid/alignment folder for imported tests inside WebKit.
- web-platform-tests/css/css-grid/alignment/grid-align-content-distribution-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-align-content-distribution-vertical-lr-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-align-content-distribution-vertical-rl-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-align-content-distribution-vertical-lr.html:
- web-platform-tests/css/css-grid/alignment/grid-align-content-distribution-vertical-rl.html:
- web-platform-tests/css/css-grid/alignment/grid-align-content-distribution.html:
LayoutTests:
Remove align-content-distribution tests that are being replaced by newer tests, adapted to the WPT project and imported
to the corresponding css-grid folder inside WebKit.
- fast/css-grid-layout/grid-align-content-distribution-expected.txt: Removed.
- fast/css-grid-layout/grid-align-content-distribution-vertical-lr-expected.txt: Removed.
- fast/css-grid-layout/grid-align-content-distribution-vertical-rl-expected.txt: Removed.
- fast/css-grid-layout/grid-align-content-distribution.html: Removed.
- fast/css-grid-layout/grid-align-content-distribution-vertical-lr.html: Removed.
- fast/css-grid-layout/grid-align-content-distribution-vertical-rl.html: Removed.
- 1:44 AM Changeset in webkit [254815] by
-
- 3 edits in trunk/Source/ThirdParty/libwebrtc
Setting kVTCompressionPropertyKey_DataRateLimits on RTCVideoEncoderH264 fails
https://bugs.webkit.org/show_bug.cgi?id=206402
Reviewed by Eric Carlson.
Add helper routine dedicated to setting VTB/VCP array value properties.
Logging shows the bitrate is then set appropriately.
- Source/webrtc/sdk/objc/components/video_codec/helpers.cc:
- Source/webrtc/sdk/objc/components/video_codec/helpers.h:
- 1:23 AM Changeset in webkit [254814] by
-
- 4 edits4 adds in trunk
Video sound sometimes keeps playing in page cache
https://bugs.webkit.org/show_bug.cgi?id=206408
<rdar://problem/58654047>
Reviewed by Eric Carlson.
Source/WebCore:
In r253375, we made sure to enqueue calls that would trigger state changes, to ensure we would not start playing while in page cache.
But this delayed the order to pause the video when entering page cache.
Fix this by synchronously updating playing state when being suspended for page cache.
Test: http/tests/navigation/page-cache-video.html
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::pauseAndUpdatePlayStateImmediately):
(WebCore::HTMLMediaElement::stopWithoutDestroyingMediaPlayer):
- html/HTMLMediaElement.h:
LayoutTests:
- http/tests/media/resources/sound_5.mp3: Added.
File comes from WPT and is 5 seconds long.
- http/tests/navigation/page-cache-video-expected.txt: Added.
- http/tests/navigation/page-cache-video.html: Added.
- http/tests/navigation/resources/page-cache-video-helper.html: Added.
- 1:19 AM Changeset in webkit [254813] by
-
- 5 edits3 adds in trunk/Source/WebCore
Introduce an abstract SampleBufferDisplayLayer
https://bugs.webkit.org/show_bug.cgi?id=206066
Reviewed by Eric Carlson.
Move use of display layers in MediaPlayerPrivateMediaStreamAVFObjC to a new class LocalSampleBufferDisplayLayer
that implements an interface named SampleBufferDisplayLayer.
A future patch will implement this interface by IPCing to GPUProcess.
We move both layers and handling of the sample queue to LocalSampleBufferDisplayLayer.
Contrary to previously, we do not call again enqueueVideoSample in case we enqueued a sample for later use in the display layer.
Instead, we directly render it, which should not change much since this is a realtime track and in the future the buffer will be in GPUProcess anyway.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/avfoundation/SampleBufferDisplayLayer.h: Added.
(WebCore::SampleBufferDisplayLayer::SampleBufferDisplayLayer):
- platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.h: Added.
- platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm: Added.
(-[WebAVSampleBufferStatusChangeListener initWithParent:]):
(-[WebAVSampleBufferStatusChangeListener dealloc]):
(-[WebAVSampleBufferStatusChangeListener invalidate]):
(-[WebAVSampleBufferStatusChangeListener beginObservingLayers]):
(-[WebAVSampleBufferStatusChangeListener stopObservingLayers]):
(-[WebAVSampleBufferStatusChangeListener observeValueForKeyPath:ofObject:change:context:]):
(WebCore::runWithoutAnimations):
(WebCore::LocalSampleBufferDisplayLayer::LocalSampleBufferDisplayLayer):
(WebCore::LocalSampleBufferDisplayLayer::~LocalSampleBufferDisplayLayer):
(WebCore::LocalSampleBufferDisplayLayer::layerStatusDidChange):
(WebCore::LocalSampleBufferDisplayLayer::layerErrorDidChange):
(WebCore::LocalSampleBufferDisplayLayer::rootLayerBoundsDidChange):
(WebCore::LocalSampleBufferDisplayLayer::displayLayer):
(WebCore::LocalSampleBufferDisplayLayer::rootLayer):
(WebCore::LocalSampleBufferDisplayLayer::didFail const):
(WebCore::LocalSampleBufferDisplayLayer::updateDisplayMode):
(WebCore::LocalSampleBufferDisplayLayer::bounds const):
(WebCore::LocalSampleBufferDisplayLayer::updateAffineTransform):
(WebCore::LocalSampleBufferDisplayLayer::updateBoundsAndPosition):
(WebCore::LocalSampleBufferDisplayLayer::ensureLayers):
(WebCore::LocalSampleBufferDisplayLayer::flush):
(WebCore::LocalSampleBufferDisplayLayer::flushAndRemoveImage):
(WebCore::LocalSampleBufferDisplayLayer::enqueueSample):
(WebCore::LocalSampleBufferDisplayLayer::removeOldSamplesFromPendingQueue):
(WebCore::LocalSampleBufferDisplayLayer::addSampleToPendingQueue):
(WebCore::LocalSampleBufferDisplayLayer::clearEnqueuedSamples):
(WebCore::LocalSampleBufferDisplayLayer::requestNotificationWhenReadyForVideoData):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::~MediaPlayerPrivateMediaStreamAVFObjC):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueCorrectedVideoSample):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::sampleBufferDisplayLayerStatusDidChange):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::applicationDidBecomeActive):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::flushRenderers):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayers):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::destroyLayers):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::platformLayer const):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::displayLayer):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayMode):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::checkSelectedVideoTrack):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setBufferingPolicy):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayLayer):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::sampleBufferDisplayLayerBoundsDidChange):
- 1:02 AM Changeset in webkit [254812] by
-
- 2 edits in trunk/Source/WebCore
ASSERT in case a service worker cannot be terminated in a timely manner
https://bugs.webkit.org/show_bug.cgi?id=206413
Reviewed by Alexey Proskuryakov.
No change of behavior, the process will still exit if it does not succeed in stopping a service worker.
In Debug, a crash log will be collected which will allow to help identifying other crashes.
- workers/service/context/SWContextManager.cpp:
(WebCore::SWContextManager::serviceWorkerFailedToTerminate):
- 12:07 AM Changeset in webkit [254811] by
-
- 6 edits1 add in trunk
KeyedDecoderGeneric crashes when it accesses data with non-existing key
https://bugs.webkit.org/show_bug.cgi?id=205902
Patch by Takashi Komori <Takashi.Komori@sony.com> on 2020-01-20
Reviewed by Fujii Hironori.
Source/WebCore:
Add null check function for KeyedDecoderGeneric.
Test: TestWebKitAPI/Tests/WebCore/KeyedCodingGeneric.cpp
- platform/generic/KeyedDecoderGeneric.cpp:
(WebCore::KeyedDecoderGeneric::Dictionary::get):
(WebCore::KeyedDecoderGeneric::getPointerFromDictionaryStack):
(WebCore::KeyedDecoderGeneric::decodeSimpleValue):
(WebCore::KeyedDecoderGeneric::decodeBytes):
(WebCore::KeyedDecoderGeneric::decodeBool):
(WebCore::KeyedDecoderGeneric::decodeUInt32):
(WebCore::KeyedDecoderGeneric::decodeUInt64):
(WebCore::KeyedDecoderGeneric::decodeInt32):
(WebCore::KeyedDecoderGeneric::decodeInt64):
(WebCore::KeyedDecoderGeneric::decodeFloat):
(WebCore::KeyedDecoderGeneric::decodeDouble):
(WebCore::KeyedDecoderGeneric::decodeString):
(WebCore::KeyedDecoderGeneric::beginObject):
(WebCore::KeyedDecoderGeneric::beginArray):
- platform/generic/KeyedDecoderGeneric.h:
Tools:
- TestWebKitAPI/CMakeLists.txt:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebCore/KeyedCoding.cpp: Added.
(TestWebKitAPI::checkDecodedBytes):
(TestWebKitAPI::TEST):
(TestWebKitAPI::testSimpleValue):
(TestWebKitAPI::KeyedCodingTestObject::encode):
(TestWebKitAPI::KeyedCodingTestObject::decode):
(TestWebKitAPI::KeyedCodingTestObject::KeyedCodingTestObject):
(TestWebKitAPI::KeyedCodingTestObject::equals const):
(TestWebKitAPI::operator==):
Jan 19, 2020:
- 11:12 PM Changeset in webkit [254810] by
-
- 8 edits in trunk/Tools
[WPE] HeadlessViewBackend should hande SHM-based buffer exports
https://bugs.webkit.org/show_bug.cgi?id=206283
Reviewed by Adrian Perez de Castro.
The ViewBackend class should also handle any SHM-based exports from
the wpe_view_backend_exportable_fdo_egl instance. In case of such an
export, the buffer is transported down into the implementing object.
For WindowViewBackend, we do nothing with this yet, except emit a
warning. For HeadlessViewBackend, we repeat what's currently done with
EGL exports, storing pending updates until the update timer is fired
and we move the buffer into the locked position, clearing up any
previous locked buffer.
Upon creating a snapshot of the current contents, we add additional
separation in how EGL and SHM exports are handled. Nothing changes
for the former, while for the latter we simply retrieve the
wl_shm_buffer object, map it, copy data from it into the pixel data
storage that's basis for the returned Cairo surface, and unmap it.
- Scripts/webkitpy/port/wpe.py:
(WPEPort.setup_environ_for_server): Copy the LIBGL_ALWAYS_SOFTWARE
environment variable, if present. This variable is normally used to
force Mesa into software rasterizing mode.
- wpe/backends/HeadlessViewBackend.cpp:
(WPEToolingBackends::HeadlessViewBackend::~HeadlessViewBackend):
(WPEToolingBackends::HeadlessViewBackend::createSnapshot):
(WPEToolingBackends::HeadlessViewBackend::createEGLSnapshot):
(WPEToolingBackends::HeadlessViewBackend::createSHMSnapshot):
(WPEToolingBackends::HeadlessViewBackend::performUpdate):
(WPEToolingBackends::HeadlessViewBackend::displayBuffer):
- wpe/backends/HeadlessViewBackend.h:
- wpe/backends/ViewBackend.cpp:
(WPEToolingBackends::ViewBackend::initialize):
- wpe/backends/ViewBackend.h:
- wpe/backends/WindowViewBackend.cpp:
- wpe/backends/WindowViewBackend.h:
- 7:18 PM Changeset in webkit [254809] by
-
- 16 edits1 add in trunk/Source/WebKit
Make MediaPlayerPrivateRemote a message receiver
https://bugs.webkit.org/show_bug.cgi?id=206487
<rdar://problem/58721559>
Reviewed by Dean Jackson.
Make MediaPlayerPrivateRemote a message receiver so we don't need a trampoline
for every method in the MediaPlayerPrivateRemoteManager.
No new tests, no change of behavior.
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- GPUProcess/media/RemoteAudioTrackProxy.cpp:
(WebKit::RemoteAudioTrackProxy::RemoteAudioTrackProxy):
(WebKit::RemoteAudioTrackProxy::configurationChanged):
(WebKit::RemoteAudioTrackProxy::willRemove):
- GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::requestResource):
(WebKit::RemoteMediaPlayerProxy::removeResource):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerNetworkStateChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerReadyStateChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerVolumeChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerMuteChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerTimeChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerDurationChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerRateChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerEngineFailedToLoad const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerPlaybackStateChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerCharacteristicChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerFirstVideoFrameAvailable):
(WebKit::RemoteMediaPlayerProxy::sendCachedState):
- GPUProcess/media/RemoteMediaResourceManager.cpp:
- GPUProcess/media/RemoteVideoTrackProxy.cpp:
(WebKit::RemoteVideoTrackProxy::RemoteVideoTrackProxy):
(WebKit::RemoteVideoTrackProxy::configurationChanged):
(WebKit::RemoteVideoTrackProxy::willRemove):
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/GPUProcessConnection.cpp:
(WebKit::GPUProcessConnection::didReceiveMessage):
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::requestResource):
- WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.messages.in: Added.
- WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:
(WebKit::RemoteMediaPlayerManager::didReceivePlayerMessage):
(WebKit::RemoteMediaPlayerManager::networkStateChanged): Deleted.
(WebKit::RemoteMediaPlayerManager::readyStateChanged): Deleted.
(WebKit::RemoteMediaPlayerManager::volumeChanged): Deleted.
(WebKit::RemoteMediaPlayerManager::muteChanged): Deleted.
(WebKit::RemoteMediaPlayerManager::timeChanged): Deleted.
(WebKit::RemoteMediaPlayerManager::durationChanged): Deleted.
(WebKit::RemoteMediaPlayerManager::rateChanged): Deleted.
(WebKit::RemoteMediaPlayerManager::playbackStateChanged): Deleted.
(WebKit::RemoteMediaPlayerManager::engineFailedToLoad): Deleted.
(WebKit::RemoteMediaPlayerManager::characteristicChanged): Deleted.
(WebKit::RemoteMediaPlayerManager::sizeChanged): Deleted.
(WebKit::RemoteMediaPlayerManager::addRemoteAudioTrack): Deleted.
(WebKit::RemoteMediaPlayerManager::removeRemoteAudioTrack): Deleted.
(WebKit::RemoteMediaPlayerManager::remoteAudioTrackConfigurationChanged): Deleted.
(WebKit::RemoteMediaPlayerManager::addRemoteVideoTrack): Deleted.
(WebKit::RemoteMediaPlayerManager::removeRemoteVideoTrack): Deleted.
(WebKit::RemoteMediaPlayerManager::remoteVideoTrackConfigurationChanged): Deleted.
(WebKit::RemoteMediaPlayerManager::firstVideoFrameAvailable): Deleted.
(WebKit::RemoteMediaPlayerManager::requestResource): Deleted.
(WebKit::RemoteMediaPlayerManager::removeResource): Deleted.
(WebKit::RemoteMediaPlayerManager::updateCachedState): Deleted.
- WebProcess/GPU/media/RemoteMediaPlayerManager.h:
(WebKit::RemoteMediaPlayerManager::didReceiveMessageFromGPUProcess): Deleted.
- WebProcess/GPU/media/RemoteMediaPlayerManager.messages.in:
- 9:08 AM Changeset in webkit [254808] by
-
- 7 edits in trunk/Source/WebCore
[LFC] Devirtualize FormattingState
https://bugs.webkit.org/show_bug.cgi?id=206485
Reviewed by Zalan Bujtas.
The only reason it is virtual is the destructor.
- layout/FormattingState.h:
- layout/LayoutState.cpp:
(WebCore::Layout::LayoutState::createFormattingStateForFormattingRootIfNeeded):
- layout/LayoutState.h:
- layout/blockformatting/BlockFormattingState.h:
- layout/inlineformatting/InlineFormattingState.h:
- layout/tableformatting/TableFormattingState.h:
- 8:43 AM Changeset in webkit [254807] by
-
- 47 edits in trunk
Add support for scroll behavior relies on ScrollAnimation of the Web process
https://bugs.webkit.org/show_bug.cgi?id=204882
Reviewed by Frédéric Wang
Based on the patch by Frédéric Wang.
LayoutTests/imported/w3c:
Enable CSSOMViewSmoothScrollingEnabled on scroll behavior tests and update expectations.
- web-platform-tests/css/cssom-view/scroll-behavior-default-css-expected.txt:
- web-platform-tests/css/cssom-view/scroll-behavior-default-css.html:
- web-platform-tests/css/cssom-view/scroll-behavior-element-expected.txt:
- web-platform-tests/css/cssom-view/scroll-behavior-element.html:
- web-platform-tests/css/cssom-view/scroll-behavior-main-frame-root-expected.txt:
- web-platform-tests/css/cssom-view/scroll-behavior-main-frame-root.html:
- web-platform-tests/css/cssom-view/scroll-behavior-main-frame-window-expected.txt:
- web-platform-tests/css/cssom-view/scroll-behavior-main-frame-window.html:
- web-platform-tests/css/cssom-view/scroll-behavior-scrollintoview-nested-expected.txt:
- web-platform-tests/css/cssom-view/scroll-behavior-scrollintoview-nested.html:
- web-platform-tests/css/cssom-view/scroll-behavior-smooth-positions.html:
- web-platform-tests/css/cssom-view/scroll-behavior-subframe-root-expected.txt:
- web-platform-tests/css/cssom-view/scroll-behavior-subframe-root.html:
- web-platform-tests/css/cssom-view/scroll-behavior-subframe-window-expected.txt:
- web-platform-tests/css/cssom-view/scroll-behavior-subframe-window.html:
Source/WebCore:
This patch introduces a programmatic smooth scrolling in WebKit from the CSSOM View
specification [1]. To use this effect, web developers can pass a behavior parameter (auto,
smooth, or instant) to Element.scroll, Element.scrollTo, Element.scrollBy,
Element.scrollIntoView, Window.scroll, Window.scrollTo or Window.scrollBy [2]. When behavior
is auto, the instant/smooth characteristic is actually taken from the value of a new CSS
scroll-behavior property [3]. Both the new CSS and DOM behavior are protected by a runtime
flag.
[1] https://drafts.csswg.org/cssom-view
[2] https://drafts.csswg.org/cssom-view/#dictdef-scrolloptions
[3] https://drafts.csswg.org/cssom-view/#propdef-scroll-behavior
Tests: imported/w3c/web-platform-tests/css/cssom-view/scroll-behavior-default-css.html
imported/w3c/web-platform-tests/css/cssom-view/scroll-behavior-element.html
imported/w3c/web-platform-tests/css/cssom-view/scroll-behavior-main-frame-root.html
imported/w3c/web-platform-tests/css/cssom-view/scroll-behavior-main-frame-window.html
imported/w3c/web-platform-tests/css/cssom-view/scroll-behavior-scrollintoview-nested.html
imported/w3c/web-platform-tests/css/cssom-view/scroll-behavior-smooth-positions.html
imported/w3c/web-platform-tests/css/cssom-view/scroll-behavior-subframe-root.html
imported/w3c/web-platform-tests/css/cssom-view/scroll-behavior-subframe-window.html
- Sources.txt: Build ScrollAnimationSmooth.cpp on all platforms.
- SourcesGTK.txt: Remove ScrollAnimationSmooth.cpp since it is built on all platforms now.
- dom/Element.cpp:
(WebCore::Element::scrollIntoView): Pass scroll behavior, if any.
(WebCore::Element::scrollBy):
(WebCore::Element::scrollTo): Handle the case when scroll behavior is smooth.
(WebCore::Element::setScrollLeft): Handle the case when scroll behavior is smooth.
(WebCore::Element::setScrollTop): Handle the case when scroll behavior is smooth.
- page/DOMWindow.cpp:
(WebCore::DOMWindow::scrollBy const):
(WebCore::DOMWindow::scrollTo const): Handle the case when scroll behavior is smooth.
The optimization of cancel (0, 0) scrolling is skipped if an animated scroll is in progress.
Otherwise, the previous scroll won't be stopped by a follow-up scroll.
- page/FrameView.cpp:
(WebCore::FrameView::setScrollPosition):
(WebCore::FrameView::scrollToOffsetWithAnimation): Start an animated scroll.
- page/FrameView.h:
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
- platform/ScrollAnimation.h:
(WebCore::ScrollAnimation::scroll): Function to animate scrolling to a specified position.
- platform/ScrollAnimationSmooth.cpp: Build this file on all platforms. Add a
smoothFactorForProgrammaticScroll parameter to slow down the smooth scrolling.
(WebCore::ScrollAnimationSmooth::scroll):
(WebCore::ScrollAnimationSmooth::updatePerAxisData): Scale the time parameters of the
animation so that it looks smoother.
- platform/ScrollAnimationSmooth.h: Declare the class on all platforms.
- platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::ScrollAnimator): Initialize animation member for programmatic scrolling.
(WebCore::ScrollAnimator::scrollToOffset): Animate scrolling to the specified position.
(WebCore::ScrollAnimator::cancelAnimations): Copy logic from ScrollAnimationSmooth.cpp.
(WebCore::ScrollAnimator::serviceScrollAnimations): Ditto.
(WebCore::ScrollAnimator::willEndLiveResize): Ditto.
(WebCore::ScrollAnimator::didAddVerticalScrollbar): Ditto.
(WebCore::ScrollAnimator::didAddHorizontalScrollbar): Ditto.
- platform/ScrollAnimator.h: New animation member for smooth programmatic scrolling.
(WebCore::ScrollAnimator::ScrollAnimator::cancelAnimations): Deleted.
(WebCore::ScrollAnimator::ScrollAnimator::serviceScrollAnimations): Deleted.
(WebCore::ScrollAnimator::ScrollAnimator::willEndLiveResize): Deleted.
(WebCore::ScrollAnimator::ScrollAnimator::didAddVerticalScrollbar): Deleted.
(WebCore::ScrollAnimator::ScrollAnimator::didAddHorizontalScrollbar): Deleted.
- platform/ScrollTypes.h: Add ScrollBehaviorStatus to indicate the status of scrolling.
- platform/ScrollView.cpp:
(WebCore::ScrollView::setScrollPosition): Follow the CSSOM View spec: If a scroll is in
progress, we interrupt it and continue the scroll call (even when we are at the final position).
- platform/ScrollView.h:
- platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::scrollToOffsetWithAnimation):
(WebCore::ScrollableArea::setScrollOffsetFromInternals):
(WebCore::ScrollableArea::setScrollOffsetFromAnimation): To avoid iterate calling,
move the requestScrollPositionUpdate(position) checking out of setScrollOffsetFromAnimation().
- platform/ScrollableArea.h:
(WebCore::ScrollableArea::currentScrollBehaviorStatus const): Maintain currentScrollBehaviorStatus.
(WebCore::ScrollableArea::setScrollBehaviorStatus):
- platform/generic/ScrollAnimatorGeneric.cpp:
(WebCore::ScrollAnimatorGeneric::updatePosition):
- platform/mac/ScrollAnimatorMac.mm:
(WebCore::ScrollAnimatorMac::cancelAnimations): Call parent member to handle programmatic scrolling.
- rendering/RenderBox.cpp:
(WebCore::RenderBox::setScrollLeft): Add flag to indicate animated or not.
(WebCore::RenderBox::setScrollTop): Ditto.
(WebCore::RenderBox::setScrollPosition):
- rendering/RenderBox.h:
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollToXPosition): Ditto.
(WebCore::RenderLayer::scrollToYPosition): Ditto.
(WebCore::RenderLayer::scrollToPosition):
(WebCore::RenderLayer::scrollToOffset): Follow the CSSOM View spec: If a scroll is in
progress, we interrupt it and continue the scroll call (even when we are at the final
position). It's ScrollBehaviorType::Instant scroll.
(WebCore::RenderLayer::requestScrollPositionUpdate):
(WebCore::RenderLayer::scrollToOffsetWithAnimation): Ditto. This is similar to scrollToOffset
but animates the scroll. It's ScrollBehaviorType::Smooth scroll.
(WebCore::RenderLayer::scrollTo):
(WebCore::RenderLayer::scrollRectToVisible): Again don't do an early return if scroll is in
progress. We call scrollToOffsetWithAnimation instead of scrollToOffset when appropriate.
Note that this function may not work well for several nested scroll boxes with at least one
element with smooth behavior. It will handled in bug Follow.
- rendering/RenderLayer.h: Add scroll behavior to ScrollTectToVisibleOptions.
- rendering/RenderListBox.cpp:
(WebCore::RenderListBox::setScrollLeft): Add animated flag.
(WebCore::RenderListBox::setScrollTop): Ditto.
- rendering/RenderListBox.h:
- rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::setScrollLeft):
(WebCore::RenderTextControlSingleLine::setScrollTop):
- rendering/RenderTextControlSingleLine.h:
- testing/Internals.cpp:
(WebCore::Internals::unconstrainedScrollTo):
LayoutTests:
- platform/mac-wk1/TestExpectations: Skip these tests on WK1 as they don't work for now.
- 8:30 AM Changeset in webkit [254806] by
-
- 11 edits1 copy1 add in trunk/Source/WebCore
[LFC][Integration] Use integration specific layout tree builder and data structures
https://bugs.webkit.org/show_bug.cgi?id=206483
Reviewed by Zalan Bujtas.
The generic tree builder and the LayoutTreeContent class are not optimal for integrated layout.
This patch adds LayoutIntegration::BoxTree type for building and owning Layout::Boxes for a single flow.
It also devirtualizes Layout::Box for faster destruction (the only virtual function was the destructor).
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/integration/LayoutIntegrationBoxTree.cpp: Added.
(WebCore::LayoutIntegration::BoxTree::BoxTree):
(WebCore::LayoutIntegration::BoxTree::buildTree):
Only handle supported content.
(WebCore::LayoutIntegration::BoxTree::layoutBoxForRenderer const):
(WebCore::LayoutIntegration::BoxTree::rendererForLayoutBox const):
For small content just traverse the vector. Construct lookup maps lazily for larger content.
- layout/integration/LayoutIntegrationBoxTree.h: Copied from Source/WebCore/layout/layouttree/LayoutContainer.h.
(WebCore::LayoutIntegration::BoxTree::rootLayoutBox const):
(WebCore::LayoutIntegration::BoxTree::rootLayoutBox):
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::LineLayout):
(WebCore::LayoutIntegration::LineLayout::layout):
(WebCore::LayoutIntegration::LineLayout::textBoxesFor const):
(WebCore::LayoutIntegration::LineLayout::elementBoxFor const):
(WebCore::LayoutIntegration::LineLayout::rootLayoutBox const):
(WebCore::LayoutIntegration::LineLayout::rootLayoutBox):
(WebCore::LayoutIntegration::LineLayout::hitTest):
- layout/integration/LayoutIntegrationLineLayout.h:
- layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::~Box):
- layout/layouttree/LayoutBox.h:
Devirtualize.
- layout/layouttree/LayoutContainer.cpp:
(WebCore::Layout::Container::appendChild):
- layout/layouttree/LayoutContainer.h:
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::TreeBuilder::createBox):
(WebCore::Layout::TreeBuilder::createTextBox):
(WebCore::Layout::TreeBuilder::createContainer):
(WebCore::Layout::TreeBuilder::createLayoutBox):
Factor ownership handling to these create functions.
(WebCore::Layout::TreeBuilder::buildTableStructure):
(WebCore::Layout::TreeBuilder::buildSubTree):
- layout/layouttree/LayoutTreeBuilder.h:
(WebCore::Layout::LayoutTreeContent::addBox):
(WebCore::Layout::LayoutTreeContent::addContainer):
Put Boxes and Containers to different maps for correct destruction.
- 8:02 AM Changeset in webkit [254805] by
-
- 7 edits in trunk/Source/WebCore
[LFC][IFC] Move away from placing individual InlineItems on the line
https://bugs.webkit.org/show_bug.cgi?id=206479
<rdar://problem/58716223>
Reviewed by Antti Koivisto.
<div> text content and more </div>
[ ][text][ ][content][ ][and][ ]more[ ]
Instead of placing all these inline items on the line (LineBuilder::InlineItemRun) and merge them at InlineBuilder::close(),
let's expand existing runs(LineBuilder::Run) when possible ([text content and ][more]).
This helps performance and memory consumption when the line ends up having many inline itmes (e.g. white-space: nowrap).
- layout/displaytree/DisplayRun.h:
(WebCore::Display::Run::TextContext::expand):
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine):
- layout/inlineformatting/InlineFormattingContextQuirks.cpp:
(WebCore::Layout::InlineFormattingContext::Quirks::lineDescentNeedsCollapsing const):
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::LineBuilder):
(WebCore::Layout::LineBuilder::initialize):
(WebCore::Layout::LineBuilder::close):
(WebCore::Layout::LineBuilder::alignContentVertically):
(WebCore::Layout::LineBuilder::justifyRuns):
(WebCore::Layout::LineBuilder::alignHorizontally):
(WebCore::Layout::LineBuilder::removeTrailingTrimmableContent):
(WebCore::Layout::LineBuilder::visuallyCollapsePreWrapOverflowContent):
(WebCore::Layout::LineBuilder::collectHangingContent):
(WebCore::Layout::LineBuilder::append):
(WebCore::Layout::LineBuilder::appendNonBreakableSpace):
(WebCore::Layout::LineBuilder::appendInlineContainerEnd):
(WebCore::Layout::LineBuilder::appendTextContent):
(WebCore::Layout::LineBuilder::appendNonReplacedInlineBox):
(WebCore::Layout::LineBuilder::appendLineBreak):
(WebCore::Layout::LineBuilder::isVisuallyNonEmpty const):
(WebCore::Layout::LineBuilder::TrimmableTrailingContent::TrimmableTrailingContent):
(WebCore::Layout::LineBuilder::TrimmableTrailingContent::addFullyTrimmableContent):
(WebCore::Layout::LineBuilder::TrimmableTrailingContent::addPartiallyTrimmableContent):
(WebCore::Layout::LineBuilder::TrimmableTrailingContent::remove):
(WebCore::Layout::LineBuilder::TrimmableTrailingContent::removePartiallyTrimmableContent):
(WebCore::Layout::LineBuilder::Run::Run):
(WebCore::Layout::m_textContext):
(WebCore::Layout::LineBuilder::Run::expand):
(WebCore::Layout::LineBuilder::Run::hasTrailingLetterSpacing const):
(WebCore::Layout::LineBuilder::Run::trailingLetterSpacing const):
(WebCore::Layout::LineBuilder::Run::removeTrailingLetterSpacing):
(WebCore::Layout::LineBuilder::Run::removeTrailingWhitespace):
(WebCore::Layout::LineBuilder::Run::visuallyCollapseTrailingWhitespace):
(WebCore::Layout::LineBuilder::Run::adjustExpansionBehavior):
(WebCore::Layout::LineBuilder::Run::expansionBehavior const):
(WebCore::Layout::LineBuilder::Run::setComputedHorizontalExpansion):
(WebCore::Layout::LineBuilder::ContinuousContent::canInlineItemRunBeExpanded): Deleted.
(WebCore::Layout::LineBuilder::ContinuousContent::ContinuousContent): Deleted.
(WebCore::Layout::LineBuilder::ContinuousContent::isEligible const): Deleted.
(WebCore::Layout::LineBuilder::ContinuousContent::append): Deleted.
(WebCore::Layout::LineBuilder::ContinuousContent::close): Deleted.
(WebCore::Layout::m_isCollapsedToVisuallyEmpty): Deleted.
(WebCore::Layout::shouldPreserveLeadingContent): Deleted.
(WebCore::Layout::LineBuilder::revert): Deleted.
(WebCore::Layout::LineBuilder::justifyRuns const): Deleted.
(WebCore::Layout::LineBuilder::TrimmableTrailingContent::append): Deleted.
(WebCore::Layout::LineBuilder::TrimmableTrailingContent::removeTrailingRun): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::InlineItemRun): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::isTrimmableWhitespace const): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::hasTrailingLetterSpacing const): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::trailingLetterSpacing const): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::setCollapsesToZeroAdvanceWidth): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::removeTrailingLetterSpacing): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::hasEmptyTextContent const): Deleted.
- layout/inlineformatting/InlineLineBuilder.h:
(WebCore::Layout::LineBuilder::Run::logicalWidth const):
(WebCore::Layout::LineBuilder::Run::shrinkHorizontally):
(WebCore::Layout::LineBuilder::Run::adjustLogicalTop):
(WebCore::Layout::LineBuilder::Run::hasTrailingWhitespace const):
(WebCore::Layout::LineBuilder::Run::hasCollapsibleTrailingWhitespace const):
(WebCore::Layout::LineBuilder::Run::hasCollapsedTrailingWhitespace const):
(WebCore::Layout::LineBuilder::Run::trailingWhitespaceWidth const):
(WebCore::Layout::LineBuilder::TrimmableTrailingContent::width const):
(WebCore::Layout::LineBuilder::TrimmableTrailingContent::isTrailingRunFullyTrimmable const):
(WebCore::Layout::LineBuilder::TrimmableTrailingContent::isTrailingRunPartiallyTrimmable const):
(WebCore::Layout::LineBuilder::TrimmableTrailingContent::reset):
(WebCore::Layout::LineBuilder::Run::trailingWhitespaceType const):
(WebCore::Layout::LineBuilder::Run::isCollapsedToVisuallyEmpty const): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::layoutBox const): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::style const): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::logicalLeft const): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::logicalWidth const): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::textContext const): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::isText const): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::isBox const): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::isContainerStart const): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::isContainerEnd const): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::isLineBreak const): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::type const): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::isCollapsed const): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::moveHorizontally): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::adjustLogicalWidth): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::isCollapsedToZeroAdvanceWidth const): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::isCollapsible const): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::isWhitespace const): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::hasExpansionOpportunity const): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::operator== const): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::operator!= const): Deleted.
(WebCore::Layout::LineBuilder::TrimmableTrailingContent::firstRunIndex): Deleted.
- layout/inlineformatting/LineLayoutContext.cpp:
(WebCore::Layout::LineLayoutContext::layoutLine):
- 7:19 AM Changeset in webkit [254804] by
-
- 4 edits in trunk/Source
[GTK] Remove usage of deprecated GTimeVal
https://bugs.webkit.org/show_bug.cgi?id=206358
Reviewed by Žan Doberšek.
Source/WebKit:
Use g_get_monotonic_time() for counting clicks instead of
deprecated and unsafe API.
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(ClickCounter::currentClickCountForGdkButtonEvent):
Source/WTF:
Use g_get_real_time() directly instead of deprecated and unsafe API.
- wtf/CurrentTime.cpp:
(WTF::currentTime):
- 5:52 AM Changeset in webkit [254803] by
-
- 15 edits in trunk/LayoutTests
[WPE] Gardening, rebase lines and lint TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=206482
Unreviewed gardening.
- platform/wpe/TestExpectations: Removed duplicated entries and
references to non-existing files
- platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-events.https-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/encrypted-media/idlharness.https-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any.worker-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-mode.any-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-mode.any.worker-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/svg/import/color-prop-02-f-manual-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/svg/import/color-prop-03-t-manual-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-intro-01-t-manual-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/svg/import/types-dom-08-f-manual-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-percentage-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-003-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/svg/shapes/scripted/disabled-shapes-not-hit-expected.txt: