⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Nov 20, 2019:

11:25 PM Changeset in webkit [252729] by Conrad Shultz
  • 2 edits in trunk/Source/WebCore

Crash at com.apple.WebCore: -[WebRevealHighlight revealContext:drawRectsForItem:]
https://bugs.webkit.org/show_bug.cgi?id=204434

Reviewed by Megan Gardner.

_attributedString was not retained, leading to a potential use-after-dealloc. Fix
this by wrapping it in a RetainPtr. While we're here, remove explicit ivars and
property synthesis and copy the string during assignment.

Reveal functionality is currently not testable.

  • editing/cocoa/DictionaryLookup.mm:

(SOFT_LINK_CLASS_OPTIONAL):
(-[WebRevealHighlight initWithHighlightRect:useDefaultHighlight:attributedString:]):

10:02 PM Changeset in webkit [252728] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Extend MacroAssemblerARM64::load/store for datasize = 16
https://bugs.webkit.org/show_bug.cgi?id=204442
<rdar://problem/57366761>

Reviewed by Mark Lam.

Our void load16(const void* address, RegisterID dest) and void store16(RegisterID src, const void* address) are not aware of
the condition that passed register can be memoryTempRegister, while MacroAssemblerARM64::{load,store} handles it correctly, e.g.
load invalidates cachedMemoryTempRegister if destination register is memoryTempRegister. As a result, when we are emitting
or16(TrustedImm32 imm, AbsoluteAddress address) with address where the address's value does not fit in imm, the generated code
is reusing memoryTempRegister incorrectly.

0xedf8d4fb4: mov x17, #0x7af0
0xedf8d4fb8: movk x17, #0xd5a, lsl #16
0xedf8d4fbc: movk x17, #0x1, lsl #32 Construct imm register on x17.
0xedf8d4fc0: ldrh w17, [x17]
Load half word from x17 to w17 (we should invalidate x17 memoryTempRegister here).
0xedf8d4fc4: mov w16, #0x1b
0xedf8d4fc8: orr w16, w17, w16
0xedf8d4fcc: strh w16, [x17] x17 memoryTempRegister is reused while its content is invalid.

The problem is that load and store functions are not supporting datasize = 16 case. This patch extends MacroAssemblerARM64::{load,store}
to support 16 so that or16 implementation looks is similar to or32 etc.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::load16):
(JSC::MacroAssemblerARM64::store16):
(JSC::MacroAssemblerARM64::load):
(JSC::MacroAssemblerARM64::store):

  • assembler/testmasm.cpp:

(JSC::testOrImmMem):

9:12 PM Changeset in webkit [252727] by Jonathan Bedard
  • 2 edits in trunk/Tools

run-webkit-tests: Make usability test on booting simulators more robust
https://bugs.webkit.org/show_bug.cgi?id=204423
<rdar://problem/57364735>

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/xcode/simulated_device.py:

(SimulatedDevice.is_usable): Use regular expressions to find home-screen service.

8:34 PM Changeset in webkit [252726] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[MSVC] error C2039: 'weakPtrFactory': is not a member of 'WebCore::DocumentStorageAccess::requestStorageAccess::<lambda_3f2cfd7704f93d8fe19d5b5f064f8add>'
https://bugs.webkit.org/show_bug.cgi?id=204437

Unreviewed build fix.

MSVC has a bug of a outer lambda's captured 'this' can't be used as
a lambda capture initializer of a inner lambda.

  • dom/DocumentStorageAccess.cpp:

(WebCore::DocumentStorageAccess::requestStorageAccess): Replaced '*this' in the lambda capture initializer with '*weakThis'.

6:00 PM Changeset in webkit [252725] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Baseline JIT should fill in StructureStubInfo's propertyIsInt32 and the slow path should update the array profile more frequently
https://bugs.webkit.org/show_bug.cgi?id=204432

Reviewed by Tadeu Zagallo.

When I added inline caching for get by val, I removed code which updated the
ArrayProfile with some frequency. This patch adds code that does that back,
which recovers some of the JetStream2 regressions we are seeing.

  • jit/JITOperations.cpp:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_get_by_val):

5:48 PM Changeset in webkit [252724] by Simon Fraser
  • 31 edits in trunk

getComputedStyle returns "auto" for zIndex property even after it has been set, on non-positioned elements
https://bugs.webkit.org/show_bug.cgi?id=15562

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

More passing tests.

  • web-platform-tests/css/css-position/inheritance-expected.txt:
  • web-platform-tests/css/css-values/calc-integer-expected.txt:
  • web-platform-tests/css/css-values/calc-z-index-fractions-001-expected.txt:
  • web-platform-tests/css/css-values/minmax-integer-computed-expected.txt:

Source/WebCore:

The computed value of z-index should be the specified value, but Style::Adjuster::adjust() set z-index
to auto on non-positioned elements, so we reported the incorrect computed value.

Fix by storing the specified value in RenderStyle as "zIndex", and the used value as "effectiveZIndex", and
converting all rendering code to use the "effective" variants. getComputedStyle reads "zIndex".

Style::Adjuster::adjust() copies zIndex to effectiveZIndex for positioned elements.

Tests: fast/css/getComputedStyle/getComputedStyle-zIndex-auto.html

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::apply):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSProperties.json:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::createInnerTextStyle):

  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • page/animation/CompositeAnimation.cpp:

(WebCore::CompositeAnimation::animate):

  • rendering/RenderBox.cpp:

(WebCore::isCandidateForOpaquenessTest):

  • rendering/RenderBox.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::styleWillChange):

  • rendering/RenderFullScreen.cpp:

(WebCore::createFullScreenStyle):

  • rendering/RenderLayer.cpp:

(WebCore::canCreateStackingContext):
(WebCore::RenderLayer::shouldBeCSSStackingContext const):
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayer.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::logLayerInfo):

  • rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::styleWillChange):

  • rendering/RenderTreeAsText.cpp:

(WebCore::RenderTreeAsText::writeRenderObject):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresLayerRepaint const):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::specifiedZIndex const):
(WebCore::RenderStyle::hasAutoSpecifiedZIndex const):
(WebCore::RenderStyle::setSpecifiedZIndex):
(WebCore::RenderStyle::setHasAutoSpecifiedZIndex):
(WebCore::RenderStyle::usedZIndex const):
(WebCore::RenderStyle::hasAutoUsedZIndex const):
(WebCore::RenderStyle::setUsedZIndex):
(WebCore::RenderStyle::setHasAutoUsedZIndex):
(WebCore::RenderStyle::hasAutoZIndex const): Deleted.
(WebCore::RenderStyle::setHasAutoZIndex): Deleted.
(WebCore::RenderStyle::zIndex const): Deleted.
(WebCore::RenderStyle::setZIndex): Deleted.

  • rendering/style/StyleBoxData.cpp:

(WebCore::StyleBoxData::StyleBoxData):
(WebCore::StyleBoxData::operator== const):

  • rendering/style/StyleBoxData.h:

(WebCore::StyleBoxData::specifiedZIndex const):
(WebCore::StyleBoxData::hasAutoSpecifiedZIndex const):
(WebCore::StyleBoxData::usedZIndex const):
(WebCore::StyleBoxData::hasAutoUsedZIndex const):
(WebCore::StyleBoxData::zIndex const): Deleted.
(WebCore::StyleBoxData::hasAutoZIndex const): Deleted.

  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjust const):

LayoutTests:

  • fast/css-grid-layout/grid-item-z-index-support-expected.txt:
  • fast/css-grid-layout/grid-item-z-index-support.html:
  • fast/css/getComputedStyle/getComputedStyle-zIndex-auto-expected.txt:
  • fast/css/getComputedStyle/getComputedStyle-zIndex-auto.html:
5:47 PM Changeset in webkit [252723] by rniwa@webkit.org
  • 34 edits in trunk/Source/WebCore

MicrotaskQueue should be accessed via EventLoop
https://bugs.webkit.org/show_bug.cgi?id=204397

Reviewed by Antti Koivisto.

This patch refactors the existing code so that a microtask is always queued via EventLoopTaskGroup.
It preserves all other (broken) semantics and behavior like all origins sharing a single microtask queue.

The singleton MicrotaskQueue for the main thread has been moved from MicrotaskQueue::mainThreadQueue
to WindowEventLoop, and an instance of MicrotaskQueue for each worker has been moved from WorkerGlobalScope
to WorkerEventLoop.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::internalUpdateAnimationsAndSendEvents):

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::updateFinishedState):

  • bindings/js/JSDOMGlobalObjectTask.cpp:

(WebCore::JSGlobalObjectTask::JSGlobalObjectTask):

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::queueMicrotaskToEventLoop): Renamed from queueTaskToEventLoop.

  • bindings/js/JSDOMWindowBase.h:
  • bindings/js/JSExecState.cpp:

(WebCore::JSExecState::didLeaveScriptContext):

  • bindings/js/JSRemoteDOMWindowBase.cpp:
  • bindings/js/JSWorkerGlobalScopeBase.cpp:

(WebCore::JSWorkerGlobalScopeBase::queueMicrotaskToEventLoop): Renamed from queueTaskToEventLoop.

  • bindings/js/JSWorkerGlobalScopeBase.h:
  • bindings/js/JSWorkletGlobalScopeBase.cpp:
  • bindings/js/JSWorkletGlobalScopeBase.h:
  • dom/CustomElementReactionQueue.cpp:

(WebCore::BackupElementQueueMicrotask): Deleted.
(WebCore::CustomElementReactionQueue::enqueueElementOnAppropriateElementQueue):
(WebCore::CustomElementReactionQueue::ensureBackupQueue):

  • dom/CustomElementReactionQueue.h:
  • dom/Document.cpp:

(WebCore::Document::finishedParsing):

  • dom/DocumentStorageAccess.cpp:

(WebCore::DocumentStorageAccess::requestStorageAccess):

  • dom/EventLoop.cpp:

(WebCore::EventLoop::queueMicrotask): Added.
(WebCore::EventLoop::performMicrotaskCheckpoint): Added.
(WebCore::EventLoopTaskGroup::queueMicrotaskCallback): Added.
(WebCore::EventLoopTaskGroup::queueMicrotask): Added.
(WebCore::EventLoopTaskGroup::performMicrotaskCheckpoint): Added.

  • dom/EventLoop.h:

(WebCore::EventLoopTaskGroup::microtaskQueue):

  • dom/Microtasks.cpp:

(WebCore::MicrotaskQueue::mainThreadQueue): Deleted.
(WebCore::MicrotaskQueue::contextQueue): Deleted.

  • dom/Microtasks.h:
  • dom/MutationObserver.cpp:

(WebCore::MutationObserverMicrotask): Deleted.
(WebCore::MutationObserver::queueMutationObserverCompoundMicrotask): Made this a member function
so that it can call notifyMutationObservers in its lambda.
(WebCore::MutationObserver::enqueueMutationRecord):
(WebCore::MutationObserver::enqueueSlotChangeEvent):
(WebCore::MutationObserver::setHasTransientRegistration):

  • dom/MutationObserver.h:
  • dom/MutationObserverRegistration.cpp:

(WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach):

  • dom/WindowEventLoop.cpp:

(WebCore::WindowEventLoop::microtaskQueue):

  • dom/WindowEventLoop.h:
  • html/parser/HTMLDocumentParser.cpp:

(WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder):

  • html/parser/HTMLScriptRunner.cpp:

(WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
(WebCore::HTMLScriptRunner::runScript):

  • inspector/agents/InspectorCanvasAgent.cpp:

(WebCore::InspectorCanvasAgent::recordCanvasAction):

  • testing/Internals.cpp:

(WebCore::Internals::queueMicroTask):

  • workers/WorkerEventLoop.cpp:

(WebCore::WorkerEventLoop::~WorkerEventLoop):
(WebCore::WorkerEventLoop::microtaskQueue):
(WebCore::WorkerEventLoop::clearMicrotaskQueue):

  • workers/WorkerEventLoop.h:
  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::WorkerGlobalScope):
(WebCore::WorkerGlobalScope::prepareForTermination):

  • workers/WorkerGlobalScope.h:

(WebCore::WorkerGlobalScope::microtaskQueue const): Deleted.

5:25 PM Changeset in webkit [252722] by Jonathan Bedard
  • 2 edits in trunk/Tools

run-webkit-tests: Do not create global SystemHost objects
https://bugs.webkit.org/show_bug.cgi?id=204426

Reviewed by Aakash Jain.

If created, SystemHost objects should be created on-demand, not globally
shared between all instances of a function.

  • Scripts/webkitpy/xcode/simulated_device.py:

(SimulatedDeviceManager.populate_available_devices):
(SimulatedDeviceManager.available_devices):
(SimulatedDeviceManager.device_by_filter):
(SimulatedDeviceManager._create_or_find_device_for_request):
(SimulatedDeviceManager._boot_device):
(SimulatedDeviceManager.device_count_for_type):
(SimulatedDeviceManager.initialize_devices):
(SimulatedDeviceManager.max_supported_simulators):
(SimulatedDeviceManager.swap):
(SimulatedDeviceManager.tear_down):

5:16 PM Changeset in webkit [252721] by Ross Kirsling
  • 6 edits in trunk

Unreviewed, address Darin's feedback on r252683.

JSTests:

  • stress/string-replaceall.js:

Source/JavaScriptCore:

  • runtime/StringPrototype.cpp:

(JSC::replaceUsingStringSearch):
(JSC::replace):
(JSC::stringProtoFuncReplaceUsingStringSearch):
(JSC::stringProtoFuncReplaceAllUsingStringSearch):

Source/WTF:

  • wtf/text/StringCommon.h:

(WTF::findCommon):

5:09 PM Changeset in webkit [252720] by Kate Cheney
  • 3 edits in trunk/LayoutTests

[ Jazz ] http/tests/resourceLoadStatistics/cookie-deletion.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=203813
<rdar://problem/54316765>

Reviewed by John Wilander.

Added random dummy value to the end of the cookie-redirect query to ensure
the third party url isn't failing to set the cookie and redirect back
to the correct file because the url is already in the cache from previous runs.

  • http/tests/resourceLoadStatistics/cookie-deletion-expected.txt:
  • http/tests/resourceLoadStatistics/cookie-deletion.html:
5:08 PM Changeset in webkit [252719] by Wenson Hsieh
  • 8 edits in trunk/Tools

Correct argument types in UIScriptController::activateDataListSuggestion after r252062
https://bugs.webkit.org/show_bug.cgi?id=203116

Reviewed by Tim Horton.

Use unsigned to represent unsigned long arguments declared in the IDL.

  • DumpRenderTree/mac/UIScriptControllerMac.h:
  • DumpRenderTree/mac/UIScriptControllerMac.mm:

(WTR::UIScriptControllerMac::activateDataListSuggestion):

  • TestRunnerShared/UIScriptContext/UIScriptController.h:

(WTR::UIScriptController::activateDataListSuggestion):

  • WebKitTestRunner/ios/UIScriptControllerIOS.h:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::activateDataListSuggestion):

  • WebKitTestRunner/mac/UIScriptControllerMac.h:
  • WebKitTestRunner/mac/UIScriptControllerMac.mm:

(WTR::UIScriptControllerMac::activateDataListSuggestion):

4:28 PM Changeset in webkit [252718] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Unreviewed, remove an unnecessary null check after r252561
https://bugs.webkit.org/show_bug.cgi?id=204287

Address post-review feedback.

  • Modules/async-clipboard/Clipboard.cpp:

(WebCore::Clipboard::writeText):

3:59 PM Changeset in webkit [252717] by ChangSeok Oh
  • 33 edits
    1 copy
    1 add in trunk

[GTK] Add ANGLE backend to GTK port
https://bugs.webkit.org/show_bug.cgi?id=199060

Reviewed by Žan Doberšek.

.:

This change brings ANGLE support for WebGL to GTK port. USE_ANGLE_WEBGL
is newly defined in OptionGTK.cmake, and turns on the USE_ANGLE_EGL flag.

  • Source/cmake/OptionsGTK.cmake: USE_ANGLE_WEBGL added.

Source/ThirdParty/ANGLE:

  • CMakeLists.txt: When USE_ANGLE_WEBGL is enabled, necessary glesv2 entry points headers are installed in the derived source directory. And then adjust-angle-include-path.sh is applied to change include paths in the entry points header files.
  • GLESv2.cmake: libglesv2_entry_points_headers is newly defined, which is a gathering of entry point headers of libGLESv2.
  • PlatformGTK.cmake: In this file, we append gl and glx related angle code as a build target. Since we want gl context and gles context simultaneously, we remove gl prototype calls from the generated libGLESv2 library. Instead, we invoke egl and gl calls of ANGLE via their non-prototype function names.
  • adjust-angle-include-paths.sh: sed is slightly different in unix and linux systems. In particular, its inplace option needs to be changed for better compatibility on linux.
  • include/CMakeLists.txt: ANGLE_WEBGL_HEADERS is newly defined. It gathers header files of ANGLE for WebGL support.

Source/WebCore:

This change aims to bring ANGLE support for WebGL to GTK port. The port
wants to have a gl context for texture mapper and a gles/egl context for webgl
simultaneously, we adopt the readPixel-copyToTexture approach for now because
sharing textures between the two different contextes is not a feasible direction.
Also, to avoid conflicts between gl and gles calls, we use non-prototype functions
of ANGLE for WebGL context (i.e., GraphicsContext3D). Although many combinations
of graphic configurations exist, only default configuration (Nicosia layers
running on ANGLE + GLX is supported. Other combinations like ANGLE + GLES or WPE
will be covered by following patches.

No new tests since no functionality changed.

  • Headers.cmake:
  • PlatformGTK.cmake:
  • SourcesGTK.txt:
  • platform/TextureMapper.cmake:
  • platform/graphics/ANGLEWebKitBridge.h:
  • platform/graphics/GLContext.cpp:
  • platform/graphics/GLContext.h:
  • platform/graphics/GraphicsContext3D.h:
  • platform/graphics/OpenGLShims.cpp:

(WebCore::initializeOpenGLShims):

  • platform/graphics/OpenGLShims.h:
  • platform/graphics/PlatformDisplay.cpp:
  • platform/graphics/angle/GraphicsContext3DANGLE.cpp:

(WebCore::GraphicsContext3D::reshapeFBOs):
(WebCore::GraphicsContext3D::prepareTexture):

  • platform/graphics/nicosia/texmap/NicosiaGC3DANGLELayer.cpp: Added.

(Nicosia::GC3DANGLELayer::ANGLEContext::errorString):
(Nicosia::GC3DANGLELayer::ANGLEContext::lastErrorString):
(Nicosia::GC3DANGLELayer::ANGLEContext::createContext):
(Nicosia::GC3DANGLELayer::ANGLEContext::ANGLEContext):
(Nicosia::GC3DANGLELayer::ANGLEContext::~ANGLEContext):
(Nicosia::GC3DANGLELayer::ANGLEContext::makeContextCurrent):
(Nicosia::GC3DANGLELayer::ANGLEContext::platformContext):
(Nicosia::GC3DANGLELayer::GC3DANGLELayer):
(Nicosia::GC3DANGLELayer::~GC3DANGLELayer):
(Nicosia::GC3DANGLELayer::makeContextCurrent):
(Nicosia::GC3DANGLELayer::platformContext):

  • platform/graphics/nicosia/texmap/NicosiaGC3DANGLELayer.h: Copied from Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGC3DLayer.h.
  • platform/graphics/nicosia/texmap/NicosiaGC3DLayer.cpp:

(Nicosia::GC3DLayer::GC3DLayer):
(Nicosia::GC3DLayer::swapBuffersIfNeeded):

  • platform/graphics/nicosia/texmap/NicosiaGC3DLayer.h:
  • platform/graphics/texmap/BitmapTextureGL.cpp:

(WebCore::BitmapTextureGL::setPendingContents):
(WebCore::BitmapTextureGL::updatePendingContents):

  • platform/graphics/texmap/BitmapTextureGL.h:
  • platform/graphics/texmap/GraphicsContext3DTextureMapper.cpp:

(WebCore::GraphicsContext3D::create):
(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::~GraphicsContext3D):

  • platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp:

(WebCore::TextureMapperPlatformLayerBuffer::paintToTextureMapper):

  • platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:

(WebCore::TextureMapperPlatformLayerProxy::pushNextBuffer):

Source/WebKit:

  • UIProcess/API/glib/WebKitProtocolHandler.cpp: Extention3DANGLE is used instead where ANGLE for WebGL is enabled.
  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp: Append gl extensions for ANGLE.

(WebKit::AcceleratedBackingStoreWayland::checkRequirements):

Source/WTF:

The GTK port uses TEXTURE_MAPPER that has a gl context for accelerated rendering,
and ANGLE has an egl context for WebGL. We want to make both live together
so an exception is made where TEXTURE_MAPPER is enabled.

  • wtf/Platform.h:
3:52 PM Changeset in webkit [252716] by Alan Bujtas
  • 15 edits in trunk

Flexbox sizing logic triggers full repaint on the flex items.
https://bugs.webkit.org/show_bug.cgi?id=204380
<rdar://problem/57236404>

Reviewed by Simon Fraser.

Source/WebCore:

RenderFlexibleBox::applyStretchAlignmentToChild explicitly sets the child renderer's height to 0 before issuing layout on it.
This confuses the child's repaint logic and could trigger unnecessary repaints on complete subtrees.

Many ::layout functions plant a LayoutRepainter stack object to track and report paint invalidations.
It works as long as the renderer's geometry change happens within the scope of this LayoutRepainter.
When the parent (RenderFlexibleBox) mutates the renderer's geometry, the LayoutRepainter object sees
this already mutated state as the initial state and will happily issue repaints even when the final
geometry remains the same.

This patch addresses the redundant repaint by pushing the height reset from the parent down to the child, inside the LayoutRepainter scope.

  • rendering/RenderBlock.h: Restrict it to RenderBlock level for now. It might need to go all the way up to RenderBox.

(WebCore::RenderBlock::shouldResetChildLogicalHeightBeforeLayout const):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutBlock):

  • rendering/RenderBlockFlow.h:
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::resetLogicalHeightBeforeLayoutIfNeeded):

  • rendering/RenderBox.h:

