Timeline
Mar 30, 2019:
- 3:07 PM Changeset in webkit [243681] by
-
- 4 edits2 adds in trunk
gl.readPixels with type gl.FLOAT does not work
https://bugs.webkit.org/show_bug.cgi?id=171432
<rdar://problem/31905150>
Reviewed by Antoine Quint.
Source/WebCore:
Our validation code was identifying readPixels of
type FLOAT as invalid, for three reasons:
- we didn't support the FLOAT type at all.
- we only allowed the combination of RGBA and
UNSIGNED_BYTE in WebGL 1 [*].
- if we had a framebuffer of format RGBA, we assumed
we could only read into a Uint8 ArrayBuffer.
[*] This bug isn't completely fixed, so I opened
https://bugs.webkit.org/show_bug.cgi?id=196418
Test: fast/canvas/webgl/readPixels-float.html
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::readPixels):
- flip the logic in a conditional that was clearly wrong yet thankfully had no impact.
- support type FLOAT when the relevant extension is enabled.
- allow FLOAT as a valid type (see new bug above)
- create a new macro for CHECK_COMPONENT_COUNT
- update the existing macros to not be case statements, so that we can put logic in the switch.
LayoutTests:
New test that exercises reading a framebuffer object
with a floating point texture attached.
- platform/ios/TestExpectations: Skip this test on iOS, where floating-point
FBOs are not supported.
- fast/canvas/webgl/readPixels-float-expected.txt: Added.
- fast/canvas/webgl/readPixels-float.html: Added.
- 11:34 AM WebKitGTK/2.24.x edited by
- (diff)
- 11:32 AM WebKitGTK/2.24.x edited by
- (diff)
- 11:32 AM WebKitGTK/2.24.x edited by
- (diff)
- 10:50 AM Changeset in webkit [243680] by
-
- 2 edits in trunk/Source/WebCore
Try to fix Windows build.
- platform/graphics/RoundedRect.cpp:
(WebCore::approximateAsRegion):
- 9:38 AM Changeset in webkit [243679] by
-
- 2 edits in trunk/Source/WebCore
Web Inspector: JSC Sampling Profiler thread not getting subtracted in CPU Usage Timeline
https://bugs.webkit.org/show_bug.cgi?id=196419
<rdar://problem/49444023>
Reviewed by Devin Rousso.
- page/ResourceUsageThread.cpp:
(WebCore::ResourceUsageThread::addObserver):
We forgot to call the function that would setup platform state
allowing us to subtract out the sampling profiler thread.
- 7:09 AM Changeset in webkit [243678] by
-
- 3 edits2 adds in trunk
[ContentChangeObserver] Add iFrame elements to the list of "considered clickable" elements.
https://bugs.webkit.org/show_bug.cgi?id=196410
<rdar://problem/49436828>
Reviewed by Simon Fraser.
Source/WebCore:
163.com constructs an iFrame to display the login pane on hover. This patch ensures that we take iFrames into account while observing for visible content change by considering iFrame elements "clickable".
(While iFrames don't necessarily have clickable content, we can't just sit and wait until they are fully loaded.)
Test: fast/events/touch/ios/content-observation/iframe-is-shown-on-hover.html
- page/ios/ContentChangeObserver.cpp:
(WebCore::ContentChangeObserver::StyleChangeScope::isConsideredClickable const):
LayoutTests:
- fast/events/touch/ios/content-observation/iframe-is-shown-on-hover-expected.txt: Added.
- fast/events/touch/ios/content-observation/iframe-is-shown-on-hover.html: Added.
- 6:47 AM Changeset in webkit [243677] by
-
- 3 edits2 adds in trunk
[ContentChangeObserver] Subframe load should not reset content observation on the mainframe
https://bugs.webkit.org/show_bug.cgi?id=196408
<rdar://problem/49436797>
Reviewed by Simon Fraser.
Source/WebKit:
Hover intent fails when an unrelated frame commits a load the same time.
cancelPotentialTapInFrame is called from didCommitLoad, but what we are looking for here is the user initiated cancel of a tap (cancelPotentialTap).
(If the current frame navigates away, willDetachPage takes care of canceling the observation.)
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::cancelPotentialTap):
(WebKit::WebPage::cancelPotentialTapInFrame):
LayoutTests:
- fast/events/touch/ios/content-observation/hover-while-loading-subframe-expected.txt: Added.
- fast/events/touch/ios/content-observation/hover-while-loading-subframe.html: Added.
- 4:09 AM Changeset in webkit [243676] by
-
- 2 edits in trunk/Tools
[CMake] add testdfg as target with build-jsc
https://bugs.webkit.org/show_bug.cgi?id=196393
Reviewed by Saam Barati.
Added testdfg as one of the targets to build when
using CMake.
- Scripts/build-jsc:
- 2:19 AM Changeset in webkit [243675] by
-
- 3 edits in trunk/Source/WebCore
Try to fix Windows build.
- platform/graphics/Region.cpp:
- platform/graphics/RoundedRect.cpp:
- 1:28 AM Changeset in webkit [243674] by
-
- 15 edits2 adds in trunk
Hit-testing of boxes over scrollers should account for border-radius
https://bugs.webkit.org/show_bug.cgi?id=195374
<rdar://problem/48649993>
Reviewed by Simon Fraser.
Source/WebCore:
Test: fast/scrolling/ios/border-radious-event-region.html
- page/Frame.h:
- platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::dumpProperties const):
Testing support.
- platform/graphics/GraphicsLayerClient.h:
- platform/graphics/RoundedRect.cpp:
(WebCore::approximateAsRegion):
Add a function to approximate RoundedRects as Regions.
It cuts away rectangles from the corners following the corner shapes.
More rectangles are cut for larger radii.
- platform/graphics/RoundedRect.h:
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintObject):
Use the new interface to get rounded corners right.
In rectangle case this takes optimized paths.
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::layerTreeAsText):
- testing/Internals.cpp:
(WebCore::toLayerTreeFlags):
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
- fast/scrolling/ios/border-radius-event-region-expected.txt: Added.
- fast/scrolling/ios/border-radius-event-region.html: Added.
- fast/scrolling/ios/overflow-scroll-overlap-2-expected.txt:
Mar 29, 2019:
- 7:56 PM Changeset in webkit [243673] by
-
- 3 edits2 adds in trunk
[ContentChangeObserver] Expand DOM timer observation to 350ms
https://bugs.webkit.org/show_bug.cgi?id=196411
<rdar://problem/49391144>
Reviewed by Simon Fraser.
Source/WebCore:
imdb.com main page has 350ms hover intent timer to bring up the hover menus around the search bar.
Test: fast/events/touch/ios/content-observation/350ms-hover-intent.html
- page/ios/ContentChangeObserver.cpp:
LayoutTests:
- fast/events/touch/ios/content-observation/350ms-hover-intent-expected.txt: Added.
- fast/events/touch/ios/content-observation/350ms-hover-intent.html: Added.
- 6:30 PM Changeset in webkit [243672] by
-
- 7 edits in trunk/Source/JavaScriptCore
[JSC] JSWrapperMap should not use Objective-C Weak map (NSMapTable with NSPointerFunctionsWeakMemory) for m_cachedObjCWrappers
https://bugs.webkit.org/show_bug.cgi?id=196392
Reviewed by Saam Barati.
Weak representation in Objective-C is surprisingly costly in terms of memory. We can see that very easy program shows 10KB memory consumption due to
this weak wrapper map in JavaScriptCore.framework. But we do not need this weak map since Objective-C JSValue has a dealloc. We can unregister itself
from the map when it is deallocated without using Objective-C weak mechanism. And since Objective-C JSValue is tightly coupled to a specific JSContext,
and wrapper map is created per JSContext, JSValue wrapper and actual JavaScriptCore value is one-on-one, and [JSValue dealloc] knows which JSContext's
wrapper map holds itself.
- We do not use Objective-C weak mechanism. We use WTF::HashSet instead. When JSValue is allocated, we register it to JSWrapperMap's HashSet. And unregister JSValue from this map when JSValue is deallocated.
- We use HashSet<JSValue> (logically) instead of HashMap<JSValueRef, JSValue> to keep JSValueRef and JSValue relationship. We can achieve it because JSValue holds JSValueRef inside it.
- API/JSContext.mm:
(-[JSContext removeWrapper:]):
- API/JSContextInternal.h:
- API/JSValue.mm:
(-[JSValue dealloc]):
(-[JSValue initWithValue:inContext:]):
- API/JSWrapperMap.h:
- API/JSWrapperMap.mm:
(WrapperKey::hashTableDeletedValue):
(WrapperKey::WrapperKey):
(WrapperKey::isHashTableDeletedValue const):
(WrapperKey::Hash::hash):
(WrapperKey::Hash::equal):
(WrapperKey::Traits::isEmptyValue):
(WrapperKey::Translator::hash):
(WrapperKey::Translator::equal):
(WrapperKey::Translator::translate):
(-[JSWrapperMap initWithGlobalContextRef:]):
(-[JSWrapperMap dealloc]):
(-[JSWrapperMap objcWrapperForJSValueRef:inContext:]):
(-[JSWrapperMap removeWrapper:]):
- API/tests/testapi.mm:
(testObjectiveCAPIMain):
- 6:09 PM Changeset in webkit [243671] by
-
- 20 edits3 adds1 delete in trunk
Move WebResourceLoadStatisticsStore IPC calls from the UI process to the network process
https://bugs.webkit.org/show_bug.cgi?id=196407
<rdar://problem/47859936>
Reviewed by Brent Fulgham.
Source/WebCore:
Test: http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture.html
This patch removes old code for the batching into "statistics updated" calls.
Since the move of Resource Load Statistics to the network process, all such
collection is done directly through dedicated calls to the network process.
The remaining functionality was renamed to make it more clear, i.e.
ResourceLoadObserver::notifyObserver() renamed to
ResourceLoadObserver::updateCentralStatisticsStore().
- loader/ResourceLoadObserver.cpp:
(WebCore::ResourceLoadObserver::setStatisticsUpdatedCallback):
(WebCore::ResourceLoadObserver::setRequestStorageAccessUnderOpenerCallback):
(WebCore::ResourceLoadObserver::logSubresourceLoading):
(WebCore::ResourceLoadObserver::logWebSocketLoading):
(WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
(WebCore::ResourceLoadObserver::requestStorageAccessUnderOpener):
(WebCore::ResourceLoadObserver::updateCentralStatisticsStore):
(WebCore::ResourceLoadObserver::clearState):
(WebCore::ResourceLoadObserver::setNotificationCallback): Deleted.
(WebCore::ResourceLoadObserver::ResourceLoadObserver): Deleted.
(WebCore::ResourceLoadObserver::scheduleNotificationIfNeeded): Deleted.
(WebCore::ResourceLoadObserver::notifyObserver): Deleted.
- loader/ResourceLoadObserver.h:
- testing/Internals.cpp:
(WebCore::Internals::notifyResourceLoadObserver):
Source/WebKit:
The two WebResourceLoadStatisticsStore IPC endpoints were left behind when we
moved Resource Load Statistics from the UI process to the network process. One
of the endpoints is the message RequestStorageAccessUnderOpener which underpins
our compatibility fix for federated logins using popups. This patch redirects
these IPC calls to the network process and cleans up some assumptions around
them.
- CMakeLists.txt:
Removed the old IPC receiver.
- DerivedSources.make:
Removed the old IPC receiver.
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::requestUpdate): Deleted.
This is no longer needed since there is a dedicated update mechanism
that actually sends the update.
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::resourceLoadStatisticsUpdated):
(WebKit::NetworkConnectionToWebProcess::requestStorageAccessUnderOpener):
Two new IPC receivers to pipe the calls to the network process.
(WebKit::NetworkConnectionToWebProcess::requestResourceLoadStatisticsUpdate): Deleted.
NetworkConnectionToWebProcess::resourceLoadStatisticsUpdated now serves
this purpose.
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- UIProcess/WebResourceLoadStatisticsStore.messages.in: Removed.
Removed the old IPC receiver.
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleResourceLoadStatisticsNotifyObserver):
Function name update.
- WebProcess/WebProcess.cpp:
Now calls IPC to the network process instead of the UI process.
LayoutTests:
- http/tests/storageAccess/deny-storage-access-under-opener-expected.txt:
- http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-expected.txt:
- http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture-expected.txt: Added.
- http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture.html: Added.
- http/tests/storageAccess/resources/get-cookies.php:
- http/tests/storageAccess/resources/produce-user-gesture-set-cookie-and-report-back.html: Added.
- 5:21 PM Changeset in webkit [243670] by
-
- 3 edits in trunk/Source/JavaScriptCore
B3ReduceStrength should know that Mul distributes over Add and Sub
https://bugs.webkit.org/show_bug.cgi?id=196325
Reviewed by Michael Saboff.
In this patch I add the following patterns to B3ReduceStrength:
- Turn this: Integer Neg(Mul(value, c)) Into this: Mul(value, -c), as long as -c does not overflow
- Turn these: Integer Mul(value, Neg(otherValue)) and Integer Mul(Neg(value), otherValue) Into this: Neg(Mul(value, otherValue))
- For Op==Add or Sub, turn any of these:
Op(Mul(x1, x2), Mul(x1, x3))
Op(Mul(x2, x1), Mul(x1, x3))
Op(Mul(x1, x2), Mul(x3, x1))
Op(Mul(x2, x1), Mul(x3, x1))
Into this: Mul(x1, Op(x2, x3))
Also includes a trivial change: a similar reduction for the distributivity of BitAnd over BitOr/BitXor now
emits the arguments to BitAnd in the other order, to minimize the probability that we'll spend a full fixpoint step just to flip them.
- b3/B3ReduceStrength.cpp:
- b3/testb3.cpp:
(JSC::B3::testAddMulMulArgs):
(JSC::B3::testMulArgNegArg):
(JSC::B3::testMulNegArgArg):
(JSC::B3::testNegMulArgImm):
(JSC::B3::testSubMulMulArgs):
(JSC::B3::run):
- 5:21 PM Changeset in webkit [243669] by
-
- 11 edits in trunk
Make someWindow.frames, .self, .window always return someWindow
https://bugs.webkit.org/show_bug.cgi?id=195406
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
Rebaseline WPT test now that all its checks are passing.
- web-platform-tests/html/browsers/the-window-object/self-et-al.window-expected.txt:
Source/WebCore:
Make someWindow.frames, .self, .window always return someWindow. Previously, they
would return null when the window would lose its browsing context.
This aligns our behavior with Firefox and the HTML specification:
Chrome has also recently aligned with Firefox and the HTML specification here so
it makes sense for WebKit to follow.
No new tests, rebaselined existing tests.
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::self const):
(WebCore::JSDOMWindow::window const):
(WebCore::JSDOMWindow::frames const):
- page/DOMWindow.cpp:
(WebCore::DOMWindow::focus):
- page/DOMWindow.h:
- page/DOMWindow.idl:
LayoutTests:
Update / rebaseline existing test to reflect behavior change.
- fast/frames/detached-frame-property-expected.txt:
- fast/frames/detached-frame-property.html:
- 4:57 PM Changeset in webkit [243668] by
-
- 1 copy in tags/Safari-607.2.3
Tag Safari-607.2.3.
- 4:33 PM Changeset in webkit [243667] by
-
- 4 edits in trunk/Source/JavaScriptCore
[JSC] Remove distancing for LargeAllocation
https://bugs.webkit.org/show_bug.cgi?id=196335
Reviewed by Saam Barati.
In r230226, we removed distancing feature from our GC. This patch removes remaining distancing thing in LargeAllocation.
- heap/HeapCell.h:
- heap/LargeAllocation.cpp:
(JSC::LargeAllocation::tryCreate):
- heap/MarkedBlock.h:
- 3:18 PM Changeset in webkit [243666] by
-
- 66 edits79 deletes in trunk
Delete WebMetal implementation in favor of WebGPU
https://bugs.webkit.org/show_bug.cgi?id=195418
Reviewed by Dean Jackson.
.:
- Source/cmake/OptionsMac.cmake:
- Source/cmake/WebKitFeatures.cmake:
- Source/cmake/tools/vsprops/FeatureDefines.props:
- Source/cmake/tools/vsprops/FeatureDefinesCairo.props:
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
- inspector/protocol/Canvas.json:
- inspector/scripts/codegen/generator.py:
Source/WebCore:
WebMetal was only ever intended to be a proof-of-concept, and was never intended to be shipped.
Now that our WebGPU implementation is achieving good functionality, we're hitting conflicts
because we have both implementations. We should delete the non-standard implementation in favor
of the standards-based implementation.
Deletes relevant tests.
- CMakeLists.txt:
- Configurations/FeatureDefines.xcconfig:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Sources.txt:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSWebMetalRenderPassAttachmentDescriptorCustom.cpp: Removed.
- bindings/js/JSWebMetalRenderingContextCustom.cpp: Removed.
- bindings/js/WebCoreBuiltinNames.h:
- dom/Document.cpp:
(WebCore::Document::getCSSCanvasContext):
- dom/Document.h:
- dom/Document.idl:
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::getContext):
(WebCore::HTMLCanvasElement::isWebMetalType): Deleted.
(WebCore::HTMLCanvasElement::createContextWebMetal): Deleted.
(WebCore::HTMLCanvasElement::getContextWebMetal): Deleted.
- html/HTMLCanvasElement.h:
- html/HTMLCanvasElement.idl:
- html/canvas/CanvasRenderingContext.h:
(WebCore::CanvasRenderingContext::isWebGPU const):
(WebCore::CanvasRenderingContext::isWebMetal const): Deleted.
- html/canvas/WebMetalBuffer.cpp: Removed.
- html/canvas/WebMetalBuffer.h: Removed.
- html/canvas/WebMetalBuffer.idl: Removed.
- html/canvas/WebMetalCommandBuffer.cpp: Removed.
- html/canvas/WebMetalCommandBuffer.h: Removed.
- html/canvas/WebMetalCommandBuffer.idl: Removed.
- html/canvas/WebMetalCommandQueue.cpp: Removed.
- html/canvas/WebMetalCommandQueue.h: Removed.
- html/canvas/WebMetalCommandQueue.idl: Removed.
- html/canvas/WebMetalComputeCommandEncoder.cpp: Removed.
- html/canvas/WebMetalComputeCommandEncoder.h: Removed.
- html/canvas/WebMetalComputeCommandEncoder.idl: Removed.
- html/canvas/WebMetalComputePipelineState.cpp: Removed.
- html/canvas/WebMetalComputePipelineState.h: Removed.
- html/canvas/WebMetalComputePipelineState.idl: Removed.
- html/canvas/WebMetalDepthStencilDescriptor.cpp: Removed.
- html/canvas/WebMetalDepthStencilDescriptor.h: Removed.
- html/canvas/WebMetalDepthStencilDescriptor.idl: Removed.
- html/canvas/WebMetalDepthStencilState.cpp: Removed.
- html/canvas/WebMetalDepthStencilState.h: Removed.
- html/canvas/WebMetalDepthStencilState.idl: Removed.
- html/canvas/WebMetalDrawable.cpp: Removed.
- html/canvas/WebMetalDrawable.h: Removed.
- html/canvas/WebMetalDrawable.idl: Removed.
- html/canvas/WebMetalEnums.cpp: Removed.
- html/canvas/WebMetalEnums.h: Removed.
- html/canvas/WebMetalEnums.idl: Removed.
- html/canvas/WebMetalFunction.cpp: Removed.
- html/canvas/WebMetalFunction.h: Removed.
- html/canvas/WebMetalFunction.idl: Removed.
- html/canvas/WebMetalLibrary.cpp: Removed.
- html/canvas/WebMetalLibrary.h: Removed.
- html/canvas/WebMetalLibrary.idl: Removed.
- html/canvas/WebMetalRenderCommandEncoder.cpp: Removed.
- html/canvas/WebMetalRenderCommandEncoder.h: Removed.
- html/canvas/WebMetalRenderCommandEncoder.idl: Removed.
- html/canvas/WebMetalRenderPassAttachmentDescriptor.cpp: Removed.
- html/canvas/WebMetalRenderPassAttachmentDescriptor.h: Removed.
- html/canvas/WebMetalRenderPassAttachmentDescriptor.idl: Removed.
- html/canvas/WebMetalRenderPassColorAttachmentDescriptor.cpp: Removed.
- html/canvas/WebMetalRenderPassColorAttachmentDescriptor.h: Removed.
- html/canvas/WebMetalRenderPassColorAttachmentDescriptor.idl: Removed.
- html/canvas/WebMetalRenderPassDepthAttachmentDescriptor.cpp: Removed.
- html/canvas/WebMetalRenderPassDepthAttachmentDescriptor.h: Removed.
- html/canvas/WebMetalRenderPassDepthAttachmentDescriptor.idl: Removed.
- html/canvas/WebMetalRenderPassDescriptor.cpp: Removed.
- html/canvas/WebMetalRenderPassDescriptor.h: Removed.
- html/canvas/WebMetalRenderPassDescriptor.idl: Removed.
- html/canvas/WebMetalRenderPipelineColorAttachmentDescriptor.cpp: Removed.
- html/canvas/WebMetalRenderPipelineColorAttachmentDescriptor.h: Removed.
- html/canvas/WebMetalRenderPipelineColorAttachmentDescriptor.idl: Removed.
- html/canvas/WebMetalRenderPipelineDescriptor.cpp: Removed.
- html/canvas/WebMetalRenderPipelineDescriptor.h: Removed.
- html/canvas/WebMetalRenderPipelineDescriptor.idl: Removed.
- html/canvas/WebMetalRenderPipelineState.cpp: Removed.
- html/canvas/WebMetalRenderPipelineState.h: Removed.
- html/canvas/WebMetalRenderPipelineState.idl: Removed.
- html/canvas/WebMetalRenderingContext.cpp: Removed.
- html/canvas/WebMetalRenderingContext.h: Removed.
- html/canvas/WebMetalRenderingContext.idl: Removed.
- html/canvas/WebMetalSize.h: Removed.
- html/canvas/WebMetalSize.idl: Removed.
- html/canvas/WebMetalTexture.cpp: Removed.
- html/canvas/WebMetalTexture.h: Removed.
- html/canvas/WebMetalTexture.idl: Removed.
- html/canvas/WebMetalTextureDescriptor.cpp: Removed.
- html/canvas/WebMetalTextureDescriptor.h: Removed.
- html/canvas/WebMetalTextureDescriptor.idl: Removed.
- inspector/InspectorCanvas.cpp:
(WebCore::InspectorCanvas::buildObjectForCanvas):
- inspector/agents/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::requestContent):
(WebCore::contextAsScriptValue):
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setWebMetalEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::webMetalEnabled const): Deleted.
- platform/Logging.h:
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(WebCore::PlatformCALayerCocoa::layerTypeForPlatformLayer):
(WebCore::PlatformCALayerCocoa::PlatformCALayerCocoa):
- platform/graphics/cocoa/WebMetalLayer.h: Removed.
- platform/graphics/cocoa/WebMetalLayer.mm: Removed.
- platform/graphics/gpu/legacy/GPULegacyBuffer.cpp: Removed.
- platform/graphics/gpu/legacy/GPULegacyBuffer.h: Removed.
- platform/graphics/gpu/legacy/GPULegacyCommandBuffer.cpp: Removed.
- platform/graphics/gpu/legacy/GPULegacyCommandBuffer.h: Removed.
- platform/graphics/gpu/legacy/GPULegacyCommandQueue.cpp: Removed.
- platform/graphics/gpu/legacy/GPULegacyCommandQueue.h: Removed.
- platform/graphics/gpu/legacy/GPULegacyComputeCommandEncoder.cpp: Removed.
- platform/graphics/gpu/legacy/GPULegacyComputeCommandEncoder.h: Removed.
- platform/graphics/gpu/legacy/GPULegacyComputePipelineState.cpp: Removed.
- platform/graphics/gpu/legacy/GPULegacyComputePipelineState.h: Removed.
- platform/graphics/gpu/legacy/GPULegacyDepthStencilDescriptor.cpp: Removed.
- platform/graphics/gpu/legacy/GPULegacyDepthStencilDescriptor.h: Removed.
- platform/graphics/gpu/legacy/GPULegacyDepthStencilState.cpp: Removed.
- platform/graphics/gpu/legacy/GPULegacyDepthStencilState.h: Removed.
- platform/graphics/gpu/legacy/GPULegacyDevice.cpp: Removed.
- platform/graphics/gpu/legacy/GPULegacyDevice.h: Removed.
- platform/graphics/gpu/legacy/GPULegacyDrawable.cpp: Removed.
- platform/graphics/gpu/legacy/GPULegacyDrawable.h: Removed.
- platform/graphics/gpu/legacy/GPULegacyEnums.h: Removed.
- platform/graphics/gpu/legacy/GPULegacyFunction.cpp: Removed.
- platform/graphics/gpu/legacy/GPULegacyFunction.h: Removed.
- platform/graphics/gpu/legacy/GPULegacyLibrary.cpp: Removed.
- platform/graphics/gpu/legacy/GPULegacyLibrary.h: Removed.
- platform/graphics/gpu/legacy/GPULegacyRenderCommandEncoder.cpp: Removed.
- platform/graphics/gpu/legacy/GPULegacyRenderCommandEncoder.h: Removed.
- platform/graphics/gpu/legacy/GPULegacyRenderPassAttachmentDescriptor.cpp: Removed.
- platform/graphics/gpu/legacy/GPULegacyRenderPassAttachmentDescriptor.h: Removed.
- platform/graphics/gpu/legacy/GPULegacyRenderPassColorAttachmentDescriptor.cpp: Removed.
- platform/graphics/gpu/legacy/GPULegacyRenderPassColorAttachmentDescriptor.h: Removed.
- platform/graphics/gpu/legacy/GPULegacyRenderPassDepthAttachmentDescriptor.cpp: Removed.
- platform/graphics/gpu/legacy/GPULegacyRenderPassDepthAttachmentDescriptor.h: Removed.
- platform/graphics/gpu/legacy/GPULegacyRenderPassDescriptor.cpp: Removed.
- platform/graphics/gpu/legacy/GPULegacyRenderPassDescriptor.h: Removed.
- platform/graphics/gpu/legacy/GPULegacyRenderPipelineColorAttachmentDescriptor.cpp: Removed.
- platform/graphics/gpu/legacy/GPULegacyRenderPipelineColorAttachmentDescriptor.h: Removed.
- platform/graphics/gpu/legacy/GPULegacyRenderPipelineDescriptor.cpp: Removed.
- platform/graphics/gpu/legacy/GPULegacyRenderPipelineDescriptor.h: Removed.
- platform/graphics/gpu/legacy/GPULegacyRenderPipelineState.cpp: Removed.
- platform/graphics/gpu/legacy/GPULegacyRenderPipelineState.h: Removed.
- platform/graphics/gpu/legacy/GPULegacySize.h: Removed.
- platform/graphics/gpu/legacy/GPULegacyTexture.cpp: Removed.
- platform/graphics/gpu/legacy/GPULegacyTexture.h: Removed.
- platform/graphics/gpu/legacy/GPULegacyTextureDescriptor.cpp: Removed.
- platform/graphics/gpu/legacy/GPULegacyTextureDescriptor.h: Removed.
- platform/graphics/gpu/legacy/cocoa/GPULegacyBufferMetal.mm: Removed.
- platform/graphics/gpu/legacy/cocoa/GPULegacyCommandBufferMetal.mm: Removed.
- platform/graphics/gpu/legacy/cocoa/GPULegacyCommandQueueMetal.mm: Removed.
- platform/graphics/gpu/legacy/cocoa/GPULegacyComputeCommandEncoderMetal.mm: Removed.
- platform/graphics/gpu/legacy/cocoa/GPULegacyComputePipelineStateMetal.mm: Removed.
- platform/graphics/gpu/legacy/cocoa/GPULegacyDepthStencilDescriptorMetal.mm: Removed.
- platform/graphics/gpu/legacy/cocoa/GPULegacyDepthStencilStateMetal.mm: Removed.
- platform/graphics/gpu/legacy/cocoa/GPULegacyDeviceMetal.mm: Removed.
- platform/graphics/gpu/legacy/cocoa/GPULegacyDrawableMetal.mm: Removed.
- platform/graphics/gpu/legacy/cocoa/GPULegacyFunctionMetal.mm: Removed.
- platform/graphics/gpu/legacy/cocoa/GPULegacyLibraryMetal.mm: Removed.
- platform/graphics/gpu/legacy/cocoa/GPULegacyRenderCommandEncoderMetal.mm: Removed.
- platform/graphics/gpu/legacy/cocoa/GPULegacyRenderPassAttachmentDescriptorMetal.mm: Removed.
- platform/graphics/gpu/legacy/cocoa/GPULegacyRenderPassColorAttachmentDescriptorMetal.mm: Removed.
- platform/graphics/gpu/legacy/cocoa/GPULegacyRenderPassDepthAttachmentDescriptorMetal.mm: Removed.
- platform/graphics/gpu/legacy/cocoa/GPULegacyRenderPassDescriptorMetal.mm: Removed.
- platform/graphics/gpu/legacy/cocoa/GPULegacyRenderPipelineColorAttachmentDescriptorMetal.mm: Removed.
- platform/graphics/gpu/legacy/cocoa/GPULegacyRenderPipelineDescriptorMetal.mm: Removed.
- platform/graphics/gpu/legacy/cocoa/GPULegacyRenderPipelineStateMetal.mm: Removed.
- platform/graphics/gpu/legacy/cocoa/GPULegacyTextureDescriptorMetal.mm: Removed.
- platform/graphics/gpu/legacy/cocoa/GPULegacyTextureMetal.mm: Removed.
- testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setWebMetalEnabled): Deleted.
- testing/InternalSettings.h:
- testing/InternalSettings.idl:
Source/WebCore/PAL:
- Configurations/FeatureDefines.xcconfig:
Source/WebInspectorUI:
- UserInterface/Models/Canvas.js:
(WI.Canvas.fromPayload):
(WI.Canvas.displayNameForContextType):
- UserInterface/Protocol/Legacy/12.2/InspectorBackendCommands.js:
- Versions/Inspector-iOS-12.2.json:
Source/WebKit:
- Configurations/FeatureDefines.xcconfig:
- Shared/WebPreferences.yaml:
- WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
Source/WebKitLegacy/mac:
- Configurations/FeatureDefines.xcconfig:
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences webMetalEnabled]): Deleted.
(-[WebPreferences setWebMetalEnabled:]): Deleted.
- WebView/WebPreferencesPrivate.h:
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
Tools:
- DumpRenderTree/mac/DumpRenderTree.mm:
(enableExperimentalFeatures):
(resetWebPreferencesToConsistentValues):
- Scripts/webkitperl/FeatureList.pm:
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebCore/mac/GPUCommandQueue.mm: Removed.
- TestWebKitAPI/Tests/WebCore/mac/GPULegacyBuffer.mm: Removed.
- TestWebKitAPI/Tests/WebCore/mac/GPULegacyCommandQueue.mm: Removed.
- TestWebKitAPI/Tests/WebCore/mac/GPULegacyDevice.mm: Removed.
- TestWebKitAPI/Tests/WebCore/mac/GPULegacyFunction.mm: Removed.
- TestWebKitAPI/Tests/WebCore/mac/GPULegacyLibrary.mm: Removed.
- TestWebKitAPI/Tests/WebCore/mac/GPULegacyTest.h: Removed.
- WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::beginTesting):
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setWebMetalEnabled): Deleted.
- WebKitTestRunner/InjectedBundle/TestRunner.h:
LayoutTests:
- fast/canvas/webmetal/webmetal-dispatch-expected.txt: Removed.
- fast/canvas/webmetal/webmetal-dispatch.html: Removed.
- fast/canvas/webmetal/webmetal-runtime-flag-expected.txt: Removed.
- fast/canvas/webmetal/webmetal-runtime-flag.html: Removed.
- inspector/canvas/create-context-webmetal-expected.txt: Removed.
- inspector/canvas/create-context-webmetal.html: Removed.
- inspector/canvas/resolveCanvasContext-webmetal-expected.txt: Removed.
- inspector/canvas/resolveCanvasContext-webmetal.html: Removed.
- platform/gtk/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
- platform/win/TestExpectations:
- platform/wincairo/TestExpectations:
- platform/wpe/TestExpectations:
- 2:53 PM Changeset in webkit [243665] by
-
- 3 edits1 add in trunk
Assertion failed in JSC::createError
https://bugs.webkit.org/show_bug.cgi?id=196305
<rdar://problem/49387382>
Reviewed by Saam Barati.
JSTests:
- stress/create-error-out-of-memory-rope-string-2.js: Added.
(assert):
(catch):
Source/JavaScriptCore:
JSC::createError assumes that
errorDescriptionForValuewill either
throw an exception or return a valid description string. However, that
is not true if the value is a rope string and we successfully resolve it,
but later fail to wrap the string in quotes withtryMakeString.
- runtime/ExceptionHelpers.cpp:
(JSC::createError):
- 2:52 PM Changeset in webkit [243664] by
-
- 27 edits2 adds in trunk/LayoutTests
Update the CSS Text WPT test suite
https://bugs.webkit.org/show_bug.cgi?id=196397
Reviewed by Manuel Rego Casasnovas.
Updated several tests from the CSS Text test suite.
- resources/resource-files.json:
- web-platform-tests/css/css-text/META.yml:
- web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-006.html:
- web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-007.html:
- web-platform-tests/css/css-text/white-space/break-spaces-004.html:
- web-platform-tests/css/css-text/white-space/break-spaces-005.html:
- web-platform-tests/css/css-text/white-space/break-spaces-006.html:
- web-platform-tests/css/css-text/white-space/break-spaces-007.html:
- web-platform-tests/css/css-text/white-space/break-spaces-008.html:
- web-platform-tests/css/css-text/white-space/pre-wrap-008.html:
- web-platform-tests/css/css-text/white-space/pre-wrap-015.html:
- web-platform-tests/css/css-text/white-space/pre-wrap-016.html:
- web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-001-expected.html:
- web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-001.html:
- web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-002-expected.html:
- web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-002.html:
- web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-003-expected.html:
- web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-003.html:
- web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-004-expected.html:
- web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-004.html:
- web-platform-tests/css/css-text/word-break/w3c-import.log:
- web-platform-tests/css/css-text/word-break/word-break-break-all-010.html:
- web-platform-tests/css/css-text/word-break/word-break-break-all-011.html:
- web-platform-tests/css/css-text/word-break/word-break-break-all-012.html:
- web-platform-tests/css/css-text/word-break/word-break-break-all-013.html:
- web-platform-tests/css/css-text/word-break/word-break-break-all-015.html:
- web-platform-tests/css/css-text/word-break/word-break-break-word-overflow-wrap-interactions-expected.html: Added.
- web-platform-tests/css/css-text/word-break/word-break-break-word-overflow-wrap-interactions.html: Added.
- 2:49 PM Changeset in webkit [243663] by
-
- 6 edits in trunk/Source
Web Inspector: add fast returns for instrumentation hooks that have no affect before a frontend is connected
https://bugs.webkit.org/show_bug.cgi?id=196382
<rdar://problem/49403417>
Reviewed by Joseph Pecoraro.
Ensure that all instrumentation hooks use
FAST_RETURN_IF_NO_FRONTENDSor check that
developerExtrasEnabled. There should be no activity to/from any inspector objects until
developer extras are enabled.
Source/JavaScriptCore:
- inspector/agents/InspectorConsoleAgent.cpp:
(Inspector::InspectorConsoleAgent::startTiming):
(Inspector::InspectorConsoleAgent::stopTiming):
(Inspector::InspectorConsoleAgent::count):
(Inspector::InspectorConsoleAgent::addConsoleMessage):
Source/WebCore:
- inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didClearWindowObjectInWorld):
(WebCore::InspectorInstrumentation::scriptExecutionBlockedByCSP):
(WebCore::InspectorInstrumentation::domContentLoadedEventFired):
(WebCore::InspectorInstrumentation::loadEventFired):
(WebCore::InspectorInstrumentation::frameDetachedFromParent):
(WebCore::InspectorInstrumentation::loaderDetachedFromFrame):
(WebCore::InspectorInstrumentation::frameStartedLoading):
(WebCore::InspectorInstrumentation::frameStoppedLoading):
(WebCore::InspectorInstrumentation::frameScheduledNavigation):
(WebCore::InspectorInstrumentation::frameClearedScheduledNavigation):
- inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::frameWindowDiscardedImpl):
(WebCore::InspectorInstrumentation::didReceiveResourceResponseImpl):
(WebCore::InspectorInstrumentation::didFailLoadingImpl):
(WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
(WebCore::InspectorInstrumentation::consoleCountImpl):
(WebCore::InspectorInstrumentation::startConsoleTimingImpl):
(WebCore::InspectorInstrumentation::stopConsoleTimingImpl):
- inspector/agents/WebConsoleAgent.cpp:
(WebCore::WebConsoleAgent::frameWindowDiscarded):
- 1:56 PM Changeset in webkit [243662] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Storage: some cookie column headers are not localized
https://bugs.webkit.org/show_bug.cgi?id=196406
<rdar://problem/48467422>
Reviewed by Joseph Pecoraro.
- UserInterface/Views/CookieStorageContentView.js:
(WI.CookieStorageContentView.prototype.initialLayout):
- Localizations/en.lproj/localizedStrings.js:
- 1:46 PM Changeset in webkit [243661] by
-
- 6 edits in trunk
Set window.closed immediately when close() is invoked
https://bugs.webkit.org/show_bug.cgi?id=195409
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
Rebaseline WPT tests now that more checks are passing.
- web-platform-tests/html/browsers/the-window-object/close-method.window-expected.txt:
- web-platform-tests/html/browsers/the-window-object/closed-attribute.window-expected.txt:
Source/WebCore:
Window.closed should return true if it is closing:
Window.close() sets the 'is closing' flag to true synchronously, as per:
No new tests, rebaselined existing tests.
- page/DOMWindow.cpp:
(WebCore::DOMWindow::closed const):
- 1:26 PM Changeset in webkit [243660] by
-
- 3 edits2 adds in trunk
[Simple line layout] Turn off inline boxtree generation for multiline content
https://bugs.webkit.org/show_bug.cgi?id=196404
<rdar://problem/49234033>
Reviewed by Simon Fraser.
Source/WebCore:
Currently simple line layout can't provide the correct line breaking context to the inline tree when the boxtree is
generated using the simple line runs. This patch limits the generation of such trees to single lines. Multiline content will
go through the "let's layout this content again" codepath.
This patch fixes disappearing content on Questar.
Test: fast/text/simple-line-layout-and-multiline-inlineboxtree.html
- rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::canUseForLineBoxTree):
LayoutTests:
- fast/text/simple-line-layout-and-multiline-inlineboxtree-expected.html: Added.
- fast/text/simple-line-layout-and-multiline-inlineboxtree.html: Added.
- 1:23 PM Changeset in webkit [243659] by
-
- 3 edits in trunk/LayoutTests
imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-stop.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=196403
Unreviewed test gardening.
- platform/ios-simulator-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations: Updating test expectations for flaky test
- 1:18 PM Changeset in webkit [243658] by
-
- 20 edits in trunk/Source/WebCore
[Web GPU] Replace unsigned longs in WebGPU with uint64_t
https://bugs.webkit.org/show_bug.cgi?id=196401
Reviewed by Myles C. Maxfield.
Unsigned long is not guaranteed to be 64 bits on all platforms. In addition, rowPitch is updated
to u32 in the API and the implementation to match.
No new tests. No new behavior.
- Modules/webgpu/WebGPUBuffer.cpp:
(WebCore::WebGPUBuffer::setSubData):
- Modules/webgpu/WebGPUBuffer.h:
- Modules/webgpu/WebGPUBufferBinding.h:
- Modules/webgpu/WebGPUCommandEncoder.cpp:
(WebCore::WebGPUCommandEncoder::copyBufferToBuffer):
- Modules/webgpu/WebGPUCommandEncoder.h:
- Modules/webgpu/WebGPUCommandEncoder.idl:
- Modules/webgpu/WebGPURenderPassEncoder.cpp:
(WebCore::WebGPURenderPassEncoder::setVertexBuffers):
- Modules/webgpu/WebGPURenderPassEncoder.h:
- platform/graphics/gpu/GPUBindGroupLayout.h:
- platform/graphics/gpu/GPUBuffer.h:
(WebCore::GPUBuffer::byteLength const):
- platform/graphics/gpu/GPUBufferBinding.h:
- platform/graphics/gpu/GPUBufferDescriptor.h:
- platform/graphics/gpu/GPUCommandBuffer.h:
- platform/graphics/gpu/GPURenderPassEncoder.h:
- platform/graphics/gpu/GPUVertexAttributeDescriptor.h:
- platform/graphics/gpu/GPUVertexInputDescriptor.h:
- platform/graphics/gpu/cocoa/GPUBufferMetal.mm:
(WebCore::GPUBuffer::GPUBuffer):
(WebCore::GPUBuffer::setSubData):
- platform/graphics/gpu/cocoa/GPUCommandBufferMetal.mm:
(WebCore::GPUCommandBuffer::copyBufferToBuffer):
- platform/graphics/gpu/cocoa/GPURenderPassEncoderMetal.mm:
(WebCore::GPURenderPassEncoder::setVertexBuffers):
- 1:11 PM Changeset in webkit [243657] by
-
- 7 edits in trunk
REGRESSION (r243523): Six form-related watchOS layout tests are timing out
https://bugs.webkit.org/show_bug.cgi?id=196405
<rdar://problem/49428130>
Reviewed by Wenson Hsieh.
Tools:
Add a shouldPresentPopovers=false WebKitTestRunner option to cause WKTR to swizzle
the popover presentation methods to be no-ops. Use this in the new test added in
r243523 so that we do not swizzle those methods for all tests. This is needed because
those WatchOS tests rely on the popover getting presented and interactive.
- WebKitTestRunner/TestController.cpp:
(WTR::updateTestOptionsFromTestHeader):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestOptions.h:
(WTR::TestOptions::hasSameInitializationOptions const):
- WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformInitialize):
(WTR::TestController::platformResetStateToConsistentValues):
LayoutTests:
- fast/forms/ios/file-upload-panel.html:
- 1:09 PM Changeset in webkit [243656] by
-
- 3 edits2 adds in trunk
REGRESSION (r243250): Text interactions are no longer suppressed when editing in some websites
https://bugs.webkit.org/show_bug.cgi?id=196378
<rdar://problem/49231299>
Reviewed by Simon Fraser.
Source/WebCore:
Enabling async overflow scrolling by default in r243250 exposed an issue with hidden editable area detection
heuristics. Currently, an empty value for RenderLayer::selfClipRect is used to determine whether the layer
enclosing the editable element or form control is completely clipped by a parent (in other words, the clip rect
is empty). With async overflow scrolling, the enclosing layer of the editable element (as seen in the websites
affected by this bug) will now be a clipping root for painting, since it is composited. This means selfClipRect
returns a non-empty rect despite the layer being entirely clipped, which negates the heuristic.
To address this, we adjust the clipping heuristic to instead walk up the layer tree (crossing frame boundaries)
and look for enclosing ancestors with overflow clip. For each layer we find with an overflow clip, compute the
clip rect of the previous layer relative to the ancestor with overflow clip. If the clipping rect is empty, we
know that the layer is hidden.
This isn't a perfect strategy, since it may still report false negatives (reporting a layer as visible when it
is not) in some cases. One such edge case is a series of overflow hidden containers, nested in such a way that
each container is only partially clipped relative to its ancestor, but the deepest layer is completely clipped
relative to the topmost layer. However, this heuristic is relatively cheap (entailing a layer tree walk at
worst) and works for common use cases on the web without risking scenarios in which text selection that
shouldn't be suppressed ends up becoming suppressed.
Test: editing/selection/ios/hide-selection-in-textarea-with-transform.html
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::isTransparentOrFullyClippedRespectingParentFrames const):
LayoutTests:
Add a new layout test to exercise the scenario in which a transformed textarea is hidden inside an empty
overflow: hidden container.
- editing/selection/ios/hide-selection-in-textarea-with-transform-expected.txt: Added.
- editing/selection/ios/hide-selection-in-textarea-with-transform.html: Added.
- 1:00 PM Changeset in webkit [243655] by
-
- 7 edits in trunk/LayoutTests
Unreviewed test gardening for imported/w3c/web-platform-tests/xhr/send-redirect-post-upload.htm
https://bugs.webkit.org/show_bug.cgi?id=159724
<rdar://problem/48116418>
- TestExpectations:
- platform/ios-wk1/TestExpectations:
- platform/ios-wk2/TestExpectations:
- platform/mac-wk1/TestExpectations:
- platform/mac/TestExpectations:
- platform/wpe/TestExpectations:
This test asserts on Cocoa WebKitLegacy platforms. A patch I uploaded to https://bugs.webkit.org/show_bug.cgi?id=159724 shows why we do not intend to fix this.
This test crashes on iOS12 and Mojave because of rdar://problem/28233746
This test should not crash anywhere else, but it is flaky in WebKit and Gecko. This is being taken care of in https://github.com/w3c/web-platform-tests/issues/8191
Updated test expectations to reflect the sad state of things.
- 12:03 PM Changeset in webkit [243654] by
-
- 20 edits in trunk
[Curl] Add Server Trust Evaluation Support.
https://bugs.webkit.org/show_bug.cgi?id=191646
Patch by Takashi Komori <Takashi.Komori@sony.com> on 2019-03-29
Reviewed by Fujii Hironori.
Source/WebCore:
Tests: http/tests/ssl/iframe-upgrade.https.html
http/tests/ssl/mixedContent/insecure-websocket.html
http/tests/ssl/upgrade-origin-usage.html
- platform/network/curl/AuthenticationChallenge.h:
- platform/network/curl/AuthenticationChallengeCurl.cpp:
(WebCore::AuthenticationChallenge::AuthenticationChallenge):
(WebCore::AuthenticationChallenge::protectionSpaceForPasswordBased):
(WebCore::AuthenticationChallenge::protectionSpaceForServerTrust):
(WebCore::AuthenticationChallenge::protectionSpaceFromHandle): Deleted.
- platform/network/curl/CurlContext.cpp:
(WebCore::CurlHandle::disableServerTrustEvaluation):
- platform/network/curl/CurlContext.h:
- platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::setupTransfer):
- platform/network/curl/CurlRequest.h:
(WebCore::CurlRequest::disableServerTrustEvaluation):
Source/WebKit:
Tests: http/tests/ssl/iframe-upgrade.https.html
http/tests/ssl/mixedContent/insecure-websocket.html
http/tests/ssl/upgrade-origin-usage.html
- NetworkProcess/curl/NetworkDataTaskCurl.cpp:
(WebKit::NetworkDataTaskCurl::curlDidFailWithError):
(WebKit::NetworkDataTaskCurl::tryServerTrustEvaluation):
(WebKit::NetworkDataTaskCurl::restartWithCredential):
- NetworkProcess/curl/NetworkDataTaskCurl.h:
Tools:
Implemented MiniBrowser UI for asking if user trusts the server.
- MiniBrowser/win/Common.cpp:
(askServerTrustEvaluation):
(replaceString):
- MiniBrowser/win/Common.h:
- MiniBrowser/win/MiniBrowserLib.rc:
- MiniBrowser/win/MiniBrowserLibResource.h:
- MiniBrowser/win/WebKitBrowserWindow.cpp:
(createPEMString):
(WebKitBrowserWindow::didReceiveAuthenticationChallenge):
(WebKitBrowserWindow::canTrustServerCertificate):
- MiniBrowser/win/WebKitBrowserWindow.h:
LayoutTests:
- platform/wincairo-wk1/TestExpectations:
- platform/wincairo/TestExpectations:
- 11:39 AM Changeset in webkit [243653] by
-
- 3 edits2 adds in trunk
Pasting a table from Confluence strip of table cell content
https://bugs.webkit.org/show_bug.cgi?id=196390
Reviewed by Antti Koivisto.
Source/WebCore:
The bug was ultimately caused by FrameView of the document we use to sanitize the pasteboard content
having 0px by 0px dimension. This caused div withoverflow-x: autosurrounding a table to have
the height of 0px. Because StyledMarkupAccumulator::renderedTextRespectingRange uses TextIterator
to serialize a text node and this div was an ancestor of the text node, TextIterator::handleTextNode
ended up exiting early.
Fixed the bug by giving FrameView, which is used to sanitize the content, a dimension of 800px by 600px.
Using TextIteratorIgnoresStyleVisibility is not a great alternative since removing invisible content
during paste is an important privacy feature.
Test: editing/pasteboard/paste-content-with-overflow-auto-parent-across-origin.html
- editing/markup.cpp:
(WebCore::createPageForSanitizingWebContent):
LayoutTests:
Added a regression test.
- editing/pasteboard/paste-content-with-overflow-auto-parent-across-origin-expected.txt: Added.
- editing/pasteboard/paste-content-with-overflow-auto-parent-across-origin.html: Added.
- 11:36 AM Changeset in webkit [243652] by
-
- 2 edits in trunk/LayoutTests
fast/mediastream/MediaStreamTrack-getSettings.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=196400
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations: Updating test expectations for flaky failure
- 11:36 AM Changeset in webkit [243651] by
-
- 2 edits in tags/Safari-608.1.13.3/Source/WebKit
Cherry-pick r243640. rdar://problem/49339242
CFDictionary encoder crashes on non-string keys.
https://bugs.webkit.org/show_bug.cgi?id=196388
rdar://problem/49339242
Reviewed by Ryosuke Niwa.
Allow non-string keys in CFDictionary encoding/decoding. Encode the correct
size for dictionaries and arrays when unknown keys or values are skipped.
Allow null array encoding and decoding like dictionary already allowed.
- Shared/cf/ArgumentCodersCF.cpp: (IPC::encode): (IPC::decode):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243640 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:33 AM Changeset in webkit [243650] by
-
- 7 edits in tags/Safari-608.1.13.3/Source
Versioning.
- 11:29 AM Changeset in webkit [243649] by
-
- 1 copy in tags/Safari-608.1.13.3
New tag.
- 10:44 AM Changeset in webkit [243648] by
-
- 3 edits in trunk/Source/WebCore
WebKitTestRunner crashes when running pointerevents/ios/touch-action-none-in-overflow-scrolling-touch.html
https://bugs.webkit.org/show_bug.cgi?id=196345
Patch by Antoine Quint <Antoine Quint> on 2019-03-29
Reviewed by Dean Jackson.
An enum used within a WTF::OptionSet needs to have only power-of-two values that are larger than 0.
- platform/TouchAction.h:
- rendering/style/StyleRareNonInheritedData.h:
- 9:11 AM Changeset in webkit [243647] by
-
- 3 edits2 adds in trunk
HTMLInputElement::setEditingValue should not fail if renderer doesn't exist
https://bugs.webkit.org/show_bug.cgi?id=195708
Reviewed by Wenson Hsieh.
Source/WebCore:
HTMLInputElement::setEditingValue currently returns early if the element's renderer() is
null. This is causing the Epiphany password manager to fail to remember passwords on
https://www.geico.com/ except for navigations through page cache.
This check was originally added to avoid some assertion, but I don't know which one, and
there's definitely not any assertion hit nowadays in this case. Probably there are more
guards checking if renderer() is null elsewhere in the code nowadays, closer to where it's
really needed.
Test: fast/forms/editing-value-null-renderer.html
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setEditingValue):
LayoutTests:
This is a copy of fast/forms/editing-value.html, except the form is not displayed. The input
value should still change.
- fast/forms/editing-value-null-renderer-expected.txt: Added.
- fast/forms/editing-value-null-renderer.html: Added.
- 8:56 AM Changeset in webkit [243646] by
-
- 5 edits in trunk
Unreviewed, rebaseline WPT test after r243638.
LayoutTests/imported/w3c:
- web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/navigated-named-objects.window-expected.txt:
Source/WebCore:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- 8:54 AM Changeset in webkit [243645] by
-
- 8 edits2 adds in trunk
All PointerEvent.isTrusted is always false.
https://bugs.webkit.org/show_bug.cgi?id=196075
<rdar://problem/49158778>
Reviewed by Chris Dumez.
Source/WebCore:
Test: pointerevents/ios/pointer-events-is-trusted.html
The constructors we were using for some PointerEvent::create() methods were using initializers which are expected to be used with JS APIs
and thus generate untrusted events. We switch to using constructors using dedicated parameters which will set isTrusted to true.
- dom/PointerEvent.cpp:
(WebCore::PointerEvent::create):
(WebCore::PointerEvent::createPointerCancelEvent):
(WebCore::PointerEvent::PointerEvent):
(WebCore::m_isPrimary):
(WebCore::m_pointerType):
- dom/PointerEvent.h:
- page/PointerCaptureController.cpp:
(WebCore::PointerCaptureController::cancelPointer):
LayoutTests:
Add tests to the macOS and iOS series of tests that check that isTrusted is indeed true. This uncovered a couple of issues with how some tests were written.
- pointerevents/ios/pointer-events-is-primary.html: Ensure we end both touches so that further tests run cleanly.
- pointerevents/ios/pointer-events-is-trusted-expected.txt: Added.
- pointerevents/ios/pointer-events-is-trusted.html: Added.
- pointerevents/mouse/pointer-event-basic-properties.html: Ensure we wait for the event to be handled before finishing the test.
- pointerevents/utils.js:
(prototype._handlePointerEvent):
- 3:43 AM Changeset in webkit [243644] by
-
- 4 edits in trunk/Source/WebCore
[GStreamer] imxvpudecoder detection and handling
https://bugs.webkit.org/show_bug.cgi?id=196346
Reviewed by Xabier Rodriguez-Calvar.
When the imxvpudecoder is used, the texture sampling of the
directviv-uploaded texture returns an RGB value, so there's no need
to convert it. This patch also includes a refactoring of the
ImageRotation flag handling. The flag is now computed once only
and stored in an instance variable.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::GstVideoFrameHolder::GstVideoFrameHolder):
(WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
(WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor):
(WebCore::MediaPlayerPrivateGStreamerBase::flushCurrentBuffer):
(WebCore::MediaPlayerPrivateGStreamerBase::copyVideoTextureToPlatformTexture):
(WebCore::MediaPlayerPrivateGStreamerBase::nativeImageForCurrentTime):
(WebCore::MediaPlayerPrivateGStreamerBase::setVideoSourceOrientation):
(WebCore::MediaPlayerPrivateGStreamerBase::updateTextureMapperFlags):
(WebCore::texMapFlagFromOrientation): Deleted.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
- 1:37 AM Changeset in webkit [243643] by
-
- 59 edits6 copies20 adds in trunk
Implement ResizeObserver.
https://bugs.webkit.org/show_bug.cgi?id=157743
Patch by Cathie Chen <cathiechen> on 2019-03-29
Reviewed by Simon Fraser.
.:
Add ENABLE_RESIZE_OBSERVER.
- Source/cmake/WebKitFeatures.cmake:
LayoutTests/imported/w3c:
Set ResizeObserverEnabled for test runner and update expectations.
- web-platform-tests/interfaces/ResizeObserver.idl: Added.
- web-platform-tests/resize-observer/eventloop-expected.txt:
- web-platform-tests/resize-observer/eventloop.html:
- web-platform-tests/resize-observer/idlharness.window-expected.txt:
- web-platform-tests/resize-observer/idlharness.window.html:
- web-platform-tests/resize-observer/notify-expected.txt:
- web-platform-tests/resize-observer/notify.html:
- web-platform-tests/resize-observer/observe-expected.txt:
- web-platform-tests/resize-observer/observe.html:
- web-platform-tests/resize-observer/svg-expected.txt:
- web-platform-tests/resize-observer/svg.html:
Source/JavaScriptCore:
Add ENABLE_RESIZE_OBSERVER.
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
Tests: resize-observer/modify-frametree-in-callback.html
resize-observer/multi-frames.html
resize-observer/observe-element-from-other-frame.html
Imported from WPT by https://bugs.webkit.org/show_bug.cgi?id=193821
The data structure: Document has a ResizeObserver slot. ResizeObserver has a ResizeObservation slot.
ResizeObservation is related to one Element and the last reported size.
On the other hand, Element has a ResizeObservation slot.
At the beginning of willDisplayPage, it will check resize observations for current page if:
- There is FrameView be layout and there are ResizeObservers in this page.
- m_resizeObserverTimer has been started by observe() or hasSkippedResizeObservers().
During checkResizeObservations(), we'll gatherDocumentsNeedingResizeObservationCheck() first,
then notifyResizeObservers() for each document. During notifyResizeObservers(), it will gather
the m_activeObservations whose size changed and target element deeper than require depth.
The size changed shallower observations are skipped observations which will be delivered
in the next time. And an ErrorEvent will be reported.
After gathering, deliverResizeObservations create entries and invoke the callbacks with them.
The Element from other document could be observed.
- CMakeLists.txt:
- Configurations/FeatureDefines.xcconfig:
- DerivedSources.make:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/WebCoreBuiltinNames.h:
- dom/Document.cpp:
(WebCore::Document::getParserLocation const):
(WebCore::Document::addResizeObserver):
(WebCore::Document::removeResizeObserver):
(WebCore::Document::hasResizeObservers):
(WebCore::Document::gatherResizeObservations): Gather m_activeObservations at depth and return the shallowest depth.
(WebCore::Document::deliverResizeObservations): Deliver m_activeObservations, generate ResizeObserverEntries, and invoke the m_callbacks.
(WebCore::Document::hasSkippedResizeObservations const): To determine if Document has the size changed but not delivered observations.
(WebCore::Document::setHasSkippedResizeObservations):
(WebCore::Document::scheduleResizeObservations):
- dom/Document.h:
- dom/Element.cpp:
(WebCore::Element::~Element):
(WebCore::Element::disconnectFromResizeObservers):
(WebCore::Element::ensureResizeObserverData):
(WebCore::Element::resizeObserverData):
- dom/Element.h:
- dom/ElementRareData.cpp:
- dom/ElementRareData.h:
(WebCore::ElementRareData::resizeObserverData):
(WebCore::ElementRareData::setResizeObserverData):
(WebCore::ElementRareData::useTypes const):
- page/FrameView.cpp:
(WebCore::FrameView::didLayout):
- page/FrameViewLayoutContext.cpp:
(WebCore::FrameViewLayoutContext::layoutTimerFired): We need to start a ResizeObserver timer here, because for WK1 this might not trigger flushCompositingChanges.
- page/Page.cpp:
(WebCore::Page::Page):
(WebCore::Page::willDisplayPage):
(WebCore::Page::hasResizeObservers const):
(WebCore::Page::gatherDocumentsNeedingResizeObservationCheck): Gather the documents with resize observers.
(WebCore::Page::checkResizeObservations): Gather documents then notifyResizeObservers for each document.
(WebCore::Page::scheduleResizeObservations):
(WebCore::Page::notifyResizeObservers): Gather m_activeObservations and deliver them. Report ErrorEvent if it has skipped observations.
- page/Page.h:
(WebCore::Page::setNeedsCheckResizeObservations): Page needs to check ResizeObservations if FrameView layout or m_resizeObserverTimer has been started.
(WebCore::Page::needsCheckResizeObservations const):
- page/PageConsoleClient.cpp:
(WebCore::PageConsoleClient::addMessage):
(WebCore::getParserLocationForConsoleMessage): Deleted.
- page/ResizeObservation.cpp: Added.
(WebCore::ResizeObservation::create):
(WebCore::ResizeObservation::ResizeObservation):
(WebCore::ResizeObservation::~ResizeObservation):
(WebCore::ResizeObservation::updateObservationSize):
(WebCore::ResizeObservation::computeObservedSize const):
(WebCore::ResizeObservation::computeTargetLocation const):
(WebCore::ResizeObservation::computeContentRect const):
(WebCore::ResizeObservation::elementSizeChanged const):
(WebCore::ResizeObservation::targetElementDepth const):
- page/ResizeObservation.h: Copied from Tools/DumpRenderTree/TestOptions.h.
(WebCore::ResizeObservation::target const):
- page/ResizeObserver.cpp: Added.
(WebCore::ResizeObserver::create):
(WebCore::ResizeObserver::ResizeObserver):
(WebCore::ResizeObserver::~ResizeObserver):
(WebCore::ResizeObserver::scheduleObservations):
(WebCore::ResizeObserver::observe):
(WebCore::ResizeObserver::unobserve):
(WebCore::ResizeObserver::disconnect):
(WebCore::ResizeObserver::targetDestroyed):
(WebCore::ResizeObserver::gatherObservations):
(WebCore::ResizeObserver::deliverObservations):
(WebCore::ResizeObserver::removeTarget):
(WebCore::ResizeObserver::removeAllTargets):
(WebCore::ResizeObserver::removeObservation):
(WebCore::ResizeObserver::hasPendingActivity const):
(WebCore::ResizeObserver::activeDOMObjectName const):
(WebCore::ResizeObserver::canSuspendForDocumentSuspension const):
(WebCore::ResizeObserver::stop):
- page/ResizeObserver.h: Added.
(WebCore::ResizeObserver::hasObservations const):
(WebCore::ResizeObserver::hasActiveObservations const):
(WebCore::ResizeObserver::maxElementDepth):
(WebCore::ResizeObserver::hasSkippedObservations const):
(WebCore::ResizeObserver::setHasSkippedObservations):
- page/ResizeObserver.idl: Copied from Tools/DumpRenderTree/TestOptions.h.
- page/ResizeObserverCallback.h: Copied from Tools/DumpRenderTree/TestOptions.h.
- page/ResizeObserverCallback.idl: Copied from Tools/DumpRenderTree/TestOptions.h.
- page/ResizeObserverEntry.h: Copied from Tools/DumpRenderTree/TestOptions.h.
(WebCore::ResizeObserverEntry::create):
(WebCore::ResizeObserverEntry::target const):
(WebCore::ResizeObserverEntry::contentRect const):
(WebCore::ResizeObserverEntry::ResizeObserverEntry):
- page/ResizeObserverEntry.idl: Copied from Tools/DumpRenderTree/TestOptions.h.
- page/Settings.yaml:
Source/WebCore/PAL:
Add ENABLE_RESIZE_OBSERVER.
- Configurations/FeatureDefines.xcconfig:
Source/WebKit:
Add WebPreferences and FeatureDefines for ResizeObserver.
- Configurations/FeatureDefines.xcconfig:
- Shared/WebPreferences.yaml:
Source/WebKitLegacy/mac:
- Configurations/FeatureDefines.xcconfig:
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences resizeObserverEnabled]):
(-[WebPreferences setResizeObserverEnabled:]):
- WebView/WebPreferencesPrivate.h:
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
(-[WebView _flushCompositingChanges]): checkResizeObservations() in the begining.
Source/WebKitLegacy/win:
- Interfaces/IWebPreferencesPrivate.idl:
- WebPreferenceKeysPrivate.h:
- WebPreferences.cpp:
(WebPreferences::initializeDefaultSettings):
(WebPreferences::resizeObserverEnabled):
(WebPreferences::setResizeObserverEnabled):
- WebPreferences.h:
- WebView.cpp:
(WebView::notifyPreferencesChanged):
Tools:
Support resizeObserverEnabled webPreferences.
- DumpRenderTree/TestOptions.cpp:
(TestOptions::TestOptions):
- DumpRenderTree/TestOptions.h:
- DumpRenderTree/mac/DumpRenderTree.mm:
(setWebPreferencesForTestOptions):
- DumpRenderTree/win/DumpRenderTree.cpp:
(enableExperimentalFeatures):
- Scripts/webkitperl/FeatureList.pm:
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
LayoutTests:
Add tests for resize-observer of multiframe.
- resize-observer/modify-frametree-in-callback-expected.txt: Added.
- resize-observer/modify-frametree-in-callback.html: Added.
- resize-observer/multi-frames-expected.txt: Added.
- resize-observer/multi-frames.html: Added.
- resize-observer/observe-element-from-other-frame-expected.txt: Added.
- resize-observer/observe-element-from-other-frame.html: Added.
- resize-observer/resources/frame1.html: Added.
- resize-observer/resources/frame2.html: Added.
- resize-observer/resources/frame3.html: Added.
- resize-observer/resources/frame4.html: Added.
- resize-observer/resources/frameset1.html: Added.
- resize-observer/resources/frameset2.html: Added.
- resize-observer/resources/iframe1.html: Added.
- resize-observer/resources/resizeTestHelper.js: Added.
(ResizeTestHelper):
(ResizeTestHelper.prototype.get _currentStep):
(ResizeTestHelper.prototype._nextStep):
(ResizeTestHelper.prototype._handleNotification):
(ResizeTestHelper.prototype._handleTimeout):
(ResizeTestHelper.prototype._done):
(ResizeTestHelper.prototype.start):
(ResizeTestHelper.prototype.get rafCount):
(ResizeTestHelper.prototype._incrementRaf):
(ResizeTestHelper.prototype.startCountingRaf):