Timeline
Mar 23, 2019:
- 9:15 PM Changeset in webkit [243420] by
-
- 10 edits1 delete in trunk
Rolling out r243032 and r243071 because the fix is incorrect.
https://bugs.webkit.org/show_bug.cgi?id=195892
<rdar://problem/48981239>
Not reviewed.
JSTests:
- stress/check-object-property-condition-liveness-before-accessing-it-when-watchpoints-fire.js: Removed.
Source/JavaScriptCore:
The fix is incorrect: it relies on being able to determine liveness of an object
in an ObjectPropertyCondition based on the state of the object's MarkedBit.
However, there's no guarantee that GC has run and that the MarkedBit is already
set even if the object is live. As a result, we may not re-install adaptive
watchpoints based on presumed dead objects which are actually live.
I'm rolling this out, and will implement a more comprehensive fix to handle
watchpoint liveness later.
- bytecode/AdaptiveInferredPropertyValueWatchpointBase.cpp:
(JSC::AdaptiveInferredPropertyValueWatchpointBase::fire):
- bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.cpp:
(JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint::fireInternal):
- bytecode/ObjectPropertyCondition.cpp:
(JSC::ObjectPropertyCondition::dumpInContext const):
- bytecode/StructureStubClearingWatchpoint.cpp:
(JSC::StructureStubClearingWatchpoint::fireInternal):
- dfg/DFGAdaptiveStructureWatchpoint.cpp:
(JSC::DFG::AdaptiveStructureWatchpoint::fireInternal):
- runtime/StructureRareData.cpp:
(JSC::ObjectToStringAdaptiveStructureWatchpoint::fireInternal):
LayoutTests:
- platform/mac/TestExpectations:
- 6:35 PM Changeset in webkit [243419] by
-
- 38 edits13 copies4 adds in trunk
[Web GPU] Prototype compute pipeline with MSL
https://bugs.webkit.org/show_bug.cgi?id=196107
<rdar://problem/46289650>
Reviewed by Myles Maxfield.
Source/WebCore:
Add GPUComputePassEncoder, GPUComputePipeline, and GPUComputePipelineDescriptor.
Implement everything needed to prototype a compute pipeline in Web GPU using Metal shaders and bound resources.
Test: webgpu/compute-squares.html
Add files and symbols:
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Sources.txt:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/WebCoreBuiltinNames.h:
Misc fixes:
- Modules/webgpu/WHLSL/WHLSLNameResolver.h: Missing include.
- Modules/webgpu/WHLSL/WHLSLSynthesizeConstructors.cpp: Missing include.
- Modules/webgpu/WebGPUPipelineStageDescriptor.cpp: Added. Move pipeline stage validation logic here.
(WebCore::WebGPUPipelineStageDescriptor::tryCreateGPUPipelineStageDescriptor const):
- Modules/webgpu/WebGPURenderPipeline.cpp: Remove unnecessary include.
- Modules/webgpu/WebGPURenderPipeline.h:
- Modules/webgpu/WebGPURenderPipelineDescriptor.cpp: Add missing inlcude.
(WebCore::WebGPUPipelineStageDescriptor::tryCreateGPUPipelineStageDescriptor const): Moved to WebGPUPipelineStageDescriptor.cpp.
- platform/graphics/gpu/GPUPipelineDescriptorBase.h: Add missing include.
- platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm: Add missing include.
(WebCore::GPURenderPipeline::GPURenderPipeline): Remove unecessary ref of GPUPipelineLayout.
- platform/text/mac/TextEncodingRegistryMac.mm: Carbon.h was causing ambiguous reference build errors in this file.
Enable creating a GPUComputePassEncoder from a GPUCommandEncoder:
- Modules/webgpu/WebGPUCommandEncoder.cpp:
(WebCore::WebGPUCommandEncoder::beginRenderPass): No longer passing this WebGPUCommandEncoder to pass encoders.
(WebCore::WebGPUCommandEncoder::beginComputePass): Added.
- Modules/webgpu/WebGPUCommandEncoder.h:
- Modules/webgpu/WebGPUCommandEncoder.idl:
Add GPUComputePassEncoder:
- Modules/webgpu/WebGPUComputePassEncoder.cpp: Added.
(WebCore::WebGPUComputePassEncoder::create):
(WebCore::WebGPUComputePassEncoder::WebGPUComputePassEncoder):
(WebCore::WebGPUComputePassEncoder::setPipeline):
(WebCore::WebGPUComputePassEncoder::dispatch):
(WebCore::WebGPUComputePassEncoder::passEncoder):
(WebCore::WebGPUComputePassEncoder::passEncoder const):
- Modules/webgpu/WebGPUComputePassEncoder.h: Added.
- Modules/webgpu/WebGPUComputePassEncoder.idl: Added.
- platform/graphics/gpu/GPUComputePassEncoder.h: Added.
(WebCore::GPUComputePassEncoder::~GPUComputePassEncoder):
- platform/graphics/gpu/cocoa/GPUComputePassEncoderMetal.mm: Added.
(WebCore::GPUComputePassEncoder::tryCreate):
(WebCore::GPUComputePassEncoder::GPUComputePassEncoder):
(WebCore::GPUComputePassEncoder::setPipeline):
(WebCore::GPUComputePassEncoder::dispatch): Use a default calculation for threadsPerThreadgroup while MSL is still an accepted shader format.
(WebCore::GPUComputePassEncoder::platformPassEncoder const):
(WebCore::GPUComputePassEncoder::useResource):
(WebCore::GPUComputePassEncoder::setComputeBuffer):
Add GPUComputePipeline:
- Modules/webgpu/WebGPUComputePipeline.cpp: Added.
(WebCore::WebGPUComputePipeline::create):
(WebCore::WebGPUComputePipeline::WebGPUComputePipeline):
- Modules/webgpu/WebGPUComputePipeline.h: Added.
(WebCore::WebGPUComputePipeline::computePipeline const):
- Modules/webgpu/WebGPUComputePipeline.idl: Added.
- Modules/webgpu/WebGPUComputePipelineDescriptor.cpp: Added.
(WebCore::WebGPUComputePipelineDescriptor::tryCreateGPUComputePipelineDescriptor const):
- Modules/webgpu/WebGPUComputePipelineDescriptor.h: Added.
- Modules/webgpu/WebGPUComputePipelineDescriptor.idl: Added.
- platform/graphics/gpu/GPUComputePipeline.h: Added.
(WebCore::GPUComputePipeline::platformComputePipeline const):
- platform/graphics/gpu/GPUComputePipelineDescriptor.h: Added.
(WebCore::GPUComputePipelineDescriptor::GPUComputePipelineDescriptor):
- platform/graphics/gpu/cocoa/GPUComputePipelineMetal.mm: Added.
(WebCore::tryCreateMtlComputeFunction):
(WebCore::tryCreateMTLComputePipelineState):
(WebCore::GPUComputePipeline::tryCreate):
(WebCore::GPUComputePipeline::GPUComputePipeline):
Enable creating a GPUComputePipeline from a GPUDevice:
- Modules/webgpu/WebGPUDevice.cpp:
(WebCore::WebGPUDevice::createComputePipeline const):
- Modules/webgpu/WebGPUDevice.h:
- Modules/webgpu/WebGPUDevice.idl:
- platform/graphics/gpu/GPUDevice.cpp:
(WebCore::GPUDevice::tryCreateComputePipeline const):
- platform/graphics/gpu/GPUDevice.h:
No longer unnecessarily ref the WebGPUCommandEncoder when creating pass encoder:
- Modules/webgpu/WebGPUProgrammablePassEncoder.cpp:
(WebCore::WebGPUProgrammablePassEncoder::setBindGroup):
(WebCore::WebGPUProgrammablePassEncoder::WebGPUProgrammablePassEncoder): Deleted.
(WebCore::WebGPUProgrammablePassEncoder::setBindGroup const): Deleted.
- Modules/webgpu/WebGPUProgrammablePassEncoder.h:
- Modules/webgpu/WebGPURenderPassEncoder.cpp:
(WebCore::WebGPURenderPassEncoder::create):
(WebCore::WebGPURenderPassEncoder::WebGPURenderPassEncoder):
(WebCore::WebGPURenderPassEncoder::setPipeline):
(WebCore::WebGPURenderPassEncoder::passEncoder):
(WebCore::WebGPURenderPassEncoder::passEncoder const):
- Modules/webgpu/WebGPURenderPassEncoder.h:
Updates to GPUBindGroup and *setBindGroup for compute function arguments:
- platform/graphics/gpu/GPUBindGroup.h:
(WebCore::GPUBindGroup::vertexArgsBuffer const):
(WebCore::GPUBindGroup::fragmentArgsBuffer const):
(WebCore::GPUBindGroup::computeArgsBuffer const):
(WebCore::GPUBindGroup::vertexArgsBuffer): Deleted. Const-qualified.
(WebCore::GPUBindGroup::fragmentArgsBuffer): Ditto.
- platform/graphics/gpu/cocoa/GPUBindGroupMetal.mm:
(WebCore::tryGetResourceAsMTLSamplerState): Now just returns the MTLSamplerState to reduce reference churning.
(WebCore::GPUBindGroup::tryCreate):
(WebCore::GPUBindGroup::GPUBindGroup):
(WebCore::tryGetResourceAsSampler): Renamed to tryGetResourceAsMTLSamplerState.
Updates to GPUProgrammablePassEncoder and GPURenderPassEncoder:
- platform/graphics/gpu/GPUProgrammablePassEncoder.h:
(WebCore::GPUProgrammablePassEncoder::setVertexBuffer):
(WebCore::GPUProgrammablePassEncoder::setFragmentBuffer):
(WebCore::GPUProgrammablePassEncoder::setComputeBuffer): Added.
- platform/graphics/gpu/GPURenderPassEncoder.h:
(WebCore::GPURenderPassEncoder::~GPURenderPassEncoder):
- platform/graphics/gpu/GPURenderPipeline.h:
- platform/graphics/gpu/cocoa/GPUProgrammablePassEncoderMetal.mm: Remove unecessary include.
(WebCore::GPUProgrammablePassEncoder::endPass): No longer virtual. Delegates shared behavior for derived classes.
(WebCore::GPUProgrammablePassEncoder::setBindGroup):
- platform/graphics/gpu/cocoa/GPURenderPassEncoderMetal.mm:
(WebCore::GPURenderPassEncoder::platformPassEncoder const):
(WebCore::GPURenderPassEncoder::setPipeline):
(WebCore::GPURenderPassEncoder::draw):
(WebCore::GPURenderPassEncoder::useResource): These private overrides are called only by base after checking for encoder existence.
(WebCore::GPURenderPassEncoder::setVertexBuffer): Ditto.
(WebCore::GPURenderPassEncoder::setFragmentBuffer): Ditto.
(WebCore::GPURenderPassEncoder::endPass): Deleted. Now handled by base class.
LayoutTests:
Add a basic test to create, execute, and verify the results of a Web GPU compute pipeline.
- webgpu/compute-squares-expected.txt: Added.
- webgpu/compute-squares.html: Added.
- webgpu/whlsl.html: Update some function names to match API changes.
- 6:32 PM Changeset in webkit [243418] by
-
- 9 edits in trunk
Refactor clz/ctz and fix getLSBSet.
https://bugs.webkit.org/show_bug.cgi?id=196162
Reviewed by Saam Barati.
Source/JavaScriptCore:
Refactor references of clz32/64 and ctz32 to use clz and ctz,
respectively.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGOperations.cpp:
- runtime/JSBigInt.cpp:
(JSC::JSBigInt::digitDiv):
(JSC::JSBigInt::absoluteDivWithBigIntDivisor):
(JSC::JSBigInt::calculateMaximumCharactersRequired):
(JSC::JSBigInt::toStringBasePowerOfTwo):
(JSC::JSBigInt::compareToDouble):
- runtime/MathObject.cpp:
(JSC::mathProtoFuncClz32):
Source/WTF:
This patch makes clz32/64 and ctz32 generic so they work on any
numeric type. Since these methods work on any type we don't need
to have a separate implementation of getLSBSet, which also
happened to be getMSBSet. This patch also adds getMSBSet as there
may be users who want that in the future.
- wtf/MathExtras.h:
(WTF::clz):
(WTF::ctz):
(WTF::getLSBSet):
(WTF::getMSBSet):
(getLSBSet): Deleted.
(WTF::clz32): Deleted.
(WTF::clz64): Deleted.
(WTF::ctz32): Deleted.
Tools:
Add tests for clz, ctz, getLSBSet, and getMSBSet.
- TestWebKitAPI/Tests/WTF/MathExtras.cpp:
(TestWebKitAPI::TEST):
- 5:47 PM Changeset in webkit [243417] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, fix typo in comment added in r243379.
- UIProcess/API/Cocoa/WKProcessGroup.mm:
(-[WKProcessGroup setDelegate:]):
- 3:00 PM Changeset in webkit [243416] by
-
- 17 edits1 delete in trunk
REGRESSION (iOS 8): Scrollbar can't be hidden when webkit-overflow-scrolling is set to touch
https://bugs.webkit.org/show_bug.cgi?id=137043
rdar://problem/16595330
Reviewed by Zalan Bujtas.
Source/WebCore:
Plumb horizontalScrollbarHiddenByStyle/verticalScrollbarHiddenByStyle through ScrollableAreaParameters
to the UI process, and use it to set UIScrollView indicators visible or not.
Tests: fast/scrolling/ios/scrollbar-hiding.html:
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::setScrollingNodeScrollableAreaGeometry):
- page/scrolling/ScrollingCoordinator.cpp:
(WebCore::operator<<):
- page/scrolling/ScrollingCoordinatorTypes.h:
- page/scrolling/ScrollingTreeNode.h:
- page/scrolling/ScrollingTreeOverflowScrollingNode.cpp:
(WebCore::ScrollingTreeOverflowScrollingNode::dumpProperties const):
- page/scrolling/ScrollingTreeScrollingNode.h:
- platform/ScrollableArea.h:
(WebCore::ScrollableArea::horizontalScrollbarHiddenByStyle const):
(WebCore::ScrollableArea::verticalScrollbarHiddenByStyle const):
- rendering/RenderLayer.cpp:
(WebCore::scrollbarHiddenByStyle):
(WebCore::RenderLayer::horizontalScrollbarHiddenByStyle const):
(WebCore::RenderLayer::verticalScrollbarHiddenByStyle const):
- rendering/RenderLayer.h:
Source/WebKit:
Plumb horizontalScrollbarHiddenByStyle/verticalScrollbarHiddenByStyle through ScrollableAreaParameters
to the UI process, and use it to set UIScrollView indicators visible or not.
The scroll snap changes in ScrollingTreeScrollingNodeDelegateIOS::commitStateAfterChildren() fix a bug
where hasChangedProperty(HorizontalSnapOffsets) was nested inside another set of hasChangedProperty()
tests, so would never get called.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<ScrollableAreaParameters>::encode):
(IPC::ArgumentCoder<ScrollableAreaParameters>::decode):
- UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateAfterChildren):
LayoutTests:
Test that dumps the UI-side scrolling tree, showing e.g. "horizontal scrollbar hidden by style"
in the dump.
This test was previously a render tree dump, which did not test whether scrollbars were visible.
- fast/scrolling/ios/scrollbar-hiding-expected.txt:
- fast/scrolling/ios/scrollbar-hiding.html:
- platform/ios/fast/scrolling/ios/scrollbar-hiding-expected.txt: Removed.
- 2:07 PM Changeset in webkit [243415] by
-
- 3 edits4 adds in trunk
[ContentChangeObserver] Taping on a form control should always result in click.
https://bugs.webkit.org/show_bug.cgi?id=196177
Reviewed by Simon Fraser.
Source/WebKit:
This patch enures that we send a synthetic click when the traget node is a form control (button, edit field etc) even if
the mousemove brings up some hover content.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::handleSyntheticClick):
LayoutTests:
- fast/events/touch/ios/content-observation/tap-on-input-type-button-element-expected.txt: Added.
- fast/events/touch/ios/content-observation/tap-on-input-type-button-element.html: Added.
- fast/events/touch/ios/content-observation/tap-on-input-type-text-element-expected.txt: Added.
- fast/events/touch/ios/content-observation/tap-on-input-type-text-element.html: Added.
- 1:58 PM Changeset in webkit [243414] by
-
- 4 edits10 adds in trunk
[ContentChangeObserver] Add support for observing opacity.
https://bugs.webkit.org/show_bug.cgi?id=196172
Reviewed by Simon Fraser.
Source/WebCore:
This patch adds support for observing opacity changes. At this point we only track one transition at a time.
if the page registers transition on both left and opacity, the first is getting observed only.
Tests: fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove-with-opacity-and-left.html
fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove-with-transition.html
fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove.html
fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart-with-transition.html
fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart.html
- page/ios/ContentChangeObserver.cpp:
(WebCore::isConsideredHidden):
(WebCore::ContentChangeObserver::didAddTransition):
- page/ios/ContentChangeObserver.h:
(WebCore::ContentChangeObserver::isObservedPropertyForTransition const):
LayoutTests:
- fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove-expected.txt: Added.
- fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove-with-opacity-and-left-expected.txt: Added.
- fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove-with-opacity-and-left.html: Added.
- fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove-with-transition-expected.txt: Added.
- fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove-with-transition.html: Added.
- fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove.html: Added.
- fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart-expected.txt: Added.
- fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart-with-transition-expected.txt: Added.
- fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart-with-transition.html: Added.
- fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart.html: Added.
- 1:47 PM Changeset in webkit [243413] by
-
- 4 edits2 adds in trunk
[ContentChangeObserver] Check if the transitioned content is visible at onAnimationEnd
https://bugs.webkit.org/show_bug.cgi?id=196171
Reviewed by Simon Fraser.
Source/WebCore:
At onAnimationEnd we don't yet have the final computed style for the transitioned content.
However the current state (before computing the final style) might already be qualified to be visible.
Introduce "CompletedTransition" to indicate that the transition is all set as far observing is concerned
(as opposed to "EndedTransition" where we still need to observe the content for the final style change).
Test: fast/events/touch/ios/content-observation/10ms-delay-transition-on-touch-start-with-non-0px-end.html
- page/ios/ContentChangeObserver.cpp:
(WebCore::ContentChangeObserver::didFinishTransition):
(WebCore::ContentChangeObserver::adjustObservedState):
- page/ios/ContentChangeObserver.h:
LayoutTests:
- fast/events/touch/ios/content-observation/10ms-delay-transition-on-touch-start-with-non-0px-end-expected.txt: Added.
- fast/events/touch/ios/content-observation/10ms-delay-transition-on-touch-start-with-non-0px-end.html: Added.
- 9:39 AM Changeset in webkit [243412] by
-
- 10 edits in trunk/Source
[Apple Pay] Stop calling PKPaymentAuthorizationViewController class methods on iOS
https://bugs.webkit.org/show_bug.cgi?id=196163
<rdar://problem/48787564>
Reviewed by Anders Carlsson.
Source/WebCore/PAL:
- pal/spi/cocoa/PassKitSPI.h:
Source/WebKit:
Now that we've transitioned to PKPaymentAuthorizationController on iOS, we should stop
calling PKPaymentAuthorizationViewController class methods on iOS in favor of their
PKPaymentAuthorizationController alternatives.
While we're here, we should also transition to calling
+paymentServicesMerchantURLForAPIType:completion: on both
PKPaymentAuthorizationViewController and PKPaymentAuthorizationController.
- Platform/cocoa/PaymentAuthorizationViewController.mm:
(-[WKPaymentAuthorizationViewControllerDelegate _paymentServicesMerchantURLForAPIType:completion:]):
- Platform/cocoa/WKPaymentAuthorizationDelegate.h:
- Platform/cocoa/WKPaymentAuthorizationDelegate.mm:
(-[WKPaymentAuthorizationDelegate _initWithRequest:presenter:]):
(-[WKPaymentAuthorizationDelegate _paymentServicesMerchantURLForAPIType:completion:]):
- Platform/ios/PaymentAuthorizationController.mm:
(-[WKPaymentAuthorizationControllerDelegate _paymentServicesMerchantURLForAPIType:completion:]):
- Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::WebPaymentCoordinatorProxy::platformCanMakePayments): Deleted.
- Shared/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm:
(WebKit::WebPaymentCoordinatorProxy::platformCanMakePayments):
- Shared/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:
(WebKit::WebPaymentCoordinatorProxy::platformCanMakePayments):
- 4:25 AM Changeset in webkit [243411] by
-
- 3 edits in trunk/Tools
[GTK][WPE] check-webkit-style doesn't complain about identifiers with underscores in files under glib, gtk or wpe dirs
https://bugs.webkit.org/show_bug.cgi?id=196143
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2019-03-23
Reviewed by Michael Catanzaro.
Fix the check for the exception of identifiers starting with webkit_ in files under glib, gtk or wpe
directories.
- Scripts/webkitpy/style/checkers/cpp.py:
(check_identifier_name_in_declaration):
- Scripts/webkitpy/style/checkers/cpp_unittest.py:
(WebKitStyleTest.test_names):
- 3:56 AM Changeset in webkit [243410] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed. Fix GTK build after r243409.
Build failure is actually unrelated to r243409, it's yet another unified build failure that happens when source
file list changes.
- UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::platformShowCertificate): Use WebCore namespace for CertificateInfo parameter.
- 3:37 AM Changeset in webkit [243409] by
-
- 13 edits3 adds2 deletes in trunk
[GTK] Remove build time dependency on Geoclue2
https://bugs.webkit.org/show_bug.cgi?id=195994
Reviewed by Michael Catanzaro.
.:
Remove USE_GEOCLUE build option.
- Source/cmake/FindGeoClue2.cmake: Removed.
- Source/cmake/OptionsGTK.cmake:
Source/WebCore:
Remove old Geoclue implementation.
- PlatformGTK.cmake:
- SourcesGTK.txt:
- platform/geoclue/GeolocationProviderGeoclue.cpp: Removed.
- platform/geoclue/GeolocationProviderGeoclue.h: Removed.
- platform/geoclue/GeolocationProviderGeoclueClient.h: Removed.
Source/WebCore/platform/gtk/po:
- POTFILES.in: Add GeoclueGeolocationProvider.cpp.
Source/WebKit:
Add GeoclueGeolocationProvider class to provide geolocation position updates using Geoclue2 DBus service.
- PlatformGTK.cmake:
- PlatformWPE.cmake:
- SourcesGTK.txt:
- SourcesWPE.txt:
- UIProcess/API/glib/WebKitGeolocationManager.cpp:
(_WebKitGeolocationPosition::_WebKitGeolocationPosition):
(webkitGeolocationManagerStop):
(webkitGeolocationManagerSetEnableHighAccuracy):
(webkitGeolocationManagerDispose):
(webkit_geolocation_manager_class_init):
- UIProcess/geoclue/GeoclueGeolocationProvider.cpp: Added.
(WebKit::GeoclueGeolocationProvider::GeoclueGeolocationProvider):
(WebKit::GeoclueGeolocationProvider::~GeoclueGeolocationProvider):
(WebKit::GeoclueGeolocationProvider::start):
(WebKit::GeoclueGeolocationProvider::stop):
(WebKit::GeoclueGeolocationProvider::setEnableHighAccuracy):
(WebKit::GeoclueGeolocationProvider::destroyManagerLater):
(WebKit::GeoclueGeolocationProvider::destroyManager):
(WebKit::GeoclueGeolocationProvider::setupManager):
(WebKit::GeoclueGeolocationProvider::createClient):
(WebKit::GeoclueGeolocationProvider::setupClient):
(WebKit::GeoclueGeolocationProvider::startClient):
(WebKit::GeoclueGeolocationProvider::stopClient):
(WebKit::GeoclueGeolocationProvider::requestAccuracyLevel):
(WebKit::GeoclueGeolocationProvider::clientLocationUpdatedCallback):
(WebKit::GeoclueGeolocationProvider::createLocation):
(WebKit::GeoclueGeolocationProvider::locationUpdated):
(WebKit::GeoclueGeolocationProvider::didFail):
- UIProcess/geoclue/GeoclueGeolocationProvider.h: Added.
- 12:58 AM Changeset in webkit [243408] by
-
- 4 edits in trunk/Source/JavaScriptCore
[JSC] Shrink sizeof(RegExp)
https://bugs.webkit.org/show_bug.cgi?id=196133
Reviewed by Mark Lam.
Some applications have many RegExp cells. But RegExp cells are very large (144B).
This patch reduces the size from 144B to 48B by,
- Allocate Yarr::YarrCodeBlock in non-GC heap. We can avoid this allocation if JIT is disabled.
- m_captureGroupNames and m_namedGroupToParenIndex are moved to RareData. They are only used when RegExp has named capture groups.
- runtime/RegExp.cpp:
(JSC::RegExp::finishCreation):
(JSC::RegExp::estimatedSize):
(JSC::RegExp::compile):
(JSC::RegExp::matchConcurrently):
(JSC::RegExp::compileMatchOnly):
(JSC::RegExp::deleteCode):
(JSC::RegExp::printTraceData):
- runtime/RegExp.h:
- runtime/RegExpInlines.h:
(JSC::RegExp::hasCodeFor):
(JSC::RegExp::matchInline):
(JSC::RegExp::hasMatchOnlyCodeFor):
Mar 22, 2019:
- 5:59 PM Changeset in webkit [243407] by
-
- 2 edits in trunk/Source/WebKit
Undo collision with r243390.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(stringForSSLProtocol):
- 5:56 PM Changeset in webkit [243406] by
-
- 2 edits in trunk/Source/WebKit
Fix internal builds.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(stringForSSLProtocol):
- 5:22 PM WebKitGTK/2.24.x edited by
- (diff)
- 4:34 PM Changeset in webkit [243405] by
-
- 16 edits in trunk/LayoutTests
Unreviewed, fix test failures after r243269.
In debug builds, it's possible that the Web Inspector frontend is told to stop a timeline
recording before all of the recorded records have had a chance to be completed/processed.
As an example
`
setTimeout(() => {
<stop recording>
});
`
it may happen that the "stop recording" event will be dispatched before the timeout has
finished executing, meaning that the event that contains the recorded data for that timeout
will be ignored by the frontend.
Rework the tests so that they don't dispatch the "stop recording" event until the expected
record is received by the frontend, rather than having the test code itself say when to stop.
- inspector/timeline/resources/timeline-event-utilities.js:
(savePageData): Added.
(TestPage.registerInitializer.InspectorTest.TimelineEvent.captureTimelineWithScript):
(finishRecording): Deleted.
- inspector/timeline/timeline-event-CancelAnimationFrame.html:
- inspector/timeline/timeline-event-CancelAnimationFrame-expected.txt:
- inspector/timeline/timeline-event-EventDispatch.html:
- inspector/timeline/timeline-event-EventDispatch-expected.txt:
- inspector/timeline/timeline-event-FireAnimationFrame.html:
- inspector/timeline/timeline-event-FireAnimationFrame-expected.txt:
- inspector/timeline/timeline-event-RequestAnimationFrame.html:
- inspector/timeline/timeline-event-RequestAnimationFrame-expected.txt:
- inspector/timeline/timeline-event-TimerFire.html:
- inspector/timeline/timeline-event-TimerFire-expected.txt:
- inspector/timeline/timeline-event-TimerInstall.html:
- inspector/timeline/timeline-event-TimerInstall-expected.txt:
- inspector/timeline/timeline-event-TimerRemove.html:
- inspector/timeline/timeline-event-TimerRemove-expected.txt:
- 3:54 PM Changeset in webkit [243404] by
-
- 2 edits in trunk/Source/WebCore
Flaky AVEncoderBitRateKey symbol not found crash on imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-constructor.html
https://bugs.webkit.org/show_bug.cgi?id=193724
<rdar://problem/47483831>
Reviewed by Jer Noble.
The soft link macros occasionally fail to load constants from AVFoundation.framework
which are actually in one of its sub-frameworks. While we investigate the cause
cause of the failure, ise the SOFT_LINK_CONSTANT_MAY_FAIL so we can detect the failure
and return a local copy of the string instead of crashing.
No new tests, this should prevent existing tests from crashing.
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:
(WebCore::myAVFormatIDKey):
(WebCore::myAVNumberOfChannelsKey):
(WebCore::myAVSampleRateKey):
(WebCore::myAVEncoderBitRateKey):
- 3:19 PM Changeset in webkit [243403] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Sources: "Reveal in Resources Tab" still shown when Sources tab is enabled
https://bugs.webkit.org/show_bug.cgi?id=196134
Reviewed by Joseph Pecoraro.
- UserInterface/Views/RecordingActionTreeElement.js:
(WI.RecordingActionTreeElement.prototype.populateContextMenu):
Drive-by: find the first call frame that has a source code location, rather than naively
always using the top call frame.
- UserInterface/Views/SearchResultTreeElement.js:
(WI.SearchResultTreeElement.prototype.populateContextMenu):
- 3:12 PM Changeset in webkit [243402] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION: Flaky ASSERTION FAILED: !m_killed seen with http/tests/security/cross-origin-worker-indexeddb.html
https://bugs.webkit.org/show_bug.cgi?id=196024
<rdar://problem/49117272>
Reviewed by Alexey Proskuryakov.
Do not proceed with opening the database if it is being closed.
Speculative fix, this should stop making test crashing on bots.
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::performCurrentOpenOperation):
- 3:11 PM Changeset in webkit [243401] by
-
- 2 edits in trunk/Source/WebCore
storage/indexeddb/closed-cursor-private.html is crashing on debug
https://bugs.webkit.org/show_bug.cgi?id=196101
Reviewed by Alex Christensen.
In case of immediate close for user delete, the transaction might be deleted.
If the request for space is pending, it will be executed with an error as parameter.
In that case, the call to didCommitTransaction will not find any existing transaction.
Speculative fix, test should no longer crash.
- Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didCommitTransaction):
- 3:03 PM Changeset in webkit [243400] by
-
- 16 edits in trunk
Web Inspector: Safari Canvas Inspector seems to show the canvas being rendered twice per frame.
https://bugs.webkit.org/show_bug.cgi?id=196082
<rdar://problem/49113496>
Reviewed by Dean Jackson.
Source/WebCore:
Tests: inspector/canvas/recording-2d.html
inspector/canvas/recording-bitmaprenderer.html
inspector/canvas/recording-html-2d.html
inspector/canvas/recording-webgl.html
inspector/canvas/setRecordingAutoCaptureFrameCount.html
WebGL
<canvas>follow a different "rendering" path such thatHTMLCanvasElement::paint
isn't called. Previously, there was a 0s timer that was started after the first action of a
frame was recorded (for the case that the<canvas>isn't attached to the DOM) that would
automatically stop the recording. It was possible that actions in two different "frame"s
were recorded as part of the same frame, because the WebGL<canvas>would instead fall
back to the timer to know when the "frame" had ended.
Now, there is additional instrumentation for the WebGL specific rendering path.
Additionally, replace the 0s timer with a microtask for more "immediate" calling.
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::paint):
Ensure that theInspectorInstrumentationcall is last. This matches what we expect, as
before we were instrumenting right before is it about to paint.
- platform/graphics/GraphicsContext3D.h:
(WebCore::GraphicsContext3D::Client::~Client): Added.
(WebCore::GraphicsContext3D::addClient): Added.
(WebCore::GraphicsContext3D::removeClient): Added.
(WebCore::GraphicsContext3D::setWebGLContext): Deleted.
- platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::markLayerComposited):
(WebCore::GraphicsContext3D::forceContextLost):
(WebCore::GraphicsContext3D::recycleContext):
(WebCore::GraphicsContext3D::dispatchContextChangedNotification):
- html/canvas/WebGLRenderingContextBase.h:
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase):
(WebCore::WebGLRenderingContextBase::destroyGraphicsContext3D):
(WebCore::WebGLRenderingContextBase::didComposite): Added.
(WebCore::WebGLRenderingContextBase::forceContextLost):
(WebCore::WebGLRenderingContextBase::recycleContext):
(WebCore::WebGLRenderingContextBase::dispatchContextChangedNotification): Added.
(WebCore::WebGLRenderingContextBase::dispatchContextChangedEvent): Deleted.
Introduce aGraphicsContext3DClientabstract class, rather than passing the
WebGLRenderingContextBasedirectly to theGraphicsContext3D(layering violation).
Notify the client whenever theGraphicsContext3Dcomposites, which will in turn notify the
InspectorCanvasAgentso that it knows that the "frame" is over.
- inspector/agents/InspectorCanvasAgent.h:
- inspector/agents/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
(WebCore::InspectorCanvasAgent::requestNode):
(WebCore::InspectorCanvasAgent::requestContent):
(WebCore::InspectorCanvasAgent::requestCSSCanvasClientNodes):
(WebCore::InspectorCanvasAgent::resolveCanvasContext):
(WebCore::InspectorCanvasAgent::startRecording):
(WebCore::InspectorCanvasAgent::stopRecording):
(WebCore::InspectorCanvasAgent::requestShaderSource):
(WebCore::InspectorCanvasAgent::updateShader):
(WebCore::InspectorCanvasAgent::setShaderProgramDisabled):
(WebCore::InspectorCanvasAgent::setShaderProgramHighlighted):
(WebCore::InspectorCanvasAgent::didChangeCSSCanvasClientNodes):
(WebCore::InspectorCanvasAgent::didChangeCanvasMemory):
(WebCore::InspectorCanvasAgent::recordCanvasAction):
(WebCore::InspectorCanvasAgent::canvasDestroyed):
(WebCore::InspectorCanvasAgent::didFinishRecordingCanvasFrame):
(WebCore::InspectorCanvasAgent::consoleStartRecordingCanvas):
(WebCore::InspectorCanvasAgent::didEnableExtension):
(WebCore::InspectorCanvasAgent::didCreateProgram):
(WebCore::InspectorCanvasAgent::willDeleteProgram):
(WebCore::InspectorCanvasAgent::isShaderProgramDisabled):
(WebCore::InspectorCanvasAgent::isShaderProgramHighlighted):
(WebCore::InspectorCanvasAgent::clearCanvasData):
(WebCore::InspectorCanvasAgent::assertInspectorCanvas):
(WebCore::InspectorCanvasAgent::findInspectorCanvas):
(WebCore::InspectorCanvasAgent::assertInspectorProgram):
(WebCore::InspectorCanvasAgent::findInspectorProgram):
(WebCore::InspectorCanvasAgent::canvasRecordingTimerFired): Deleted.
Replace raw pointers withRefPtrs. This is primarily used so that the microtask (instead
of a timer) that is enqueued after the first action of each frame is recorded can access a
ref-counted instance of anInspectorCanvas, ensuring that it isn't destructed.
- inspector/InspectorCanvas.h:
- inspector/InspectorCanvas.cpp:
(WebCore::InspectorCanvas::canvasElement):
(WebCore::InspectorCanvas::recordAction):
(WebCore::InspectorCanvas::finalizeFrame):
(WebCore::InspectorCanvas::releaseObjectForRecording): Added.
(WebCore::InspectorCanvas::getCanvasContentAsDataURL):
(WebCore::InspectorCanvas::appendActionSnapshotIfNeeded):
(WebCore::InspectorCanvas::buildInitialState):
(WebCore::InspectorCanvas::releaseInitialState): Deleted.
(WebCore::InspectorCanvas::releaseFrames): Deleted.
(WebCore::InspectorCanvas::releaseData): Deleted.
Move the recording payload construction logic toInspectorCanvasso the actual data
doesn't need to leave that class.
Drive-by: unify the logic for getting the contents of a canvas fromInspectorCanvasAgent.
LayoutTests:
- inspector/canvas/recording-2d.html:
- inspector/canvas/recording-bitmaprenderer.html:
- inspector/canvas/recording-html-2d.html:
- inspector/canvas/recording-webgl.html:
- inspector/canvas/setRecordingAutoCaptureFrameCount.html:
- 2:23 PM Changeset in webkit [243399] by
-
- 2 edits in tags/Safari-608.1.13/Source/WebKit
Cherry-pick r243392. rdar://problem/49123855
[macOS] Fix sandbox violation
https://bugs.webkit.org/show_bug.cgi?id=196153
<rdar://problem/49123855>
Reviewed by Brent Fulgham.
The sandbox on macOS is blocking the mach lookup.
- WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243392 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:50 PM Changeset in webkit [243398] by
-
- 1 copy in tags/Safari-608.1.13
Tag Safari-608.1.13.
- 1:41 PM WebKitGTK/MaintenanceTips edited by
- (diff)
- 1:37 PM WebKitGTK/MaintenanceTips edited by
- (diff)
- 1:34 PM WebKitGTK/MaintenanceTips edited by
- (diff)
- 1:32 PM WebKitGTK/MaintenanceTips edited by
- (diff)
- 1:31 PM WebKitGTK/MaintenanceTips edited by
- (diff)
- 1:30 PM WebKitGTK/MaintenanceTips edited by
- (diff)
- 1:27 PM WebKitGTK edited by
- (diff)
- 1:26 PM WebKitGTK/MaintenanceTips created by
- 12:07 PM Changeset in webkit [243397] by
-
- 3 edits in tags/Safari-608.1.11.1/Source/JavaScriptCore
Cherry-pick r243311. rdar://problem/49113565
[JSC] Fix JSC build with newer ICU
https://bugs.webkit.org/show_bug.cgi?id=196098
Reviewed by Keith Miller.
IntlDateTimeFormat and IntlNumberFormat have switch statement over ICU's enums. However it lacks "default" clause so that
the compile error occurs when a new enum value is added in ICU side. We should have "default" clause which just fallbacks
"unknown"_s case. The behavior is not changed since we already havereturn "unknown"_s;statement anyway after the
switch statement. This patch just suppresses a compile error.
- runtime/IntlDateTimeFormat.cpp: (JSC::IntlDateTimeFormat::partTypeString):
- runtime/IntlNumberFormat.cpp: (JSC::IntlNumberFormat::partTypeString):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243311 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:56 AM Changeset in webkit [243396] by
-
- 20 edits in trunk/Source
Enable ThinLTO support in Production builds
https://bugs.webkit.org/show_bug.cgi?id=190758
<rdar://problem/45413233>
Reviewed by Daniel Bates.
Source/bmalloc:
Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.
LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.
To change the LTO setting when building locally:
- If building with
make, specify WK_LTO_MODE={none,thin,full} on the command line. - If building with
build-webkit, specify --lto-mode={none,thin,full} on the command line. - If building with
build-root, specify --lto={none,thin,full} on the command line. - If building with Xcode, create a LocalOverrides.xcconfig file at the top level of your repository directory (if needed) and define WK_LTO_MODE to full, thin, or none.
- Configurations/Base.xcconfig:
Source/JavaScriptCore:
Tweak JavaScriptCore's Base.xcconfig to be more in-line with other
.xcconfig files with regards to LTO settings. However, don't actually
enable LTO for JavaScriptCore. LTO is not enabled for JavaScriptCore
due to <rdar://problem/24543547>.
- Configurations/Base.xcconfig:
Source/ThirdParty/ANGLE:
Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.
LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.
To change the LTO setting when building locally:
- If building with
make, specify WK_LTO_MODE={none,thin,full} on the command line. - If building with
build-webkit, specify --lto-mode={none,thin,full} on the command line. - If building with
build-root, specify --lto={none,thin,full} on the command line. - If building with Xcode, create a LocalOverrides.xcconfig file at the top level of your repository directory (if needed) and define WK_LTO_MODE to full, thin, or none.
- Configurations/Base.xcconfig:
Source/ThirdParty/libwebrtc:
Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.
LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.
To change the LTO setting when building locally:
- If building with
make, specify WK_LTO_MODE={none,thin,full} on the command line. - If building with
build-webkit, specify --lto-mode={none,thin,full} on the command line. - If building with
build-root, specify --lto={none,thin,full} on the command line. - If building with Xcode, create a LocalOverrides.xcconfig file at the top level of your repository directory (if needed) and define WK_LTO_MODE to full, thin, or none.
- Configurations/Base.xcconfig:
Source/WebCore:
Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.
LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.
Removed the conditionals that disabled LTO on 32-bit systems since we
no longer build for those.
To change the LTO setting when building locally:
- If building with
make, specify WK_LTO_MODE={none,thin,full} on the command line. - If building with
build-webkit, specify --lto-mode={none,thin,full} on the command line. - If building with
build-root, specify --lto={none,thin,full} on the command line. - If building with Xcode, create a LocalOverrides.xcconfig file at the top level of your repository directory (if needed) and define WK_LTO_MODE to full, thin, or none.
No new tests since there should be no observable behavior difference.
- Configurations/Base.xcconfig:
Source/WebCore/PAL:
Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.
LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.
Removed the conditionals that disabled LTO on 32-bit systems since we
no longer build for those.
To change the LTO setting when building locally:
- If building with
make, specify WK_LTO_MODE={none,thin,full} on the command line. - If building with
build-webkit, specify --lto-mode={none,thin,full} on the command line. - If building with
build-root, specify --lto={none,thin,full} on the command line. - If building with Xcode, create a LocalOverrides.xcconfig file at the top level of your repository directory (if needed) and define WK_LTO_MODE to full, thin, or none.
- Configurations/Base.xcconfig:
Source/WebInspectorUI:
Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.
LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.
To change the LTO setting when building locally:
- If building with
make, specify WK_LTO_MODE={none,thin,full} on the command line. - If building with
build-webkit, specify --lto-mode={none,thin,full} on the command line. - If building with
build-root, specify --lto={none,thin,full} on the command line. - If building with Xcode, create a LocalOverrides.xcconfig file at the top level of your repository directory (if needed) and define WK_LTO_MODE to full, thin, or none.
- Configurations/Base.xcconfig:
Source/WebKit:
Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.
LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.
To change the LTO setting when building locally:
- If building with
make, specify WK_LTO_MODE={none,thin,full} on the command line. - If building with
build-webkit, specify --lto-mode={none,thin,full} on the command line. - If building with
build-root, specify --lto={none,thin,full} on the command line. - If building with Xcode, create a LocalOverrides.xcconfig file at the top level of your repository directory (if needed) and define WK_LTO_MODE to full, thin, or none.
- Configurations/Base.xcconfig:
Source/WebKitLegacy/mac:
Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.
LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.
To change the LTO setting when building locally:
- If building with
make, specify WK_LTO_MODE={none,thin,full} on the command line. - If building with
build-webkit, specify --lto-mode={none,thin,full} on the command line. - If building with
build-root, specify --lto={none,thin,full} on the command line. - If building with Xcode, create a LocalOverrides.xcconfig file at the top level of your repository directory (if needed) and define WK_LTO_MODE to full, thin, or none.
- Configurations/Base.xcconfig:
Source/WTF:
Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.
LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.
To change the LTO setting when building locally:
- If building with
make, specify WK_LTO_MODE={none,thin,full} on the command line. - If building with
build-webkit, specify --lto-mode={none,thin,full} on the command line. - If building with
build-root, specify --lto={none,thin,full} on the command line. - If building with Xcode, create a LocalOverrides.xcconfig file at the top level of your repository directory (if needed) and define WK_LTO_MODE to full, thin, or none.
- Configurations/Base.xcconfig:
- 11:49 AM Changeset in webkit [243395] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed build fix after r243388.
- WebProcess/WebProcess.h:
- 11:19 AM Changeset in webkit [243394] by
-
- 7 edits in tags/Safari-608.1.11.1/Source
Versioning.
- 11:14 AM Changeset in webkit [243393] by
-
- 1 copy in tags/Safari-608.1.11.1
New tag.
- 11:12 AM Changeset in webkit [243392] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Fix sandbox violation
https://bugs.webkit.org/show_bug.cgi?id=196153
<rdar://problem/49123855>
Reviewed by Brent Fulgham.
The sandbox on macOS is blocking the mach lookup.
- WebProcess/com.apple.WebProcess.sb.in:
- 10:59 AM Changeset in webkit [243391] by
-
- 4 edits1 add in trunk
Placate exception check validation in genericTypedArrayViewProtoFuncLastIndexOf().
https://bugs.webkit.org/show_bug.cgi?id=196154
<rdar://problem/49145307>
Reviewed by Filip Pizlo.
JSTests:
Also added @ runDefault constraint to web-assembly-link-error-exception-check.js.
There's no need to run this test on more than 1 test configuration.
- stress/typed-array-lastIndexOf-exception-check.js: Added.
- stress/web-assembly-link-error-exception-check.js:
Source/JavaScriptCore:
- runtime/JSGenericTypedArrayViewPrototypeFunctions.h:
(JSC::genericTypedArrayViewProtoFuncLastIndexOf):
- 10:57 AM Changeset in webkit [243390] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, fix the build with recent SDKs.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(stringForSSLProtocol):
- 10:43 AM Changeset in webkit [243389] by
-
- 3 edits in trunk/Source/bmalloc
[BMalloc] No need to delay deallocating chunks based on recent use
https://bugs.webkit.org/show_bug.cgi?id=196121
Reviewed by Mark Lam.
The "used since last scavenge" logic is not needed for small chunks since their memory isn't decommitted directly.
We can deallocate small chunks immediately as that adds them to the LargeRange free list. That free list employs the
"used since last scavenge" logic before the scavenger decommits the backing memory.
- bmalloc/Chunk.h:
(bmalloc::Chunk::usedSinceLastScavenge): Deleted.
(bmalloc::Chunk::clearUsedSinceLastScavenge): Deleted.
(bmalloc::Chunk::setUsedSinceLastScavenge): Deleted.
- bmalloc/Heap.cpp:
(bmalloc::Heap::scavenge):
(bmalloc::Heap::allocateSmallPage):
- 10:40 AM Changeset in webkit [243388] by
-
- 7 edits in trunk/Source/WebKit
Implement WebProcess freezer opt-in completely on WebContent process side
https://bugs.webkit.org/show_bug.cgi?id=196149
Reviewed by Brady Eidson.
Implement WebProcess freezer opt-in completely on WebContent process side, we do not need
to involve the UIProcess with this and rely on IPC which may be fragile.
In the future, we may want to set freezable state from the UIProcess when the API supports
it. We can move the logic to be fully on the UIProcess side then. In the mean time, it is
likely best not to rely on IPC and process coordination for this.
- UIProcess/WebProcessProxy.cpp:
(WebKit::globalPageMap):
(WebKit::WebProcessProxy::WebProcessProxy):
(WebKit::WebProcessProxy::setIsInProcessCache):
(WebKit::WebProcessProxy::markIsNoLongerInPrewarmedPool):
(WebKit::WebProcessProxy::didFinishLaunching):
(WebKit::WebProcessProxy::validateFreezerStatus): Deleted.
- UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::removeProvisionalPageProxy):
(WebKit::WebProcessProxy::WebPageProxyMap::WebPageProxyMap): Deleted.
(WebKit::WebProcessProxy::WebPageProxyMap::size const): Deleted.
(WebKit::WebProcessProxy::WebPageProxyMap::values): Deleted.
(WebKit::WebProcessProxy::WebPageProxyMap::values const): Deleted.
(WebKit::WebProcessProxy::WebPageProxyMap::begin): Deleted.
(WebKit::WebProcessProxy::WebPageProxyMap::end): Deleted.
(WebKit::WebProcessProxy::WebPageProxyMap::get): Deleted.
(WebKit::WebProcessProxy::WebPageProxyMap::contains const): Deleted.
(WebKit::WebProcessProxy::WebPageProxyMap::isEmpty const): Deleted.
(WebKit::WebProcessProxy::WebPageProxyMap::set): Deleted.
(WebKit::WebProcessProxy::WebPageProxyMap::take): Deleted.
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setIsInProcessCache):
(WebKit::WebProcess::markIsNoLongerPrewarmed):
(WebKit::WebProcess::actualPrepareToSuspend):
(WebKit::WebProcess::setFreezable): Deleted.
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::updateProcessName):
(WebKit::WebProcess::shouldFreezeOnSuspension const):
(WebKit::WebProcess::updateFreezerStatus):
- 10:40 AM Changeset in webkit [243387] by
-
- 2 edits in trunk/Tools
[Flatpak] Manifest expanding fails for qt WPE extension
https://bugs.webkit.org/show_bug.cgi?id=196148
Patch by Philippe Normand <pnormand@igalia.com> on 2019-03-22
Reviewed by Alex Christensen.
- flatpak/flatpakutils.py:
(expand_submodules_recurse): The last recurse manifest expand
iteration might lead to a single module so take it into account
and don't try to recurse further.
- 10:21 AM Changeset in webkit [243386] by
-
- 3 edits1 add in trunk
Placate exception check validation in constructJSWebAssemblyLinkError().
https://bugs.webkit.org/show_bug.cgi?id=196152
<rdar://problem/49145257>
Reviewed by Michael Saboff.
JSTests:
- stress/web-assembly-link-error-exception-check.js: Added.
Source/JavaScriptCore:
- wasm/js/WebAssemblyLinkErrorConstructor.cpp:
(JSC::constructJSWebAssemblyLinkError):
- 10:02 AM Changeset in webkit [243385] by
-
- 2 edits in trunk/Tools
[ iOS Simulator] REGRESSION (r241821) Layout Test platform/ipad/fast/viewport/viewport-unchanged-by-minimum-effective-width-if-not-ignore-meta-viewport.html is a flaky failure on bots
https://bugs.webkit.org/show_bug.cgi?id=195348
<rdar://problem/48622090>
Reviewed by Alex Christensen.
Make sure webView.configuration.preferences._shouldIgnoreMetaViewport gets reset
to NO when test.options().shouldIgnoreMetaViewport is false.
- WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformConfigureViewForTest):
- 10:01 AM Changeset in webkit [243384] by
-
- 23 edits1 add in trunk
Prewarmed processes should be usable with any website data store
https://bugs.webkit.org/show_bug.cgi?id=196104
Reviewed by Alex Christensen.
Source/WebKit:
Split WebsiteDataStore-specific data out of WebProcessCreationParameters and into a new
WebProcessDataStoreParameters struct so that we do not need a WebsiteDataStore in order
to lauch and initialize a WebProcess. When the process finally gets used and we thus
know which WebsiteDataStore they will be used for, we send the WebProcessDataStoreParameters
to the process to that it can do its data store-specific initialization.
This allows prewarmed processes not not have a WebsiteDataStore assocated with them. They
can then be used for any WebsiteDataStore when we need them.
This is also used by our dummy WebProcessProxy since it does not have a backing process and
thus has no associated WebsiteDataStore.
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- Shared/WebProcessDataStoreParameters.h: Added.
(WebKit::WebProcessDataStoreParameters::encode const):
(WebKit::WebProcessDataStoreParameters::decode):
- UIProcess/API/C/WKContext.cpp:
(WKContextWarmInitialProcess):
- UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _warmInitialProcess]):
- UIProcess/ServiceWorkerProcessProxy.cpp:
(WebKit::ServiceWorkerProcessProxy::ServiceWorkerProcessProxy):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::notifyProcessPoolToPrewarm):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::tryTakePrewarmedProcess):
(WebKit::WebProcessPool::sendWebProcessDataStoreParameters):
(WebKit::WebProcessPool::initializeNewWebProcess):
(WebKit::WebProcessPool::prewarmProcess):
(WebKit::WebProcessPool::processForRegistrableDomain):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::didReachGoodTimeToPrewarm):
- UIProcess/WebProcessPool.h:
(WebKit::WebProcessPool::sendToOneProcess):
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::create):
(WebKit::WebProcessProxy::WebProcessProxy):
(WebKit::WebProcessProxy::setWebsiteDataStore):
(WebKit::WebProcessProxy::addExistingWebPage):
- UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::websiteDataStore const):
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/MediaCache/WebMediaKeyStorageManager.cpp:
(WebKit::WebMediaKeyStorageManager::setWebsiteDataStore):
- WebProcess/MediaCache/WebMediaKeyStorageManager.h:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::setWebsiteDataStoreParameters):
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
- WebProcess/WebProcessSupplement.h:
(WebKit::WebProcessSupplement::initialize):
(WebKit::WebProcessSupplement::setWebsiteDataStore):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::platformSetWebsiteDataStoreParameters):
- WebProcess/win/WebProcessWin.cpp:
(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::platformSetWebsiteDataStoreParameters):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessPreWarming.mm:
(runInitialWarmedProcessUsedTest):
(TEST):
- 9:54 AM Changeset in webkit [243383] by
-
- 16 edits in trunk
Unreviewed, rolling out r243356.
Causes assertion failures with WebGL layout tests on macOS and
iOS.
Reverted changeset:
"Web Inspector: Safari Canvas Inspector seems to show the
canvas being rendered twice per frame."
https://bugs.webkit.org/show_bug.cgi?id=196082
https://trac.webkit.org/changeset/243356
- 9:42 AM Changeset in webkit [243382] by
-
- 2 edits in trunk/Source/WTF
Fix the build after r243354
- wtf/Platform.h:
- 9:38 AM Changeset in webkit [243381] by
-
- 3 edits in trunk/Source/WebKit
REGRESSION (r242687): Flicker when pinch-zooming pages in macOS Safari
https://bugs.webkit.org/show_bug.cgi?id=196126
rdar://problem/49095791
Reviewed by Antti Koivisto.
The scrolling tree doesn't have an accurate picture of the main view's scroll position
during pinch-zooming, so don't have it apply layer positions if a transient zoom is
in progress.
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
(WebKit::TiledCoreAnimationDrawingArea::applyTransientZoomToPage):
- 9:28 AM Changeset in webkit [243380] by
-
- 12 edits2 adds in trunk
Handle UI side hit testing for ScrollPositioningBehavior::Stationary positioned nodes
https://bugs.webkit.org/show_bug.cgi?id=196100
<rdar://problem/49117933>
Reviewed by Simon Fraser.
Source/WebCore:
Test: fast/scrolling/ios/overflow-scroll-overlap-6.html
- page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::commitTreeState):
- page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::positionedNodesWithRelatedOverflow):
Add a separate map of positioned node ids for easy access.
- page/scrolling/cocoa/ScrollingTreePositionedNode.h:
(WebCore::ScrollingTreePositionedNode::scrollPositioningBehavior const):
(WebCore::ScrollingTreePositionedNode::relatedOverflowScrollingNodes const):
- page/scrolling/cocoa/ScrollingTreePositionedNode.mm:
(WebCore::ScrollingTreePositionedNode::commitStateBeforeChildren):
Source/WebKit:
Test: fast/scrolling/ios/overflow-scroll-overlap-6.html
- UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h:
(WebKit::RemoteLayerTreeNode::relatedScrollContainerIDs const):
(WebKit::RemoteLayerTreeNode::relatedScrollContainerPositioningBehavior const):
Make more generic and save the associated positioning behavior.
(WebKit::RemoteLayerTreeNode::nonAncestorScrollContainerIDs const): Deleted.
(WebKit::RemoteLayerTreeNode::addNonAncestorScrollContainerID): Deleted.
(WebKit::RemoteLayerTreeNode::clearNonAncestorScrollContainerIDs): Deleted.
- UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm:
(WebKit::RemoteLayerTreeNode::setRelatedScrollContainerBehaviorAndIDs):
- UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
- UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:
(WebKit::isScrolledBy):
Stationary relationship means the layer won't scroll the scroller.
- UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:
(WebKit::RemoteScrollingCoordinatorProxy::establishLayerTreeScrollingRelations):
LayoutTests:
- fast/scrolling/ios/overflow-scroll-overlap-6-expected.txt: Added.
- fast/scrolling/ios/overflow-scroll-overlap-6.html: Added.
- 9:27 AM Changeset in webkit [243379] by
-
- 5 edits in trunk/Source/WebKit
REGRESSION (r243094): ePub files do not render or open in Books
https://bugs.webkit.org/show_bug.cgi?id=196119
<rdar://problem/49121686>
Reviewed by Brady Eidson.
Do not delay the WebProcess launch until a load when contructing a web view and the client
may observe when its injected bundle is loaded via WKProcessGroupDelegate's
didCreateConnectionToWebProcessPlugIn.
- UIProcess/API/Cocoa/WKProcessGroup.mm:
(-[WKProcessGroup setDelegate:]):
- UIProcess/WebInspectorUtilities.cpp:
(WebKit::inspectorProcessPool):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createWebPage):
- UIProcess/WebProcessPool.h:
- 9:03 AM Changeset in webkit [243378] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r243094): Automation: browser crash in WebAutomationSession::exitFullscreenWindowForPage()
https://bugs.webkit.org/show_bug.cgi?id=196140
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2019-03-22
Reviewed by Chris Dumez.
Since r243094, the WebPageProxy fullscreen manager is not created in the constructor, but once the page has a
process launched.
- UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::exitFullscreenWindowForPage): Null check WebPageProxy::fullScreenManager() before
using it.
- 8:54 AM Changeset in webkit [243377] by
-
- 1 edit3 deletes in trunk/LayoutTests
Unreviewed test gardening of plugin tests
https://bugs.webkit.org/show_bug.cgi?id=196150
For reasons unknown, my machine and bots produce different results for these plug-in tests.
My machine behaves like the test plug-in does not exist.
- platform/mac-wk1/compositing/plugins/composited-plugin-expected.txt: Removed.
- platform/mac-wk1/compositing/plugins/no-backing-store-expected.txt: Removed.
- platform/mac-wk1/compositing/plugins/small-to-large-composited-plugin-expected.txt: Removed.
- 8:45 AM Changeset in webkit [243376] by
-
- 140 edits in trunk/Source
Change macosx() to macos() in WK_API... and JSC_API... macros.
https://bugs.webkit.org/show_bug.cgi?id=196106
Reviewed by Brian Burg.
Source/JavaScriptCore:
- API/JSBasePrivate.h:
- API/JSContext.h:
- API/JSContextPrivate.h:
- API/JSContextRef.h:
- API/JSContextRefInternal.h:
- API/JSContextRefPrivate.h:
- API/JSManagedValue.h:
- API/JSObjectRef.h:
- API/JSObjectRefPrivate.h:
- API/JSRemoteInspector.h:
- API/JSScript.h:
- API/JSTypedArray.h:
- API/JSValue.h:
- API/JSValuePrivate.h:
- API/JSValueRef.h:
- API/JSVirtualMachinePrivate.h:
Source/WebCore/PAL:
- pal/spi/cocoa/NSTouchBarSPI.h:
Source/WebKit:
- Shared/API/Cocoa/WKBrowsingContextHandle.h:
- Shared/API/Cocoa/WKDragDestinationAction.h:
- Shared/API/Cocoa/WKMain.h:
- Shared/API/Cocoa/_WKFrameHandle.h:
- Shared/API/Cocoa/_WKHitTestResult.h:
- Shared/API/Cocoa/_WKNSWindowExtras.h:
- Shared/API/Cocoa/_WKRemoteObjectInterface.h:
- Shared/API/Cocoa/_WKRemoteObjectRegistry.h:
- Shared/API/Cocoa/_WKRenderingProgressEvents.h:
- Shared/API/Cocoa/_WKSameDocumentNavigationType.h:
- UIProcess/API/C/WKPage.h:
- UIProcess/API/Cocoa/NSAttributedString.h:
- UIProcess/API/Cocoa/WKBackForwardList.h:
- UIProcess/API/Cocoa/WKBackForwardListItem.h:
- UIProcess/API/Cocoa/WKBackForwardListItemPrivate.h:
- UIProcess/API/Cocoa/WKBrowsingContextLoadDelegate.h:
- UIProcess/API/Cocoa/WKContentRuleList.h:
- UIProcess/API/Cocoa/WKContentRuleListStore.h:
- UIProcess/API/Cocoa/WKError.h:
- UIProcess/API/Cocoa/WKErrorPrivate.h:
- UIProcess/API/Cocoa/WKFrameInfo.h:
- UIProcess/API/Cocoa/WKFrameInfoPrivate.h:
- UIProcess/API/Cocoa/WKHTTPCookieStore.h:
- UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h:
- UIProcess/API/Cocoa/WKNavigation.h:
- UIProcess/API/Cocoa/WKNavigationAction.h:
- UIProcess/API/Cocoa/WKNavigationActionPrivate.h:
- UIProcess/API/Cocoa/WKNavigationDelegate.h:
- UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
- UIProcess/API/Cocoa/WKNavigationResponse.h:
- UIProcess/API/Cocoa/WKOpenPanelParameters.h:
- UIProcess/API/Cocoa/WKOpenPanelParametersPrivate.h:
- UIProcess/API/Cocoa/WKPreferences.h:
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
- UIProcess/API/Cocoa/WKProcessPool.h:
- UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
- UIProcess/API/Cocoa/WKScriptMessage.h:
- UIProcess/API/Cocoa/WKSecurityOrigin.h:
- UIProcess/API/Cocoa/WKSnapshotConfiguration.h:
- UIProcess/API/Cocoa/WKUIDelegate.h:
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
- UIProcess/API/Cocoa/WKURLSchemeHandler.h:
- UIProcess/API/Cocoa/WKURLSchemeTask.h:
- UIProcess/API/Cocoa/WKURLSchemeTaskPrivate.h:
- UIProcess/API/Cocoa/WKUserContentController.h:
- UIProcess/API/Cocoa/WKUserContentControllerPrivate.h:
- UIProcess/API/Cocoa/WKUserScript.h:
- UIProcess/API/Cocoa/WKUserScriptPrivate.h:
- UIProcess/API/Cocoa/WKViewPrivate.h:
- UIProcess/API/Cocoa/WKWebView.h:
- UIProcess/API/Cocoa/WKWebViewConfiguration.h:
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/API/Cocoa/WKWebsiteDataRecord.h:
- UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h:
- UIProcess/API/Cocoa/WKWebsiteDataStore.h:
- UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
- UIProcess/API/Cocoa/WKWindowFeatures.h:
- UIProcess/API/Cocoa/WKWindowFeaturesPrivate.h:
- UIProcess/API/Cocoa/_WKActivatedElementInfo.h:
- UIProcess/API/Cocoa/_WKApplicationManifest.h:
- UIProcess/API/Cocoa/_WKAttachment.h:
- UIProcess/API/Cocoa/_WKAutomationDelegate.h:
- UIProcess/API/Cocoa/_WKAutomationSession.h:
- UIProcess/API/Cocoa/_WKAutomationSessionConfiguration.h:
- UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h:
- UIProcess/API/Cocoa/_WKContextMenuElementInfo.h:
- UIProcess/API/Cocoa/_WKDiagnosticLoggingDelegate.h:
- UIProcess/API/Cocoa/_WKDownload.h:
- UIProcess/API/Cocoa/_WKDownloadDelegate.h:
- UIProcess/API/Cocoa/_WKElementAction.h:
- UIProcess/API/Cocoa/_WKExperimentalFeature.h:
- UIProcess/API/Cocoa/_WKFindOptions.h:
- UIProcess/API/Cocoa/_WKFocusedElementInfo.h:
- UIProcess/API/Cocoa/_WKFormInputSession.h:
- UIProcess/API/Cocoa/_WKFullscreenDelegate.h:
- UIProcess/API/Cocoa/_WKGeolocationCoreLocationProvider.h:
- UIProcess/API/Cocoa/_WKInspector.h:
- UIProcess/API/Cocoa/_WKInspectorWindow.h:
- UIProcess/API/Cocoa/_WKInternalDebugFeature.h:
- UIProcess/API/Cocoa/_WKLayoutMode.h:
- UIProcess/API/Cocoa/_WKLinkIconParameters.h:
- UIProcess/API/Cocoa/_WKOverlayScrollbarStyle.h:
- UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
- UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.h:
- UIProcess/API/Cocoa/_WKSessionState.h:
- UIProcess/API/Cocoa/_WKTextInputContext.h:
- UIProcess/API/Cocoa/_WKThumbnailView.h:
- UIProcess/API/Cocoa/_WKUserContentExtensionStore.h:
- UIProcess/API/Cocoa/_WKUserContentExtensionStorePrivate.h:
- UIProcess/API/Cocoa/_WKUserContentFilter.h:
- UIProcess/API/Cocoa/_WKUserContentFilterPrivate.h:
- UIProcess/API/Cocoa/_WKUserContentWorld.h:
- UIProcess/API/Cocoa/_WKUserInitiatedAction.h:
- UIProcess/API/Cocoa/_WKUserStyleSheet.h:
- UIProcess/API/Cocoa/_WKVisitedLinkStore.h:
- UIProcess/API/Cocoa/_WKWebsiteDataSize.h:
- UIProcess/API/Cocoa/_WKWebsiteDataStore.h:
- UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
- UIProcess/API/Cocoa/_WKWebsiteDataStoreDelegate.h:
- UIProcess/API/Cocoa/_WKWebsitePolicies.h:
- WebProcess/API/Cocoa/WKWebProcess.h:
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInEditingDelegate.h:
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h:
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInHitTestResult.h:
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.h:
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandlePrivate.h:
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInPageGroup.h:
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInRangeHandle.h:
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.h:
- WebProcess/InjectedBundle/API/mac/WKDOMDocument.h:
- WebProcess/InjectedBundle/API/mac/WKDOMElement.h:
- WebProcess/InjectedBundle/API/mac/WKDOMNode.h:
- WebProcess/InjectedBundle/API/mac/WKDOMRange.h:
- WebProcess/InjectedBundle/API/mac/WKDOMText.h:
- WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.h:
- WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h:
- WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.h:
- WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h:
- 6:49 AM Changeset in webkit [243375] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed build fix.
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
- 6:46 AM Changeset in webkit [243374] by
-
- 2 edits in trunk/Source/WebCore
[Web Animations] com.apple.WebKit.WebContent.Development at com.apple.WebCore: WebCore::WebAnimation::timeToNextTick const + 757
https://bugs.webkit.org/show_bug.cgi?id=196125
<rdar://problem/46520059>
Patch by Antoine Quint <Antoine Quint> on 2019-03-22
Reviewed by Dean Jackson.
Because of floating point math in playState() that wouldn't account for timeEpsilon, we would get into a state where the animation phase
was "after" but the play state was "running" when the current time was about a microsecond away from the active time boundary. This meant
that the early return statement in WebAnimation::timeToNextTick() would not be hit while we would not handle the possibility of being in
the "after" phase in the rest of the function, therefore eventually hitting the ASSERT_NOT_REACHED() at the end of the function.
We now account for timeEpsilon in playState() and correctly report we're in the "finished" play state when in the "after" phase also.
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::playState const):
- 5:56 AM Changeset in webkit [243373] by
-
- 8 edits in trunk/Tools
Back out local changes to Alex's Subversion working directory
They were accidentally committed.
- Scripts/webkitpy/common/system/abstractexecutive.py:
(AbstractExecutive.wait_newest):
- Scripts/webkitpy/common/system/executive.py:
(Executive.running_pids):
- Scripts/webkitpy/common/system/executive_mock.py:
(MockExecutive.running_pids):
- Scripts/webkitpy/common/system/executive_unittest.py:
(ExecutiveTest.serial_test_running_pids):
- Scripts/webkitpy/port/darwin.py:
(DarwinPort.check_for_leaks):
- Scripts/webkitpy/port/leakdetector.py:
(LeakDetector.check_for_leaks):
- This was the hack attached to Bug 193772.
- WebKitTestRunner/mac/WebKitTestRunnerEvent.mm:
(+[WebKitTestRunnerEvent mouseLocation]):
- This works around a crash on an internal build.
- 5:22 AM Changeset in webkit [243372] by
-
- 5 edits6 adds in trunk
[MSE][GStreamer] Don't construct segments on PlaybackPipeline::flush
https://bugs.webkit.org/show_bug.cgi?id=195867
Reviewed by Xabier Rodriguez-Calvar.
LayoutTests/imported/w3c:
These tests check that video and audio are roughly in sync with each
other and with the reported player position during MSE playback.
- web-platform-tests/media-source/mediasource-correct-frames-after-reappend-expected.txt: Added.
- web-platform-tests/media-source/mediasource-correct-frames-after-reappend.html: Added.
- web-platform-tests/media-source/mediasource-correct-frames-expected.txt: Added.
- web-platform-tests/media-source/mediasource-correct-frames.html: Added.
- web-platform-tests/media-source/mp4/test-boxes-audio.mp4: Added.
- web-platform-tests/media-source/mp4/test-boxes-video.mp4: Added.
Source/WebCore:
The previous approach did not really work for flushes on only one
branch, as setting reset-time in FLUSH_STOP affects the running time
of the entire pipeline, causing timing issues in the other branch.
Since it's preferable not to interfere with the other branch if
possible, setting reset-time to FALSE fixes that problem.
Also, it's not necessary to fabricate a segment. Since we are not
seeking, only the base needs to be adjusted, and gstbasesrc already
handles this correctly by default.
This fixes an audio/video synchronization bug in YT when some
automatic quality changes occur.
Tests: imported/w3c/web-platform-tests/media-source/mediasource-correct-frames-after-reappend.html
imported/w3c/web-platform-tests/media-source/mediasource-correct-frames.html
- platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:
(WebCore::PlaybackPipeline::flush):
LayoutTests:
Drawing an MSE video in a canvas seems to be failing in Mac. That
functionality is necessary for the tests introduced with this patch,
therefore they fail there. Marking them as Skip.
- platform/mac/TestExpectations:
- 3:03 AM Changeset in webkit [243371] by
-
- 3 edits in trunk/Source/WebCore
Move implementation of mathsize to a single place
https://bugs.webkit.org/show_bug.cgi?id=196129
Patch by Frederic Wang <fwang@igalia.com> on 2019-03-22
Reviewed by Ryosuke Niwa.
Currently, mathsize is partially implemented in the MathML UA stylesheet and partially
implemented in the MathML DOM classes using addPropertyToPresentationAttributeStyle. This
patch moves the whole implementation to the latter place, so that it's easier to understand.
It will also allow to conditionally disable the mathsize values removed from MathML Core.
No new tests, already covered by existing tests.
- css/mathml.css: Remove mathsize rules.
- mathml/MathMLElement.cpp:
(WebCore::convertMathSizeIfNeeded): Convert "small", "normal" and "big" to the values that
used to be in the UA stylesheet. Also add a comment that we don't support all MathML lengths.
(WebCore::MathMLElement::collectStyleForPresentationAttribute): Don't skip "small", "normal"
or "big".
(WebCore::convertToPercentageIfNeeded): Renamed to convertMathSizeIfNeeded.
- 2:40 AM Changeset in webkit [243370] by
-
- 9 edits in trunk
Fix the build after r243354
https://bugs.webkit.org/show_bug.cgi?id=196138
<rdar://problem/49145951>
- wtf/Platform.h:
- TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:
(TEST):
- TestWebKitAPI/ios/UIKitSPI.h:
- Platform/spi/ios/UIKitSPI.h:
- Shared/DocumentEditingContext.mm:
(WebKit::DocumentEditingContext::toPlatformContext):
- UIProcess/ios/WKContentViewInteraction.mm:
- 12:54 AM Changeset in webkit [243369] by
-
- 7 edits in trunk/Source
Versioning.
- 12:53 AM Changeset in webkit [243368] by
-
- 1 copy in tags/Safari-608.1.12
Tag Safari-608.1.12.
- 12:39 AM Changeset in webkit [243367] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, build fix for Windows
https://bugs.webkit.org/show_bug.cgi?id=196122
- runtime/FunctionExecutable.cpp:
- 12:28 AM Changeset in webkit [243366] by
-
- 2 edits in trunk/JSTests
Skip tests running out of memory on ARM/MIPS
https://bugs.webkit.org/show_bug.cgi?id=196131
Unreviewed. Skip test if memory is limited.
- microbenchmarks/put-by-val-direct-large-index.js:
- 12:14 AM Changeset in webkit [243365] by
-
- 16 edits2 copies in trunk/Source/JavaScriptCore
[JSC] Shrink sizeof(FunctionExecutable) by 16bytes
https://bugs.webkit.org/show_bug.cgi?id=196122
Reviewed by Saam Barati.
This patch reduces sizeof(FunctionExecutable) by 16 bytes.
- ScriptExecutable::m_numParametersForCall and ScriptExecutable::m_numParametersForConstruct are not used in a meaningful way. Removed them.
- ScriptExecutable::m_lastLine and ScriptExecutable::m_endColumn can be calculated from UnlinkedFunctionExecutable. So FunctionExecutable does not need to hold it. This patch adds GlobalExecutable, which are non-function ScriptExecutables, and move m_lastLine and m_endColumn to this class.
- FunctionExecutable still needs to have the feature overriding m_lastLine and m_endColumn. We move overridden data in FunctionExecutable::RareData.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::UnlinkedFunctionExecutable::link):
- runtime/EvalExecutable.cpp:
(JSC::EvalExecutable::EvalExecutable):
- runtime/EvalExecutable.h:
- runtime/FunctionExecutable.cpp:
(JSC::FunctionExecutable::FunctionExecutable):
(JSC::FunctionExecutable::ensureRareDataSlow):
(JSC::FunctionExecutable::overrideInfo):
- runtime/FunctionExecutable.h:
- runtime/GlobalExecutable.cpp: Copied from Source/JavaScriptCore/tools/FunctionOverrides.h.
- runtime/GlobalExecutable.h: Copied from Source/JavaScriptCore/tools/FunctionOverrides.h.
(JSC::GlobalExecutable::lastLine const):
(JSC::GlobalExecutable::endColumn const):
(JSC::GlobalExecutable::recordParse):
(JSC::GlobalExecutable::GlobalExecutable):
- runtime/ModuleProgramExecutable.cpp:
(JSC::ModuleProgramExecutable::ModuleProgramExecutable):
- runtime/ModuleProgramExecutable.h:
- runtime/ProgramExecutable.cpp:
(JSC::ProgramExecutable::ProgramExecutable):
- runtime/ProgramExecutable.h:
- runtime/ScriptExecutable.cpp:
(JSC::ScriptExecutable::clearCode):
(JSC::ScriptExecutable::installCode):
(JSC::ScriptExecutable::hasClearableCode const):
(JSC::ScriptExecutable::newCodeBlockFor):
(JSC::ScriptExecutable::typeProfilingEndOffset const):
(JSC::ScriptExecutable::recordParse):
(JSC::ScriptExecutable::lastLine const):
(JSC::ScriptExecutable::endColumn const):
- runtime/ScriptExecutable.h:
(JSC::ScriptExecutable::hasJITCodeForCall const):
(JSC::ScriptExecutable::hasJITCodeForConstruct const):
(JSC::ScriptExecutable::recordParse):
(JSC::ScriptExecutable::lastLine const): Deleted.
(JSC::ScriptExecutable::endColumn const): Deleted.
- tools/FunctionOverrides.h: