| 2019-06-13 Ludovico de Nittis <ludovico.denittis@collabora.com> |
| |
| [GTK] gdk_display_get_device_manager and gdk_screen_get_width/height are deprecated |
| https://bugs.webkit.org/show_bug.cgi?id=198822 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| GdkSeat and GdkRectangle should be used, respectively. |
| |
| No behaviour changes. |
| |
| * platform/gtk/GtkVersioning.c: |
| (getDefaultGDKPointerDevice): |
| (getScreenWorkArea): |
| |
| 2019-06-12 Antoine Quint <graouts@apple.com> |
| |
| [WHLSL] Hook up compute |
| https://bugs.webkit.org/show_bug.cgi?id=198644 |
| |
| Unreviewed build fix. Release iOS build would complain that pipelineState was unused. |
| |
| * platform/graphics/gpu/cocoa/GPUComputePassEncoderMetal.mm: |
| (WebCore::GPUComputePassEncoder::dispatch): |
| |
| 2019-06-12 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| [WHLSL] Hook up compute |
| https://bugs.webkit.org/show_bug.cgi?id=198644 |
| |
| Reviewed by Saam Barati. |
| |
| This patch hooks up compute shaders in exactly the same way that vertex and fragment shaders |
| are hooked up. I've modified the two patchs (compute and rendering) to be almost exactly the |
| same code. |
| |
| This patch also adds support for the WHLSL compiler to determine what the numthreads() |
| attribute in the shader says so that it can be hooked up to Metal's threads-per-threadgroup |
| argument in the dispatch call. There is some logic to make sure that there aren't two |
| numthreads() attributes on the same compute shader. |
| |
| It also adds a little bit of type renaming. For built-in variables, sometimes Metal's type |
| doesn't always match WHLSL's (and HLSL's type). For example, in WHLSL and HLSL, SV_DispatchThreadID variables have to be a float3, but in Metal, they are a uint3. |
| Therefore, I've added a little bit of code during each entry point's pack and unpack stages |
| to handle this type conversion. |
| |
| Test: webgpu/whlsl-compute.html |
| |
| * Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.cpp: |
| (WebCore::WHLSL::Metal::internalTypeForSemantic): Determine which Metal type corresponds to |
| each built-in variable. |
| (WebCore::WHLSL::Metal::EntryPointScaffolding::builtInsSignature): Perform the type |
| conversion. |
| (WebCore::WHLSL::Metal::EntryPointScaffolding::unpackResourcesAndNamedBuiltIns): Ditto. |
| (WebCore::WHLSL::Metal::VertexEntryPointScaffolding::VertexEntryPointScaffolding): Ditto. |
| (WebCore::WHLSL::Metal::VertexEntryPointScaffolding::helperTypes): Ditto. |
| (WebCore::WHLSL::Metal::VertexEntryPointScaffolding::pack): Ditto. |
| (WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::FragmentEntryPointScaffolding): Ditto. |
| (WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::helperTypes): Ditto. |
| (WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::pack): Ditto. |
| (WebCore::WHLSL::Metal::ComputeEntryPointScaffolding::signature): Ditto. |
| * Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.h: |
| * Modules/webgpu/WHLSL/WHLSLComputeDimensions.cpp: Added. Add a pass to determine whether |
| or not any entry point has duplicate numthreads() attribute, and to determine what the |
| appropriate numthreads() values should be for the current entry point. |
| (WebCore::WHLSL::ComputeDimensionsVisitor::ComputeDimensionsVisitor): |
| (WebCore::WHLSL::ComputeDimensionsVisitor::computeDimensions const): |
| (WebCore::WHLSL::computeDimensions): |
| * Modules/webgpu/WHLSL/WHLSLComputeDimensions.h: Copied from Source/WebCore/Modules/webgpu/WHLSL/WHLSLPrepare.h. |
| * Modules/webgpu/WHLSL/WHLSLGatherEntryPointItems.cpp: |
| (WebCore::WHLSL::gatherEntryPointItems): Compute shaders don't need to have a semantic for their return type. |
| * Modules/webgpu/WHLSL/WHLSLPrepare.cpp: |
| (WebCore::WHLSL::prepare): Run the computeDimensions() pass. |
| * Modules/webgpu/WHLSL/WHLSLPrepare.h: |
| * Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp: In a left-value propertyAccessExpression, |
| the index expression can be a right-value. Treat it as such. |
| (WebCore::WHLSL::LeftValueSimplifier::finishVisiting): |
| (WebCore::WHLSL::LeftValueSimplifier::visit): |
| * Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt: We need support for multiplication (for a |
| test) and float3 for SV_DispatchThreadID. |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/graphics/gpu/GPUComputePipeline.h: Associate a compute dimensions with a particular |
| compute pipeline. This is how Metal knows what values to use for a dispatch. |
| (WebCore::GPUComputePipeline::computeDimensions const): |
| * platform/graphics/gpu/cocoa/GPUComputePassEncoderMetal.mm: Use the saved compute dimensions. |
| (WebCore::GPUComputePassEncoder::dispatch): |
| * platform/graphics/gpu/cocoa/GPUComputePipelineMetal.mm: Make the code match GPURenderPipelineMetal. |
| (WebCore::trySetMetalFunctions): |
| (WebCore::trySetFunctions): |
| (WebCore::convertComputePipelineDescriptor): |
| (WebCore::tryCreateMTLComputePipelineState): |
| (WebCore::GPUComputePipeline::tryCreate): |
| (WebCore::GPUComputePipeline::GPUComputePipeline): |
| (WebCore::tryCreateMtlComputeFunction): Deleted. |
| * platform/graphics/gpu/cocoa/GPUPipelineMetalConvertLayout.cpp: Added. Moved shared helper |
| functions to a file where they can be accessed by multiple places. |
| (WebCore::convertShaderStageFlags): |
| (WebCore::convertBindingType): |
| (WebCore::convertLayout): |
| * platform/graphics/gpu/cocoa/GPUPipelineMetalConvertLayout.h: Copied from Source/WebCore/Modules/webgpu/WHLSL/WHLSLPrepare.h. |
| * platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm: Delete the functions that were moved to GPUPipelineMetalConvertLayout. |
| (WebCore::trySetFunctions): |
| (WebCore::tryCreateMtlRenderPipelineState): |
| (WebCore::convertShaderStageFlags): Deleted. |
| (WebCore::convertBindingType): Deleted. |
| (WebCore::convertLayout): Deleted. |
| |
| 2019-06-12 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| [WHLSL] Implement array references |
| https://bugs.webkit.org/show_bug.cgi?id=198163 |
| |
| Reviewed by Saam Barati. |
| |
| The compiler automatically generates anders for every array reference. Luckily, the infrastructure |
| to generate those anders and emit Metal code to represent them already exists in the compiler. |
| There are two pieces remaining (which this patch implements): |
| |
| 1. The JavaScript compiler has a behavior where anders that are called with an array reference |
| as an argument don't wrap the argument in a MakePointerExpression. This is because the array |
| reference is already a reference type, so it's silly to operate on a pointer to a reference. |
| This patch implements this by teaching the type checker about which types should be passed |
| to the ander call, and by actually constructing those types in the property resolver. |
| The property resolver does this by placing the logic to construct an ander argument in a |
| single function which also has logic to save the argument in a temporary if the thread ander |
| will be called. The semantics about which functions are called in which situations are not |
| changed; instead, we just simply don't wrap array references with MakePointerExpressions. |
| |
| 2. Creating a bind group from the WebGPU API has to retain information about buffer lengths for |
| each buffer so the shader can properly perform bounds checks. This can be broken down into a |
| few pieces: |
| - Creating a bind group layout has to assign extra id indexes for each buffer which will be |
| filled in to represent the buffer's length |
| - Creating the bind group itself needs to fill in the buffer length into the Metal argument |
| buffer |
| - The shader compiler needs to emit code at the beginning of entry point to find the buffer |
| lengths and pack them together into the array reference (array references correspond to |
| a Metal struct with two fields: a pointer and a length). |
| |
| This patch doesn't actually implement bounds checks themselves; it just hooks up the buffer |
| lengths so https://bugs.webkit.org/show_bug.cgi?id=198600 can implement it. |
| |
| The shader compiler's API is modified to allow for this extra buffer length information to be |
| passed in from the WebGPU implementation. |
| |
| Unfortunately, I don't think I could split this patch up into two pieces because both are |
| required to test the compiler with buffers. |
| |
| Tests: webgpu/whlsl-buffer-fragment.html |
| webgpu/whlsl-buffer-vertex.html |
| |
| * Modules/webgpu/WHLSL/AST/WHLSLPropertyAccessExpression.h: |
| (WebCore::WHLSL::AST::PropertyAccessExpression::baseReference): |
| * Modules/webgpu/WHLSL/AST/WHLSLResourceSemantic.cpp: |
| (WebCore::WHLSL::AST::ResourceSemantic::isAcceptableType const): Arrays can't be resources |
| because the compiler has no way of guaranteeing if the resource is long enough to hold the |
| array at compile time. |
| * Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.cpp: |
| (WebCore::WHLSL::Metal::EntryPointScaffolding::EntryPointScaffolding): Generate an extra |
| variable name to represent the buffer length. Only do it for resources which have lengths. |
| (WebCore::WHLSL::Metal::EntryPointScaffolding::resourceHelperTypes): |
| (WebCore::WHLSL::Metal::EntryPointScaffolding::unpackResourcesAndNamedBuiltIns): Perform |
| the appropriate math to turn byte lengths into element counts and store the element count |
| in the array reference. |
| * Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.h: |
| * Modules/webgpu/WHLSL/WHLSLChecker.cpp: |
| (WebCore::WHLSL::resolveWithOperatorAnderIndexer): Refactor. |
| (WebCore::WHLSL::resolveWithOperatorLength): Ditto. |
| (WebCore::WHLSL::resolveWithReferenceComparator): Ditto. |
| (WebCore::WHLSL::resolveByInstantiation): Ditto. |
| (WebCore::WHLSL::argumentTypeForAndOverload): Given an ander, what should the type of the |
| argument be? |
| (WebCore::WHLSL::Checker::finishVisiting): Call argumentTypeForAndOverload(). Also, if |
| we couldn't find an ander, try automatically generating it, the same way that function |
| calls do. (This is how array references get their anders.) |
| (WebCore::WHLSL::Checker::visit): |
| * Modules/webgpu/WHLSL/WHLSLPipelineDescriptor.h: New WHLSL API to provide the length |
| information. |
| * Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp: |
| (WebCore::WHLSL::PropertyResolver::visit): SimplifyRightValue() can't fail any more. |
| (WebCore::WHLSL::wrapAnderCallArgument): If the ander argument should be wrapped in a |
| MakePointer or a MakeArrayReference, do that. Also, if the ander is a thread ander, save |
| the argument in a local variable and use that. |
| (WebCore::WHLSL::anderCallArgument): The equivalent of argumentTypeForAndOverload(). |
| (WebCore::WHLSL::setterCall): Call anderCallArgument(). |
| (WebCore::WHLSL::getterCall): Ditto. |
| (WebCore::WHLSL::modify): We used to have special-case code for handling pointer-to-argument |
| values as distinct from just the argument values themselves. However, emitting |
| chains of &* operators is valid and won't even make it through the Metal code generator |
| after https://bugs.webkit.org/show_bug.cgi?id=198600 is fixed. So, in order to simplify |
| wrapAnderCallArgument(), don't special case these values and just create &* chains instead. |
| (WebCore::WHLSL::PropertyResolver::simplifyRightValue): |
| (WebCore::WHLSL::LeftValueSimplifier::finishVisiting): Call anderCallArgument(). |
| * Modules/webgpu/WHLSL/WHLSLSemanticMatcher.cpp: Update to support the new compiler API. |
| (WebCore::WHLSL::matchMode): |
| (WebCore::WHLSL::matchResources): |
| * Modules/webgpu/WebGPUBindGroupDescriptor.cpp: Ditto. |
| (WebCore::WebGPUBindGroupDescriptor::tryCreateGPUBindGroupDescriptor const): |
| * platform/graphics/gpu/GPUBindGroupLayout.h: Add some internal implementation data inside |
| the bindings object. Use a Variant to differentiate between the various bindings types, and |
| put the extra length field on just those members of the variant that represent buffers. |
| * platform/graphics/gpu/cocoa/GPUBindGroupLayoutMetal.mm: Update to support the new compiler API. |
| (WebCore::argumentDescriptor): |
| (WebCore::GPUBindGroupLayout::tryCreate): |
| * platform/graphics/gpu/cocoa/GPUBindGroupMetal.mm: Ditto. |
| (WebCore::setBufferOnEncoder): |
| (WebCore::GPUBindGroup::tryCreate): |
| * platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm: Ditto. |
| (WebCore::convertBindingType): |
| (WebCore::convertLayout): |
| |
| 2019-06-12 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [cairo][SVG] If clipPath has multiple elements, clip-path doesn't work with transform |
| https://bugs.webkit.org/show_bug.cgi?id=198746 |
| |
| Reviewed by Don Olmstead. |
| |
| We need to save the current transformation matrix at the moment the image mask is set and set it again on |
| restore right before applying the mask. This patch also creates a pattern for the image mask surface and set its |
| transformation matrix according to the mask position, so that we don't need to save the mask rectangle too. |
| |
| Tests: svg/clip-path/clip-hidpi-expected.svg |
| svg/clip-path/clip-hidpi.svg |
| svg/clip-path/clip-opacity-translate-expected.svg |
| svg/clip-path/clip-opacity-translate.svg |
| |
| * platform/graphics/cairo/PlatformContextCairo.cpp: |
| (WebCore::PlatformContextCairo::restore): |
| (WebCore::PlatformContextCairo::pushImageMask): |
| |
| 2019-06-12 Simon Fraser <simon.fraser@apple.com> |
| |
| paddingBoxRect() is wrong with RTL scrollbars on the left |
| https://bugs.webkit.org/show_bug.cgi?id=198816 |
| |
| Reviewed by Jon Lee. |
| |
| RenderBox::paddingBoxRect() needs to offset the left side of the box for the |
| vertical scrollbar, if it's placed on the left. |
| |
| Test: compositing/geometry/rtl-overflow-scroll.html |
| |
| * rendering/RenderBox.cpp: |
| (WebCore::RenderBox::paddingBoxRect const): |
| * rendering/RenderBox.h: |
| (WebCore::RenderBox::paddingBoxRect const): Deleted. |
| * rendering/RenderLayerBacking.cpp: |
| (WebCore::RenderLayerBacking::updateGeometry): |
| * rendering/RenderListBox.cpp: |
| (WebCore::RenderListBox::controlClipRect const): |
| |
| 2019-06-12 Youenn Fablet <youenn@apple.com> |
| |
| Use NSURLSession for WebSocket |
| https://bugs.webkit.org/show_bug.cgi?id=198568 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Add a runtime flag to either choose the new WebSocket code path or the previously existing one. |
| The switch is done at WebSocket channel API level which offers the necessary high level API to abstract the two code paths. |
| By default, we continue using the current WebSocket implementation. |
| Covered by manual testing on current WebSocket tests. |
| |
| * Modules/websockets/ThreadableWebSocketChannel.cpp: |
| (WebCore::ThreadableWebSocketChannel::create): |
| * Modules/websockets/WebSocketChannel.cpp: |
| (WebCore::WebSocketChannel::document): |
| * Modules/websockets/WebSocketChannel.h: |
| * WebCore.xcodeproj/project.pbxproj: |
| * page/RuntimeEnabledFeatures.h: |
| (WebCore::RuntimeEnabledFeatures::isNSURLSessionWebSocketEnabled const): |
| (WebCore::RuntimeEnabledFeatures::setIsNSURLSessionWebSocketEnabled): |
| * page/SocketProvider.cpp: |
| (WebCore::SocketProvider::createWebSocketChannel): |
| * page/SocketProvider.h: |
| |
| 2019-06-12 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| [WHLSL] Educate the property resolver about IndexExpressions |
| https://bugs.webkit.org/show_bug.cgi?id=198399 |
| |
| Reviewed by Saam Barati. |
| |
| This is part one of two patches which will allow buffers to work. This patch |
| adds support in the property resolver for index expressions. Index expressions |
| get turned into calls to "getter indexers", "setter indexers", or "ander |
| indexers". They work almost identically to dot expressions, except there is an |
| extra "index" expression which gets turned into an extra argument to those |
| functions. |
| |
| There's actually a bit of a trick here. Let's say we need to run a getter and |
| a setter separately (e.g. "foo[3]++;"). The index expression can't be duplicated |
| for both the getter and the setter (e.g. the functions are |
| int operator[](Foo, uint) and Foo operator[]=(Foo, uint, int), and we aren't |
| allowed to execute the index expression multiple times. Consider if that "3" |
| in the example is actually "bar()" with some side effect. So, we have to run |
| the index expression once at the correct time, and save its result to a temporary |
| variable, and then pass in the temporary variable into the getter and setter. |
| |
| So, if the code says "foo[bar()][baz()] = quux();" the following sequence of |
| functions get run: |
| |
| - bar() |
| - operator[](Foo, uint) |
| - baz() |
| - quux() |
| - operator[]=(OtherType, uint, OtherOtherType) |
| - operator[]=(Foo, uint, OtherType) |
| |
| The next patch will modify the WebGPU JavaScript implementation to send buffer |
| lengths to the shader, and for the shader compiler to correctly unpack this |
| information and place it inside the array references. That should be everything |
| that's needed to get buffers to work. After that, hooking up compute should be |
| fairly trivial. |
| |
| Tests: webgpu/propertyresolver/ander-abstract-lvalue.html |
| webgpu/propertyresolver/ander-lvalue-3-levels.html |
| webgpu/propertyresolver/ander-lvalue.html |
| webgpu/propertyresolver/ander.html |
| webgpu/propertyresolver/getter.html |
| webgpu/propertyresolver/indexer-ander-abstract-lvalue.html |
| webgpu/propertyresolver/indexer-ander-lvalue-3-levels.html |
| webgpu/propertyresolver/indexer-ander-lvalue.html |
| webgpu/propertyresolver/indexer-ander.html |
| webgpu/propertyresolver/indexer-getter.html |
| webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels.html |
| webgpu/propertyresolver/indexer-setter-abstract-lvalue.html |
| webgpu/propertyresolver/indexer-setter-lvalue.html |
| webgpu/propertyresolver/indexer-setter.html |
| webgpu/propertyresolver/setter-abstract-lvalue-3-levels.html |
| webgpu/propertyresolver/setter-abstract-lvalue.html |
| webgpu/propertyresolver/setter-lvalue.html |
| |
| * Modules/webgpu/WHLSL/AST/WHLSLAddressSpace.h: |
| (WebCore::WHLSL::AST::toString): |
| * Modules/webgpu/WHLSL/AST/WHLSLEntryPointType.h: |
| (WebCore::WHLSL::AST::toString): |
| * Modules/webgpu/WHLSL/AST/WHLSLIndexExpression.h: |
| (WebCore::WHLSL::AST::IndexExpression::takeIndex): |
| * Modules/webgpu/WHLSL/AST/WHLSLReferenceType.h: |
| * Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp: |
| (WebCore::WHLSL::Metal::writeNativeFunction): |
| (WebCore::WHLSL::Metal::convertAddressSpace): Deleted. |
| * Modules/webgpu/WHLSL/WHLSLChecker.cpp: |
| (WebCore::WHLSL::checkOperatorOverload): |
| (WebCore::WHLSL::Checker::finishVisiting): |
| (WebCore::WHLSL::Checker::visit): |
| * Modules/webgpu/WHLSL/WHLSLInferTypes.h: |
| * Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp: |
| (WebCore::WHLSL::PropertyResolver::visit): |
| (WebCore::WHLSL::setterCall): |
| (WebCore::WHLSL::getterCall): |
| (WebCore::WHLSL::modify): |
| (WebCore::WHLSL::PropertyResolver::simplifyRightValue): |
| (WebCore::WHLSL::LeftValueSimplifier::finishVisiting): |
| (WebCore::WHLSL::LeftValueSimplifier::visit): |
| * Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt: |
| * Modules/webgpu/WHLSL/WHLSLSynthesizeStructureAccessors.cpp: |
| (WebCore::WHLSL::synthesizeStructureAccessors): |
| |
| 2019-06-12 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: artificial context menus don't work when Web Inspector is zoomed |
| https://bugs.webkit.org/show_bug.cgi?id=198801 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * inspector/InspectorFrontendHost.cpp: |
| (WebCore::InspectorFrontendHost::dispatchEventAsContextMenuEvent): |
| Use the `absoluteLocation` of the `MouseEvent`, which takes into account zoom and scale. |
| |
| 2019-06-12 Sam Weinig <weinig@apple.com> |
| |
| Remove dead code in user agent construction |
| https://bugs.webkit.org/show_bug.cgi?id=198802 |
| |
| Reviewed by Anders Carlsson. |
| |
| * page/NavigatorBase.cpp: |
| (WebCore::NavigatorBase::platform const): |
| Drop dead architures. |
| |
| 2019-06-12 Ludovico de Nittis <ludovico.denittis@collabora.com> |
| |
| [GTK] GTK_STOCK_* types have been deprecated since GTK 3.10 |
| https://bugs.webkit.org/show_bug.cgi?id=198787 |
| |
| Reviewed by Michael Catanzaro. |
| |
| No behaviour changes. |
| |
| * platform/graphics/gtk/IconGtk.cpp: |
| (WebCore::lookupIconName): |
| * platform/graphics/gtk/ImageGtk.cpp: |
| (WebCore::loadMissingImageIconFromTheme): |
| |
| 2019-06-12 Antti Koivisto <antti@apple.com> |
| |
| (Async scrolling) Handle 'position:fixed' inside 'position:sticky' correctly. |
| https://bugs.webkit.org/show_bug.cgi?id=198788 |
| <rdar://problem/51589759> |
| |
| Reviewed by Simon Fraser. |
| |
| Handle 'position:fixed' inside 'position:sticky' correctly. |
| |
| Also fix nested 'position:fixed' in case where there is an overflow scroller between them. |
| |
| Tests: scrollingcoordinator/ios/fixed-inside-overflow-inside-fixed.html |
| scrollingcoordinator/ios/fixed-inside-sticky-frame.html |
| scrollingcoordinator/ios/fixed-inside-sticky-no-stacking-context-2.html |
| scrollingcoordinator/ios/fixed-inside-sticky-no-stacking-context.html |
| scrollingcoordinator/ios/fixed-inside-sticky-stacking-context.html |
| |
| * page/scrolling/cocoa/ScrollingTreeFixedNode.mm: |
| (WebCore::ScrollingTreeFixedNode::applyLayerPositions): |
| |
| Take offsets from sticky nodes into account. |
| |
| * page/scrolling/cocoa/ScrollingTreeStickyNode.h: |
| (WebCore::ScrollingTreeStickyNode::layer): |
| * page/scrolling/cocoa/ScrollingTreeStickyNode.mm: |
| (WebCore::ScrollingTreeStickyNode::computeLayerPosition const): |
| |
| Factor into a function. |
| |
| (WebCore::ScrollingTreeStickyNode::applyLayerPositions): |
| (WebCore::ScrollingTreeStickyNode::scrollDeltaSinceLastCommit const): |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::isViewportConstrainedFixedOrStickyLayer const): |
| |
| We need to generate a scrolling tree node for position:fixed in nested case if there is an overflow scroller |
| between the layers. |
| |
| 2019-06-12 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r246350. |
| |
| r246350 Introduced a failing and timing out test svg/clip-path |
| /clip-hidpi.svg |
| |
| Reverted changeset: |
| |
| "[cairo][SVG] If clipPath has multiple elements, clip-path doesn't work with transform" |
| https://bugs.webkit.org/show_bug.cgi?id=198746 |
| https://trac.webkit.org/changeset/246350 |
| |
| 2019-06-12 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [cairo][SVG] If clipPath has multiple elements, clip-path doesn't work with transform |
| https://bugs.webkit.org/show_bug.cgi?id=198746 |
| <rdar://problem/51665805> |
| |
| Reviewed by Don Olmstead. |
| |
| We need to save the current transformation matrix at the moment the image mask is set and set it again on |
| restore right before applying the mask. This patch also creates a pattern for the image mask surface and set its |
| transformation matrix according to the mask position, so that we don't need to save the mask rectangle too. |
| |
| Tests: svg/clip-path/clip-hidpi-expected.svg |
| svg/clip-path/clip-hidpi.svg |
| svg/clip-path/clip-opacity-translate-expected.svg |
| svg/clip-path/clip-opacity-translate.svg |
| |
| * platform/graphics/cairo/PlatformContextCairo.cpp: |
| (WebCore::PlatformContextCairo::restore): |
| (WebCore::PlatformContextCairo::pushImageMask): |
| |
| 2019-06-11 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] Idempotent text autosizing needs to react properly to viewport changes |
| https://bugs.webkit.org/show_bug.cgi?id=198736 |
| <rdar://problem/50591911> |
| |
| Reviewed by Zalan Bujtas. |
| |
| Minor refactoring and some adjustments around StyleResolver::adjustRenderStyleForTextAutosizing. See below for |
| more details, as well as the WebKit ChangeLog. |
| |
| Test: fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-after-changing-initial-scale.html |
| |
| * css/StyleResolver.cpp: |
| (WebCore::StyleResolver::adjustRenderStyleForTextAutosizing): |
| |
| Rewrite this using early return statements, to make it easier to debug why elements fall out of text autosizing. |
| Additionally, this function currently bails if the initial scale is exactly 1, whereas we can really avoid text |
| autosizing in the case where the initial scale is at least 1; handle this by making idempotentTextSize return |
| immediately with the specified size, in the case where the scale is at least 1. |
| |
| Lastly, remove the null check for element by making this method take an Element&, and only call this from |
| adjustRenderStyle if the element is nonnull (which matches adjustRenderStyleForSiteSpecificQuirks). |
| |
| (WebCore::StyleResolver::adjustRenderStyle): |
| * css/StyleResolver.h: |
| * rendering/style/TextSizeAdjustment.cpp: |
| (WebCore::AutosizeStatus::idempotentTextSize): |
| |
| 2019-06-11 Timothy Hatcher <timothy@apple.com> |
| |
| Flash when tapping compose button after switching to/from dark mode without restarting Mail. |
| https://bugs.webkit.org/show_bug.cgi?id=198769 |
| rdar://problem/51370037 |
| |
| Reviewed by Tim Horton. |
| |
| * WebCore.xcodeproj/project.pbxproj: Make LocalCurrentTraitCollection.h a private header. |
| |
| 2019-06-11 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r246320. |
| https://bugs.webkit.org/show_bug.cgi?id=198773 |
| |
| New test is failing, and commit is causing another test to |
| fail. (Requested by ShawnRoberts on #webkit). |
| |
| Reverted changeset: |
| |
| "Web Inspector: AXI: Audit: image label test is throwing |
| spurious errors on elements with existing alt attr, but no |
| value: <img alt>" |
| https://bugs.webkit.org/show_bug.cgi?id=194754 |
| https://trac.webkit.org/changeset/246320 |
| |
| 2019-06-11 Devin Rousso <drousso@apple.com> |
| |
| Sort the computed styles list |
| https://bugs.webkit.org/show_bug.cgi?id=198743 |
| |
| Reviewed by Simon Fraser |
| |
| * css/CSSComputedStyleDeclaration.cpp: |
| |
| 2019-06-11 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed build warning fixes |
| |
| Silence -Wunused-parameter warning |
| |
| * testing/Internals.cpp: |
| (WebCore::Internals::storeRegistrationsOnDisk): |
| |
| 2019-06-10 Simon Fraser <simon.fraser@apple.com> |
| |
| Add logging for UI-side compositing hit-testing |
| https://bugs.webkit.org/show_bug.cgi?id=198739 |
| |
| Reviewed by Antti Koivisto. |
| |
| Export the TextStream output operator. |
| |
| * platform/TouchAction.h: |
| |
| 2019-06-11 Greg Doolittle <gr3g@apple.com> |
| |
| Web Inspector: AXI: Audit: image label test is throwing spurious errors on elements with existing alt attr, but no value: <img alt> |
| https://bugs.webkit.org/show_bug.cgi?id=194754 |
| <rdar://problem/48144534> |
| |
| Reviewed by Chris Fleizach. |
| |
| Tests: accessibility/img-alt-attribute-empty-string.html |
| accessibility/img-alt-attribute-no-value.html |
| |
| * accessibility/AccessibilityObject.cpp: |
| (WebCore::AccessibilityObject::computedRoleString const): |
| |
| 2019-06-11 Sihui Liu <sihui_liu@apple.com> |
| |
| Add a quirk for washingtonpost.com and nytimes.com |
| https://bugs.webkit.org/show_bug.cgi?id=198678 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Covered by manual test. |
| |
| * page/Quirks.cpp: |
| (WebCore::Quirks::hasWebSQLSupportQuirk const): |
| |
| 2019-06-11 Devin Rousso <drousso@apple.com> |
| |
| Include `touch-action` in the computed styles list |
| https://bugs.webkit.org/show_bug.cgi?id=198742 |
| |
| Reviewed by Antoine Quint. |
| |
| * css/CSSComputedStyleDeclaration.cpp: |
| |
| 2019-06-11 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| tu-berlin university email web interface (Outlook Web App) goes directly to the light version instead of the normal web app |
| https://bugs.webkit.org/show_bug.cgi?id=198749 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Add user agent quirk for exchange.tu-berlin.de, which has lost the right to receive an |
| accurate user agent from WebKit. |
| |
| * platform/UserAgentQuirks.cpp: |
| (WebCore::urlRequiresMacintoshPlatform): |
| |
| 2019-06-11 Youenn Fablet <youenn@apple.com> |
| |
| MediaStreamAudioSourceNode::setFormat should check for m_sourceSampleRate equality |
| https://bugs.webkit.org/show_bug.cgi?id=198740 |
| <rdar://problem/47088939> |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by tests that are now passing. |
| |
| * Modules/webaudio/MediaStreamAudioSourceNode.cpp: |
| (WebCore::MediaStreamAudioSourceNode::setFormat): |
| |
| 2019-06-11 Ludovico de Nittis <ludovico.denittis@collabora.com> |
| |
| [GTK] Replace gdk_screen_get_monitor_geometry and gdk_screen_get_monitor_workarea |
| https://bugs.webkit.org/show_bug.cgi?id=198750 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Since GTK 3.22 gdk_screen_get_monitor_geometry and |
| gdk_screen_get_monitor_workarea has been deprecated. |
| |
| No behavior change. |
| |
| * platform/gtk/PlatformScreenGtk.cpp: |
| (WebCore::screenRect): |
| (WebCore::screenAvailableRect): |
| |
| 2019-06-11 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [cairo][SVG] Putting multiple path elements in clippath causes rendering artifacts |
| https://bugs.webkit.org/show_bug.cgi?id=198701 |
| |
| PlatformContextCairo::pushImageMask blits wrong position of the |
| surface to the background of masking objects. And, I don't know |
| the reason why this blitting is needed. Removed the blitting. |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Tests: svg/clip-path/clip-opacity.html |
| svg/clip-path/svg-in-html.html |
| |
| * platform/graphics/cairo/PlatformContextCairo.cpp: |
| (WebCore::PlatformContextCairo::pushImageMask): Don't blit the |
| surface to the background. |
| |
| 2019-06-10 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [WinCairo][MediaFoundation] Remove the unused video window |
| https://bugs.webkit.org/show_bug.cgi?id=198523 |
| |
| Reviewed by Don Olmstead. |
| |
| Remove the video window which had been unused since Bug 150941. |
| |
| No behavior change. |
| |
| * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp: |
| (WebCore::MediaPlayerPrivateMediaFoundation::MediaPlayerPrivateMediaFoundation): |
| (WebCore::MediaPlayerPrivateMediaFoundation::~MediaPlayerPrivateMediaFoundation): |
| (WebCore::MediaPlayerPrivateMediaFoundation::setSize): |
| (WebCore::MediaPlayerPrivateMediaFoundation::paint): |
| (WebCore::MediaPlayerPrivateMediaFoundation::hostWindow): |
| (WebCore::MediaPlayerPrivateMediaFoundation::createOutputNode): |
| (WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::setVideoWindow): |
| (WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::setDestinationRect): |
| (WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::createVideoSamples): |
| (WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::presentSample): |
| (WebCore::MediaPlayerPrivateMediaFoundation::VideoViewWndProc): Deleted. |
| (WebCore::MediaPlayerPrivateMediaFoundation::registerVideoWindowClass): Deleted. |
| (WebCore::MediaPlayerPrivateMediaFoundation::createVideoWindow): Deleted. |
| (WebCore::MediaPlayerPrivateMediaFoundation::destroyVideoWindow): Deleted. |
| (WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::presentSwapChain): Deleted. |
| (WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::updateDestRect): Deleted. |
| * platform/graphics/win/MediaPlayerPrivateMediaFoundation.h: |
| |
| 2019-06-10 Simon Fraser <simon.fraser@apple.com> |
| |
| Add visualization of touch action regions |
| https://bugs.webkit.org/show_bug.cgi?id=198718 |
| |
| Reviewed by Antoine Quint. |
| |
| Add a way to show which elements of the page have touch-action set on them by |
| painting an overlay with small text that shows the type of action(s). |
| |
| The event regions are painted into GraphicsLayers at paint time in |
| RenderLayerBacking by making a pattern image and filling the region rects |
| with the pattern. |
| |
| * page/DebugPageOverlays.cpp: |
| (WebCore::touchEventRegionColors): |
| * rendering/EventRegion.cpp: |
| (WebCore::EventRegion::regionForTouchAction const): |
| * rendering/EventRegion.h: |
| (WebCore::EventRegion::region const): |
| * rendering/RenderLayerBacking.cpp: |
| (WebCore::RenderLayerBacking::updateEventRegion): |
| (WebCore::patternForTouchAction): |
| (WebCore::RenderLayerBacking::paintContents): |
| |
| 2019-06-10 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| Web Inspector: DNS names in SymmaryInfo was wrong. |
| https://bugs.webkit.org/show_bug.cgi?id=198732 |
| |
| Reviewed by Devin Rousso. |
| |
| * inspector/agents/InspectorNetworkAgent.cpp: |
| (WebCore::InspectorNetworkAgent::buildObjectForResourceResponse): |
| |
| 2019-06-10 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] 2.25.1 does not build on 32-bit ARM due to bit-packing assertion, requires -DENABLE_DARK_MODE_CSS=OFF |
| https://bugs.webkit.org/show_bug.cgi?id=198274 |
| |
| Reviewed by Timothy Hatcher. |
| |
| Rather than reorder everything in StyleRareInheritedData, let's slightly increase the size |
| of GreaterThanOrSameSizeAsStyleRareInheritedData to allow the static assert to pass. |
| |
| At the same time, remove an obsolote iOS-specific member that is probably no longer needed. |
| |
| * rendering/style/StyleRareInheritedData.cpp: |
| |
| 2019-06-10 Sam Weinig <weinig@apple.com> |
| |
| Remove Dashboard support |
| https://bugs.webkit.org/show_bug.cgi?id=198615 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * WebCore.xcodeproj/project.pbxproj: |
| * css/CSSCalculationValue.cpp: |
| (WebCore::hasDoubleValue): |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::ComputedStyleExtractor::valueForPropertyInStyle): |
| * css/CSSPrimitiveValue.cpp: |
| (WebCore::isValidCSSUnitTypeForDoubleConversion): |
| (WebCore::isStringType): |
| (WebCore::CSSPrimitiveValue::cleanup): |
| (WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText const): |
| (WebCore::CSSPrimitiveValue::equals const): |
| * css/CSSPrimitiveValue.h: |
| * css/CSSProperties.json: |
| * css/CSSValueKeywords.in: |
| * css/DashboardRegion.h: Removed. |
| * css/StyleBuilderCustom.h: |
| (WebCore::convertToIntLength): Deleted. |
| (WebCore::StyleBuilderCustom::applyValueWebkitDashboardRegion): Deleted. |
| * css/StyleResolver.cpp: |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::CSSPropertyParser::parseSingleValue): |
| (WebCore::consumeWebkitDashboardRegion): Deleted. |
| * dom/DataTransfer.cpp: |
| (WebCore::DataTransfer::createForUpdatingDropTarget): |
| * dom/Document.cpp: |
| (WebCore::Document::invalidateRenderingDependentRegions): |
| (WebCore::Document::annotatedRegions const): Deleted. |
| (WebCore::Document::setAnnotatedRegions): Deleted. |
| (WebCore::Document::updateAnnotatedRegions): Deleted. |
| (WebCore::Document::invalidateScrollbarDependentRegions): Deleted. |
| (WebCore::Document::updateZOrderDependentRegions): Deleted. |
| * dom/Document.h: |
| (WebCore::Document::setHasAnnotatedRegions): Deleted. |
| (WebCore::Document::setAnnotatedRegionsDirty): Deleted. |
| (WebCore::Document::annotatedRegionsDirty const): Deleted. |
| (WebCore::Document::hasAnnotatedRegions const): Deleted. |
| * html/HTMLCanvasElement.cpp: |
| (WebCore::HTMLCanvasElement::createContext2d): |
| * html/HTMLEmbedElement.cpp: |
| (WebCore::HTMLEmbedElement::rendererIsNeeded): |
| * html/HTMLImageLoader.cpp: |
| (WebCore::HTMLImageLoader::sourceURI const): |
| * html/canvas/CanvasGradient.cpp: |
| (WebCore::CanvasGradient::addColorStop): |
| * html/canvas/CanvasGradient.h: |
| (WebCore::CanvasGradient::setDashboardCompatibilityMode): Deleted. |
| (): Deleted. |
| * html/canvas/CanvasRenderingContext2D.cpp: |
| (WebCore::CanvasRenderingContext2D::create): |
| (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D): |
| * html/canvas/CanvasRenderingContext2D.h: |
| * html/canvas/CanvasRenderingContext2DBase.cpp: |
| (WebCore::CanvasRenderingContext2DBase::CanvasRenderingContext2DBase): |
| (WebCore::CanvasRenderingContext2DBase::fill): |
| (WebCore::CanvasRenderingContext2DBase::stroke): |
| (WebCore::CanvasRenderingContext2DBase::clip): |
| (WebCore::CanvasRenderingContext2DBase::createLinearGradient): |
| (WebCore::CanvasRenderingContext2DBase::createRadialGradient): |
| (WebCore::CanvasRenderingContext2DBase::prepareGradientForDashboard const): Deleted. |
| (WebCore::CanvasRenderingContext2DBase::clearPathForDashboardBackwardCompatibilityMode): Deleted. |
| * html/canvas/CanvasRenderingContext2DBase.h: |
| * html/canvas/OffscreenCanvasRenderingContext2D.cpp: |
| (WebCore::OffscreenCanvasRenderingContext2D::OffscreenCanvasRenderingContext2D): |
| * html/canvas/PaintRenderingContext2D.cpp: |
| (WebCore::PaintRenderingContext2D::PaintRenderingContext2D): |
| * page/Chrome.cpp: |
| (WebCore::ChromeClient::annotatedRegionsChanged): Deleted. |
| * page/ChromeClient.h: |
| * page/FrameView.cpp: |
| (WebCore::FrameView::didLayout): |
| (WebCore::FrameView::didPaintContents): |
| * page/Settings.yaml: |
| * page/mac/EventHandlerMac.mm: |
| (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks const): |
| * rendering/RenderInline.cpp: |
| (WebCore::RenderInline::addAnnotatedRegions): Deleted. |
| * rendering/RenderInline.h: |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::scrollTo): |
| (WebCore::RenderLayer::setHasHorizontalScrollbar): |
| (WebCore::RenderLayer::setHasVerticalScrollbar): |
| (WebCore::RenderLayer::updateScrollbarsAfterLayout): |
| * rendering/RenderListBox.cpp: |
| (WebCore::RenderListBox::setHasVerticalScrollbar): |
| * rendering/RenderObject.cpp: |
| (WebCore::RenderObject::addAnnotatedRegions): Deleted. |
| (WebCore::RenderObject::collectAnnotatedRegions): Deleted. |
| * rendering/RenderObject.h: |
| (WebCore::AnnotatedRegionValue::operator== const): Deleted. |
| (WebCore::AnnotatedRegionValue::operator!= const): Deleted. |
| * rendering/style/RenderStyle.cpp: |
| (WebCore::rareNonInheritedDataChangeRequiresLayout): |
| (WebCore::RenderStyle::initialDashboardRegions): Deleted. |
| (WebCore::RenderStyle::noneDashboardRegions): Deleted. |
| (WebCore::RenderStyle::setDashboardRegion): Deleted. |
| * rendering/style/RenderStyle.h: |
| (WebCore::RenderStyle::dashboardRegions const): Deleted. |
| (WebCore::RenderStyle::setDashboardRegions): Deleted. |
| * rendering/style/StyleDashboardRegion.h: Removed. |
| * rendering/style/StyleRareNonInheritedData.cpp: |
| (WebCore::StyleRareNonInheritedData::operator== const): |
| * rendering/style/StyleRareNonInheritedData.h: |
| * xml/XMLHttpRequest.cpp: |
| (WebCore::XMLHttpRequest::send): |
| (WebCore::XMLHttpRequest::setRequestHeader): |
| (WebCore::XMLHttpRequest::usesDashboardBackwardCompatibilityMode const): Deleted. |
| * xml/XMLHttpRequest.h: |
| |
| 2019-06-10 Antti Koivisto <antti@apple.com> |
| |
| Event region should be set on scrolledContentsLayer if it exists |
| https://bugs.webkit.org/show_bug.cgi?id=198717 |
| <rdar://problem/51572169> |
| |
| Reviewed by Simon Fraser. |
| |
| Test: pointerevents/ios/touch-action-region-overflow.html |
| |
| * rendering/RenderLayerBacking.cpp: |
| (WebCore::RenderLayerBacking::updateConfiguration): |
| |
| Move to updateBackingAndHierarchy. |
| |
| (WebCore::RenderLayerBacking::updateEventRegion): |
| |
| - Set event region on scrolledContentsLayer if it exists |
| - Translate away the scroll offset |
| - Get the offset from renderer from the GraphicsLayer so scrolling and non-scrolling case can be handled uniformly. |
| |
| * rendering/RenderLayerBacking.h: |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::updateBackingAndHierarchy): |
| |
| Invoke updateEventRegion after geometry update so offsets are already available on GraphicsLayer. |
| |
| 2019-06-10 Daniel Bates <dabates@apple.com> |
| |
| [CSP] Blob URLs should inherit their CSP policy |
| https://bugs.webkit.org/show_bug.cgi?id=198579 |
| <rdar://problem/51366878> |
| |
| Reviewed by Brent Fulgham. |
| |
| As per <https://w3c.github.io/webappsec-csp/#security-inherit-csp> (Editor's Draft, 28 February 2019) blob |
| URLs should inherit their CSP policy from their parent (if they have one). |
| |
| Test: http/tests/security/contentSecurityPolicy/navigate-self-to-blob.html |
| http/tests/security/contentSecurityPolicy/navigate-self-to-data-url.html |
| |
| * dom/Document.cpp: |
| (WebCore::Document::shouldInheritContentSecurityPolicyFromOwner const): Return true if the document's URL |
| is a Blob URL. |
| (WebCore::Document::initContentSecurityPolicy): Take a pointer to a ContentSecurityPolicy object that |
| represents the previous document's CSP. We only make us of this if the current URL is a Blob URL or a data |
| URL. Otherwise, do what we do now and take the policy from the owner frame. |
| * dom/Document.h: |
| * loader/DocumentWriter.cpp: |
| (WebCore::DocumentWriter::begin): Extend the lifetime of the previous document temporarily so that we can |
| pass its CSP to FrameLoader::didBeginDocument(). We need to do this extension because this function calls |
| FrameLoader::clear(), which can destroy the previous document and its ContentSecurityPolicy object. This |
| extension is also no different than if this function was called with a non-null ownerDocument except that |
| in that case it is the caller that extends the previous document's lifetime. Although it is tempting to |
| make use of ownerDocument to fix this bug by having the caller of begin() pass the previous document as |
| the ownerDocument when the new document's url (the one we are begin()ing) is a Blob URL. The ownerDocument |
| concept would privilege the Blob URL more than necessary; we only need to inherit the CSP policy from the |
| previous document for a Blob URL, not inherit the cookie URL or strict mixed content checking bit, etc. |
| We could make ContentSecurityPolicy ref-counted or even steal the ContentSecurityPolicy object from the |
| previous document. The latter is not of the question as a future enhancement, but the former seemed excessive |
| as a way to avoid extending the lifetime of the previous document because this would be the *only* call site |
| that actaully takes out a second ref of a ContentSecurityPolicy object. In general, shared ownership of |
| a ContentSecurityPolicy object does not make sense. |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::didBeginDocument): Pass the specified content security policy through to |
| Document::initContentSecurityPolicy(). |
| * loader/FrameLoader.h: |
| |
| 2019-06-10 Saam Barati <sbarati@apple.com> |
| |
| [WHLSL] Auto initialize local variables |
| https://bugs.webkit.org/show_bug.cgi?id=198426 |
| |
| Reviewed by Myles Maxfield. |
| |
| This patch implements zero-filling for local variables in two parts: |
| 1. We add a new pass, autoInitializeVariables, which makes any variable declaration |
| without an initializer call the default constructor for the variable's type. |
| Since we auto generate the default constructor, it's a native function whose |
| implementation we control. |
| |
| 2. Each native constructor is implemented as a memset(&value, sizeof(value), 0). |
| This memset is an inlined loop in each constructor. The reason this turns |
| everything into zero is that for every primitive type, the "zero" value is |
| represented as all zeroes in memory: float, int, pointers, etc. |
| |
| Since our ability to test some of this is limited, I opened a follow-up bug to |
| test this more: |
| https://bugs.webkit.org/show_bug.cgi?id=198413 |
| |
| Tests: webgpu/whlsl-zero-initialize-values-2.html |
| webgpu/whlsl-zero-initialize-values.html |
| |
| * Modules/webgpu/WHLSL/AST/WHLSLVariableDeclaration.h: |
| (WebCore::WHLSL::AST::VariableDeclaration::setInitializer): |
| * Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp: |
| (WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit): |
| * Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp: |
| (WebCore::WHLSL::Metal::writeNativeFunction): |
| * Modules/webgpu/WHLSL/WHLSLASTDumper.h: |
| * Modules/webgpu/WHLSL/WHLSLAutoInitializeVariables.cpp: Added. |
| (WebCore::WHLSL::AutoInitialize::AutoInitialize): |
| (WebCore::WHLSL::AutoInitialize::visit): |
| (WebCore::WHLSL::autoInitializeVariables): |
| * Modules/webgpu/WHLSL/WHLSLAutoInitializeVariables.h: Added. |
| * Modules/webgpu/WHLSL/WHLSLChecker.cpp: |
| (WebCore::WHLSL::checkOperatorOverload): |
| (WebCore::WHLSL::Checker::visit): |
| * Modules/webgpu/WHLSL/WHLSLInferTypes.cpp: |
| (WebCore::WHLSL::inferTypesForCallImpl): |
| (WebCore::WHLSL::inferTypesForCall): |
| * Modules/webgpu/WHLSL/WHLSLInferTypes.h: |
| * Modules/webgpu/WHLSL/WHLSLPrepare.cpp: |
| (WebCore::WHLSL::prepareShared): |
| * Modules/webgpu/WHLSL/WHLSLResolveOverloadImpl.cpp: |
| (WebCore::WHLSL::resolveFunctionOverloadImpl): |
| (WebCore::WHLSL::resolveFunctionOverload): |
| * Modules/webgpu/WHLSL/WHLSLResolveOverloadImpl.h: |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| |
| 2019-06-10 Timothy Hatcher <timothy@apple.com> |
| |
| Integrate dark mode support for iOS. |
| https://bugs.webkit.org/show_bug.cgi?id=198687 |
| rdar://problem/51545643 |
| |
| Reviewed by Tim Horton. |
| |
| Tests: css-dark-mode |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * SourcesCocoa.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/graphics/cocoa/FontCascadeCocoa.mm: |
| (WebCore::showLetterpressedGlyphsWithAdvances): |
| * platform/ios/LocalCurrentTraitCollection.h: Added. |
| * platform/ios/LocalCurrentTraitCollection.mm: Added. |
| * platform/ios/PasteboardIOS.mm: |
| * rendering/RenderThemeIOS.mm: |
| (WebCore::RenderThemeIOS::systemColor const): |
| * rendering/RenderThemeMac.mm: |
| (WebCore::RenderThemeMac::systemColor const): |
| |
| 2019-06-10 Ali Juma <ajuma@chromium.org> |
| |
| REGRESSION (r245396): Page load time performance regression |
| https://bugs.webkit.org/show_bug.cgi?id=198382 |
| |
| Reviewed by Per Arne Vollan. |
| |
| Use a delay of 2000ms instead of 500ms when scheduling rendering updates |
| for IntersectionObserver targets added during page load. This is a |
| speculative fix for a page load time regression caused by r245396 and |
| still not fixed after r245958. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::scheduleTimedRenderingUpdate): |
| |
| 2019-06-10 Sihui Liu <sihui_liu@apple.com> |
| |
| [WKHTTPCookieStore getAllCookies:] may return duplicate cookies |
| https://bugs.webkit.org/show_bug.cgi?id=198635 |
| <rdar://problem/46010232> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Test: WebKit.WKHTTPCookieStoreWithoutProcessPoolDuplicates |
| |
| * platform/Cookie.h: |
| (WebCore::Cookie::isKeyEqual const): |
| (WTF::HashTraits<WebCore::Cookie>::isEmptyValue): |
| |
| 2019-06-09 Rob Buis <rbuis@igalia.com> |
| |
| Add wildcard to Access-Control-Allow-Methods and Access-Control-Allow-Headers |
| https://bugs.webkit.org/show_bug.cgi?id=165508 |
| |
| Reviewed by Frédéric Wang. |
| |
| According to the spec [1] step 6.5, a wildcard for method |
| and request's credentials mode should be taken into account, so |
| add this to the check. Same for Access-Control-Allow-Headers (step 6.7). |
| |
| [1] https://fetch.spec.whatwg.org/#cors-preflight-fetch |
| |
| Tests: web-platform-tests/fetch/api/cors/cors-preflight-star.any.html |
| web-platform-tests/fetch/api/cors/cors-preflight-star.any.worker.html |
| |
| * loader/CrossOriginAccessControl.cpp: |
| (WebCore::validatePreflightResponse): |
| * loader/CrossOriginPreflightResultCache.cpp: |
| (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginMethod const): |
| (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders const): |
| (WebCore::CrossOriginPreflightResultCacheItem::allowsRequest const): |
| * loader/CrossOriginPreflightResultCache.h: |
| |
| 2019-06-08 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] Introduce Baseline to LineBox |
| https://bugs.webkit.org/show_bug.cgi?id=198686 |
| <rdar://problem/51545175> |
| |
| Reviewed by Antti Koivisto. |
| |
| Make baselines alignment explicit in Line. |
| This is in preparation for adding non-baseline vertical alignment support. |
| |
| * layout/inlineformatting/InlineFormattingContextLineLayout.cpp: |
| (WebCore::Layout::InlineFormattingContext::LineLayout::placeInlineItems const): |
| (WebCore::Layout::InlineFormattingContext::LineLayout::createDisplayRuns const): |
| * layout/inlineformatting/InlineLine.cpp: |
| (WebCore::Layout::Line::Line): |
| (WebCore::Layout::Line::close): |
| (WebCore::Layout::Line::adjustBaselineAndLineHeight): |
| (WebCore::Layout::Line::halfLeadingMetrics): |
| * layout/inlineformatting/InlineLine.h: |
| (WebCore::Layout::Line::Content::baseline const): |
| (WebCore::Layout::Line::Content::setBaseline): |
| (WebCore::Layout::Line::logicalHeight const): |
| (WebCore::Layout::Line::baselineAlignedContentHeight const): |
| (WebCore::Layout::Line::baselineOffset const): |
| * layout/inlineformatting/InlineLineBox.h: |
| (WebCore::Layout::LineBox::baseline const): |
| (WebCore::Layout::LineBox::LineBox): |
| |
| 2019-06-07 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| REGRESSION (r244182) [WK1]: Page updates should always scheduleCompositingLayerFlush() immediately |
| https://bugs.webkit.org/show_bug.cgi?id=198664 |
| |
| Reviewed by Simon Fraser. |
| |
| Because WK1 is a single process, scheduleCompositingLayerFlush() has to |
| be called immediately when layers' update is needed. Otherwise no content |
| will be drawn for the current frame. Doing this will get smooth scrolling |
| back to WK1. |
| |
| RenderingUpdateScheduler now has three different scheduling methods: |
| |
| 1. scheduleTimedRenderingUpdate(): This is a two-steps scheduling method. |
| DisplayRefreshMonitor has to fire before scheduleCompositingLayerFlush() |
| is called. This is used by rAF, WebAnimations and intersection and |
| resize observers. |
| |
| 2. scheduleImmediateRenderingUpdate(): This is a one-step scheduling method. |
| layerTreeAsText() calls this method because it has to process the rendering |
| update within the current frame. |
| |
| 3. scheduleRenderingUpdate(): RenderLayerCompositor::scheduleLayerFlush() |
| calls this function to decide either immediately flush layers or wait |
| for the next timed frame. scheduleImmediateRenderingUpdate() will be |
| called for WK1. scheduleTimedRenderingUpdate() will be called for WK2. |
| |
| * animation/DocumentTimeline.cpp: |
| (WebCore::DocumentTimeline::scheduleAnimationResolution): |
| * dom/Document.cpp: |
| (WebCore::Document::scheduleTimedRenderingUpdate): |
| (WebCore::Document::scheduleInitialIntersectionObservationUpdate): |
| (WebCore::Document::updateResizeObservations): |
| (WebCore::Document::scheduleRenderingUpdate): Deleted. |
| * dom/Document.h: |
| * dom/ScriptedAnimationController.cpp: |
| (WebCore::ScriptedAnimationController::scheduleAnimation): |
| * page/ChromeClient.h: |
| * page/PageOverlayController.cpp: |
| (WebCore::PageOverlayController::didChangeViewExposedRect): |
| (WebCore::PageOverlayController::notifyFlushRequired): |
| * page/RenderingUpdateScheduler.cpp: |
| (WebCore::RenderingUpdateScheduler::scheduleTimedRenderingUpdate): |
| (WebCore::RenderingUpdateScheduler::displayRefreshFired): |
| (WebCore::RenderingUpdateScheduler::scheduleImmediateRenderingUpdate): |
| (WebCore::RenderingUpdateScheduler::scheduleRenderingUpdate): |
| (WebCore::RenderingUpdateScheduler::scheduleCompositingLayerFlush): Deleted. |
| * page/RenderingUpdateScheduler.h: |
| * page/ResizeObserver.cpp: |
| (WebCore::ResizeObserver::observe): |
| * page/mac/ServicesOverlayController.mm: |
| (WebCore::ServicesOverlayController::Highlight::notifyFlushRequired): |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::layerTreeAsText): |
| |
| 2019-06-07 Megan Gardner <megan_gardner@apple.com> |
| |
| Extend quirks to emulate bold/italic/underline in hidden editable areas |
| https://bugs.webkit.org/show_bug.cgi?id=198681 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Rename only. |
| |
| Rename quirks to be more accurate for new extended use. |
| |
| * page/Quirks.cpp: |
| (WebCore::shouldEmulateEditingButtonsAndGesturesInHiddenEditableAreasForHost): |
| (WebCore::Quirks::shouldEmulateEditingButtonsAndGesturesInHiddenEditableAreas const): |
| (WebCore::shouldEmulateUndoRedoInHiddenEditableAreasForHost): Deleted. |
| (WebCore::Quirks::shouldEmulateUndoRedoInHiddenEditableAreas const): Deleted. |
| * page/Quirks.h: |
| |
| 2019-06-07 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r246138. |
| |
| Broke internal builds |
| |
| Reverted changeset: |
| |
| "[WHLSL] Educate the property resolver about IndexExpressions" |
| https://bugs.webkit.org/show_bug.cgi?id=198399 |
| https://trac.webkit.org/changeset/246138 |
| |
| 2019-06-07 Justin Fan <justin_fan@apple.com> |
| |
| [WebGPU] Remove GPUBuffer.setSubData and implement GPUDevice.createBufferMapped |
| https://bugs.webkit.org/show_bug.cgi?id=198591 |
| |
| Reviewed by Myles C. Maxfield. |
| |
| Remove GPUBuffer.setSubData from the WebGPU API. |
| Add GPUDevice.createBufferMapped to the WebGPU API. |
| |
| Existing tests have been updated. |
| |
| * Modules/webgpu/WebGPUBuffer.cpp: |
| (WebCore::WebGPUBuffer::setSubData): Deleted. |
| * Modules/webgpu/WebGPUBuffer.h: |
| * Modules/webgpu/WebGPUBuffer.idl: |
| * Modules/webgpu/WebGPUDevice.cpp: |
| (WebCore::WebGPUDevice::createBufferMapped const): |
| * Modules/webgpu/WebGPUDevice.h: |
| * Modules/webgpu/WebGPUDevice.idl: |
| * platform/graphics/gpu/GPUBuffer.h: |
| * platform/graphics/gpu/GPUCommandBuffer.h: |
| * platform/graphics/gpu/GPUDevice.cpp: |
| (WebCore::GPUDevice::tryCreateBuffer): |
| * platform/graphics/gpu/GPUDevice.h: |
| * platform/graphics/gpu/cocoa/GPUBufferMetal.mm: |
| (WebCore::GPUBuffer::tryCreate): |
| (WebCore::GPUBuffer::GPUBuffer): |
| (WebCore::GPUBuffer::state const): |
| (WebCore::GPUBuffer::mapOnCreation): |
| (WebCore::GPUBuffer::commandBufferCompleted): |
| (WebCore::GPUBuffer::copyStagingBufferToGPU): |
| Required to unmap GPUBuffers created with GPU-private storage. |
| (WebCore::GPUBuffer::unmap): |
| (WebCore::GPUBuffer::setSubData): Deleted. |
| (WebCore::GPUBuffer::reuseSubDataBuffer): Deleted. |
| |
| 2019-06-07 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, fix non-iOS build after r246205 |
| https://bugs.webkit.org/show_bug.cgi?id=198657 |
| <rdar://problem/51345064> |
| |
| * page/Quirks.cpp: |
| * page/Quirks.h: |
| |
| 2019-06-07 Youenn Fablet <youenn@apple.com> |
| |
| mediaDevices.enumerateDevices() doesn't list the system default audio devices with deviceId as "default" |
| https://bugs.webkit.org/show_bug.cgi?id=198577 |
| <rdar://problem/51454067> |
| |
| Reviewed by Eric Carlson. |
| |
| Make the system default microphone/camera be the first in the list. |
| This ensures that getUserMedia without constraints will pick these devices. |
| This also ensures enumerateDevices will show these default devices as first in the list. |
| Make sure that a default device change will refresh the list. |
| |
| For CoreAudioCaptureSource, we always add the default system input device in the list of capture devices. |
| |
| Covered by manual testing. |
| |
| * platform/mediastream/mac/AVCaptureDeviceManager.h: |
| * platform/mediastream/mac/AVCaptureDeviceManager.mm: |
| (WebCore::toCaptureDevice): |
| (WebCore::AVCaptureDeviceManager::isMatchingExistingCaptureDevice): |
| (WebCore::AVCaptureDeviceManager::refreshCaptureDevices): |
| * platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp: |
| (WebCore::getDefaultDeviceID): |
| (WebCore::CoreAudioCaptureDeviceManager::refreshAudioCaptureDevices): |
| |
| 2019-06-07 Youenn Fablet <youenn@apple.com> |
| |
| A MediaStreamTrack cannot modify whether being a capture track or not |
| https://bugs.webkit.org/show_bug.cgi?id=198669 |
| |
| Reviewed by Eric Carlson. |
| |
| Add a boolean in MediaStreamTrack to store whether a track is a capture one or not. |
| This removes the need to always go through the private and its source. |
| As a track might change of source (for non capture track cases), this |
| also removes the possibility for a track to be capture and then no |
| longer capture. |
| No change of behavior. |
| See also rdar://problem/49444622. |
| |
| * Modules/mediastream/MediaStreamTrack.cpp: |
| (WebCore::MediaStreamTrack::MediaStreamTrack): |
| * Modules/mediastream/MediaStreamTrack.h: |
| (WebCore::MediaStreamTrack::isCaptureTrack const): |
| |
| 2019-06-07 Youenn Fablet <youenn@apple.com> |
| |
| Add a RELEASE_ASSERT that removeAudioProducer should always be done in the main thread |
| https://bugs.webkit.org/show_bug.cgi?id=198668 |
| |
| Reviewed by Eric Carlson. |
| |
| See rdar://problem/49444622 for background information. |
| No change of behavior. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::removeAudioProducer): |
| |
| 2019-06-07 Zalan Bujtas <zalan@apple.com> |
| |
| Images are not resizing correctly when dragged to a message in 1/3 view |
| https://bugs.webkit.org/show_bug.cgi?id=198623 |
| <rdar://problem/51185518> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Mail's max-width: 100%; default style is in conflict with the preferred presentation size. This patch preserves the existing behaviour for Mail by |
| not setting the height (and rely on the width + aspect ratio). |
| |
| * editing/WebContentReader.h: |
| * editing/cocoa/WebContentReaderCocoa.mm: |
| (WebCore::createFragmentForImageAttachment): |
| (WebCore::WebContentReader::readImage): |
| (WebCore::attachmentForFilePath): |
| (WebCore::attachmentForData): |
| (WebCore::WebContentReader::readFilePath): |
| (WebCore::WebContentReader::readDataBuffer): |
| * editing/gtk/EditorGtk.cpp: |
| (WebCore::createFragmentFromPasteboardData): |
| * editing/markup.cpp: |
| (WebCore::createFragmentForImageAndURL): |
| * editing/markup.h: |
| * platform/Pasteboard.h: |
| (WebCore::PasteboardWebContentReader::readFilePath): |
| (WebCore::PasteboardWebContentReader::readImage): |
| (WebCore::PasteboardWebContentReader::readDataBuffer): |
| * platform/PasteboardItemInfo.h: |
| (WebCore::PasteboardItemInfo::encode const): |
| (WebCore::PasteboardItemInfo::decode): |
| * platform/ios/PasteboardIOS.mm: |
| (WebCore::Pasteboard::readPasteboardWebContentDataForType): |
| (WebCore::Pasteboard::read): |
| (WebCore::Pasteboard::readRespectingUTIFidelities): |
| * platform/ios/PlatformPasteboardIOS.mm: |
| (WebCore::PlatformPasteboard::informationForItemAtIndex): |
| |
| 2019-06-07 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] Line should skip all vertical adjustment when running preferred width computation |
| https://bugs.webkit.org/show_bug.cgi?id=198642 |
| <rdar://problem/51511043> |
| |
| Reviewed by Antti Koivisto. |
| |
| While layout triggers both horizontal and vertical aligment, preferred width computation should only do (logical)horizontal. |
| Make all vertical alignment computation optional in Line. |
| |
| * layout/inlineformatting/InlineFormattingContextLineLayout.cpp: |
| (WebCore::Layout::UncommittedContent::add): |
| (WebCore::Layout::InlineFormattingContext::LineLayout::placeInlineItems const): |
| (WebCore::Layout::InlineFormattingContext::LineLayout::computedIntrinsicWidth const): |
| (WebCore::Layout::InlineFormattingContext::LineLayout::createDisplayRuns const): |
| (WebCore::Layout::inlineItemHeight): Deleted. |
| * layout/inlineformatting/InlineLine.cpp: |
| (WebCore::Layout::Line::Content::Run::Run): |
| (WebCore::Layout::Line::Line): |
| (WebCore::Layout::Line::close): |
| (WebCore::Layout::Line::removeTrailingTrimmableContent): |
| (WebCore::Layout::Line::moveLogicalLeft): |
| (WebCore::Layout::Line::trailingTrimmableWidth const): |
| (WebCore::Layout::Line::appendNonBreakableSpace): |
| (WebCore::Layout::Line::appendInlineContainerStart): |
| (WebCore::Layout::Line::appendInlineContainerEnd): |
| (WebCore::Layout::Line::appendTextContent): |
| (WebCore::Layout::Line::appendNonReplacedInlineBox): |
| (WebCore::Layout::Line::appendReplacedInlineBox): |
| (WebCore::Layout::Line::appendHardLineBreak): |
| (WebCore::Layout::Line::inlineItemHeight const): |
| * layout/inlineformatting/InlineLine.h: |
| |
| 2019-06-07 Antoine Quint <graouts@apple.com> |
| |
| Limit simulated mouse events on Google Maps to entering Street View |
| https://bugs.webkit.org/show_bug.cgi?id=198657 |
| <rdar://problem/51345064> |
| |
| Reviewed by Brent Fulgham. |
| |
| * page/Quirks.cpp: |
| (WebCore::Quirks::shouldDispatchSimulatedMouseEvents const): |
| (WebCore::Quirks::shouldDispatchSimulatedMouseEventsOnTarget const): |
| * page/Quirks.h: |
| |
| 2019-06-07 Joonghun Park <jh718.park@samsung.com> |
| |
| Unreviewed. Use const TabSize& instead of TabSize to avoid unnecessary copy. |
| |
| Using const reference is a c++ feature to extend the life time of |
| a temporary object to the life time of the const reference which refers to it. |
| |
| No behavioral changes. |
| |
| * rendering/style/RenderStyle.h: |
| (WebCore::RenderStyle::setTabSize): |
| |
| 2019-06-07 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] GLContextEGL.h must be built with @no-unify |
| https://bugs.webkit.org/show_bug.cgi?id=198659 |
| |
| Unreviewed ARM build fix. |
| |
| * SourcesGTK.txt: |
| |
| 2019-06-07 Antti Koivisto <antti@apple.com> |
| |
| position:fixed inside overflow positioning nodes is jumpy |
| https://bugs.webkit.org/show_bug.cgi?id=198647 |
| <rdar://problem/51514437> |
| |
| Reviewed by Frédéric Wang. |
| |
| Tests: scrollingcoordinator/ios/fixed-overflow-no-stacking-context-1.html |
| scrollingcoordinator/ios/fixed-overflow-no-stacking-context-2.html |
| scrollingcoordinator/ios/fixed-overflow-stacking-context-stationary.html |
| |
| * page/scrolling/ScrollingTreeScrollingNode.h: |
| * page/scrolling/cocoa/ScrollingTreeFixedNode.mm: |
| (WebCore::ScrollingTreeFixedNode::applyLayerPositions): |
| |
| Take deltas from positioning nodes into account. |
| |
| * page/scrolling/cocoa/ScrollingTreePositionedNode.h: |
| * page/scrolling/cocoa/ScrollingTreePositionedNode.mm: |
| (WebCore::ScrollingTreePositionedNode::scrollDeltaSinceLastCommit const): |
| |
| Rename since 'scrollOffset' has other meaning. |
| |
| (WebCore::ScrollingTreePositionedNode::applyLayerPositions): |
| (WebCore::ScrollingTreePositionedNode::scrollOffsetSinceLastCommit const): Deleted. |
| * page/scrolling/cocoa/ScrollingTreeStickyNode.mm: |
| (WebCore::ScrollingTreeStickyNode::applyLayerPositions): |
| |
| 2019-06-07 Enrique Ocaña González <eocanha@igalia.com> |
| |
| [MSE][GStreamer] Avoid QUOTA_EXCEEDED_ERR when seeking to a buffered range just before the buffered one |
| https://bugs.webkit.org/show_bug.cgi?id=166620 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| This patch is fixing a seek to unbuffered range just before the buffered one. |
| For example, supposing a [120, 176) append has filled all the memory and then |
| a seek to 115.0 is done, a subsequent [115, 120) append would fail without |
| this fix. EvictCodedFrames() would return without actually evicting anything, |
| and appendBufferInternal will print "buffer full, failing with |
| QUOTA_EXCEEDED_ERR error" on GStreamer platforms instead of letting the new |
| [115, 120) append succeed. |
| |
| This patch is based on an original patch by iivlev <iivlev@productengine.com> |
| |
| Test: media/media-source/media-source-append-before-last-range-no-quota-exceeded.html |
| |
| * Modules/mediasource/SourceBuffer.cpp: |
| (WebCore::SourceBuffer::evictCodedFrames): |
| Removed the "only if there are buffered ranges *containing* the currentTime" condition |
| to enter into the second part of the eviction algorithm, which removes frames |
| starting from the duration of the media and going backwards down to currentPosition + 30. |
| The loop break condition has also been changed to deal with notFound currentTimeRange. |
| |
| 2019-06-07 Philippe Normand <philn@igalia.com> |
| |
| [GStreamer] AVC1 decoding capabilities probing support |
| https://bugs.webkit.org/show_bug.cgi?id=198569 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| When capabilities for an avc1 codec are requested, the registry scanner looks |
| for a compatible decoder for the given H.264 profile and level. |
| |
| This new approach can be avoided by using the WEBKIT_GST_MAX_AVC1_RESOLUTION |
| environment variable. If supplied, the decoder capabilities won't be probed and |
| the codec will be advertised as supported if it complies with the contents of |
| the environment variable. The resolutions currently handled are specifically: |
| 1080P, 720P and 480P. We don't handle framerate checking yet, so the implied |
| H.264 levels are assumed to be for 30FPS. |
| |
| * platform/graphics/gstreamer/GStreamerRegistryScanner.cpp: |
| (WebCore::GStreamerRegistryScanner::isCodecSupported const): |
| (WebCore::GStreamerRegistryScanner::areInputCapsAccepted const): |
| (WebCore::GStreamerRegistryScanner::isAVC1CodecSupported const): |
| * platform/graphics/gstreamer/GStreamerRegistryScanner.h: |
| |
| 2019-06-07 Joonghun Park <jh718.park@samsung.com> |
| |
| Implement tab-size with units |
| https://bugs.webkit.org/show_bug.cgi?id=179022 |
| |
| Reviewed by Simon Fraser. |
| |
| This change is ported from Blink. |
| The committed revision is https://src.chromium.org/viewvc/blink?revision=189430&view=revision. |
| |
| Additionally, this patch lets css "number" value be allowed as tab-size's property value, |
| not css "integer" value, |
| according to https://drafts.csswg.org/css-text-3/#tab-size-property. |
| |
| Tests: css3/tab-size.html |
| imported/w3c/web-platform-tests/css/css-values/calc-numbers.html |
| |
| * Headers.cmake: |
| * WebCore.xcodeproj/project.pbxproj: |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::ComputedStyleExtractor::valueForPropertyInStyle): |
| * css/CSSProperties.json: |
| * css/StyleBuilderConverter.h: |
| (WebCore::StyleBuilderConverter::convertTabSize): |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::consumeTabSize): |
| * layout/inlineformatting/text/TextUtil.cpp: |
| (WebCore::Layout::TextUtil::width): |
| * platform/graphics/FontCascade.h: |
| (WebCore::FontCascade::tabWidth const): |
| * platform/graphics/TabSize.h: Added. |
| (WebCore::TabSize::TabSize): |
| (WebCore::TabSize::isSpaces const): |
| (WebCore::TabSize::widthInPixels const): |
| (WebCore::TabSize::operator bool const): |
| (WebCore::operator==): |
| (WebCore::operator!=): |
| * platform/graphics/TextRun.cpp: |
| * platform/graphics/TextRun.h: |
| (WebCore::TextRun::tabSize const): |
| (WebCore::TextRun::setTabSize): |
| * rendering/SimpleLineLayoutTextFragmentIterator.cpp: |
| (WebCore::SimpleLineLayout::TextFragmentIterator::Style::Style): |
| * rendering/SimpleLineLayoutTextFragmentIterator.h: |
| * rendering/style/RenderStyle.h: |
| (WebCore::RenderStyle::tabSize const): |
| (WebCore::RenderStyle::setTabSize): |
| (WebCore::RenderStyle::initialTabSize): |
| * rendering/style/StyleRareInheritedData.cpp: |
| * rendering/style/StyleRareInheritedData.h: |
| |
| 2019-06-07 Philippe Normand <pnormand@igalia.com> |
| |
| [GStreamer] videorate issues with v4l2src |
| https://bugs.webkit.org/show_bug.cgi?id=198614 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| Configure videorate to cope with the live stream provided by the |
| source element. Not doing so might lead to errors in the v4l2 |
| buffer allocator. |
| |
| * platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp: |
| (WebCore::GStreamerVideoCapturer::createConverter): |
| |
| 2019-06-06 Andy Estes <aestes@apple.com> |
| |
| process-swap-on-navigation error when loading blocked website on iOS 12.2 only. |
| https://bugs.webkit.org/show_bug.cgi?id=196930 |
| <rdar://problem/47819301> |
| |
| Reviewed by Chris Dumez. |
| |
| When the content filter blocks a navigation, it will continue to load the content filter |
| error page in the provisional web process. When dispatching didFailProvisionalLoad, we need |
| to specify WillContinueLoading::Yes so that WebKit presents the error page rather than |
| switching back to the committed web process. |
| |
| Testing blocked by <https://webkit.org/b/198626>. |
| |
| * loader/ContentFilter.cpp: |
| (WebCore::ContentFilter::willHandleProvisionalLoadFailure): |
| (WebCore::ContentFilter::handleProvisionalLoadFailure): |
| * loader/ContentFilter.h: |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::dispatchDidFailProvisionalLoad): |
| (WebCore::FrameLoader::checkLoadCompleteForThisFrame): |
| * loader/FrameLoader.h: |
| |
| 2019-06-06 Chris Dumez <cdumez@apple.com> |
| |
| RELEASE_ASSERT hit in CachedFrame constructor |
| https://bugs.webkit.org/show_bug.cgi?id=198625 |
| <rdar://problem/49877867> |
| |
| Reviewed by Geoffrey Garen. |
| |
| This is a speculative fix, it appears the document is already detached from its |
| frame by the time we construct a CachedFrame for it when entering PageCache. |
| |
| No new tests, because we do not know yet how this can be reproduced. |
| |
| * history/PageCache.cpp: |
| (WebCore::canCacheFrame): |
| Make a frame as ineligible for PageCache if: |
| 1. It does not have a document |
| or |
| 2. Its document is already detached from the frame |
| |
| (WebCore::PageCache::addIfCacheable): |
| Destroy the render tree *before* we check if the page can enter page cache, in case |
| destroying the render tree has any side effects that could make the page ineligible |
| for Page Cache. |
| |
| 2019-06-06 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Timelines: only complete Composite records if the m_startedComposite (followup to r246142) |
| https://bugs.webkit.org/show_bug.cgi?id=198639 |
| |
| Reviewed by Matt Baker. |
| |
| In r246142, an `ASSERT` was removed because it is possible for Web Inspector to be opened in |
| between `willComposite` and `didComposite`, meaning that previously the `ASSERT` would fire. |
| |
| In order to properly handle this, we should replace the `ASSERT` with an `if` so that Web |
| Inspector doesn't even try to complete a `Composite` record if it was opened in that case. |
| |
| * inspector/agents/InspectorTimelineAgent.cpp: |
| (WebCore::InspectorTimelineAgent::didComposite): |
| |
| 2019-06-06 Youenn Fablet <youenn@apple.com> |
| |
| Allow WebKitTestRunner to terminate network process after it finishes service worker file operations |
| https://bugs.webkit.org/show_bug.cgi?id=198584 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Add a promise-based internal API to store service worker registrations on disk. |
| Covered by updated test. |
| |
| * testing/Internals.cpp: |
| (WebCore::Internals::storeRegistrationsOnDisk): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| * workers/service/SWClientConnection.h: |
| (WebCore::SWClientConnection::storeRegistrationsOnDiskForTesting): |
| * workers/service/server/RegistrationStore.cpp: |
| (WebCore::RegistrationStore::startSuspension): |
| (WebCore::RegistrationStore::closeDatabase): |
| * workers/service/server/RegistrationStore.h: |
| * workers/service/server/SWServer.cpp: |
| (WebCore::SWServer::Connection::storeRegistrationsOnDisk): |
| * workers/service/server/SWServer.h: |
| |
| 2019-06-06 Brent Fulgham <bfulgham@apple.com> |
| |
| Avoid generating new XSLT-based document when already changing the document. |
| https://bugs.webkit.org/show_bug.cgi?id=198525 |
| <rdar://problem/51393787> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| We should not allow a pending XSLT transform to change the current document when |
| that current document is int he process of being replaced. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::applyPendingXSLTransformsTimerFired): |
| |
| 2019-06-06 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: create CommandLineAPIHost lazily like the other agents |
| https://bugs.webkit.org/show_bug.cgi?id=196047 |
| <rdar://problem/49087835> |
| |
| Reviewed by Timothy Hatcher. |
| |
| No change in functionality. |
| |
| * inspector/InspectorController.cpp: |
| (WebCore::InspectorController::InspectorController): |
| (WebCore::InspectorController::createLazyAgents): |
| * inspector/WorkerInspectorController.cpp: |
| (WebCore::WorkerInspectorController::WorkerInspectorController): |
| (WebCore::WorkerInspectorController::createLazyAgents): |
| |
| * inspector/WebInjectedScriptManager.h: |
| * inspector/WebInjectedScriptManager.cpp: |
| (WebCore::WebInjectedScriptManager::WebInjectedScriptManager): |
| (WebCore::WebInjectedScriptManager::connect): Added. |
| (WebCore::WebInjectedScriptManager::disconnect): |
| (WebCore::WebInjectedScriptManager::discardInjectedScripts): |
| |
| * inspector/agents/InspectorDOMAgent.cpp: |
| (WebCore::InspectorDOMAgent::setInspectedNode): |
| |
| 2019-06-05 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| REGRESSION (r243121): Load event should not be fired while animating the 'externalResourcesRequired' attribute |
| https://bugs.webkit.org/show_bug.cgi?id=198576 |
| |
| Reviewed by Simon Fraser. |
| |
| Firing the load event should only happen when dynamic update changes the |
| attribute 'externalResourcesRequired'. Animating this attribute should |
| not fire the load event. |
| |
| When stopping the animations, applyAnimatedPropertyChange() should be |
| called first then stopAnimation() is called second. The target element |
| should know that its svgAttributeChanged() is called because of animating |
| the attribute. So it can differentiate this case from the dynamic update. |
| |
| Test: svg/animations/animate-externalResourcesRequired-no-load-event.html |
| |
| * svg/SVGExternalResourcesRequired.cpp: |
| (WebCore::SVGExternalResourcesRequired::svgAttributeChanged): |
| * svg/properties/SVGAnimatedPropertyAnimator.h: |
| |
| 2019-06-05 Saam Barati <sbarati@apple.com> |
| 2019-06-06 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] Move baseline and line height computation to a dedicated function |
| https://bugs.webkit.org/show_bug.cgi?id=198611 |
| <rdar://problem/51482708> |
| |
| Reviewed by Antti Koivisto. |
| |
| This is in preparation for adding vertical aligment. |
| |
| * layout/inlineformatting/InlineLine.cpp: |
| (WebCore::Layout::Line::appendInlineContainerStart): |
| (WebCore::Layout::Line::appendNonReplacedInlineBox): |
| (WebCore::Layout::Line::adjustBaselineAndLineHeight): |
| * layout/inlineformatting/InlineLine.h: |
| |
| 2019-06-06 Antti Koivisto <antti@apple.com> |
| |
| Position fixed is buggy with overflow:auto scrolling inside iframes |
| https://bugs.webkit.org/show_bug.cgi?id=154399 |
| <rdar://problem/24742251> |
| |
| Reviewed by Frederic Wang and Simon Fraser. |
| |
| Test: scrollingcoordinator/ios/fixed-frame-overflow-swipe.html |
| |
| After layer tree commit we were calling mainFrameViewportChangedViaDelegatedScrolling (even if viewport did not change) |
| and expecting it to apply UI side scrolling deltas. However optimization prevents it from descending into subframes |
| and we fail to update those properly. |
| |
| In reality we only need to to apply scrolling tree positiong after commit if there has been delegated scrolling after the last |
| one. Track this and do full update when needed. |
| |
| * page/scrolling/ScrollingTree.cpp: |
| (WebCore::ScrollingTree::applyLayerPositionsAfterCommit): |
| |
| Add specific function for this. Don't do anything unless needed. |
| |
| * page/scrolling/ScrollingTree.h: |
| (WebCore::ScrollingTree::didScrollByDelegatedScrolling): |
| |
| Track if there has been any delegated scrolling. |
| |
| * page/scrolling/ScrollingTreeScrollingNode.cpp: |
| (WebCore::ScrollingTreeScrollingNode::wasScrolledByDelegatedScrolling): |
| |
| We can now bail out if nothing changes since we no longer rely on this for post-commit updates. |
| |
| 2019-06-06 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] Layout and preferred width computation should both call placeInlineItems(). |
| https://bugs.webkit.org/show_bug.cgi?id=198587 |
| <rdar://problem/51460340> |
| |
| Reviewed by Antti Koivisto. |
| |
| This patch enables inline placement logic sharing between layout and preferred width computation. |
| |
| * layout/inlineformatting/InlineFormattingContext.h: |
| * layout/inlineformatting/InlineFormattingContextLineLayout.cpp: |
| (WebCore::Layout::InlineFormattingContext::LineLayout::LineInput::LineInput): |
| (WebCore::Layout::InlineFormattingContext::LineLayout::placeInlineItems const): |
| (WebCore::Layout::InlineFormattingContext::LineLayout::layout const): |
| (WebCore::Layout::InlineFormattingContext::LineLayout::computedIntrinsicWidth const): |
| |
| 2019-06-05 Takashi Komori <Takashi.Komori@sony.com> |
| |
| [Curl] Report all request headers to web inspector. |
| https://bugs.webkit.org/show_bug.cgi?id=191653 |
| |
| Reviewed by Fujii Hironori. |
| |
| Test: http/tests/inspector/network/resource-request-headers.html |
| |
| * platform/network/curl/CurlContext.cpp: |
| (WebCore::CurlHandle::setDebugCallbackFunction): |
| * platform/network/curl/CurlContext.h: |
| * platform/network/curl/CurlRequest.cpp: |
| (WebCore::CurlRequest::setupTransfer): |
| (WebCore::CurlRequest::didReceiveDebugInfo): |
| (WebCore::CurlRequest::updateNetworkLoadMetrics): |
| (WebCore::CurlRequest::didReceiveDebugInfoCallback): |
| * platform/network/curl/CurlRequest.h: |
| |
| 2019-06-05 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| [Cocoa] REGRESSION(r244182): Inspector thinks CA commits can be nested |
| https://bugs.webkit.org/show_bug.cgi?id=198497 |
| |
| Reviewed by Simon Fraser. |
| |
| WebInspecter should coalesce nested composites as one recorded composite. |
| This can be done by ensuring that we only process CA preCommit and postCommit |
| once per nested commits. |
| |
| * inspector/InspectorController.cpp: |
| (WebCore::InspectorController::willComposite): |
| * inspector/InspectorController.h: |
| Export willComposite(). We want to call willComposite()/ didComposite() |
| from CA preCommit and postCommit handlers in flushLayers(). |
| |
| * inspector/agents/InspectorTimelineAgent.cpp: |
| (WebCore::InspectorTimelineAgent::didComposite): |
| Unrelated change: didComposite() should not assert that we're in the middle |
| of a composite. Web Inspector may connect in the middle of a composite. |
| |
| * page/FrameView.cpp: |
| (WebCore::FrameView::flushCompositingStateIncludingSubframes): |
| InspectorController::willComposite() will be called form CA preCommit |
| handler of flushLayers(). |
| |
| 2019-06-05 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| [WHLSL] Educate the property resolver about IndexExpressions |
| https://bugs.webkit.org/show_bug.cgi?id=198399 |
| |
| Reviewed by Saam Barati. |
| |
| This is part one of two patches which will allow buffers to work. This patch |
| adds support in the property resolver for index expressions. Index expressions |
| get turned into calls to "getter indexers", "setter indexers", or "ander |
| indexers". They work almost identically to dot expressions, except there is an |
| extra "index" expression which gets turned into an extra argument to those |
| functions. |
| |
| There's actually a bit of a trick here. Let's say we need to run a getter and |
| a setter separately (e.g. "foo[3]++;"). The index expression can't be duplicated |
| for both the getter and the setter (e.g. the functions are |
| int operator[](Foo, uint) and Foo operator[]=(Foo, uint, int), and we aren't |
| allowed to execute the index expression multiple times. Consider if that "3" |
| in the example is actually "bar()" with some side effect. So, we have to run |
| the index expression once at the correct time, and save its result to a temporary |
| variable, and then pass in the temporary variable into the getter and setter. |
| |
| So, if the code says "foo[bar()][baz()] = quux();" the following sequence of |
| functions get run: |
| |
| - bar() |
| - operator[](Foo, uint) |
| - baz() |
| - quux() |
| - operator[]=(OtherType, uint, OtherOtherType) |
| - operator[]=(Foo, uint, OtherType) |
| |
| The next patch will modify the WebGPU JavaScript implementation to send buffer |
| lengths to the shader, and for the shader compiler to correctly unpack this |
| information and place it inside the array references. That should be everything |
| that's needed to get buffers to work. After that, hooking up compute should be |
| fairly trivial. |
| |
| Tests: webgpu/propertyresolver/ander-abstract-lvalue.html |
| webgpu/propertyresolver/ander-lvalue-3-levels.html |
| webgpu/propertyresolver/ander-lvalue.html |
| webgpu/propertyresolver/ander.html |
| webgpu/propertyresolver/getter.html |
| webgpu/propertyresolver/indexer-ander-abstract-lvalue.html |
| webgpu/propertyresolver/indexer-ander-lvalue-3-levels.html |
| webgpu/propertyresolver/indexer-ander-lvalue.html |
| webgpu/propertyresolver/indexer-ander.html |
| webgpu/propertyresolver/indexer-getter.html |
| webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels.html |
| webgpu/propertyresolver/indexer-setter-abstract-lvalue.html |
| webgpu/propertyresolver/indexer-setter-lvalue.html |
| webgpu/propertyresolver/indexer-setter.html |
| webgpu/propertyresolver/setter-abstract-lvalue-3-levels.html |
| webgpu/propertyresolver/setter-abstract-lvalue.html |
| webgpu/propertyresolver/setter-lvalue.html |
| |
| * Modules/webgpu/WHLSL/AST/WHLSLAddressSpace.h: |
| (WebCore::WHLSL::AST::toString): |
| * Modules/webgpu/WHLSL/AST/WHLSLEntryPointType.h: |
| (WebCore::WHLSL::AST::toString): |
| * Modules/webgpu/WHLSL/AST/WHLSLIndexExpression.h: |
| (WebCore::WHLSL::AST::IndexExpression::takeIndex): |
| * Modules/webgpu/WHLSL/AST/WHLSLReferenceType.h: |
| * Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp: |
| (WebCore::WHLSL::Metal::writeNativeFunction): |
| (WebCore::WHLSL::Metal::convertAddressSpace): Deleted. |
| * Modules/webgpu/WHLSL/WHLSLChecker.cpp: |
| (WebCore::WHLSL::checkOperatorOverload): |
| (WebCore::WHLSL::Checker::finishVisiting): |
| (WebCore::WHLSL::Checker::visit): |
| * Modules/webgpu/WHLSL/WHLSLInferTypes.h: |
| * Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp: |
| (WebCore::WHLSL::PropertyResolver::visit): |
| (WebCore::WHLSL::setterCall): |
| (WebCore::WHLSL::getterCall): |
| (WebCore::WHLSL::modify): |
| (WebCore::WHLSL::PropertyResolver::simplifyRightValue): |
| (WebCore::WHLSL::LeftValueSimplifier::finishVisiting): |
| (WebCore::WHLSL::LeftValueSimplifier::visit): |
| * Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt: |
| * Modules/webgpu/WHLSL/WHLSLSynthesizeStructureAccessors.cpp: |
| (WebCore::WHLSL::synthesizeStructureAccessors): |
| |
| 2019-06-05 Robin Morisset <rmorisset@apple.com> |
| |
| [WHLSL] Parsing and lexing the standard library is slow |
| https://bugs.webkit.org/show_bug.cgi?id=192890 |
| <rdar://problem/50746335> |
| |
| Reviewed by Myles Maxfield. |
| |
| The main idea is to avoid backtracking by instead peeking at the next token (and occasionally at the one after that). |
| This implies a few things: |
| - We can replace the stack of tokens by a trivial ring buffer of size 2 (holding the next token and the one after, or WTF::nullopt if we are at the end of the file). |
| - We now have "completeFooExpression" functions, to avoid having to reparse the prefix of some expression, if we find half-way through what it is. |
| |
| I also fixed the following parser bug: |
| - https://bugs.webkit.org/show_bug.cgi?id=198305 [WHLSL] Multiple variables with initializers in a declaration statement crashes the compiler |
| which was due to a mistake I made in the grammar |
| |
| Finally I added two new macros: CONSUME_TYPE and PARSE to eliminate about 500 lines of error propagation boilerplate. |
| |
| There are still lots of ways of improving the parser and lexer, such as: |
| - finishing the conversion of tokens in the lexer, not bothering with allocating string views |
| - make two special tokens Invalid and EOF, to remove the overhead of Optional |
| - make peekTypes and consumeTypes use templates to avoid constructing a Vector and calling find on it. |
| - Turn the entire lexer into a proper automata, not going through the same characters again and again (this is certainly the largest win by far) |
| - Remove the last few pieces of backtracking from the parser. |
| |
| The current patch is already enough to make parsing the full standard library (something like 85k lines) approximately 260ms. |
| This is still longer than I would like, but nowhere near the bottleneck any longer because of some other parts of the compiler. |
| |
| * Modules/webgpu/WHLSL/WHLSLLexer.h: |
| (WebCore::WHLSL::Lexer::Lexer): |
| (WebCore::WHLSL::Lexer::consumeToken): |
| (WebCore::WHLSL::Lexer::peek): |
| (WebCore::WHLSL::Lexer::peekFurther): |
| (WebCore::WHLSL::Lexer::state const): |
| (WebCore::WHLSL::Lexer::setState): |
| (WebCore::WHLSL::Lexer::unconsumeToken): Deleted. |
| * Modules/webgpu/WHLSL/WHLSLParser.cpp: |
| (WebCore::WHLSL::Parser::parse): |
| (WebCore::WHLSL::Parser::peek): |
| (WebCore::WHLSL::Parser::peekTypes): |
| (WebCore::WHLSL::Parser::tryType): |
| (WebCore::WHLSL::Parser::tryTypes): |
| (WebCore::WHLSL::Parser::consumeTypes): |
| (WebCore::WHLSL::Parser::parseConstantExpression): |
| (WebCore::WHLSL::Parser::parseTypeArgument): |
| (WebCore::WHLSL::Parser::parseTypeArguments): |
| (WebCore::WHLSL::Parser::parseTypeSuffixAbbreviated): |
| (WebCore::WHLSL::Parser::parseTypeSuffixNonAbbreviated): |
| (WebCore::WHLSL::Parser::parseType): |
| (WebCore::WHLSL::Parser::parseTypeDefinition): |
| (WebCore::WHLSL::Parser::parseResourceSemantic): |
| (WebCore::WHLSL::Parser::parseSpecializationConstantSemantic): |
| (WebCore::WHLSL::Parser::parseStageInOutSemantic): |
| (WebCore::WHLSL::Parser::parseSemantic): |
| (WebCore::WHLSL::Parser::parseQualifiers): |
| (WebCore::WHLSL::Parser::parseStructureElement): |
| (WebCore::WHLSL::Parser::parseStructureDefinition): |
| (WebCore::WHLSL::Parser::parseEnumerationDefinition): |
| (WebCore::WHLSL::Parser::parseEnumerationMember): |
| (WebCore::WHLSL::Parser::parseNativeTypeDeclaration): |
| (WebCore::WHLSL::Parser::parseNumThreadsFunctionAttribute): |
| (WebCore::WHLSL::Parser::parseAttributeBlock): |
| (WebCore::WHLSL::Parser::parseParameter): |
| (WebCore::WHLSL::Parser::parseParameters): |
| (WebCore::WHLSL::Parser::parseFunctionDefinition): |
| (WebCore::WHLSL::Parser::parseComputeFunctionDeclaration): |
| (WebCore::WHLSL::Parser::parseVertexFragmentFunctionDeclaration): |
| (WebCore::WHLSL::Parser::parseRegularFunctionDeclaration): |
| (WebCore::WHLSL::Parser::parseOperatorFunctionDeclaration): |
| (WebCore::WHLSL::Parser::parseFunctionDeclaration): |
| (WebCore::WHLSL::Parser::parseNativeFunctionDeclaration): |
| (WebCore::WHLSL::Parser::parseBlock): |
| (WebCore::WHLSL::Parser::parseBlockBody): |
| (WebCore::WHLSL::Parser::parseIfStatement): |
| (WebCore::WHLSL::Parser::parseSwitchStatement): |
| (WebCore::WHLSL::Parser::parseSwitchCase): |
| (WebCore::WHLSL::Parser::parseForLoop): |
| (WebCore::WHLSL::Parser::parseWhileLoop): |
| (WebCore::WHLSL::Parser::parseDoWhileLoop): |
| (WebCore::WHLSL::Parser::parseVariableDeclaration): |
| (WebCore::WHLSL::Parser::parseVariableDeclarations): |
| (WebCore::WHLSL::Parser::parseStatement): |
| (WebCore::WHLSL::Parser::parseEffectfulExpression): |
| (WebCore::WHLSL::Parser::parseEffectfulAssignment): |
| (WebCore::WHLSL::Parser::parseExpression): |
| (WebCore::WHLSL::Parser::parseTernaryConditional): Deleted. |
| (WebCore::WHLSL::Parser::completeTernaryConditional): |
| (WebCore::WHLSL::Parser::parseAssignment): Deleted. |
| (WebCore::WHLSL::Parser::completeAssignment): |
| (WebCore::WHLSL::Parser::parsePossibleTernaryConditional): |
| (WebCore::WHLSL::Parser::parsePossibleLogicalBinaryOperation): |
| (WebCore::WHLSL::Parser::completePossibleLogicalBinaryOperation): |
| (WebCore::WHLSL::Parser::parsePossibleRelationalBinaryOperation): |
| (WebCore::WHLSL::Parser::completePossibleRelationalBinaryOperation): |
| (WebCore::WHLSL::Parser::parsePossibleShift): |
| (WebCore::WHLSL::Parser::completePossibleShift): |
| (WebCore::WHLSL::Parser::parsePossibleAdd): |
| (WebCore::WHLSL::Parser::completePossibleAdd): |
| (WebCore::WHLSL::Parser::parsePossibleMultiply): |
| (WebCore::WHLSL::Parser::completePossibleMultiply): |
| (WebCore::WHLSL::Parser::parsePossiblePrefix): |
| (WebCore::WHLSL::Parser::parsePossibleSuffix): |
| (WebCore::WHLSL::Parser::parseCallExpression): |
| (WebCore::WHLSL::Parser::parseTerm): |
| (WebCore::WHLSL::Parser::parseAddressSpaceType): Deleted. |
| (WebCore::WHLSL::Parser::parseNonAddressSpaceType): Deleted. |
| (WebCore::WHLSL::Parser::parseEntryPointFunctionDeclaration): Deleted. |
| (WebCore::WHLSL::Parser::parseEffectfulPrefix): Deleted. |
| (WebCore::WHLSL::Parser::parseEffectfulSuffix): Deleted. |
| * Modules/webgpu/WHLSL/WHLSLParser.h: |
| (WebCore::WHLSL::Parser::Error::dump const): |
| |
| 2019-06-05 Alex Christensen <achristensen@webkit.org> |
| |
| Revert part of r246126 |
| https://bugs.webkit.org/show_bug.cgi?id=197132 |
| |
| * platform/ios/WebItemProviderPasteboard.h: |
| This change broke an internal build, so I'm reverting it. |
| |
| 2019-06-05 Daniel Bates <dabates@apple.com> |
| |
| [CSP] Data URLs should inherit their CSP policy |
| https://bugs.webkit.org/show_bug.cgi?id=198572 |
| <rdar://problem/50660927> |
| |
| Reviewed by Brent Fulgham. |
| |
| As per <https://w3c.github.io/webappsec-csp/#security-inherit-csp> (Editor's Draft, 28 February 2019) data |
| URLs should inherit their CSP policy from their parent (if they have one). |
| |
| Test: http/tests/security/contentSecurityPolicy/subframe-with-data-url-inheritance.html |
| |
| * dom/Document.cpp: |
| (WebCore::Document::shouldInheritContentSecurityPolicyFromOwner const): |
| |
| 2019-06-05 Saam Barati <sbarati@apple.com> |
| |
| Unreviewed. Follow up fix after r246115. |
| I changed the code to assert that we don't have duplicate native |
| functions. It turns out we do. I will fix that here, then add |
| back the assert. https://bugs.webkit.org/show_bug.cgi?id=198580 |
| |
| * Modules/webgpu/WHLSL/WHLSLCheckDuplicateFunctions.cpp: |
| (WebCore::WHLSL::checkDuplicateFunctions): |
| |
| 2019-06-05 Alex Christensen <achristensen@webkit.org> |
| |
| Progress towards resurrecting Mac CMake build |
| https://bugs.webkit.org/show_bug.cgi?id=197132 |
| |
| Reviewed by Don Olmstead. |
| |
| * CMakeLists.txt: |
| * PlatformMac.cmake: |
| * platform/cocoa/ContentFilterUnblockHandlerCocoa.mm: |
| |
| == Rolled over to ChangeLog-2019-06-05 == |