(WebCore::RenderBox::shouldResetLogicalHeightBeforeLayout const):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutBlock):

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::layoutBlock):
(WebCore::RenderFlexibleBox::applyStretchAlignmentToChild):

  • rendering/RenderFlexibleBox.h:
  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutBlock):

  • rendering/RenderGrid.h:
  • rendering/RenderTable.cpp:

(WebCore::RenderTable::layout):

  • rendering/RenderTable.h:

LayoutTests:

  • fast/repaint/align-items-change-expected.txt: progression.
3:31 PM Changeset in webkit [252715] by Justin Fan
  • 2 edits in trunk/LayoutTests

webgl/1.0.3/conformance/context/context-release-upon-reload.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=203984

Unreviewed test gardening. Skip the 2.0.0 version of this test as well.

  • platform/mac-highsierra-wk1/TestExpectations:
3:21 PM Changeset in webkit [252714] by Fujii Hironori
  • 3 edits in trunk/Tools

run-api-tests reports AssertionError os.pathsep not in value in _append_value_colon_separated in Cygwin Python
https://bugs.webkit.org/show_bug.cgi?id=204400

Reviewed by Jonathan Bedard.

r249500 changed Port.environment_for_api_tests to use
Port._append_value_colon_separated to append a build path to some
enviroment variables. _append_value_colon_separated has a
assertion to ensure the given value doesn't iclude ':'. However,
Port._build_path contains ':' on Cygwin Python.

Those enviroment variables are only for macOS and iOS. Move the code to darwin.py.

  • Scripts/webkitpy/port/base.py:

(Port.environment_for_api_tests):

  • Scripts/webkitpy/port/darwin.py:

(DarwinPort.environment_for_api_tests):

3:12 PM Changeset in webkit [252713] by Caio Lima
  • 18 edits in trunk

[JSC] OSR exit to LLInt is broken on MIPS
https://bugs.webkit.org/show_bug.cgi?id=203737

Reviewed by Yusuke Suzuki.

JSTests:

Unskipping broken tests due to OSR to LLInt bug.

  • microbenchmarks/call-spread-call.js:
  • microbenchmarks/throw.js:
  • stress/allocation-sinking-hints-are-valid-ssa-2.js:
  • stress/allocation-sinking-hints-are-valid-ssa.js:
  • stress/arith-profile-for-negate-can-see-non-number-due-to-dfg-osr-exit-profiling.js:
  • stress/arrowfunction-lexical-bind-supercall-4.js:
  • stress/arrowfunction-tdz-3.js:
  • stress/function-constructor-semantics.js:
  • stress/global-import-function-should-return-a-promise-when-clearing-exceptions.js:
  • stress/stress-cleared-calllinkinfo.js:
  • stress/typedarray-configure-index.js:
  • stress/v8-deltablue-strict.js:

PerformanceTests/SunSpider:

  • tests/v8-v6/v8-deltablue.js:

Source/JavaScriptCore:

This patch is adjusting the OSR to LLInt mechanism to MIPS. When we
use PIC on this architecture, we need to properly configure $gp
at some places to be able to access global variables. This is required
on LLInt to access Global Offset Table (got). According to MIPS ABI,
the $gp can be recalculated during function prologue using caller
register $t9. We also emit such instructions (we can see this as
OFFLINE_ASM_CPLOAD macro) immediately after a non-local label on
LLInt. With the introduction of OSR to LLInt mechanism, we now have
return location labels that are reached from ret LLInt instructions.
Such return locations are used to properly return to LLInt execution
whenever an OSR exits from inlined call on DFG or FTL to LLInt. When
OSR is materializing LLInt stack frames for inlined functions (or
accessors), it sets return address to its return location label.
This means that for such labels, we need to adjust $gp
using $ra instead of $t9, given that LLInt ret operation uses
jr $ra to jump the execution to there.
To implement this, we changed mipsAddPICCode to emit code
using the correct register required to recalculate $gp.
We also changed callTargetFunction to use the stubs as return
location points, since the declaration of global labels will emmit
OFFLINE_ASM_CPLOAD($ra) and we don't want to execute it during
normal LLInt execution.

  • llint/LowLevelInterpreter.asm:
  • offlineasm/mips.rb:
3:01 PM Changeset in webkit [252712] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

[iOS] Make sure WebContent process does not get suspended while it is holding a process assertion for the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=204418

Reviewed by Jer Noble.

Make sure WebContent process does not get suspended while it is holding a process assertion for the UIProcess. We
see this happening in sysdiagnoses, and it means the system ends up killing the WebContent process because it leaked
a process assertion.

  • WebProcess/WebProcess.h:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::processTaskStateDidChange):
(WebKit::WebProcess::releaseProcessWasResumedAssertions):

2:45 PM Changeset in webkit [252711] by Jonathan Bedard
  • 3 edits
    1 add in trunk

[WebGL] Add --webgl-test-suite flag for run-webkit-tests
https://bugs.webkit.org/show_bug.cgi?id=204327

Rubber-stamped by Aakash Jain.

Tools:

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args): Add the --webgl macro command, which is the equivalent of:
'Run-webkit-tests --additional-expectations=LayoutTests/webgl/TestExpectations webgl'

LayoutTests:

  • webgl/TestExpectations: Added.
2:29 PM Changeset in webkit [252710] by mmaxfield@apple.com
  • 4 edits
    2 adds in trunk

[Cocoa] Add ui-sans-serif as a sibling to ui-serif, ui-monospace, and ui-rounded
https://bugs.webkit.org/show_bug.cgi?id=204188

Reviewed by Simon Fraser.

Source/WebCore:

As per https://github.com/w3c/csswg-drafts/commit/cd0059a32a74c5a48630ce7c77292642dac70fd9#diff-dd2d54c50c872e1e303daebd4794d642

Test: fast/text/design-system-ui-sans-serif.html

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::fontWithFamilySpecialCase):

  • platform/graphics/cocoa/FontDescriptionCocoa.cpp:

(WebCore::matchSystemFontUse):

LayoutTests:

  • fast/text/design-system-ui-sans-serif-expected.html: Added.
  • fast/text/design-system-ui-sans-serif.html: Added.
2:25 PM Changeset in webkit [252709] by Alan Coon
  • 1 copy in tags/Safari-608.4.9.1.4

Tag Safari-608.4.9.1.4.

2:19 PM Changeset in webkit [252708] by Alan Coon
  • 7 edits in branches/safari-608.4.9.1-branch/Source

Versioning.

2:18 PM Changeset in webkit [252707] by ChangSeok Oh
  • 2 edits in trunk/Tools

Reactivate my committer status.

Unreviewed.

  • Scripts/webkitpy/common/config/contributors.json:
2:13 PM Changeset in webkit [252706] by Truitt Savell
  • 1 edit
    3 adds in trunk/LayoutTests

Add platform specific expectations for High Sierra and Mojave for svg/custom/glyph-selection-arabic-forms.svg
https://bugs.webkit.org/show_bug.cgi?id=204249

Unreviewed test gardening.

  • platform/mac-highsierra/svg/custom/glyph-selection-arabic-forms-expected.txt: Added.
  • platform/mac-mojave/svg/custom/glyph-selection-arabic-forms-expected.txt: Added.
2:12 PM Changeset in webkit [252705] by Matt Lewis
  • 2 edits in trunk/Tools

Add trigger for WebGL bot to config.

RS config fix by Jonathan Bedard.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
1:23 PM Changeset in webkit [252704] by yurys@chromium.org
  • 8 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r250618): main resource view is empty when pausing on inline 'debugger' statement
https://bugs.webkit.org/show_bug.cgi?id=204086

Reviewed by Devin Rousso.

SourceCodeRevision.currentRevision doesn't create new revisions under the hood anymore.
This allows to avoid undesirable side effects when e.g. text editor tries to read current
content of the SourceCode which results in a new revision (with empty content).
New method editableRevision is introduced for applying changes to the resource while
keeping original content revision intact.

  • UserInterface/Controllers/CSSManager.js:

(WI.CSSManager.prototype._resourceContentDidChange.applyStyleSheetChanges.styleSheetFound):
(WI.CSSManager.prototype._resourceContentDidChange.applyStyleSheetChanges):
(WI.CSSManager.prototype._resourceContentDidChange):
(WI.CSSManager.prototype._updateResourceContent.fetchedStyleSheetContent):

  • UserInterface/Models/SourceCode.js:

(WI.SourceCode.prototype.get currentRevision):
(WI.SourceCode.prototype.get editableRevision):
(WI.SourceCode.prototype.get content):
(WI.SourceCode.prototype.revisionContentDidChange):

  • UserInterface/Views/FontResourceContentView.js:

(WI.FontResourceContentView.prototype.dropZoneHandleDrop):

  • UserInterface/Views/ImageResourceContentView.js:

(WI.ImageResourceContentView.prototype.dropZoneHandleDrop):

  • UserInterface/Views/ResourceContentView.js:

(WI.ResourceContentView.prototype._contentAvailable):
(WI.ResourceContentView.prototype._handleImportLocalResourceOverride):

  • UserInterface/Views/ScriptContentView.js:

(WI.ScriptContentView.prototype._handleTextEditorContentDidChange):

  • UserInterface/Views/TextResourceContentView.js:

(WI.TextResourceContentView.prototype._textEditorContentDidChange):

1:04 PM Changeset in webkit [252703] by Matt Lewis
  • 3 edits in trunk/Tools

Bring up WebGL Test Queue.
https://bugs.webkit.org/show_bug.cgi?id=204374

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
12:35 PM Changeset in webkit [252702] by BJ Burg
  • 14 edits
    1 add in trunk/Source

[Cocoa] Add _WKRemoteWebInspectorViewController SPI to set diagnostic logging delegate
https://bugs.webkit.org/show_bug.cgi?id=204371

Reviewed by Devin Rousso.

Source/WebCore:

Expose whether a diagnostic logging delegate has been configured for the frontend's WKWebView.
In a later patch, WI.DiagnosticController will start and stop recording as availability changes.

  • inspector/InspectorFrontendClient.h:

(WebCore::InspectorFrontendClient::diagnosticLoggingAvailable):

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::diagnosticLoggingAvailable):

  • inspector/InspectorFrontendHost.h:

Source/WebKit:

  • UIProcess/WebInspectorProxy.h:
  • UIProcess/RemoteWebInspectorProxy.h:
  • UIProcess/RemoteWebInspectorProxy.cpp:

(WebKit::RemoteWebInspectorProxy::setDiagnosticLoggingAvailable):
Hook up the plumbing to forward this state change to the frontend.

  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewControllerPrivate.h: Added.
  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:

(-[_WKRemoteWebInspectorViewController _setDiagnosticLoggingDelegate:]):
Add new SPI to set the diagnostic logging delegate. This is preferable to directly
setting the delegate on the inspector WKWebView (via .webView._diagnosticLoggingDelegate),
because the controller can notify the frontend that diagnostic logging is now available.

  • WebKit.xcodeproj/project.pbxproj: Add new header file and make it private.
  • WebProcess/WebPage/WebInspectorUI.h:
  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::setDiagnosticLoggingAvailable):
Cache this value and use it for InspectorFrontendClient::diagnosticLoggingAvailable().

  • WebProcess/WebPage/RemoteWebInspectorUI.messages.in:
  • WebProcess/WebPage/RemoteWebInspectorUI.h:
  • WebProcess/WebPage/RemoteWebInspectorUI.cpp:

(WebKit::RemoteWebInspectorUI::setDiagnosticLoggingAvailable):
Duplicate what is done for the local case.

12:33 PM Changeset in webkit [252701] by Simon Fraser
  • 7 edits in trunk

Turn off antialiasing when rendering with Ahem, for testing
https://bugs.webkit.org/show_bug.cgi?id=204197
Source/WebCore:

<rdar://problem/57190712>

Reviewed by Myles C. Maxfield.

If the font family name matches "Ahem", turn off antialiasing when rendering text,
because many CSS tests assume that Ahem glyphs can be compared with positioned elements
in ref tests.

Since Ahem is a font only used for testing, I don't think this behavior needs to be
controlled by a setting.

  • platform/graphics/Font.cpp:

(WebCore::Font::Font):

  • platform/graphics/Font.h:

(WebCore::Font::allowsAntialiasing const):

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::FontCascade::drawGlyphs):

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::isAhemFont):
(WebCore::Font::platformInit):

LayoutTests:

Reviewed by Myles C. Maxfield.

12:14 PM Changeset in webkit [252700] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] iOS layout-tests fails with 30+ failures on re-run and on clean-tree
https://bugs.webkit.org/show_bug.cgi?id=204409

Reviewed by Aakash Jain.

  • BuildSlaveSupport/ews-build/steps.py:

(RunWebKitPerlTests.evaluateCommand): Add killOldProcesses before running test suite.
(RunJavaScriptCoreTests.evaluateCommand): Ditto.
(ReRunJavaScriptCoreTests.evaluateCommand): Ditto.
(RunWebKitTests.evaluateCommand): Ditto.
(ReRunWebKitTests.evaluateCommand): Ditto.
(RunAPITests.evaluateCommand): Ditto.
(ReRunAPITests.evaluateCommand): Ditto.

12:06 PM Changeset in webkit [252699] by rmorisset@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix load<16> on ARM64
https://bugs.webkit.org/show_bug.cgi?id=204326

Reviewed by Mark Lam.

On ARM64 I used load<16> in https://bugs.webkit.org/show_bug.cgi?id=202832.
Unfortunately it turns out to call ldr<16>, and ldr<n> asserts that n is either 32 or 64.
This fix simply calls ldrh/strh directly.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::load16):
(JSC::MacroAssemblerARM64::store16):

11:52 AM Changeset in webkit [252698] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test fast/text/font-antialiasing-save-restore.html is failing
https://bugs.webkit.org/show_bug.cgi?id=204413

Unreviewed test gardening.

  • platform/win/TestExpectations:
11:28 AM Changeset in webkit [252697] by Alan Coon
  • 2 edits in tags/Safari-609.1.10.2/Source/WebKit

Cherry-pick r252333. rdar://problem/57079557

[iOS] Unable to view .pages files
https://bugs.webkit.org/show_bug.cgi?id=204076
<rdar://problem/57079557>

Reviewed by Brent Fulgham.

This is caused by a syscall being blocked by the sandbox. The syscall was previously unused in the
WebContent process.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252333 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:57 AM Changeset in webkit [252696] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Cache InlinteTextItem width when possible
https://bugs.webkit.org/show_bug.cgi?id=204412
<rdar://problem/57359366>

Reviewed by Antti Koivisto.

This helps when subsequent inline layouts use the same set of InlineTextItems and they would
keep re-measuring them on each layout frame (e.g. view resize).

  • layout/inlineformatting/InlineLineLayout.cpp:

(WebCore::Layout::inlineItemWidth):

  • layout/inlineformatting/InlineTextItem.cpp:

(WebCore::Layout::InlineTextItem::createAndAppendTextItems):
(WebCore::Layout::InlineTextItem::createWhitespaceItem):
(WebCore::Layout::InlineTextItem::createNonWhitespaceItem):
(WebCore::Layout::InlineTextItem::createSegmentBreakItem):
(WebCore::Layout::InlineTextItem::InlineTextItem):
(WebCore::Layout::InlineTextItem::left const):
(WebCore::Layout::InlineTextItem::right const):

  • layout/inlineformatting/InlineTextItem.h:

(WebCore::Layout::InlineTextItem::width const):

  • layout/inlineformatting/text/TextUtil.h:

(WebCore::Layout::TextUtil::width):

10:53 AM Changeset in webkit [252695] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Regression (r252660): Layout Test platform/ios/mediastream/audio-muted-in-background-tab.html is failing
https://bugs.webkit.org/show_bug.cgi?id=204408

Unreviewed test gardening.

  • platform/ios/TestExpectations:
10:50 AM Changeset in webkit [252694] by mark.lam@apple.com
  • 4 edits in trunk

Flaky JSC test: stress/stack-overflow-in-yarr-byteCompile.js.dfg-eager.
https://bugs.webkit.org/show_bug.cgi?id=204405

Reviewed by Alexey Proskuryakov.

JSTests:

The test was timing out because it's slow. We don't really need to run this test
on all configurations. So, we'll change it to on run with the default
configuration. Also declare the test as "@ slow!".

  • stress/stack-overflow-in-yarr-byteCompile.js:

Source/JavaScriptCore:

$vm.allWithStackSize() manipulates the stack in ways that will freak out ASan.
So, add SUPPRESS_ASAN to functionCallWithStackSize() to tell ASan to ignore it.

  • tools/JSDollarVM.cpp:
10:39 AM Changeset in webkit [252693] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Rebase svg/custom/glyph-selection-arabic-forms.svg
https://bugs.webkit.org/show_bug.cgi?id=204249

Unreviewed test gardening.

  • svg/custom/glyph-selection-arabic-forms-expected.txt:
10:32 AM Changeset in webkit [252692] by jer.noble@apple.com
  • 7 edits
    2 adds in trunk

HTML5 audio .ended event not fired when app in background or phone screen is off
https://bugs.webkit.org/show_bug.cgi?id=173332
<rdar://problem/32757402>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/audio-background-playback-playlist.html

In addition to the necessary WebKit part of this patch, there are behaviors which prevent
websites from enqueuing new playback while in the background. Namely, the platform will
prevent background playback from any application which is not currently the "Now Playing"
application, so in order to allow pages to switch sources, we must ensure we do not give
up "Now Playing" status. To do so, we will change the implementation of canProduceAudio()
to include any media element which previously could produce audio but currently has no
source.

Also, MediaElementSession::canShowControlsManager() will be modified to only check for
a RequireUserGestureToControlControlsManager restriction if the purpose passed in is
is "ControlsManager" and not "NowPlaying".

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::canProduceAudio const):

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::canShowControlsManager const):

Source/WebKit:

When a WebPage goes from audible to inaudible, allow a short grace period before removing
the activity token, to give the page a chance to (e.g.) move to the next item in a playlist
before the process is suspended when in the background.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::updateThrottleState):
(WebKit::WebPageProxy::clearAudibleActivity):

  • UIProcess/WebPageProxy.h:

LayoutTests:

  • media/audio-background-playback-playlist-expected.txt: Added.
  • media/audio-background-playback-playlist.html: Added.
10:25 AM Changeset in webkit [252691] by Jonathan Bedard
  • 2 edits in trunk/Tools

kill-old-processes: Log currently running processes
https://bugs.webkit.org/show_bug.cgi?id=204415

Unreviewed infrastructure management.

  • BuildSlaveSupport/kill-old-processes:

(main): Log 'ps aux' for Mac and Linux.

9:48 AM Changeset in webkit [252690] by Caio Lima
  • 6 edits in trunk/Source/JavaScriptCore

Regression (r252680): JSCOnly build broken: no matching function for call to JSC::DFG::SpeculativeJIT::jsValueResult
https://bugs.webkit.org/show_bug.cgi?id=204404

Reviewed by Saam Barati.

Adjusting build after changes from r252684 and r252680.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateWithGuard):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileIncOrDec):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_to_numeric):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emitSlow_op_get_by_val):

9:12 AM Changeset in webkit [252689] by Simon Fraser
  • 3 edits
    2 adds in trunk

REGRESSION (r252161): box-shadow with inset and rounded borders is clipped
https://bugs.webkit.org/show_bug.cgi?id=204348

Reviewed by Zalan Bujtas.

Source/WebCore:

r252161 introduced a bug for inset shadows where we passed the wrong rect to areaCastingShadowInHole().
Clean the code up a little, and make the xOffset stuff more similar to the outset shadow path.
We could still do a better job of pixel snapping here.

Test: fast/box-shadow/inset-box-shadow.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintBoxShadow):

LayoutTests:

  • fast/box-shadow/inset-box-shadow-expected.html: Added.
  • fast/box-shadow/inset-box-shadow.html: Added.
8:53 AM Changeset in webkit [252688] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test fast/text/font-antialiasing-save-restore.html is failing
https://bugs.webkit.org/show_bug.cgi?id=204413

Unreviewed test gardening.

  • platform/win/TestExpectations:
8:04 AM Changeset in webkit [252687] by Fujii Hironori
  • 5 edits
    1 delete in trunk/Source/WTF

[Win] Implement WTF::ThreadSpecific in WTF::Thread
https://bugs.webkit.org/show_bug.cgi?id=204341

Reviewed by Brent Fulgham and Yusuke Suzuki.

Thread::destructTLS had a tricky code to defer destroying
WTF::Thread in TLS in order to ensure WTF::Thread is destructed
after other ThreadSpecific are destructed, which is a part of
cause of nasty hanging issue in the process termination (Bug 204192).

This change implements WTF::ThreadSpecific in WTF::Thread by
adding a new class Thread::SpecificStorage to manage TLS. Simplify
Thread::destructTLS. Remove threadMapMutex in ThreadingWin.cpp

  • wtf/PlatformWin.cmake:
  • wtf/ThreadSpecific.h:

(WTF::canBeGCThread>::ThreadSpecific):
(WTF::canBeGCThread>::get):
(WTF::canBeGCThread>::setInTLS):
(WTF::canBeGCThread>::destroy):
(WTF::canBeGCThread>::~ThreadSpecific): Deleted.

  • wtf/Threading.h:

(WTF::Thread::specificStorage):
(WTF::Thread::current):

  • wtf/win/ThreadSpecificWin.cpp: Removed.
  • wtf/win/ThreadingWin.cpp:

(WTF::Thread::initializeTLSKey):
(WTF::Thread::initializeTLS):
(WTF::Thread::destructTLS):
(WTF::Thread::SpecificStorage::allocateKey):
(WTF::Thread::SpecificStorage::get):
(WTF::Thread::SpecificStorage::set):
(WTF::Thread::SpecificStorage::destroySlots):
(): Deleted.
(WTF::Thread::currentDying): Deleted.
(WTF::Thread::get): Deleted.

7:18 AM Changeset in webkit [252686] by Alan Bujtas
  • 9 edits
    1 copy in trunk/Source/WebCore

[LFC][IFC] TextUtil::width should use FontCascade::widthForSimpleText when applicable
https://bugs.webkit.org/show_bug.cgi?id=204393
<rdar://problem/57347144>

Reviewed by Antti Koivisto.

This is one of reasons why simple line layout performs better than complex line layout.

  • WebCore.xcodeproj/project.pbxproj:
  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::Run::expand):
(WebCore::Layout::Line::appendTextContent):

  • layout/inlineformatting/InlineTextItem.cpp:

(WebCore::Layout::moveToNextNonWhitespacePosition):
(WebCore::Layout::InlineTextItem::createAndAppendTextItems):

  • layout/inlineformatting/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::width):
(WebCore::Layout::TextUtil::fixedPitchWidth):

  • layout/inlineformatting/text/TextUtil.h:
  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::Box):
(WebCore::Layout::Box::setTextContext):
(WebCore::Layout::Box::hasTextContent const):
(WebCore::Layout::Box::textContext const):
(WebCore::Layout::Box::setTextContent): Deleted.
(WebCore::Layout::Box::textContent const): Deleted.

  • layout/layouttree/LayoutBox.h:
  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::canUseSimplifiedTextMeasuring):
(WebCore::Layout::TreeBuilder::createLayoutBox):
(WebCore::Layout::outputLayoutBox):

Nov 19, 2019:

11:23 PM Changeset in webkit [252685] by Simon Fraser
  • 1 edit
    3 deletes in trunk/LayoutTests

Remove macOS Sierra results in LayoutTests/platform
https://bugs.webkit.org/show_bug.cgi?id=204388

Reviewed by Eric Carlson.

  • platform/mac-sierra-wk1/compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint-expected.txt: Removed.
  • platform/mac-sierra-wk1/compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt: Removed.
  • platform/mac-sierra-wk1/compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint-expected.txt: Removed.
  • platform/mac-sierra-wk1/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator-pluginarray-expected.txt: Removed.
  • platform/mac-sierra-wk2/fast/dom/HTMLLinkElement/preconnect-support-expected.txt: Removed.
  • platform/mac-sierra-wk2/http/tests/navigation/keyboard-events-during-provisional-navigation-expected.txt: Removed.
  • platform/mac-sierra/crypto/subtle/rsa-generate-key-malformed-parameters-expected.txt: Removed.
  • platform/mac-sierra/crypto/subtle/rsa-import-key-malformed-parameters-expected.txt: Removed.
  • platform/mac-sierra/css1/basic/inheritance-expected.png: Removed.
  • platform/mac-sierra/css1/basic/inheritance-expected.txt: Removed.
  • platform/mac-sierra/css2.1/t0602-c13-inh-underlin-00-e-expected.png: Removed.
  • platform/mac-sierra/css2.1/t0602-c13-inh-underlin-00-e-expected.txt: Removed.
  • platform/mac-sierra/css2.1/t0805-c5522-brdr-02-e-expected.txt: Removed.
  • platform/mac-sierra/css3/selectors3/html/css3-modsel-18-expected.png: Removed.
  • platform/mac-sierra/css3/selectors3/html/css3-modsel-18-expected.txt: Removed.
  • platform/mac-sierra/css3/selectors3/html/css3-modsel-19b-expected.png: Removed.
  • platform/mac-sierra/css3/selectors3/html/css3-modsel-19b-expected.txt: Removed.
  • platform/mac-sierra/css3/selectors3/html/css3-modsel-23-expected.png: Removed.
  • platform/mac-sierra/css3/selectors3/html/css3-modsel-23-expected.txt: Removed.
  • platform/mac-sierra/css3/selectors3/html/css3-modsel-69-expected.png: Removed.
  • platform/mac-sierra/css3/selectors3/html/css3-modsel-69-expected.txt: Removed.
  • platform/mac-sierra/css3/selectors3/xhtml/css3-modsel-18-expected.png: Removed.
  • platform/mac-sierra/css3/selectors3/xhtml/css3-modsel-18-expected.txt: Removed.
  • platform/mac-sierra/css3/selectors3/xhtml/css3-modsel-19b-expected.png: Removed.
  • platform/mac-sierra/css3/selectors3/xhtml/css3-modsel-19b-expected.txt: Removed.
  • platform/mac-sierra/css3/selectors3/xhtml/css3-modsel-23-expected.png: Removed.
  • platform/mac-sierra/css3/selectors3/xhtml/css3-modsel-23-expected.txt: Removed.
  • platform/mac-sierra/css3/selectors3/xhtml/css3-modsel-69-expected.png: Removed.
  • platform/mac-sierra/css3/selectors3/xhtml/css3-modsel-69-expected.txt: Removed.
  • platform/mac-sierra/css3/selectors3/xml/css3-modsel-18-expected.png: Removed.
  • platform/mac-sierra/css3/selectors3/xml/css3-modsel-18-expected.txt: Removed.
  • platform/mac-sierra/css3/selectors3/xml/css3-modsel-19b-expected.png: Removed.
  • platform/mac-sierra/css3/selectors3/xml/css3-modsel-19b-expected.txt: Removed.
  • platform/mac-sierra/css3/selectors3/xml/css3-modsel-23-expected.png: Removed.
  • platform/mac-sierra/css3/selectors3/xml/css3-modsel-23-expected.txt: Removed.
  • platform/mac-sierra/css3/selectors3/xml/css3-modsel-69-expected.png: Removed.
  • platform/mac-sierra/css3/selectors3/xml/css3-modsel-69-expected.txt: Removed.
  • platform/mac-sierra/editing/deleting/delete-emoji-1-expected.txt: Removed.
  • platform/mac-sierra/editing/deleting/delete-emoji-2-expected.txt: Removed.
  • platform/mac-sierra/editing/deleting/delete-emoji-3-expected.txt: Removed.
  • platform/mac-sierra/editing/deleting/delete-emoji-4-expected.txt: Removed.
  • platform/mac-sierra/editing/deleting/delete-emoji-5-expected.txt: Removed.
  • platform/mac-sierra/editing/deleting/delete-emoji-6-expected.txt: Removed.
  • platform/mac-sierra/editing/deleting/delete-emoji-7-expected.txt: Removed.
  • platform/mac-sierra/editing/deleting/delete-emoji-8-expected.txt: Removed.
  • platform/mac-sierra/editing/deleting/delete-emoji-9-expected.txt: Removed.
  • platform/mac-sierra/editing/deleting/delete-emoji-expected.txt: Removed.
  • platform/mac-sierra/editing/mac/attributed-string/anchor-element-expected.txt: Removed.
  • platform/mac-sierra/editing/mac/attributed-string/attrib-string-colors-with-color-filter-expected.txt: Removed.
  • platform/mac-sierra/editing/mac/attributed-string/attrib-string-range-with-color-filter-expected.txt: Removed.
  • platform/mac-sierra/editing/mac/attributed-string/attribute-string-for-copy-with-color-filter-expected.txt: Removed.
  • platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-1-expected.txt: Removed.
  • platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-2-expected.txt: Removed.
  • platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-3-expected.txt: Removed.
  • platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-4-expected.txt: Removed.
  • platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-5-expected.txt: Removed.
  • platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-with-style-1-expected.txt: Removed.
  • platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-with-style-2-expected.txt: Removed.
  • platform/mac-sierra/editing/mac/attributed-string/attributed-string-for-typing-expected.txt: Removed.
  • platform/mac-sierra/editing/mac/attributed-string/attributed-string-for-typing-with-color-filter-expected.txt: Removed.
  • platform/mac-sierra/editing/mac/attributed-string/basic-expected.txt: Removed.
  • platform/mac-sierra/editing/mac/attributed-string/comment-cdata-section-expected.txt: Removed.
  • platform/mac-sierra/editing/mac/attributed-string/font-size-expected.txt: Removed.
  • platform/mac-sierra/editing/mac/attributed-string/font-style-variant-effect-expected.txt: Removed.
  • platform/mac-sierra/editing/mac/attributed-string/font-weight-expected.txt: Removed.
  • platform/mac-sierra/editing/mac/attributed-string/letter-spacing-expected.txt: Removed.
  • platform/mac-sierra/editing/mac/attributed-string/text-decorations-expected.txt: Removed.
  • platform/mac-sierra/editing/mac/attributed-string/vertical-align-expected.txt: Removed.
  • platform/mac-sierra/editing/mac/input/firstrectforcharacterrange-styled-expected.txt: Removed.
  • platform/mac-sierra/editing/selection/select-from-textfield-outwards-expected.png: Removed.
  • platform/mac-sierra/editing/selection/select-from-textfield-outwards-expected.txt: Removed.
  • platform/mac-sierra/fast/HTMLTextAreaElement/reset-textarea-expected.png: Removed.
  • platform/mac-sierra/fast/HTMLTextAreaElement/reset-textarea-expected.txt: Removed.
  • platform/mac-sierra/fast/block/basic/001-expected.png: Removed.
  • platform/mac-sierra/fast/block/basic/001-expected.txt: Removed.
  • platform/mac-sierra/fast/css-generated-content/initial-letter-basic-expected.png: Removed.
  • platform/mac-sierra/fast/css-generated-content/initial-letter-basic-expected.txt: Removed.
  • platform/mac-sierra/fast/css-generated-content/initial-letter-border-padding-expected.png: Removed.
  • platform/mac-sierra/fast/css-generated-content/initial-letter-border-padding-expected.txt: Removed.
  • platform/mac-sierra/fast/css-generated-content/initial-letter-raised-expected.png: Removed.
  • platform/mac-sierra/fast/css-generated-content/initial-letter-raised-expected.txt: Removed.
  • platform/mac-sierra/fast/css-generated-content/initial-letter-sunken-expected.png: Removed.
  • platform/mac-sierra/fast/css-generated-content/initial-letter-sunken-expected.txt: Removed.
  • platform/mac-sierra/fast/css/apple-system-control-colors-expected.txt: Removed.
  • platform/mac-sierra/fast/css/css3-nth-child-expected.png: Removed.
  • platform/mac-sierra/fast/css/css3-nth-child-expected.txt: Removed.
  • platform/mac-sierra/fast/css/getComputedStyle/computed-style-expected.txt: Removed.
  • platform/mac-sierra/fast/css/getComputedStyle/computed-style-font-family-expected.txt: Removed.
  • platform/mac-sierra/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: Removed.
  • platform/mac-sierra/fast/css/rtl-ordering-expected.png: Removed.
  • platform/mac-sierra/fast/css/rtl-ordering-expected.txt: Removed.
  • platform/mac-sierra/fast/css/text-overflow-input-expected.png: Removed.
  • platform/mac-sierra/fast/css/text-overflow-input-expected.txt: Removed.
  • platform/mac-sierra/fast/dom/34176-expected.png: Removed.
  • platform/mac-sierra/fast/dom/34176-expected.txt: Removed.
  • platform/mac-sierra/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt: Removed.
  • platform/mac-sierra/fast/dom/clone-node-dynamic-style-expected.png: Removed.
  • platform/mac-sierra/fast/dom/clone-node-dynamic-style-expected.txt: Removed.
  • platform/mac-sierra/fast/forms/basic-inputs-expected.png: Removed.
  • platform/mac-sierra/fast/forms/basic-inputs-expected.txt: Removed.
  • platform/mac-sierra/fast/forms/box-shadow-override-expected.png: Removed.
  • platform/mac-sierra/fast/forms/box-shadow-override-expected.txt: Removed.
  • platform/mac-sierra/fast/forms/button-sizes-expected.png: Removed.
  • platform/mac-sierra/fast/forms/button-sizes-expected.txt: Removed.
  • platform/mac-sierra/fast/forms/button-style-color-expected.png: Removed.
  • platform/mac-sierra/fast/forms/button-style-color-expected.txt: Removed.
  • platform/mac-sierra/fast/forms/input-appearance-disabled-expected.png: Removed.
  • platform/mac-sierra/fast/forms/input-appearance-disabled-expected.txt: Removed.
  • platform/mac-sierra/fast/forms/input-appearance-readonly-expected.png: Removed.
  • platform/mac-sierra/fast/forms/input-appearance-readonly-expected.txt: Removed.
  • platform/mac-sierra/fast/forms/input-appearance-visibility-expected.png: Removed.
  • platform/mac-sierra/fast/forms/input-appearance-visibility-expected.txt: Removed.
  • platform/mac-sierra/fast/forms/input-button-sizes-expected.png: Removed.
  • platform/mac-sierra/fast/forms/input-button-sizes-expected.txt: Removed.
  • platform/mac-sierra/fast/forms/input-table-expected.txt: Removed.
  • platform/mac-sierra/fast/forms/input-value-expected.png: Removed.
  • platform/mac-sierra/fast/forms/input-value-expected.txt: Removed.
  • platform/mac-sierra/fast/forms/listbox-bidi-align-expected.png: Removed.
  • platform/mac-sierra/fast/forms/listbox-bidi-align-expected.txt: Removed.
  • platform/mac-sierra/fast/forms/listbox-hit-test-zoomed-expected.png: Removed.
  • platform/mac-sierra/fast/forms/listbox-hit-test-zoomed-expected.txt: Removed.
  • platform/mac-sierra/fast/forms/option-script-expected.png: Removed.
  • platform/mac-sierra/fast/forms/option-script-expected.txt: Removed.
  • platform/mac-sierra/fast/forms/plaintext-mode-2-expected.png: Removed.
  • platform/mac-sierra/fast/forms/plaintext-mode-2-expected.txt: Removed.
  • platform/mac-sierra/fast/forms/search-rtl-expected.png: Removed.
  • platform/mac-sierra/fast/forms/search-rtl-expected.txt: Removed.
  • platform/mac-sierra/fast/forms/search-vertical-alignment-expected.png: Removed.
  • platform/mac-sierra/fast/forms/search-vertical-alignment-expected.txt: Removed.
  • platform/mac-sierra/fast/forms/searchfield-heights-expected.png: Removed.
  • platform/mac-sierra/fast/forms/searchfield-heights-expected.txt: Removed.
  • platform/mac-sierra/fast/forms/select-visual-hebrew-expected.png: Removed.
  • platform/mac-sierra/fast/forms/select-visual-hebrew-expected.txt: Removed.
  • platform/mac-sierra/fast/forms/select-writing-direction-natural-expected.png: Removed.
  • platform/mac-sierra/fast/forms/select-writing-direction-natural-expected.txt: Removed.
  • platform/mac-sierra/fast/forms/textarea-setinnerhtml-expected.png: Removed.
  • platform/mac-sierra/fast/forms/textarea-setinnerhtml-expected.txt: Removed.
  • platform/mac-sierra/fast/forms/textfield-outline-expected.png: Removed.
  • platform/mac-sierra/fast/forms/textfield-outline-expected.txt: Removed.
  • platform/mac-sierra/fast/forms/visual-hebrew-text-field-expected.png: Removed.
  • platform/mac-sierra/fast/forms/visual-hebrew-text-field-expected.txt: Removed.
  • platform/mac-sierra/fast/invalid/003-expected.png: Removed.
  • platform/mac-sierra/fast/invalid/003-expected.txt: Removed.
  • platform/mac-sierra/fast/invalid/004-expected.png: Removed.
  • platform/mac-sierra/fast/invalid/004-expected.txt: Removed.
  • platform/mac-sierra/fast/invalid/nestedh3s-expected.png: Removed.
  • platform/mac-sierra/fast/invalid/nestedh3s-expected.txt: Removed.
  • platform/mac-sierra/fast/selectors/018-expected.png: Removed.
  • platform/mac-sierra/fast/selectors/018-expected.txt: Removed.
  • platform/mac-sierra/fast/table/frame-and-rules-expected.png: Removed.
  • platform/mac-sierra/fast/table/frame-and-rules-expected.txt: Removed.
  • platform/mac-sierra/fast/text/atsui-multiple-renderers-expected.png: Removed.
  • platform/mac-sierra/fast/text/atsui-multiple-renderers-expected.txt: Removed.
  • platform/mac-sierra/fast/text/bidi-embedding-pop-and-push-same-expected.png: Removed.
  • platform/mac-sierra/fast/text/bidi-embedding-pop-and-push-same-expected.txt: Removed.
  • platform/mac-sierra/fast/text/drawBidiText-expected.png: Removed.
  • platform/mac-sierra/fast/text/drawBidiText-expected.txt: Removed.
  • platform/mac-sierra/fast/text/emoji-expected.txt: Removed.
  • platform/mac-sierra/fast/text/font-selection-font-face-parse-expected.txt: Removed.
  • platform/mac-sierra/fast/text/font-selection-font-loading-api-parse-expected.txt: Removed.
  • platform/mac-sierra/fast/text/font-stretch-parse-expected.txt: Removed.
  • platform/mac-sierra/fast/text/font-style-parse-expected.txt: Removed.
  • platform/mac-sierra/fast/text/font-weight-parse-expected.txt: Removed.
  • platform/mac-sierra/fast/text/font-weights-expected.png: Removed.
  • platform/mac-sierra/fast/text/font-weights-expected.txt: Removed.
  • platform/mac-sierra/fast/text/font-weights-zh-expected.png: Removed.
  • platform/mac-sierra/fast/text/font-weights-zh-expected.txt: Removed.
  • platform/mac-sierra/fast/text/indic-expected.png: Removed.
  • platform/mac-sierra/fast/text/indic-expected.txt: Removed.
  • platform/mac-sierra/fast/text/international/complex-character-based-fallback-expected.png: Removed.
  • platform/mac-sierra/fast/text/international/complex-character-based-fallback-expected.txt: Removed.
  • platform/mac-sierra/fast/text/international/danda-space-expected.png: Removed.
  • platform/mac-sierra/fast/text/international/danda-space-expected.txt: Removed.
  • platform/mac-sierra/fast/text/international/pop-up-button-text-alignment-and-direction-expected.png: Removed.
  • platform/mac-sierra/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt: Removed.
  • platform/mac-sierra/fast/text/orientation-sideways-expected.png: Removed.
  • platform/mac-sierra/fast/text/orientation-sideways-expected.txt: Removed.
  • platform/mac-sierra/fast/text/updateNewFont-expected.png: Removed.
  • platform/mac-sierra/fast/text/updateNewFont-expected.txt: Removed.
  • platform/mac-sierra/fast/writing-mode/text-orientation-basic-expected.png: Removed.
  • platform/mac-sierra/fast/writing-mode/text-orientation-basic-expected.txt: Removed.
  • platform/mac-sierra/fonts/cursive-expected.png: Removed.
  • platform/mac-sierra/fonts/cursive-expected.txt: Removed.
  • platform/mac-sierra/http/tests/blink/sendbeacon/beacon-same-origin-expected.txt: Removed.
  • platform/mac-sierra/http/tests/inspector/network/resource-sizes-memory-cache-expected.txt: Removed.
  • platform/mac-sierra/http/tests/inspector/network/resource-sizes-network-expected.txt: Removed.
  • platform/mac-sierra/http/tests/websocket/tests/hybi/secure-cookie-secure-connection-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.worker-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2_long_empty.https-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2_short_empty.https-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.worker-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.worker-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.worker-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.worker-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.worker-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures.https-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-PSS.https-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-PSS.https-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/rsa_importKey.https.worker-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/rsa_importKey.worker-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/test_rsa_importKey.https-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pkcs.https.worker-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pkcs.worker-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pss.https.worker-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pss.worker-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/test_rsa_pkcs.https-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/test_rsa_pss.https-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any.worker-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt: Removed.
  • platform/mac-sierra/imported/w3c/web-platform-tests/xhr/send-blob-with-no-mime-type-expected.txt: Removed.
  • platform/mac-sierra/inspector/css/shadow-scoped-style-expected.txt: Removed.
  • platform/mac-sierra/platform/mac/fast/loader/file-url-mimetypes-3-expected.txt: Removed.
  • platform/mac-sierra/printing/width-overflow-expected.txt: Removed.
  • platform/mac-sierra/svg/W3C-SVG-1.1/animate-elem-46-t-expected.txt: Removed.
  • platform/mac-sierra/svg/W3C-SVG-1.1/struct-use-01-t-expected.txt: Removed.
  • platform/mac-sierra/svg/batik/text/textStyles-expected.png: Removed.
  • platform/mac-sierra/svg/batik/text/textStyles-expected.txt: Removed.
  • platform/mac-sierra/svg/css/getComputedStyle-basic-expected.txt: Removed.
  • platform/mac-sierra/tables/mozilla/bugs/bug18359-expected.png: Removed.
  • platform/mac-sierra/tables/mozilla/bugs/bug18359-expected.txt: Removed.
  • platform/mac-sierra/tables/mozilla/bugs/bug30692-expected.txt: Removed.
  • platform/mac-sierra/tables/mozilla/bugs/bug51727-expected.png: Removed.
  • platform/mac-sierra/tables/mozilla/bugs/bug51727-expected.txt: Removed.
  • platform/mac-sierra/tables/mozilla/bugs/bug52505-expected.png: Removed.
  • platform/mac-sierra/tables/mozilla/bugs/bug52505-expected.txt: Removed.
  • platform/mac-sierra/tables/mozilla/other/wa_table_thtd_rowspan-expected.png: Removed.
  • platform/mac-sierra/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt: Removed.
  • platform/mac-sierra/tables/mozilla/other/wa_table_tr_align-expected.png: Removed.
  • platform/mac-sierra/tables/mozilla/other/wa_table_tr_align-expected.txt: Removed.
  • platform/mac-sierra/transforms/2d/zoom-menulist-expected.png: Removed.
  • platform/mac-sierra/transforms/2d/zoom-menulist-expected.txt: Removed.
9:53 PM Changeset in webkit [252684] by sbarati@apple.com
  • 71 edits
    2 moves in trunk/Source/JavaScriptCore

GetByVal should use polymorphic access and hook into a status object
https://bugs.webkit.org/show_bug.cgi?id=202767

Reviewed by Keith Miller.

This patch puts get_by_val in our normal IC caching infrastructure. This means
building it on top of StructureStubInfo and PolymorphicAccess. For this to
work, AccessCase now supports all the array load variants that we used to have
fast paths for. For identifier based variants, it we just fall back to the
code we've already implemented, but only after doing a runtime check that
the identifier matches the expected identifier. This allows us to reuse all
the IC infrastructure we have for get_by_id.

Our compilation strategy is that the baseline JIT always emits a get_by_val
IC. If that IC goes to the slow path, the DFG/FTL won't also emit the same IC,
since it's probable that we're seeing a megamorphic switch over strings. This
was needed to keep this patch neutral on Speedometer 2. It's likely there is
room to improve this heuristic: https://bugs.webkit.org/show_bug.cgi?id=204336

This now allows us to have inline caches which contain array loads, and uses
of different identifiers. They just show up as different access cases inside
polymorphic access.

This patch is a progression on various microbenchmarks, especially those with
uses of a fixed set of multiple identifiers. It's neutral on JetStream 2 and
Speedometer 2.

This patch also hooks in get_by_val ICs to our ICStatus infrastructure. This
is going to pave the way to allow us to eagerly throw away baseline code, since
when we go for an FTL compile, we will be able to use the IC status from the
prior compile without relying on baseline specific data structures.

There are a few interesting tidbits in this patch that are worth
highlighting.

  • Unlike get_by_id, when we take an IC snapshot for a get_by_val

IC, we're not guaranteed the various identifiers in question will outlive
the compile (get_by_id ensures this since they're in the constant pool of
CodeBlock). For get_by_val, the Identifiers in question are dynamic fields
of AccessCase, and AccessCase may get destroyed as we're compiling concurrently.
Also, String's reference counting isn't thread safe, so we can't just ref it.
Instead, we use a Box<Identifier> inside AccessCase. This allows us to safely
ref the Box without refing the underlying String. We're not worried about the
Box being destroyed while we're doing this, since we're holding a lock while
taking an IC snapshot inside GetByStatus.

  • We no longer hold onto the actual JS symbol object in the inline cache.

This is what we used to do for inlining by val infos. Instead, this patch
extends the CheckStringIdent node to be able to handle symbols as well. This
patch also renames CheckStringIdent to CheckIdent.

This patch also renames various IC related helpers from GetById* to GetBy*,
since they can both be used by get_by_val and get_by_id.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • bytecode/AccessCase.cpp:

(JSC::AccessCase::AccessCase):
(JSC::AccessCase::create):
(JSC::AccessCase::fromStructureStubInfo):
(JSC::AccessCase::commit):
(JSC::AccessCase::guardedByStructureCheck const):
(JSC::AccessCase::guardedByStructureCheckSkippingConstantIdentifierCheck const):
(JSC::AccessCase::requiresIdentifierNameMatch const):
(JSC::AccessCase::requiresInt32PropertyCheck const):
(JSC::AccessCase::needsScratchFPR const):
(JSC::AccessCase::forEachDependentCell const):
(JSC::AccessCase::doesCalls const):
(JSC::AccessCase::canReplace const):
(JSC::AccessCase::dump const):
(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::generate):
(JSC::AccessCase::generateImpl):
(JSC::AccessCase::toTypedArrayType):
(JSC::AccessCase::checkConsistency):

  • bytecode/AccessCase.h:

(JSC::AccessCase::uid const):
(JSC::AccessCase::identifier const):
(JSC::AccessCase::checkConsistency):
(JSC::AccessCase::AccessCase):

  • bytecode/GetByIdStatus.cpp: Removed.
  • bytecode/GetByIdStatus.h: Removed.
  • bytecode/GetByIdVariant.cpp:

(JSC::GetByIdVariant::GetByIdVariant):
(JSC::GetByIdVariant::operator=):
(JSC::GetByIdVariant::attemptToMerge):

  • bytecode/GetByIdVariant.h:

(JSC::GetByIdVariant::domAttribute const):
(JSC::GetByIdVariant::identifier const):

  • bytecode/GetByStatus.cpp: Copied from Source/JavaScriptCore/bytecode/GetByIdStatus.cpp.

(JSC::GetByStatus::appendVariant):
(JSC::GetByStatus::computeFromLLInt):
(JSC::GetByStatus::computeFor):
(JSC::GetByStatus::GetByStatus):
(JSC::GetByStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::GetByStatus::makesCalls const):
(JSC::GetByStatus::slowVersion const):
(JSC::GetByStatus::merge):
(JSC::GetByStatus::filter):
(JSC::GetByStatus::markIfCheap):
(JSC::GetByStatus::finalize):
(JSC::GetByStatus::singleIdentifier const):
(JSC::GetByStatus::dump const):
(JSC::GetByIdStatus::appendVariant): Deleted.
(JSC::GetByIdStatus::computeFromLLInt): Deleted.
(JSC::GetByIdStatus::computeFor): Deleted.
(JSC::GetByIdStatus::computeForStubInfo): Deleted.
(JSC::GetByIdStatus::GetByIdStatus): Deleted.
(JSC::GetByIdStatus::computeForStubInfoWithoutExitSiteFeedback): Deleted.
(JSC::GetByIdStatus::makesCalls const): Deleted.
(JSC::GetByIdStatus::slowVersion const): Deleted.
(JSC::GetByIdStatus::merge): Deleted.
(JSC::GetByIdStatus::filter): Deleted.
(JSC::GetByIdStatus::markIfCheap): Deleted.
(JSC::GetByIdStatus::finalize): Deleted.
(JSC::GetByIdStatus::dump const): Deleted.

  • bytecode/GetByStatus.h: Copied from Source/JavaScriptCore/bytecode/GetByIdStatus.h.

(JSC::GetByStatus::GetByStatus):
(JSC::GetByStatus::moduleNamespaceObject const):
(JSC::GetByStatus::moduleEnvironment const):
(JSC::GetByStatus::scopeOffset const):
(JSC::GetByIdStatus::GetByIdStatus): Deleted.
(JSC::GetByIdStatus::state const): Deleted.
(JSC::GetByIdStatus::isSet const): Deleted.
(JSC::GetByIdStatus::operator bool const): Deleted.
(JSC::GetByIdStatus::isSimple const): Deleted.
(JSC::GetByIdStatus::isCustom const): Deleted.
(JSC::GetByIdStatus::isModuleNamespace const): Deleted.
(JSC::GetByIdStatus::numVariants const): Deleted.
(JSC::GetByIdStatus::variants const): Deleted.
(JSC::GetByIdStatus::at const): Deleted.
(JSC::GetByIdStatus::operator[] const): Deleted.
(JSC::GetByIdStatus::takesSlowPath const): Deleted.
(JSC::GetByIdStatus::wasSeenInJIT const): Deleted.
(JSC::GetByIdStatus::moduleNamespaceObject const): Deleted.
(JSC::GetByIdStatus::moduleEnvironment const): Deleted.
(JSC::GetByIdStatus::scopeOffset const): Deleted.

  • bytecode/GetterSetterAccessCase.cpp:

(JSC::GetterSetterAccessCase::GetterSetterAccessCase):
(JSC::GetterSetterAccessCase::create):

  • bytecode/GetterSetterAccessCase.h:
  • bytecode/ICStatusMap.h:
  • bytecode/InByIdStatus.cpp:

(JSC::InByIdStatus::computeForStubInfoWithoutExitSiteFeedback):

  • bytecode/InlineAccess.cpp:

(JSC::InlineAccess::generateSelfPropertyAccess):
(JSC::InlineAccess::canGenerateSelfPropertyReplace):
(JSC::InlineAccess::generateSelfPropertyReplace):
(JSC::InlineAccess::isCacheableArrayLength):
(JSC::InlineAccess::generateArrayLength):
(JSC::InlineAccess::isCacheableStringLength):
(JSC::InlineAccess::generateStringLength):
(JSC::InlineAccess::generateSelfInAccess):

  • bytecode/InstanceOfAccessCase.cpp:

(JSC::InstanceOfAccessCase::InstanceOfAccessCase):

  • bytecode/InstanceOfStatus.cpp:

(JSC::InstanceOfStatus::computeForStubInfo):

  • bytecode/IntrinsicGetterAccessCase.cpp:

(JSC::IntrinsicGetterAccessCase::IntrinsicGetterAccessCase):
(JSC::IntrinsicGetterAccessCase::create):

  • bytecode/IntrinsicGetterAccessCase.h:
  • bytecode/ModuleNamespaceAccessCase.cpp:

(JSC::ModuleNamespaceAccessCase::ModuleNamespaceAccessCase):
(JSC::ModuleNamespaceAccessCase::create):

  • bytecode/ModuleNamespaceAccessCase.h:
  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessGenerationState::preserveLiveRegistersToStackForCall):
(JSC::PolymorphicAccess::addCases):
(JSC::PolymorphicAccess::addCase):
(JSC::PolymorphicAccess::commit):
(JSC::PolymorphicAccess::regenerate):
(WTF::printInternal):

  • bytecode/PolymorphicAccess.h:
  • bytecode/ProxyableAccessCase.cpp:

(JSC::ProxyableAccessCase::ProxyableAccessCase):
(JSC::ProxyableAccessCase::create):

  • bytecode/ProxyableAccessCase.h:
  • bytecode/PutByIdStatus.cpp:

(JSC::PutByIdStatus::computeForStubInfo):

  • bytecode/RecordedStatuses.cpp:

(JSC::RecordedStatuses::addGetByStatus):
(JSC::RecordedStatuses::addGetByIdStatus): Deleted.

  • bytecode/RecordedStatuses.h:
  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::StructureStubInfo):
(JSC::StructureStubInfo::initGetByIdSelf):
(JSC::StructureStubInfo::initArrayLength):
(JSC::StructureStubInfo::initStringLength):
(JSC::StructureStubInfo::initPutByIdReplace):
(JSC::StructureStubInfo::initInByIdSelf):
(JSC::StructureStubInfo::deref):
(JSC::StructureStubInfo::aboutToDie):
(JSC::StructureStubInfo::addAccessCase):
(JSC::StructureStubInfo::reset):
(JSC::StructureStubInfo::visitWeakReferences):
(JSC::StructureStubInfo::propagateTransitions):
(JSC::StructureStubInfo::summary const):
(JSC::StructureStubInfo::containsPC const):
(JSC::StructureStubInfo::setCacheType):
(JSC::StructureStubInfo::checkConsistency):

  • bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::getByIdSelfIdentifier):
(JSC::StructureStubInfo::thisValueIsInThisGPR const):
(JSC::StructureStubInfo::checkConsistency):
(JSC::StructureStubInfo::cacheType const):
(JSC::appropriateOptimizingGetByIdFunction):
(JSC::appropriateGenericGetByIdFunction):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::filterICStatus):

  • dfg/DFGArgumentsEliminationPhase.cpp:
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleDOMJITGetter):
(JSC::DFG::ByteCodeParser::handleModuleNamespaceLoad):
(JSC::DFG::ByteCodeParser::load):
(JSC::DFG::ByteCodeParser::handleGetById):
(JSC::DFG::ByteCodeParser::parseGetById):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::handlePutByVal):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGClobbersExitState.cpp:

(JSC::DFG::clobbersExitState):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDesiredIdentifiers.cpp:

(JSC::DFG::DesiredIdentifiers::processCodeBlockIdentifiersIfNeeded):
(JSC::DFG::DesiredIdentifiers::ensure):
(JSC::DFG::DesiredIdentifiers::at const):
(JSC::DFG::DesiredIdentifiers::reallyAdd):

  • dfg/DFGDesiredIdentifiers.h:
  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dump):

  • dfg/DFGGraph.h:
  • dfg/DFGInPlaceAbstractState.cpp:
  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::link):

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::addGetByVal):

  • dfg/DFGMayExit.cpp:
  • dfg/DFGNode.h:

(JSC::DFG::Node::hasUidOperand):
(JSC::DFG::Node::hasGetByStatus):
(JSC::DFG::Node::getByStatus):
(JSC::DFG::Node::hasGetByIdStatus): Deleted.
(JSC::DFG::Node::getByIdStatus): Deleted.

  • dfg/DFGNodeType.h:
  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetById):
(JSC::DFG::SpeculativeJIT::compileCheckIdent):
(JSC::DFG::SpeculativeJIT::compileCheckStringIdent): Deleted.

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGVarargsForwardingPhase.cpp:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckIdent):
(JSC::FTL::DFG::LowerDFGToB3::compileGetById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::getByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckStringIdent): Deleted.

  • jit/ICStats.h:
  • jit/JIT.cpp:

(JSC::JIT::privateCompileSlowCases):
(JSC::JIT::link):

  • jit/JIT.h:
  • jit/JITInlineCacheGenerator.cpp:

(JSC::garbageStubInfo):
(JSC::JITGetByIdWithThisGenerator::JITGetByIdWithThisGenerator):
(JSC::JITInstanceOfGenerator::JITInstanceOfGenerator):
(JSC::JITGetByValGenerator::JITGetByValGenerator):
(JSC::JITGetByValGenerator::generateFastPath):
(JSC::JITGetByValGenerator::finalize):

  • jit/JITInlineCacheGenerator.h:

(JSC::JITGetByValGenerator::JITGetByValGenerator):
(JSC::JITGetByValGenerator::slowPathJump const):

  • jit/JITInlines.h:

(JSC::JIT::emitDoubleGetByVal): Deleted.
(JSC::JIT::emitContiguousGetByVal): Deleted.
(JSC::JIT::emitArrayStorageGetByVal): Deleted.

  • jit/JITOperations.cpp:

(JSC::getByVal):
(JSC::tryGetByValOptimize): Deleted.

  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emitGetByValWithCachedId): Deleted.
(JSC::JIT::privateCompileGetByVal): Deleted.
(JSC::JIT::privateCompileGetByValWithCachedId): Deleted.
(JSC::JIT::emitDirectArgumentsGetByVal): Deleted.
(JSC::JIT::emitScopedArgumentsGetByVal): Deleted.
(JSC::JIT::emitIntTypedArrayGetByVal): Deleted.
(JSC::JIT::emitFloatTypedArrayGetByVal): Deleted.

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emitGetByValWithCachedId): Deleted.

  • jit/Repatch.cpp:

(JSC::appropriateOptimizingGetByFunction):
(JSC::appropriateGetByFunction):
(JSC::tryCacheGetBy):
(JSC::repatchGetBy):
(JSC::tryCacheArrayGetByVal):
(JSC::repatchArrayGetByVal):
(JSC::tryCachePutByID):
(JSC::tryCacheInByID):
(JSC::tryCacheInstanceOf):
(JSC::resetGetBy):
(JSC::appropriateOptimizingGetByIdFunction): Deleted.
(JSC::appropriateGetByIdFunction): Deleted.
(JSC::tryCacheGetByID): Deleted.
(JSC::repatchGetByID): Deleted.
(JSC::resetGetByID): Deleted.

  • jit/Repatch.h:
  • llint/LowLevelInterpreter.h:
  • runtime/DOMAnnotation.h:
  • runtime/JSCJSValue.cpp:

(JSC::JSValue::dumpInContextAssumingStructure const):

  • runtime/Structure.h:
9:12 PM Changeset in webkit [252683] by Ross Kirsling
  • 10 edits
    1 add in trunk

Implement String.prototype.replaceAll
https://bugs.webkit.org/show_bug.cgi?id=202471

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/string-replaceall.js: Added.

Source/JavaScriptCore:

Implement the stage 3 proposal here:
https://github.com/tc39/proposal-string-replaceall

String.prototype.replaceAll is the same as String.prototype.replace, except:

  1. When the first argument is a string, all instances of the search string are replaced.
  2. When the first argument is a non-global regular expression, a TypeError is thrown.
  • builtins/BuiltinNames.h:
  • builtins/StringPrototype.js:

(replaceAll): Added.

  • runtime/StringPrototype.cpp:

(JSC::StringPrototype::finishCreation):
(JSC::jsSpliceSubstringsWithSeparators): Add early out for single-replacement case.
(JSC::replaceUsingStringSearch): Add global replacement logic, following replaceUsingRegExpSearch.
(JSC::replace):
(JSC::stringProtoFuncReplaceUsingStringSearch):
(JSC::stringProtoFuncReplaceAllUsingStringSearch): Added.

Source/WTF:

  • wtf/text/StringCommon.h:

(WTF::findCommon):
Fix logic: "start > length" early out should come before "empty search string" early out.

LayoutTests:

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/script-tests/Object-getOwnPropertyNames.js:

Grrr, why is this a layout test...

8:31 PM Changeset in webkit [252682] by Devin Rousso
  • 3 edits
    1 add in trunk

Web Inspector: DOM.highlightSelector should work for "div, div::before"
https://bugs.webkit.org/show_bug.cgi?id=204306

Reviewed by Brian Burg.

.:

  • ManualTests/inspector/overlay-selectors.html: Added.

Source/WebCore:

In r252436, the implementation of DOM.highlightSelector was changed from just calling
document.querySelectorAll to actually attempting to mimic what the CSS selector matching
engine does. Basically, this meant adding logic to walk the entire DOM tree and for each
node test each CSSSelector of the given selector string to see if it matched.

At the time, I had incorrectly assumed that once a selector was found that matched the
current node, it wouldn't need to be checked against ever again. This would be a fine
assumption if we didn't care about :before/:after, but since DOM.highlightSelector
also wants to match those, it is necessary to test every CSSSelector in case a later one
in the given selector string matches a pseudo-element (e.g. div, div:before).

The fix is simply to change break to continue and to ensure that every item in the
generated NodeList is unique (otherwise the overlay for a node may be drawn twice).

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::highlightSelector):

8:10 PM Changeset in webkit [252681] by youenn@apple.com
  • 18 edits in trunk

getUserMedia echoCancellation constraint has no affect
https://bugs.webkit.org/show_bug.cgi?id=179411

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/mediacapture-streams/MediaDevices-getSupportedConstraints.https-expected.txt:

Source/WebCore:

Update implementation to properly report echoCancellation is supported and can take true or false.
Update CoreAudioCaptureSource to initialize its state in constructor from the audio unit.
This allows getUserMedia constraints to kick in after construction and update the source parameters.
Audio unit parameters will then be set when the source will be asked to produce data.

To enable testing, the mock audio is now adding a high frequency hum when echo cancellation is off.

Covered by updated test.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::capabilityStringVector):
(WebCore::capabilityBooleanVector):

  • platform/mediastream/RealtimeMediaSourceCenter.cpp:

(WebCore::RealtimeMediaSourceCenter::RealtimeMediaSourceCenter):

  • platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp:
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioCaptureSource::initializeToStartProducingData):

  • platform/mediastream/mac/MockAudioSharedUnit.mm:

(WebCore::MockAudioSharedUnit::reconfigure):

  • platform/mock/MockRealtimeAudioSource.cpp:

(WebCore::MockRealtimeAudioSource::MockRealtimeAudioSource):

LayoutTests:

  • fast/mediastream/MediaDevices-getSupportedConstraints-expected.txt:
  • fast/mediastream/MediaDevices-getSupportedConstraints.html:
  • fast/mediastream/MediaStreamTrack-getCapabilities-expected.txt:
  • fast/mediastream/apply-constraints-audio-expected.txt:
  • fast/mediastream/apply-constraints-audio.html:
  • fast/mediastream/getUserMedia-webaudio-expected.txt:
  • fast/mediastream/getUserMedia-webaudio.html:
  • webrtc/routines.js:
7:41 PM Changeset in webkit [252680] by rmorisset@apple.com
  • 50 edits
    2 adds in trunk

[ESNext][BigInt] Add support for op_inc
https://bugs.webkit.org/show_bug.cgi?id=193240

Reviewed by Yusuke Suzuki.

JSTests:

Some parts of these tests are inspired by tests in a WIP patch by Caio Lima.
Thanks to him for allowing their reuse.

  • stress/inc-osr-exit-from-big-int.js: Added.

(let.assert.sameValue):
(postInc):
(preInc):
(postDec):
(preDec):

  • stress/inc-osr-exit-to-big-int.js: Added.

(let.assert.sameValue):
(postInc):
(preInc):
(postDec):
(preDec):
(o.valueOf):

Source/JavaScriptCore:

This patch adds support for both ++ and -- on BigInts.

It required the following secondary changes:

  • teaching FixupPhase how to replace it by ArithAdd/ArithSub/ValueAdd/ValueSub when the type is Int32/Double/BigInt
  • pulling ObservedResults out of UnaryArithProfile/BinaryArithProfile, so that it can be used by ArithAdd regardless of whether it comes from an Inc or from an Add
  • adding the constant 1n to the VM object so that it can be used by FixupPhase since it cannot allocate a new JSValue.
  • adding an UnaryArithProfile to op_inc and op_dec, and teaching the llint to update them.
  • adding ToNumeric (identity on bigints, same as toNumber on everything else) to all tiers
  • bytecode/ArithProfile.cpp:

(JSC::ArithProfile<BitfieldType>::shouldEmitSetDouble const):
(JSC::ArithProfile<BitfieldType>::emitSetDouble const):
(JSC::ArithProfile<BitfieldType>::shouldEmitSetNonNumeric const):
(JSC::ArithProfile<BitfieldType>::shouldEmitSetBigInt const):
(JSC::ArithProfile<BitfieldType>::emitSetNonNumeric const):
(JSC::ArithProfile<BitfieldType>::emitSetBigInt const):

  • bytecode/ArithProfile.h:

(JSC::ObservedResults::ObservedResults):
(JSC::ObservedResults::didObserveNonInt32):
(JSC::ObservedResults::didObserveDouble):
(JSC::ObservedResults::didObserveNonNegZeroDouble):
(JSC::ObservedResults::didObserveNegZeroDouble):
(JSC::ObservedResults::didObserveNonNumeric):
(JSC::ObservedResults::didObserveBigInt):
(JSC::ObservedResults::didObserveInt32Overflow):
(JSC::ObservedResults::didObserveInt52Overflow):
(JSC::ArithProfile::observedResults const):
(JSC::ArithProfile::didObserveNonInt32 const):
(JSC::ArithProfile::didObserveDouble const):
(JSC::ArithProfile::didObserveNonNegZeroDouble const):
(JSC::ArithProfile::didObserveNegZeroDouble const):
(JSC::ArithProfile::didObserveNonNumeric const):
(JSC::ArithProfile::didObserveBigInt const):
(JSC::ArithProfile::didObserveInt32Overflow const):
(JSC::ArithProfile::didObserveInt52Overflow const):
(JSC::ArithProfile::setObservedNonNegZeroDouble):
(JSC::ArithProfile::setObservedNegZeroDouble):
(JSC::ArithProfile::setObservedNonNumeric):
(JSC::ArithProfile::setObservedBigInt):
(JSC::ArithProfile::setObservedInt32Overflow):
(JSC::ArithProfile::setObservedInt52Overflow):
(JSC::ArithProfile::observeResult):

  • bytecode/BytecodeList.rb:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeIndex):
(JSC::computeDefsForBytecodeIndex):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::unaryArithProfileForPC):

  • bytecode/ExitKind.h:
  • bytecode/SpeculatedType.h:

(JSC::isInt32SpeculationForArithmetic):
(JSC::isInt32OrBooleanSpeculationForArithmetic):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitUnaryOp):
(JSC::BytecodeGenerator::emitToNumeric):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::emitPostIncOrDec):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGBackwardsPropagationPhase.cpp:

(JSC::DFG::BackwardsPropagationPhase::propagate):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::makeSafe):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::fixupToNumeric):

  • dfg/DFGMayExit.cpp:
  • dfg/DFGNode.h:

(JSC::DFG::Node::hasHeapPrediction):

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileIncOrDec):
(JSC::DFG::SpeculativeJIT::compileToPrimitive):
(JSC::DFG::SpeculativeJIT::compileToNumeric):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileIncOrDec):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

  • jit/JIT.h:
  • jit/JITMathIC.h:

(JSC::JITMathIC::generateInline):

  • jit/JITMulGenerator.cpp:

(JSC::JITMulGenerator::generateFastPath):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_to_numeric):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_to_numeric):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:
  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::inc):
(JSC::JSBigInt::dec):

  • runtime/JSBigInt.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
7:22 PM Changeset in webkit [252679] by sbarati@apple.com
  • 6 edits in trunk

Remove runNullishAwareOperatorsEnabled

Rubber-stamped by Keith Miller.

JSTests:

  • stress/nullish-coalescing.js:
  • stress/optional-chaining.js:
  • stress/tail-call-recognize.js:

Tools:

  • Scripts/run-jsc-stress-tests:
7:14 PM Changeset in webkit [252678] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Unreviewed, fix webkitpy failures after r252655.

  • Scripts/webkit/LegacyMessageReceiver-expected.cpp:

(WebKit::WebPage::didReceiveWebPageMessage):
(WebKit::WebPage::didReceiveSyncWebPageMessage):

  • Scripts/webkit/MessageReceiver-expected.cpp:

(WebKit::WebPage::didReceiveMessage):
(WebKit::WebPage::didReceiveSyncMessage):

  • Scripts/webkit/MessageReceiverSuperclass-expected.cpp:

(WebKit::WebPage::didReceiveMessage):
(WebKit::WebPage::didReceiveSyncMessage):

7:08 PM Changeset in webkit [252677] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed mac catalyst build fix after r252655.

  • WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.messages.in:
6:43 PM Changeset in webkit [252676] by commit-queue@webkit.org
  • 5 edits
    4 moves in trunk/LayoutTests

Typos in layout test names
https://bugs.webkit.org/show_bug.cgi?id=204387

Patch by Peng Liu <Peng Liu> on 2019-11-19
Reviewed by Eric Carlson.

  • media/video-fullscreen-only-controls-expected.txt: Renamed from LayoutTests/media/video-fullscreeen-only-controls-expected.txt.
  • media/video-fullscreen-only-controls.html: Renamed from LayoutTests/media/video-fullscreeen-only-controls.html.
  • media/video-fullscreen-only-playback-expected.txt: Renamed from LayoutTests/media/video-fullscreeen-only-playback-expected.txt.
  • media/video-fullscreen-only-playback.html: Renamed from LayoutTests/media/video-fullscreeen-only-playback.html.
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
6:37 PM Changeset in webkit [252675] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Assertion failure in HTMLMediaElement::enterFullscreen()
https://bugs.webkit.org/show_bug.cgi?id=204376

Patch by Peng Liu <Peng Liu> on 2019-11-19
Reviewed by Eric Carlson.

Source/WebCore:

Test: media/video-set-presentation-mode-to-inline.html

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::setFullscreenMode):

LayoutTests:

  • media/video-set-presentation-mode-to-inline-expected.txt: Added.
  • media/video-set-presentation-mode-to-inline.html: Added.
6:28 PM Changeset in webkit [252674] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] MetadataTable::sizeInBytes should not touch m_rawBuffer in UnlinkedMetadataTable unless MetadataTable is linked to that UnlinkedMetadataTable
https://bugs.webkit.org/show_bug.cgi?id=204390

Reviewed by Mark Lam.

We have a race issue here. When calling MetadataTable::sizeInBytes, we call UnlinkedMetadataTable::sizeInBytes since we change the result based on
whether this MetadataTable is linked to this UnlinkedMetadataTable or not. The problem is that we are calling UnlinkedMetadataTable::totalSize
unconditionally in UnlinkedMetadataTable::sizeInBytes, and this is touching m_rawBuffer unconditionally. This is not correct since it is possible
that this m_rawBuffer is realloced while we are calling MetadataTable::sizeInBytes in GC thread.

  1. The GC thread is calling MetadataTable::sizeInBytes for MetadataTable "A".
  2. The main thread is destroying MetadataTable "B".
  3. MetadataTable "B" is linked to UnlinkedMetadataTable "C".
  4. MetadataTable "A" is pointing to UnlinkedMetadataTable "C".
  5. "A" is touching UnlinkedMetadataTable::m_rawBuffer in "C", called from MetadataTable::sizeInBytes.
  6. (2) destroys MetadataTable "B", and realloc UnlinkedMetadataTable::m_rawBuffer in "C".
  7. (5) can touch already freed buffer.

This patch fixes UnlinkedMetadataTable::sizeInBytes: not touching m_rawBuffer unless it is owned by the caller's MetadataTable. We need to call
UnlinkedMetadataTable::sizeInBytes anyway since we need to adjust the result based on whether the caller MetadataTable is linked to this UnlinkedMetadataTable.

  • bytecode/UnlinkedMetadataTableInlines.h:

(JSC::UnlinkedMetadataTable::sizeInBytes):

6:13 PM Changeset in webkit [252673] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

IndexedDB: pass along error of IDBBackingStore operations
https://bugs.webkit.org/show_bug.cgi?id=204381

Reviewed by Brady Eidson.

Covered by existing tests.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::performCreateObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::performDeleteObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::performClearObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::performDeleteIndex):

6:08 PM Changeset in webkit [252672] by sihui_liu@apple.com
  • 6 edits in trunk

IndexedDB: overflow of KeyGenerator in MemoryIDBBackingStore
https://bugs.webkit.org/show_bug.cgi?id=204366

Reviewed by Brady Eidson.

Source/WebCore:

Do not set KeyGenerator if it is key is bigger than 253.

Test: storage/indexeddb/key-generator-private.html

  • Modules/indexeddb/server/MemoryIDBBackingStore.cpp:

(WebCore::IDBServer::MemoryIDBBackingStore::maybeUpdateKeyGeneratorNumber):

LayoutTests:

  • storage/indexeddb/key-generator-expected.txt:
  • storage/indexeddb/key-generator-private-expected.txt:
  • storage/indexeddb/resources/key-generator.js:

(request.onerror):

6:08 PM Changeset in webkit [252671] by Fujii Hironori
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] DisallowVMReentry and DeferGC should use WTF::ThreadSpecific instead of using WTF::threadSpecificKeyCreate directly
https://bugs.webkit.org/show_bug.cgi?id=204350

Reviewed by Yusuke Suzuki.

WTF provides two thread specific storages, ThreadSpecific and
threadSpecificKeyCreate. Only DisallowVMReentry and DeferGC were
using the latter. They should use WTF::ThreadSpecific because it
is a useful type-safe wrapper class.

  • heap/DeferGC.cpp:
  • heap/DeferGC.h:

(JSC::DisallowGC::initialize):
(JSC::DisallowGC::scopeReentryCount):
(JSC::DisallowGC::setScopeReentryCount):

  • runtime/DisallowVMReentry.cpp:
  • runtime/DisallowVMReentry.h:

(JSC::DisallowVMReentry::initialize):
(JSC::DisallowVMReentry::scopeReentryCount):
(JSC::DisallowVMReentry::setScopeReentryCount):

5:53 PM Changeset in webkit [252670] by sihui_liu@apple.com
  • 3 edits
    5 adds in trunk

IndexedDB: update m_objectStoresByName after renaming object store
https://bugs.webkit.org/show_bug.cgi?id=204373

Reviewed by Brady Eidson.

Source/WebCore:

Tests: storage/indexeddb/put-after-objectstore-rename-private.html

storage/indexeddb/put-after-objectstore-rename.html

  • Modules/indexeddb/server/MemoryIDBBackingStore.cpp:

(WebCore::IDBServer::MemoryIDBBackingStore::renameObjectStore):

LayoutTests:

  • storage/indexeddb/put-after-objectstore-rename-expected.txt: Added.
  • storage/indexeddb/put-after-objectstore-rename-private-expected.txt: Added.
  • storage/indexeddb/put-after-objectstore-rename-private.html: Added.
  • storage/indexeddb/put-after-objectstore-rename.html: Added.
  • storage/indexeddb/resources/put-after-objectstore-rename.js: Added.

(prepareDatabase):
(openSuccess):

5:37 PM Changeset in webkit [252669] by Alan Coon
  • 2 edits in branches/safari-608-branch/Tools

Cherry-pick r252031. rdar://problem/56889868

webkitpy: Build ImageDiff if it is missing
https://bugs.webkit.org/show_bug.cgi?id=183422

Reviewed by Alexey Proskuryakov.

ImageDiff is built with a different SDK than the rest of the WebKit
stack, and this frequently causes infrastructure failures where ImageDiff
is missing on testers. To address this, we should automatically build
ImageDiff if it is missing.

  • Scripts/webkitpy/port/base.py: (Port.check_build): Unconditionally build ImageDiff if it is missing. (Port.check_image_diff): Use _build_path since _path_to_image_diff will attempt to use a back-up location. (Port._path_to_image_diff): If the provided path to ImageDiff does not exist, use the path of the one we built.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252031 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:35 PM Changeset in webkit [252668] by jiewen_tan@apple.com
  • 5 edits in trunk/LayoutTests

Improve WebAuthn NFC tests after r252297
https://bugs.webkit.org/show_bug.cgi?id=204251

Reviewed by Alexey Proskuryakov.

This patch fixes a test failure after r252297 and adds new test contents for r252297.

  • http/wpt/webauthn/public-key-credential-create-failure-nfc.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-nfc.https.html:
  • http/wpt/webauthn/public-key-credential-create-success-nfc.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-success-nfc.https.html:
5:27 PM Changeset in webkit [252667] by commit-queue@webkit.org
  • 3 edits
    4 adds in trunk

Nullptr crash in Node::setTextContent via Document::setTitle if title element is removed before setTextContent call.
https://bugs.webkit.org/show_bug.cgi?id=204332

Patch by Sunny He <sunny_he@apple.com> on 2019-11-19
Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: fast/dom/Document/title-property-set-with-dom-event.html

  • dom/Document.cpp:

(WebCore::Document::setTitle):

LayoutTests:

  • fast/dom/Document/title-property-set-with-dom-event-expected.txt: Added.
  • fast/dom/Document/title-property-set-with-dom-event.html: Added.
  • fast/dom/Document/title-property-set-with-dom-event-svg-expected.html: Added.
  • fast/dom/Document/title-property-set-with-dom-event-svg.html: Added.
5:24 PM Changeset in webkit [252666] by Alan Coon
  • 3 edits in branches/safari-608-branch/Tools

Cherry-pick r250997. rdar://problem/56177210

results.webkit.org: Sort out certificates on Catalina
https://bugs.webkit.org/show_bug.cgi?id=202837

Unreviewed infrastructure repair.

This is a temporary strategy until we sort out our certificates on the newly
deployed Catalina bots.

  • Scripts/webkitpy/results/upload.py: (Upload.upload): (Upload.upload_archive):
  • Scripts/webkitpy/results/upload_unittest.py: (UploadTest.test_upload): (UploadTest.test_archive_upload):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250997 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:24 PM Changeset in webkit [252665] by Alan Coon
  • 6 edits in branches/safari-608-branch/Tools

Cherry-pick r250966. rdar://problem/56047710

results.webkit.org: Start reporting results
https://bugs.webkit.org/show_bug.cgi?id=202639

Reviewed by Dewei Zhu.

  • BuildSlaveSupport/build.webkit.org-config/loadConfig.py: (loadBuilderConfig): Load API key for results.webkit.org.
  • BuildSlaveSupport/build.webkit.org-config/make_passwords_json.py: (create_mock_slave_passwords_dict): Add mock for API key.
  • BuildSlaveSupport/build.webkit.org-config/steps.py: (RunWebKitTests): Start reporting to results.webkit.org. (RunWebKitTests.init): Do not print the environment to hide the API key. (RunWebKitTests.start): Add the API key to the environment. (RunAPITests): Start reporting to results.webkit.org. (RunAPITests.init): Do not print the environment to hide the API key. (RunAPITests.start): Add the API key to the environment. (RunPythonTests): Start reporting to results.webkit.org. (RunPythonTests.init): Do not print the environment to hide the API key. (RunPythonTests.start): Add the API key to the environment.
  • Scripts/webkitpy/results/upload.py: (Upload): (Upload.upload): Add API_KEY, if it exists, to the request. (Upload.upload_archive): Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250966 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:24 PM Changeset in webkit [252664] by Alan Coon
  • 2 edits in branches/safari-608-branch/Tools

Cherry-pick r252087. rdar://problem/56900657

REGRESSION(r252031): layout tests fail to run in non apple ports after r252031 (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=203844

Rubber-stamped by Aakash Jain.

Remove infinite loop for Windows.

  • Scripts/webkitpy/port/win.py: (WinPort._path_to_default_image_diff): (WinPort._path_to_image_diff): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252087 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:24 PM Changeset in webkit [252663] by Alan Coon
  • 4 edits in branches/safari-608-branch/Tools

Cherry-pick r252058. rdar://problem/56889868

webkitpy: Build ImageDiff if it is missing (Follow-fix)
https://bugs.webkit.org/show_bug.cgi?id=183422

Unreviewed infrastructure fix.

  • Scripts/webkitpy/port/base.py: (Port._path_to_image_diff): Use the host build directory.
  • Scripts/webkitpy/port/config.py: (Config.build_directory): Allow the caller to ignore the port argument, which will return the default build directory for the host running the script.
  • Scripts/webkitpy/port/port_testcase.py: (PortTestCase.make_port):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252058 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:24 PM Changeset in webkit [252662] by Alan Coon
  • 4 edits in branches/safari-608-branch/Tools

Cherry-pick r249652. rdar://problem/55190632

run-webkit-tests: Report results archive to results.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=201321

Reviewed by Aakash Jain.

  • Scripts/webkitpy/layout_tests/controllers/manager.py: (Manager.run): After all tests are finish, upload the results archive for each configuration.
  • Scripts/webkitpy/results/upload.py: (Upload): (Upload.init): Automatically define timestamp. (Upload.upload_archive): Upload an archive associated with the test run.
  • Scripts/webkitpy/results/upload_unittest.py: (UploadTest.test_buildbot): (UploadTest): (UploadTest.test_archive_upload):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249652 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:56 PM Changeset in webkit [252661] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Work-around Leaks' false-positive report about memory leaking
https://bugs.webkit.org/show_bug.cgi?id=204384
<rdar://problem/56950932>

Reviewed by Mark Lam.

According to the radar, Leaks start reporting false-positive memory leaks about ExecutableAllocator and FixedVMPoolExecutableAllocator,
while they are per-process singleton and reachable through g_jscConfig. I'm guessing this is because Leaks start skipping scan for
readonly memory region. (g_jscConfig is now mprotected to readonly).

To work-around this, we anchor these heap allocated things to global variables to help Leaks scan. Once it is fixed, we should remove it.

  • jit/ExecutableAllocator.cpp:

(JSC::ExecutableAllocator::initializeUnderlyingAllocator):
(JSC::ExecutableAllocator::initialize):

4:50 PM Changeset in webkit [252660] by youenn@apple.com
  • 5 edits
    1 move
    3 adds
    1 delete in trunk/Source/WebCore

Introduce a mock implementation of CoreAudioSharedUnit
https://bugs.webkit.org/show_bug.cgi?id=204290

Reviewed by Eric Carlson.

Introduce BaseAudioSharedUnit as a base class to CoreAudioSharedUnit.
Make CoreAudioCaptureSource use either CoreAudioSharedUnit singleton or an override.
Implement a MockAudioSharedUnit and use the override to implement mock audio capture sources.

Remove some code from CoreAudioCaptureSource related to reference data, which is not used currently.

Covered by existing tests.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/mac/BaseAudioSharedUnit.cpp: Added.

(WebCore::BaseAudioSharedUnit::addClient):
(WebCore::BaseAudioSharedUnit::removeClient):
(WebCore::BaseAudioSharedUnit::forEachClient const):
(WebCore::BaseAudioSharedUnit::clearClients):
(WebCore::BaseAudioSharedUnit::startProducingData):
(WebCore::BaseAudioSharedUnit::resume):
(WebCore::BaseAudioSharedUnit::prepareForNewCapture):
(WebCore::BaseAudioSharedUnit::captureFailed):
(WebCore::BaseAudioSharedUnit::stopProducingData):
(WebCore::BaseAudioSharedUnit::suspend):
(WebCore::BaseAudioSharedUnit::audioSamplesAvailable):

  • platform/mediastream/mac/BaseAudioSharedUnit.h: Added.

(WebCore::BaseAudioSharedUnit::delaySamples):
(WebCore::BaseAudioSharedUnit::isSuspended const):
(WebCore::BaseAudioSharedUnit::volume const):
(WebCore::BaseAudioSharedUnit::sampleRate const):
(WebCore::BaseAudioSharedUnit::enableEchoCancellation const):
(WebCore::BaseAudioSharedUnit::setVolume):
(WebCore::BaseAudioSharedUnit::setSampleRate):
(WebCore::BaseAudioSharedUnit::setEnableEchoCancellation):
(WebCore::BaseAudioSharedUnit::sampleRateCapacities const):
(WebCore::BaseAudioSharedUnit::hasClients const):
(WebCore::BaseAudioSharedUnit::setSuspended):

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioSharedUnit::unit):
(WebCore::CoreAudioSharedUnit::CoreAudioSharedUnit):
(WebCore::CoreAudioSharedUnit::setupAudioUnit):
(WebCore::CoreAudioSharedUnit::configureMicrophoneProc):
(WebCore::CoreAudioSharedUnit::configureSpeakerProc):
(WebCore::CoreAudioSharedUnit::provideSpeakerData):
(WebCore::CoreAudioSharedUnit::processMicrophoneSamples):
(WebCore::initializeCoreAudioCaptureSource):
(WebCore::CoreAudioCaptureSource::create):
(WebCore::CoreAudioCaptureSource::createForTesting):
(WebCore::CoreAudioCaptureSource::unit):
(WebCore::CoreAudioCaptureSourceFactory::devicesChanged):
(WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource):
(WebCore::CoreAudioCaptureSource::initializeToStartProducingData):
(WebCore::CoreAudioCaptureSource::~CoreAudioCaptureSource):
(WebCore::CoreAudioCaptureSource::startProducingData):
(WebCore::CoreAudioCaptureSource::stopProducingData):
(WebCore::CoreAudioCaptureSource::capabilities):
(WebCore::CoreAudioCaptureSource::settingsDidChange):
(WebCore::CoreAudioCaptureSource::scheduleReconfiguration):
(WebCore::CoreAudioCaptureSource::beginInterruption):
(WebCore::CoreAudioCaptureSource::endInterruption):
(WebCore::CoreAudioCaptureSource::interrupted const):
(WebCore::CoreAudioCaptureSource::delaySamples):

  • platform/mediastream/mac/CoreAudioCaptureSource.h:
  • platform/mediastream/mac/MockAudioSharedUnit.h: Added.
  • platform/mediastream/mac/MockAudioSharedUnit.mm: Added.

(WebCore::MockRealtimeAudioSource::create):
(WebCore::MockAudioSharedUnit::singleton):
(WebCore::MockAudioSharedUnit::MockAudioSharedUnit):
(WebCore::MockAudioSharedUnit::hasAudioUnit const):
(WebCore::MockAudioSharedUnit::setCaptureDevice):
(WebCore::MockAudioSharedUnit::reconfigureAudioUnit):
(WebCore::MockAudioSharedUnit::cleanupAudioUnit):
(WebCore::MockAudioSharedUnit::startInternal):
(WebCore::MockAudioSharedUnit::stopInternal):
(WebCore::MockAudioSharedUnit::isProducingData const):
(WebCore::MockAudioSharedUnit::tick):
(WebCore::MockAudioSharedUnit::delaySamples):
(WebCore::MockAudioSharedUnit::reconfigure):
(WebCore::MockAudioSharedUnit::emitSampleBuffers):
(WebCore::MockAudioSharedUnit::render):

  • platform/mediastream/mac/MockRealtimeAudioSourceMac.h: Removed.
4:50 PM Changeset in webkit [252659] by Simon Fraser
  • 3 edits in trunk/LayoutTests

REGRESSION (r252598): system-preview/badge.html and transforms/2d/zoom-menulist.html are failing
https://bugs.webkit.org/show_bug.cgi?id=204383

Unreviewed test gardening: adjust these tests for the different color component
rounding introduced in r252598.

  • platform/ios/transforms/2d/zoom-menulist-expected.txt:
  • system-preview/badge-expected.html:
4:48 PM Changeset in webkit [252658] by Ross Kirsling
  • 12 edits in trunk/Source

Unreviewed non-unified build fixes.

Source/WebCore:

  • Modules/async-clipboard/ClipboardItem.cpp:
  • Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp:
  • Modules/async-clipboard/ClipboardItemBindingsDataSource.h:
  • Modules/async-clipboard/ClipboardItemDataSource.h:
  • Modules/async-clipboard/ClipboardItemPasteboardDataSource.cpp:
  • animation/WebAnimation.cpp:
  • html/canvas/WebGLRenderingContextBase.cpp:
  • xml/parser/XMLDocumentParserLibxml2.cpp:

Source/WebKit:

  • WebProcess/WebPage/FindController.cpp:
  • WebProcess/WebPage/FindController.h:
4:33 PM Changeset in webkit [252657] by Alan Coon
  • 3 edits in branches/safari-608-branch/Source/WebKit

Cherry-pick r252619. rdar://problem/57330791

IPC::Decoder should use nullptr as invalid value
<https://webkit.org/b/203880>
<rdar://problem/53159906>

Reviewed by Brent Fulgham.

Covered by existing tests.

  • Platform/IPC/Decoder.cpp: (IPC::alignedBufferIsLargeEnoughToContain): Add bufferStart parameter to add beginning bounds check now that m_bufferPos uses nullptr for an invalid value. (IPC::Decoder::alignBufferPosition): Update to pass m_buffer to IPC::alignedBufferIsLargeEnoughToContain(). (IPC::Decoder::bufferIsLargeEnoughToContain const): Ditto.
  • Platform/IPC/Decoder.h: (IPC::Decoder::isInvalid const): Add beginning bounds check now that m_bufferPos uses nullptr for an invalid value. (IPC::Decoder::markInvalid): Make nullptr the invalid value for m_bufferPos.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252619 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:33 PM Changeset in webkit [252656] by Alan Coon
  • 3 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r251678. rdar://problem/57283567

Drop code for X-Temp-Tablet HTTP header experiment
https://bugs.webkit.org/show_bug.cgi?id=203524
<rdar://problem/55791195>

Reviewed by Ryosuke Niwa.

  • loader/cache/CachedResourceLoader.cpp: (WebCore::CachedResourceLoader::CachedResourceLoader): (WebCore::CachedResourceLoader::requestResource):
  • loader/cache/CachedResourceLoader.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251678 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:32 PM Changeset in webkit [252655] by Chris Dumez
  • 43 edits in trunk/Source/WebKit

Protect MessageReceivers when possible while they are processing incoming IPC messages
https://bugs.webkit.org/show_bug.cgi?id=204377

Reviewed by Brady Eidson.

Protect MessageReceiver while they are processing incoming IPC messages for
extra safety. It is a common mistake to call client delegates as a result of an IPC, and
failing to protect |this| while doing so. Client code can destroy |this| and we end up
crashing.

For MessageReceivers that are not RefCounted, they can use the "NotRefCounted" attribute
in their messages.in file to opt out.

  • NetworkProcess/Cookies/WebCookieManager.messages.in:
  • NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.messages.in:
  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.messages.in:
  • NetworkProcess/NetworkContentRuleListManager.messages.in:
  • NetworkProcess/NetworkSocketChannel.messages.in:
  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.messages.in:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:
  • NetworkProcess/webrtc/NetworkMDNSRegister.messages.in:
  • NetworkProcess/webrtc/NetworkRTCMonitor.messages.in:
  • NetworkProcess/webrtc/NetworkRTCSocket.messages.in:
  • PluginProcess/PluginControllerProxy.messages.in:
  • PluginProcess/PluginProcess.messages.in:
  • Scripts/webkit/messages.py:
  • Shared/API/Cocoa/RemoteObjectRegistry.messages.in:
  • Shared/ApplePay/WebPaymentCoordinatorProxy.messages.in:
  • Shared/Authentication/AuthenticationManager.messages.in:
  • Shared/AuxiliaryProcess.messages.in:
  • Shared/Plugins/NPObjectMessageReceiver.messages.in:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
  • UIProcess/DrawingAreaProxy.messages.in:
  • UIProcess/Network/CustomProtocols/LegacyCustomProtocolManagerProxy.messages.in:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.messages.in:
  • UIProcess/ViewGestureController.messages.in:
  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.messages.in:
  • UIProcess/WebFullScreenManagerProxy.messages.in:
  • UIProcess/WebPasteboardProxy.messages.in:
  • UIProcess/ios/SmartMagnificationController.messages.in:
  • WebProcess/ApplePay/WebPaymentCoordinator.messages.in:
  • WebProcess/Automation/WebAutomationSessionProxy.messages.in:
  • WebProcess/Geolocation/WebGeolocationManager.messages.in:
  • WebProcess/Network/webrtc/WebMDNSRegister.messages.in:
  • WebProcess/Network/webrtc/WebRTCMonitor.messages.in:
  • WebProcess/Network/webrtc/WebRTCResolver.messages.in:
  • WebProcess/Network/webrtc/WebRTCSocket.messages.in:
  • WebProcess/Notifications/WebNotificationManager.messages.in:
  • WebProcess/Storage/WebSWContextManagerConnection.messages.in:
  • WebProcess/WebPage/DrawingArea.messages.in:
  • WebProcess/WebPage/ViewGestureGeometryCollector.messages.in:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/UserMediaCaptureManager.messages.in:
4:16 PM Changeset in webkit [252654] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed, test gardening

  • platform/ios-wk2/TestExpectations:
4:12 PM Changeset in webkit [252653] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Fix null deref when a DocumentLoader's policy decision is delivered.
<rdar://problem/54847830> and https://bugs.webkit.org/show_bug.cgi?id=204378

Reviewed by Ryosuke Niwa.

Definitely a required null check, as all async entries into DocumentLoader should (and most do!)

No new tests, as no steps to reproduce are known.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::continueAfterContentPolicy): Null check m_frame.

2:55 PM Changeset in webkit [252652] by Devin Rousso
  • 14 edits in trunk/Source/WebInspectorUI

Web Inspector: Local Overrides: the placeholder for the MIME type, status code, and status text is the same as the placeholder URL
https://bugs.webkit.org/show_bug.cgi?id=204330

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/LocalResourceOverridePopover.js:

(WI.LocalResourceOverridePopover.prototype.get serializedData):
(WI.LocalResourceOverridePopover.prototype.show):
(WI.LocalResourceOverridePopover.prototype._createEditor):

  • UserInterface/Views/LocalResourceOverridePopover.css:

(.popover .local-resource-override-popover-content .data-grid tr.header-content-type > :matches(.name-column, .value-column)): Added.
Replace the hardcoded placeholder with an optional options object that can include a
placeholder value, allowing each caller to customize what is shown. Disallow selecting the
"Content-Type" header since it's automatically populated, even if there is no set value for
the MIME type or URL (e.g. inferred from placeholders).
Drive-by: if a CodeMirror has no value, attempt to use it's placeholder instead.
Drive-by: replace generic dataGrid with more specific this._headersDataGrid, which is

more clear given how many WI.DataGrid are created by this class.

  • UserInterface/Views/DataGridNode.js:

(WI.DataGridNode.prototype.get selectable):
(WI.PlaceholderDataGridNode):

  • UserInterface/Views/DataGrid.js:

(WI.DataGrid.createSortableDataGrid):

  • UserInterface/Views/DOMStorageContentView.js:

(WI.DOMStorageContentView.prototype.itemAdded):
(WI.DOMStorageContentView.prototype._populate):

  • UserInterface/Views/EditableDataGridNode.js:

(WI.EditableDataGridNode): Deleted.

  • UserInterface/Views/HeapSnapshotClassDataGridNode.js:

(WI.HeapSnapshotClassDataGridNode):

  • UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:

(WI.HeapSnapshotInstanceDataGridNode):

  • UserInterface/Views/HeapSnapshotInstanceFetchMoreDataGridNode.js:

(WI.HeapSnapshotInstanceFetchMoreDataGridNode):

  • UserInterface/Views/ProfileDataGridNode.js:

(WI.ProfileDataGridNode):

  • UserInterface/Views/RecordingStateDetailsSidebarPanel.js:

(WI.RecordingStateDetailsSidebarPanel.prototype._generateDetailsCanvas2D):
(WI.RecordingStateDetailsSidebarPanel):

  • UserInterface/Views/ResourceDetailsSidebarPanel.js:

(WI.ResourceDetailsSidebarPanel.prototype._createNameValueDataGrid.addDataGridNode):

  • UserInterface/Views/TimelineDataGridNode.js:

(WI.TimelineDataGridNode):
Rework constructor of WI.DataGridNode to accept an options-style object as its second
parameter, instead of separate parameters for each configurable property. Now that this is
able to be done via a single parameter, add support for marking a WI.DataGridNode as not
being selectable.

2:31 PM Changeset in webkit [252651] by ysuzuki@apple.com
  • 5 edits in trunk/Source/WebCore

Unreviewed, follow-up after r252642
https://bugs.webkit.org/show_bug.cgi?id=204346

  • Modules/indexeddb/IDBActiveDOMObject.h:
  • Modules/indexeddb/client/TransactionOperation.h:

(WebCore::IDBClient::TransactionOperation::~TransactionOperation):
(WebCore::IDBClient::TransactionOperation::perform):
(WebCore::IDBClient::TransactionOperation::transitionToCompleteOnThisThread):
(WebCore::IDBClient::TransactionOperation::transitionToComplete):
(WebCore::IDBClient::TransactionOperation::doComplete):

  • platform/Supplementable.h:

(WebCore::Supplementable::provideSupplement):
(WebCore::Supplementable::removeSupplement):
(WebCore::Supplementable::requireSupplement):

  • platform/Timer.cpp:

(WebCore::TimerBase::~TimerBase):
(WebCore::TimerBase::start):
(WebCore::TimerBase::stop):
(WebCore::TimerBase::setNextFireTime):

2:17 PM Changeset in webkit [252650] by Alan Coon
  • 7 edits in tags/Safari-609.1.9.7/Source

Versioning.

2:15 PM Changeset in webkit [252649] by Alan Coon
  • 1 copy in tags/Safari-609.1.9.7

New tag.

2:06 PM Changeset in webkit [252648] by Jonathan Bedard
  • 2 edits in trunk/Tools

results.webkit.org: Have build.webkit.org report JSC tests
https://bugs.webkit.org/show_bug.cgi?id=204364

Reviewed by Aakash Jain.

  • BuildSlaveSupport/build.webkit.org-config/steps.py:

(RunJavaScriptCoreTests):
(RunWebKitTests):
(RunAPITests):
(RunPythonTests):
(RunLLINTCLoopTests):
(Run32bitJSCTests):

2:05 PM Changeset in webkit [252647] by dbates@webkit.org
  • 6 edits in trunk/Source/WebCore

ASSERTION FAILURE: useDownstream ? (result > vp) : (result < vp) in WebCore::nextSentenceBoundaryInDirection()
https://bugs.webkit.org/show_bug.cgi?id=204370
<rdar://problem/57332559>

Reviewed by Wenson Hsieh.

Only positions whose anchor nodes are in a document and in the same tree scope can be
compared using the operator< overload. Otherwise, the result is non-deterministic by
spec. <https://dom.spec.whatwg.org/#dom-node-comparedocumentposition> (13 November 2019):

  1. If node1 or node2 is null, or node1's root is not node2's root, then return the result of adding DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, and either DOCUMENT_POSITION_PRECEDING or DOCUMENT_POSITION_FOLLOWING, with the constraint that this is to be consistent, together.

NOTE: Whether to return DOCUMENT_POSITION_PRECEDING or DOCUMENT_POSITION_FOLLOWING is typically
implemented via pointer comparison. In JavaScript implementations a cached Math.random()
value can be used.

  • dom/Node.cpp:

(WebCore::areNodesConnectedInSameTreeScope): Added; extracted from compareDocumentPosition().
(WebCore::Node::compareDocumentPosition): Write in terms of areNodesConnectedInSameTreeScope().

  • dom/Node.h:
  • editing/VisiblePosition.cpp:

(WebCore::areVisiblePositionsInSameTreeScope): Added. Write in terms of areNodesConnectedInSameTreeScope().

  • editing/VisiblePosition.h:
  • editing/VisibleUnits.cpp:

(WebCore::nextSentenceBoundaryInDirection): Update assert. We can only compare positions
if areVisiblePositionsInSameTreeScope() returns true.

1:57 PM Changeset in webkit [252646] by rniwa@webkit.org
  • 20 edits
    1 move
    1 add in trunk/Source/WebCore

Rename AbstractEventLoop to EventLoop and move to its own cpp file
https://bugs.webkit.org/show_bug.cgi?id=204335

Reviewed by Antti Koivisto.

This patch renames AbstractEventLoop to EventLoop and move to its own cpp file since
r252607 consolidated the event loop implementations in WindowEventLoop and WorkerEventLoop.

  • Modules/cache/DOMCache.cpp:
  • Modules/cache/DOMCacheStorage.cpp:
  • Modules/encryptedmedia/MediaKeySession.cpp:
  • Modules/encryptedmedia/MediaKeys.cpp:
  • Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/WebAnimation.cpp:
  • bindings/js/JSDOMPromiseDeferred.h:
  • css/FontFaceSet.cpp:
  • dom/ActiveDOMObject.cpp:
  • dom/Document.h:
  • dom/ScriptExecutionContext.h:
  • dom/WindowEventLoop.cpp:

(WebCore::AbstractEventLoop::queueTask): Deleted.
(WebCore::AbstractEventLoop::resumeGroup): Deleted.
(WebCore::AbstractEventLoop::stopGroup): Deleted.
(WebCore::AbstractEventLoop::scheduleToRunIfNeeded): Deleted.
(WebCore::AbstractEventLoop::run): Deleted.
(WebCore::AbstractEventLoop::clearAllTasks): Deleted.
(WebCore::EventLoopFunctionDispatchTask::EventLoopFunctionDispatchTask): Deleted.
(WebCore::EventLoopTaskGroup::queueTask): Deleted.

  • dom/WindowEventLoop.h:
  • fileapi/FileReader.cpp:
  • testing/Internals.cpp:
  • workers/WorkerEventLoop.h:
  • workers/service/ServiceWorkerContainer.cpp:
1:36 PM Changeset in webkit [252645] by Wenson Hsieh
  • 3 edits in trunk/LayoutTests

fast/events/touch/ios/long-press-on-link.html times out after r251693
https://bugs.webkit.org/show_bug.cgi?id=204365
<rdar://problem/57324773>

Reviewed by Megan Gardner.

The change in trac.webkit.org/r251693 inadvertently fixed a failing layout test, fast/events/touch/ios/
long-press-on-image.html. In doing so, it caused the subsequent layout test, long-press-on-link.html, to begin
failing, since both tests depend on the previous test not presenting a context menu when long pressing; if the
previous test presents a context menu, the next test will proceed while the context menu is still dismissing,
which prevents the touches from making it to the web view.

To fix this, simply mark both tests as runSingly in test options; this forces context menu UI to be torn down
after running these two tests, so that these tests won't have side effects when they successfully show a context
menu.

  • fast/events/touch/ios/long-press-on-image.html:
  • fast/events/touch/ios/long-press-on-link.html:
1:21 PM Changeset in webkit [252644] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

Disable reporting EWS test failures from clean-tree to results.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=204369

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(RunWebKitTestsWithoutPatch):
(RunAPITestsWithoutPatch.evaluateCommand):
(RunWebKitTestsWithoutPatch.start): Deleted.
(RunAPITestsWithoutPatch.start): Deleted.

  • BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests.
  • BuildSlaveSupport/ews-build/loadConfig.py:
1:00 PM Changeset in webkit [252643] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Fix sysctl-read sandbox violation
https://bugs.webkit.org/show_bug.cgi?id=204358
<rdar://problem/57298313>

Reviewed by Brent Fulgham.

The WebContent sandbox should allow sysctl-read of "kern.hostname", "kern.osrelease", and "kern.version".

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
12:53 PM Changeset in webkit [252642] by ysuzuki@apple.com
  • 18 edits in trunk/Source

[IndexedDB] IndexedDB's threading assertion should respect Web thread
https://bugs.webkit.org/show_bug.cgi?id=204346

Reviewed by Daniel Bates.

Source/WebCore:

Previously we are doing pointer-comparison between Thread::current() and origin-thread to
assert the thread affinity. But this does not respect Web thread: we can create an object
in Web Thread, and touch it in the main thread if web thread lock is correctly held.

This patch replaces pointer-comparison with WTF::canAccessThreadLocalDataForThread helper
function which appropriately respects Web thread status.

No behavior change.

  • Modules/indexeddb/IDBActiveDOMObject.h:

(WebCore::IDBActiveDOMObject::performCallbackOnOriginThread):
(WebCore::IDBActiveDOMObject::callFunctionOnOriginThread):

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::IDBCursor):
(WebCore::IDBCursor::~IDBCursor):
(WebCore::IDBCursor::sourcesDeleted const):
(WebCore::IDBCursor::transaction const):
(WebCore::IDBCursor::update):
(WebCore::IDBCursor::advance):
(WebCore::IDBCursor::continueFunction):
(WebCore::IDBCursor::uncheckedIterateCursor):
(WebCore::IDBCursor::deleteFunction):
(WebCore::IDBCursor::setGetResult):

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::~IDBDatabase):
(WebCore::IDBDatabase::hasPendingActivity const):
(WebCore::IDBDatabase::name const):
(WebCore::IDBDatabase::version const):
(WebCore::IDBDatabase::objectStoreNames const):
(WebCore::IDBDatabase::renameObjectStore):
(WebCore::IDBDatabase::renameIndex):
(WebCore::IDBDatabase::createObjectStore):
(WebCore::IDBDatabase::transaction):
(WebCore::IDBDatabase::deleteObjectStore):
(WebCore::IDBDatabase::close):
(WebCore::IDBDatabase::connectionToServerLost):
(WebCore::IDBDatabase::maybeCloseInServer):
(WebCore::IDBDatabase::activeDOMObjectName const):
(WebCore::IDBDatabase::stop):
(WebCore::IDBDatabase::startVersionChangeTransaction):
(WebCore::IDBDatabase::didStartTransaction):
(WebCore::IDBDatabase::willCommitTransaction):
(WebCore::IDBDatabase::didCommitTransaction):
(WebCore::IDBDatabase::willAbortTransaction):
(WebCore::IDBDatabase::didAbortTransaction):
(WebCore::IDBDatabase::didCommitOrAbortTransaction):
(WebCore::IDBDatabase::fireVersionChangeEvent):
(WebCore::IDBDatabase::dispatchEvent):
(WebCore::IDBDatabase::didCreateIndexInfo):
(WebCore::IDBDatabase::didDeleteIndexInfo):

  • Modules/indexeddb/IDBIndex.cpp:

(WebCore::IDBIndex::IDBIndex):
(WebCore::IDBIndex::~IDBIndex):
(WebCore::IDBIndex::name const):
(WebCore::IDBIndex::setName):
(WebCore::IDBIndex::objectStore):
(WebCore::IDBIndex::keyPath const):
(WebCore::IDBIndex::unique const):
(WebCore::IDBIndex::multiEntry const):
(WebCore::IDBIndex::rollbackInfoForVersionChangeAbort):
(WebCore::IDBIndex::doOpenCursor):
(WebCore::IDBIndex::doOpenKeyCursor):
(WebCore::IDBIndex::doCount):
(WebCore::IDBIndex::doGet):
(WebCore::IDBIndex::doGetKey):
(WebCore::IDBIndex::doGetAll):
(WebCore::IDBIndex::doGetAllKeys):
(WebCore::IDBIndex::markAsDeleted):

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::IDBObjectStore):
(WebCore::IDBObjectStore::~IDBObjectStore):
(WebCore::IDBObjectStore::name const):
(WebCore::IDBObjectStore::setName):
(WebCore::IDBObjectStore::keyPath const):
(WebCore::IDBObjectStore::indexNames const):
(WebCore::IDBObjectStore::transaction):
(WebCore::IDBObjectStore::autoIncrement const):
(WebCore::IDBObjectStore::doOpenCursor):
(WebCore::IDBObjectStore::doOpenKeyCursor):
(WebCore::IDBObjectStore::get):
(WebCore::IDBObjectStore::getKey):
(WebCore::IDBObjectStore::putOrAdd):
(WebCore::IDBObjectStore::doDelete):
(WebCore::IDBObjectStore::clear):
(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::index):
(WebCore::IDBObjectStore::deleteIndex):
(WebCore::IDBObjectStore::doCount):
(WebCore::IDBObjectStore::doGetAll):
(WebCore::IDBObjectStore::doGetAllKeys):
(WebCore::IDBObjectStore::markAsDeleted):
(WebCore::IDBObjectStore::rollbackForVersionChangeAbort):

  • Modules/indexeddb/IDBOpenDBRequest.cpp:

(WebCore::IDBOpenDBRequest::~IDBOpenDBRequest):
(WebCore::IDBOpenDBRequest::onError):
(WebCore::IDBOpenDBRequest::versionChangeTransactionDidFinish):
(WebCore::IDBOpenDBRequest::fireSuccessAfterVersionChangeCommit):
(WebCore::IDBOpenDBRequest::fireErrorAfterVersionChangeCompletion):
(WebCore::IDBOpenDBRequest::dispatchEvent):
(WebCore::IDBOpenDBRequest::onSuccess):
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):
(WebCore::IDBOpenDBRequest::onDeleteDatabaseSuccess):
(WebCore::IDBOpenDBRequest::requestCompleted):
(WebCore::IDBOpenDBRequest::requestBlocked):

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::~IDBRequest):
(WebCore:: const):
(WebCore::IDBRequest::setSource):
(WebCore::IDBRequest::setVersionChangeTransaction):
(WebCore::IDBRequest::transaction const):
(WebCore::IDBRequest::sourceObjectStoreIdentifier const):
(WebCore::IDBRequest::sourceIndexIdentifier const):
(WebCore::IDBRequest::requestedObjectStoreRecordType const):
(WebCore::IDBRequest::requestedIndexRecordType const):
(WebCore::IDBRequest::eventTargetInterface const):
(WebCore::IDBRequest::activeDOMObjectName const):
(WebCore::IDBRequest::hasPendingActivity const):
(WebCore::IDBRequest::stop):
(WebCore::IDBRequest::enqueueEvent):
(WebCore::IDBRequest::dispatchEvent):
(WebCore::IDBRequest::uncaughtExceptionInEventHandler):
(WebCore::IDBRequest::setResult):
(WebCore::IDBRequest::setResultToStructuredClone):
(WebCore::IDBRequest::setResultToUndefined):
(WebCore::IDBRequest::resultCursor):
(WebCore::IDBRequest::willIterateCursor):
(WebCore::IDBRequest::didOpenOrIterateCursor):
(WebCore::IDBRequest::completeRequestAndDispatchEvent):
(WebCore::IDBRequest::onError):
(WebCore::IDBRequest::onSuccess):

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::IDBTransaction):
(WebCore::IDBTransaction::~IDBTransaction):
(WebCore::IDBTransaction::objectStoreNames const):
(WebCore::IDBTransaction::db):
(WebCore::IDBTransaction::error const):
(WebCore::IDBTransaction::objectStore):
(WebCore::IDBTransaction::abortDueToFailedRequest):
(WebCore::IDBTransaction::transitionedToFinishing):
(WebCore::IDBTransaction::abort):
(WebCore::IDBTransaction::internalAbort):
(WebCore::IDBTransaction::abortOnServerAndCancelRequests):
(WebCore::IDBTransaction::activeDOMObjectName const):
(WebCore::IDBTransaction::hasPendingActivity const):
(WebCore::IDBTransaction::stop):
(WebCore::IDBTransaction::isActive const):
(WebCore::IDBTransaction::isFinishedOrFinishing const):
(WebCore::IDBTransaction::addRequest):
(WebCore::IDBTransaction::removeRequest):
(WebCore::IDBTransaction::scheduleOperation):
(WebCore::IDBTransaction::trySchedulePendingOperationTimer):
(WebCore::IDBTransaction::pendingOperationTimerFired):
(WebCore::IDBTransaction::operationCompletedOnServer):
(WebCore::IDBTransaction::scheduleCompletedOperationTimer):
(WebCore::IDBTransaction::completedOperationTimerFired):
(WebCore::IDBTransaction::commit):
(WebCore::IDBTransaction::commitOnServer):
(WebCore::IDBTransaction::finishAbortOrCommit):
(WebCore::IDBTransaction::didStart):
(WebCore::IDBTransaction::notifyDidAbort):
(WebCore::IDBTransaction::didAbort):
(WebCore::IDBTransaction::didCommit):
(WebCore::IDBTransaction::fireOnComplete):
(WebCore::IDBTransaction::fireOnAbort):
(WebCore::IDBTransaction::enqueueEvent):
(WebCore::IDBTransaction::dispatchEvent):
(WebCore::IDBTransaction::createObjectStore):
(WebCore::IDBTransaction::createObjectStoreOnServer):
(WebCore::IDBTransaction::didCreateObjectStoreOnServer):
(WebCore::IDBTransaction::renameObjectStore):
(WebCore::IDBTransaction::renameObjectStoreOnServer):
(WebCore::IDBTransaction::didRenameObjectStoreOnServer):
(WebCore::IDBTransaction::createIndex):
(WebCore::IDBTransaction::createIndexOnServer):
(WebCore::IDBTransaction::didCreateIndexOnServer):
(WebCore::IDBTransaction::renameIndex):
(WebCore::IDBTransaction::renameIndexOnServer):
(WebCore::IDBTransaction::didRenameIndexOnServer):
(WebCore::IDBTransaction::requestOpenCursor):
(WebCore::IDBTransaction::doRequestOpenCursor):
(WebCore::IDBTransaction::openCursorOnServer):
(WebCore::IDBTransaction::didOpenCursorOnServer):
(WebCore::IDBTransaction::iterateCursor):
(WebCore::IDBTransaction::iterateCursorOnServer):
(WebCore::IDBTransaction::didIterateCursorOnServer):
(WebCore::IDBTransaction::requestGetAllObjectStoreRecords):
(WebCore::IDBTransaction::requestGetAllIndexRecords):
(WebCore::IDBTransaction::getAllRecordsOnServer):
(WebCore::IDBTransaction::didGetAllRecordsOnServer):
(WebCore::IDBTransaction::requestGetRecord):
(WebCore::IDBTransaction::requestGetValue):
(WebCore::IDBTransaction::requestGetKey):
(WebCore::IDBTransaction::requestIndexRecord):
(WebCore::IDBTransaction::getRecordOnServer):
(WebCore::IDBTransaction::didGetRecordOnServer):
(WebCore::IDBTransaction::requestCount):
(WebCore::IDBTransaction::getCountOnServer):
(WebCore::IDBTransaction::didGetCountOnServer):
(WebCore::IDBTransaction::requestDeleteRecord):
(WebCore::IDBTransaction::deleteRecordOnServer):
(WebCore::IDBTransaction::didDeleteRecordOnServer):
(WebCore::IDBTransaction::requestClearObjectStore):
(WebCore::IDBTransaction::clearObjectStoreOnServer):
(WebCore::IDBTransaction::didClearObjectStoreOnServer):
(WebCore::IDBTransaction::requestPutOrAdd):
(WebCore::IDBTransaction::putOrAddOnServer):
(WebCore::IDBTransaction::didPutOrAddOnServer):
(WebCore::IDBTransaction::deleteObjectStore):
(WebCore::IDBTransaction::deleteObjectStoreOnServer):
(WebCore::IDBTransaction::didDeleteObjectStoreOnServer):
(WebCore::IDBTransaction::deleteIndex):
(WebCore::IDBTransaction::deleteIndexOnServer):
(WebCore::IDBTransaction::didDeleteIndexOnServer):
(WebCore::IDBTransaction::operationCompletedOnClient):
(WebCore::IDBTransaction::establishOnServer):
(WebCore::IDBTransaction::activate):
(WebCore::IDBTransaction::deactivate):

  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::removeItemsMatchingCurrentThread):
(WebCore::IDBClient::setMatchingItemsContextSuspended):

  • Modules/indexeddb/client/TransactionOperation.h:

(WebCore::IDBClient::TransactionOperation::~TransactionOperation):
(WebCore::IDBClient::TransactionOperation::perform):
(WebCore::IDBClient::TransactionOperation::transitionToCompleteOnThisThread):
(WebCore::IDBClient::TransactionOperation::transitionToComplete):
(WebCore::IDBClient::TransactionOperation::doComplete):

  • dom/ActiveDOMObject.cpp:

(WebCore::ActiveDOMObject::~ActiveDOMObject):

  • platform/Supplementable.h:

(WebCore::Supplementable::provideSupplement):
(WebCore::Supplementable::removeSupplement):
(WebCore::Supplementable::requireSupplement):

  • platform/Timer.cpp:

(WebCore::TimerBase::~TimerBase):
(WebCore::TimerBase::start):
(WebCore::TimerBase::stop):
(WebCore::TimerBase::setNextFireTime):

Source/WTF:

  • wtf/MainThread.cpp:

(WTF::canCurrentThreadAccessThreadLocalData):
(WTF::canAccessThreadLocalDataForThread): Deleted.

  • wtf/MainThread.h:
  • wtf/cocoa/MainThreadCocoa.mm:

(WTF::canCurrentThreadAccessThreadLocalData):
(WTF::canAccessThreadLocalDataForThread): Deleted.

12:35 PM Changeset in webkit [252641] by wilander@apple.com
  • 18 edits
    5 copies
    8 adds in trunk

Resource Load Statistics: Count third-party script loads under top frame
https://bugs.webkit.org/show_bug.cgi?id=204262
<rdar://problem/57244945>

Reviewed by Alex Christensen.

Source/WebCore:

Third-party scripts running in the first-party context are a significant privacy
and security risk. This change captures the number of such script loads which will
allow ITP to take action.

Tests: http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-database.html

http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker.html
http/tests/resourceLoadStatistics/count-third-party-script-loads-database.html
http/tests/resourceLoadStatistics/count-third-party-script-loads.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadResourceSynchronously):

Now sends the ResourceLoadObserver::FetchDestinationIsScriptLike parameter to
ResourceLoadObserver::logSubresourceLoading().

  • loader/ResourceLoadObserver.h:

(WebCore::ResourceLoadObserver::logSubresourceLoading):

Now takes a FetchDestinationIsScriptLike parameter.

  • loader/ResourceLoadStatistics.cpp:

(WebCore::ResourceLoadStatistics::encode const):
(WebCore::ResourceLoadStatistics::decode):
(WebCore::ResourceLoadStatistics::toString const):

Output of the new topFrameLoadedThirdPartyScripts category.
Removed the lastSeen output since it may differ between test runs.

(WebCore::ResourceLoadStatistics::merge):

Handling of the new topFrameLoadedThirdPartyScripts category.

  • loader/ResourceLoadStatistics.h:

Added the new topFrameLoadedThirdPartyScripts category.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequestInternal):

Now sends the ResourceLoadObserver::FetchDestinationIsScriptLike parameter to
ResourceLoadObserver::logSubresourceLoading().

Source/WebKit:

Third-party scripts running in the first-party context are a significant privacy
and security risk. This change captures the number of such script loads which will
allow ITP to take action.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore):
(WebKit::ResourceLoadStatisticsDatabaseStore::createUniqueIndices):
(WebKit::ResourceLoadStatisticsDatabaseStore::createSchema):
(WebKit::ResourceLoadStatisticsDatabaseStore::prepareStatements):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertDomainRelationships):
(WebKit::ResourceLoadStatisticsDatabaseStore::getSubStatisticStatement):

Addition of the new category TopFrameLoadedThirdPartyScripts.

(WebKit::ResourceLoadStatisticsDatabaseStore::resourceToString):

Removed the lastSeen output since it may differ between test runs.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

Bumped statisticsModelVersion to 17.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<ResourceLoadStatistics>::encode):
(IPC::ArgumentCoder<ResourceLoadStatistics>::decode):

Encoding and decoding of the new category topFrameLoadedThirdPartyScripts.

  • WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:

(WebKit::WebResourceLoadObserver::logSubresourceLoading):

Now takes an additional enum parameter FetchDestinationIsScriptLike which
is used to detect third-party script-like loads (script, worker, or
service worker) from third-parties. If one is detected, it is stored
in the new topFrameLoadedThirdPartyScripts category.

  • WebProcess/WebCoreSupport/WebResourceLoadObserver.h:

LayoutTests:

  • http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-database-expected.txt: Added.
  • http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-database.html: Added.
  • http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-expected.txt: Added.
  • http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker.html: Added.
  • http/tests/resourceLoadStatistics/count-third-party-script-loads-database-expected.txt: Added.
  • http/tests/resourceLoadStatistics/count-third-party-script-loads-database.html: Added.
  • http/tests/resourceLoadStatistics/count-third-party-script-loads-expected.txt: Added.
  • http/tests/resourceLoadStatistics/count-third-party-script-loads.html: Added.
  • http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script-database-expected.txt: Added.
  • http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script-database.html: Added.
  • http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script-expected.txt: Added.
  • http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script.html: Added.
  • http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-database-expected.txt:

Removed the lastSeen output since it may differ between test runs.

  • http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-expected.txt:

Removed the lastSeen output since it may differ between test runs.

  • http/tests/resourceLoadStatistics/resources/dummy.js: Added.
  • http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-database-expected.txt:

Removed the lastSeen output since it may differ between test runs.

  • http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-expected.txt:

Removed the lastSeen output since it may differ between test runs.

12:00 PM Changeset in webkit [252640] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Display::Run:TextContext should use StringView
https://bugs.webkit.org/show_bug.cgi?id=204356
<rdar://problem/57323695>

Reviewed by Antti Koivisto.

We could just use StringView instead of String here (though this is all temporary until We figure out the relationship
between the layout and the display trees e.g. how to reference content from the display tree).

  • layout/displaytree/DisplayRun.h:

(WebCore::Display::Run::TextContext::TextContext):
(WebCore::Display::Run::TextContext::content const):
(WebCore::Display::Run::TextContext::expand):

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::Run::expand):
(WebCore::Layout::Line::appendTextContent):

11:04 AM Changeset in webkit [252639] by Antti Koivisto
  • 12 edits
    4 moves in trunk/Source/WebCore

Rename CSSDefaultStyleSheets to UserAgentStyle
https://bugs.webkit.org/show_bug.cgi?id=204357

Reviewed by Zalan Bujtas.

Also move it to Style namespace and directory, along with InspectorCSSOMWrappers.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • page/ProcessWarming.cpp:

(WebCore::ProcessWarming::prewarmGlobally):

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::matchUARules):

  • style/InspectorCSSOMWrappers.cpp: Renamed from Source/WebCore/css/InspectorCSSOMWrappers.cpp.

(WebCore::Style::InspectorCSSOMWrappers::collectDocumentWrappers):
(WebCore::Style::InspectorCSSOMWrappers::collectScopeWrappers):

  • style/InspectorCSSOMWrappers.h: Renamed from Source/WebCore/css/InspectorCSSOMWrappers.h.
  • style/PageRuleCollector.cpp:

(WebCore::Style::PageRuleCollector::matchAllPageRules):

  • style/RuleData.h:
  • style/RuleSet.h:
  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::Resolver):
(WebCore::Style::Resolver::styleForElement):

  • style/StyleScopeRuleSets.cpp:

(WebCore::Style::ScopeRuleSets::updateUserAgentMediaQueryStyleIfNeeded const):
(WebCore::Style::ScopeRuleSets::collectFeatures const):

  • style/StyleScopeRuleSets.h:

(WebCore::Style::ScopeRuleSets::features const):
(WebCore::Style::ScopeRuleSets::mutableFeatures):

  • style/StyleSharingResolver.h:
  • style/UserAgentStyle.cpp: Renamed from Source/WebCore/css/CSSDefaultStyleSheets.cpp.

(WebCore::Style::UserAgentStyle::initDefaultStyle):
(WebCore::Style::UserAgentStyle::addToDefaultStyle):
(WebCore::Style::UserAgentStyle::loadFullDefaultStyle):
(WebCore::Style::UserAgentStyle::loadSimpleDefaultStyle):
(WebCore::Style::UserAgentStyle::ensureDefaultStyleSheetsForElement):

  • style/UserAgentStyle.h: Renamed from Source/WebCore/css/CSSDefaultStyleSheets.h.
10:58 AM Changeset in webkit [252638] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[LFC][IFC] Assign inlineCapacity to various inline run vectors.
https://bugs.webkit.org/show_bug.cgi?id=204354
<rdar://problem/57322347>

Reviewed by Antti Koivisto.

Inline capacity values are mainly based off of the equivalent simple line layout vectors.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/inlineformatting/InlineFormattingState.h:
  • layout/inlineformatting/InlineLine.h:
  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateRendererStyle): Apparently 'newStyle' is moved out at this point.

10:41 AM Changeset in webkit [252637] by BJ Burg
  • 11 edits
    1 copy in trunk/Source

[Cocoa] Add _WKInspector SPI to set diagnostic logging delegate for a local Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=204323

Reviewed by Devin Rousso.

Source/WebInspectorUI:

  • UserInterface/Protocol/InspectorFrontendAPI.js:

(InspectorFrontendAPI.setDiagnosticLoggingAvailable):
Add a stub FrontendAPI method to be filled in later.

Source/WebKit:

Testing this end-to-end isn't quite possible yet because WebInspectorUI does not
yet send any dummy diagnostic events that we can use for testing purposes.

  • WebKit.xcodeproj/project.pbxproj:
  • UIProcess/API/Cocoa/_WKInspectorInternal.h: Fix include.
  • UIProcess/API/Cocoa/_WKInspectorPrivate.h: Added.
  • UIProcess/API/Cocoa/_WKInspector.mm: Fix include.

(-[_WKInspector _setDiagnosticLoggingDelegate:]):
Allow clients to set the diagnosticLoggingDelegate directly on _WKInspector.
The implementation forwards this setter to the Inspector's WKWebView and notifies
the frontend that diagnostic logging availability did change.

  • UIProcess/WebInspectorProxy.h:
  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::setDiagnosticLoggingAvailable):
Plumbing.

  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::setDiagnosticLoggingAvailable):

  • WebProcess/WebPage/WebInspectorUI.h:
  • WebProcess/WebPage/WebInspectorUI.messages.in:

More plumbing.

10:23 AM Changeset in webkit [252636] by Chris Dumez
  • 9 edits in trunk/Source/WebKit

Make sendWithAsyncReply() safe to call from any thread
https://bugs.webkit.org/show_bug.cgi?id=204355

Reviewed by Alex Christensen.

Make sendWithAsyncReply() safe to call from any thread, similarly to the regular send().
Also start using it in WebProcess::processTaskStateDidChange() now that it is safe.

  • Platform/IPC/Connection.cpp:

(IPC::asyncReplyHandlerMapLock):
(IPC::asyncReplyHandlerMap):
(IPC::nextAsyncReplyHandlerID):
(IPC::addAsyncReplyHandler):
(IPC::clearAsyncReplyHandlers):
(IPC::CompletionHandler<void):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::processWasResumed):

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::hasServiceWorkerPageProxy): Deleted.
(WebKit::WebProcessProxy::setAssertionStateForTesting): Deleted.
(WebKit::WebProcessProxy::WeakOrStrongPtr::WeakOrStrongPtr): Deleted.
(WebKit::WebProcessProxy::WeakOrStrongPtr::setIsWeak): Deleted.
(WebKit::WebProcessProxy::WeakOrStrongPtr::get const): Deleted.
(WebKit::WebProcessProxy::WeakOrStrongPtr::operator-> const): Deleted.
(WebKit::WebProcessProxy::WeakOrStrongPtr::operator* const): Deleted.
(WebKit::WebProcessProxy::WeakOrStrongPtr::operator bool const): Deleted.
(WebKit::WebProcessProxy::WeakOrStrongPtr::updateStrongReference): Deleted.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::processTaskStateDidChange):
(WebKit::WebProcess::parentProcessDidHandleProcessWasResumed): Deleted.

10:10 AM Changeset in webkit [252635] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

<rdar://problem/57323799>

Unreviwed build fix for older bots.

  • Platform/spi/ios/UIKitSPI.h:
9:11 AM Changeset in webkit [252634] by BJ Burg
  • 8 edits in trunk

[Cocoa] Add WKUIDelegate SPI to inform clients when a _WKInspector attaches to a WKWebView
https://bugs.webkit.org/show_bug.cgi?id=204300
<rdar://problem/57136993>

Reviewed by Devin Rousso.

Source/WebKit:

Add a new UI delegate method to notify clients when local Web Inspector is about to be loaded.
This can be triggered by -[_WKInspector show] in the Cocoa API, or via the WebCore-controlled
Inspect context menu item.

The client can then configure Web Inspector using delegates or by setting _WKInspector properties.

Covered by new API test WebKit.DidNotifyWhenInspectorAttached.

  • UIProcess/API/APIUIClient.h:

(API::UIClient::didAttachInspector):

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::didAttachInspector):

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::openLocalInspectorFrontend):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:

(-[InspectorDelegate _webView:didAttachInspector:]):
(TEST): Add new test to ensure the delegate is called as expected.

8:51 AM Changeset in webkit [252633] by sihui_liu@apple.com
  • 11 edits in trunk

Update expectations for bufferedAmount-unchanged-by-sync-xhr.any.worker.html
https://bugs.webkit.org/show_bug.cgi?id=204313

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.worker-expected.txt:

Source/WebCore:

Add some logging to help debug the flaky timeout of bufferedAmount-unchanged-by-sync-xhr.any.worker.html on
commit-queue bot.

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::fail):
(WebCore::WebSocketChannel::didFailSocketStream):

  • platform/network/cf/SocketStreamHandleImplCFNet.cpp:

(WebCore::SocketStreamHandleImpl::scheduleStreams):
(WebCore::SocketStreamHandleImpl::readStreamCallback):

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::restoreTo):Remove a duplicate setting.

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebViewToConsistentStateBeforeTesting):

LayoutTests:

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
8:50 AM Changeset in webkit [252632] by eric.carlson@apple.com
  • 11 edits in trunk

OverConstrainedError is missing 'name' property
https://bugs.webkit.org/show_bug.cgi?id=204069

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/mediacapture-streams/GUM-impossible-constraint.https-expected.txt:
  • web-platform-tests/mediacapture-streams/GUM-invalid-facing-mode.https-expected.txt:
  • web-platform-tests/mediacapture-streams/MediaStreamTrack-applyConstraints.https-expected.txt:

Source/WebCore:

No new tests, existing test and results updated.

  • Modules/mediastream/OverconstrainedError.h:

(WebCore::OverconstrainedError::name const):

  • Modules/mediastream/OverconstrainedError.idl:

LayoutTests:

  • fast/mediastream/MediaDevices-getUserMedia.html:
  • fast/mediastream/overconstrainederror-constraint.html:
8:30 AM Changeset in webkit [252631] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed iOS build fix.

  • style/StyleAdjuster.cpp:
8:28 AM Changeset in webkit [252630] by Kate Cheney
  • 4 edits in trunk/LayoutTests

[ Jazz ] http/tests/resourceLoadStatistics/cookie-deletion.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=203813
<rdar://problem/54316765>

Reviewed by Alexey Proskuryakov.

Added console logging to narrow down cause of flaky test which does not
reproduce locally. Changed test expectations to timeout so the bots
actually run the test and the issue can be determined.

  • http/tests/resourceLoadStatistics/cookie-deletion-expected.txt:
  • http/tests/resourceLoadStatistics/cookie-deletion.html:
  • platform/wk2/TestExpectations:
8:10 AM Changeset in webkit [252629] by Antti Koivisto
  • 5 edits
    2 adds in trunk/Source/WebCore

Move RuleData to a file of its own
https://bugs.webkit.org/show_bug.cgi?id=204351

Reviewed by Anders Carlsson.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • style/RuleData.cpp: Added.

(WebCore::Style::computeMatchBasedOnRuleHash):
(WebCore::Style::selectorCanMatchPseudoElement):
(WebCore::Style::isCommonAttributeSelectorAttribute):
(WebCore::Style::computeContainsUncommonAttributeSelector):
(WebCore::Style::determinePropertyWhitelistType):
(WebCore::Style::RuleData::RuleData):

  • style/RuleData.h: Added.

(WebCore::Style::RuleData::position const):
(WebCore::Style::RuleData::rule const):
(WebCore::Style::RuleData::selector const):
(WebCore::Style::RuleData::selectorIndex const):
(WebCore::Style::RuleData::selectorListIndex const):
(WebCore::Style::RuleData::canMatchPseudoElement const):
(WebCore::Style::RuleData::matchBasedOnRuleHash const):
(WebCore::Style::RuleData::containsUncommonAttributeSelector const):
(WebCore::Style::RuleData::linkMatchType const):
(WebCore::Style::RuleData::propertyWhitelistType const):
(WebCore::Style::RuleData::descendantSelectorIdentifierHashes const):
(WebCore::Style::RuleData::disableSelectorFiltering):

  • style/RuleSet.cpp:

(WebCore::Style::computeMatchBasedOnRuleHash): Deleted.
(WebCore::Style::selectorCanMatchPseudoElement): Deleted.
(WebCore::Style::isCommonAttributeSelectorAttribute): Deleted.
(WebCore::Style::computeContainsUncommonAttributeSelector): Deleted.
(WebCore::Style::determinePropertyWhitelistType): Deleted.
(WebCore::Style::RuleData::RuleData): Deleted.

  • style/RuleSet.h:

(WebCore::Style::RuleData::position const): Deleted.
(WebCore::Style::RuleData::rule const): Deleted.
(WebCore::Style::RuleData::selector const): Deleted.
(WebCore::Style::RuleData::selectorIndex const): Deleted.
(WebCore::Style::RuleData::selectorListIndex const): Deleted.
(WebCore::Style::RuleData::canMatchPseudoElement const): Deleted.
(WebCore::Style::RuleData::matchBasedOnRuleHash const): Deleted.
(WebCore::Style::RuleData::containsUncommonAttributeSelector const): Deleted.
(WebCore::Style::RuleData::linkMatchType const): Deleted.
(WebCore::Style::RuleData::propertyWhitelistType const): Deleted.
(WebCore::Style::RuleData::descendantSelectorIdentifierHashes const): Deleted.
(WebCore::Style::RuleData::disableSelectorFiltering): Deleted.

7:34 AM Changeset in webkit [252628] by Antti Koivisto
  • 19 edits
    4 moves in trunk/Source/WebCore

Move ElementRuleCollector to Style namespace
https://bugs.webkit.org/show_bug.cgi?id=204329

Reviewed by Sam Weinig.

Also move PageRuleCollector.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/CallTracerTypes.h:
  • css/DOMCSSRegisterCustomProperty.cpp:

(WebCore::DOMCSSRegisterCustomProperty::registerProperty):

  • dom/Document.cpp:

(WebCore::Document::styleForElementIgnoringPendingStylesheets):

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::setFont):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::toStyleVariant):
(WebCore::CanvasRenderingContext2DBase::strokeStyle const):
(WebCore::CanvasRenderingContext2DBase::setStrokeStyle):
(WebCore::CanvasRenderingContext2DBase::fillStyle const):
(WebCore::CanvasRenderingContext2DBase::setFillStyle):

Rename CanvasRenderingContext2DBase::Style to StyleVariant to avoid name conflicts.

(WebCore::toStyle): Deleted.

  • html/canvas/CanvasRenderingContext2DBase.h:
  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::buildAction):

  • page/FrameView.cpp:

(WebCore::FrameView::styleHidesScrollbarWithOrientation const):
(WebCore::FrameView::updateScrollCorner):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::getCachedPseudoStyle const):
(WebCore::RenderElement::getUncachedPseudoStyle const):
(WebCore::RenderElement::selectionPseudoStyle const):

  • rendering/RenderElement.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderObject.h:
  • rendering/RenderScrollbar.cpp:

(WebCore::RenderScrollbar::getScrollbarPseudoStyle const):

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::pseudoStyleCacheIsInvalid):

  • style/ElementRuleCollector.cpp: Renamed from Source/WebCore/css/ElementRuleCollector.cpp.

(WebCore::Style::MatchRequest::MatchRequest):
(WebCore::Style::ElementRuleCollector::ElementRuleCollector):
(WebCore::Style::ElementRuleCollector::addMatchedRule):
(WebCore::Style::ElementRuleCollector::collectMatchingRules):
(WebCore::Style::ElementRuleCollector::transferMatchedRules):
(WebCore::Style::ElementRuleCollector::matchAuthorShadowPseudoElementRules):
(WebCore::Style::ElementRuleCollector::matchHostPseudoClassRules):
(WebCore::Style::ElementRuleCollector::matchSlottedPseudoElementRules):
(WebCore::Style::ElementRuleCollector::matchPartPseudoElementRulesForScope):
(WebCore::Style::ElementRuleCollector::collectSlottedPseudoElementRulesForSlot):
(WebCore::Style::ElementRuleCollector::matchUARules):
(WebCore::Style::ElementRuleCollector::ruleMatches):
(WebCore::Style::ElementRuleCollector::collectMatchingRulesForList):
(WebCore::Style::ElementRuleCollector::matchAllRules):
(WebCore::Style::ElementRuleCollector::hasAnyMatchingRules):
(WebCore::Style::ElementRuleCollector::addMatchedProperties):

  • style/ElementRuleCollector.h: Renamed from Source/WebCore/css/ElementRuleCollector.h.

(WebCore::Style::PseudoElementRequest::PseudoElementRequest):
(WebCore::Style::ElementRuleCollector::setPseudoElementRequest):
(WebCore::Style::ElementRuleCollector::styleRelations const):
(WebCore::Style::ElementRuleCollector::transferMatchedRules):

  • style/PageRuleCollector.cpp: Renamed from Source/WebCore/css/PageRuleCollector.cpp.

(WebCore::Style::PageRuleCollector::matchPageRules):

  • style/PageRuleCollector.h: Renamed from Source/WebCore/css/PageRuleCollector.h.

(WebCore::Style::PageRuleCollector::PageRuleCollector):

  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::pseudoStyleForElement):
(WebCore::Style::Resolver::pseudoStyleRulesForElement):

  • style/StyleResolver.h:
7:26 AM Changeset in webkit [252627] by Wenson Hsieh
  • 12 edits
    8 adds in trunk

[Clipboard API] Add support for Clipboard.readText()
https://bugs.webkit.org/show_bug.cgi?id=204310
<rdar://problem/57292754>

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline a couple of imported web platform tests.

  • web-platform-tests/clipboard-apis/async-navigator-clipboard-basics.https-expected.txt:
  • web-platform-tests/clipboard-apis/async-write-text-read-text-manual.https-expected.txt:

Source/WebCore:

Implements readText; see below for more detail.

Tests: editing/async-clipboard/clipboard-do-not-read-text-from-platform-if-text-changes.html

editing/async-clipboard/clipboard-read-text-from-platform.html
editing/async-clipboard/clipboard-read-text-same-origin.html
editing/async-clipboard/clipboard-read-text.html

  • Modules/async-clipboard/Clipboard.cpp:

(WebCore::Clipboard::readText):

Implement the method. This works similarly to Clipboard::read, but immediately reads text data for the first
clipboard item with data for "text/plain", instead of exposing a list of clipboard items.

  • dom/DataTransfer.cpp:

(WebCore::DataTransfer::commitToPasteboard):

If the custom pasteboard data object is empty, then don't bother trying to write it to the platform pasteboard.
This avoids hitting an assertion in WebDragClient::beginDrag that checks to make sure there's no data on the
pasteboard right before beginning a drag in the UI process which was getting hit because we'd otherwise end up
writing just the pasteboard data origin; it also has an added bonus of avoiding an unnecessary sync IPC message.

  • platform/mac/PlatformPasteboardMac.mm:

(WebCore::PlatformPasteboard::write):

Write the custom data type ("com.apple.WebKit.custom-pasteboard-data") when writing PasteboardCustomData to the
pasteboard on macOS, even when the custom pasteboard data only contains an origin. This allows DOM paste
requests to automatically accept when exchanging text data between the same origin via the async clipboard API.

LayoutTests:

Add several new layout tests.

  • editing/async-clipboard/clipboard-do-not-read-text-from-platform-if-text-changes-expected.txt: Added.
  • editing/async-clipboard/clipboard-do-not-read-text-from-platform-if-text-changes.html: Added.

Add a test to verify that if the clipboard changes content in the middle of a call to clipboard.readText, we
will reject the readText() promise and avoid exposing any text to the page.

  • editing/async-clipboard/clipboard-read-text-expected.txt: Added.
  • editing/async-clipboard/clipboard-read-text-from-platform-expected.txt: Added.
  • editing/async-clipboard/clipboard-read-text-from-platform.html: Added.

Add a test to verify that we display DOM paste UI when reading text that was written to the pasteboard directly
via platform API.

  • editing/async-clipboard/clipboard-read-text-same-origin-expected.txt: Added.
  • editing/async-clipboard/clipboard-read-text-same-origin.html: Added.

Add a test to verify that we allow the page to access same origin text data on the pasteboard using readText,
during a user gesture.

  • editing/async-clipboard/clipboard-read-text.html: Added.

Add a basic test to verify that readText works when the page writes text to the clipboard using DataTransfer and
document.execCommand.

  • platform/gtk/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wpe/TestExpectations:
6:23 AM Changeset in webkit [252626] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

http/tests/navigation/page-cache-mediastream.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=204321

Reviewed by Eric Carlson.

Make sure the MediaStreamTrack stays alive if there is a pending ended event to dispatch.

No new tests, covered by existing test.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::hasPendingActivity const):

4:45 AM Changeset in webkit [252625] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

Setup EWS queues for JSConly 32bits ARMv7 and MIPSel
https://bugs.webkit.org/show_bug.cgi?id=203946

Patch by Paulo Matos <Paulo Matos> on 2019-11-19
Reviewed by Aakash Jain.

Naming of queues follow old EWS: jsc-mips for MIPSel
and jsc-armv7 for ARMv7.

  • BuildSlaveSupport/ews-build/config.json:
  • BuildSlaveSupport/ews-build/steps.py:

(RunJavaScriptCoreTests.start):
(PrintConfiguration.run):

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(TestRunJavaScriptCoreTests.test_remote_success):

4:41 AM Changeset in webkit [252624] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

REGRESSION(r249428): [GStreamer] VP9 video rendered green
https://bugs.webkit.org/show_bug.cgi?id=201422

Patch by Thibault Saunier <tsaunier@igalia.com> on 2019-11-19
Reviewed by Philippe Normand.

Avoid forcing a video conversion in software we end up and make
it happen in GL with a sensibly simpler pipeline, this is possible as
glcolorconvert properly setups the converted GL buffers.

Without that patch we are getting "random" not negotiated issues with
MediaStream sources related to the GLMemory caps feature during
renegotiation between the software videoconvert and our sink.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSinkGL):

Note: See TracTimeline for information about the timeline view.