Timeline
Aug 23, 2018:
- 11:38 PM Changeset in webkit [235275] by
-
- 7 edits in tags/Safari-607.1.3/Source
Versioning.
- 10:51 PM Changeset in webkit [235274] by
-
- 2 edits in trunk/LayoutTests
fast/files/blob-network-process-crash.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=188911
Reviewed by Saam Barati.
The flakiness appears to come from the web content process not getting notified of
the termination of the network process in time. Wait for the network process to
relaunch after terminating one by continuously fetch'ing itself with an increasing
time interval until it succeeds.
- fast/files/blob-network-process-crash.html:
- 9:55 PM Inspecting the GC heap edited by
- (diff)
- 9:55 PM Changeset in webkit [235273] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Color picker: can't enter decimal numbers for opacity
https://bugs.webkit.org/show_bug.cgi?id=187026
<rdar://problem/41446500>
Reviewed by Brian Burg.
After every "input" event, we update the
colorvalue of theWI.ColorPickerbased on a
generated string using the values of the various <input>. The issue with this approach is
that adding a decimal point (e.g. "0.") would still be construed as 0, meaning that the
color wouldn't change and would instead be reset back to it's old value. This patch adds an
early return if the newly generated color has the same value as the current color, thereby
meaning that thecolorwouldn't change when changing from "0" to "0.".
- UserInterface/Views/ColorPicker.js:
(WI.ColorPicker):
(WI.ColorPicker.createColorInput):
(WI.ColorPicker.prototype._handleColorInputInput):
- 9:51 PM Inspecting the GC heap edited by
- (diff)
- 9:38 PM Inspecting the GC heap edited by
- (diff)
- 9:36 PM Inspecting the GC heap edited by
- (diff)
- 9:31 PM Inspecting the GC heap edited by
- (diff)
- 9:22 PM Changeset in webkit [235272] by
-
- 7 edits in branches/safari-606.1.36.10-branch/Source
Versioning.
- 9:10 PM Changeset in webkit [235271] by
-
- 170 edits1 copy5 adds in trunk
Add support for dumping GC heap snapshots, and a viewer
https://bugs.webkit.org/show_bug.cgi?id=186416
Reviewed by Joseph Pecoraro.
Source/JavaScriptCore:
Make a way to dump information about the GC heap that is useful for looking for leaked
or abandoned objects. This dump is obtained (on Apple platforms) via:
notifyutil -p com.apple.WebKit.dumpGCHeap
which writes a JSON file to /tmp which can then be loaded into the viewer in Tools/GCHeapInspector.
This leverages the heap snapshot used by Web Inspector, adding an alternate format for
the snapshot JSON that adds additional data about objects and why they are GC roots.
SlotVisitor maintains a RootMarkReason (via SetRootMarkReasonScope) that allows
the HeapSnapshotBuilder to keep track of why a JSCell was treated as a GC root. For
objects visited via opaque roots, we record the reason why via a new out param to
isReachableFromOpaqueRoots().
HeapSnapshotBuilder is enhanced to produce GCDebuggingSnapshot JSON output. This contains
additional information including the address of the JSCell* and the wrapped object (for
JSDOMWrappers), the root reasons, and for some objects like JSDocument a label which can
be the document URL.
GCDebuggingSnapshots are always full snapshots (previous snapshots are not kept around).
- API/JSAPIWrapperObject.mm:
(JSAPIWrapperObjectHandleOwner::isReachableFromOpaqueRoots):
- API/JSManagedValue.mm:
(JSManagedValueHandleOwner::isReachableFromOpaqueRoots):
- API/glib/JSAPIWrapperObjectGLib.cpp:
(JSAPIWrapperObjectHandleOwner::isReachableFromOpaqueRoots):
- CMakeLists.txt:
- heap/ConservativeRoots.h:
(JSC::ConservativeRoots::size const):
(JSC::ConservativeRoots::size): Deleted.
- heap/Heap.cpp:
(JSC::Heap::addCoreConstraints):
- heap/HeapSnapshotBuilder.cpp:
(JSC::HeapSnapshotBuilder::getNextObjectIdentifier):
(JSC::HeapSnapshotBuilder::HeapSnapshotBuilder):
(JSC::HeapSnapshotBuilder::~HeapSnapshotBuilder):
(JSC::HeapSnapshotBuilder::buildSnapshot):
(JSC::HeapSnapshotBuilder::appendNode):
(JSC::HeapSnapshotBuilder::appendEdge):
(JSC::HeapSnapshotBuilder::setOpaqueRootReachabilityReasonForCell):
(JSC::HeapSnapshotBuilder::setWrappedObjectForCell):
(JSC::HeapSnapshotBuilder::previousSnapshotHasNodeForCell):
(JSC::snapshotTypeToString):
(JSC::rootTypeToString):
(JSC::HeapSnapshotBuilder::setLabelForCell):
(JSC::HeapSnapshotBuilder::descriptionForCell const):
(JSC::HeapSnapshotBuilder::json):
(JSC::HeapSnapshotBuilder::hasExistingNodeForCell): Deleted.
- heap/HeapSnapshotBuilder.h:
- heap/SlotVisitor.cpp:
(JSC::SlotVisitor::appendSlow):
- heap/SlotVisitor.h:
(JSC::SlotVisitor::heapSnapshotBuilder const):
(JSC::SlotVisitor::rootMarkReason const):
(JSC::SlotVisitor::setRootMarkReason):
(JSC::SetRootMarkReasonScope::SetRootMarkReasonScope):
(JSC::SetRootMarkReasonScope::~SetRootMarkReasonScope):
- heap/WeakBlock.cpp:
(JSC::WeakBlock::specializedVisit):
- heap/WeakHandleOwner.cpp:
(JSC::WeakHandleOwner::isReachableFromOpaqueRoots):
- heap/WeakHandleOwner.h:
- runtime/SimpleTypedArrayController.cpp:
(JSC::SimpleTypedArrayController::JSArrayBufferOwner::isReachableFromOpaqueRoots):
- runtime/SimpleTypedArrayController.h:
- tools/JSDollarVM.cpp:
Source/WebCore:
Make a way to dump information about the GC heap that is useful for looking for leaked
or abandoned objects. This dump is obtained (on Apple platforms) via:
notifyutil -p com.apple.WebKit.dumpGCHeap
which writes a JSON file to /tmp which can then be loaded into the viewer in Tools/GCHeapInspector.
This leverages the heap snapshot used by Web Inspector, adding an alternate format for
the snapshot JSON that adds additional data about objects and why they are GC roots.
The generated bindings code is changed to include the output root reason from isReachableFromOpaqueRoots(),
and to implement heapSnapshot() which provides the address of the wrapped object. A new IDL attribute,
CustomHeapSnapshot, is used to allow custom heapSnapshot() implementations for classes like JSDocument
that need to decorate the heap snapshot cell data with things like the document URL.
GCController registers a notifyutil callback which gathers the debug heap snapshot, and dumps it
to a file in /tmp. The file path is printed out to the system log.
- bindings/js/DOMGCOutputConstraint.cpp:
(WebCore::DOMGCOutputConstraint::executeImpl):
- bindings/js/GCController.cpp:
(WebCore::GCController::GCController):
(WebCore::GCController::dumpHeap):
- bindings/js/GCController.h:
- bindings/js/JSCSSRuleListCustom.cpp:
(WebCore::JSCSSRuleListOwner::isReachableFromOpaqueRoots):
- bindings/js/JSCallbackData.cpp:
(WebCore::JSCallbackDataWeak::WeakOwner::isReachableFromOpaqueRoots):
- bindings/js/JSCallbackData.h:
- bindings/js/JSCanvasRenderingContext2DCustom.cpp:
(WebCore::JSCanvasRenderingContext2DOwner::isReachableFromOpaqueRoots):
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSDOMWindow::heapSnapshot):
- bindings/js/JSDeprecatedCSSOMValueCustom.cpp:
(WebCore::JSDeprecatedCSSOMValueOwner::isReachableFromOpaqueRoots):
- bindings/js/JSDocumentCustom.cpp:
(WebCore::JSDocument::heapSnapshot):
- bindings/js/JSMicrotaskCallback.h:
(WebCore::JSMicrotaskCallback::call):
- bindings/js/JSMutationObserverCustom.cpp:
(WebCore::JSMutationObserverOwner::isReachableFromOpaqueRoots):
- bindings/js/JSNavigatorCustom.cpp:
(WebCore::JSNavigator::visitAdditionalChildren):
- bindings/js/JSNodeCustom.cpp:
(WebCore::isReachableFromDOM):
(WebCore::JSNodeOwner::isReachableFromOpaqueRoots):
- bindings/js/JSNodeListCustom.cpp:
(WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):
- bindings/js/JSOffscreenCanvasRenderingContext2DCustom.cpp:
(WebCore::JSOffscreenCanvasRenderingContext2DOwner::isReachableFromOpaqueRoots):
- bindings/js/JSPerformanceObserverCustom.cpp:
(WebCore::JSPerformanceObserverOwner::isReachableFromOpaqueRoots):
- bindings/js/JSPopStateEventCustom.cpp:
- bindings/js/JSTextTrackCueCustom.cpp:
(WebCore::JSTextTrackCueOwner::isReachableFromOpaqueRoots):
- bindings/js/WebCoreTypedArrayController.cpp:
(WebCore::WebCoreTypedArrayController::JSArrayBufferOwner::isReachableFromOpaqueRoots):
- bindings/js/WebCoreTypedArrayController.h:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
- bindings/scripts/IDLAttributes.json:
- bindings/scripts/test/JS/JSInterfaceName.cpp:
(WebCore::JSInterfaceName::heapSnapshot):
(WebCore::JSInterfaceNameOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSInterfaceName.h:
- bindings/scripts/test/JS/JSMapLike.cpp:
(WebCore::JSMapLike::heapSnapshot):
(WebCore::JSMapLikeOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSMapLike.h:
- bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
(WebCore::JSReadOnlyMapLike::heapSnapshot):
(WebCore::JSReadOnlyMapLikeOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSReadOnlyMapLike.h:
- bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::JSTestActiveDOMObject::heapSnapshot):
(WebCore::JSTestActiveDOMObjectOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestActiveDOMObject.h:
- bindings/scripts/test/JS/JSTestCEReactions.cpp:
(WebCore::JSTestCEReactions::heapSnapshot):
(WebCore::JSTestCEReactionsOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestCEReactions.h:
- bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
(WebCore::JSTestCEReactionsStringifier::heapSnapshot):
(WebCore::JSTestCEReactionsStringifierOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestCEReactionsStringifier.h:
- bindings/scripts/test/JS/JSTestCallTracer.cpp:
(WebCore::JSTestCallTracer::heapSnapshot):
(WebCore::JSTestCallTracerOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestCallTracer.h:
- bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
(WebCore::JSTestClassWithJSBuiltinConstructor::heapSnapshot):
(WebCore::JSTestClassWithJSBuiltinConstructorOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h:
- bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::heapSnapshot):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h:
- bindings/scripts/test/JS/JSTestDOMJIT.cpp:
(WebCore::JSTestDOMJIT::heapSnapshot):
- bindings/scripts/test/JS/JSTestDOMJIT.h:
- bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:
(WebCore::JSTestEnabledBySetting::heapSnapshot):
(WebCore::JSTestEnabledBySettingOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestEnabledBySetting.h:
- bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::JSTestEventConstructor::heapSnapshot):
- bindings/scripts/test/JS/JSTestEventConstructor.h:
- bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::JSTestEventTarget::heapSnapshot):
- bindings/scripts/test/JS/JSTestEventTarget.h:
- bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::JSTestException::heapSnapshot):
(WebCore::JSTestExceptionOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestException.h:
- bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::JSTestGenerateIsReachable::heapSnapshot):
(WebCore::JSTestGenerateIsReachableOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
- bindings/scripts/test/JS/JSTestGlobalObject.cpp:
(WebCore::JSTestGlobalObject::heapSnapshot):
(WebCore::JSTestGlobalObjectOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestGlobalObject.h:
- bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:
(WebCore::JSTestIndexedSetterNoIdentifier::heapSnapshot):
(WebCore::JSTestIndexedSetterNoIdentifierOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.h:
- bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:
(WebCore::JSTestIndexedSetterThrowingException::heapSnapshot):
(WebCore::JSTestIndexedSetterThrowingExceptionOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.h:
- bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:
(WebCore::JSTestIndexedSetterWithIdentifier::heapSnapshot):
(WebCore::JSTestIndexedSetterWithIdentifierOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.h:
- bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterface::heapSnapshot):
(WebCore::JSTestInterfaceOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestInterface.h:
- bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
(WebCore::JSTestInterfaceLeadingUnderscore::heapSnapshot):
(WebCore::JSTestInterfaceLeadingUnderscoreOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h:
- bindings/scripts/test/JS/JSTestIterable.cpp:
(WebCore::JSTestIterable::heapSnapshot):
(WebCore::JSTestIterableOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestIterable.h:
- bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::JSTestMediaQueryListListener::heapSnapshot):
(WebCore::JSTestMediaQueryListListenerOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::heapSnapshot):
(WebCore::JSTestNamedAndIndexedSetterNoIdentifierOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:
(WebCore::JSTestNamedAndIndexedSetterThrowingException::heapSnapshot):
(WebCore::JSTestNamedAndIndexedSetterThrowingExceptionOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.h:
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::heapSnapshot):
(WebCore::JSTestNamedAndIndexedSetterWithIdentifierOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructor::heapSnapshot):
(WebCore::JSTestNamedConstructorOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedConstructor.h:
- bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:
(WebCore::JSTestNamedDeleterNoIdentifier::heapSnapshot):
(WebCore::JSTestNamedDeleterNoIdentifierOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:
(WebCore::JSTestNamedDeleterThrowingException::heapSnapshot):
(WebCore::JSTestNamedDeleterThrowingExceptionOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.h:
- bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:
(WebCore::JSTestNamedDeleterWithIdentifier::heapSnapshot):
(WebCore::JSTestNamedDeleterWithIdentifierOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:
(WebCore::JSTestNamedDeleterWithIndexedGetter::heapSnapshot):
(WebCore::JSTestNamedDeleterWithIndexedGetterOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.h:
- bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:
(WebCore::JSTestNamedGetterCallWith::heapSnapshot):
(WebCore::JSTestNamedGetterCallWithOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedGetterCallWith.h:
- bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:
(WebCore::JSTestNamedGetterNoIdentifier::heapSnapshot):
(WebCore::JSTestNamedGetterNoIdentifierOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:
(WebCore::JSTestNamedGetterWithIdentifier::heapSnapshot):
(WebCore::JSTestNamedGetterWithIdentifierOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:
(WebCore::JSTestNamedSetterNoIdentifier::heapSnapshot):
(WebCore::JSTestNamedSetterNoIdentifierOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:
(WebCore::JSTestNamedSetterThrowingException::heapSnapshot):
(WebCore::JSTestNamedSetterThrowingExceptionOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedSetterThrowingException.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
(WebCore::JSTestNamedSetterWithIdentifier::heapSnapshot):
(WebCore::JSTestNamedSetterWithIdentifierOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:
(WebCore::JSTestNamedSetterWithIndexedGetter::heapSnapshot):
(WebCore::JSTestNamedSetterWithIndexedGetterOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::heapSnapshot):
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetterOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp:
(WebCore::JSTestNamedSetterWithOverrideBuiltins::heapSnapshot):
(WebCore::JSTestNamedSetterWithOverrideBuiltinsOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp:
(WebCore::JSTestNamedSetterWithUnforgableProperties::heapSnapshot):
(WebCore::JSTestNamedSetterWithUnforgablePropertiesOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp:
(WebCore::JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins::heapSnapshot):
(WebCore::JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.h:
- bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::JSTestNode::heapSnapshot):
- bindings/scripts/test/JS/JSTestNode.h:
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObj::heapSnapshot):
(WebCore::JSTestObjOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestObj.h:
- bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::JSTestOverloadedConstructors::heapSnapshot):
(WebCore::JSTestOverloadedConstructorsOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
- bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
(WebCore::JSTestOverloadedConstructorsWithSequence::heapSnapshot):
(WebCore::JSTestOverloadedConstructorsWithSequenceOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.h:
- bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
(WebCore::JSTestOverrideBuiltins::heapSnapshot):
(WebCore::JSTestOverrideBuiltinsOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestOverrideBuiltins.h:
- bindings/scripts/test/JS/JSTestPluginInterface.cpp:
(WebCore::JSTestPluginInterface::heapSnapshot):
(WebCore::JSTestPluginInterfaceOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestPluginInterface.h:
- bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
(WebCore::JSTestPromiseRejectionEvent::heapSnapshot):
- bindings/scripts/test/JS/JSTestPromiseRejectionEvent.h:
- bindings/scripts/test/JS/JSTestSerialization.cpp:
(WebCore::JSTestSerialization::heapSnapshot):
(WebCore::JSTestSerializationOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestSerialization.h:
- bindings/scripts/test/JS/JSTestSerializationIndirectInheritance.cpp:
(WebCore::JSTestSerializationIndirectInheritance::heapSnapshot):
- bindings/scripts/test/JS/JSTestSerializationIndirectInheritance.h:
- bindings/scripts/test/JS/JSTestSerializationInherit.cpp:
(WebCore::JSTestSerializationInherit::heapSnapshot):
- bindings/scripts/test/JS/JSTestSerializationInherit.h:
- bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp:
(WebCore::JSTestSerializationInheritFinal::heapSnapshot):
- bindings/scripts/test/JS/JSTestSerializationInheritFinal.h:
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::JSTestSerializedScriptValueInterface::heapSnapshot):
(WebCore::JSTestSerializedScriptValueInterfaceOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
- bindings/scripts/test/JS/JSTestStringifier.cpp:
(WebCore::JSTestStringifier::heapSnapshot):
(WebCore::JSTestStringifierOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestStringifier.h:
- bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:
(WebCore::JSTestStringifierAnonymousOperation::heapSnapshot):
(WebCore::JSTestStringifierAnonymousOperationOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.h:
- bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:
(WebCore::JSTestStringifierNamedOperation::heapSnapshot):
(WebCore::JSTestStringifierNamedOperationOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestStringifierNamedOperation.h:
- bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:
(WebCore::JSTestStringifierOperationImplementedAs::heapSnapshot):
(WebCore::JSTestStringifierOperationImplementedAsOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.h:
- bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:
(WebCore::JSTestStringifierOperationNamedToString::heapSnapshot):
(WebCore::JSTestStringifierOperationNamedToStringOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.h:
- bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:
(WebCore::JSTestStringifierReadOnlyAttribute::heapSnapshot):
(WebCore::JSTestStringifierReadOnlyAttributeOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.h:
- bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:
(WebCore::JSTestStringifierReadWriteAttribute::heapSnapshot):
(WebCore::JSTestStringifierReadWriteAttributeOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.h:
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefs::heapSnapshot):
(WebCore::JSTestTypedefsOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestTypedefs.h:
- dom/Document.idl:
- page/DOMWindow.idl:
Source/WebInspectorUI:
Make a way to dump information about the GC heap that is useful for looking for leaked
or abandoned objects. This dump is obtained (on Apple platforms) via:
notifyutil -p com.apple.WebKit.dumpGCHeap
which writes a JSON file to /tmp which can then be loaded into the viewer in Tools/GCHeapInspector.
This leverages the heap snapshot used by Web Inspector, adding an alternate format for
the snapshot JSON that adds additional data about objects and why they are GC roots.
The generated bindings code is changed to include the output root reason from isReachableFromOpaqueRoots(),
and to implement heapSnapshot() which provides the address of the wrapped object. A new IDL attribute,
CustomHeapSnapshot, is used to allow custom heapSnapshot() implementations for classes like JSDocument
that need to decorate the heap snapshot cell data with things like the document URL.
GCController registers a notifyutil callback which gathers the debug heap snapshot, and dumps it
to a file in /tmp. The file path is printed out to the system log.
- UserInterface/Workers/HeapSnapshot/HeapSnapshot.js:
(HeapSnapshot):
Tools:
Add a viewer for GC heap snapshots. A snapshot JSON file can be dragged into this
page for inspection (or set via the 'filename' URL parameter).
For now, this page shows all objects, all roots, and the shortest path from a root
to all HTMLDocuments and Windows.
- GCHeapInspector/gc-heap-inspector.html: Added.
- GCHeapInspector/heap-analysis/HeapSnapshot.js: Copied from Source/WebInspectorUI/UserInterface/Workers/HeapSnapshot/HeapSnapshot.js.
- GCHeapInspector/script/interface.js: Added.
- 9:08 PM Changeset in webkit [235270] by
-
- 5 edits in tags/Safari-607.1.3/Source/WebKit
Revert r234990. rdar://problem/43667266
- 9:06 PM Inspecting the GC heap created by
- 8:49 PM WikiStart edited by
- (diff)
- 8:41 PM Changeset in webkit [235269] by
-
- 2 edits in trunk/LayoutTests
Add a flaky failing test expectation to fast/files/blob-network-process-crash.html
while we investigate the root cause in webkit.org/b/188911.
- platform/wk2/TestExpectations:
- 7:01 PM Changeset in webkit [235268] by
-
- 3 edits2 adds in trunk
initKeyboardEvent doesn't clear CapsLock state
https://bugs.webkit.org/show_bug.cgi?id=188909
Reviewed by Wenson Hsieh.
Source/WebCore:
Fixed the bug by not preserving CapsLock state in setModifierKeys variant which takes boolean
for altGraphKey, which is only called by KeyboardEvent::initKeyboardEvent.
Test: fast/events/init-event-clears-capslock.html
- dom/UIEventWithKeyState.h:
(WebCore::UIEventWithKeyState::setModifierKeys):
LayoutTests:
Added a regression test. Note that altGraph is only supported in WebKit
so Chrome and Firefox would fail to reset it via initKeyboardEvent.
- fast/events/init-event-clears-capslock-expected.txt: Added.
- fast/events/init-event-clears-capslock.html: Added.
- 6:33 PM Changeset in webkit [235267] by
-
- 7 edits in branches/safari-606.1.36.1-branch/Source
Versioning.
- 6:31 PM Changeset in webkit [235266] by
-
- 28 edits in tags/Safari-607.1.3/Source/WebKit
Revert r234941. rdar://problem/43667266
- 5:59 PM Changeset in webkit [235265] by
-
- 120 edits in trunk/Source/WebKit
Use unified build for UIProcess
https://bugs.webkit.org/show_bug.cgi?id=185014
Reviewed by Alex Christensen.
- Sources.txt:
- SourcesCocoa.txt:
- UIProcess/API/APIWebsiteDataStore.h:
- UIProcess/API/Cocoa/WKWebView.mm:
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration urlSchemeHandlerForURLScheme:]):
- UIProcess/API/glib/IconDatabase.cpp:
- UIProcess/API/gtk/PageClientImpl.cpp:
- UIProcess/API/gtk/WebKitColorChooser.cpp:
- UIProcess/API/gtk/WebKitPopupMenu.cpp:
- UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp:
- UIProcess/ApplicationStateTracker.mm:
- UIProcess/Authentication/mac/WebCredentialMac.mm:
- UIProcess/Automation/cocoa/WebAutomationSessionCocoa.mm:
- UIProcess/Automation/ios/WebAutomationSessionIOS.mm:
- UIProcess/Automation/mac/WebAutomationSessionMac.mm:
- UIProcess/Cocoa/NavigationState.mm:
- UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
- UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
- UIProcess/Cocoa/ViewGestureController.cpp:
- UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm:
(-[WKWebViewContentProviderRegistry initWithConfiguration:]):
(-[WKWebViewContentProviderRegistry addPage:]):
(-[WKWebViewContentProviderRegistry removePage:]):
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
- UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
- UIProcess/Cocoa/WebURLSchemeHandlerCocoa.mm:
- UIProcess/Cocoa/WebViewImpl.mm:
(-[WKTextTouchBarItemController itemForIdentifier:]):
(WebKit::WebViewImpl::performDragOperation):
- UIProcess/Downloads/DownloadProxy.cpp:
- UIProcess/DrawingAreaProxy.cpp:
- UIProcess/Gamepad/UIGamepad.cpp:
- UIProcess/Gamepad/UIGamepadProvider.cpp:
- UIProcess/Gamepad/cocoa/UIGamepadProviderCocoa.mm:
- UIProcess/HighPerformanceGraphicsUsageSampler.cpp:
- UIProcess/Network/NetworkProcessProxy.cpp:
- UIProcess/Notifications/WebNotificationManagerProxy.cpp:
- UIProcess/PerActivityStateCPUUsageSampler.cpp:
- UIProcess/Plugins/PluginInfoStore.cpp:
- UIProcess/Plugins/PluginProcessProxy.cpp:
- UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
- UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
- UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
- UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:
- UIProcess/RemoteLayerTree/RemoteLayerTreeScrollingPerformanceData.mm:
- UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:
- UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp:
- UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:
- UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
- UIProcess/RemoteWebInspectorProxy.cpp:
- UIProcess/ResourceLoadStatisticsMemoryStore.cpp:
- UIProcess/ServiceWorkerProcessProxy.cpp:
- UIProcess/Storage/StorageProcessProxy.cpp:
- UIProcess/SuspendedPageProxy.cpp:
- UIProcess/TextCheckerCompletion.cpp:
- UIProcess/UIMessagePortChannelProvider.cpp:
- UIProcess/UserMediaPermissionCheckProxy.cpp:
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
- UIProcess/UserMediaPermissionRequestProxy.cpp:
- UIProcess/VisitedLinkStore.cpp:
- UIProcess/WKInspectorHighlightView.mm:
(findIntersectionOnLineBetweenPoints):
(quadIntersection):
(layerPathWithHole):
(layerPath):
(-[WKInspectorHighlightView _layoutForNodeHighlight:offset:]):
(-[WKInspectorHighlightView _layoutForNodeListHighlight:]):
(-[WKInspectorHighlightView _layoutForRectsHighlight:]):
(-[WKInspectorHighlightView update:]):
- UIProcess/WebBackForwardList.cpp:
- UIProcess/WebContextMenuListenerProxy.cpp:
- UIProcess/WebCookieManagerProxy.cpp:
- UIProcess/WebEditCommandProxy.cpp:
- UIProcess/WebFrameProxy.cpp:
- UIProcess/WebFullScreenManagerProxy.cpp:
- UIProcess/WebInspectorProxy.cpp:
- UIProcess/WebNavigationState.cpp:
- UIProcess/WebOpenPanelResultListenerProxy.cpp:
- UIProcess/WebPageInjectedBundleClient.cpp:
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebProcessPool.cpp:
- UIProcess/WebProcessProxy.cpp:
- UIProcess/WebStorage/LocalStorageDatabaseTracker.cpp:
- UIProcess/WebURLSchemeHandler.cpp:
- UIProcess/WebURLSchemeTask.cpp:
- UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:
- UIProcess/gtk/AcceleratedBackingStoreX11.cpp:
- UIProcess/ios/DragDropInteractionState.mm:
- UIProcess/ios/InputViewUpdateDeferrer.mm:
- UIProcess/ios/PageClientImplIOS.mm:
(-[WKEditCommandObjC initWithWebEditCommandProxy:]):
(-[WKEditCommandObjC command]):
- UIProcess/ios/SmartMagnificationController.mm:
- UIProcess/ios/TextCheckerIOS.mm:
- UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::removeSwipeSnapshot):
- UIProcess/ios/WKActionSheetAssistant.mm:
(presentationStyleForView):
- UIProcess/ios/WKApplicationStateTrackingView.mm:
(-[WKApplicationStateTrackingView initWithFrame:webView:]):
(-[WKApplicationStateTrackingView _applicationDidEnterBackground]):
(-[WKApplicationStateTrackingView _applicationDidFinishSnapshottingAfterEnteringBackground]):
(-[WKApplicationStateTrackingView _applicationWillEnterForeground]):
- UIProcess/ios/WKGeolocationProviderIOS.mm:
(-[WKGeolocationProviderIOS _startUpdating]):
(-[WKGeolocationProviderIOS _stopUpdating]):
(-[WKGeolocationProviderIOS _setEnableHighAccuracy:]):
(-[WKGeolocationProviderIOS init]):
(-[WKGeolocationProviderIOS initWithProcessPool:]):
(-[WKGeolocationProviderIOS decidePolicyForGeolocationRequestFromOrigin:frame:completionHandler:view:]):
(-[WKGeolocationProviderIOS geolocationAuthorizationGranted]):
(-[WKLegacyCoreLocationProvider positionChanged:]):
- UIProcess/ios/WKKeyboardScrollingAnimator.mm:
(-[WKKeyboardScrollingAnimator _scrollOffsetForEvent:]):
(-[WKKeyboardScrollingAnimator beginWithEvent:]):
(-[WKKeyboardScrollingAnimator handleKeyEvent:]):
(-[WKKeyboardScrollingAnimator startAnimatedScroll]):
(-[WKKeyboardScrollingAnimator stopAnimatedScroll]):
- UIProcess/ios/WKLegacyPDFView.mm:
- UIProcess/ios/WKPDFView.mm:
(-[WKPDFView web_setContentProviderData:suggestedFilename:]):
- UIProcess/ios/WKScrollView.mm:
(-[WKScrollView _systemContentInset]):
- UIProcess/ios/WKSystemPreviewView.mm:
- UIProcess/ios/WebPageProxyIOS.mm:
- UIProcess/mac/CorrectionPanel.mm:
(correctionIndicatorType):
- UIProcess/mac/PageClientImplMac.mm:
- UIProcess/mac/RemoteWebInspectorProxyMac.mm:
(-[WKRemoteWebInspectorProxyObjCAdapter initWithRemoteWebInspectorProxy:]):
- UIProcess/mac/TextCheckerMac.mm:
- UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
- UIProcess/mac/ViewGestureControllerMac.mm:
- UIProcess/mac/ViewSnapshotStore.mm:
- UIProcess/mac/WKFullKeyboardAccessWatcher.mm:
(-[WKFullKeyboardAccessWatcher notifyAllProcessPools]):
- UIProcess/mac/WKFullScreenWindowController.mm:
(WebKit::WKFullScreenWindowControllerVideoFullscreenModelClient::setInterface):
(WebKit::WKFullScreenWindowControllerVideoFullscreenModelClient::interface const):
(-[WKFullScreenWindowController initWithWindow:webView:page:]):
(-[WKFullScreenWindowController enterFullScreen:]):
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):
(-[WKFullScreenWindowController windowDidEnterFullScreen:]):
(-[WKFullScreenWindowController windowDidExitFullScreen:]):
(-[WKFullScreenWindowController _manager]):
(-[WKFullScreenWindowController _replaceView:with:]):
(zoomAnimation):
(createMask):
(maskAnimation):
- UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController initWithPage:view:viewImpl:recognizer:]):
(-[WKImmediateActionController willDestroyView:]):
(-[WKImmediateActionController _clearImmediateActionState]):
(-[WKImmediateActionController didPerformImmediateActionHitTest:contentPreventsDefault:userData:]):
(-[WKImmediateActionController immediateActionRecognizerWillPrepare:]):
(-[WKImmediateActionController immediateActionRecognizerWillBeginAnimation:]):
(-[WKImmediateActionController _webHitTestResult]):
(-[WKImmediateActionController _defaultAnimationController]):
(-[WKImmediateActionController menuItem:maxSizeForPoint:]):
(-[WKImmediateActionController _animationControllerForDataDetectedText]):
(-[WKImmediateActionController _animationControllerForDataDetectedLink]):
(-[WKImmediateActionController _animationControllerForText]):
- UIProcess/mac/WKInspectorViewController.mm:
(-[WKInspectorViewController initWithInspectedPage:]):
(-[WKInspectorViewController webView]):
(-[WKInspectorViewController configuration]):
(-[WKInspectorViewController webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:]):
(-[WKInspectorViewController webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[WKInspectorViewController inspectorWKWebViewReload:]):
- UIProcess/mac/WKPrintingView.mm:
(-[WKPrintingView _expectedPreviewCallbackForRect:]):
(pageDidDrawToImage):
(-[WKPrintingView _preparePDFDataForPrintingOnSecondaryThread]):
(pageDidComputePageRects):
(-[WKPrintingView _askPageToComputePageRects]):
(-[WKPrintingView _pageForRect:]):
(-[WKPrintingView _drawPDFDocument:page:atPoint:]):
(-[WKPrintingView _drawPreview:]):
(-[WKPrintingView drawRect:]):
(-[WKPrintingView rectForPage:]):
- UIProcess/mac/WKTextFinderClient.mm:
(-[WKTextFinderClient initWithPage:view:]):
(-[WKTextFinderClient findMatchesForString:relativeToMatch:findOptions:maxResults:resultCollector:]):
(-[WKTextFinderClient getSelectedText:]):
(arrayFromRects):
(-[WKTextFinderClient didFindStringMatchesWithRects:didWrapAround:]):
(-[WKTextFinderClient didGetImageForMatchResult:]):
- UIProcess/mac/WKTextInputWindowController.mm:
- UIProcess/mac/WKViewLayoutStrategy.mm:
(+[WKViewLayoutStrategy layoutStrategyWithPage:view:viewImpl:mode:]):
(-[WKViewLayoutStrategy initWithPage:view:viewImpl:mode:]):
(-[WKViewViewSizeLayoutStrategy initWithPage:view:viewImpl:mode:]):
(-[WKViewFixedSizeLayoutStrategy initWithPage:view:viewImpl:mode:]):
(-[WKViewDynamicSizeComputedFromViewScaleLayoutStrategy initWithPage:view:viewImpl:mode:]):
(-[WKViewDynamicSizeComputedFromMinimumDocumentSizeLayoutStrategy initWithPage:view:viewImpl:mode:]):
- UIProcess/mac/WebColorPickerMac.mm:
- UIProcess/mac/WebContextMenuProxyMac.mm:
(-[WKMenuTarget forwardContextMenuAction:]):
(WebKit::menuItemIdentifier):
(WebKit::WebContextMenuProxyMac::createContextMenuItem):
- UIProcess/mac/WebInspectorProxyMac.mm:
(-[WKWebInspectorProxyObjCAdapter initWithWebInspectorProxy:]):
- UIProcess/mac/WebPageProxyMac.mm:
- UIProcess/mac/WebPopupMenuProxyMac.mm:
- UIProcess/win/PageClientImpl.cpp:
- UIProcess/win/TextCheckerWin.cpp:
- UIProcess/win/WebContextMenuProxyWin.cpp:
- UIProcess/win/WebPopupMenuProxyWin.cpp:
- UIProcess/win/WebView.cpp:
- UIProcess/wpe/TextCheckerWPE.cpp:
- UIProcess/wpe/WebPasteboardProxyWPE.cpp:
- WebKit.xcodeproj/project.pbxproj:
- 5:43 PM Changeset in webkit [235264] by
-
- 2 edits in trunk/LayoutTests
Store the timer we scheduled in the global object.
The underlying bug is tracked by https://webkit.org/b/188911.
- fast/files/blob-network-process-crash.html:
- 5:16 PM Changeset in webkit [235263] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, fix the Windows build after r235245.
- html/InputMode.cpp:
(WebCore::stringForInputMode):
- 4:57 PM Changeset in webkit [235262] by
-
- 5 edits1 add in trunk/Websites/bugs.webkit.org
EWS bubbles are being hidden due to lack of space.
https://bugs.webkit.org/show_bug.cgi?id=188607
Reviewed by Daniel Bates.
- PrettyPatch/PrettyPatch.rb:
- code-review.js:
- js/status-bubble.js: Added.
Refactor Review Patch page so that the postMessage to resize EWS iframes may be used on other pages too.
- template/en/default/attachment/edit.html.tmpl:
- template/en/default/attachment/list.html.tmpl:
Resize EWS iframes via postMessage on bug page and attachment details page.
- 4:57 PM Changeset in webkit [235261] by
-
- 22 edits in trunk/Source
JSRunLoopTimer may run part of a member function after it's destroyed
https://bugs.webkit.org/show_bug.cgi?id=188426
Reviewed by Mark Lam.
Source/JavaScriptCore:
When I was reading the JSRunLoopTimer code, I noticed that it is possible
to end up running timer code after the class had been destroyed.
The issue I spotted was in this function:
`
void JSRunLoopTimer::timerDidFire()
{
JSLock* apiLock = m_apiLock.get();
if (!apiLock) {
Likely a buggy usage: the timer fired while JSRunLoopTimer was being destroyed.
return;
}
HERE
std::lock_guard<JSLock> lock(*apiLock);
RefPtr<VM> vm = apiLock->vm();
if (!vm) {
The VM has been destroyed, so we should just give up.
return;
}
doWork();
}
`
Look at the comment 'HERE'. Let's say that the timer callback thread gets context
switched before grabbing the API lock. Then, some other thread destroys the VM.
And let's say that the VM owns (perhaps transitively) this timer. Then, the
timer would run code and access member variables after it was destroyed.
This patch fixes this issue by introducing a new timer manager class.
This class manages timers on a per VM basis. When a timer is scheduled,
this class refs the timer. It also calls the timer callback while actively
maintaining a +1 ref to it. So, it's no longer possible to call the timer
callback after the timer has been destroyed. However, calling a timer callback
can still race with the VM being destroyed. We continue to detect this case and
bail out of the callback early.
This patch also removes a lot of duplicate code between GCActivityCallback
and JSRunLoopTimer.
- heap/EdenGCActivityCallback.cpp:
(JSC::EdenGCActivityCallback::doCollection):
(JSC::EdenGCActivityCallback::lastGCLength):
(JSC::EdenGCActivityCallback::deathRate):
- heap/EdenGCActivityCallback.h:
- heap/FullGCActivityCallback.cpp:
(JSC::FullGCActivityCallback::doCollection):
(JSC::FullGCActivityCallback::lastGCLength):
(JSC::FullGCActivityCallback::deathRate):
- heap/FullGCActivityCallback.h:
- heap/GCActivityCallback.cpp:
(JSC::GCActivityCallback::doWork):
(JSC::GCActivityCallback::scheduleTimer):
(JSC::GCActivityCallback::didAllocate):
(JSC::GCActivityCallback::willCollect):
(JSC::GCActivityCallback::cancel):
(JSC::GCActivityCallback::cancelTimer): Deleted.
(JSC::GCActivityCallback::nextFireTime): Deleted.
- heap/GCActivityCallback.h:
- heap/Heap.cpp:
(JSC::Heap::reportAbandonedObjectGraph):
(JSC::Heap::notifyIncrementalSweeper):
(JSC::Heap::updateAllocationLimits):
(JSC::Heap::didAllocate):
- heap/IncrementalSweeper.cpp:
(JSC::IncrementalSweeper::scheduleTimer):
(JSC::IncrementalSweeper::doWork):
(JSC::IncrementalSweeper::doSweep):
(JSC::IncrementalSweeper::sweepNextBlock):
(JSC::IncrementalSweeper::startSweeping):
(JSC::IncrementalSweeper::stopSweeping):
- heap/IncrementalSweeper.h:
- heap/StopIfNecessaryTimer.cpp:
(JSC::StopIfNecessaryTimer::doWork):
(JSC::StopIfNecessaryTimer::scheduleSoon):
- heap/StopIfNecessaryTimer.h:
- runtime/JSRunLoopTimer.cpp:
(JSC::epochTime):
(JSC::JSRunLoopTimer::Manager::timerDidFireCallback):
(JSC::JSRunLoopTimer::Manager::PerVMData::setRunLoop):
(JSC::JSRunLoopTimer::Manager::PerVMData::PerVMData):
(JSC::JSRunLoopTimer::Manager::PerVMData::~PerVMData):
(JSC::JSRunLoopTimer::Manager::timerDidFire):
(JSC::JSRunLoopTimer::Manager::shared):
(JSC::JSRunLoopTimer::Manager::registerVM):
(JSC::JSRunLoopTimer::Manager::unregisterVM):
(JSC::JSRunLoopTimer::Manager::scheduleTimer):
(JSC::JSRunLoopTimer::Manager::cancelTimer):
(JSC::JSRunLoopTimer::Manager::timeUntilFire):
(JSC::JSRunLoopTimer::Manager::didChangeRunLoop):
(JSC::JSRunLoopTimer::timerDidFire):
(JSC::JSRunLoopTimer::JSRunLoopTimer):
(JSC::JSRunLoopTimer::timeUntilFire):
(JSC::JSRunLoopTimer::setTimeUntilFire):
(JSC::JSRunLoopTimer::cancelTimer):
(JSC::JSRunLoopTimer::setRunLoop): Deleted.
(JSC::JSRunLoopTimer::timerDidFireCallback): Deleted.
(JSC::JSRunLoopTimer::scheduleTimer): Deleted.
- runtime/JSRunLoopTimer.h:
(JSC::JSRunLoopTimer::Manager::PerVMData::PerVMData):
- runtime/PromiseDeferredTimer.cpp:
(JSC::PromiseDeferredTimer::doWork):
(JSC::PromiseDeferredTimer::runRunLoop):
(JSC::PromiseDeferredTimer::addPendingPromise):
(JSC::PromiseDeferredTimer::hasPendingPromise):
(JSC::PromiseDeferredTimer::hasDependancyInPendingPromise):
(JSC::PromiseDeferredTimer::cancelPendingPromise):
(JSC::PromiseDeferredTimer::scheduleWorkSoon):
- runtime/PromiseDeferredTimer.h:
- runtime/VM.cpp:
(JSC::VM::VM):
(JSC::VM::~VM):
(JSC::VM::setRunLoop):
(JSC::VM::registerRunLoopTimer): Deleted.
(JSC::VM::unregisterRunLoopTimer): Deleted.
- runtime/VM.h:
(JSC::VM::runLoop const):
- wasm/js/WebAssemblyPrototype.cpp:
(JSC::webAssemblyModuleValidateAsyncInternal):
(JSC::instantiate):
(JSC::compileAndInstantiate):
(JSC::webAssemblyModuleInstantinateAsyncInternal):
(JSC::webAssemblyCompileStreamingInternal):
(JSC::webAssemblyInstantiateStreamingInternal):
Source/WebCore:
- page/cocoa/ResourceUsageThreadCocoa.mm:
(WebCore::ResourceUsageThread::platformThreadBody):
- page/linux/ResourceUsageThreadLinux.cpp:
(WebCore::ResourceUsageThread::platformThreadBody):
- 4:37 PM Changeset in webkit [235260] by
-
- 12 edits in trunk/Source/WebKit
Move legacy directory configuration from WebProcessPool to API::WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=188765
<rdar://problem/43633183>
Reviewed by Geoffrey Garen.
Diretories are parameters of websiteDataStore instead of webProcessPool, so we should move
legacy default paths to API::WebsiteDataStore, which already stores default paths for
non-legacy cases.
- UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::createWithLegacyOptions):
(API::ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration):
- UIProcess/API/APIWebsiteDataStore.cpp:
(API::WebsiteDataStore::legacyDefaultDataStoreConfiguration):
- UIProcess/API/APIWebsiteDataStore.h:
- UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
(API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory):
(API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory):
(API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory):
(API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory):
(API::WebsiteDataStore::legacyDefaultLocalStorageDirectory):
(API::WebsiteDataStore::legacyDefaultMediaCacheDirectory):
(API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory):
(API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory):
- UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp:
(API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory):
(API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory):
(API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory):
(API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory):
(API::WebsiteDataStore::legacyDefaultLocalStorageDirectory):
(API::WebsiteDataStore::legacyDefaultMediaCacheDirectory):
(API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory):
(API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory):
- UIProcess/API/win/APIWebsiteDataStoreWin.cpp:
(API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory):
(API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory):
(API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory):
(API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory):
(API::WebsiteDataStore::legacyDefaultLocalStorageDirectory):
(API::WebsiteDataStore::legacyDefaultMediaCacheDirectory):
(API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory):
(API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory): Deleted.
- UIProcess/WebProcessPool.h:
- UIProcess/gtk/WebProcessPoolGtk.cpp:
(WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory): Deleted.
- UIProcess/win/WebProcessPoolWin.cpp:
(WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory): Deleted.
- UIProcess/wpe/WebProcessPoolWPE.cpp:
(WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory): Deleted.
- 4:37 PM Changeset in webkit [235259] by
-
- 6 edits in trunk
Add new _webViewRequestPointerLock SPI with a completionHandler
https://bugs.webkit.org/show_bug.cgi?id=188907
<rdar://problem/35871109>
Reviewed by Andy Estes.
Source/WebKit:
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
- UIProcess/Cocoa/UIDelegate.h:
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::requestPointerLock):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
(-[PointerLockDelegate _webViewRequestPointerLock:completionHandler:]):
(-[PointerLockDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(TEST):
- 4:36 PM Changeset in webkit [235258] by
-
- 9 edits in trunk
Unreviewed, rolling out r235129.
broke internal builds
Reverted changeset:
"Allow creating WeakPtrs to const objects"
https://bugs.webkit.org/show_bug.cgi?id=188785
https://trac.webkit.org/changeset/235129
- 4:32 PM Changeset in webkit [235257] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: fix typos in some compositing reasons
https://bugs.webkit.org/show_bug.cgi?id=188905
<rdar://problem/43624825>
Reviewed by Simon Fraser.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
(WI.LayerTreeDetailsSidebarPanel.prototype._populateListOfCompositingReasons):
(WI.LayerTreeDetailsSidebarPanel):
- UserInterface/Views/Layers3DContentView.js:
(WI.Layers3DContentView.prototype._updateReasonsList):
(WI.Layers3DContentView):
- 4:19 PM Changeset in webkit [235256] by
-
- 3 edits in trunk/Source/WebCore
[iOS] Test editing/undo/replace-text-in-node-preserving-markers-crash.html crashes
https://bugs.webkit.org/show_bug.cgi?id=188898
Reviewed by Simon Fraser.
Not all document markers may have a dictation metadata on iOS.
Currently we assume that every marker has dictation alternatives (i.e. DocumentMarker::alternatives()
can be called) when deleting a selection preserving document markers on iOS. However, only markers
for dictation may have dictation alternatives. For example, document markers for misspelled words do
not have dictation metadata by definition. Instead of assuming every marker has dictation alternatives
on iOS we need to check the marker type to determine whether it has associated dictation metadata and
invoke the appropriate DocumentMarkerController::addMarker() overload.
- dom/DocumentMarker.h:
(WebCore::DocumentMarker::isDictation const): Added.
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::replaceTextInNodePreservingMarkers): Only access DocumentMarker::alternatives()
and add a dictation marker on iOS if the marker is a dictation marker.
- 4:11 PM Changeset in webkit [235255] by
-
- 7 edits in trunk/Websites/perf.webkit.org
Show t-test results based on individual measurements to analysis task page.
https://bugs.webkit.org/show_bug.cgi?id=188425
Reviewed by Ryosuke Niwa.
Added comparison for individual iterations in analysis task page.
Added comparison for individual iterations for notification on A/B tests completion.
Refactored t-distribution inverse lookup to any degree of freedom with 5 significant figures.
- public/shared/statistics.js: Refactored t-distribution inverse lookup function and adapted this
change to all invocations.
(Statistics.new.this.supportedConfidenceIntervalProbabilities):
(Statistics.new.this.supportedOneSideTTestProbabilities):
(Statistics.new.this.confidenceIntervalDelta):
(Statistics.new.sampleMeanAndVarianceForMultipleSamples):
(Statistics.new.this.probabilityRangeForWelchsT):
(Statistics.new.this.probabilityRangeForWelchsTFromTwoSampleSets):
(Statistics.new.this._determinetwoSidedProbabilityBoundaryForWelchsT):
(Statistics.new.this.computeWelchsT):
(Statistics.new.this._computeWelchsTFromStatistics):
(Statistics.new.this.minimumTForOneSidedProbability): Function that does t-distribution inverse lookup.
- public/v3/components/analysis-results-viewer.js: Adapted TestGroup.compareTestResults change.
(AnalysisResultsViewer.TestGroupStackingBlock.prototype._measurementsForCommitSet):
(AnalysisResultsViewer.TestGroupStackingBlock.prototype._computeTestGroupStatus):
(AnalysisResultsViewer.TestGroupStackingBlock.prototype._valuesForCommitSet): Deleted.
- public/v3/components/test-group-results-viewer.js: Show both comparisions for both individual and mean.
(TestGroupResultsViewer.prototype._renderResultsTable):
(TestGroupResultsViewer.prototype._buildRowForMetric.):
(TestGroupResultsViewer.prototype._buildValueMap):
- public/v3/models/test-group.js:
(TestGroup.compareTestResults): Added comparison for individual iterations.
- tools/js/test-group-result-page.js:
(TestGroupResultPage.prototype._constructTableForMetric):
(TestGroupResultPage.prototype.get styleTemplate):
(TestGroupResultPage):
(TestGroupResultPage.prototype._URLForAnalysisTask): Renamed to '_resultsForTestGroup'
- unit-tests/statistics-tests.js: Updated and added unit tests.
- 3:57 PM Changeset in webkit [235254] by
-
- 30 edits in trunk/Source
Move vmEntryGlobalObject() to VM from CallFrame.
https://bugs.webkit.org/show_bug.cgi?id=188900
<rdar://problem/43655753>
Reviewed by Michael Saboff.
Source/JavaScriptCore:
Also introduced CallFrame::isGlobalExec() which makes use of one property of
GlobalExecs to identify them i.e. GlobalExecs have null callerFrame and returnPCs.
CallFrame::initGlobalExec() ensures this.
In contrast, normal CallFrames always have a callerFrame (because they must at
least be preceded by a VM EntryFrame) and a returnPC (at least return to the
VM entry glue).
- API/APIUtils.h:
(handleExceptionIfNeeded):
(setException):
- API/JSBase.cpp:
(JSEvaluateScript):
(JSCheckScriptSyntax):
- API/JSContextRef.cpp:
(JSGlobalContextRetain):
(JSGlobalContextRelease):
(JSGlobalContextCopyName):
(JSGlobalContextSetName):
(JSGlobalContextGetRemoteInspectionEnabled):
(JSGlobalContextSetRemoteInspectionEnabled):
(JSGlobalContextGetIncludesNativeCallStackWhenReportingExceptions):
(JSGlobalContextSetIncludesNativeCallStackWhenReportingExceptions):
(JSGlobalContextGetDebuggerRunLoop):
(JSGlobalContextSetDebuggerRunLoop):
(JSGlobalContextGetAugmentableInspectorController):
- API/JSValue.mm:
(reportExceptionToInspector):
- API/glib/JSCClass.cpp:
(jscContextForObject):
- API/glib/JSCContext.cpp:
(jsc_context_evaluate_in_object):
- debugger/Debugger.cpp:
(JSC::Debugger::pauseIfNeeded):
- debugger/DebuggerCallFrame.cpp:
(JSC::DebuggerCallFrame::vmEntryGlobalObject const):
(JSC::DebuggerCallFrame::evaluateWithScopeExtension):
- interpreter/CallFrame.cpp:
(JSC::CallFrame::vmEntryGlobalObject): Deleted.
- interpreter/CallFrame.h:
(JSC::ExecState::scope const):
(JSC::ExecState::noCaller):
(JSC::ExecState::isGlobalExec const):
- interpreter/Interpreter.cpp:
(JSC::notifyDebuggerOfUnwinding):
(JSC::Interpreter::notifyDebuggerOfExceptionToBeThrown):
(JSC::Interpreter::debug):
- runtime/CallData.cpp:
(JSC::profiledCall):
- runtime/Completion.cpp:
(JSC::evaluate):
(JSC::profiledEvaluate):
(JSC::evaluateWithScopeExtension):
(JSC::loadAndEvaluateModule):
(JSC::loadModule):
(JSC::linkAndEvaluateModule):
(JSC::importModule):
- runtime/ConstructData.cpp:
(JSC::profiledConstruct):
- runtime/Error.cpp:
(JSC::getStackTrace):
- runtime/VM.cpp:
(JSC::VM::throwException):
(JSC::VM::vmEntryGlobalObject const):
- runtime/VM.h:
Source/WebCore:
No new tests needed because this patch does not introduce new functionality.
- bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::create):
- bindings/js/JSDOMGlobalObject.cpp:
(WebCore::callerGlobalObject):
(WebCore::toJSDOMGlobalObject): Deleted.
- bindings/js/JSDOMWindowBase.cpp:
(WebCore::firstDOMWindow):
- bridge/c/c_utility.cpp:
(JSC::Bindings::convertValueToNPVariant):
- bridge/objc/WebScriptObject.mm:
(WebCore::addExceptionToConsole):
- bridge/objc/objc_instance.mm:
(ObjcInstance::moveGlobalExceptionToExecState):
- bridge/objc/objc_runtime.mm:
(JSC::Bindings::convertValueToObjcObject):
- bridge/objc/objc_utility.mm:
(JSC::Bindings::convertValueToObjcValue):
- testing/Internals.cpp:
(WebCore::Internals::cloneArrayBuffer):
Source/WebKitLegacy/mac:
- WebView/WebScriptDebugger.mm:
(WebScriptDebugger::sourceParsed):
- 3:53 PM Changeset in webkit [235253] by
-
- 4 edits in trunk
[CMake] Have checks are not getting set inside CMake properly
https://bugs.webkit.org/show_bug.cgi?id=188901
Reviewed by Michael Catanzaro.
.:
Make sure the variable's value is sent to SET_AND_EXPOSE_TO_BUILD
within the WEBKIT_CHECK_HAVE_* macros.
- Source/cmake/WebKitFeatures.cmake:
PerformanceTests:
Add notification that MallocBench is disabled.
- CMakeLists.txt:
- 3:50 PM Changeset in webkit [235252] by
-
- 3 edits in trunk/Tools
API tests should output json results
https://bugs.webkit.org/show_bug.cgi?id=188869
<rdar://problem/43615652>
Reviewed by Aakash Jain.
JSON output for API tests is of the form:
{
"Failed": [{"name": <test name>, "output": <test log>}],
"Timedout": [...],
"Skipped": [...],
"Crashed": [...]
}
Tests which are successful are not displayed in the json output.
- Scripts/webkitpy/api_tests/manager.py:
(Manager.run): Print test results to provided file as a json dictionary.
- Scripts/webkitpy/api_tests/run_api_tests.py:
(run): Pass json option.
(parse_args): Add --json-output flag.
- 3:23 PM Changeset in webkit [235251] by
-
- 20 edits2 adds in trunk
[Apple Pay] Introduce Apple Pay JS v4 on iOS 12 and macOS Mojave
https://bugs.webkit.org/show_bug.cgi?id=188829
Reviewed by Tim Horton.
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
Test: http/tests/ssl/applepay/ApplePaySessionV4.html
- Configurations/FeatureDefines.xcconfig:
- testing/MockPaymentCoordinator.cpp:
(WebCore::MockPaymentCoordinator::supportsVersion):
Source/WebCore/PAL:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit:
- Configurations/FeatureDefines.xcconfig:
- WebProcess/ApplePay/WebPaymentCoordinator.cpp:
(WebKit::WebPaymentCoordinator::supportsVersion):
Source/WebKitLegacy/mac:
- Configurations/FeatureDefines.xcconfig:
Tools:
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
LayoutTests:
- http/tests/ssl/applepay/ApplePaySession-expected.txt:
- http/tests/ssl/applepay/ApplePaySession.html:
- http/tests/ssl/applepay/ApplePaySessionV3-expected.txt:
- http/tests/ssl/applepay/ApplePaySessionV3.html:
- http/tests/ssl/applepay/ApplePaySessionV4-expected.txt: Added.
- http/tests/ssl/applepay/ApplePaySessionV4.html: Added.
- platform/mac-wk2/TestExpectations:
- 3:13 PM Changeset in webkit [235250] by
-
- 1 copy in tags/Safari-606.1.36.10.5
Tag Safari-606.1.36.10.5.
- 2:43 PM Changeset in webkit [235249] by
-
- 13 edits1 copy in trunk/Tools
[WSL] Ternary expressions appear to be unimplemented
https://bugs.webkit.org/show_bug.cgi?id=178981
Reviewed by Saam Barati.
Implement ternary statements. These can be both lvalues and rvalues. (a ? b : c ? d : e)
is parsed as (a ? b : (c ? d : e)).
- WebGPUShadingLanguageRI/All.js:
- WebGPUShadingLanguageRI/Checker.js:
(Checker.prototype.visitTernaryExpression):
- WebGPUShadingLanguageRI/Evaluator.js:
(Evaluator.prototype.visitTernaryExpression):
- WebGPUShadingLanguageRI/NormalUsePropertyResolver.js:
(NormalUsePropertyResolver.prototype.visitTernaryExpression):
(NormalUsePropertyResolver):
- WebGPUShadingLanguageRI/Parse.js:
(parsePossibleTernaryConditional):
- WebGPUShadingLanguageRI/PropertyResolver.js:
(PropertyResolver.prototype._visitRValuesWithinLValue.RValueFinder.prototype.visitTernaryExpression):
(PropertyResolver.prototype._visitRValuesWithinLValue.RValueFinder):
(PropertyResolver.prototype._visitRValuesWithinLValue):
- WebGPUShadingLanguageRI/Rewriter.js:
(Rewriter.prototype.visitTernaryExpression):
- WebGPUShadingLanguageRI/SPIRV.html:
- WebGPUShadingLanguageRI/Test.html:
- WebGPUShadingLanguageRI/Test.js:
- WebGPUShadingLanguageRI/Visitor.js:
(Visitor.prototype.visitProtocolDecl):
- WebGPUShadingLanguageRI/index.html:
- 2:36 PM Changeset in webkit [235248] by
-
- 30 edits2 moves8 adds1 delete in trunk
Web Inspector: support breakpoints for timers and animation-frame events
https://bugs.webkit.org/show_bug.cgi?id=188778
Reviewed by Brian Burg.
Source/JavaScriptCore:
- inspector/protocol/Debugger.json:
Add
AnimationFrameandTimertypes to the list of pause reasons.
- inspector/protocol/DOMDebugger.json:
Introduced
setEventBreakpointandremoveEventBreakpointto replace the more specific:
setEventListenerBreakpointremoveEventListenerBreakpointsetInstrumentationBreakpointremoveInstrumentationBreakpoint
Also created an
EventBreakpointTypeto enumerate the available types of event breakpoints.
- inspector/scripts/codegen/generate_cpp_protocol_types_header.py:
(CppProtocolTypesHeaderGenerator.generate_output):
(CppProtocolTypesHeaderGenerator._generate_forward_declarations_for_binding_traits):
(CppProtocolTypesHeaderGenerator._generate_declarations_for_enum_conversion_methods):
(CppProtocolTypesHeaderGenerator._generate_hash_declarations): Added.
GenerateDefaultHashfor allenum classused by inspector protocols.
- inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result:
- inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result:
- inspector/scripts/tests/generic/expected/enum-values.json-result:
- inspector/scripts/tests/generic/expected/type-declaration-array-type.json-result:
- inspector/scripts/tests/generic/expected/type-declaration-enum-type.json-result:
- inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result:
- inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result:
Source/WebCore:
The original implementation of "instrumentation" breakpoints relied upon the frontend
sending somewhat arbitrary strings when enabling breakpoints for specific events. As an
example, setting a breakpoint forrequestAnimationFrameexpects"animationFrameFired"
as the string, which doesn't make much sense. This patch removes the usage of these strings
and instead expects the agent to implement a method that matches what is happening.
Tests: inspector/dom-debugger/event-animation-frame-breakpoints.html
inspector/dom-debugger/event-listener-breakpoints.html
inspector/dom-debugger/event-timer-breakpoints.html
- inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::willFireTimer):
- inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didInstallTimerImpl):
(WebCore::InspectorInstrumentation::didRemoveTimerImpl):
(WebCore::InspectorInstrumentation::willFireTimerImpl):
(WebCore::InspectorInstrumentation::didRequestAnimationFrameImpl):
(WebCore::InspectorInstrumentation::didCancelAnimationFrameImpl):
(WebCore::InspectorInstrumentation::willFireAnimationFrameImpl):
(WebCore::InspectorInstrumentation::pauseOnNativeEventIfNeeded): Deleted.
- inspector/agents/InspectorDOMDebuggerAgent.h:
- inspector/agents/InspectorDOMDebuggerAgent.cpp:
(WebCore::InspectorDOMDebuggerAgent::setEventBreakpoint): Added.
(WebCore::InspectorDOMDebuggerAgent::removeEventBreakpoint): Added.
(WebCore::InspectorDOMDebuggerAgent::willHandleEvent):
(WebCore::InspectorDOMDebuggerAgent::willFireTimer): Added.
(WebCore::InspectorDOMDebuggerAgent::willFireAnimationFrame): Added.
(WebCore::InspectorDOMDebuggerAgent::setEventListenerBreakpoint): Deleted.
(WebCore::InspectorDOMDebuggerAgent::setInstrumentationBreakpoint): Deleted.
(WebCore::InspectorDOMDebuggerAgent::setBreakpoint): Deleted.
(WebCore::InspectorDOMDebuggerAgent::removeEventListenerBreakpoint): Deleted.
(WebCore::InspectorDOMDebuggerAgent::removeInstrumentationBreakpoint): Deleted.
(WebCore::InspectorDOMDebuggerAgent::removeBreakpoint): Deleted.
(WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded): Deleted.
Unify the event listener and instrumentation breakpoint commands into a single method,
setEventBreakpoint, that takes in both anEventBreakpointTypeandeventName.
- page/DOMTimer.cpp:
(WebCore::DOMTimer::fired):
Source/WebInspectorUI:
Add a
typetoWI.EventBreakpointthat matchesDOMDebugger.EventBreakpointType:
AnimationFrameforrequestAnimationFrameListenerfor any named DOM EventTimerforsetTimeoutandsetInterval
Modified
WI.EventBreakpointPopoverto provide ways for selecting these other types, which
is then passed toWI.DOMDebuggerManager, which now calls through to the newly added
DOMDebugger.removeEventBreakpointandDOMDebugger.setEventBreakpointthat sets
breakpoints for all event types.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Images/EventBreakpointAnimationFrame.svg: Added.
- UserInterface/Images/EventBreakpointListener.svg: Renamed from Source/WebInspectorUI/UserInterface/Images/EventBreakpoint.svg.
- UserInterface/Images/EventBreakpointTimer.svg: Added.
- UserInterface/Controllers/DOMDebuggerManager.js:
(WI.DOMDebuggerManager.supportsEventBreakpoints): Added.
(WI.DOMDebuggerManager.prototype.eventBreakpointForTypeAndEventName): Added.
(WI.DOMDebuggerManager.prototype.addEventBreakpoint):
(WI.DOMDebuggerManager.prototype.removeEventBreakpoint.breakpointRemoved): Added.
(WI.DOMDebuggerManager.prototype.removeEventBreakpoint):
(WI.DOMDebuggerManager.prototype._updateEventBreakpoint):
(WI.DOMDebuggerManager.prototype.eventBreakpointForEventName): Deleted.
- UserInterface/Controllers/DOMTreeManager.js:
(WI.DOMTreeManager.prototype.setBreakpointForEventListener):
- UserInterface/Controllers/DebuggerManager.js:
(WI.DebuggerManager.prototype._pauseReasonFromPayload):
- UserInterface/Models/EventBreakpoint.js:
(WI.EventBreakpoint):
(WI.EventBreakpoint.fromPayload):
(WI.EventBreakpoint.prototype.get type): Added.
(WI.EventBreakpoint.prototype.get serializableInfo):
(WI.EventBreakpoint.prototype.saveIdentityToCookie):
- UserInterface/Views/DebuggerSidebarPanel.js:
(WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
(WI.DebuggerSidebarPanel.prototype.willDismissPopover):
- UserInterface/Views/EventBreakpointPopover.js:
(WI.EventBreakpointPopover):
(WI.EventBreakpointPopover.prototype.get breakpoint): Added.
(WI.EventBreakpointPopover.prototype.show):
(WI.EventBreakpointPopover.prototype.show.createOption): Added.
(WI.EventBreakpointPopover.prototype.dismiss): Added.
(WI.EventBreakpointPopover.prototype._presentOverTargetElement):
(WI.EventBreakpointPopover.prototype._handleTypeSelectChange): Added.
(WI.EventBreakpointPopover.prototype.get result): Deleted.
(WI.EventBreakpointPopover.prototype.get value): Deleted.
- UserInterface/Views/EventBreakpointPopover.css:
(.popover .event-breakpoint-content > .event-type): Added.
(.popover .event-breakpoint-content > input): Deleted.
- UserInterface/Views/EventBreakpointTreeElement.js:
(WI.EventBreakpointTreeElement):
- UserInterface/Views/EventBreakpointTreeElement.css:
(.breakpoint.event.animation-frame:not(.breakpoint-paused-icon) .icon): Added.
(.breakpoint.event.listener:not(.breakpoint-paused-icon) .icon): Added.
(.breakpoint.event.timer:not(.breakpoint-paused-icon) .icon): Added.
(.breakpoint.event:not(.breakpoint-paused-icon) .icon): Deleted.
LayoutTests:
- inspector/dom-debugger/event-animation-frame-breakpoints-expected.txt: Added.
- inspector/dom-debugger/event-animation-frame-breakpoints.html: Added.
- inspector/dom-debugger/event-breakpoint-with-navigation.html:
- inspector/dom-debugger/event-timer-breakpoints-expected.txt: Added.
- inspector/dom-debugger/event-timer-breakpoints.html: Added.
- inspector/dom-debugger/event-listener-breakpoints-expected.txt: Renamed from LayoutTests/inspector/dom-debugger/event-breakpoints-expected.txt.
- inspector/dom-debugger/event-listener-breakpoints.html: Renamed from LayoutTests/inspector/dom-debugger/event-breakpoints.html.
- inspector/dom-debugger/resources/event-breakpoint-utilities.js: Added.
(TestPage.registerInitializer.window.teardown):
(TestPage.registerInitializer.window.failOnPause):
(TestPage.registerInitializer.window.addBreakpoint):
(TestPage.registerInitializer.window.removeBreakpoint):
(TestPage.registerInitializer.window.disableBreakpoint):
(TestPage.registerInitializer.window.awaitEvent):
- 2:31 PM Changeset in webkit [235247] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, rolling out r234942.
Caused page loading issues in iTunes
Reverted changeset:
"Transition more WKWebViewConfiguration ivars to
API::PageConfiguration values"
https://bugs.webkit.org/show_bug.cgi?id=188663
https://trac.webkit.org/changeset/234942
- 2:26 PM Changeset in webkit [235246] by
-
- 1 copy in tags/Safari-606.1.36.1.9
Tag Safari-606.1.36.1.9.
- 2:24 PM Changeset in webkit [235245] by
-
- 18 edits4 moves4 adds in trunk
[iOS] Support the inputmode attribute on contenteditable elements
https://bugs.webkit.org/show_bug.cgi?id=188878
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
- web-platform-tests/html/dom/reflection-misc-expected.txt: Rebaseline.
Source/WebCore:
The inputmode attribute should apply to contenteditable elements, in addition to
textfield inputs and textareas.
Moved the inputmode attribute from HTMLInputElement.idl and
HTMLTextAreaElement.idl to HTMLElement.idl to reflect the specification.
Also moved all logic to convert between the InputMode enum and string values
into InputMode.cpp to avoid exposing unnecessary details to WebKit. Furthermore,
InputMode::Auto was renamed to InputMode::Unspecified to avoid confusion with the
specification.
Spec: https://html.spec.whatwg.org/multipage/interaction.html#input-modalities:-the-inputmode-attribute
Tests: fast/forms/inputmode-attribute-contenteditable.html
fast/forms/inputmode-attribute-input.html
fast/forms/inputmode-attribute-textarea.html
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- html/HTMLElement.cpp:
(WebCore::HTMLElement::canonicalInputMode const):
(WebCore::HTMLElement::inputMode const):
(WebCore::HTMLElement::setInputMode):
- html/HTMLElement.h:
- html/HTMLElement.idl:
- html/HTMLInputElement.idl:
- html/HTMLTextAreaElement.idl:
- html/HTMLTextFormControlElement.cpp:
- html/HTMLTextFormControlElement.h:
- html/InputMode.cpp: Renamed from Source/WebCore/html/InputModeNames.cpp.
(WebCore::inputModeForAttributeValue):
(WebCore::stringForInputMode):
- html/InputMode.h: Renamed from Source/WebCore/html/InputModeNames.h.
Source/WebKit:
Ensured that the assistedNodeInformation for a contenteditable element reflects
the value of the element's inputmode attribute.
Moved logic to obtain the InputMode from the attribute value into WebCore.
- Shared/AssistedNodeInformation.h:
- UIProcess/ios/WKContentViewInteraction.mm:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getAssistedNodeInformation):
LayoutTests:
Added additional tests to verify the inputmode attribute is accessible on
HTMLElements.
- fast/forms/inputmode-attribute-contenteditable-expected.txt: Added.
- fast/forms/inputmode-attribute-contenteditable.html: Added.
- fast/forms/inputmode-attribute-input-expected.txt: Renamed from LayoutTests/fast/forms/inputmode-attribute-expected.txt.
- fast/forms/inputmode-attribute-input.html: Renamed from LayoutTests/fast/forms/inputmode-attribute.html.
- fast/forms/inputmode-attribute-textarea-expected.txt: Added.
- fast/forms/inputmode-attribute-textarea.html: Added.
- js/dom/dom-static-property-for-in-iteration-expected.txt: Rebaseline.
- 2:14 PM Changeset in webkit [235244] by
-
- 3 edits in tags/Safari-607.1.3/Source/WebKit
Revert r234942. rdar://problem/43655048
- 1:51 PM Changeset in webkit [235243] by
-
- 8 edits2 adds in trunk
Assert in NetworkBlobRegistry::unregisterBlobURL after network process had terminated
https://bugs.webkit.org/show_bug.cgi?id=188880
Reviewed by Saam Barati.
Source/WebKit:
Removed the debug assertion. WebContent process might be asking this network process
to unregister a blob registered from another network processs which had since crashed.
We could keep track of which blob had been registered with which network process
in WebContent process and avoid sending IPC to the network process but that's a lot of
house-keeping for virtually no benefit other than not hitting this assertion.
- NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
(WebKit::NetworkBlobRegistry::unregisterBlobURL):
Tools:
Fixed the bug that testRunner's terminateNetworkProcess, terminateServiceWorkerProcess, and terminateStorageProcess
were asynchronously terminating respective processes. Do so synchronously so that we can deterministically
test WebKit's behavior in layout tests.
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::terminateNetworkProcess):
(WTR::TestRunner::terminateServiceWorkerProcess):
(WTR::TestRunner::terminateStorageProcess):
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
LayoutTests:
Added a layout test which demonstrates this debug assertion.
- TestExpectations:
- fast/files/blob-network-process-crash-expected.txt: Added.
- fast/files/blob-network-process-crash.html: Added.
- platform/wk2/TestExpectations:
- 1:20 PM Changeset in webkit [235242] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector:
console.inspect(sessionStorage)first time does not show Session Storage content view if Storage tab was previously unvisited
https://bugs.webkit.org/show_bug.cgi?id=188801
Reviewed by Matt Baker.
- UserInterface/Base/Main.js:
(WI.tabContentViewClassForRepresentedObject):
(WI._storageWasInspected):
Since theWI.StorageSidebarPanelis not created until theWI.StorageTabContentViewis
created, theWI.StorageManager.Event.DOMStorageObjectWasInspectedand
WI.StorageManager.Event.DatabaseWasInspectedevents do not reach the sidebar. We should
follow whatWI._domNodeWasInspecteddoes and additionally callWI.showRepresentedObject
on the inspected object.
- 1:08 PM Changeset in webkit [235241] by
-
- 6 edits in trunk
[CMake] Add HAVE_MALLOC_TRIM definition
https://bugs.webkit.org/show_bug.cgi?id=188897
Reviewed by Konstantin Tokarev.
.:
Add CMake check for malloc_trim.
- Source/cmake/OptionsCommon.cmake:
PerformanceTests:
MallocBench should only be built on Apple platforms and platforms that
have malloc_trim.
- CMakeLists.txt:
Source/WTF:
Use HAVE(MALLOC_TRIM) check instead of GLIBC.
- wtf/linux/MemoryPressureHandlerLinux.cpp:
(WTF::MemoryPressureHandler::platformReleaseMemory):
- 1:06 PM Changeset in webkit [235240] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: REGRESSION: InspectorStyleSheet not visible in the resources sidebar
https://bugs.webkit.org/show_bug.cgi?id=188819
<rdar://problem/43579039>
Reviewed by Brian Burg.
- UserInterface/Models/ResourceCollection.js:
(WI.ResourceCollection.prototype.objectIsRequiredType):
- 12:58 PM Changeset in webkit [235239] by
-
- 2 edits in trunk/Source/WebKit
Remove keys of defaults that are no longer used in webProcessPool
https://bugs.webkit.org/show_bug.cgi?id=188855
Reviewed by Alex Christensen.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::registerUserDefaultsIfNeeded):
- 12:57 PM Changeset in webkit [235238] by
-
- 2 edits in trunk/Source/JavaScriptCore
YARR: Need to JIT compile a RegExp before using containsNestedSubpatterns flag
https://bugs.webkit.org/show_bug.cgi?id=188895
Reviewed by Mark Lam.
Found while working on another change. This will allow processing of nested
parenthesis that require saved ParenContext structures.
- yarr/YarrJIT.cpp:
(JSC::Yarr::YarrGenerator::compile):
- 12:52 PM Changeset in webkit [235237] by
-
- 27 edits2 copies1 delete in trunk/Tools
[WHLSL] Allow native types to have type arguments (like "vector<float, 4>")
https://bugs.webkit.org/show_bug.cgi?id=188773
Reviewed by Filip Pizlo.
Before this patch, it was impossible to represent "native typedef vector<float, 4>" because NativeTypes couldn't have
typeArguments.
Previously, the way to identify a type was strictly by name, which was represented by a string. Therefore, when something like
"vector<int, 3>" was parsed, it would produce a TypeRef with the name "vector" and typeArguments [TypeRef, IntLiteral]. Then,
there was a pass to convert the TypeRef to have the name "int3" and no typeArguments. After this transformation, each type could
be uniquely identified by name. That name was then matched to the string-only NativeType name.
This is okay for vectors and matrices, but it is unfortunate for textures (e.g. Texture2D<float4>) because they don't have any
natural string-only name. In addition, the canonicalization would have to be made aware of the fact that Texture2D<float4> is
the same as Texture2D<vector<float, 4>>. Similarly, an author may wish to typedef float4 to a different name.
It would be possible to mangle the names of the texture types to something unique, but then we lose information about the inner
type. For example, if we did this, Visitor wouldn't recurse into the float4 when encountering Texture2D<float4> because that
information would be lost. This could potentially make operations like programWithUnnecessaryThingsRemoved() more difficult to
implement in the future.
So, it would be better to have each type uniquely identified by (name, typeArguments). TypeRef will therefore also have
typeArguments which are used to determine which type it is referencing. After this analysis is done to determine what each
TypeRef is referencing, subsequent passes shouldn't care about the typeArguments and should only care about the .type field
which had been set - this was true even before this patch.
This means that NameContext has to aggregate types that accept typeArguments into arrays, where each array holds all the Types
that have the same name but different typeArguments. Then, when we need to match a TypeRef with a Type, we can ask the
NameContext for the appropriate array. This is the same way that function resolution works.
We can use Node.unify() to determine whether a TypeRef matches a NativeType. Eventually, this will go away, but for now, this is
an okay start. This works just about the same way that function overload resolution works.
- WebGPUShadingLanguageRI/All.js:
- WebGPUShadingLanguageRI/CallExpression.js:
(CallExpression.prototype.resolve):
- WebGPUShadingLanguageRI/CheckTypesWithArguments.js: Copied from Tools/WebGPUShadingLanguageRI/ResolveTypeDefs.js. After types
have been resolved, there should be no TypeRefs with name "vector" that don't have type arguments. This is just a sanity check.
(checkTypesWithArguments.TypeWithArgumentsChecker.prototype.visitTypeRef):
(checkTypesWithArguments.TypeWithArgumentsChecker):
(checkTypesWithArguments):
- WebGPUShadingLanguageRI/Checker.js:
(Checker.prototype.visitProgram): Program.types mirrors NameContext: it's a Map that maps strings to types. Because types with
typeArguments share names, this has to be updated to map strings to arrays for these types.
(Checker.prototype.visitTypeRef):
- WebGPUShadingLanguageRI/InferTypesForCall.js:
(inferTypesForCall): Don't know why this was here.
(inferTypesForTypeArguments): Same as inferTypesForCall, but this one is for matching type arguments.
- WebGPUShadingLanguageRI/Intrinsics.js: Adding the types. This patch also adds some scalar types like half, char, etc, but they
don't have any functions which accept them. Those will be tested in my next patch which adds math functions for these types. This
moves in the direction of matching the standard library in the spec.
(Intrinsics.cast):
(Intrinsics.bitwiseCast):
(Intrinsics.castToHalf):
(Intrinsics.):
(Intrinsics):
- WebGPUShadingLanguageRI/NameContext.js: Aggregate types with typeArguments into arrays.
(NameContext.prototype.add):
(NameContext.prototype.get let):
(NameContext.underlyingThings.prototype.else):
(NameContext.prototype.Symbol.iterator):
(NameContext):
- WebGPUShadingLanguageRI/NameResolver.js:
(NameResolver.prototype.visitTypeRef): Call TypeRef.resolve().
(NameResolver.prototype.visitCallExpression):
(NameResolver):
(NameResolver.prototype.visitVectorType): Deleted.
- WebGPUShadingLanguageRI/NativeType.js: NativeTypes can have type arguments now.
(NativeType):
(NativeType.prototype.get typeArguments):
(NativeType.prototype.toString):
(NativeType.create):
- WebGPUShadingLanguageRI/Prepare.js:
(let.prepare):
- WebGPUShadingLanguageRI/Program.js: Update to work with types aggregated into arrays.
(Program.prototype.add):
(Program.prototype.toString):
(Program):
- WebGPUShadingLanguageRI/RemoveTypeArguments.js: Removed.
- WebGPUShadingLanguageRI/ResolveNames.js: Update to work with types aggregated into arrays.
(resolveNamesInTypes):
- WebGPUShadingLanguageRI/ResolveOverloadImpl.js: Resolve the type overload for types with typeArguments.
- WebGPUShadingLanguageRI/ResolveTypeDefs.js: Update to work with types aggregated into arrays.
(resolveTypeDefsInTypes):
- WebGPUShadingLanguageRI/Rewriter.js: TypeRefs and Native/Vector types can have typeArguments.
(Rewriter.prototype.visitTypeRef):
(Rewriter.prototype.visitVectorType):
(Rewriter):
- WebGPUShadingLanguageRI/SPIRV.html:
- WebGPUShadingLanguageRI/StandardLibrary.js: Matches Intrinsics.
(bool.operator):
- WebGPUShadingLanguageRI/StatementCloner.js: Native types can have typeArguments.
(StatementCloner.prototype.visitNativeType):
- WebGPUShadingLanguageRI/SynthesizeDefaultConstructorOperator.js: Vector types need constructors too.
(synthesizeDefaultConstructorOperator.FindAllTypes.prototype.visitVectorType):
(synthesizeDefaultConstructorOperator.FindAllTypes):
(synthesizeDefaultConstructorOperator):
- WebGPUShadingLanguageRI/SynthesizeStructAccessors.js: No reason to distinguish between wrapping and instantiating a TypeRef.
(synthesizeStructAccessors.createTypeRef):
- WebGPUShadingLanguageRI/Test.html:
- WebGPUShadingLanguageRI/Test.js:
- WebGPUShadingLanguageRI/TypeOverloadResolutionFailure.js: Copied from Tools/WebGPUShadingLanguageRI/ResolveTypeDefs.js.
(TypeOverloadResolutionFailure):
(TypeOverloadResolutionFailure.prototype.get type):
(TypeOverloadResolutionFailure.prototype.get reason):
(TypeOverloadResolutionFailure.prototype.toString):
- WebGPUShadingLanguageRI/TypeRef.js:
(TypeRef.wrap):
(TypeRef.prototype.resolve): Figure out which item in the possibleOverloads array matches this.
(TypeRef.prototype.toString):
(TypeRef):
(TypeRef.instantiate): Deleted.
- WebGPUShadingLanguageRI/UnificationContext.js: We need to give literals a chance to assume their preferred type. This
adds this facility back into the compiler (it was previously deleted).
(UnificationContext.prototype.verify):
- WebGPUShadingLanguageRI/VectorType.js: Vector types have type arguments.
(VectorType):
(VectorType.prototype.get elementType):
(VectorType.prototype.get numElements):
(VectorType.prototype.get numElementsValue):
(VectorType.prototype.toString):
- WebGPUShadingLanguageRI/Visitor.js: Iterate over the typeArguments.
(Visitor.prototype.visitTypeRef):
(Visitor.prototype.visitNativeType):
(Visitor.prototype.visitVectorType):
(Visitor):
- WebGPUShadingLanguageRI/index.html:
- 12:51 PM Changeset in webkit [235236] by
-
- 2 edits in trunk/Source/WebKit
[Cocoa] First scroll gesture in pinned, non-rubber-banding WKWebView may fail to initiate back/forward swipe
https://bugs.webkit.org/show_bug.cgi?id=188894
<rdar://problem/43651434>
Reviewed by Tim Horton.
- WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::wheelEvent): Set the rubber-band state on the ScrollingTree
synchronously rather than dispatching doing that to the scrolling thread. This is safe to
do because ScrollingTree synchrnoizes access to the rubber-band state with an internal
mutex.
- 12:48 PM Changeset in webkit [235235] by
-
- 2 edits in trunk/Source/WTF
[WTF] Add generic implementation for Memory querying
https://bugs.webkit.org/show_bug.cgi?id=188867
<rdar://problem/43630726>
Unreviewed build fix.
Adding MemoryPressureHandler::memoryMeasurementTimerFired was done
prematurely.
- wtf/generic/MemoryPressureHandlerGeneric.cpp:
(WTF::MemoryPressureHandler::memoryMeasurementTimerFired): Deleted.
- 12:43 PM Changeset in webkit [235234] by
-
- 3 edits3 adds in trunk
self.isSecureContext undefined in Service Worker
https://bugs.webkit.org/show_bug.cgi?id=188842
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
- web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/isSecureContext.https-expected.txt: Added.
- web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/isSecureContext.https.html: Added.
- web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/isSecureContext.serviceworker.js: Added.
(test):
Source/WebKit:
Enable isSecureContext runtime flag.
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::updatePreferencesStore):
- 12:31 PM Changeset in webkit [235233] by
-
- 3 edits in trunk/Source/WebCore
[MediaStream] Store video preset sizes in a map
https://bugs.webkit.org/show_bug.cgi?id=188866
<rdar://problem/43622643>
Reviewed by Youenn Fablet.
No new tests, tested manually.
- platform/mediastream/mac/AVVideoCaptureSource.h:
- platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::AVVideoCaptureSource):
(WebCore::AVVideoCaptureSource::initializeCapabilities):
(WebCore::AVVideoCaptureSource::sizeForPreset):
(WebCore::AVVideoCaptureSource::setPreset):
(WebCore::AVVideoCaptureSource::bestSessionPresetForVideoDimensions):
(WebCore::sizeForPreset): Deleted.
(WebCore::AVVideoCaptureSource::bestSessionPresetForVideoDimensions const): Deleted.
- 12:16 PM Changeset in webkit [235232] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, attempt to fix the build after r235230.
- platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp:
- 11:11 AM Changeset in webkit [235231] by
-
- 1 edit1 delete in trunk/Source/ThirdParty/libwebrtc
2018-08-23 youenn fablet <youennf@gmail.com>
Remove libwebrtc unneeded .exe file.
Unreviewed.
- Source/webrtc/data/voice_engine/stereo_rtp_files/rtpplay.exe: Removed.
- 10:32 AM Changeset in webkit [235230] by
-
- 3050 edits25 copies146 moves1061 adds216 deletes in trunk
2018-08-23 Youenn Fablet <youenn@apple.com>
Update libwebrtc up to 984f1a80c0
https://bugs.webkit.org/show_bug.cgi?id=188745
<rdar://problem/43539177>
Reviewed by Eric Carlson.
Source/ThirdParty/libwebrtc:
Update libwebrtc main code.
Update exported symbols and related applied modifications.
- CMakeLists.txt:
- Configurations/libwebrtc.iOS.exp:
- Configurations/libwebrtc.iOSsim.exp:
- Configurations/libwebrtc.mac.exp:
- Configurations/libwebrtc.xcconfig:
- Source/webrtc: refreshed
- WebKit/0001-Updating-webrtc.patch: Added.
- WebKit/0001-Adapting-libwebrtc-H264-codec.patch: Removed.
- WebKit/0001-Disable-SIGPIPE-for-WebRTC-sockets.patch: Removed.
- WebKit/0001-Update-RTCVideoEncoderH264.mm-for-WebKit.patch: Removed.
- WebKit/0001-Using-VCP.patch: Removed.
- WebKit/0003-Fixing-VP8-files.patch: Removed.
- WebKit/0004-Removing-parameter-names-from-files-included-from-We.patch: Removed.
- WebKit/0005-Fix-RTC_FATAL.patch: Removed.
- WebKit/0006-Disabling-VP8.patch: Removed.
- WebKit/0007-Fix-RTC_STRINGIZE.patch: Removed.
- WebKit/0008-Fix-sanitizer.patch: Removed.
- WebKit/0009-Remove-dispatch_set_target_queue.patch: Removed.
- WebKit/0010-Fix-RTCVideoEncoderH264-CVPixelBuffer-leak.patch: Removed.
- WebKit/0011-Fix-AudioDeviceID-array-leak.patch: Removed.
- WebKit/0012-Add-WK-prefix-to-Objective-C-classes-and-protocols.patch: Removed.
- WebKit/0013-Fix-SafeSetError-use-after-move.patch: Removed.
- libwebrtc.xcodeproj/project.pbxproj:
Source/WebCore:
Updated implementation according new webrtc backend.
Instead of modifying libwebrtc header files, we disable unused parameter warning for such headers included in WebCore.
WebCore implementation is updated according new webrtc API, mostly AddRef/Release.
RealtimeOutgoingVideoSource now uses a pixel convolver to convert RGB pixel buffers as I420.
Covered by existing tests.
- CMakeLists.txt:
- Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h:
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: (WebCore::LibWebRTCMediaEndpoint::addTrack): (WebCore::LibWebRTCMediaEndpoint::mediaStreamFromRTCStream): (WebCore::fillEncodingParameters): (WebCore::fillRtpParameters):
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h: (WebCore::LibWebRTCMediaEndpoint::Release const):
- WebCore.xcodeproj/project.pbxproj:
- platform/mediastream/RealtimeIncomingAudioSource.h:
- platform/mediastream/RealtimeIncomingVideoSource.h:
- platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::supportsSizeAndFrameRate): (WebCore::RealtimeMediaSource::supportsConstraint const): (WebCore::RealtimeMediaSource::supportsConstraints):
- platform/mediastream/RealtimeOutgoingAudioSource.h:
- platform/mediastream/RealtimeOutgoingVideoSource.h:
- platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp: (WebCore::GStreamerVideoDecoder::newSampleCallback):
- platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp: (WebCore::GStreamerVideoEncoder::GStreamerVideoEncoder): (WebCore::GStreamerVideoEncoder::newSampleCallback):
- platform/mediastream/libwebrtc/LibWebRTCProvider.h:
- platform/mediastream/libwebrtc/LibWebRTCAudioModule.h:
- platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
- platform/mediastream/libwebrtc/LibWebRTCProvider.h:
- platform/mediastream/mac/MockRealtimeVideoSourceMac.mm: (WebCore::MockRealtimeVideoSourceMac::CMSampleBufferFromPixelBuffer):
- platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:
- platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp: (WebCore::ConvertToI420): (WebCore::RealtimeOutgoingVideoSourceCocoa::sampleBufferUpdated):
- platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.h:
- platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.mm: Added. (WebCore::RealtimeOutgoingVideoSourceCocoa::convertToYUV):
- testing/MockLibWebRTCPeerConnection.cpp: (WebCore::MockLibWebRTCPeerConnection::AddTrack):
- testing/MockLibWebRTCPeerConnection.h: (WebCore::MockRtpSender::GetParameters): (WebCore::MockRtpSender::SetParameters):
LayoutTests:
Updated tests according new webrtc backend.
- webrtc/libwebrtc/setLocalDescriptionCrash.html:
- webrtc/video-getParameters.html:
LayoutTests/imported/w3c:
- web-platform-tests/webrtc/RTCPeerConnection-addIceCandidate-expected.txt:
- web-platform-tests/webrtc/no-media-call-expected.txt:
- 10:20 AM Changeset in webkit [235229] by
-
- 6 edits in trunk
[Attachment Support] Attachment elements don't appear in drag images on macOS
https://bugs.webkit.org/show_bug.cgi?id=188823
<rdar://problem/43616378>
Reviewed by Tim Horton.
Source/WebCore:
Currently, attachment elements don't show up in the drag image snapshot on macOS. This is because only the
"Selection" phase is painted when generating a drag image on macOS, and many replaced renderers (with some
exceptions, such as RenderImage) only paint visible content during the "Foreground" phase. To fix this, we
override RenderAttachment::paintReplaced to paint the attachment in the case where the Selection phase is being
painted.
Tests: WKAttachmentTestsMac.DragAttachmentAsFilePromise
WKAttachmentTests.MoveAttachmentElementAsIconByDragging
- rendering/RenderAttachment.cpp:
(WebCore::RenderAttachment::paintReplaced):
- rendering/RenderAttachment.h:
- rendering/RenderThemeMac.mm:
(WebCore::titleTextColorForAttachment):
(WebCore::AttachmentLayout::layOutTitle):
Plumb an AttachmentLayoutStyle (i.e. NonSelected or Selected) to AttachmentLayout, and use this bit when
determining the title text color, as well whether to paint backgrounds for the icon and title.
(WebCore::AttachmentLayout::AttachmentLayout):
(WebCore::RenderThemeMac::attachmentIntrinsicSize const):
(WebCore::RenderThemeMac::attachmentBaseline const):
(WebCore::paintAttachmentIconBackground):
(WebCore::paintAttachmentTitleBackground):
Bail from painting backgrounds if a selected style is used for the attachment.
(WebCore::RenderThemeMac::paintAttachment):
Rather than check the RenderAttachment's selection state when determining whether to paint with a non-selected
or selected style, only use selected style if the RenderAttachment has a selection _and_ the painting phase is
not "Selection". While this sounds extremely counter-intuitive, the "Selection" painting phase refers to
painting the selected foreground content _without_ including any part of the selection highlight.
Tools:
Adjusts a couple of existing tests to additionally verify that the drag image generated when dragging an
attachment element in macOS is not completely transparent.
- TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(isCompletelyTransparent):
(TestWebKitAPI::TEST):
- 10:09 AM Changeset in webkit [235228] by
-
- 4 edits in trunk/LayoutTests
Update iOS selection tests to reflect new behavior introduced by r235153
https://bugs.webkit.org/show_bug.cgi?id=188888
Reviewed by Megan Gardner.
- fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-down-to-change-selected-text.html:
- fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-up-to-change-selected-text.html:
- fast/events/touch/ios/long-press-on-editable-content-then-drag-up-to-change-selected-text.html:
- 9:39 AM Changeset in webkit [235227] by
-
- 4 edits in trunk/Tools
Explain test name matching in run-api-tests help
https://bugs.webkit.org/show_bug.cgi?id=188280
Reviewed by Ryosuke Niwa.
Improve the run-api-tests help message to explain how test
name matching works.
- Scripts/webkitpy/api_tests/run_api_tests.py:
(parse_args):
- Scripts/webkitpy/port/base.py:
(Port):
(Port.path_to_api_test_binaries): Make binary names a globally accessible array.
- Scripts/webkitpy/port/win.py:
(WinPort):
(WinPort.path_to_api_test_binaries): Ditto.
- 9:37 AM Changeset in webkit [235226] by
-
- 2 edits in trunk/Source/WebInspectorUI
JSContext Inspector: Scripts not showing up in Resources tab
https://bugs.webkit.org/show_bug.cgi?id=188814
<rdar://problem/43576117>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-08-23
Reviewed by Brian Burg.
- UserInterface/Views/ResourceSidebarPanel.js:
(WI.ResourceSidebarPanel.prototype._addScript):
This path shouldn't apply to JSContext inspection which will
never have a pageTarget and but doesn't have a mainResource.
- 8:51 AM Changeset in webkit [235225] by
-
- 5 edits1 delete in trunk
Use "wpt serve" to launch WPT server
https://bugs.webkit.org/show_bug.cgi?id=188848
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
- resources/config.json:
Use config alias to serve http/wpt content as /WebKit/
Tools:
Use "wpt serve" provided by WPT instead of using our custom launcher.
This simplifies things and will avoid future breakage.
Further simplify web_platform_test_server.py by removing no longer needed actions.
- Do not copy files but use alias
- Do not kill main pid, which leaves subprocesses alive, use interrupt instead.
- Stop enumerating subprocess pids.
- Scripts/webkitpy/common/system/executive_mock.py:
(MockExecutive.interrupt):
- Scripts/webkitpy/layout_tests/servers/web_platform_test_launcher.py: Removed.
- Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:
(WebPlatformTestServer.init):
(WebPlatformTestServer.ports_to_forward):
(WebPlatformTestServer._prepare_config):
(WebPlatformTestServer._spawn_process):
(WebPlatformTestServer._stop_running_server):
- 8:30 AM Changeset in webkit [235224] by
-
- 12 edits in trunk/Source/WebKit
Unreviewed, rolling out r235216.
https://bugs.webkit.org/show_bug.cgi?id=188887
Caused 50+ Layout Tests to Crash and 173 api Failures on Debug
builds (Requested by Truitt on #webkit).
Reverted changeset:
"Move legacy directory configuration from WebProcessPool to
API::WebsiteDataStore"
https://bugs.webkit.org/show_bug.cgi?id=188765
https://trac.webkit.org/changeset/235216
- 8:12 AM Changeset in webkit [235223] by
-
- 8 edits1 copy1 add in trunk/Source/WebCore
[LFC][Floating] Decouple the incoming floats and floats already placed in the list
https://bugs.webkit.org/show_bug.cgi?id=188886
Reviewed by Antti Koivisto.
This is in preparation for the float avoidance feature where formatting context root boxes avoid existing floats.
- Introduce FloatBox class for the incoming floats (This will need to be renamed when adding support for avoidance -incoming box is actually not a float).
- Use the existing FloatState::FloatItem class for placed floats.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/LayoutUnits.h:
- layout/Verification.cpp:
(WebCore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree const):
- layout/displaytree/DisplayBox.h:
- layout/floats/FloatBox.cpp: Added.
(WebCore::Layout::FloatBox::FloatBox):
(WebCore::Layout::FloatBox::initializePosition):
(WebCore::Layout::FloatBox::isLeftAligned const):
(WebCore::Layout::FloatBox::setLeft):
(WebCore::Layout::FloatBox::setTopLeft):
(WebCore::Layout::FloatBox::resetVertically):
(WebCore::Layout::FloatBox::resetHorizontally):
(WebCore::Layout::FloatBox::topLeftInContainingBlock const):
- layout/floats/FloatBox.h: Copied from Source/WebCore/layout/floats/FloatingContext.h.
(WebCore::Layout::FloatBox::top const):
(WebCore::Layout::FloatBox::left const):
(WebCore::Layout::FloatBox::marginTop const):
(WebCore::Layout::FloatBox::marginLeft const):
(WebCore::Layout::FloatBox::marginBottom const):
(WebCore::Layout::FloatBox::marginRight const):
(WebCore::Layout::FloatBox::rectWithMargin const):
(WebCore::Layout::FloatBox::setTop):
- layout/floats/FloatingContext.cpp:
(WebCore::Layout::FloatingPair::verticalPosition const):
(WebCore::Layout::begin):
(WebCore::Layout::FloatingContext::positionForFloat const):
(WebCore::Layout::FloatingContext::verticalPositionWithClearance const):
(WebCore::Layout::FloatingContext::floatingPosition const):
(WebCore::Layout::FloatingPair::horiztonalPosition const):
(WebCore::Layout::FloatingPair::bottom const):
(WebCore::Layout::Iterator::Iterator):
(WebCore::Layout::Iterator::operator++):
(WebCore::Layout::Iterator::set):
(WebCore::Layout::FloatingContext::initialVerticalPosition const): Deleted.
(WebCore::Layout::FloatingContext::alignWithContainingBlock const): Deleted.
(WebCore::Layout::FloatingContext::alignWithFloatings const): Deleted.
(WebCore::Layout::FloatingContext::toContainingBlock const): Deleted.
- layout/floats/FloatingContext.h:
- layout/floats/FloatingState.h:
(WebCore::Layout::FloatingState::root const):
(WebCore::Layout::FloatingState::layoutContext const):
- 6:59 AM Changeset in webkit [235222] by
-
- 2 edits in trunk/Tools
run-api-tests: Add --webkit-only, --webcore-only and --webkit-legacy-only options to run WebKit, WebCore and WebKitLegacy tests
https://bugs.webkit.org/show_bug.cgi?id=188262
Reviewed by Ryosuke Niwa.
- Scripts/webkitpy/api_tests/run_api_tests.py:
(parse_args):
- 5:34 AM Changeset in webkit [235221] by
-
- 10 edits in trunk/Source
[CoordGraphics] Remove the remaining CoordinatedGraphicsLayerState cruft
https://bugs.webkit.org/show_bug.cgi?id=188881
Reviewed by Carlos Garcia Campos.
Source/WebCore:
Remove what's left of CoordinatedGraphicsLayerState usage in the
CoordinatedGraphics subsystem. In CoordinatedGraphicsLayer, this means
dropping the m_layerState member variable since at this point it is not
used anymore in any capacity. Affected helper methods and member
variables are also removed where possible.
The syncLayerState() method on the CoordinatedGraphicsLayerClient
interface is adjusted to not accept any parameters. Client should just
mark frame synchronization as required while the layer state is now
managed differently.
Instead of the CoordinatedLayerID (which is removed) the
Nicosia::PlatformLayer::LayerID alias is introduced as a layer ID type,
aliased to the uint64_t type.
CoordinatedGraphicsState.h file is rid of all structs except the
basic CoordinatedGraphicsState struct that at this point contains only
a reference to the Nicosia::Scene object. This will be further
simplified in the patches that follow.
- platform/graphics/nicosia/NicosiaPlatformLayer.h:
(Nicosia::PlatformLayer::id const):
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::didChangeAnimations):
(WebCore::CoordinatedGraphicsLayer::didChangeChildren):
(WebCore::CoordinatedGraphicsLayer::didChangeFilters):
(WebCore::CoordinatedGraphicsLayer::didUpdateTileBuffers):
(WebCore::CoordinatedGraphicsLayer::didChangeGeometry):
(WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::setPosition):
(WebCore::CoordinatedGraphicsLayer::setAnchorPoint):
(WebCore::CoordinatedGraphicsLayer::setSize):
(WebCore::CoordinatedGraphicsLayer::setTransform):
(WebCore::CoordinatedGraphicsLayer::setChildrenTransform):
(WebCore::CoordinatedGraphicsLayer::setPreserves3D):
(WebCore::CoordinatedGraphicsLayer::setMasksToBounds):
(WebCore::CoordinatedGraphicsLayer::setDrawsContent):
(WebCore::CoordinatedGraphicsLayer::setContentsVisible):
(WebCore::CoordinatedGraphicsLayer::setContentsOpaque):
(WebCore::CoordinatedGraphicsLayer::setBackfaceVisibility):
(WebCore::CoordinatedGraphicsLayer::setOpacity):
(WebCore::CoordinatedGraphicsLayer::setContentsRect):
(WebCore::CoordinatedGraphicsLayer::setContentsTileSize):
(WebCore::CoordinatedGraphicsLayer::setContentsTilePhase):
(WebCore::CoordinatedGraphicsLayer::setContentsToSolidColor):
(WebCore::CoordinatedGraphicsLayer::setShowDebugBorder):
(WebCore::CoordinatedGraphicsLayer::setShowRepaintCounter):
(WebCore::CoordinatedGraphicsLayer::setMaskLayer):
(WebCore::CoordinatedGraphicsLayer::setReplicatedByLayer):
(WebCore::CoordinatedGraphicsLayer::setNeedsDisplay):
(WebCore::CoordinatedGraphicsLayer::setNeedsDisplayInRect):
(WebCore::CoordinatedGraphicsLayer::setDebugBorder):
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
(WebCore::CoordinatedGraphicsLayer::syncPendingStateChangesIncludingSubLayers):
(WebCore::CoordinatedGraphicsLayer::purgeBackingStores):
(WebCore::CoordinatedGraphicsLayer::setCoordinatorIncludingSubLayersIfNeeded):
(WebCore::toCoordinatedLayerID): Deleted.
(WebCore::CoordinatedGraphicsLayer::didChangeLayerState): Deleted.
(WebCore::CoordinatedGraphicsLayer::syncChildren): Deleted.
(WebCore::CoordinatedGraphicsLayer::syncFilters): Deleted.
(WebCore::CoordinatedGraphicsLayer::syncLayerState): Deleted.
(WebCore::CoordinatedGraphicsLayer::syncAnimations): Deleted.
(WebCore::CoordinatedGraphicsLayer::resetLayerState): Deleted.
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
- platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
(): Deleted.
(WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState): Deleted.
(WebCore::CoordinatedGraphicsLayerState::hasPendingChanges const): Deleted.
Source/WebKit:
Rid CompositingCoordinator class of code that manages now-deleted state
tracking of layer creation, update and removal on the
CoordinatedGraphicsState class. The syncLayerState() method is changed
accordingly, now only enforcing a frame synchronization when called.
Use of Nicosia::PlatformLayer::LayerID is adopted since the
CoordinatedLayerID type has been removed.
- Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::purgeGLResources):
- Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
- WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:
(WebKit::CompositingCoordinator::flushPendingLayerChanges):
(WebKit::CompositingCoordinator::initializeRootCompositingLayerIfNeeded):
(WebKit::CompositingCoordinator::syncLayerState):
(WebKit::CompositingCoordinator::createGraphicsLayer):
(WebKit::CompositingCoordinator::detachLayer):
(WebKit::CompositingCoordinator::attachLayer):
(WebKit::CompositingCoordinator::clearPendingStateChanges): Deleted.
- WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:
- 12:00 AM Changeset in webkit [235220] by
-
- 4 edits in trunk/Source/WebKit
NetworkCache::Storage::lastStableVersion should be a developer-only feature
https://bugs.webkit.org/show_bug.cgi?id=188843
<rdar://problem/43574100>
Reviewed by Geoffrey Garen.
- NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::deleteOldVersions):
Delete old cache versions unconditionally if we are system WebKit.
- Shared/ChildProcess.h:
- Shared/mac/ChildProcessMac.mm:
(WebKit::ChildProcess::isSystemWebKit):
Find out if WebKit is installed under '/System/'.
Aug 22, 2018:
- 11:30 PM Changeset in webkit [235219] by
-
- 4 edits in trunk/Source/WebCore
[CoordGraphics] Drop old-school PlatformLayer management in CoordinatedGraphicsLayer
https://bugs.webkit.org/show_bug.cgi?id=188850
Reviewed by Michael Catanzaro.
Remove the m_platformLayer member from the CoordinatedGraphicsLayer
class as it's been unused since the rework in r235165.
The CoordinatedGraphicsLayer::syncPlatformLayer() helper method and the
related member variable can both be removed as well. On the
CoordinatedGraphicsLayerState class, we can remove the obsolete
flags and the TextureMapperPlatformLayerProxy member variable that's
unused now that such objects are handled through the Nicosia impl class.
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::setContentsNeedsDisplay):
(WebCore::CoordinatedGraphicsLayer::setContentsToPlatformLayer):
(WebCore::CoordinatedGraphicsLayer::updatePlatformLayer):
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
(WebCore::CoordinatedGraphicsLayer::syncPlatformLayer): Deleted.
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
- platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
(WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):
- 11:27 PM Changeset in webkit [235218] by
-
- 4 edits in trunk/Source/WebCore
[CoordGraphics] Remove TiledBackingStoreClient inheritance from CoordinatedGraphicsLayer
https://bugs.webkit.org/show_bug.cgi?id=188849
Reviewed by Michael Catanzaro.
Remove the TiledBackingStoreClient inheritance from the
CoordinatedGraphicsLayer class since it's not used anymore after changes
made in r235165.
Related TiledBackingStore objects on this class, along with tile state
tracking member variables on the CoordinatedGraphicsLayerState class,
are also removed.
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::resetLayerState):
(WebCore::CoordinatedGraphicsLayer::purgeBackingStores):
(WebCore::CoordinatedGraphicsLayer::tiledBackingStoreHasPendingTileCreation): Deleted.
(WebCore::CoordinatedGraphicsLayer::createTile): Deleted.
(WebCore::CoordinatedGraphicsLayer::updateTile): Deleted.
(WebCore::CoordinatedGraphicsLayer::removeTile): Deleted.
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
- platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
(WebCore::CoordinatedGraphicsLayerState::hasPendingChanges const):
- 11:20 PM Changeset in webkit [235217] by
-
- 8 edits2 deletes in trunk/Source
[CoordGraphics] Remove CoordinatedImageBacking and related functionality
https://bugs.webkit.org/show_bug.cgi?id=188847
Reviewed by Michael Catanzaro.
Remove the CoordinatedImageBacking class and its intertwining use in the
CoordinatedGraphics system.
Source/WebCore:
Remove the now-unused m_coordinatedImageBacking member variable from the
CoordinatedGraphicsLayer class, along with CoordinatedImageBacking::Host
inheritance. Various related helper methods are also removed.
In CoordinatedGraphicsState and CoordinatedGraphicsLayerState classes,
we are able to drop different CoordinatedImageBacking-related state
values that are not used anymore.
- platform/TextureMapper.cmake:
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::setContentsToImage):
(WebCore::CoordinatedGraphicsLayer::purgeBackingStores):
(WebCore::CoordinatedGraphicsLayer::didChangeImageBacking): Deleted.
(WebCore::CoordinatedGraphicsLayer::syncImageBacking): Deleted.
(WebCore::CoordinatedGraphicsLayer::imageBackingVisible): Deleted.
(WebCore::CoordinatedGraphicsLayer::releaseImageBackingIfNeeded): Deleted.
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
- platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
(WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):
- platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp: Removed.
- platform/graphics/texmap/coordinated/CoordinatedImageBacking.h: Removed.
Source/WebKit:
Drop the CoordinatedImageBacking object management from the
CompositingCoordinator class, along with the
CoordinatedImageBacking::Client inheritance. The corresponding image
backing state management on the CoordinatedGraphicsState class can be
removed accordingly.
- WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:
(WebKit::CompositingCoordinator::flushPendingLayerChanges):
(WebKit::CompositingCoordinator::clearPendingStateChanges):
(WebKit::CompositingCoordinator::purgeBackingStores):
(WebKit::CompositingCoordinator::createImageBackingIfNeeded): Deleted.
(WebKit::CompositingCoordinator::createImageBacking): Deleted.
(WebKit::CompositingCoordinator::updateImageBacking): Deleted.
(WebKit::CompositingCoordinator::clearImageBackingContents): Deleted.
(WebKit::CompositingCoordinator::removeImageBacking): Deleted.
(WebKit::CompositingCoordinator::flushPendingImageBackingChanges): Deleted.
- WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:
- 10:52 PM Changeset in webkit [235216] by
-
- 12 edits in trunk/Source/WebKit
Move legacy directory configuration from WebProcessPool to API::WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=188765
Reviewed by Geoffrey Garen.
Diretories are parameters of websiteDataStore instead of webProcessPool, so we should move
legacy default paths to API::WebsiteDataStore, which already stores default paths for
non-legacy cases.
- UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::createWithLegacyOptions):
(API::ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration):
- UIProcess/API/APIWebsiteDataStore.cpp:
(API::WebsiteDataStore::legacyDefaultDataStoreConfiguration):
- UIProcess/API/APIWebsiteDataStore.h:
- UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
(API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory):
(API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory):
(API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory):
(API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory):
(API::WebsiteDataStore::legacyDefaultLocalStorageDirectory):
(API::WebsiteDataStore::legacyDefaultMediaCacheDirectory):
(API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory):
(API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory):
- UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp:
(API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory):
(API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory):
(API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory):
(API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory):
(API::WebsiteDataStore::legacyDefaultLocalStorageDirectory):
(API::WebsiteDataStore::legacyDefaultMediaCacheDirectory):
(API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory):
(API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory):
- UIProcess/API/win/APIWebsiteDataStoreWin.cpp:
(API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory):
(API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory):
(API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory):
(API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory):
(API::WebsiteDataStore::legacyDefaultLocalStorageDirectory):
(API::WebsiteDataStore::legacyDefaultMediaCacheDirectory):
(API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory):
(API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory): Deleted.
- UIProcess/WebProcessPool.h:
- UIProcess/gtk/WebProcessPoolGtk.cpp:
(WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory): Deleted.
- UIProcess/win/WebProcessPoolWin.cpp:
(WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory): Deleted.
- UIProcess/wpe/WebProcessPoolWPE.cpp:
(WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory): Deleted.
- 8:01 PM Changeset in webkit [235215] by
-
- 7 edits2 adds in trunk/Source/WTF
[WTF] Add generic implementation for Memory querying
https://bugs.webkit.org/show_bug.cgi?id=188867
Reviewed by Fujii Hironori.
Moves generic implementation of MemoryPressureHandler from
MemoryPressureHandler.cpp into MemoryPressureHandlerGeneric
and generic implementation of memoryFootprint from
MemoryFootprintLinux.cpp to MemoryFootprintGeneric.
- wtf/MemoryPressureHandler.cpp:
(WTF::MemoryPressureHandler::install): Deleted.
(WTF::MemoryPressureHandler::uninstall): Deleted.
(WTF::MemoryPressureHandler::respondToMemoryPressure): Deleted.
(WTF::MemoryPressureHandler::platformReleaseMemory): Deleted.
(WTF::MemoryPressureHandler::ReliefLogger::platformMemoryUsage): Deleted.
- wtf/PlatformJSCOnly.cmake:
- wtf/generic/MemoryFootprintGeneric.cpp: Added.
(WTF::memoryFootprint):
- wtf/generic/MemoryPressureHandlerGeneric.cpp: Added.
(WTF::MemoryPressureHandler::memoryMeasurementTimerFired):
(WTF::MemoryPressureHandler::platformReleaseMemory):
(WTF::MemoryPressureHandler::install):
(WTF::MemoryPressureHandler::uninstall):
(WTF::MemoryPressureHandler::holdOff):
(WTF::MemoryPressureHandler::respondToMemoryPressure):
(WTF::MemoryPressureHandler::ReliefLogger::platformMemoryUsage):
- wtf/linux/CurrentProcessMemoryStatus.cpp:
- wtf/linux/CurrentProcessMemoryStatus.h:
- wtf/linux/MemoryFootprintLinux.cpp:
(WTF::computeMemoryFootprint):
(WTF::memoryFootprint):
- wtf/linux/MemoryPressureHandlerLinux.cpp:
- 6:51 PM Changeset in webkit [235214] by
-
- 2 edits in trunk/Source/WebCore
Store RefPtr in FocusNavigationScope
https://bugs.webkit.org/show_bug.cgi?id=188864
Reviewed by Simon Fraser.
Use RefPtr to store the root node of a tree scope and a slot element instead of a reference and a raw pointer.
- page/FocusController.cpp:
(WebCore::FocusNavigationScope::parentInScope const):
(WebCore::FocusNavigationScope::firstNodeInScope const):
(WebCore::FocusNavigationScope::lastNodeInScope const):
(WebCore::FocusNavigationScope::FocusNavigationScope):
(WebCore::FocusNavigationScope::owner const):
- 6:40 PM Changeset in webkit [235213] by
-
- 7 edits in branches/safari-606.1.36.10-branch/Source
Versioning.
- 5:58 PM Changeset in webkit [235212] by
-
- 7 edits in branches/safari-606.1.36.1-branch/Source
Versioning.
- 5:13 PM Changeset in webkit [235211] by
-
- 1 copy in tags/Safari-606.1.36.1.8
Tag Safari-606.1.36.1.8.
- 4:10 PM Changeset in webkit [235210] by
-
- 2 edits in trunk/LayoutTests
Further adjustments to http/tests/websocket/connection-refusal-in-frame-resource-load-statistics.html
https://bugs.webkit.org/show_bug.cgi?id=188856
Unreviewed test gardening. Trying to address flakiness I can't reproduce locally.
- http/tests/websocket/connection-refusal-in-frame-resource-load-statistics.html:
- 3:54 PM Changeset in webkit [235209] by
-
- 2 edits in trunk/Source/WebKit
The Storage Access API prompt should show the eTLD+1s, not the full host names
https://bugs.webkit.org/show_bug.cgi?id=188830
<rdar://problem/43380645>
Reviewed by Brent Fulgham.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestStorageAccess):
- 3:51 PM Changeset in webkit [235208] by
-
- 3 edits in trunk/Source/WebKit
De-unify WebPage
https://bugs.webkit.org/show_bug.cgi?id=188865
Reviewed by Wenson Hsieh.
- Sources.txt:
- WebKit.xcodeproj/project.pbxproj:
WebPage being unified is causing mysterious build issues inside Carbon headers
on High Sierra only. Also, WebPage by itself takes longer to build than
most full unified source files, so it might not make sense to unify it
with others (to maximize parallelism).
- 3:49 PM Changeset in webkit [235207] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, update "Web Authentication" from "Under Consideration" to "In Development"
in features.json.
- features.json:
- 3:48 PM Changeset in webkit [235206] by
-
- 42 edits in trunk/LayoutTests
Update webkit-webgl-test-harness.js for more details on WebGL 2 conformance tests
https://bugs.webkit.org/show_bug.cgi?id=188825
Patch by Justin Fan <Justin Fan> on 2018-08-22
Reviewed by Simon Fraser.
Another update to the test-harness specific to the new WebGL 2 tests in our suite. All sub-test messages are
now reported by the harness and presented in an ordered list for easier referencing. Sub-test failures are
marked accordingly and with their test number for diffing purposes.
- webgl/2.0.0/conformance2/glsl3/array-as-return-value-expected.txt:
- webgl/2.0.0/conformance2/glsl3/array-assign-constructor-expected.txt:
- webgl/2.0.0/conformance2/glsl3/array-assign-expected.txt:
- webgl/2.0.0/conformance2/glsl3/array-complex-indexing-expected.txt:
- webgl/2.0.0/conformance2/glsl3/array-element-increment-expected.txt:
- webgl/2.0.0/conformance2/glsl3/array-equality-expected.txt:
- webgl/2.0.0/conformance2/glsl3/array-in-complex-expression-expected.txt:
- webgl/2.0.0/conformance2/glsl3/attrib-location-length-limits-expected.txt:
- webgl/2.0.0/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec-expected.txt:
- webgl/2.0.0/conformance2/glsl3/compare-structs-containing-arrays-expected.txt:
- webgl/2.0.0/conformance2/glsl3/compound-assignment-type-combination-expected.txt:
- webgl/2.0.0/conformance2/glsl3/const-array-init-expected.txt:
- webgl/2.0.0/conformance2/glsl3/forbidden-operators-expected.txt:
- webgl/2.0.0/conformance2/glsl3/frag-depth-expected.txt:
- webgl/2.0.0/conformance2/glsl3/invalid-default-precision-expected.txt:
- webgl/2.0.0/conformance2/glsl3/invalid-invariant-expected.txt:
- webgl/2.0.0/conformance2/glsl3/loops-with-side-effects-expected.txt:
- webgl/2.0.0/conformance2/glsl3/misplaced-version-directive-expected.txt:
- webgl/2.0.0/conformance2/glsl3/no-attribute-vertex-shader-expected.txt:
- webgl/2.0.0/conformance2/glsl3/sampler-no-precision-expected.txt:
- webgl/2.0.0/conformance2/glsl3/sequence-operator-returns-non-constant-expected.txt:
- webgl/2.0.0/conformance2/glsl3/shader-linking-expected.txt:
- webgl/2.0.0/conformance2/glsl3/shader-with-1024-character-define-expected.txt:
- webgl/2.0.0/conformance2/glsl3/shader-with-1024-character-identifier.frag-expected.txt:
- webgl/2.0.0/conformance2/glsl3/shader-with-1025-character-define-expected.txt:
- webgl/2.0.0/conformance2/glsl3/shader-with-1025-character-identifier.frag-expected.txt:
- webgl/2.0.0/conformance2/glsl3/shader-with-invalid-characters-expected.txt:
- webgl/2.0.0/conformance2/glsl3/shader-with-mis-matching-uniform-block-expected.txt:
- webgl/2.0.0/conformance2/glsl3/short-circuiting-in-loop-condition-expected.txt:
- webgl/2.0.0/conformance2/glsl3/texture-offset-out-of-range-expected.txt:
- webgl/2.0.0/conformance2/glsl3/texture-offset-uniform-texture-coordinate-expected.txt:
- webgl/2.0.0/conformance2/glsl3/tricky-loop-conditions-expected.txt:
- webgl/2.0.0/conformance2/glsl3/unary-minus-operator-in-dynamic-loop-expected.txt:
- webgl/2.0.0/conformance2/glsl3/uniform-block-layout-match-expected.txt:
- webgl/2.0.0/conformance2/glsl3/uniform-block-layouts-expected.txt:
- webgl/2.0.0/conformance2/glsl3/uniform-location-length-limits-expected.txt:
- webgl/2.0.0/conformance2/glsl3/valid-invariant-expected.txt:
- webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-expected.txt:
- webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug-expected.txt:
- webgl/2.0.0/conformance2/vertex_arrays/vertex-array-object-expected.txt:
- webgl/2.0.0/resources/webkit-webgl-test-harness.js:
(list):
(window.webglTestHarness.reportResults):
(window.webglTestHarness.notifyFinished):
- 3:44 PM Changeset in webkit [235205] by
-
- 160 edits in trunk/Source/WebKit
Unreviewed, rolling out r235204.
reverting previous rollout
Reverted changeset:
"Unreviewed, rolling out r235176."
https://bugs.webkit.org/show_bug.cgi?id=185015
https://trac.webkit.org/changeset/235204
- 3:39 PM Changeset in webkit [235204] by
-
- 160 edits in trunk/Source/WebKit
Unreviewed, rolling out r235176.
broke internal builds
Reverted changeset:
"Use unified build for WebProcess"
https://bugs.webkit.org/show_bug.cgi?id=185015
https://trac.webkit.org/changeset/235176
- 3:23 PM Changeset in webkit [235203] by
-
- 2 edits in trunk
[MSVC] Stop disabling /O2 features.
https://bugs.webkit.org/show_bug.cgi?id=188811
Reviewed by Per Arne Vollan.
- Source/cmake/OptionsMSVC.cmake:
Don't disable /GF (string pooling) or /Gy (function-level linking).
- 2:35 PM Changeset in webkit [235202] by
-
- 11 edits in trunk
[Attachment Support] Support dragging attachment elements out as files on macOS
https://bugs.webkit.org/show_bug.cgi?id=181294
<rdar://problem/36298801>
Reviewed by Tim Horton.
Source/WebCore:
Serialize a dragged attachment element as a web archive on macOS. This allows us to move attachment elements
around a document by dragging, without performing a file upload upon every drop. Ideally, we should do this on
iOS as well, but this currently causes attachment data to go missing; further investigation to fix this for iOS
is tracked in <https://bugs.webkit.org/show_bug.cgi?id=181514>.
Tests: WKAttachmentTestsMac.DragAttachmentAsFilePromise
WKAttachmentTests.MoveAttachmentElementAsIconByDragging
- editing/cocoa/EditorCocoa.mm:
(WebCore::Editor::getPasteboardTypesAndDataForAttachment):
Source/WebKit:
Add support for dragging attachment elements on macOS by writing promised files to drag pasteboard. See changes
below for more details.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView filePromiseProvider:fileNameForType:]):
(-[WKWebView filePromiseProvider:writePromiseToURL:completionHandler:]):
(-[WKWebView draggingSession:sourceOperationMaskForDraggingContext:]):
(-[WKWebView draggingSession:endedAtPoint:operation:]):
- UIProcess/API/mac/WKView.mm:
(-[WKView filePromiseProvider:fileNameForType:]):
(-[WKView filePromiseProvider:writePromiseToURL:completionHandler:]):
(-[WKView draggingSession:sourceOperationMaskForDraggingContext:]):
(-[WKView draggingSession:endedAtPoint:operation:]):
Plumb NSFilePromiseProviderDelegate and NSDraggingSource method implementations to WebViewImpl.
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(-[WKPromisedAttachmentContext initWithAttachmentInfo:]):
(-[WKPromisedAttachmentContext blobURL]):
(-[WKPromisedAttachmentContext filename]):
(-[WKPromisedAttachmentContext attachmentIdentifier]):
Add an object that contains the information needed to deliver a dragged attachment element's data via
NSFilePromiseProvider. This is stored as the userInfo of the NSFilePromiseProvider created upon drag start.
(WebKit::WebViewImpl::draggedImage):
(WebKit::WebViewImpl::sendDragEndToPage):
Add a helper method to handle cleanup after the dragging has finished, and call it from -draggedImage:… and
-draggingSessionEnded:…. The latter is only triggered in the where -beginDraggingSessionWithItems:… is used,
which currently only happens when dragging attachment elements.
(WebKit::WebViewImpl::fileNameForFilePromiseProvider):
(WebKit::webKitUnknownError):
(WebKit::WebViewImpl::writeToURLForFilePromiseProvider):
Deliver either NSFileWrapper data to the destination URL (in the case where an attachment identifier is known
and the corresponding API::Attachment is backed by a file wrapper), or save the contents of the blob URL to the
destination.
(WebKit::WebViewImpl::dragSourceOperationMask):
(WebKit::WebViewImpl::draggingSessionEnded):
(WebKit::WebViewImpl::startDrag):
Tools:
Add DragAndDropSimulator support for intercepting calls to -beginDraggingSessionWithitems:event:source:. This
enables us to write API tests for macOS that exercise the attachment SPI in combination with dragging attachment
elements.
- TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(-[TestWKWebView attachmentElementMidPoint]):
Add a helper method local to this test suite that grabs the midpoint (in client coordinates) or the first
attachment element in the document.
(TestWebKitAPI::TEST):
Add a new API test to verify that dragging an attachment element on macOS produces file providers which may be
used to write attachment data to a path on disk. Additionally, refactor an existing API test,
MoveAttachmentElementAsIconByDragging, so that it runs on both iOS and macOS, to test the ability to move
attachment elements around in a document by using drag and drop.
- TestWebKitAPI/cocoa/DragAndDropSimulator.h:
- TestWebKitAPI/mac/DragAndDropSimulatorMac.mm:
(-[DragAndDropTestWKWebView beginDraggingSessionWithItems:event:source:]):
(-[DragAndDropSimulator initWithWebViewFrame:configuration:]):
(-[DragAndDropSimulator dealloc]):
(-[DragAndDropSimulator runFrom:to:]):
(-[DragAndDropSimulator beginDraggingSessionInWebView:withItems:source:]):
Begin a drag session and kick off the -continueDragSession loop. Unlike -performDragInWebView:…, which spins
the main runloop until dragging ends, this version returns execution to the web view and schedules dragging
updates asynchronously. This matches AppKit behavior.
(-[DragAndDropSimulator continueDragSession]):
Increment the dragging progress amount, send a drag update to the web view, and continue scheduling calls to
itself until the progress reaches 1.
(-[DragAndDropSimulator performDragInWebView:atLocation:withImage:pasteboard:source:]):
(-[DragAndDropSimulator initializeDraggingInfo:dragImage:source:]):
Pull out common logic for creating a new TestDraggingInfo after starting a drag.
(-[DragAndDropSimulator insertedAttachments]):
(-[DragAndDropSimulator removedAttachments]):
(-[DragAndDropSimulator draggingSession]):
(-[DragAndDropSimulator receivePromisedFiles]):
Helper method to save promised files written to the pasteboard after a drag to the temporary directory. These
files are tracked by DragAndDropSimulator and automatically cleaned up after the test finishes.
(-[DragAndDropSimulator endDataTransfer]):
Add a method stub on macOS, so that MoveAttachmentElementAsIconByDragging can be made cross-platform.
(-[DragAndDropSimulator _webView:didInsertAttachment:withSource:]):
(-[DragAndDropSimulator _webView:didRemoveAttachment:]):
Implement method stubs to keep track of inserted or removed attachments while simulating a drag.
- 2:22 PM Changeset in webkit [235201] by
-
- 17 edits4 adds in trunk
[iOS] Add support for the inputmode attribute
https://bugs.webkit.org/show_bug.cgi?id=183621
Reviewed by Tim Horton.
Source/WebCore:
Added the inputmode attribute to the HTMLInputElement and HTMLTextAreaElement IDL
files. The possible values for the attribute are specified in InputModeNames.
Test: fast/forms/inputmode-attribute.html
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- html/HTMLAttributeNames.in:
- html/HTMLInputElement.idl:
- html/HTMLTextAreaElement.idl:
- html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::inputMode const):
(WebCore::HTMLTextFormControlElement::setInputMode):
- html/HTMLTextFormControlElement.h:
- html/InputModeNames.cpp: Added.
(WebCore::InputModeNames::text):
(WebCore::InputModeNames::tel):
(WebCore::InputModeNames::url):
(WebCore::InputModeNames::email):
(WebCore::InputModeNames::numeric):
(WebCore::InputModeNames::decimal):
(WebCore::InputModeNames::search):
- html/InputModeNames.h: Added.
Source/WebKit:
The inputmode attribute specifies which input mechanism would be most helpful for
users entering content in textfield inputs and textareas. This patch adds support
for seven values: text, tel, url, email, numeric, decimal and search.
On iOS, we can specify UIKeyboardTypes that best match the supplied inputmode.
- text: UIKeyboardTypeDefault
- tel: UIKeyboardTypePhonePad
- url: UIKeyboardTypeURL
- email: UIKeyboardTypeEmailAddress
- numeric: UIKeyboardTypeNumbersAndPunctuation
- decimal: UIKeyboardTypeDecimalPad
- search: UIKeyboardTypeWebSearch
In the case that the inputmode attribute is not specified, we fall back to using
our existing heuristic to determine what kind of keyboard to show for textfields.
- Shared/AssistedNodeInformation.cpp:
(WebKit::AssistedNodeInformation::encode const):
(WebKit::AssistedNodeInformation::decode):
- Shared/AssistedNodeInformation.h: Added inputMode field.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView textInputTraits]):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::inputModeForElement):
(WebKit::WebPage::getAssistedNodeInformation):
Tools:
Added an API test to verify that the correct UIKeyboardType is set depending on
the type, inputmode, and pattern specified for an input field.
- TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/ios/UIKitSPI.h:
LayoutTests:
Added test to verify behavior when getting and setting the inputmode attribute.
- fast/forms/inputmode-attribute-expected.txt: Added.
- fast/forms/inputmode-attribute.html: Added.
- 2:08 PM Changeset in webkit [235200] by
-
- 10 edits in trunk/Source/WebKit
WKNavigationDelegate needs to allow clients to specify a custom blocked plug-in message
https://bugs.webkit.org/show_bug.cgi?id=188764
Reviewed by Alex Christensen.
Add a new private WKNavigationDelegate method that takes a completion handler so clients can return
a custom unavailability description in addition to the policy. Change WebPageProxy::findPlugin() to
send a delayed reply and API::LoaderClient::pluginLoadPolicy()/API::NavigationClient::decidePolicyForPluginLoad()
to take a completion handler to support this.
- UIProcess/API/APILoaderClient.h:
(API::LoaderClient::pluginLoadPolicy):
Changed to take a completion handler. The default implementation doesn't return a custom
unavailability description.
- UIProcess/API/APINavigationClient.h:
(API::NavigationClient::decidePolicyForPluginLoad):
Ditto.
- UIProcess/API/C/WKPage.cpp:
(WKPageSetPageLoaderClient):
Changed pluginLoadPolicy() to take a completion handler.
(WKPageSetPageNavigationClient):
Changed decidePolicyForPluginLoad() to take a completion handler.
- UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
Add alternate version of -decidePolicyForPluginLoadWithCurrentPolicy: that allows clients to return
the unavailibility description.
- UIProcess/Cocoa/NavigationState.h:
Add flag for new delegate method.
Changed decidePolicyForPluginLoad() to take a completion handler.
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::setNavigationDelegate):
Calculate flag for new delegate method.
(WebKit::NavigationState::NavigationClient::decidePolicyForPluginLoad):
Changed to take a completion handler.
Prefer new delegate method, if available.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::findPlugin):
Changed to send a delayed reply.
Refactored some code into a lambda so it can be shared when using m_navigationClient->decidePolicyForPluginLoad().
Removed unneeded UNUSED_PARAM() macros.
- UIProcess/WebPageProxy.h:
Changed findPlugin() to send a delayed reply.
- UIProcess/WebPageProxy.messages.in:
Ditto.
- 1:46 PM Changeset in webkit [235199] by
-
- 2 edits in trunk/Tools
Fix API test on Sierra after r235139
https://bugs.webkit.org/show_bug.cgi?id=188810
- TestWebKitAPI/Tests/mac/LimitTitleSize.mm:
(TEST):
- 1:42 PM Changeset in webkit [235198] by
-
- 3 edits in trunk/Source/JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=188859
Eliminate dead code operationThrowDivideError() and operationThrowOutOfBoundsAccessError()
Rubber-stamped by Saam Barati.
Deleted these two functions.
- jit/JITOperations.cpp:
- jit/JITOperations.h:
- 1:40 PM Changeset in webkit [235197] by
-
- 2 edits in trunk/Source/WebCore
Log more often during AirPlay state changes
https://bugs.webkit.org/show_bug.cgi?id=188854
Always log some infrequent but important AirPlay state changes to make debugging easier.
Reviewed by Jer Noble.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::webkitShowPlaybackTargetPicker): Low always.
(WebCore::HTMLMediaElement::mediaPlayerCurrentPlaybackTargetIsWirelessChanged): Ditto.
(WebCore::HTMLMediaElement::setWirelessPlaybackTarget): Ditto.
(WebCore::HTMLMediaElement::setShouldPlayToPlaybackTarget): Ditto.
- 1:32 PM Changeset in webkit [235196] by
-
- 1 copy in tags/Safari-607.1.3
Tag Safari-607.1.3.
- 1:31 PM Changeset in webkit [235195] by
-
- 2 edits in trunk/LayoutTests
[Win] Some video tests under http/tests/security are crashing on EWS.
https://bugs.webkit.org/show_bug.cgi?id=188853
Unreviewed test gardening.
- platform/win/TestExpectations:
- 1:27 PM Changeset in webkit [235194] by
-
- 2 edits in trunk
Don't use WTF_CPU_MIPS when building for mips64
https://bugs.webkit.org/show_bug.cgi?id=188858
Reviewed by Michael Catanzaro.
- CMakeLists.txt: Use WTF_CPU_MIPS64 for this architecture.
- 1:07 PM Changeset in webkit [235193] by
-
- 3 edits1 move2 adds2 deletes in trunk/LayoutTests
Make ResourceLoadObserver::logWebSocketLoading() handle websockets in detached frames
https://bugs.webkit.org/show_bug.cgi?id=188856
Unreviewed test gardening.
Skipped test since it's only valid on WK2 platforms.
- http/tests/websocket/connection-refusal-in-frame-resource-load-statistics-expected.txt: Added.
- http/tests/websocket/connection-refusal-in-frame-resource-load-statistics.html: Renamed from LayoutTests/http/tests/websocket/construct-in-detached-frame-resource-load-statistics.html.
- http/tests/websocket/construct-in-detached-frame-resource-load-statistics-expected.txt: Removed.
- http/tests/websocket/resources/construct-in-detached-frame-resource-load-statistics.html: Removed.
- http/tests/websocket/resources/localhost-websocket-connect.html: Added.
- platform/wk2/TestExpectations:
Marked test as [ Pass ].
- 1:02 PM Changeset in webkit [235192] by
-
- 19 edits66 adds2 deletes in trunk/LayoutTests
[iOS] Rebaseline table tests
https://bugs.webkit.org/show_bug.cgi?id=188833
Unreviewed test gardening.
- 12:59 PM Changeset in webkit [235191] by
-
- 5 edits in trunk
Focus navigation order in slot fallback contents is wrong
https://bugs.webkit.org/show_bug.cgi?id=178001
<rdar://problem/42842997>
Reviewed by Antti Koivisto.
Source/WebCore:
The bug here is that when a slot uses its fallback content, the fallback content's focus order doesn't get
grouped by that of the slot. Consider the following DOM tree:
- ShadowRoot
- div tabindex = 2
- slot tabindex = 1
- span tabindex = 3
In this example, the sequential focus navigation should be slot, span, then div. Even though span has tabindex
order of 3, which is lower than that of div, the fallback content of the slot should be grouped together
before the focus moves out of the slot content.
In WebKit, this concept of grouping elements for the sequential focus navigation ordering is implemeneted
as FocusNavigationScope. Both ShadowRoot and HTMLSlotElement are treated as a focus scope owner but we had
a bug that a slot element which uses its fallback content was not treated as a focus scope owner.
This patch addresses the bug by treating a slot wich uses its fallback content as a focus scope owner.
Test: fast/shadow-dom/focus-navigation-across-slots.html
- page/FocusController.cpp:
(WebCore::isFocusScopeOwner): Treat a slot elment hs a focus scope owner regardless of whether it has assigned
nodes or not.
(WebCore::FocusNavigationScope::SlotKind): Added.
(WebCore::FocusNavigationScope::m_slotKind): Added.
(WebCore::FocusNavigationScope::parentInScope const): Return null ifnodeis a child of the slot element for
which this FocusNavigationScope is created (i.e.nodeis slot's fallback content).
(WebCore::FocusNavigationScope::firstNodeInScope const): Return the first child node when this
FocusNavigationScope is for a slot element using its fallback content.
(WebCore::FocusNavigationScope::lastNodeInScope const): Ditto for the last child.
(WebCore::FocusNavigationScope::FocusNavigationScope):
(WebCore::FocusNavigationScope::scopeOf): The scope of a child of a slot element which uses its fallback content
is its slot element (i.e. the current node is a fallback content). We can't simply check the current node is
a slot element which uses a fallback content since the scope of a slot element is the parent scope. e.g. its
tree scope like ShadowRoot or Document inside which this slot element appears.
(WebCore::FocusNavigationScope::scopeOwnedByScopeOwner): Create the appropriate FocusNavigationScope based on
whether the slot element has assigned or it uses its fallback content.
LayoutTests:
Updated the sequential focus navigation test for shadow DOM and its expectation.
New test passes in Firefox & Chrome other than the fact both browsers fail to focus a slot elemennt.
- fast/shadow-dom/focus-navigation-across-slots-expected.txt:
- fast/shadow-dom/focus-navigation-across-slots.html:
- 12:33 PM Changeset in webkit [235190] by
-
- 5 edits6 moves in trunk
Move files in WebCore project to match Xcode folder structure
<https://webkit.org/b/188851>
Reviewed by Tim Horton.
Source/WebCore:
- Scripts/LocalizableStrings.pm: Renamed from Source/WebCore/LocalizableStrings.pm.
- Scripts/extract-localizable-strings.pl: Renamed from Source/WebCore/extract-localizable-strings.pl.
- WebCore.xcodeproj/project.pbxproj: Update to match new location of files.
- platform/audio/cocoa/WebAudioBufferList.cpp: Renamed from Source/WebCore/platform/audio/WebAudioBufferList.cpp.
- platform/audio/cocoa/WebAudioBufferList.h: Renamed from Source/WebCore/platform/audio/WebAudioBufferList.h.
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h: Renamed from Source/WebCore/platform/graphics/avfoundation/MediaSampleAVFObjC.h.
- platform/ios/wak/WAKViewInternal.h: Renamed from Source/WebCore/platform/WAKViewInternal.h. Also fix 3 webkit-style warnings.
Tools:
- Scripts/extract-localizable-strings:
- Scripts/update-webkit-localizable-strings:
- Update to match new location of extract-localizable-strings.pl.
- 11:53 AM Changeset in webkit [235189] by
-
- 2 edits in trunk/JSTests
Make data-view-access.js run less time to prevent timeouts on 32-bit
- microbenchmarks/data-view-accesses.js:
- 11:31 AM Changeset in webkit [235188] by
-
- 1 copy in tags/Safari-606.1.36.10.4
Tag Safari-606.1.36.10.4.
- 11:28 AM Changeset in webkit [235187] by
-
- 2 edits in branches/safari-606.1.36.10-branch/Source/WebKit
Cherry-pick r235133. rdar://problem/43584853
Increment NetworkCache::Storage::lastStableVersion after r233742
https://bugs.webkit.org/show_bug.cgi?id=188798
<rdar://43561761>
Reviewed by Geoffrey Garen.
- NetworkProcess/cache/NetworkCacheStorage.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@235133 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:26 AM Changeset in webkit [235186] by
-
- 7 edits in branches/safari-606.1.36.10-branch/Source
Versioning.
- 11:03 AM Changeset in webkit [235185] by
-
- 2 edits in branches/safari-606.1.36.1-branch/Source/WebKit
Cherry-pick r235133. rdar://problem/43584853
Increment NetworkCache::Storage::lastStableVersion after r233742
https://bugs.webkit.org/show_bug.cgi?id=188798
<rdar://43561761>
Reviewed by Geoffrey Garen.
- NetworkProcess/cache/NetworkCacheStorage.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@235133 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:57 AM Changeset in webkit [235184] by
-
- 7 edits in branches/safari-606.1.36.1-branch/Source
Versioning.
- 10:56 AM Changeset in webkit [235183] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: cannot delete multiple event breakpoints by repeatedly hitting delete
https://bugs.webkit.org/show_bug.cgi?id=188803
<rdar://problem/43572838>
Reviewed by Matt Baker.
- UserInterface/Views/DebuggerSidebarPanel.js:
(WI.DebuggerSidebarPanel.prototype._domBreakpointAddedOrRemoved):
(WI.DebuggerSidebarPanel.prototype._eventBreakpointAddedOrRemoved):
- 10:51 AM Changeset in webkit [235182] by
-
- 7 edits in trunk/Source
Versioning.
- 10:29 AM Changeset in webkit [235181] by
-
- 2 edits in trunk/LayoutTests
[Win] Some video tests under http/tests/security are crashing on EWS.
https://bugs.webkit.org/show_bug.cgi?id=188853
Unreviewed test gardening.
- platform/win/TestExpectations:
- 10:19 AM Changeset in webkit [235180] by
-
- 2 edits in trunk/LayoutTests
[Win] Some video tests under http/tests/security are crashing on EWS.
https://bugs.webkit.org/show_bug.cgi?id=188853
Unreviewed test gardening.
- platform/win/TestExpectations:
- 10:17 AM Changeset in webkit [235179] by
-
- 5 edits in trunk/Source/WebKit
Try removing defaultSessionParameters from NetworkProcessCreationParameters
https://bugs.webkit.org/show_bug.cgi?id=188831
Reviewed by Alex Christensen.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
- NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
- NetworkProcess/NetworkProcessCreationParameters.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
- 10:10 AM Changeset in webkit [235178] by
-
- 4 edits4 moves1 add in trunk/Source/WebCore
[LFC][Floating] Move files to a dedicated directory.
https://bugs.webkit.org/show_bug.cgi?id=188846
Reviewed by Simon Fraser.
layout/Float* -> layout/floats
- WebCore.xcodeproj/project.pbxproj:
- layout/floatformatting/FloatingContext.cpp: Renamed from Source/WebCore/layout/FloatingContext.cpp.
(WebCore::Layout::FloatingPair::isEmpty const):
(WebCore::Layout::FloatingPair::verticalPosition const):
(WebCore::Layout::Iterator::operator* const):
(WebCore::Layout::begin):
(WebCore::Layout::end):
(WebCore::Layout::FloatingContext::FloatingContext):
(WebCore::Layout::FloatingContext::positionForFloat const):
(WebCore::Layout::FloatingContext::verticalPositionWithClearance const):
(WebCore::Layout::FloatingContext::floatingPosition const):
(WebCore::Layout::FloatingContext::initialVerticalPosition const):
(WebCore::Layout::FloatingContext::alignWithContainingBlock const):
(WebCore::Layout::FloatingContext::alignWithFloatings const):
(WebCore::Layout::FloatingContext::toContainingBlock const):
(WebCore::Layout::FloatingPair::FloatingPair):
(WebCore::Layout::FloatingPair::left const):
(WebCore::Layout::FloatingPair::right const):
(WebCore::Layout::FloatingPair::intersects const):
(WebCore::Layout::FloatingPair::operator == const):
(WebCore::Layout::FloatingPair::bottom const):
(WebCore::Layout::Iterator::Iterator):
(WebCore::Layout::previousFloatingIndex):
(WebCore::Layout::Iterator::operator++):
(WebCore::Layout::Iterator::set):
(WebCore::Layout::Iterator::operator== const):
(WebCore::Layout::Iterator::operator!= const):
- layout/floatformatting/FloatingContext.h: Renamed from Source/WebCore/layout/FloatingContext.h.
(WebCore::Layout::FloatingContext::floatingState const):
(WebCore::Layout::FloatingContext::layoutContext const):
- layout/floatformatting/FloatingState.cpp: Renamed from Source/WebCore/layout/FloatingState.cpp.
(WebCore::Layout::FloatingState::FloatItem::FloatItem):
(WebCore::Layout::FloatingState::FloatingState):
(WebCore::Layout::belongsToThisFloatingContext):
(WebCore::Layout::FloatingState::remove):
(WebCore::Layout::FloatingState::append):
(WebCore::Layout::FloatingState::bottom const):
- layout/floatformatting/FloatingState.h: Renamed from Source/WebCore/layout/FloatingState.h.
(WebCore::Layout::FloatingState::create):
(WebCore::Layout::FloatingState::isEmpty const):
(WebCore::Layout::FloatingState::FloatItem::layoutBox const):
(WebCore::Layout::FloatingState::FloatItem::containingBlock const):
(WebCore::Layout::FloatingState::FloatItem::displayBox const):
(WebCore::Layout::FloatingState::FloatItem::containingBlockDisplayBox const):
(WebCore::Layout::FloatingState::floats const):
(WebCore::Layout::FloatingState::last const):
(WebCore::Layout::FloatingState::layoutContext const):
(WebCore::Layout::FloatingState::root const):
(WebCore::Layout::FloatingState::leftBottom const):
(WebCore::Layout::FloatingState::rightBottom const):
(WebCore::Layout::FloatingState::bottom const):
- 9:55 AM Changeset in webkit [235177] by
-
- 4 edits1 add in trunk
The DFG CFGSimplification phase shouldn’t jettison a block when it’s the target of both branch directions.
https://bugs.webkit.org/show_bug.cgi?id=188298
<rdar://problem/42888427>
Reviewed by Saam Barati.
JSTests:
- stress/bug-188298.js: Added.
Source/JavaScriptCore:
In the event that both targets of a Branch is the same block, then even if we'll
always take one path of the branch, the other target is not unreachable because
it is the same target as the one in the taken path. Hence, it should not be
jettisoned.
- JavaScriptCore.xcodeproj/project.pbxproj:
- Added DFGCFG.h which is in use and should have been added to the project.
- dfg/DFGCFGSimplificationPhase.cpp:
(JSC::DFG::CFGSimplificationPhase::run):
- 9:54 AM Changeset in webkit [235176] by
-
- 160 edits in trunk/Source/WebKit
Use unified build for WebProcess
https://bugs.webkit.org/show_bug.cgi?id=185015
Reviewed by Alex Christensen.
- Sources.txt:
- SourcesCocoa.txt:
- UIProcess/WebPageProxy.h:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
- WebProcess/Databases/WebDatabaseProvider.cpp:
- WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:
- WebProcess/FileAPI/BlobRegistryProxy.cpp:
- WebProcess/FullScreen/WebFullScreenManager.cpp:
- WebProcess/Gamepad/WebGamepadProvider.cpp:
- WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
- WebProcess/Geolocation/WebGeolocationManager.cpp:
- WebProcess/InjectedBundle/API/c/mac/WKBundlePageBannerMac.mm:
- WebProcess/InjectedBundle/API/gtk/DOM/GObjectEventListener.cpp:
- WebProcess/InjectedBundle/DOM/InjectedBundleCSSStyleDeclarationHandle.cpp:
- WebProcess/InjectedBundle/DOM/InjectedBundleFileHandle.cpp:
- WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
- WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
- WebProcess/InjectedBundle/InjectedBundle.cpp:
- WebProcess/InjectedBundle/InjectedBundleBackForwardList.cpp:
- WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.cpp:
- WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.cpp:
- WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:
- WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp:
- WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.cpp:
- WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp:
- WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:
- WebProcess/InjectedBundle/InjectedBundlePageFullScreenClient.cpp:
- WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
- WebProcess/InjectedBundle/InjectedBundlePagePolicyClient.cpp:
- WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp:
- WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
- WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp:
- WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
- WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
- WebProcess/Network/NetworkProcessConnection.cpp:
- WebProcess/Network/WebLoaderStrategy.cpp:
- WebProcess/Network/WebResourceLoader.cpp:
- WebProcess/Network/WebSocketProvider.cpp:
- WebProcess/Network/WebSocketStream.cpp:
- WebProcess/Network/webrtc/LibWebRTCProvider.cpp:
- WebProcess/Network/webrtc/LibWebRTCResolver.cpp:
- WebProcess/Network/webrtc/LibWebRTCResolver.h:
- WebProcess/Network/webrtc/LibWebRTCSocket.cpp:
- WebProcess/Network/webrtc/LibWebRTCSocket.h:
- WebProcess/Network/webrtc/WebMDNSRegister.cpp:
- WebProcess/Network/webrtc/WebRTCMonitor.cpp:
- WebProcess/Network/webrtc/WebRTCMonitor.h:
- WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
- WebProcess/Notifications/WebNotificationManager.cpp:
- WebProcess/Plugins/Netscape/JSNPMethod.cpp:
- WebProcess/Plugins/Netscape/JSNPObject.cpp:
- WebProcess/Plugins/Netscape/NPJSObject.cpp:
- WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
- WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
- WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
- WebProcess/Plugins/Netscape/NetscapePluginNone.cpp:
- WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
- WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
- WebProcess/Plugins/PDF/PDFPlugin.mm:
- WebProcess/Plugins/PDF/PDFPluginAnnotation.mm:
- WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:
- WebProcess/Plugins/PDF/PDFPluginPasswordField.mm:
- WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:
- WebProcess/Plugins/Plugin.cpp:
- WebProcess/Plugins/PluginProcessConnection.cpp:
- WebProcess/Plugins/PluginProxy.cpp:
- WebProcess/Plugins/PluginView.cpp:
- WebProcess/Plugins/WebPluginInfoProvider.cpp:
- WebProcess/Storage/ServiceWorkerClientFetch.cpp:
- WebProcess/Storage/WebSWClientConnection.cpp:
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
- WebProcess/Storage/WebSWOriginTable.cpp:
- WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:
- WebProcess/Storage/WebServiceWorkerProvider.cpp:
- WebProcess/Storage/WebToStorageProcessConnection.cpp:
- WebProcess/UserContent/WebUserContentController.cpp:
- WebProcess/WebConnectionToUIProcess.cpp:
- WebProcess/WebCoreSupport/SessionStateConversion.cpp:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
- WebProcess/WebCoreSupport/WebColorChooser.cpp:
- WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
- WebProcess/WebCoreSupport/WebDataListSuggestionPicker.cpp:
- WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:
- WebProcess/WebCoreSupport/WebDragClient.cpp:
- WebProcess/WebCoreSupport/WebEditorClient.cpp:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
- WebProcess/WebCoreSupport/WebGeolocationClient.cpp:
- WebProcess/WebCoreSupport/WebInspectorClient.cpp:
- WebProcess/WebCoreSupport/WebMessagePortChannelProvider.cpp:
- WebProcess/WebCoreSupport/WebNotificationClient.cpp:
- WebProcess/WebCoreSupport/WebPerformanceLoggingClient.cpp:
- WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
- WebProcess/WebCoreSupport/WebPopupMenu.cpp:
- WebProcess/WebCoreSupport/WebProgressTrackerClient.cpp:
- WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp:
- WebProcess/WebCoreSupport/WebUserMediaClient.cpp:
- WebProcess/WebCoreSupport/WebValidationMessageClient.cpp:
- WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
- WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm:
- WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm:
- WebProcess/WebCoreSupport/mac/WebAlternativeTextClient.cpp:
- WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
- WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
- WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
- WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
- WebProcess/WebCoreSupport/mac/WebPopupMenuMac.mm:
- WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:
- WebProcess/WebCoreSupport/win/WebContextMenuClientWin.cpp:
- WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp:
- WebProcess/WebCoreSupport/wpe/WebEditorClientWPE.cpp:
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
- WebProcess/WebPage/DrawingArea.cpp:
- WebProcess/WebPage/EventDispatcher.cpp:
- WebProcess/WebPage/FindController.cpp:
- WebProcess/WebPage/LayerTreeHost.cpp:
- WebProcess/WebPage/RemoteLayerTree/GraphicsLayerCARemote.cpp:
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteCustom.mm:
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteTiledBacking.cpp:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
- WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm:
- WebProcess/WebPage/RemoteWebInspectorUI.cpp:
- WebProcess/WebPage/ViewGestureGeometryCollector.cpp:
- WebProcess/WebPage/VisitedLinkTableController.cpp:
- WebProcess/WebPage/WebBackForwardListProxy.cpp:
- WebProcess/WebPage/WebContextMenu.cpp:
- WebProcess/WebPage/WebDocumentLoader.cpp:
- WebProcess/WebPage/WebFrame.cpp:
- WebProcess/WebPage/WebInspector.cpp:
- WebProcess/WebPage/WebInspectorUI.cpp:
- WebProcess/WebPage/WebPage.cpp:
- WebProcess/WebPage/WebPageOverlay.cpp:
- WebProcess/WebPage/WebURLSchemeHandlerProxy.cpp:
- WebProcess/WebPage/WebURLSchemeTaskProxy.cpp:
- WebProcess/WebPage/ios/FindControllerIOS.mm:
- WebProcess/WebPage/ios/WebPageIOS.mm:
- WebProcess/WebPage/mac/DrawingAreaMac.cpp:
- WebProcess/WebPage/mac/PageBannerMac.mm:
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
- WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:
- WebProcess/WebPage/mac/WebPageMac.mm:
- WebProcess/WebPage/win/WebPageWin.cpp:
- WebProcess/WebPage/wpe/AcceleratedSurfaceWPE.cpp:
- WebProcess/WebPage/wpe/WebPageWPE.cpp:
- WebProcess/WebProcess.cpp:
- WebProcess/WebStorage/StorageAreaImpl.cpp:
- WebProcess/WebStorage/StorageAreaMap.cpp:
- WebProcess/WebStorage/StorageNamespaceImpl.cpp:
- WebProcess/WebStorage/WebStorageNamespaceProvider.cpp:
- WebProcess/cocoa/PlaybackSessionManager.mm:
- WebProcess/cocoa/UserMediaCaptureManager.cpp:
- WebProcess/cocoa/VideoFullscreenManager.mm:
- WebProcess/cocoa/WebProcessCocoa.mm:
- WebProcess/win/WebProcessMainWin.cpp:
- WebProcess/win/WebProcessWin.cpp:
- WebProcess/wpe/WebProcessMainWPE.cpp:
- 9:46 AM Changeset in webkit [235175] by
-
- 10 edits in trunk/Source/WebKit
Cleanup: Add type alias for spell document tag
https://bugs.webkit.org/show_bug.cgi?id=188817
Reviewed by Simon Fraser.
- UIProcess/TextChecker.h:
- UIProcess/TextCheckerCompletion.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::~WebPageProxy):
(WebKit::WebPageProxy::spellDocumentTag):
- UIProcess/WebPageProxy.h: Also addressed FIXME comment and modernized the code to use a std::optional
while I am here.
- UIProcess/gtk/TextCheckerGtk.cpp:
(WebKit::TextChecker::uniqueSpellDocumentTag):
(WebKit::TextChecker::closeSpellDocumentWithTag):
(WebKit::TextChecker::checkSpellingOfString):
(WebKit::TextChecker::checkGrammarOfString):
(WebKit::TextChecker::updateSpellingUIWithMisspelledWord):
(WebKit::TextChecker::updateSpellingUIWithGrammarString):
(WebKit::TextChecker::getGuessesForWord):
(WebKit::TextChecker::learnWord):
(WebKit::TextChecker::ignoreWord):
(WebKit::TextChecker::checkTextOfParagraph):
- UIProcess/ios/TextCheckerIOS.mm:
(WebKit::spellDocumentTagMap):
(WebKit::TextChecker::uniqueSpellDocumentTag):
(WebKit::TextChecker::closeSpellDocumentWithTag):
(WebKit::textCheckerFor):
(WebKit::TextChecker::checkTextOfParagraph):
(WebKit::TextChecker::checkSpellingOfString):
(WebKit::TextChecker::checkGrammarOfString):
(WebKit::TextChecker::updateSpellingUIWithMisspelledWord):
(WebKit::TextChecker::updateSpellingUIWithGrammarString):
(WebKit::TextChecker::getGuessesForWord):
(WebKit::TextChecker::learnWord):
(WebKit::TextChecker::ignoreWord):
- UIProcess/mac/TextCheckerMac.mm:
(WebKit::TextChecker::uniqueSpellDocumentTag):
(WebKit::TextChecker::closeSpellDocumentWithTag):
(WebKit::TextChecker::checkTextOfParagraph):
(WebKit::TextChecker::checkSpellingOfString):
(WebKit::TextChecker::checkGrammarOfString):
(WebKit::TextChecker::updateSpellingUIWithMisspelledWord):
(WebKit::TextChecker::updateSpellingUIWithGrammarString):
(WebKit::TextChecker::getGuessesForWord):
(WebKit::TextChecker::learnWord):
(WebKit::TextChecker::ignoreWord):
- UIProcess/win/TextCheckerWin.cpp:
(WebKit::TextChecker::uniqueSpellDocumentTag):
(WebKit::TextChecker::closeSpellDocumentWithTag):
(WebKit::TextChecker::checkSpellingOfString):
(WebKit::TextChecker::checkGrammarOfString):
(WebKit::TextChecker::updateSpellingUIWithMisspelledWord):
(WebKit::TextChecker::updateSpellingUIWithGrammarString):
(WebKit::TextChecker::getGuessesForWord):
(WebKit::TextChecker::learnWord):
(WebKit::TextChecker::ignoreWord):
(WebKit::TextChecker::checkTextOfParagraph):
- UIProcess/wpe/TextCheckerWPE.cpp:
(WebKit::TextChecker::uniqueSpellDocumentTag):
(WebKit::TextChecker::closeSpellDocumentWithTag):
(WebKit::TextChecker::checkSpellingOfString):
(WebKit::TextChecker::checkGrammarOfString):
(WebKit::TextChecker::updateSpellingUIWithMisspelledWord):
(WebKit::TextChecker::updateSpellingUIWithGrammarString):
(WebKit::TextChecker::getGuessesForWord):
(WebKit::TextChecker::learnWord):
(WebKit::TextChecker::ignoreWord):
- 9:24 AM Changeset in webkit [235174] by
-
- 7 edits in trunk
Fetch: Stop checking Request.integrity's value in no-cors mode
https://bugs.webkit.org/show_bug.cgi?id=188802
Patch by Rob Buis <rbuis@igalia.com> on 2018-08-22
Reviewed by Frédéric Wang.
LayoutTests/imported/w3c:
Update integrity.html expected result.
- web-platform-tests/fetch/api/basic/integrity-expected.txt:
Source/WebCore:
Remove this check since it was removed from the spec.
Behavior matches Chrome and Firefox.
Test: http/tests/subresource-integrity/sri-fetch.js:
- Modules/fetch/FetchRequest.cpp:
(WebCore::FetchRequest::initializeOptions):
LayoutTests:
Unskip fetch/api/basic/integrity.html and adjust sri-fetch.js.
- TestExpectations:
- http/tests/subresource-integrity/sri-fetch.js:
- 8:59 AM Changeset in webkit [235173] by
-
- 2 edits in trunk/Source/WebCore
Mark MediaStream Recording API as under consideration
https://bugs.webkit.org/show_bug.cgi?id=188822
Reviewed by Jon Lee.
- features.json:
- 8:21 AM Changeset in webkit [235172] by
-
- 3 edits in trunk/LayoutTests
[GTK][WPE] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=188845
Unreviewed test gardening.
- platform/gtk/TestExpectations: Note failing tests.
- platform/wpe/TestExpectations: Note failing tests.
- 7:47 AM Changeset in webkit [235171] by
-
- 3 edits in trunk/Source/WebCore
[GTK] Never return an uninitialized ImageGStreamer object.
https://bugs.webkit.org/show_bug.cgi?id=188305
Reviewed by Philippe Normand.
The single caller was already checking for a null return value, so
make that check actually do something. Also remove the null-check on
the return value of image(), which asserted that it would never return
null.
Test: fast/canvas/canvas-createPattern-video-loading.html
- platform/graphics/gstreamer/ImageGStreamer.h:
(WebCore::ImageGStreamer::createImage): Return null if m_image wasn't created.
(WebCore::ImageGStreamer::image): Return a reference.
(WebCore::ImageGStreamer::rect): Always assert that m_image is present.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::paint): Update for new signature.
- 7:27 AM Changeset in webkit [235170] by
-
- 2 edits in trunk/Source/WebCore
Add changes missing from r234925.
- layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::isMarginTopCollapsedWithParent):
(WebCore::Layout::isMarginBottomCollapsedThrough):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::isMarginBottomCollapsedWithParent):
- 7:19 AM Changeset in webkit [235169] by
-
- 6 edits in trunk/Source/WebKit
Use OptionSet for NetworkCache::Storage::TraverseFlags
https://bugs.webkit.org/show_bug.cgi?id=188837
Reviewed by Anders Carlsson.
Type safe flags.
- NetworkProcess/cache/CacheStorageEngineCaches.cpp:
(WebKit::CacheStorage::Caches::initializeSize):
(WebKit::CacheStorage::Caches::readRecordsList):
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::traverse):
(WebKit::NetworkCache::Cache::dumpContentsToFile):
- NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::TraverseOperation::TraverseOperation):
(WebKit::NetworkCache::Storage::traverse):
- NetworkProcess/cache/NetworkCacheStorage.h:
- WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
(WebKit::UserMediaPermissionRequestManager::captureDevicesChanged):
(WebKit::UserMediaPermissionRequestManager::activityStateDidChange):
Also use OptionSet<>::containsAll() in a few places.
- 7:13 AM Changeset in webkit [235168] by
-
- 2 edits in trunk/LayoutTests
[GTK] imported/w3c/web-platform-tests/media-source/mediasource-getvideoplaybackquality.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=187591
Unreviewed test gardening.
Re-enable mediasource-getvideoplaybackquality.html.
The crash was fixed in r233981, and the failure in r234981-r234983.
- platform/gtk/TestExpectations:
- 5:47 AM Changeset in webkit [235167] by
-
- 2 edits in trunk/LayoutTests
REGRESSION(r234330): [GTK] svg/as-image/svg-image-with-data-uri-background.html is failing
https://bugs.webkit.org/show_bug.cgi?id=188220
Unreviewed test gardening.
- platform/gtk/TestExpectations: Re-enable svg/as-image/svg-image-with-data-uri-background.html.
- 5:29 AM Changeset in webkit [235166] by
-
- 3 edits in trunk/Source/WebKit
[WPE] pkg-config files should require libwpe
https://bugs.webkit.org/show_bug.cgi?id=188835
Reviewed by Žan Doberšek.
- wpe/wpe-web-extension.pc.in:
- wpe/wpe-webkit.pc.in:
- 5:14 AM Changeset in webkit [235165] by
-
- 15 edits in trunk
[CoordGraphics] Switch to Nicosia::CompositionLayer state tracking
https://bugs.webkit.org/show_bug.cgi?id=188693
Reviewed by Carlos Garcia Campos.
.:
- Source/cmake/OptionsGTK.cmake: Enable USE_NICOSIA alongside
USE_COORDINATED_GRAPHICS and USE_COORDINATED_GRAPHICS_THREADED.
- Source/cmake/OptionsWPE.cmake: Ditto.
Source/WebCore:
Populate Nicosia::CompositionLayer with additional LayerState member
objects. For now we're using pending, staging and committed states,
though it might be possible to narrow down these to just two.
Pending state contains state that will be moved to staging during the
final steps of the next layer flush. flushState() method accumulates all
state changes in the staging state, and also allows the caller to
additionally perform flushing operations that are specific to backing
store, image backing or content layer containers.
commitState() method moves staging state over into the committed state,
again allowing user to pass a functor that receives the just-committed
state and apply it to their composition engine.
Changes in state objects are done under a thread-safe lock. This might
not be completely necessary at this point, but will be useful when
additonal layer state updates will be coming from e.g. the scrolling
thread. It might also make sense to tie in this lock use with the
Nicosia::Scene lock in the future.
Nicosia::ContentLayerTextureMapperImpl is modified slightly to allow
determining during flushes whether an update is pending. This is
necessary for a special case in ThreadedCompositor where content (i.e.
platform) layers like WebGL or video require an additional level of
scene update coordination. This complete special case has to go through
another review to see whether it's still necessary. Ideally we would be
able to remove it.
CoordinatedGraphicsLayer is finally switched over to using
Nicosia layer objects for state updates of any kind. This patch only
adds all the necessary bits, but doesn't yet remove any of the existing
code (but rather disables it temporarily, before it's removed).
Updating of simple state values is already in place. For backing stores,
the flushCompositingStateForThisLayerOnly() method now takes care of
preparing the backing store object if necessary as per layer state,
while the updateContentBuffers() method is switched to operate with
TiledBackingStore objects now kept on the BackingStoreTextureMapperImpl
instance associated with that backing store. Helper methods like
adjustContentsScale() and createBackingStore(), only called from the
updateContentBuffers() method, are removed and the code there inlined.
For image-backed layers, the update is now done directly in
the flushCompositingStateForThisLayerOnly() method, if necessary. The
helper syncImageBacking() method is commented out in order to prevent
double-painting of image buffers for now, but all this (along with the
CoordinatedImageBacking logic in CompositingCoordinator) will be removed
later.
For layers backed by platform layer objects, integration is relatively
simple. setContentsToPlatformLayer() is changed to properly handle any
passed-in platform layer object, and updatePlatformLayer() invokes the
swapBuffersIfNeeded() method on the ContentLayerTextureMapperImpl object
during each flush, if necessary.
In order to ensure any Nicosia-specific state update properly triggers
a composition update, m_nicosia.performLayerUpdate is added and flipped
to true during the flush in case of any state change. This then triggers
a layer sync in the CompositingCoordinator object when the
syncPendingStateChangesIncludingSubLayers() method is called. While no
old-style layer state update is provided, it causes the necessary
synchronization step that properly picks up the Nicosia-provided state
changes. Once the old-style layer state tracking is removed, this method
of update triggering will have to be updated as well.
- platform/graphics/nicosia/NicosiaPlatformLayer.h:
(Nicosia::CompositionLayer::flushState):
(Nicosia::CompositionLayer::commitState):
(Nicosia::CompositionLayer::accessCommitted):
- platform/graphics/nicosia/NicosiaScene.h:
- platform/graphics/nicosia/texmap/NicosiaContentLayerTextureMapperImpl.cpp:
(Nicosia::ContentLayerTextureMapperImpl::flushUpdate):
- platform/graphics/nicosia/texmap/NicosiaContentLayerTextureMapperImpl.h:
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::setContentsNeedsDisplay):
(WebCore::CoordinatedGraphicsLayer::setContentsToPlatformLayer):
(WebCore::CoordinatedGraphicsLayer::updatePlatformLayer):
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
(WebCore::CoordinatedGraphicsLayer::syncPendingStateChangesIncludingSubLayers):
(WebCore::CoordinatedGraphicsLayer::updateContentBuffers):
(WebCore::CoordinatedGraphicsLayer::purgeBackingStores):
(WebCore::CoordinatedGraphicsLayer::adjustContentsScale): Deleted.
(WebCore::CoordinatedGraphicsLayer::createBackingStore): Deleted.
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
Source/WebKit:
Switch CoordinatedGraphicsScene to utilizing Nicosia::CompositionLayer
objects for state updates of the TextureMapper layer tree.
CoordinatedGraphicsScene::paintToCurrentGLContext() now calls
updateSceneState() at the beginning. This is a new method that manages
all updates for a given Nicosia::Scene instance. Any removed layers
have their composition-side state cleaned up, and the current set of
layers is then iterated to ensure and update the corresponding
TextureMapperLayer objects.
Layers with any backing (painted backing store, platform-layer or image
content) are temporarly stored for updating outside of mutex-controlled
scene update. Performing all other state updates outside of this mutex
area will be investigated at a later point.
We then iterate over vectors for each layer backing, gathering any
affected CoordinatedBackingStore or TextureMapperPlatformLayerProxy
objects that we have to update.
This drops a bunch of member variables and helper methods off the
CoordinatedGraphicsScene class. The applyStateChanges() method will be
further simplified in the future. coordinateUpdateCompletionWithClient
logic in ThreadedCompositor should be checked to see whether it still
addresses any real-life problem, because at the moment it imposes a few
additional operations in terms of scene updates that we could really do
without. This will be checked later and removed if possible.
- Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::applyStateChanges):
(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):
(WebKit::compositionLayerImpl):
(WebKit::contentLayerImpl):
(WebKit::backingStoreImpl):
(WebKit::imageBackingImpl):
(WebKit::texmapLayer):
(WebKit::updateBackingStore):
(WebKit::updateImageBacking):
(WebKit::removeLayer):
(WebKit::CoordinatedGraphicsScene::commitSceneState):
(WebKit::CoordinatedGraphicsScene::updateSceneState):
(WebKit::CoordinatedGraphicsScene::purgeGLResources):
(WebKit::CoordinatedGraphicsScene::syncPlatformLayerIfNeeded): Deleted.
(WebKit::CoordinatedGraphicsScene::setLayerChildrenIfNeeded): Deleted.
(WebKit::CoordinatedGraphicsScene::setLayerFiltersIfNeeded): Deleted.
(WebKit::CoordinatedGraphicsScene::setLayerState): Deleted.
(WebKit::CoordinatedGraphicsScene::getLayerByIDIfExists): Deleted.
(WebKit::CoordinatedGraphicsScene::createLayers): Deleted.
(WebKit::CoordinatedGraphicsScene::createLayer): Deleted.
(WebKit::CoordinatedGraphicsScene::deleteLayers): Deleted.
(WebKit::CoordinatedGraphicsScene::deleteLayer): Deleted.
(WebKit::CoordinatedGraphicsScene::setRootLayerID): Deleted.
(WebKit::CoordinatedGraphicsScene::prepareContentBackingStore): Deleted.
(WebKit::CoordinatedGraphicsScene::createBackingStoreIfNeeded): Deleted.
(WebKit::CoordinatedGraphicsScene::removeBackingStoreIfNeeded): Deleted.
(WebKit::CoordinatedGraphicsScene::resetBackingStoreSizeToLayerSize): Deleted.
(WebKit::CoordinatedGraphicsScene::createTilesIfNeeded): Deleted.
(WebKit::CoordinatedGraphicsScene::removeTilesIfNeeded): Deleted.
(WebKit::CoordinatedGraphicsScene::updateTilesIfNeeded): Deleted.
(WebKit::CoordinatedGraphicsScene::syncImageBackings): Deleted.
(WebKit::CoordinatedGraphicsScene::createImageBacking): Deleted.
(WebKit::CoordinatedGraphicsScene::updateImageBacking): Deleted.
(WebKit::CoordinatedGraphicsScene::clearImageBackingContents): Deleted.
(WebKit::CoordinatedGraphicsScene::removeImageBacking): Deleted.
(WebKit::CoordinatedGraphicsScene::assignImageBackingToLayer): Deleted.
(WebKit::CoordinatedGraphicsScene::setLayerAnimationsIfNeeded): Deleted.
- Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
(WebKit::CoordinatedGraphicsScene::layerByID): Deleted.
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::renderLayerTree):
- WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:
(WebKit::CompositingCoordinator::flushPendingLayerChanges):
- 3:37 AM Changeset in webkit [235164] by
-
- 2 edits in trunk/Source/WebCore
Remove stale file references in WebCore Xcode project
I manually removed these using Xcode and verified that there was
a commit that removed the original files.
Found by tool created for Bug 188754: Tool to fix folders that
should map to directories in Xcode project files.
- WebCore.xcodeproj/project.pbxproj:
(dom/DOMExceptions.in): Removed in r219741.
(Modules/modern-media-controls/start-button.js):
(Modules/modern-media-controls/volume-slider.css):
(Modules/modern-media-controls/icon-button.css):
(Modules/modern-media-controls/volume-slider.js):
(Modules/modern-media-controls/macos-media-controls.js):
(Modules/modern-media-controls/ios-inline-media-controls.css):
(Modules/modern-media-controls/scrubber.css):
(Modules/modern-media-controls/start-button.css):
(Modules/modern-media-controls/scrubber.js):
(Modules/modern-media-controls/icon-button.js):
(Modules/modern-media-controls/macos-compact-inline-media-controls.css):
(Modules/modern-media-controls/images/iOS/enter-fullscreen@2x.png):
(Modules/modern-media-controls/images/iOS/start@1x.png):
(Modules/modern-media-controls/images/iOS/enter-fullscreen@1x.png):
(Modules/modern-media-controls/images/iOS/pause@2x.png):
(Modules/modern-media-controls/images/iOS/play@3x.png):
(Modules/modern-media-controls/images/iOS/interval-skip-back@2x.png):
(Modules/modern-media-controls/images/iOS/interval-skip-back@3x.png):
(Modules/modern-media-controls/images/iOS/pip-in@2x.png):
(Modules/modern-media-controls/images/iOS/start@3x.png):
(Modules/modern-media-controls/images/iOS/airplay@1x.png):
(Modules/modern-media-controls/images/iOS/enter-fullscreen@3x.png):
(Modules/modern-media-controls/images/iOS/slider-thumb@2x.png):
(Modules/modern-media-controls/images/iOS/airplay@2x.png):
(Modules/modern-media-controls/images/iOS/pause@3x.png):
(Modules/modern-media-controls/images/iOS/pip-in@3x.png):
(Modules/modern-media-controls/images/iOS/interval-skip-back@1x.png):
(Modules/modern-media-controls/images/iOS/pause@1x.png):
(Modules/modern-media-controls/images/iOS/start@2x.png):
(Modules/modern-media-controls/images/iOS/play@2x.png):
(Modules/modern-media-controls/images/iOS/pip-in@1x.png):
(Modules/modern-media-controls/images/iOS/play@1x.png):
(Modules/modern-media-controls/images/macOS/enter-fullscreen-compact@1x.png):
(Modules/modern-media-controls/images/macOS/rewind@1x.png):
(Modules/modern-media-controls/images/macOS/play@2x.png):
(Modules/modern-media-controls/images/macOS/volume-mute@2x.png):
(Modules/modern-media-controls/images/macOS/airplay-fullscreen@1x.png):
(Modules/modern-media-controls/images/macOS/volume@2x.png):
(Modules/modern-media-controls/images/macOS/interval-skip-back@2x.png):
(Modules/modern-media-controls/images/macOS/volume-compact@2x.png):
(Modules/modern-media-controls/images/macOS/start@2x.png):
(Modules/modern-media-controls/images/macOS/exit-fullscreen@2x.png):
(Modules/modern-media-controls/images/macOS/airplay@2x.png):
(Modules/modern-media-controls/images/macOS/media-selection-fullscreen@1x.png):
(Modules/modern-media-controls/images/macOS/interval-skip-back@1x.png):
(Modules/modern-media-controls/images/macOS/airplay@1x.png):
(Modules/modern-media-controls/images/macOS/pip-in@1x.png):
(Modules/modern-media-controls/images/macOS/scale-to-fill@2x.png):
(Modules/modern-media-controls/images/macOS/rewind@2x.png):
(Modules/modern-media-controls/images/macOS/play-compact@1x.png):
(Modules/modern-media-controls/images/macOS/media-selection-fullscreen@2x.png):
(Modules/modern-media-controls/images/macOS/pip-in-fullscreen@1x.png):
(Modules/modern-media-controls/images/macOS/volume@1x.png):
(Modules/modern-media-controls/images/macOS/pip-in@2x.png):
(Modules/modern-media-controls/images/macOS/play-fullscreen@2x.png):
(Modules/modern-media-controls/images/macOS/volume-down-fullscreen@1x.png):
(Modules/modern-media-controls/images/macOS/pause-fullscreen@2x.png):
(Modules/modern-media-controls/images/macOS/enter-fullscreen-compact@2x.png):
(Modules/modern-media-controls/images/macOS/enter-fullscreen@1x.png):
(Modules/modern-media-controls/images/macOS/pause-compact@1x.png):
(Modules/modern-media-controls/images/macOS/start@1x.png):
(Modules/modern-media-controls/images/macOS/pip-in-fullscreen@2x.png):
(Modules/modern-media-controls/images/macOS/pause-fullscreen@1x.png):
(Modules/modern-media-controls/images/macOS/play@1x.png):
(Modules/modern-media-controls/images/macOS/exit-fullscreen@1x.png):
(Modules/modern-media-controls/images/macOS/forward@1x.png):
(Modules/modern-media-controls/images/macOS/enter-fullscreen@2x.png):
(Modules/modern-media-controls/images/macOS/pause@1x.png):
(Modules/modern-media-controls/images/macOS/scale-to-fit@2x.png):
(Modules/modern-media-controls/images/macOS/interval-skip-back-compact@2x.png):
(Modules/modern-media-controls/images/macOS/pause@2x.png):
(Modules/modern-media-controls/images/macOS/volume-up-fullscreen@1x.png):
(Modules/modern-media-controls/images/macOS/volume-compact@1x.png):
(Modules/modern-media-controls/images/macOS/play-compact@2x.png):
(Modules/modern-media-controls/images/macOS/media-selection@2x.png):
(Modules/modern-media-controls/images/macOS/forward@2x.png):
(Modules/modern-media-controls/images/macOS/interval-skip-back-compact@1x.png):
(Modules/modern-media-controls/images/macOS/scale-to-fill@1x.png):
(Modules/modern-media-controls/images/macOS/airplay-fullscreen@2x.png):
(Modules/modern-media-controls/images/macOS/media-selection@1x.png):
(Modules/modern-media-controls/images/macOS/volume-mute@1x.png):
(Modules/modern-media-controls/images/macOS/pause-compact@2x.png):
(Modules/modern-media-controls/images/macOS/volume-up-fullscreen@2x.png):
(Modules/modern-media-controls/images/macOS/scale-to-fit@1x.png):
(Modules/modern-media-controls/images/macOS/play-fullscreen@1x.png):
(Modules/modern-media-controls/images/macOS/volume-down-fullscreen@2x.png):
(Modules/modern-media-controls/media/time-labels-support.js):
- Removed in r217823.
(Modules/webvr/VRDisplayCapabilities.cpp): Removed in r229089.
(Modules/webvr/VRFieldOfView.cpp): Removed in r228819.
(rendering/svg/RenderSVGAllInOne.cpp): Removed in r234655.
- 12:13 AM Changeset in webkit [235163] by
-
- 2 edits in trunk/Source/WebInspectorUI
Unreviewed. Do not include TreeOutlineDataGridSynchronizer.js in inspector main.
The script was removed in r235151.
- UserInterface/Main.html:
- 12:01 AM Changeset in webkit [235162] by
-
- 2 edits in trunk/Source/WebCore
Do not try to update the compositing policy when not in accelerated compositing mode
https://bugs.webkit.org/show_bug.cgi?id=188787
Reviewed by Simon Fraser.
RenderLayerCompositor::updateCompositingPolicy() is called very often (called from
RenderLayerCompositor::cacheAcceleratedCompositingFlags()) and it uses WTF::memoryFootprint() to decide the
current compositing policy. Getting the memory footprint is an expensive operation in Linux (and I suspect other
non-cocoa ports too), causing an excessive CPU usage. This caused the WPE and GTK+ unit test
/webkit/WebKitWebContext/uri-scheme to start timing out in the bots, because the test expects things to happen
fast and that's no longer the case. We could reduce the CPU usage a lot by not trying to update the policy when
not in accelerated compositing mode. We will need a solution for the accelerated compositing mode, though.
Fixes WPE/GTK+ unit test /webkit/WebKitWebContext/uri-scheme.
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateCompositingPolicy): Return early when not in accelerated compositing mode.