Timeline
Jan 27, 2021:
- 10:54 PM Changeset in webkit [272004] by
-
- 6 edits11 adds in trunk
REGRESSION(r268615): images flicker on apple.com/ios/ios-14
https://bugs.webkit.org/show_bug.cgi?id=221054
<rdar://problem/72880447>
Reviewed by Dean Jackson.
Source/WebCore:
When we added support for accelerated animations of individual transform properties in r268615 (bug 217842),
we made it so that base values of each transform-related property had a non-interpolating animation in the
Core Animation animations list that would combine with interpolating animations for that property as additive
animations. Prior to any of those animations, we'd reset the combined transform with an identity transform
as another non-interpolating animation.
However, we neglected to consider the case where one of the interpolating animations would not start right
away if a positive delay was set. In the case of this apple.com page, the target element would be composited
due to a "will-change: transform" style, and a non-animated "transform" was set as well as an animation for
the "transform" property with a delay.
Since we had a "transform" animation, we'd create a Core Animation animations lists as follows:
- non-interpolating, non-additive animation set to the identity matrix
- interpolating, additive animation with the keyframes set in the CSS animation, with a begin time set to the current time plus the specified delay
The result of this was that during the animation delay, the static "transform" property was overridden
by animation #1 until animation #2 would kick in.
We now make it so that for each transform-related property, we create a non-interpoloating, additive animation
to represent the static value for that property for the duration of any potential delay until the first
interpolating animation for this property starts.
In this example, the Core Animation animations list is now as follows:
- non-interpolating, non-additive animation set to the identity matrix
- non-interpolating, additive animation set to the static transform value
- interpolating, additive animation with the keyframes set in the CSS animation, with a begin time set to the current time plus the specified delay
We implement this with a new lambda function within GraphicsLayerCA::updateAnimations() called
addAnimationsForProperty() which adds a non-interpolating animation in two cases:
- if there is no animation for this property at all, making it last forever
- if all animations have a delay, making it last until the first animation starts
Tests: webanimations/multiple-transform-properties-and-multiple-transform-properties-animation-with-delay-on-forced-layer.html
webanimations/rotate-property-and-rotate-animation-with-delay-on-forced-layer.html
webanimations/scale-property-and-scale-animation-with-delay-on-forced-layer.html
webanimations/transform-property-and-transform-animation-with-delay-on-forced-layer.html
webanimations/translate-property-and-translate-animation-with-delay-on-forced-layer.html
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateAnimations):
LayoutTests:
Add a series of tests ensuring that starting an animation for transform-related properties does not clobber the static
value for this property. We only run those tests on WK2 because running those in WK1 is flaky as there doesn't seem
to be a solid test utility to determine that Core Animation animations have been committed, even with long delays
that would make tests run slow.
- TestExpectations:
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
- webanimations/multiple-transform-properties-and-multiple-transform-properties-animation-with-delay-on-forced-layer-expected.html: Added.
- webanimations/multiple-transform-properties-and-multiple-transform-properties-animation-with-delay-on-forced-layer.html: Added.
- webanimations/resources/wait-until-animations-are-committed.js: Added.
- webanimations/rotate-property-and-rotate-animation-with-delay-on-forced-layer-expected.html: Added.
- webanimations/rotate-property-and-rotate-animation-with-delay-on-forced-layer.html: Added.
- webanimations/scale-property-and-scale-animation-with-delay-on-forced-layer-expected.html: Added.
- webanimations/scale-property-and-scale-animation-with-delay-on-forced-layer.html: Added.
- webanimations/transform-property-and-transform-animation-with-delay-on-forced-layer-expected.html: Added.
- webanimations/transform-property-and-transform-animation-with-delay-on-forced-layer.html: Added.
- webanimations/translate-property-and-translate-animation-with-delay-on-forced-layer-expected.html: Added.
- webanimations/translate-property-and-translate-animation-with-delay-on-forced-layer.html: Added.
- 9:35 PM Changeset in webkit [272003] by
-
- 1 copy in tags/Safari-611.1.10.3.2
Tag Safari-611.1.10.3.2.
- 9:28 PM Changeset in webkit [272002] by
-
- 8 edits in branches/safari-611.1.10.3-branch/Source
Versioning.
WebKit-7611.1.10.3.2
- 9:22 PM Changeset in webkit [272001] by
-
- 1 copy in tags/Safari-611.1.10.2.2
Tag Safari-611.1.10.2.2.
- 9:21 PM Changeset in webkit [272000] by
-
- 5 edits1 move24 adds in trunk/JSTests
[JSC] Update test262
https://bugs.webkit.org/show_bug.cgi?id=221078
Reviewed by Alexey Shvayka.
Update test262 to the latest one.
- test262/latest-changes-summary.txt:
- test262/test/built-ins/Array/prototype/sort/precise-comparefn-throws.js: Added.
(set logs):
(set const):
- test262/test/built-ins/Array/prototype/sort/precise-getter-appends-elements.js: Added.
- test262/test/built-ins/Array/prototype/sort/precise-getter-decreases-length.js: Added.
- test262/test/built-ins/Array/prototype/sort/precise-getter-deletes-predecessor.js: Added.
- test262/test/built-ins/Array/prototype/sort/precise-getter-deletes-successor.js: Added.
- test262/test/built-ins/Array/prototype/sort/precise-getter-increases-length.js: Added.
- test262/test/built-ins/Array/prototype/sort/precise-getter-pops-elements.js: Added.
- test262/test/built-ins/Array/prototype/sort/precise-getter-sets-predecessor.js: Added.
- test262/test/built-ins/Array/prototype/sort/precise-getter-sets-successor.js: Added.
- test262/test/built-ins/Array/prototype/sort/precise-prototype-accessors.js: Added.
(set logs):
- test262/test/built-ins/Array/prototype/sort/precise-prototype-element.js: Added.
- test262/test/built-ins/Array/prototype/sort/precise-setter-appends-elements.js: Added.
- test262/test/built-ins/Array/prototype/sort/precise-setter-decreases-length.js: Added.
- test262/test/built-ins/Array/prototype/sort/precise-setter-deletes-predecessor.js: Added.
- test262/test/built-ins/Array/prototype/sort/precise-setter-deletes-successor.js: Added.
- test262/test/built-ins/Array/prototype/sort/precise-setter-increases-length.js: Added.
- test262/test/built-ins/Array/prototype/sort/precise-setter-pops-elements.js: Added.
- test262/test/built-ins/Array/prototype/sort/precise-setter-sets-predecessor.js: Added.
- test262/test/built-ins/Array/prototype/sort/precise-setter-sets-successor.js: Added.
- test262/test/built-ins/Object/seal/object-seal-configurable-attribute-of-own-data-property-of-o-is-set-from-true-to-false-and-other-attributes-of-the-property-are-unaltered.js: Renamed from JSTests/test262/test/built-ins/Object/seal/object-seal-the-configurable-attribute-of-own-data-property-of-o-is-set-from-true-to-false-and-other-attributes-of-the-property-are-unaltered.js.
- test262/test/intl402/DateTimeFormat/prototype/formatRange/date-same-returns-single-date.js:
(dtf.format):
- test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/date-same-returns-single-date.js:
(assert.sameValue):
- test262/test/language/expressions/class/elements/super-access-from-arrow-func-on-field.js: Added.
(C):
(C.staticFunc):
- test262/test/language/statements/class/elements/super-access-from-arrow-func-on-field.js: Added.
(C.prototype.func):
(C.staticFunc):
(C):
- test262/test/language/statements/for-of/head-lhs-async-dot.js: Added.
- test262/test/language/statements/for-of/head-lhs-async-invalid.js: Added.
- test262/test/language/statements/for/head-init-async-of.js: Added.
(async of):
- test262/test262-Revision.txt:
- 9:17 PM Changeset in webkit [271999] by
-
- 8 edits in branches/safari-611.1.10.2-branch/Source
Versioning.
WebKit-7611.1.10.2.2
- 8:59 PM Changeset in webkit [271998] by
-
- 1 copy in tags/Safari-611.1.10.0.6
Tag Safari-611.1.10.0.6.
- 8:53 PM Changeset in webkit [271997] by
-
- 8 edits in branches/safari-611.1.10.0-branch/Source
Versioning.
WebKit-7611.1.10.0.6
- 8:31 PM Changeset in webkit [271996] by
-
- 1 copy in tags/Safari-611.1.10.1.5
Tag Safari-611.1.10.1.5.
- 8:29 PM Changeset in webkit [271995] by
-
- 8 edits in branches/safari-611.1.10.1-branch/Source
Versioning.
WebKit-7611.1.10.1.5
- 5:34 PM Changeset in webkit [271994] by
-
- 2 edits in trunk/Source/WebCore
Don't link IOSurfaceAccelerator on simulator builds
https://bugs.webkit.org/show_bug.cgi?id=221066
rdar://73681508
Reviewed by Tim Horton.
- Configurations/WebCore.xcconfig: Don't link if the sdk matches "simulator".
- 5:31 PM Changeset in webkit [271993] by
-
- 71 edits2 copies6 adds in trunk
WebAssembly: add support for stream APIs
https://bugs.webkit.org/show_bug.cgi?id=173105
Reviewed by Keith Miller.
.:
- Source/cmake/OptionsFTW.cmake:
- Source/cmake/WebKitFeatures.cmake:
JSTests:
- wasm/stress/resources/tsf.wasm: Added.
- wasm/stress/wasm-streaming-compiler-compile.js: Added.
(shouldBe):
(slice):
(async main):
(main.catch):
- wasm/stress/wasm-streaming-compiler-instantiate.js: Added.
(shouldBe):
(slice):
(async main.):
(async main):
(main.catch):
LayoutTests/imported/w3c:
- web-platform-tests/wasm/wasm_stream_compile_test-expected.txt:
- web-platform-tests/wasm/wasm_stream_compile_test.html:
- web-platform-tests/wasm/wasm_stream_instantiate_test-expected.txt:
- web-platform-tests/wasm/wasm_stream_instantiate_test.html:
- web-platform-tests/wasm/webapi/abort.any-expected.txt:
- web-platform-tests/wasm/webapi/abort.any.worker-expected.txt:
- web-platform-tests/wasm/webapi/body.any-expected.txt:
- web-platform-tests/wasm/webapi/body.any.worker-expected.txt:
- web-platform-tests/wasm/webapi/contenttype.any-expected.txt:
- web-platform-tests/wasm/webapi/contenttype.any.worker-expected.txt:
- web-platform-tests/wasm/webapi/empty-body.any-expected.txt:
- web-platform-tests/wasm/webapi/empty-body.any.worker-expected.txt:
- web-platform-tests/wasm/webapi/historical.any-expected.txt:
- web-platform-tests/wasm/webapi/historical.any.worker-expected.txt:
- web-platform-tests/wasm/webapi/idlharness.any-expected.txt:
- web-platform-tests/wasm/webapi/idlharness.any.worker-expected.txt:
- web-platform-tests/wasm/webapi/instantiateStreaming-bad-imports.any-expected.txt:
- web-platform-tests/wasm/webapi/instantiateStreaming-bad-imports.any.worker-expected.txt:
- web-platform-tests/wasm/webapi/instantiateStreaming.any-expected.txt:
- web-platform-tests/wasm/webapi/instantiateStreaming.any.worker-expected.txt:
- web-platform-tests/wasm/webapi/invalid-args.any-expected.txt:
- web-platform-tests/wasm/webapi/invalid-args.any.worker-expected.txt:
- web-platform-tests/wasm/webapi/invalid-code.any-expected.txt:
- web-platform-tests/wasm/webapi/invalid-code.any.worker-expected.txt:
- web-platform-tests/wasm/webapi/modified-contenttype.any-expected.txt:
- web-platform-tests/wasm/webapi/modified-contenttype.any.worker-expected.txt:
- web-platform-tests/wasm/webapi/origin.sub.any-expected.txt:
- web-platform-tests/wasm/webapi/origin.sub.any.worker-expected.txt:
- web-platform-tests/wasm/webapi/rejected-arg.any-expected.txt:
- web-platform-tests/wasm/webapi/rejected-arg.any.worker-expected.txt:
- web-platform-tests/wasm/webapi/status.any-expected.txt:
- web-platform-tests/wasm/webapi/status.any.worker-expected.txt:
Source/JavaScriptCore:
This patch implements WebAssembly.{compileStreaming,instantiateStreaming}. JavaScriptCore offers Wasm::StreamingCompiler interface to WebCore,
so that WebCore can feed FetchResponse and compile wasm code in a streaming fashion.
Wasm::StreamingCompiler drives Wasm::LLIntPlan while it does not use Wasm::Worklist since currently Wasm::Worklist is not suitable abstraction for
streaming compilation which generates compilation tasks incrementally. Instead, Wasm::StreamingCompiler generates Wasm::StreamingPlan and enqueues
them to Wasm::Worklist, and each StreamingPlan compiles one function at a time. And we gather these compiled functions into the one LLIntPlan and
finally Wasm::StreamingCompiler completes Wasm::LLIntPlan.
We already have Wasm::StreamingParser, which is designed for streaming compilation. We can pass bytes to this parser, and this parser invokes a callback
when a new wasm function is found. Then, Wasm::StreamingCompiler generates Wasm::StreamingPlan for that.
We add WasmStreamingCompiler JS objects to JSC shell to test streaming compilation easily.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- builtins/WebAssembly.js:
(compileStreaming):
(instantiateStreaming):
- runtime/DeferredWorkTimer.cpp:
(JSC::DeferredWorkTimer::cancelPendingWork):
- runtime/DeferredWorkTimer.h:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
- runtime/JSGlobalObject.h:
- runtime/OptionsList.h:
- tools/JSDollarVM.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSDollarVM::finishCreation):
- wasm/WasmBBQPlan.cpp:
(JSC::Wasm::BBQPlan::BBQPlan):
- wasm/WasmBBQPlan.h:
- wasm/WasmCodeBlock.cpp:
(JSC::Wasm::CodeBlock::CodeBlock):
- wasm/WasmEntryPlan.cpp:
(JSC::Wasm::EntryPlan::EntryPlan):
- wasm/WasmEntryPlan.h:
- wasm/WasmLLIntPlan.cpp:
(JSC::Wasm::LLIntPlan::LLIntPlan):
(JSC::Wasm::LLIntPlan::didCompleteCompilation):
(JSC::Wasm::LLIntPlan::completeInStreaming):
(JSC::Wasm::LLIntPlan::didCompileFunctionInStreaming):
(JSC::Wasm::LLIntPlan::didFailInStreaming):
- wasm/WasmLLIntPlan.h:
- wasm/WasmModule.cpp:
(JSC::Wasm::Module::validateSync):
(JSC::Wasm::Module::validateAsync):
- wasm/WasmStreamingCompiler.cpp: Added.
(JSC::Wasm::StreamingCompiler::StreamingCompiler):
(JSC::Wasm::StreamingCompiler::~StreamingCompiler):
(JSC::Wasm::StreamingCompiler::create):
(JSC::Wasm::StreamingCompiler::didReceiveFunctionData):
(JSC::Wasm::StreamingCompiler::didCompileFunction):
(JSC::Wasm::StreamingCompiler::didFinishParsing):
(JSC::Wasm::StreamingCompiler::completeIfNecessary):
(JSC::Wasm::StreamingCompiler::didComplete):
(JSC::Wasm::StreamingCompiler::finalize):
(JSC::Wasm::StreamingCompiler::fail):
(JSC::Wasm::StreamingCompiler::cancel):
- wasm/WasmStreamingCompiler.h: Added.
- wasm/WasmStreamingParser.cpp:
- wasm/WasmStreamingParser.h:
- wasm/WasmStreamingPlan.cpp: Copied from Source/JavaScriptCore/builtins/WebAssembly.js.
(JSC::Wasm::StreamingPlan::StreamingPlan):
(JSC::Wasm::StreamingPlan::work):
- wasm/WasmStreamingPlan.h: Copied from Source/JavaScriptCore/wasm/js/JSWebAssembly.h.
- wasm/js/JSWebAssembly.cpp:
(JSC::JSWebAssembly::finishCreation):
(JSC::JSWebAssembly::instantiateForStreaming):
(JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/JSWebAssembly.h:
Source/WebCore:
Since WebAssembly.{compileStreaming,instantiateStreaming} needs to handle FetchResponse which is WebCore type, they need to be implemented in WebCore side.
To achieve that, JSC offers callback to JSGlobalObject, and WebCore JSDOMGlobalObject can implement them to offer WebAssembly.{compileStreaming,instantiateStreaming} features.
We use JSC's Wasm::StreamingCompiler to implement them. WebCore feeds bytes from FetchResponse and drives Wasm::StreamingCompiler.
- bindings/js/JSDOMGlobalObject.cpp:
(WebCore::handleResponseOnStreamingAction):
(WebCore::JSDOMGlobalObject::compileStreaming):
(WebCore::JSDOMGlobalObject::instantiateStreaming):
- bindings/js/JSDOMGlobalObject.h:
- bindings/js/JSDOMPromiseDeferred.cpp:
- bindings/js/JSDOMWindowBase.cpp:
(WebCore::tryAllocate): Deleted.
(WebCore::isResponseCorrect): Deleted.
(WebCore::handleResponseOnStreamingAction): Deleted.
(WebCore::JSDOMWindowBase::compileStreaming): Deleted.
(WebCore::JSDOMWindowBase::instantiateStreaming): Deleted.
- bindings/js/JSDOMWindowBase.h:
- bindings/js/JSWorkerGlobalScopeBase.cpp:
- bindings/js/JSWorkletGlobalScopeBase.cpp:
Source/WTF:
- wtf/PlatformEnable.h:
- 5:22 PM Changeset in webkit [271992] by
-
- 16 edits10 adds in trunk
Add support for color(a98-rgb ...) as part of CSS Color 4
https://bugs.webkit.org/show_bug.cgi?id=221018
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Add some new WPT tests for color(a98-rgb ) that will be upstreamed shortly.
- web-platform-tests/css/css-color/a98rgb-001-expected.html: Added.
- web-platform-tests/css/css-color/a98rgb-001.html: Added.
- web-platform-tests/css/css-color/a98rgb-002-expected.html: Added.
- web-platform-tests/css/css-color/a98rgb-002.html: Added.
- web-platform-tests/css/css-color/a98rgb-003-expected.html: Added.
- web-platform-tests/css/css-color/a98rgb-003.html: Added.
- web-platform-tests/css/css-color/a98rgb-004-expected.html: Added.
- web-platform-tests/css/css-color/a98rgb-004.html: Added.
Source/WebCore:
- css/CSSValueKeywords.in:
Add keyword for a98-rgb and a comment indicating that lab, which already exists as a value,
is also a valid identifier for the color function.
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForRGBTypes):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForSRGBOrDisplayP3Parameters): Deleted.
Generalize parseColorFunctionForSRGBOrDisplayP3Parameters to work for all RGB types, which now include
A98RGB.
- platform/graphics/ColorConversion.cpp:
(WebCore::SRGBTransferFunction::fromLinearClamping):
(WebCore::SRGBTransferFunction::toLinearClamping):
(WebCore::SRGBTransferFunction::fromLinearNonClamping):
(WebCore::SRGBTransferFunction::toLinearNonClamping):
(WebCore::A98RGBTransferFunction::fromLinearClamping):
(WebCore::A98RGBTransferFunction::toLinearClamping):
(WebCore::A98RGBTransferFunction::fromLinearNonClamping):
(WebCore::A98RGBTransferFunction::toLinearNonClamping):
(WebCore::toLinearClamping):
(WebCore::fromLinearClamping):
(WebCore::toLinearNonClamping):
(WebCore::fromLinearNonClamping):
(WebCore::toLinearSRGBA):
(WebCore::toLinearExtendedSRGBA):
(WebCore::toSRGBA):
(WebCore::toExtendedSRGBA):
(WebCore::toLinearDisplayP3):
(WebCore::toDisplayP3):
(WebCore::toLinearA98RGB):
(WebCore::toA98RGB):
(WebCore::toXYZA):
(WebCore::linearToRGBColorComponentClamping): Deleted.
(WebCore::rgbToLinearColorComponentClamping): Deleted.
(WebCore::linearToRGBColorComponentNonClamping): Deleted.
(WebCore::rgbToLinearColorComponentNonClamping): Deleted.
- platform/graphics/ColorConversion.h:
(WebCore::toA98RGB):
(WebCore::toLinearA98RGB):
(WebCore::callWithColorType):
Add conversion support for A98RGB and LinearA98RGB. Move gamma conversion functions
into structs named for the type of transfer function. While not used currently, this
will allow future templatizing of conversion to avoid so much boiler plate in the
future.
- platform/graphics/ColorSerialization.cpp:
(WebCore::serialization):
(WebCore::serializationForCSS):
(WebCore::serializationForHTML):
(WebCore::serializationForRenderTreeAsText):
- platform/graphics/ColorSerialization.h:
Add serialization support for color(a98-rgb ...).
- platform/graphics/ColorSpace.cpp:
- platform/graphics/ColorSpace.h:
Add A98RGB as a ColorSpace, which really just means it is something
ExtendedColor can hold.
- platform/graphics/cg/ColorSpaceCG.cpp:
- platform/graphics/cg/ColorSpaceCG.h:
Add support for creating a CGColorSpace for A98RGB.
- platform/graphics/ColorTypes.h:
(WebCore::operator==):
(WebCore::operator!=):
(WebCore::RGBAType::RGBAType):
(WebCore::asColorComponents):
(WebCore::SRGBA::SRGBA): Deleted.
(WebCore::ExtendedSRGBA::ExtendedSRGBA): Deleted.
(WebCore::LinearSRGBA::LinearSRGBA): Deleted.
(WebCore::LinearExtendedSRGBA::LinearExtendedSRGBA): Deleted.
(WebCore::DisplayP3::DisplayP3): Deleted.
(WebCore::LinearDisplayP3::LinearDisplayP3): Deleted.
(WebCore::callWithColorType): Deleted.
Simplify adding new RGB color types by adding a shared base class, RGBAType
and and a shared asColorComponents funciton. Also simplify all color types
by removing the need to define your own operator==/!= for each type by having
a single one that operates on any type that can have asColorComponents() called
on it.
To create a new RGB color (one with red, green and blue named components) one
now only needs to do:
template<typename T> struct Foo : RGBAType<Foo, T, RGBModel<T>> {
using RGBAType<Foo, T, RGBModel<T>>::RGBAType;
};
template<typename T> Foo(T, T, T, T) -> Foo<T>;
Additionally, if the type has gamma encoded and linear versions, it should have
either ausing GammaEncoded = ...orusing Linear = ...decalaring its
counterpart and should add a colorSpace member if the type is used by ExtendedColor.
Note, the deduction guide is necessary to keep things like the following working:
auto color = SRGB { float1, float2, ... };
Unfortunately, deduction does not come along when you explitily inherit constructors
like is being done for these. See the "Deducing from inherited constructors" section
in http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1021r4.html.
- platform/graphics/cairo/ImageBufferCairoBackend.cpp:
(WebCore::ImageBufferCairoBackend::transformColorSpace):
Update to use new name for gamma conversion functions.
LayoutTests:
Un-fail some now passing tests.
- fast/css/parsing-a98rgb-colors-expected.txt: Added.
- fast/css/parsing-a98rgb-colors.html: Added.
Add new tests for parsing color(a98-rgb ) colors.
- 5:11 PM Changeset in webkit [271991] by
-
- 6 edits in trunk/Source/WebKit
[iOS] add accessibility image extraction contextmenu item for revealing images
https://bugs.webkit.org/show_bug.cgi?id=221058
<rdar://problem/73382220>
Reviewed by Wenson Hsieh.
- UIProcess/API/Cocoa/_WKElementAction.h:
- UIProcess/API/Cocoa/_WKElementAction.mm:
(+[_WKElementAction _elementActionWithType:customTitle:assistant:]):
(+[_WKElementAction imageForElementActionType:]):
(elementActionTypeToUIActionIdentifier):
(uiActionIdentifierToElementActionType):
- UIProcess/ios/WKActionSheetAssistant.h:
- UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant defaultActionsForLinkSheet:]):
(-[WKActionSheetAssistant defaultActionsForImageSheet:]):
(-[WKActionSheetAssistant handleElementActionWithType:element:needsInteraction:]):
- Configurations/WebKit.xcconfig:
Link UniformTypeIdentifiers.framework for use in WebKitAdditions.
- 4:36 PM Changeset in webkit [271990] by
-
- 2 edits in trunk/Tools
[build.webkit.org] Add basic authentication
https://bugs.webkit.org/show_bug.cgi?id=221052
Reviewed by Jonathan Bedard.
- CISupport/build-webkit-org/master_buildbot2.cfg:
- 3:58 PM Changeset in webkit [271989] by
-
- 8 edits in trunk/Source
[GPUProcess] Move ownership of RingBuffer backing used by RemoteAudioSourceProviderManager::RemoteAudio to WebProcess
https://bugs.webkit.org/show_bug.cgi?id=221048
Reviewed by Geoffrey Garen.
Move ownership of RingBuffer backing used by RemoteAudioSourceProviderManager::RemoteAudio
from the GPUProcess to WebProcess, for jetsam purposes. This moves half a megabyte of memory
from the GPUProcess to the WebProcess on https://foobar404.github.io/Wave.js.
- Platform/SharedMemory.cpp:
(WebKit::SharedMemory::Handle::takeOwnershipOfMemory const):
- Platform/SharedMemory.h:
Add takeOwnershipOfMemory() API to SharedMemory::Handle to take ownership of memory and
assign it to a particular memory ledger, via mach_memory_entry_ownership().
- Platform/cocoa/SharedMemoryCocoa.cpp:
(WebKit::toVMMemoryLedger):
(WebKit::SharedMemory::Handle::takeOwnershipOfMemory const):
Add implementation to take ownership of memory when given a mach port.
(WebKit::SharedMemory::allocate):
Add VM_FLAGS_PURGABLE flag when calling mach_vm_allocate() so that memory ownership can
be transferred later on.
(WebKit::makeMemoryEntry):
First try to call mach_make_memory_entry_64() without the MAP_MEM_VM_SHARE flag since this
flag prevents transfer of the memory ownership via mach_memory_entry_ownership(). If this
fails, we try again with the MAP_MEM_VM_SHARE flag, to be safe. MAP_MEM_VM_SHARE allows
the memory entry to cover any virtual range, possibly backed by multiple VM objects.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- WebProcess/com.apple.WebProcess.sb.in:
Tweak the sandbox to allow the WebProcess to call mach_memory_entry_ownership().
- WebProcess/GPU/media/RemoteAudioSourceProviderManager.cpp:
(WebKit::RemoteAudioSourceProviderManager::RemoteAudio::setStorage):
Take ownership of RingBuffer backing memory.
- 2:14 PM Changeset in webkit [271988] by
-
- 12 edits7 adds in trunk
Send the end XRSessionEvent after the platform-specific steps for session shutdown have completed
https://bugs.webkit.org/show_bug.cgi?id=220835
Patch by Ada Chan <ada.chan@apple.com> on 2021-01-27
Reviewed by Chris Dumez.
Source/WebCore:
Tests: http/wpt/webxr/xrSession_end_device_reports_shutdown.https.html
http/wpt/webxr/xrSession_ended_by_system.https.html
http/wpt/webxr/xrSession_reject_multiple_end.https.html
- Add the TrackingAndRenderingClient protocol that the Device can hold a
weak reference to during a tracking and rendering session. WebXRSession
implements that protocol to handle cleanup after shutdown has completed.
- For platforms to report asynchronous completion of the session shutdown,
they can implement PlatformXR::Device::supportsSessionShutdownNotification()
to return true. This way WebXRSession will wait for the shutdown completion
(via the TrackingAndRenderingClient::sessionDidEnd() callback) before sending
the end XRSessionEvent and resolving the XRSession::end() promise.
- Update WebXRSession::end() to throw an InvalidStateError if called more
than once. This also matches Chromium's current behavior.
- Modules/webxr/WebXRSession.cpp:
(WebCore::WebXRSession::WebXRSession):
(WebCore::WebXRSession::shutdown):
(WebCore::WebXRSession::didCompleteShutdown):
(WebCore::WebXRSession::end):
(WebCore::WebXRSession::sessionDidEnd):
- Modules/webxr/WebXRSession.h:
- Modules/webxr/WebXRSession.idl:
- platform/xr/PlatformXR.h:
(PlatformXR::Device::setTrackingAndRenderingClient):
(PlatformXR::Device::supportsSessionShutdownNotification const):
- testing/WebFakeXRDevice.cpp:
(WebCore::SimulatedXRDevice::simulateShutdownCompleted):
(WebCore::SimulatedXRDevice::shutDownTrackingAndRendering):
(WebCore::WebFakeXRDevice::setSupportsShutdownNotification):
(WebCore::WebFakeXRDevice::simulateShutdown):
- testing/WebFakeXRDevice.h:
- testing/WebFakeXRDevice.idl:
LayoutTests:
- platform/mac/TestExpectations:
- platform/wpe/TestExpectations:
- http/wpt/webxr/xrSession_end_device_reports_shutdown.https.html: Added.
- http/wpt/webxr/xrSession_end_device_reports_shutdown.https-expected.html: Added.
- http/wpt/webxr/xrSession_ended_by_system.https.html: Added.
- http/wpt/webxr/xrSession_ended_by_system.https-expected.html: Added.
- http/wpt/webxr/xrSession_reject_multiple_end.https.html: Added.
- http/wpt/webxr/xrSession_reject_multiple_end.https-expected.html: Added.
- 2:11 PM Changeset in webkit [271987] by
-
- 8 edits in trunk/Source/JavaScriptCore
[JSC] Avoid using DirectCall when executable is wasm function
https://bugs.webkit.org/show_bug.cgi?id=221055
Reviewed by Keith Miller.
This is a partial patch from https://bugs.webkit.org/show_bug.cgi?id=220339, which is reverted because of Facebook crash.
For now, we just avoid using DirectCall to wasm functions so that normal Call will be used, and it is efficient. This
patch avoids JetStream2 regression.
- dfg/DFGOperations.cpp:
(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
- dfg/DFGStrengthReductionPhase.cpp:
(JSC::DFG::StrengthReductionPhase::handleNode):
- jit/JITOperations.cpp:
(JSC::virtualForWithFunction):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::setUpCall):
- runtime/Intrinsic.cpp:
(JSC::intrinsicName):
- runtime/Intrinsic.h:
- wasm/js/WebAssemblyFunction.cpp:
(JSC::WebAssemblyFunction::create):
- 2:08 PM Changeset in webkit [271986] by
-
- 3 edits in branches/safari-611-branch/Source/WebKit
Cherry-pick r271710. rdar://problem/73678158
[macOS] The development WebContent XPC service crashes under WebKit::AuxiliaryProcess::initializeSandbox
https://bugs.webkit.org/show_bug.cgi?id=220777
<rdar://problem/73382584>
Reviewed by Brent Fulgham.
This happens because the development XPC service does not have the required private entitlement to enable message filtering in the sandbox,
and therefore fails to apply the sandbox. The existing runtime switching to enable message filtering based on the presence of the entitlement
is not working correctly. The 'if' clause checking the sandbox parameter in the sandbox cannot be nested inside an 'allow' clause, it appears.
- WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::initializeSandbox):
- WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271710 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:08 PM Changeset in webkit [271985] by
-
- 5 edits in branches/safari-611-branch/Source
Cherry-pick r271620. rdar://problem/73678115
Web Inspector: Font Details sidebar - Fractional variation axis ranges/default values are rounded.
https://bugs.webkit.org/show_bug.cgi?id=220474
Reviewed by BJ Burg.
Source/WebCore:
Use float instead of int for variation axis range and defaults, as these values can be fractional.
- platform/graphics/FontPlatformData.h: (WebCore::FontPlatformData::FontVariationAxis::FontVariationAxis): (WebCore::FontPlatformData::FontVariationAxis::defaultValue const): (WebCore::FontPlatformData::FontVariationAxis::minimumValue const): (WebCore::FontPlatformData::FontVariationAxis::maximumValue const):
Source/WebInspectorUI:
Fixes Font Details sidebar display of variation axis values, ranges, and defaults to show fractional precision
when such precision is present.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Views/FontDetailsPanel.js: (WI.FontDetailsPanel.prototype.refresh): (WI.FontDetailsPanel.prototype._formatSimpleSingleValue): (WI.FontDetailsPanel.prototype._formatVariationValue): (WI.FontDetailsPanel.prototype._createVariationValueElement): (WI.FontDetailsPanel.prototype._formatAxisValueAsString):
- Show fractional values with between 0 and 2 decimal places.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271620 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:59 PM Changeset in webkit [271984] by
-
- 3 edits in trunk/Source/JavaScriptCore
Unreviewed, rebaselining builtin generator test result files
https://bugs.webkit.org/show_bug.cgi?id=221028
- Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result:
- 1:15 PM Changeset in webkit [271983] by
-
- 2 edits in trunk/LayoutTests
[GPU Process] Remove blind skips from TestExpectations file
https://bugs.webkit.org/show_bug.cgi?id=220935
Patch by Rini Patel <rini_patel@apple.com> on 2021-01-27
Reviewed by Simon Fraser.
- gpu-process/TestExpectations:
- 1:07 PM Changeset in webkit [271982] by
-
- 4 edits1 move in trunk/Source/WebCore
Make MediaRemoteSoftLink an Objective-C++ file
https://bugs.webkit.org/show_bug.cgi?id=221057
<rdar://73587795>
Reviewed by Tim Horton.
MediaRemoteSoftLink.cpp indirectly includes <MediaRemote/MediaRemote.h>, which is Objective-C.
So MediaRemoteSoftLink needs to be Objective-C++ to avoid compile errors.
- PlatformMac.cmake:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/mac/MediaRemoteSoftLink.mm: Renamed from Source/WebCore/platform/mac/MediaRemoteSoftLink.cpp.
- 1:00 PM Changeset in webkit [271981] by
-
- 15 edits2 adds in branches/safari-612.1.1-branch
Cherry-pick r271930. rdar://problem/73674739
REGRESSION (r271584): Hovering slowly over and out of "Top 100" items on liberation.fr does not restore animated state
https://bugs.webkit.org/show_bug.cgi?id=220862
<rdar://problem/73501684>
Reviewed by Simon Fraser.
Source/WebCore:
The optimization in r271584 fails to invalidate hover/active style when clearing the existing state under some circumstances.
Test: fast/selectors/hover-invalidation-descendant-clear.html
- dom/Document.cpp: (WebCore::Document::updateHoverActiveState):
We would do descendant invalidation when changing the hover/active state of the rootmost changing element.
However since the state of descendants was changed before this invalidation happened we would try to invalidate
them in a tree that was already in the new state.
Fix by scoping the descendant invalidation over all changes.
- dom/Element.cpp: (WebCore::Element::setActive): (WebCore::Element::setHovered):
Switch to new 3-state enum type that allows us to skip descendant invalidation that has already been done by the caller.
Skope it to Style namepace.
- dom/Element.h:
- html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::setActive):
- html/HTMLAnchorElement.h:
- html/HTMLLabelElement.cpp: (WebCore::HTMLLabelElement::setActive): (WebCore::HTMLLabelElement::setHovered):
- html/HTMLLabelElement.h:
- html/shadow/SpinButtonElement.cpp: (WebCore::SpinButtonElement::setHovered):
- html/shadow/SpinButtonElement.h:
- style/PseudoClassChangeInvalidation.cpp: (WebCore::Style::PseudoClassChangeInvalidation::computeInvalidation):
- style/PseudoClassChangeInvalidation.h: (WebCore::Style::PseudoClassChangeInvalidation::PseudoClassChangeInvalidation):
- style/StyleValidity.h:
LayoutTests:
- fast/selectors/hover-invalidation-descendant-clear-expected.html: Added.
- fast/selectors/hover-invalidation-descendant-clear.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271930 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:00 PM Changeset in webkit [271980] by
-
- 2 edits in branches/safari-612.1.1-branch/Source/WebKit
Cherry-pick r271887. rdar://problem/73674897
Revert part of r271493
https://bugs.webkit.org/show_bug.cgi?id=220066
<rdar://problem/73615999>
We have an internal app that calls registerSchemeForCustomProtocol on a non-main thread before WebKit initializes.
While this is a problem, we have to not crash on launch until they fix this.
- UIProcess/API/Cocoa/WKBrowsingContextController.mm: (+[WKBrowsingContextController registerSchemeForCustomProtocol:]): (+[WKBrowsingContextController unregisterSchemeForCustomProtocol:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271887 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:00 PM Changeset in webkit [271979] by
-
- 19 edits1 delete in branches/safari-612.1.1-branch
Cherry-pick r271878. rdar://problem/73674734
Made TestWebKitAPI.WebKit.PrintFrame flaky
Reverted changeset:
"Use event loop to set title"
https://bugs.webkit.org/show_bug.cgi?id=218496
https://trac.webkit.org/changeset/271514
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271878 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:00 PM Changeset in webkit [271978] by
-
- 4 edits in branches/safari-612.1.1-branch
Cherry-pick r271871. rdar://problem/73674787
ASSERT NOT REACHED in WebCore::DisplayList::isDrawingItem
https://bugs.webkit.org/show_bug.cgi?id=220948
<rdar://problem/73588734>
Reviewed by Tim Horton.
Source/WebCore:
Additionally, fix a bug that is also caught when running this API test under debug. In the case where an out of
line item failed to decode (and is thus invalid), we still attempt to invoke its destructor when we're done
iterating, underDisplayList::iterator::clearCurrentItem(); we should not be doing this in the case where
m_isValidisfalse, since we already know thatm_currentBufferForItemeither contains an item that has
already been destroyed, or contains garbage data.
- platform/graphics/displaylists/DisplayList.cpp: (WebCore::DisplayList::DisplayList::iterator::clearCurrentItem):
Tools:
The API test
DisplayListTests.OutOfLineItemDecodingFailurewas intended to read from the display list copy
rather than the original list, in order to exercise the (intentional) decoding failure.
Instead, this test erroneously attempts to read from the original display list (which, importantly, doesn't have
a reading client) and ends up exercising the decoding failure anyways, but additionally hits a debug assertion
in the process. Simply fix this by reading out of the correct display list (and rename the original display list
in the process to make the test more clear).
- TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp: (TestWebKitAPI::TEST)
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271871 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:55 PM Changeset in webkit [271977] by
-
- 1 copy in branches/safari-612.1.1-branch
New branch.
- 12:53 PM Changeset in webkit [271976] by
-
- 5 edits in trunk/Source/WebKit
[iOS] Conditionalize debugging support on internal builds
https://bugs.webkit.org/show_bug.cgi?id=221053
<rdar://problem/73520300>
Reviewed by Per Arne Vollan.
We should restrict use of the (debugging-support) rules in our iOS sandboxes to internal OS, since those
features are not accessible to production users.
Since these restrictions don't impact end user debugging use cases, we'll also rename the rules to
"internal-debugging-support".
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 12:49 PM Changeset in webkit [271975] by
-
- 5 edits2 copies6 deletes in trunk
REGRESSION (r243266): SVGStopElement does not react upon 'offset' attribute changes
https://bugs.webkit.org/show_bug.cgi?id=220971
Reviewed by Said Abou-Hallawa.
Fix regression from r243266. SVGAnimatedNumber::create() needs a
reference to the owner SVGElement, otherwise it cannot react to dynamic
changes of the attribute and invalidate the element.
This is covered by two pixel tests: svg/custom/deep-dynamic-updates.svg
and svg/custom/js-update-stop.svg, however since we no longer run pixel
tests by default nobody noticed this. Convert these tests to reftests
to avoid this in the future.
Source/WebCore:
Tests: svg/custom/deep-dynamic-updates-expected.svg
svg/custom/js-update-stop-expected.svg
- svg/SVGStopElement.h:
LayoutTests:
- svg/custom/deep-dynamic-updates-expected.svg: Copied from LayoutTests/svg/custom/deep-dynamic-updates.svg.
- svg/custom/deep-dynamic-updates-expected.txt: Removed.
- svg/custom/deep-dynamic-updates.svg:
- svg/custom/js-update-stop-expected.svg: Copied from LayoutTests/svg/custom/js-update-stop.svg.
- svg/custom/js-update-stop-expected.txt: Removed.
- svg/custom/js-update-stop.svg:
- 12:47 PM Changeset in webkit [271974] by
-
- 1 copy in tags/Safari-611.1.10.0.5
Tag Safari-611.1.10.0.5.
- 12:44 PM Changeset in webkit [271973] by
-
- 1 copy in tags/Safari-611.1.10.1.4
Tag Safari-611.1.10.1.4.
- 12:42 PM Changeset in webkit [271972] by
-
- 8 edits in branches/safari-611.1.10.0-branch/Source
Versioning.
WebKit-7611.1.10.0.5
- 12:39 PM Changeset in webkit [271971] by
-
- 8 edits in branches/safari-611.1.10.1-branch/Source
Versioning.
WebKit-7611.1.10.1.4
- 12:24 PM Changeset in webkit [271970] by
-
- 14 edits in trunk
WKWebView closeAllMediaPresentations API does not have a completion handler
https://bugs.webkit.org/show_bug.cgi?id=220741
<rdar://problem/73045904>
Reviewed by Youenn Fablet.
Source/WebKit:
Adds a completion handler to WKWebView closeAllMediaPresentations.
This required handling the case for video fullscreen, picture-in-picture,
and element fullscreen. Closing fullscreen requires multiple async
operations, some of which go out of WebKit scope like PIPViewControllerDelegate
functions, so for simplicity, the callbacks are stored in
the respective *FullscreenManagerProxy object and called when
didExitFullscreen() is executed. Any additional calls to closeAllMediaPresentations
made before the previous has finished will have their callbacks
appended to a vector and called when all presentations have closed.
- UIProcess/API/Cocoa/WKWebView.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView closeAllMediaPresentations:]):
(-[WKWebView _closeAllMediaPresentations]):
(-[WKWebView _allMediaPresentationsClosed]):
New SPI for testing. Previously these tests used JavaScript to check
for inline video but updating the JS value is async and may not be completed
by the time didExitFullscreen() is called. So, this SPI will help avoid
flakiness.
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
- UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
(WebKit::VideoFullscreenModelContext::requestFullscreenModeWithCallback):
(WebKit::VideoFullscreenManagerProxy::~VideoFullscreenManagerProxy):
(WebKit::VideoFullscreenManagerProxy::forEachSession):
(WebKit::VideoFullscreenManagerProxy::callCloseCompletionHandlers):
(WebKit::VideoFullscreenManagerProxy::requestFullscreenModeWithCallback):
(WebKit::VideoFullscreenManagerProxy::didExitFullscreen):
Add a new requestFullscreenModeWithCallback function
for VideoFullscreenModelContext which is used when closing fullscreen
video. This way we don't need to adjust an overridden function.
- UIProcess/WebFullScreenManagerProxy.cpp:
(WebKit::WebFullScreenManagerProxy::~WebFullScreenManagerProxy):
(WebKit::WebFullScreenManagerProxy::callCloseCompletionHandlers):
(WebKit::WebFullScreenManagerProxy::closeWithCallback):
(WebKit::WebFullScreenManagerProxy::didExitFullScreen):
- UIProcess/WebFullScreenManagerProxy.h:
Ditto, create a new function here to be used only for closing
media presentations so we don't have to pass empty completion handlers
unnecessarily.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::pauseAllMediaPlayback):
(WebKit::WebPageProxy::suspendAllMediaPlayback):
(WebKit::WebPageProxy::resumeAllMediaPlayback):
- UIProcess/WebPageProxy.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::pauseAllMediaPlayback):
(WebKit::WebPage::suspendAllMediaPlayback):
(WebKit::WebPage::resumeAllMediaPlayback):
- WebProcess/WebPage/WebPage.h:
Remove unnecessary voids.
Tools:
Update API tests to use the new completion handler. Move from using JS
to a new SPI to check for inline video to avoid flakiness because the
JS value is async and may not be completed by the time
didExitFullscreen() is called.
Add a new case for multiple sequential calls to
closeAllMediaPresentations.
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewCloseAllMediaPresentations.mm:
(TEST):
- 12:10 PM Changeset in webkit [271969] by
-
- 15 edits1 add in trunk
[iOS] expose existing macOS-only
-[WKWebView _pageExtendedBackgroundColor]SPI
https://bugs.webkit.org/show_bug.cgi?id=221015
<rdar://problem/73636453>
Reviewed by Tim Horton.
Source/WebKit:
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didCommitLayerTree):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::pageExtendedBackgroundColorDidChange):
- UIProcess/PageClient.h:
(WebKit::PageClient::pageExtendedBackgroundColorWillChange): Added.
(WebKit::PageClient::pageExtendedBackgroundColorDidChange): Added.
- UIProcess/Cocoa/PageClientImplCocoa.h:
- UIProcess/Cocoa/PageClientImplCocoa.mm:
(WebKit::PageClientImplCocoa::pageExtendedBackgroundColorWillChange): Added.
(WebKit::PageClientImplCocoa::pageExtendedBackgroundColorDidChange): Added.
Add support for ObjC KVO of-[WKWebView _themeColor].
- WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::pageExtendedBackgroundColorDidChange): Added.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::willCommitLayerTree):
(WebKit::WebPage::flushPendingPageExtendedBackgroundColorChange): Added.
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::pageExtendedBackgroundColorDidChange const):
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::updateRendering):
On macOS, instead of messaging the UIProcess as soon as changes happen, keep a flag of
whether thepageExtendedBackgroundColorhas changed and use it when updating rendering so
that change messages are kept in sync (e.g. modifying<meta name="theme-color" content="...">).
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _pageExtendedBackgroundColor]): Added.
- UIProcess/API/mac/WKWebViewMac.mm:
(-[WKWebView _pageExtendedBackgroundColor]): Deleted.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/PageExtendedBackgroundColor.mm: Added.
(TEST.PageExtendedBackgroundColor.OnLoad):
(TEST.PageExtendedBackgroundColor.MultipleTags):
(-[WKWebViewPageExtendedBackgroundColorObserver initWithWebView:]):
(-[WKWebViewPageExtendedBackgroundColorObserver observeValueForKeyPath:ofObject:change:context:]):
(TEST.PageExtendedBackgroundColor.KVO):
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- 11:20 AM Changeset in webkit [271968] by
-
- 2 edits2 adds in trunk/LayoutTests
[iOS] imported/w3c/web-platform-tests/css/css-color/system-color-compute.html is failing
https://bugs.webkit.org/show_bug.cgi?id=220947
Reviewed by Simon Fraser.
- platform/ios/imported/w3c/web-platform-tests/css/css-color: Added.
Add iOS specific result to account for different system colors.
- 11:19 AM Changeset in webkit [271967] by
-
- 13 edits in trunk
Unreviewed, reverting r271186.
https://bugs.webkit.org/show_bug.cgi?id=221051
Breaks Facebook on arm64e devices
Reverted changeset:
"[JSC] DFG/FTL DirectCall need to respect Wasm IC"
https://bugs.webkit.org/show_bug.cgi?id=220339
https://trac.webkit.org/changeset/271186
- 10:45 AM Changeset in webkit [271966] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Remove CFPBS access in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=221000
<rdar://problem/70501475>
Reviewed by Brent Fulgham.
Remove CFPBS access in the WebContent process on macOS, since there are no reports of this being used.
- WebProcess/com.apple.WebProcess.sb.in:
- 10:36 AM Changeset in webkit [271965] by
-
- 6 edits in trunk/Source
[macOS] Re-enable ENABLE_SET_WEBCONTENT_PROCESS_INFORMATION_IN_NETWORK_PROCESS
https://bugs.webkit.org/show_bug.cgi?id=221039
<rdar://problem/73665061>
Source/WebCore:
Reviewed by Brent Fulgham.
The commit r271907 introduced a crash, since it denied access to the Launch Services daemon, which AppKit is using to get and set
application information, for example whether the app is foreground or not. To work around this, the WebCoreThemeWindow has been made
borderless, and the method +[NSWindow invalidateRestorableState] is overridden to do nothing. Running the default
+[NSWindow invalidateRestorableState] will exercise code which tries to reach out to the Launch Services daemon, and crashes if
unable to do so. This functionality should not be required in the WebContent process, and can be disabled.
- platform/mac/ThemeMac.mm:
(-[WebCoreThemeWindow invalidateRestorableState]):
(-[WebCoreThemeView window]):
Source/WebKit:
Reviewed by Brent Fulgham.
Work around crash introduced in r271907, by disabling persistent UI. Having persistent UI enabled will exercise code
which tries to connect with the Launch Services daemon, and crash if that fails.
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
Source/WTF:
Reviewed by Brent Fulgham.
- wtf/PlatformEnableCocoa.h:
- 10:07 AM Changeset in webkit [271964] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Fix sandbox violation file-read-data /dev/dtracehelper in the Networking process
https://bugs.webkit.org/show_bug.cgi?id=221046
<rdar://problem/73625718>
Reviewed by Brent Fulgham.
Reading this file should be allowed in the Networking process on internal installs on iOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- 10:07 AM Changeset in webkit [271963] by
-
- 2 edits in trunk/Source/WebKit
[macOS] WebContent sandbox regex incorrect
https://bugs.webkit.org/show_bug.cgi?id=221045
<rdar://problem/73473985>
Reviewed by Brent Fulgham.
When the regex is intended to match the character '.', the pattern '\.' should be used.
- WebProcess/com.apple.WebProcess.sb.in:
- 10:05 AM Changeset in webkit [271962] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Tighten IOUSB access when camera is enabled
https://bugs.webkit.org/show_bug.cgi?id=221042
<rdar://problem/70504956>
Reviewed by Brent Fulgham.
Tighten IOUSB access when camera is enabled in the WebContent process on macOS.
- WebProcess/com.apple.WebProcess.sb.in:
- 10:04 AM Changeset in webkit [271961] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Remove shm-write access to com.apple.AppleDatabaseChanged
https://bugs.webkit.org/show_bug.cgi?id=221041
<rdar://problem/70501252>
Reviewed by Brent Fulgham.
Remove shm-write access to com.apple.AppleDatabaseChanged in the WebContent process on maOS, since there are no reports
of this being used.
- WebProcess/com.apple.WebProcess.sb.in:
- 10:04 AM Changeset in webkit [271960] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Enforce IOKit message filtering
https://bugs.webkit.org/show_bug.cgi?id=221038
<rdar://problem/71333134>
Reviewed by Brent Fulgham.
Update IOKit message filters based on telemetry, and deny messages not observed being used.
- WebProcess/com.apple.WebProcess.sb.in:
- 10:03 AM Changeset in webkit [271959] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Remove fsctl-command in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=221002
<rdar://problem/70504451>
Reviewed by Brent Fulgham.
Remove fsctl-command in the WebContent process on macOS, since there are no reports of this being used.
- WebProcess/com.apple.WebProcess.sb.in:
- 9:39 AM Changeset in webkit [271958] by
-
- 2 edits in trunk/Source/WebCore
Use SFTranscription instead of SFTranscriptionSegment for SpeechRecognitionAlternative
https://bugs.webkit.org/show_bug.cgi?id=221026
Patch by Sihui Liu <sihui_liu@appe.com> on 2021-01-27
Reviewed by Youenn Fablet.
So SpeechRecognitionAlternative contains a sentence instead of a word, which matches Blink's behavior.
Manually tested in MiniBrowser.
- Modules/speech/cocoa/WebSpeechRecognizerTask.mm:
(-[WebSpeechRecognizerTaskImpl callbackWithTranscriptions:isFinal:]):
(-[WebSpeechRecognizerTaskImpl speechRecognitionTask:didHypothesizeTranscription:]):
(-[WebSpeechRecognizerTaskImpl speechRecognitionTask:didFinishRecognition:]):
(-[WebSpeechRecognizerTaskImpl callbackWithResult:isFinal:]): Deleted.
- 9:37 AM Changeset in webkit [271957] by
-
- 1 copy in tags/Safari-610.4.3.1.5
Tag Safari-610.4.3.1.5.
- 9:24 AM Changeset in webkit [271956] by
-
- 8 edits in branches/safari-610.4.3.1-branch/Source
Versioning.
WebKit-7610.4.3.1.5
- 9:14 AM Changeset in webkit [271955] by
-
- 3 edits in trunk/Tools
[GTK] run-gtk-tests: Crashing and non-existent tests should not count as a pass
https://bugs.webkit.org/show_bug.cgi?id=220863
Reviewed by Michael Catanzaro.
The current implementation doesn't account for test binaries that have
not emitted any subtests. This is the case when a test binary doesn't
exist or it crashes.
Also, in the latter case, the stderr of the crashed processes was not
being outputted to the user, masking a crashing test binary as a
passing test.
This patch fixes both issues: It adds several warning prints when
binaries can't be run or fail to add any subtest, emitting the stderr
generated by the failing or crashing binary.
- glib/api_test_runner.py:
(TestRunner._run_test):
(TestRunner.run_tests):
- glib/glib_test_runner.py:
(GLibTestRunner.run):
- 8:12 AM Changeset in webkit [271954] by
-
- 2 edits in trunk/Tools
Enable GPU WebRTC codecs in WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=220936
Reviewed by Eric Carlson.
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
- 8:05 AM Changeset in webkit [271953] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: REGRESSION(r269166): not enough space around up/down arrows in execution context picker
https://bugs.webkit.org/show_bug.cgi?id=221014
<rdar://problem/73635556>
Patch by Razvan Caliman <Razvan Caliman> on 2021-01-27
Reviewed by BJ Burg.
Fix shorthand notation for logical property
margin-start
used on active execution context picker.
- UserInterface/Views/QuickConsole.css:
(.quick-console > .navigation-bar .active-execution-context > .selector-arrows):
- 7:37 AM Changeset in webkit [271952] by
-
- 3 edits in trunk/Tools
REGRESSION(r271634): keyring still failing to retrieve secrets
https://bugs.webkit.org/show_bug.cgi?id=221029
Reviewed by Sergio Villar Senin.
- Scripts/libraries/webkitscmpy/setup.py: Reduce version number duplication by reusing the
Version object declared in the package.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Bump version and downgrade to
usable keyring version (in Linux at least).
- 6:42 AM Changeset in webkit [271951] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Expand "empty line" fast path support for multiline inline boxes
https://bugs.webkit.org/show_bug.cgi?id=221024
Reviewed by Antti Koivisto.
Let's check if the inline box starts at this empty line and update its geometry accordingly.
Note that just because an inline box end (</span>) is on an empty line, it does not necessarily make the inline box
taller (e.g. <div>some content<span><br></span> <- while the </span> is after the <br> on a new and empty line, it does
not stretch the associated inline box).
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):
- 6:21 AM Changeset in webkit [271950] by
-
- 6 edits1 delete in trunk
Unreviewed, reverting r271940.
https://bugs.webkit.org/show_bug.cgi?id=221040
Some tests are failing on bots
Reverted changeset:
"[MacOS] Enable NSURLSession WebSocket code path in
WebKitTestRunner"
https://bugs.webkit.org/show_bug.cgi?id=220973
https://trac.webkit.org/changeset/271940
- 6:17 AM Changeset in webkit [271949] by
-
- 3 edits in trunk/Source/WebKit
Restrict access to syslog in sandbox
https://bugs.webkit.org/show_bug.cgi?id=220983
<rdar://problem/73512626>
Reviewed by Brent Fulgham.
Only allow syslog access on internal builds on macOS and iOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- WebProcess/com.apple.WebProcess.sb.in:
- 6:13 AM Changeset in webkit [271948] by
-
- 7 edits in trunk
Handle zero aspect-ratio width/height
https://bugs.webkit.org/show_bug.cgi?id=220970
Patch by Rob Buis <rbuis@igalia.com> on 2021-01-27
Reviewed by Manuel Rego Casasnovas.
Source/WebCore:
Treat aspect-ratio with zero width and/or height internally
as auto, but when serializing maintain the original input.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- rendering/style/RenderStyleConstants.cpp:
(WebCore::operator<<):
- rendering/style/RenderStyleConstants.h:
- style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyValueAspectRatio):
LayoutTests:
Enable some tests that pass now.
- 6:03 AM Changeset in webkit [271947] by
-
- 3 edits in trunk/Tools
[GTK] Test /webkit/WebKitSettings/webkit-settings is failing since r271354
https://bugs.webkit.org/show_bug.cgi?id=221033
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-01-27
Reviewed by Adrian Perez de Castro.
Since r271354 the font values set in WebKitSettings are always the same you get no matter what the current DPI
is. The scaling factor is applied to the font size without actually changing the setting.
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:
(testWebKitSettings): Update the test to check the correct behavior.
- TestWebKitAPI/glib/TestExpectations.json: Remove expectation for the test.
- 4:39 AM Changeset in webkit [271946] by
-
- 26 edits2 copies1 add in trunk/Source
Implement visibility based resource load scheduling for low priority resources
https://bugs.webkit.org/show_bug.cgi?id=220728
Reviewed by Geoff Garen.
Source/WebCore:
Track load scheduling mode during on per page basis.
Add support for prioritizing resources based on their visibility.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- loader/LoaderStrategy.cpp:
(WebCore::LoaderStrategy::setResourceLoadSchedulingMode):
(WebCore::LoaderStrategy::prioritizeResourceLoads):
- loader/LoaderStrategy.h:
- page/Page.cpp:
(WebCore::Page::didStartProvisionalLoad):
(WebCore::Page::didFinishLoad):
Sheduled modes is is disabled at latest when the load completes.
(WebCore::Page::doAfterUpdateRendering):
(WebCore::Page::prioritizeVisibleResources):
After rendering update, if in scheduled mode, check the visibility status of images resources.
Prioritize loads for visible resources.
Move out of the shceduled mode if the document is fully parsed and all visibile loads are completed.
(WebCore::Page::setLoadSchedulingMode):
- page/Page.h:
(WebCore::Page::loadSchedulingMode const):
Source/WebKit:
Add a simple network process side resource load scheduler. When active it limits the number of low priority resource loads
(mostly images) that are passed to network layer. The current limit is 6 per host, reduced by any ongoing higher priority
loads. This reduces impact of low priority loads to higher priority ones, espcially on HTTP/2.
The scheduler also supports reprioritizing loads. This is used to let images currently in the viewport to skip the queue
and start their loads faster.
The feature is not enabled in this patch.
- NetworkProcess/Downloads/Download.cpp:
(WebKit::Download::cancel):
(WebKit::Download::didReceiveData):
(WebKit::Download::didFinish):
(WebKit::Download::didFail):
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::clearPageSpecificData):
(WebKit::NetworkConnectionToWebProcess::removeStorageAccessForFrame):
(WebKit::NetworkConnectionToWebProcess::setResourceLoadSchedulingMode):
(WebKit::NetworkConnectionToWebProcess::prioritizeResourceLoads):
(WebKit::NetworkConnectionToWebProcess::clearPageSpecificDataForResourceLoadStatistics): Deleted.
Rename to clearPageSpecificData and move out of #if.
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::start):
(WebKit::NetworkLoad::startWithScheduling):
(WebKit::NetworkLoad::~NetworkLoad):
(WebKit::NetworkLoad::didCompleteWithError):
- NetworkProcess/NetworkLoad.h:
- NetworkProcess/NetworkLoadScheduler.cpp: Added.
(WebKit::NetworkLoadScheduler::HostContext::schedule):
(WebKit::NetworkLoadScheduler::HostContext::unschedule):
(WebKit::NetworkLoadScheduler::HostContext::prioritize):
(WebKit::NetworkLoadScheduler::HostContext::start):
(WebKit::NetworkLoadScheduler::HostContext::~HostContext):
(WebKit::NetworkLoadScheduler::schedule):
(WebKit::NetworkLoadScheduler::unschedule):
(WebKit::NetworkLoadScheduler::setResourceLoadSchedulingMode):
(WebKit::NetworkLoadScheduler::prioritizeLoads):
(WebKit::NetworkLoadScheduler::clearPageData):
(WebKit::NetworkLoadScheduler::contextForLoad):
- NetworkProcess/NetworkLoadScheduler.h: Copied from Source/WebCore/loader/LoaderStrategy.cpp.
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::startNetworkLoad):
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::networkLoadScheduler):
- NetworkProcess/NetworkSession.h:
- NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):
- Sources.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::setResourceLoadSchedulingMode):
(WebKit::WebLoaderStrategy::prioritizeResourceLoads):
- WebProcess/Network/WebLoaderStrategy.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::close):
Source/WTF:
- Scripts/Preferences/WebPreferencesInternal.yaml:
Add an internal setting, default to off for now.
- 4:12 AM Changeset in webkit [271945] by
-
- 3 edits in trunk
Set ruby-indent-level to 4
https://bugs.webkit.org/show_bug.cgi?id=220982
Patch by Angelos Oikonomopoulos <Angelos Oikonomopoulos> on 2021-01-27
Reviewed by Fujii Hironori.
All the ruby source files seem to default to 4 as the indent
level; make it official.
- .dir-locals.el:
- .editorconfig:
- 3:41 AM Changeset in webkit [271944] by
-
- 3 edits5 moves3 adds3 deletes in trunk/LayoutTests
Upstream to WPT Shadow DOM tests related to :focus pseudo-class
https://bugs.webkit.org/show_bug.cgi?id=220907
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
These tests landed originally in r250788 (bug #202432).
- web-platform-tests/shadow-dom/focus/focus-pseudo-matches-on-shadow-host-expected.txt: Renamed from LayoutTests/fast/shadow-dom/focus-pseudo-matches-on-shadow-host-expected.txt.
- web-platform-tests/shadow-dom/focus/focus-pseudo-matches-on-shadow-host.html: Renamed from LayoutTests/fast/shadow-dom/focus-pseudo-matches-on-shadow-host.html. Removed workaround to wait until :focus matches on "focus" event, as that has been fixed in r271146 (bug #220243).
- web-platform-tests/shadow-dom/focus/focus-pseudo-on-shadow-host-1-expected.xht: Added.
- web-platform-tests/shadow-dom/focus/focus-pseudo-on-shadow-host-1.html: Renamed from LayoutTests/fast/shadow-dom/focus-pseudo-on-shadow-host-1.html.
- web-platform-tests/shadow-dom/focus/focus-pseudo-on-shadow-host-2-expected.xht: Added.
- web-platform-tests/shadow-dom/focus/focus-pseudo-on-shadow-host-2.html: Renamed from LayoutTests/fast/shadow-dom/focus-pseudo-on-shadow-host-2.html.
- web-platform-tests/shadow-dom/focus/focus-pseudo-on-shadow-host-3-expected.xht: Added.
- web-platform-tests/shadow-dom/focus/focus-pseudo-on-shadow-host-3.html: Renamed from LayoutTests/fast/shadow-dom/focus-pseudo-on-shadow-host-3.html.
LayoutTests:
- fast/shadow-dom/focus-pseudo-on-shadow-host-1-expected.html: Removed.
- fast/shadow-dom/focus-pseudo-on-shadow-host-2-expected.html: Removed.
- fast/shadow-dom/focus-pseudo-on-shadow-host-3-expected.html: Removed.
- platform/ios/TestExpectations: Mark the new exported tests as passing.
- 3:06 AM Changeset in webkit [271943] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION(r271929): MobileSafari hangs upon launch due to a trivial deadlock in IOSurfacePool::setPoolSize
https://bugs.webkit.org/show_bug.cgi?id=221027
Reviewed by Tim Horton.
Avoid the deadlock by not grabbing the lock in IOSurfacePool::evict when discarding all surfaces.
To do this, we extract the code in discardAllSurfaces as discardAllSurfacesInternal and use it in evict.
- platform/graphics/cg/IOSurfacePool.cpp:
(WebCore::IOSurfacePool::evict): Calls discardAllSurfacesInternal.
(WebCore::IOSurfacePool::discardAllSurfaces):
(WebCore::IOSurfacePool::discardAllSurfacesInternal): Extracted out of discardAllSurfaces.
- platform/graphics/cg/IOSurfacePool.h:
- 3:04 AM Changeset in webkit [271942] by
-
- 14 edits3 deletes in trunk/Source/JavaScriptCore
[JSC] Remove InspectorInstrumentation object
https://bugs.webkit.org/show_bug.cgi?id=221028
Reviewed by Ryosuke Niwa.
Remove InspectorInstrumentation since it is not used. We would like to clean up Promise's rejection path.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Scripts/tests/builtins/JavaScriptCore-Builtin.Promise-Combined.js:
(rejectPromise):
(fulfillPromise):
- Scripts/tests/builtins/JavaScriptCore-Builtin.Promise-Separate.js:
(rejectPromise):
(fulfillPromise):
- Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result:
- Sources.txt:
- builtins/BuiltinNames.h:
- builtins/InspectorInstrumentationObject.js: Removed.
- builtins/PromiseOperations.js:
(globalPrivate.rejectPromise):
(globalPrivate.fulfillPromise):
- bytecode/LinkTimeConstant.h:
- runtime/InspectorInstrumentationObject.cpp: Removed.
- runtime/InspectorInstrumentationObject.h: Removed.
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
- 3:04 AM Changeset in webkit [271941] by
-
- 8 edits2 adds in trunk
Complete WebXRRigidTransform implementation
https://bugs.webkit.org/show_bug.cgi?id=220732
<rdar://problem/73617302>
Patch by Imanol Fernandez <imanol> on 2021-01-27
Reviewed by Sergio Villar Senin.
LayoutTests/imported/w3c:
Enable XRRigidTransform WebXR tests.
- web-platform-tests/webxr/xrRigidTransform_inverse.https-expected.txt: Added.
- web-platform-tests/webxr/xrRigidTransform_matrix.https-expected.txt: Added.
Source/WebCore:
- Implement XRRigidTransform.inverse().
- Expose raw matrix to be used in other WebXR math calculations (e.g pose composition).
- Correctly lazily initialize and reuse the Float32Array matrixData.
Tested by the WebXR platform tests.
- Modules/webxr/WebXRRigidTransform.cpp:
(WebCore::normalizeQuaternion):
(WebCore::WebXRRigidTransform::create):
(WebCore::WebXRRigidTransform::WebXRRigidTransform):
(WebCore::m_orientation):
(WebCore::m_rawTransform):
(WebCore::WebXRRigidTransform::matrix):
(WebCore::WebXRRigidTransform::inverse):
(WebCore::WebXRRigidTransform::rawTransform const):
- Modules/webxr/WebXRRigidTransform.h:
- platform/graphics/transforms/TransformationMatrix.cpp:
(WebCore::TransformationMatrix::fromQuaternion):
- platform/graphics/transforms/TransformationMatrix.h:
LayoutTests:
Enable XRRigidTransform WebXR tests.
- platform/wpe/TestExpectations:
- 2:57 AM Changeset in webkit [271940] by
-
- 6 edits70 adds in trunk
[MacOS] Enable NSURLSession WebSocket code path in WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=220973
Reviewed by Darin Adler.
Source/WebKit:
Disable a debug assert unti it get fixed below.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:webSocketTask:didCloseWithCode:reason:]):
Tools:
Enable NSURLSession WebSocket code path in MacOS.
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
LayoutTests:
Add platform specific expectations.
The differences are mostly due to different handling in case of server-side closure of the web socket connection (see rdar://problem/73613227).
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/client-close-2-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/client-close-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/close-code-and-reason-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/contentextensions/display-none-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/contentextensions/display-none-worker-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/deflate-frame-comp-bit-onoff-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/deflate-frame-set-bfinal-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/handshake-fail-by-no-cr-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/handshake-fail-by-null-char-in-status-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/handshake-ok-with-http-version-beyond-1_1-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/inspector/client-close-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/inspector/send-and-receive-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/inspector/server-close-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/interleaved-fragments-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/invalid-encode-length-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/pong-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/send-arraybuffer-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/send-arraybufferview-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/send-blob-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/send-blob-onmessage-origin-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/send-empty-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/send-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/send-onmessage-origin-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/unicode-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/workers/close-code-and-reason-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/workers/send-arraybuffer-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/workers/send-arraybufferview-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/workers/send-blob-expected.txt: Added.
- platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.any-expected.txt: Added.
- platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.any.worker-expected.txt: Added.
- platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/Send-65K-data.any-expected.txt: Added.
- platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/Send-binary-65K-arraybuffer.any-expected.txt: Added.
- platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/Send-binary-arraybuffer.any-expected.txt: Added.
- platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/Send-data.any-expected.txt: Added.
- platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/Send-paired-surrogates.any-expected.txt: Added.
- platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/basic-auth.any-expected.txt: Added.
- platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/basic-auth.any.worker-expected.txt: Added.
- platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.worker-expected.txt: Added.
- platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/constructor/009-expected.txt: Added.
- platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/cookies/third-party-cookie-accepted.https-expected.txt: Added.
- platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer-expected.txt: Added.
- platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob-expected.txt: Added.
- platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting-expected.txt: Added.
- platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large-expected.txt: Added.
- platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode-expected.txt: Added.
- platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/008-expected.txt: Added.
- platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/009-expected.txt: Added.
- platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/opening-handshake/003-sets-origin.worker-expected.txt: Added.
- platform/mac/TestExpectations:
- 1:07 AM Changeset in webkit [271939] by
-
- 11 edits3 adds in trunk
[Mac] MediaSampleCursor::stepInOrderedMap can hang when stepping to the end of a track that hasn't been fully parsed
https://bugs.webkit.org/show_bug.cgi?id=220555
<rdar://problem/72910000>
Reviewed by Eric Carlson.
Source/WebCore:
Test: http/tests/media/video-canplaythrough-webm.html
- platform/graphics/FloatSize.h: Exported toJSONObject.
Source/WebKit:
When a container has multiple tracks, CoreMedia determines the overall duration by creating
a cursor at a presentation time of +infinity then asking for its timing info, the expectation
being that the cursor will clamp itself to the track duration and report that in
MediaSampleCursor::getSampleTiming.
Previously, this could result in a hang for tracks that had not yet finished parsing, as
MediaSampleCursor was designed to wait for samples outside the playable range. With this
change, MediaSampleCursor no longer waits for samples outside the playable range but
rather reports clamped timing info without waiting for a sample. If CoreMedia asks for
information that requires a sample (e.g., sample location), MediaSampleCursor will respond
withkMTPluginSampleCursorError_LocationNotAvailable. So that CoreMedia can determine
the range of playable samples, this patch implements MediaSampleCursor::getPlayableHorizon.
To simplify this implementation, MediaSampleCursor now assumes that decode time equals
presentation time (for video tracks) or is invalid (for audio tracks). While here, also
added media logging that helped debug this issue.
Test: http/tests/media/video-canplaythrough-webm.html
- Shared/mac/MediaFormatReader/MediaSampleByteRange.cpp:
(WebKit::MediaSampleByteRange::MediaSampleByteRange): Asserted our assmpution about the
relationship between presentation time and decode time.
- Shared/mac/MediaFormatReader/MediaSampleCursor.cpp:
(WebKit::assumedDecodeTime): Added to compute decode time from presentation time and a
nominal sample.
(WebKit::upperBound): Changed to compute the decode key based on assumed decode time.
(WebKit::stepIterator): Removed the MediaTime specialization.
(WebKit::stepTime): Added to step a MediaTime rather than an iterator.
(WebKit::MediaSampleCursor::MediaSampleCursor): Initialized logging.
(WebKit::MediaSampleCursor::locateIterator const): Changed to find an iterator based on
presentation time and assumed decode time.
(WebKit::MediaSampleCursor::locateMediaSample const): Ditto.
(WebKit::MediaSampleCursor::locateTiming const): Added to locate timing info even if no
sample is available.
(WebKit::MediaSampleCursor::stepInOrderedMap): Changed to call getSampleMap, and removed
the MediaTime specialization.
(WebKit::MediaSampleCursor::stepInPresentationTime): Added to replace the MediaTime
specialization of stepInOrderedMap.
(WebKit::MediaSampleCursor::getSampleMap const): Added to call
MediaTrackReader::waitForSample and return as soon as at least one sample is available.
Returns kMTPluginSampleCursorError_NoSamples if the track finishes parsing with no
samples.
(WebKit::MediaSampleCursor::getMediaSample const): Changed to call getSampleMap.
(WebKit::MediaSampleCursor::getTiming const): Added to get timing info.
(WebKit::MediaSampleCursor::copyProperty): Added logging.
(WebKit::MediaSampleCursor::stepInDecodeOrderAndReportStepsTaken): Changed to call the new
version of stepInOrderedMap.
(WebKit::MediaSampleCursor::stepInPresentationOrderAndReportStepsTaken): Ditto.
(WebKit::MediaSampleCursor::stepByDecodeTime): Changed to call stepInPresentationTime.
(WebKit::MediaSampleCursor::stepByPresentationTime): Ditto.
(WebKit::MediaSampleCursor::compareInDecodeOrder const): Changed to call getTiming.
(WebKit::MediaSampleCursor::getSampleTiming const): Ditto.
(WebKit::MediaSampleCursor::getPlayableHorizon const): Implemented by taking the
difference between the last sample's end time and the cursor's presentation time.
(WebKit::MediaSampleCursor::logChannel const): Added.
(WebKit::makeIterator): Deleted.
(WebKit::makeTime): Deleted.
(WebKit::MediaSampleCursor::createAtDecodedSample): Deleted.
- Shared/mac/MediaFormatReader/MediaSampleCursor.h:
(WebKit::MediaSampleCursor::logger const): Configured logging.
(WebKit::MediaSampleCursor::logClassName const): Ditto.
(WebKit::MediaSampleCursor::logIdentifier const): Ditto.
- Shared/mac/MediaFormatReader/MediaTrackReader.cpp:
(WebKit::MediaTrackReader::mediaTypeString const): Ditto.
(WebKit::MediaTrackReader::nextSampleCursorLogIdentifier const): Ditto.
- Shared/mac/MediaFormatReader/MediaTrackReader.h:
LayoutTests:
- http/conf/mime.types: Added an entry for video/webm.
- http/tests/media/resources/long-test-vp9-vorbis.webm: Added.
- http/tests/media/video-canplaythrough-webm-expected.txt: Added.
- http/tests/media/video-canplaythrough-webm.html: Added.
- 1:05 AM Changeset in webkit [271938] by
-
- 3 edits in trunk/Tools
[Flatpak SDK] Flatpak 1.10 environment variable issues
https://bugs.webkit.org/show_bug.cgi?id=220781
Patch by Philippe Normand <pnormand@igalia.com> and Lauro Moura <Lauro Moura> on 2021-01-27
Reviewed by Adrian Perez de Castro.
Flatpak no longer passes its env variables to bwrap, so the workaround is now to serialize
it on-disk in a JSON file and load it from our webkit-bwrap script.
- flatpak/flatpakutils.py:
(WebkitFlatpak.run_in_sandbox):
- flatpak/webkit-bwrap:
- 12:41 AM Changeset in webkit [271937] by
-
- 17 edits in trunk/Source
Use ScrollSnapOffsetsInfo in the scrolling tree
https://bugs.webkit.org/show_bug.cgi?id=220915
Patch by Martin Robinson <mrobinson@igalia.com> on 2021-01-27
Reviewed by Simon Fraser.
Source/WebCore:
No new tests. This should not change behavior.
Use ScrollSnapOffsets more often in the scrolling tree to continue to
abstract away the details of how snap offsets are implemented.
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::setStateScrollingNodeSnapOffsetsAsFloat):
(WebCore::AsyncScrollingCoordinator::setScrollingNodeScrollableAreaGeometry):
(WebCore::AsyncScrollingCoordinator::updateScrollSnapPropertiesWithFrameView):
- page/scrolling/ScrollSnapOffsetsInfo.h:
(WebCore::ScrollSnapOffsetsInfo::isEqual const):
- page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::applicableProperties const):
(WebCore::ScrollingStateScrollingNode::setSnapOffsetsInfo):
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:
(WebCore::ScrollingTreeScrollingNodeDelegateMac::updateFromStateNode):
(): Deleted.
- platform/cocoa/ScrollController.h:
- platform/cocoa/ScrollController.mm:
(WebCore::ScrollController::updateScrollSnapState):
(WebCore::ScrollController::updateScrollSnapPoints):
(WebCore::otherScrollEventAxis): Deleted.
Source/WebKit:
Use ScrollSnapOffsets more often in the scrolling tree to continue to
abstract away the details of how snap offsets are implemented.
- Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:
(ArgumentCoder<ScrollingStateScrollingNode>::encode):
(ArgumentCoder<ScrollingStateScrollingNode>::decode):
(ArgumentCoder<ScrollSnapOffsetsInfo<float>>::encode):
(ArgumentCoder<ScrollSnapOffsetsInfo<float>>::decode):
(WebKit::dump):
- UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:
(WebKit::RemoteScrollingCoordinatorProxy::shouldSnapForMainFrameScrolling const):
(WebKit::RemoteScrollingCoordinatorProxy::closestSnapOffsetForMainFrameScrolling const):
(WebKit::RemoteScrollingCoordinatorProxy::hasActiveSnapPoint const):
(WebKit::RemoteScrollingCoordinatorProxy::nearestActiveContentInsetAdjustedSnapOffset const):
- UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:
(-[WKScrollingNodeScrollViewDelegate scrollViewWillEndDragging:withVelocity:targetContentOffset:]):
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateAfterChildren):
- 12:36 AM Changeset in webkit [271936] by
-
- 17 edits2 copies in trunk
Add support for RTCRtpParameters.rtcp
https://bugs.webkit.org/show_bug.cgi?id=220912
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
- web-platform-tests/webrtc/RTCRtpParameters-codecs-expected.txt:
- web-platform-tests/webrtc/RTCRtpParameters-encodings-expected.txt:
- web-platform-tests/webrtc/RTCRtpParameters-headerExtensions-expected.txt:
- web-platform-tests/webrtc/RTCRtpParameters-rtcp-expected.txt:
- web-platform-tests/webrtc/RTCRtpParameters-transactionId-expected.txt:
- web-platform-tests/webrtc/RTCRtpReceiver-getParameters-expected.txt:
Source/WebCore:
Introduce corresponding WebIDL and binding to webrtc backend.
Covered by rebased tests.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Modules/mediastream/RTCRtcpParameters.h: Copied from Source/WebCore/Modules/mediastream/RTCRtpParameters.h.
- Modules/mediastream/RTCRtcpParameters.idl: Copied from Source/WebCore/Modules/mediastream/RTCRtpParameters.idl.
- Modules/mediastream/RTCRtpParameters.h:
- Modules/mediastream/RTCRtpParameters.idl:
- Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp:
(WebCore::toRTCRtpParameters):
(WebCore::updateRTCRtpSendParameters):
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
Jan 26, 2021:
- 11:57 PM BuildingCairoOnWindows edited by
- (diff)
- 11:57 PM BuildingCairoOnWindows edited by
- (diff)
- 10:31 PM Changeset in webkit [271935] by
-
- 10 edits in trunk
Mute audio capture for speech recognition based on shouldInterruptAudioOnPageVisibilityChange when page is invisible
https://bugs.webkit.org/show_bug.cgi?id=220960
Patch by Sihui Liu <sihui_liu@appe.com> on 2021-01-26
Reviewed by Youenn Fablet.
Source/WebCore:
Add a boolean to indicate recognition state so we don't send end event twice.
- Modules/speech/SpeechRecognizer.cpp:
(WebCore::SpeechRecognizer::startRecognition):
(WebCore::SpeechRecognizer::abortRecognition):
(WebCore::SpeechRecognizer::stopRecognition):
(WebCore::SpeechRecognizer::resetRecognition):
- Modules/speech/SpeechRecognizer.h:
Source/WebKit:
We used to abort ongoing recognition when page becomes invisible. To match media capture's behavior, now we only
abort recognition when shouldInterruptAudioOnPageVisibilityChange is true.
Updated API test: WebKit2.SpeechRecognitionPageBecomesInvisible
- UIProcess/SpeechRecognitionServer.cpp:
(WebKit::SpeechRecognitionServer::abortForPageIsBecomingInvisible): Deleted.
- UIProcess/SpeechRecognitionServer.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::pageIsBecomingInvisible):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/speechrecognition-basic.html:
- 9:22 PM Changeset in webkit [271934] by
-
- 11 edits in trunk/Source/WebCore
Refactor computePreferredLogicalWidths
https://bugs.webkit.org/show_bug.cgi?id=220984
Patch by Rob Buis <rbuis@igalia.com> on 2021-01-26
Reviewed by Darin Adler.
Refactor computePreferredLogicalWidths so the common
code dealing with min/max and border/padding handling
is centralized in RenderBox.
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computePreferredLogicalWidths):
- rendering/RenderBox.cpp:
(WebCore::RenderBox::computePreferredLogicalWidths):
- rendering/RenderBox.h:
- rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::computePreferredLogicalWidths):
- rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::computePreferredLogicalWidths):
- rendering/RenderFragmentContainer.cpp:
(WebCore::RenderFragmentContainer::computePreferredLogicalWidths):
- rendering/RenderListBox.cpp:
(WebCore::RenderListBox::computePreferredLogicalWidths):
- rendering/RenderMenuList.cpp:
(RenderMenuList::computePreferredLogicalWidths):
- rendering/RenderSlider.cpp:
(WebCore::RenderSlider::computePreferredLogicalWidths):
- rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::computePreferredLogicalWidths):
- 8:56 PM Changeset in webkit [271933] by
-
- 5 edits2 adds in trunk
REGRESSION (r268947) Some table elements become blank when scroll-bar is toggled
https://bugs.webkit.org/show_bug.cgi?id=221016
<rdar://72881404>
Reviewed by Zalan Bujtas.
Source/WebCore:
FloatingObject aliased the state of layer->isSelfPainting() in its m_shouldPaint,
so when compositing code changed isSelfPaintingLayer() for a layer that is also
a float post-layout, FloatingObject was left in a state where it didn't paint.
Fix by dissociating FloatingObject's shouldPaint from the state of the layer.
Rename shouldPaint() to paintsFloat() for clarity (multiple FloatingObjects in
different block flows can represent the same float, and only one paints the float).
Test: compositing/scrolling/async-overflow-scrolling/self-painting-layer-float.html
- rendering/FloatingObjects.cpp:
(WebCore::FloatingObject::FloatingObject):
(WebCore::FloatingObject::create):
(WebCore::FloatingObject::cloneForNewParent const):
(WebCore::FloatingObject::shouldPaint const):
(WebCore::operator<<):
- rendering/FloatingObjects.h:
(WebCore::FloatingObject::paintsFloat const):
(WebCore::FloatingObject::setPaintsFloat):
(WebCore::FloatingObject::shouldPaint const): Deleted.
(WebCore::FloatingObject::setShouldPaint): Deleted.
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::repaintOverhangingFloats):
(WebCore::RenderBlockFlow::paintFloats):
(WebCore::RenderBlockFlow::insertFloatingObject):
(WebCore::RenderBlockFlow::addOverhangingFloats):
(WebCore::RenderBlockFlow::hitTestFloats):
(WebCore::RenderBlockFlow::adjustForBorderFit const):
LayoutTests:
- compositing/scrolling/async-overflow-scrolling/self-painting-layer-float-expected.html: Added.
- compositing/scrolling/async-overflow-scrolling/self-painting-layer-float.html: Added.
- 8:39 PM Changeset in webkit [271932] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Gardening soup crashes and other timeouts
Unreviewed test gardening.
- platform/glib/TestExpectations:
- 6:42 PM Changeset in webkit [271931] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Do not create empty runs for empty lines
https://bugs.webkit.org/show_bug.cgi?id=220994
Reviewed by Antti Koivisto.
Add a fast path for cases when the line has some inline level boxes but we don't consider them "contentful".
e.g. <div><span></span><span></span></div>
It is a relatively common when block level boxes are wrapped inside inline level boxes and
we end up constructing "empty" pre/post blocks (see continuation) e.g. <span><div>content</div></span>.
Such content generates "empty" lines and while this is clearly a performance improvement, it is
also a correctness fix as RenderBlockFlow checks for the number of lines to see if the block is empty and
the integration layer checks the number of runs on the line to decide if the line is "empty" (see LineLayout::lineCount).
(In LFC we check if the lines are empty and not if the line count is 0 since according to the spec even "empty" content generates (empty)lines)
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
- layout/inlineformatting/InlineLineBox.h:
(WebCore::Layout::LineBox::hasContent const):
(WebCore::Layout::LineBox::setHasContent):
- 6:38 PM Changeset in webkit [271930] by
-
- 15 edits2 adds in trunk
REGRESSION (r271584): Hovering slowly over and out of "Top 100" items on liberation.fr does not restore animated state
https://bugs.webkit.org/show_bug.cgi?id=220862
<rdar://problem/73501684>
Reviewed by Simon Fraser.
Source/WebCore:
The optimization in r271584 fails to invalidate hover/active style when clearing the existing state under some circumstances.
Test: fast/selectors/hover-invalidation-descendant-clear.html
- dom/Document.cpp:
(WebCore::Document::updateHoverActiveState):
We would do descendant invalidation when changing the hover/active state of the rootmost changing element.
However since the state of descendants was changed before this invalidation happened we would try to invalidate
them in a tree that was already in the new state.
Fix by scoping the descendant invalidation over all changes.
- dom/Element.cpp:
(WebCore::Element::setActive):
(WebCore::Element::setHovered):
Switch to new 3-state enum type that allows us to skip descendant invalidation that has already been done by the caller.
Skope it to Style namepace.
- dom/Element.h:
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::setActive):
- html/HTMLAnchorElement.h:
- html/HTMLLabelElement.cpp:
(WebCore::HTMLLabelElement::setActive):
(WebCore::HTMLLabelElement::setHovered):
- html/HTMLLabelElement.h:
- html/shadow/SpinButtonElement.cpp:
(WebCore::SpinButtonElement::setHovered):
- html/shadow/SpinButtonElement.h:
- style/PseudoClassChangeInvalidation.cpp:
(WebCore::Style::PseudoClassChangeInvalidation::computeInvalidation):
- style/PseudoClassChangeInvalidation.h:
(WebCore::Style::PseudoClassChangeInvalidation::PseudoClassChangeInvalidation):
- style/StyleValidity.h:
LayoutTests:
- fast/selectors/hover-invalidation-descendant-clear-expected.html: Added.
- fast/selectors/hover-invalidation-descendant-clear.html: Added.
- 5:36 PM Changeset in webkit [271929] by
-
- 3 edits in trunk/Source/WebCore
[GPU Process] Compositing layout test crash in WebKit::GPUProcess::lowMemoryHandler
https://bugs.webkit.org/show_bug.cgi?id=221010
<rdar://problem/73631552>
Reviewed by Simon Fraser.
Make IOSurfacePool thread-safe now that it is used from multiple threads in the
GPUProcess.
- platform/graphics/cg/IOSurfacePool.cpp:
(WebCore::IOSurfacePool::IOSurfacePool):
(WebCore::IOSurfacePool::sharedPool):
(WebCore::IOSurfacePool::takeSurface):
(WebCore::IOSurfacePool::addSurface):
(WebCore::IOSurfacePool::setPoolSize):
(WebCore::IOSurfacePool::collectionTimerFired):
(WebCore::IOSurfacePool::discardAllSurfaces):
- platform/graphics/cg/IOSurfacePool.h:
- 5:13 PM Changeset in webkit [271928] by
-
- 1 copy in tags/Safari-611.1.10.1.3
Tag Safari-611.1.10.1.3.
- 5:12 PM Changeset in webkit [271927] by
-
- 3 edits in trunk/Source/WebInspectorUI
REGRESSION(r270637) Filtering does not work in Styles sidebar panel
https://bugs.webkit.org/show_bug.cgi?id=220993
<rdar://problem/73623818>
Patch by Razvan Caliman <Razvan Caliman> on 2021-01-26
Reviewed by Devin Rousso.
Stop expecting StyleDetailsPanel to define an abstract filterDidChange() method.
Subclasses implement their own on a per-use case basis.
- UserInterface/Views/ComputedStyleDetailsPanel.js:
(WI.ComputedStyleDetailsPanel.prototype.filterDidChange):
- UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.filterDidChange):
- 5:11 PM Changeset in webkit [271926] by
-
- 4 edits in trunk/Source
REGRESSION(r267641): WebKitDeveloperExtras preference has no effect for WebKitLegacy clients
https://bugs.webkit.org/show_bug.cgi?id=220996
<rdar://72173139>
Reviewed by Sam Weinig.
Source/WebKitLegacy/mac:
Read back this preference when propagating it, because the value depends on
more than just the preference key. For example, it allows Debug builds to act
as if the preference is always enabled.
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
Source/WTF:
This preference should use custom bindings for WebKitLegacy.
- Scripts/Preferences/WebPreferencesDebug.yaml:
- 5:06 PM Changeset in webkit [271925] by
-
- 1 copy in tags/Safari-611.1.10.0.4
Tag Safari-611.1.10.0.4.
- 4:59 PM Changeset in webkit [271924] by
-
- 1 copy in tags/Safari-611.1.10.2.1
Tag Safari-611.1.10.2.1.
- 4:57 PM Changeset in webkit [271923] by
-
- 2 edits in branches/safari-611.1.10.2-branch/Source/WTF
Cherry-pick r271904. rdar://problem/73636597
Disable WebGL 2 on safari-611-branch
rdar://73629533
rdar://73624686
- Scripts/Preferences/WebPreferencesExperimental.yaml:
git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-611-branch@271904 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:56 PM Changeset in webkit [271922] by
-
- 8 edits in branches/safari-611.1.10.2-branch/Source
Versioning.
WebKit-7611.1.10.2.1
- 4:32 PM Changeset in webkit [271921] by
-
- 35 edits in trunk/Source
Revive the build when MALLOC_HEAP_BREAKDOWN is enabled
https://bugs.webkit.org/show_bug.cgi?id=220999
Reviewed by Yusuke Suzuki.
Source/WebCore:
- display/css/DisplayBox.cpp:
- display/css/DisplayBox.h:
- display/css/DisplayBoxClip.cpp:
- display/css/DisplayBoxClip.h:
- display/css/DisplayBoxDecorationData.cpp:
- display/css/DisplayBoxDecorationData.h:
- display/css/DisplayBoxModelBox.cpp:
- display/css/DisplayBoxModelBox.h:
- display/css/DisplayBoxRareGeometry.cpp:
- display/css/DisplayBoxRareGeometry.h:
- display/css/DisplayContainerBox.cpp:
- display/css/DisplayContainerBox.h:
- display/css/DisplayImageBox.cpp:
- display/css/DisplayImageBox.h:
- display/css/DisplayReplacedBox.cpp:
- display/css/DisplayReplacedBox.h:
- display/css/DisplayStyle.cpp:
- display/css/DisplayStyle.h:
- display/css/DisplayTextBox.cpp:
- display/css/DisplayTextBox.h:
Source/WTF:
- wtf/Bag.cpp:
- wtf/BitVector.cpp:
- wtf/ConcurrentBuffer.cpp:
- wtf/FastBitVector.cpp:
- wtf/HashTable.cpp:
- wtf/MetaAllocator.cpp:
- wtf/RefCountedArray.cpp:
- wtf/SegmentedVector.cpp:
- wtf/SmallPtrSet.cpp:
- wtf/UniqueArray.cpp:
- wtf/Vector.cpp:
- wtf/text/CString.cpp:
- wtf/text/StringBuffer.cpp:
- 4:31 PM Changeset in webkit [271920] by
-
- 29 edits1 add in trunk
Expose the value of
<meta name="theme-color" content="...">as SPI
https://bugs.webkit.org/show_bug.cgi?id=220944
<rdar://problem/72198083>
Reviewed by Tim Horton.
Source/WebCore:
- html/HTMLMetaElement.h:
- html/HTMLMetaElement.cpp:
(WebCore::HTMLMetaElement::attributeChanged): Added.
(WebCore::HTMLMetaElement::parseAttribute):
(WebCore::HTMLMetaElement::removedFromAncestor): Added.
(WebCore::HTMLMetaElement::process):
- dom/Document.h:
(WebCore::Document::themeColor const): Added.
- dom/Document.cpp:
(WebCore::Document::processThemeColor): Added.
- page/Page.h:
- page/Page.cpp:
(WebCore::Page::themeColor const): Added.
- page/ChromeClient.h:
(WebCore::ChromeClient::themeColorChanged const): Added.
Save theColorto a variable so it can be accessed later during rendering so that updates
are kept in sync with other changes (e.g. modifying the CSSbackground-color).
- platform/graphics/cocoa/ColorCocoa.h:
- WebCore.xcodeproj/project.pbxproj:
Expose this file and export its functions so they can be used in WebKit.
Source/WebKit:
- WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::themeColorChanged): Added.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::willCommitLayerTree):
(WebKit::WebPage::didCommitLoad):
(WebKit::WebPage::flushPendingThemeColorChange): Added.
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::themeColorChanged const):
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::updateRendering):
- UIProcess/WebPageProxy.messages.in:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::themeColorChanged): Added.
On macOS, keep a flag indicating whether thethemeColorhas changed. Use this flag when
updating rendering to send theColorto the UIProcess so that it's kept in sync with other
changes (e.g. modifying the CSSbackground-color).
- Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
(WebKit::RemoteLayerTreeTransaction::themeColor const): Added.
(WebKit::RemoteLayerTreeTransaction::setThemeColor): Added.
- Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::encode const):
(WebKit::RemoteLayerTreeTransaction::decode):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didCommitLayerTree):
On iOS, include thethemeColorin everyRemoteLayerTreeTransactionso that it's kept in
sync with other changes (e.g. modifying the CSSbackground-color).
- UIProcess/PageClient.h:
(WebKit::PageClient::themeColorWillChange): Added.
(WebKit::PageClient::themeColorDidChange): Added.
- UIProcess/Cocoa/PageClientImplCocoa.h:
- UIProcess/Cocoa/PageClientImplCocoa.mm:
(WebKit::PageClientImplCocoa::themeColorWillChange): Added.
(WebKit::PageClientImplCocoa::themeColorDidChange): Added.
Add support for ObjC KVO of-[WKWebView _themeColor].
- UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::themeColor const): Added.
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _themeColor]): Added.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/HTMLMetaThemeColor.mm: Added.
(TEST.HTMLMetaThemeColor.OnLoad):
(TEST.HTMLMetaThemeColor.MultipleTags):
(-[WKWebViewThemeColorObserver initWithWebView:]):
(-[WKWebViewThemeColorObserver observeValueForKeyPath:ofObject:change:context:]):
(TEST.HTMLMetaThemeColor.KVO):
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- 4:11 PM Changeset in webkit [271919] by
-
- 2 edits in branches/safari-611.1.10.0-branch/Source/WTF
Cherry-pick r271904. rdar://problem/73629533
Disable WebGL 2 on safari-611-branch
rdar://73629533
rdar://73624686
- Scripts/Preferences/WebPreferencesExperimental.yaml:
git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-611-branch@271904 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:08 PM Changeset in webkit [271918] by
-
- 8 edits in branches/safari-611.1.10.0-branch/Source
Versioning.
WebKit-7611.1.10.0.4
- 4:07 PM Changeset in webkit [271917] by
-
- 8 edits in branches/safari-611.1.10.1-branch/Source
Versioning.
WebKit-7611.1.10.1.3
- 4:05 PM Changeset in webkit [271916] by
-
- 2 edits in trunk/Source/WebKit
IPC::Decoder constructor should mark the Decoder as invalid if header decoding fails
https://bugs.webkit.org/show_bug.cgi?id=220990
<rdar://problem/64984186>
Reviewed by Darin Adler.
Mark the decoder as invalid if any of the decode operations fail, not just the first one.
- Platform/IPC/Decoder.cpp:
- 4:03 PM Changeset in webkit [271915] by
-
- 1 copy in tags/Safari-611.1.10.3.1
Tag Safari-611.1.10.3.1.
- 4:01 PM Changeset in webkit [271914] by
-
- 2 edits in branches/safari-611.1.10.3-branch/Source/WTF
Cherry-pick r271904. rdar://problem/73636466
Disable WebGL 2 on safari-611-branch
rdar://73629533
rdar://73624686
- Scripts/Preferences/WebPreferencesExperimental.yaml:
git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-611-branch@271904 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:56 PM Changeset in webkit [271913] by
-
- 8 edits in branches/safari-611.1.10.3-branch/Source
Versioning.
WebKit-7611.1.10.3.1
- 3:29 PM Changeset in webkit [271912] by
-
- 1 copy in branches/safari-611.1.10.3-branch
New branch.
- 3:29 PM Changeset in webkit [271911] by
-
- 1 copy in branches/safari-611.1.10.2-branch
New branch.
- 3:27 PM Changeset in webkit [271910] by
-
- 2 edits in branches/safari-611.1.10.1-branch/Source/WTF
Cherry-pick r271904. rdar://problem/73629333
Disable WebGL 2 on safari-611-branch
rdar://73629533
rdar://73624686
- Scripts/Preferences/WebPreferencesExperimental.yaml:
git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-611-branch@271904 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:55 PM Changeset in webkit [271909] by
-
- 16 edits in trunk/LayoutTests
[LayoutTests] Pass authentication to CGI scripts
https://bugs.webkit.org/show_bug.cgi?id=221007
<rdar://problem/73630042>
Reviewed by Stephanie Lewis.
- http/conf/apache2.2-httpd.conf: Pass authentication to CGI scripts.
- http/conf/apache2.4-httpd.conf: Ditto.
- http/conf/apache2.4-php7-httpd.conf: Ditto.
- http/conf/archlinux-httpd.conf: Ditto.
- http/conf/debian-httpd-2.4-php7.0.conf: Ditto.
- http/conf/debian-httpd-2.4-php7.1.conf: Ditto.
- http/conf/debian-httpd-2.4-php7.2.conf: Ditto.
- http/conf/debian-httpd-2.4-php7.3.conf: Ditto.
- http/conf/debian-httpd-2.4-php7.4.conf: Ditto.
- http/conf/fedora-httpd-2.2.conf: Ditto.
- http/conf/fedora-httpd-2.4-php7.conf: Ditto.
- http/conf/fedora-httpd-2.4.conf: Ditto.
- http/conf/flatpak-httpd.conf: Ditto.
- http/conf/win-httpd-2.4-php5.conf: Ditto.
- http/conf/win-httpd-2.4-php7.conf: Ditto.
- 2:36 PM Changeset in webkit [271908] by
-
- 2 edits in trunk/Source/WebKit
Harden NetworkProcess against integer overflow in CacheStorageEngine size calculation
https://bugs.webkit.org/show_bug.cgi?id=220997
<rdar://problem/66116827>
Reviewed by Youenn Fablet.
Since the CacheStorage allocation is based on data provided by the WebContent process, we should
check for integer overflow before making an allocation.
- NetworkProcess/cache/CacheStorageEngineCache.cpp:
(WebKit::CacheStorage::Cache::put): Use checked arithmetic and return a failure if we overflow.
- 2:23 PM Changeset in webkit [271907] by
-
- 2 edits in trunk/Source/WTF
[macOS] Disable ENABLE_SET_WEBCONTENT_PROCESS_INFORMATION_IN_NETWORK_PROCESS
https://bugs.webkit.org/show_bug.cgi?id=221006
Unreviewed crash fix.
Enabling this is causing a crash. Disable while investigating.
- wtf/PlatformEnableCocoa.h:
- 2:20 PM Changeset in webkit [271906] by
-
- 7 edits in trunk/Source/WebCore
Make showRenderTree() dump FloatingObjects
https://bugs.webkit.org/show_bug.cgi?id=220991
Reviewed by Zalan Bujtas.
It's useful to see which RenderBlockFlows have floating object sets and which
floating objects they contain, so dump that in render tree dumps.
Other minor logging/initializer cleanup.
- rendering/FloatingObjects.cpp:
(WebCore::operator<<):
(WebCore::FloatingObjects::FloatingObjects):
- rendering/FloatingObjects.h:
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::outputFloatingObjects const):
- rendering/RenderBlockFlow.h:
- rendering/RenderObject.cpp:
(WebCore::RenderObject::outputRenderSubTreeAndMark const):
- rendering/RenderView.cpp:
- 2:19 PM Changeset in webkit [271905] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk1 ] fast/harness/render-tree-as-text-options.html is flaky failing in WK1
https://bugs.webkit.org/show_bug.cgi?id=221009
unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 1:45 PM Changeset in webkit [271904] by
-
- 2 edits in branches/safari-611-branch/Source/WTF
Disable WebGL 2 on safari-611-branch
rdar://73629533
rdar://73624686
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 1:45 PM Changeset in webkit [271903] by
-
- 8 edits in trunk
[WASM-References] Change default value for externref's tables from null to undefined
https://bugs.webkit.org/show_bug.cgi?id=220918
Patch by Dmitry Bezhetskov <dbezhetskov> on 2021-01-26
Reviewed by Yusuke Suzuki.
JSTests:
According to the reference types spec
https://webassembly.github.io/reference-types/js-api/#defaultvaluey
we should use undefined as a default value in Table ctor, set and grow
methods, so this patch replaces previous null default value for
externref's table to undefined.
- wasm/references/externref_table_import.js:
(string_appeared_here.fullGC.assert.eq.1.exports.get_tbl):
- wasm/references/table_js_api.js:
(testTableGrowForExternrefTables):
- wasm/references/table_misc.js:
Source/JavaScriptCore:
Update reference types tests to satisfy the spec:
Externref's tables default value should be undefined.
- wasm/js/JSWebAssemblyHelpers.h:
(JSC::defaultValueForTable):
- wasm/js/WebAssemblyTableConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/WebAssemblyTablePrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- 1:33 PM Changeset in webkit [271902] by
-
- 2 edits in trunk/Tools
[GLIB] API tests fail to report harness failures
https://bugs.webkit.org/show_bug.cgi?id=220938
Reviewed by Carlos Garcia Campos.
The GLibTestRunner class parses the stdout of the child test program to
detect failures and crashes using GLib's g_test_* protocol, but the
setup and teardown of each suite/program is done manually in the
beforeAll/afterAll functions. Their output/status need to be checked
separately by the runner scripts.
This commit checks if a failure happens before any test is run (a
beforeAll failure) and if there is still pending stderr output not
processed by g_test_run (an afterAll failure).
- glib/glib_test_runner.py:
(GLibTestRunner.run):
- 1:31 PM Changeset in webkit [271901] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Deny mach-lookup to the service 'com.apple.tccd.system' in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=220976
<rdar://problem/68935772>
Reviewed by Brent Fulgham.
Deny mach-lookup to the service 'com.apple.tccd.system' in the WebContent process, since there are no longer reports of this being used.
No new tests, since the result will depend on OS version.
- WebProcess/com.apple.WebProcess.sb.in:
- 1:20 PM Changeset in webkit [271900] by
-
- 3 edits in trunk/Source/WebKit
Disable TBA availability macro post-processing on iOS 14 / macOS 11
https://bugs.webkit.org/show_bug.cgi?id=221004
Reviewed by Tim Horton.
Disable TBA availability macro post-processing on iOS 14 / macOS 11, now that TBA headers have been updated in r271813.
- Configurations/WebKit.xcconfig:
- Configurations/WebKitTargetConditionals.xcconfig:
- 1:14 PM Changeset in webkit [271899] by
-
- 14 edits in trunk
Forbid '|' in URL hosts
https://bugs.webkit.org/show_bug.cgi?id=220778
Patch by Alex Christensen <achristensen@webkit.org> on 2021-01-26
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
- web-platform-tests/url/a-element-expected.txt:
- web-platform-tests/url/a-element-origin-expected.txt:
- web-platform-tests/url/a-element-origin-xhtml-expected.txt:
- web-platform-tests/url/a-element-xhtml-expected.txt:
- web-platform-tests/url/failure-expected.txt:
- web-platform-tests/url/resources/urltestdata.json:
- web-platform-tests/url/url-constructor-expected.txt:
- web-platform-tests/url/url-origin-expected.txt:
Source/WTF:
This is one of the proposed solutions to https://github.com/whatwg/url/issues/559
and RFC 3986 and 3987 forbid such characters, so let's try forbidding it.
- wtf/URLParser.cpp:
(WTF::isC0Control):
(WTF::isForbiddenHostCodePoint):
LayoutTests:
- fast/url/file-http-base-expected.txt:
- fast/url/file-http-base.html:
- 1:06 PM Changeset in webkit [271898] by
-
- 2 edits in trunk/Source/WebCore
ScopedHighPerformanceGPURequest.h not marked framework private
https://bugs.webkit.org/show_bug.cgi?id=220989
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-01-26
Reviewed by Simon Fraser.
The header was listed twice in the project, causing build failures.
No new tests, build fix.
- WebCore.xcodeproj/project.pbxproj:
- 1:03 PM Changeset in webkit [271897] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Close all XPC connections to Launch Services after checking in
https://bugs.webkit.org/show_bug.cgi?id=220952
<rdar://13785139>
Reviewed by Brent Fulgham.
After checking in with Launch Services on macOS, close all open XPC connections to the service.
This patch also adds checks for a valid Network process connection when updating the WebContent
process' information.
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::updateProcessName):
(WebKit::WebProcess::updateActivePages):
- 12:44 PM Changeset in webkit [271896] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Add local sandbox reporting for access to Metal services in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=220986
Reviewed by Brent Fulgham.
To determine if these services are still used in the WebContent process when the GPU process is enabled, add local sandbox reporting for access to Metal services.
- WebProcess/com.apple.WebProcess.sb.in:
- 12:40 PM Changeset in webkit [271895] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r261238): WKWebView crashes on launch inside a quicklook preview
https://bugs.webkit.org/show_bug.cgi?id=219632
<rdar://problem/72154830>
Reviewed by Alexey Proskuryakov.
Partially revert r261238 to allow applications without access to 'nsurlsessiond' to still
be able to use WebKit for local file access. This workaround should be removed once we
complete the work needed to support true offline WebKit use.
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:
(WebKit::XPCServiceInitializerDelegate::checkEntitlements): Add an early return if the application
possesses the 'com.apple.security.network.client' entitlement.
- 12:37 PM Changeset in webkit [271894] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Restrict process-info in sandbox
https://bugs.webkit.org/show_bug.cgi?id=220985
<rdar://problem/70353532>
Reviewed by Brent Fulgham.
Access to process-info should be restricted to self.
- WebProcess/com.apple.WebProcess.sb.in:
- 12:25 PM Changeset in webkit [271893] by
-
- 12 edits6 copies76 adds in trunk/LayoutTests
Resync web-platform-tests/css/css-sizing/aspect-ratio from upstream
https://bugs.webkit.org/show_bug.cgi?id=220968
Patch by Rob Buis <rbuis@igalia.com> on 2021-01-26
Reviewed by Manuel Rego Casasnovas.
LayoutTests/imported/w3c:
Resync web-platform-tests/css/css-sizing/aspect-ratio from upstream c882810b64.
- resources/import-expectations.json:
- web-platform-tests/css/css-sizing/aspect-ratio/abspos-004.html:
- web-platform-tests/css/css-sizing/aspect-ratio/abspos-015-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/abspos-015.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/abspos-016-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/abspos-016.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-005.html.
- web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-004.html:
- web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-005.html:
- web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-006.html:
- web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-007.html:
- web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-029-crash.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-030-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-030.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-005.html.
- web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-025-expected.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-025.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-026-expected.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-026.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-001-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-001.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-002-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-002.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-003-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-003.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-004-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-004.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-005-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-005.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-006-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-006.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-007-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-007.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-008-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-008.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-009-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-009.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-010-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-010.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-011-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-011.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-012-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-012.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-013-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-013.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-014-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-014.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-004.html:
- web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-009-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-009.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-005.html.
- web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-010-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-010.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-011-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-011.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/percentage-resolution-005-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/percentage-resolution-005.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-005.html.
- web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-028-expected.txt: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-028.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-029-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-029.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-007.html.
- web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-030-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-030.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-007.html.
- web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-031-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-031.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-032-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-032.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/support/100x100-green.png: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/support/1x1-green.png: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/support/200x200-green.png: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/support/w3c-import.log:
- web-platform-tests/css/css-sizing/aspect-ratio/table-element-001-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/table-element-001.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/w3c-import.log:
- web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-001-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-001.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-002-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-002.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-003-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-003.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-004-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-004.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-005-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-005.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-006-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-006.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-007-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-007.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-008-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-008.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-009-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-009.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-010-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-010.html: Added.
LayoutTests:
Adapt platform test expectations.
- 12:12 PM Changeset in webkit [271892] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Deny mach-lookup to the service 'com.apple.audio.SandboxHelper' in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=220978
<rdar://problem/69320352>
Reviewed by Brent Fulgham.
Deny mach-lookup to the service 'com.apple.audio.SandboxHelper' in the WebContent process. Access to this service is only allowed
by extension if Media is running in the WebContent process.
- WebProcess/com.apple.WebProcess.sb.in:
- 12:07 PM Changeset in webkit [271891] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Restrict access to OpenGL profiler
https://bugs.webkit.org/show_bug.cgi?id=220980
<rdar://problem/70354481>
Reviewed by Brent Fulgham.
Only allow the OpenGL profiler to attach on internal installs.
- WebProcess/com.apple.WebProcess.sb.in:
- 12:02 PM Changeset in webkit [271890] by
-
- 2 edits in trunk/Source/WebKit
[CoreIPC] Add size check in decodeSharedBuffer to allow it to be validated against the SharedMemory received
https://bugs.webkit.org/show_bug.cgi?id=220962
<rdar://problem/68204552>
Reviewed by Darin Adler.
Add a new check during decoding so that we fail if the expected buffer size is larger than the block of
shared memory supplied in the IPC call.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::decodeSharedBuffer):
- 11:53 AM Changeset in webkit [271889] by
-
- 5 edits in trunk/Tools
Unreviewed, reverting r271578.
https://bugs.webkit.org/show_bug.cgi?id=221003
Title changes reverted made WPEQt tests fail
Reverted changeset:
"[WPE] Fix WPEQt tests after r271514"
https://bugs.webkit.org/show_bug.cgi?id=220681
https://trac.webkit.org/changeset/271578
Patch by Commit Queue <commit-queue@webkit.org> on 2021-01-26
- 11:36 AM Changeset in webkit [271888] by
-
- 2 edits in trunk/LayoutTests
Release assert in Document::updateStyleIfNeeded() via PrintContext::end() inside HTMLTitleElement::insertedIntoAncestor and removedFromAncestor
https://bugs.webkit.org/show_bug.cgi?id=218496
Unreviewed test gardening.
- TestExpectations: Skip the test to speed up EWS since it became flaky after r271549 was reverted.
- 10:52 AM Changeset in webkit [271887] by
-
- 2 edits in trunk/Source/WebKit
Revert part of r271493
https://bugs.webkit.org/show_bug.cgi?id=220066
<rdar://problem/73615999>
We have an internal app that calls registerSchemeForCustomProtocol on a non-main thread before WebKit initializes.
While this is a problem, we have to not crash on launch until they fix this.
- UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(+[WKBrowsingContextController registerSchemeForCustomProtocol:]):
(+[WKBrowsingContextController unregisterSchemeForCustomProtocol:]):
- 10:24 AM Changeset in webkit [271886] by
-
- 4 edits in trunk/Tools
[JSC] Do not specify remote file location to the JSConly bots
https://bugs.webkit.org/show_bug.cgi?id=220923
Patch by Angelos Oikonomopoulos <Angelos Oikonomopoulos> on 2021-01-26
Reviewed by Carlos Alberto Lopez Perez.
There is no need to treat JSC buildbots that use remotes any
different. The worker side needs to supply the remote
configuration file in any case and it can also specify
--remote-config-file in TEST_JSC_ARGS.
What's more, letting the worker be in control makes it easier to
implement changes without having to request upstream configuration
changes (or, worse, temporarily overriding the configuration
recorded in config.json).
- CISupport/build-webkit-org/config.json:
- CISupport/build-webkit-org/factories.py:
(BuildAndJSCTestsFactory):
(BuildAndJSCTestsFactory.init):
- CISupport/build-webkit-org/steps.py:
(RunJavaScriptCoreTests.countFailures):
- 10:22 AM Changeset in webkit [271885] by
-
- 2 edits in trunk/Source/WebKit
[GPU process][macOS] Only allow access to diagnostic services for internal builds
https://bugs.webkit.org/show_bug.cgi?id=220957
Reviewed by Brent Fulgham.
This patch also removes access to an unused logging service.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- 9:48 AM Changeset in webkit [271884] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, silence deprecation warning for our own API to address build issues.
- UIProcess/API/Cocoa/WKUserContentControllerPrivate.h:
- 9:28 AM Changeset in webkit [271883] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, reverting r271882.
Broke the build
Reverted changeset:
"Unreviewed, silence deprecation warning for our own API to
address build issues."
https://trac.webkit.org/changeset/271882
- 9:05 AM Changeset in webkit [271882] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, silence deprecation warning for our own API to address build issues.
- UIProcess/API/Cocoa/WKUserContentControllerPrivate.h:
- 7:00 AM Changeset in webkit [271881] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Incorrect inline box width with horizontal alignment
https://bugs.webkit.org/show_bug.cgi?id=220961
Reviewed by Antti Koivisto.
While the runs are relative to the line box, and the line box has the horizontal alignment offset
the final inline boxes are expected to include the horizontal alignment.
This patch ensures alignment offset is taken into account when the inline box width is computed.
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
- 5:43 AM Changeset in webkit [271880] by
-
- 20 edits2 copies1 add in trunk/Source
WebGL power preference and discrete/internal gpu selection implemented incorrectly with ANGLE
https://bugs.webkit.org/show_bug.cgi?id=220843
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-01-26
Reviewed by Dean Jackson.
Source/WebCore:
Use ANGLE extension EGL_ANGLE_power_preference to signal to ANGLE that the underlying
CGL context should be updated as a response to display reconfiguration signal.
This ensures that ANGLE state stays consistent with the actual CGL context behavior, as
we don't change the context behind ANGLE's back.
Remove the feature where the context GPU is selected based on the display the window is
on. This cannot work with the logic of "powerPreference = "high-performance" goes to
discrete GPU". Also, this cannot work with ANGLE at all, since all contexts are backed
by a single platform context. Thus all contexts will use the same underlying GPU.
No new tests due to the test runner missing features. The bug blockers track the testing.
- PlatformMac.cmake:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::isHighPerformanceContext):
- page/Chrome.cpp:
(WebCore::Chrome::windowScreenDidChange):
- platform/graphics/GraphicsContextGL.h:
- platform/graphics/RemoteGraphicsContextGLProxyBase.cpp:
- platform/graphics/RemoteGraphicsContextGLProxyBase.h:
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
(WebCore::GraphicsContextGLOpenGL::create):
(WebCore::GraphicsContextGLOpenGL::createShared):
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::setContextVisibility):
(WebCore::GraphicsContextGLOpenGL::displayWasReconfigured):
(WebCore::GraphicsContextGLOpenGL::simulateContextChanged):
- platform/graphics/mac/GraphicsChecksMac.cpp: Added.
(WebCore::attachToAppleGraphicsControl):
(WebCore::hasMuxCapability):
(WebCore::hasLowAndHighPowerGPUs):
- platform/graphics/mac/GraphicsChecksMac.h: Copied from Source/WebKit/WebProcess/WebCoreSupport/mac/WebSwitchingGPUClient.h.
- platform/graphics/mac/ScopedHighPerformanceGPURequest.h: Copied from Source/WebCore/platform/graphics/mac/SwitchingGPUClient.h.
(WebCore::ScopedHighPerformanceGPURequest::ScopedHighPerformanceGPURequest):
(WebCore::ScopedHighPerformanceGPURequest::~ScopedHighPerformanceGPURequest):
(WebCore::ScopedHighPerformanceGPURequest::operator=):
(WebCore::ScopedHighPerformanceGPURequest::acquire):
- platform/graphics/mac/SwitchingGPUClient.h:
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- platform/graphics/opengl/GraphicsContextGLOpenGLManager.cpp:
(WebCore::GraphicsContextGLOpenGLManager::displayWasReconfigured):
(WebCore::GraphicsContextGLOpenGLManager::addContext):
(WebCore::GraphicsContextGLOpenGLManager::removeContext):
- platform/graphics/opengl/GraphicsContextGLOpenGLManager.h:
- testing/Internals.cpp:
Source/WebKit:
Move the high-performance GPU shutdown timer from individual web processes to the main class
in the ui process. This simplifies the implementation and reduces the number of timers.
- UIProcess/mac/HighPerformanceGPUManager.h:
- UIProcess/mac/HighPerformanceGPUManager.mm:
(WebKit::HighPerformanceGPUManager::HighPerformanceGPUManager):
(WebKit::HighPerformanceGPUManager::removeProcessRequiringHighPerformance):
(WebKit::HighPerformanceGPUManager::updateState):
- WebProcess/WebCoreSupport/mac/WebSwitchingGPUClient.cpp:
(WebKit::WebSwitchingGPUClient::requestHighPerformanceGPU):
(WebKit::WebSwitchingGPUClient::releaseHighPerformanceGPU):
- WebProcess/WebCoreSupport/mac/WebSwitchingGPUClient.h:
- 3:49 AM Changeset in webkit [271879] by
-
- 11 edits5 adds in trunk
[SOUP] Stop using SoupRequest API to load files in preparation for libsoup3
https://bugs.webkit.org/show_bug.cgi?id=220509
Reviewed by Adrian Perez de Castro.
Source/WebCore/platform/gtk/po:
- POTFILES.in: Add WebKitDirectoryInputStream.cpp
Source/WebKit:
SoupRequest API is gone in libsoup3 and there's no replacement for file requests. GResource and data URI loads
already happen in the web process so we only need to care about file and directory loads.
- NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::createRequest): Create a GFile for local files.
(WebKit::NetworkDataTaskSoup::clearRequest): Clear the m_file.
(WebKit::NetworkDataTaskSoup::resume): Check also if there's a file operation to resume.
(WebKit::NetworkDataTaskSoup::didSendRequest): We always have a soup message now here because SoupRequest is
only used for HTTP.
(WebKit::NetworkDataTaskSoup::readCallback): In case of failure check if this is an HTTP or file request to
create the error.
(WebKit::NetworkDataTaskSoup::fileQueryInfoCallback): Call didGetFileInfo() and continue reading the file or directory.
(WebKit::NetworkDataTaskSoup::didGetFileInfo): Set URL, content type and length of the response for the given GFileInfo.
(WebKit::NetworkDataTaskSoup::readFileCallback): Complete the g_file_read_async operation.
(WebKit::NetworkDataTaskSoup::enumerateFileChildrenCallback): Create a WebKitDirectoryInputStream.
(WebKit::NetworkDataTaskSoup::didReadFile): Set the input stream and notify the response is ready.
- NetworkProcess/soup/NetworkDataTaskSoup.h:
- NetworkProcess/soup/Resources/directory.css: Added.
- NetworkProcess/soup/Resources/directory.js: Added.
- NetworkProcess/soup/WebKitDirectoryInputStream.cpp: Added.
(webkitDirectoryInputStreamCreateHeader):
(webkitDirectoryInputStreamCreateFooter):
(webkitDirectoryInputStreamCreateRow):
(webkitDirectoryInputStreamReadNextFile):
(webkitDirectoryInputStreamRead):
(webkitDirectoryInputStreamClose):
(webkit_directory_input_stream_class_init):
(webkitDirectoryInputStreamNew):
- NetworkProcess/soup/WebKitDirectoryInputStream.h: Added.
- PlatformGTK.cmake:
- PlatformWPE.cmake:
- SourcesGTK.txt:
- SourcesWPE.txt:
Tools:
Add WebKitDirectoryInputStream.cpp as exception for style checker.
- Scripts/webkitpy/style/checker.py: