Timeline



May 8, 2020:

10:32 PM Changeset in webkit [261432] by Diego Pino Garcia
  • 2 edits
    1 delete in trunk/LayoutTests

[GTK] Gardening, update expectations after revert of r261341 and r261392
https://bugs.webkit.org/show_bug.cgi?id=211661

Unreviewed gardening.

  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/intrinsic_sizes-expected.txt: Removed.
9:17 PM Changeset in webkit [261431] by basuke.suzuki@sony.com
  • 2 edits in trunk/Source/WebCore

Fix build error on PlatStation port after r261132
https://bugs.webkit.org/show_bug.cgi?id=211659

Unreviewed build fix after r261132.

  • page/scrolling/ScrollingTreeGestureState.cpp:
6:43 PM Changeset in webkit [261430] by Alexey Shvayka
  • 4 edits in trunk

Array.prototype.concat fast path checks should not be observable
https://bugs.webkit.org/show_bug.cgi?id=211643

Reviewed by Ross Kirsling.

JSTests:

While test262 has complete coverage for @@isConcatSpreadable getters in prototype
chain, Proxy cases are covered by stress/array-concat-fast-spread-proxy.js and
stress/array-concat-spread-proxy.js.

  • test262/expectations.yaml: Mark 2 test cases as passing.

Source/JavaScriptCore:

This change utilizes @tryGetByIdWithWellKnownSymbol intrinsic to make
off the spec Symbol.isConcatSpreadable lookups unobservable to userland code,
aligning JSC with V8 and SpiderMonkey.

Since @tryGetById uses PropertySlot::getPureResult(), which returns null
for Proxy Get? traps and JS getters (covered by stress/try-get-by-id.js),
we can safely compare its result undefined. Also, this allows us to remove
@isProxyObject check as Proxy argument is never a fast path anyway.

This patch is neutral on microbenchmarks/concat-append-one.js.

  • builtins/ArrayPrototype.js:

(concat):

6:21 PM Changeset in webkit [261429] by ddkilzer@apple.com
  • 7 edits
    35 deletes in trunk

Remove empty directories from from svn.webkit.org repository
<https://webkit.org/b/211644>

Reviewed by Darin Adler.

6:13 PM Changeset in webkit [261428] by basuke.suzuki@sony.com
  • 14 edits
    1 move in trunk

[WTF] Share Linux's MemoryPressureHandler among other Unix ports
https://bugs.webkit.org/show_bug.cgi?id=208955

Reviewed by Yusuke Suzuki.

Source/bmalloc:

Added FreeBSD implementation of memoryFootprint().

  • bmalloc/AvailableMemory.cpp:

(bmalloc::memoryStatus):

  • bmalloc/AvailableMemory.h:

(bmalloc::isUnderMemoryPressure):

  • bmalloc/bmalloc.h:

Source/WTF:

Renamed MemoryPressureHandlerLinux to MemoryPressureHandlerUnix and added FreeBSD implementation
of memory status functions. Change PlayStation port to use it from generic implementation.

  • wtf/MemoryPressureHandler.cpp:

(WTF::MemoryPressureHandler::MemoryPressureHandler):

  • wtf/MemoryPressureHandler.h:
  • wtf/PlatformGTK.cmake:
  • wtf/PlatformJSCOnly.cmake:
  • wtf/PlatformPlayStation.cmake:
  • wtf/PlatformWPE.cmake:
  • wtf/generic/MemoryFootprintGeneric.cpp:

(WTF::memoryFootprint):

  • wtf/unix/MemoryPressureHandlerUnix.cpp: Renamed from Source\WTF\wtf\linux\MemoryPressureHandlerLinux.cpp.

(WTF::processMemoryUsage):

Tools:

Fix unneeded library dependency.

  • TestWebKitAPI/CMakeLists.txt:
5:02 PM Changeset in webkit [261427] by Simon Fraser
  • 10 edits
    2 adds in trunk

Async overflow scroll: sometimes a <select> becomes non-scrollable
https://bugs.webkit.org/show_bug.cgi?id=211433
<rdar://problem/62338474>

Reviewed by Dean Jackson.

Source/WebCore:

Scrollable <select>s (RenderListBox) contribute to the non-fast scrollable region, so
wheel events inside them are propagated to the main thread. If the select is scrolled
to the end, the event will propagate to the enclosing scroller, then then FrameView::wheelEvent()
may send it back to the scrolling thread. If the scrolling thread is processing such an event
after the main thread, it should not perform any latching on the main thread.

Test: scrollingcoordinator/mac/latching/scrolling-select-should-not-latch-mainframe.html

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::shouldHandleWheelEventSynchronously):
(WebCore::ScrollingTree::handleWheelEvent):

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ScrollingTreeLatchingController.cpp:

(WebCore::ScrollingTreeLatchingController::receivedWheelEvent):
(WebCore::ScrollingTreeLatchingController::latchedNodeForEvent const):
(WebCore::ScrollingTreeLatchingController::nodeDidHandleEvent):
(WebCore::ScrollingTreeLatchingController::clearLatchedNode):

  • page/scrolling/ScrollingTreeLatchingController.h:
  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::handleWheelEventAfterMainThread):

  • page/scrolling/ThreadedScrollingTree.h:
  • page/scrolling/mac/ScrollingCoordinatorMac.mm:

(WebCore::ScrollingCoordinatorMac::handleWheelEvent):

  • platform/PlatformWheelEvent.cpp:

(WebCore::operator<<):

LayoutTests:

  • scrollingcoordinator/mac/latching/scrolling-select-should-not-latch-mainframe-expected.txt: Added.
  • scrollingcoordinator/mac/latching/scrolling-select-should-not-latch-mainframe.html: Added.
5:02 PM Changeset in webkit [261426] by Simon Fraser
  • 1 edit
    4 adds in trunk/LayoutTests

Overflow scrollers in iframes don't get mouseMovedInContentArea()
https://bugs.webkit.org/show_bug.cgi?id=211347
<rdar://problem/62784560>

Reviewed by Tim Horton.

Land some tests that were missing from r261382.

  • fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-hovered-expected.txt: Added.
  • fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-hovered.html: Added.
  • fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-reveal-expected.txt: Added.
  • fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-reveal.html: Added.
5:00 PM Changeset in webkit [261425] by Ryan Haddad
  • 1 edit
    2 adds in trunk/LayoutTests

[LFC][TFC] The fixed logical width should be used as the max width for a cell
https://bugs.webkit.org/show_bug.cgi?id=211610

Unreviewed test gardening.

Add a baseline for Windows.

  • platform/win/fast/layoutformattingcontext/table-simple-with-fixed-widht-and-inline-content-expected.txt: Added.
4:20 PM Changeset in webkit [261424] by Darin Adler
  • 8 edits in trunk/Source

Remove now-unneeded HAVE(AVFOUNDATION_LOADER_DELEGATE)
https://bugs.webkit.org/show_bug.cgi?id=211646

Reviewed by Eric Carlson.

Source/WebCore:

  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResourceLoader::requestResource): Remove check of
HAVE(AVFOUNDATION_LOADER_DELEGATE) in a place where it also checks PLATFORM(MAC).

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:

Remove HAVE(AVFOUNDATION_LOADER_DELEGATE) in Cocoa-only code.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: Ditto.

(WebCore::globalLoaderDelegateQueue): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::didStopLoadingRequest): Ditto.

  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h: Ditto.
  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm: Ditto.

Source/WTF:

  • wtf/PlatformHave.h: Don't set HAVE_AVFOUNDATION_LOADER_DELEGATE.
4:11 PM Changeset in webkit [261423] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Regression(r210945): No attachment when sharing to mail
https://bugs.webkit.org/show_bug.cgi?id=211651
<rdar://problem/63040170>

Reviewed by Tim Horton.

When failing to determine foreground state, the code before r210945 was assuming
'foreground', while the code in r210945 assume 'background'. This causes things
to not render properly when we fail to determine the foreground state.

This patch merely restores pre-r210945 behavior. I will investigate why we are
unable to determinate the host application PID for the MailCompositionService.

  • UIProcess/ApplicationStateTracker.mm:

(WebKit::isApplicationForeground):

4:11 PM Changeset in webkit [261422] by commit-queue@webkit.org
  • 3 edits
    1 add in trunk

TextureMapper should skip clipping a content layer if it's not needed
https://bugs.webkit.org/show_bug.cgi?id=210787

Patch by Tomoki Imai <Tomoki Imai> on 2020-05-08
Reviewed by Don Olmstead.

Source/WebCore:

This patch follows up r260174.
We don't need to clip a content layer if the clipping rect contains the content rect.
This patch doesn't change the behavior but saves stencil indices.

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::paintSelf):

LayoutTests:

This patch follows up r260174 by updating the test expectation.

  • platform/gtk/compositing/video/video-object-fit-expected.txt: Added.
3:56 PM Changeset in webkit [261421] by Jonathan Bedard
  • 5 edits in trunk/Tools

webkitpy: 'iPhone SE' should match 'iPhone SE 1st generation'
https://bugs.webkit.org/show_bug.cgi?id=211642
<rdar://problems/62986242>

Rubber-stamped by Aakash Jain.

  • Scripts/webkitpy/xcode/device_type.py:

(DeviceType):
(DeviceType.standardized_hardware_type): Strip '1st generation' from models.
(DeviceType.eq): Use standardized hardware type.
(DeviceType.contains): Ditto.
(DeviceType.hash): Ditto.

  • Scripts/webkitpy/xcode/device_type_unittest.py:

(DeviceTypeTest):
(DeviceTypeTest.test_generation_matching):

  • Scripts/webkitpy/xcode/simulated_device.py:

(SimulatedDeviceManager._get_device_identifier_for_type): Handle case where the requests model does not
end with '(1st generation)', but the simctl model does.

  • Scripts/webkitpy/xcode/simulated_device_unittest.py:
3:09 PM Changeset in webkit [261420] by Alan Coon
  • 1 copy in tags/Safari-610.1.12

Tag Safari-610.1.12.

3:04 PM Changeset in webkit [261419] by Alan Coon
  • 7 edits in branches/safari-610.1.12-branch

Revert r260642. rdar://problem/63037576

2:41 PM Changeset in webkit [261418] by Ryan Haddad
  • 2 edits in trunk/Tools

TestWebKitAPI.WebKit.AllowsContentJavaScript fails on iPad simulator
https://bugs.webkit.org/show_bug.cgi?id=207874

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm:

Disable the test for iOS.

2:21 PM Changeset in webkit [261417] by Darin Adler
  • 1 edit
    1 delete in trunk/PerformanceTests

Remove no-longer-used PerformanceTests/StitchMarker
https://bugs.webkit.org/show_bug.cgi?id=211639

Reviewed by Ryosuke Niwa.

Having this test around can be confusing since it contains old versions
of many WebKit source files, which will show up when searching the source
tree. And since we're not using it, we don't need to keep a copy of it
in the tip of tree in the repository.

  • StitchMarker: Removed.
2:16 PM Changeset in webkit [261416] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

[iOS] Text-style fonts aren't locale-specific
https://bugs.webkit.org/show_bug.cgi?id=211438
<rdar://problem/51654163>

Reviewed by Sam Weinig.

Source/WebCore:

Simply hook up the locale to the Core Text function.

It turns out that this patch actually has no behavior change,
because this locale is only used for font fallback, but WebKit
does its own font fallback and we already pass the locale into
CTFontCopyDefaultCascadeListForLanguages(). However, for
symmetry with CTFontCreateUIFontWithLanguage() it's a good idea
to just supply it anyway. Just in case.

Test: platform/ios/fast/text/lang-text-style.html

  • platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:

(WebCore::SystemFontDatabaseCoreText::createTextStyleFont):

LayoutTests:

This test actually already passes. But it's a good idea to make
sure that it continues to pass in the future.

  • platform/ios/fast/text/lang-text-style-expected-mismatch.html: Added.
  • platform/ios/fast/text/lang-text-style.html: Added.
2:14 PM Changeset in webkit [261415] by ddkilzer@apple.com
  • 3 edits in trunk/Tools

check-webkit-style false positive for [readability/naming/protected] with method declaration
<https://webkit.org/b/210682>

Reviewed by Darin Adler.

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_identifier_name_in_declaration):

  • Don't check for invalid protector name if the capitalized protected name is the same as the original protected name, indicating it's a type name.
  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(WebKitStyleTest.test_names):

  • Add test cases.
1:57 PM Changeset in webkit [261414] by achristensen@apple.com
  • 2 edits in trunk/Tools

Fix build on platforms without network framework.
https://bugs.webkit.org/show_bug.cgi?id=211603

  • TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:

Add HAVE(NETWORK_FRAMEWORK) around test that uses network framework.

1:48 PM Changeset in webkit [261413] by commit-queue@webkit.org
  • 106 edits in trunk

[WebGL2] Complete new texture upload entry points in WebGL2RenderingContext
https://bugs.webkit.org/show_bug.cgi?id=208875

Patch by Kenneth Russell <kbr@chromium.org> on 2020-05-08
Reviewed by Dean Jackson.

Source/WebCore:

Implement the remaining texture upload entry points - mainly for
3D textures - in WebGL2RenderingContext. Add support for uploading
from the pixel unpack buffer.

Refactor the WebGL 2.0 binding points into WebGL2RenderingContext,
where they had previously been in the base class. Refactor
validation code to override the base class where necessary.
Refactor getParameter into WebGLRenderingContextBase and override
it in WebGL2RenderingContext, eliminating duplicate code and
fixing bugs.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::~WebGL2RenderingContext):
(WebCore::WebGL2RenderingContext::getInt64Parameter):
(WebCore::WebGL2RenderingContext::validateBufferTarget):
(WebCore::WebGL2RenderingContext::validateBufferTargetCompatibility):
(WebCore::WebGL2RenderingContext::validateBufferDataTarget):
(WebCore::WebGL2RenderingContext::validateAndCacheBufferBinding):
(WebCore::WebGL2RenderingContext::validateTexImageBinding):
(WebCore::WebGL2RenderingContext::validateTexture3DBinding):
(WebCore::WebGL2RenderingContext::copyBufferSubData):
(WebCore::WebGL2RenderingContext::bindFramebuffer):
(WebCore::WebGL2RenderingContext::deleteFramebuffer):
(WebCore::WebGL2RenderingContext::getTexParameter):
(WebCore::WebGL2RenderingContext::texStorage2D):
(WebCore::WebGL2RenderingContext::texStorage3D):
(WebCore::WebGL2RenderingContext::texImage2D):
(WebCore::WebGL2RenderingContext::texImage3D):
(WebCore::WebGL2RenderingContext::texSubImage2D):
(WebCore::WebGL2RenderingContext::texSubImage3D):
(WebCore::WebGL2RenderingContext::bindBufferBase):
(WebCore::WebGL2RenderingContext::getFramebufferAttachmentParameter):
(WebCore::WebGL2RenderingContext::validateFramebufferTarget):
(WebCore::WebGL2RenderingContext::getFramebufferBinding):
(WebCore::WebGL2RenderingContext::getReadFramebufferBinding):
(WebCore::WebGL2RenderingContext::restoreCurrentFramebuffer):
(WebCore::WebGL2RenderingContext::getParameter):
(WebCore::WebGL2RenderingContext::uncacheDeletedBuffer):
(WebCore::WebGL2RenderingContext::validateFramebufferFuncParameters): Deleted.

  • html/canvas/WebGL2RenderingContext.h:
  • html/canvas/WebGLBuffer.cpp:

(WebCore::WebGLBuffer::setTarget):

  • html/canvas/WebGLBuffer.h:
  • html/canvas/WebGLFramebuffer.cpp:

(WebCore::WebGLFramebuffer::setAttachmentForBoundFramebuffer):
(WebCore::WebGLFramebuffer::attach):
(WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
(WebCore::WebGLFramebuffer::isBound const):

  • html/canvas/WebGLFramebuffer.h:
  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::validateFramebufferFuncParameters): Deleted.
(WebCore::WebGLRenderingContext::getParameter): Deleted.

  • html/canvas/WebGLRenderingContext.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::initializeNewContext):
(WebCore::WebGLRenderingContextBase::~WebGLRenderingContextBase):
(WebCore::WebGLRenderingContextBase::validateBufferTarget):
(WebCore::WebGLRenderingContextBase::validateBufferDataTarget):
(WebCore::WebGLRenderingContextBase::validateAndCacheBufferBinding):
(WebCore::WebGLRenderingContextBase::bindBuffer):
(WebCore::WebGLRenderingContextBase::bindFramebuffer):
(WebCore::WebGLRenderingContextBase::bindTexture):
(WebCore::WebGLRenderingContextBase::checkFramebufferStatus):
(WebCore::WebGLRenderingContextBase::uncacheDeletedBuffer):
(WebCore::WebGLRenderingContextBase::deleteFramebuffer):
(WebCore::WebGLRenderingContextBase::deleteRenderbuffer):
(WebCore::WebGLRenderingContextBase::deleteTexture):
(WebCore::WebGLRenderingContextBase::framebufferRenderbuffer):
(WebCore::WebGLRenderingContextBase::framebufferTexture2D):
(WebCore::WebGLRenderingContextBase::getParameter):
(WebCore::WebGLRenderingContextBase::readPixels):
(WebCore::WebGLRenderingContextBase::copyTexImage2D):
(WebCore::WebGLRenderingContextBase::texParameter):
(WebCore::WebGLRenderingContextBase::getBoundReadFramebufferColorFormat):
(WebCore::WebGLRenderingContextBase::getBoundReadFramebufferWidth):
(WebCore::WebGLRenderingContextBase::getBoundReadFramebufferHeight):
(WebCore::WebGLRenderingContextBase::validateFramebufferTarget):
(WebCore::WebGLRenderingContextBase::getFramebufferBinding):
(WebCore::WebGLRenderingContextBase::getReadFramebufferBinding):
(WebCore::WebGLRenderingContextBase::validateFramebufferFuncParameters):
(WebCore::WebGLRenderingContextBase::validateBufferDataParameters):
(WebCore::WebGLRenderingContextBase::setFramebuffer):
(WebCore::WebGLRenderingContextBase::restoreCurrentFramebuffer):
(WebCore::WebGLRenderingContextBase::getInt64Parameter): Deleted.

  • html/canvas/WebGLRenderingContextBase.h:

LayoutTests:

All of the 3D texture tests in
webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/ and
webgl/2.0.0/conformance2/textures/image_data/ now pass, and
several others progress, including some which now pass completely.
Rebaseline all of these.

Skip webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/
temporarily to reduce the size of these rebaselines, as the
failures are likely caused by non-WebGL browser bugs. Filed Bug
211484 to track re-enabling them.

  • TestExpectations:
  • platform/mac/webgl/fingerprinting-strings-expected.txt:
  • webgl/2.0.0/conformance/state/gl-enable-enum-test-expected.txt:
  • webgl/2.0.0/conformance2/buffers/buffer-copying-contents-expected.txt:
  • webgl/2.0.0/conformance2/buffers/buffer-copying-restrictions-expected.txt:
  • webgl/2.0.0/conformance2/buffers/buffer-type-restrictions-expected.txt:
  • webgl/2.0.0/conformance2/buffers/uniform-buffers-expected.txt:
  • webgl/2.0.0/conformance2/misc/expando-loss-2-expected.txt:
  • webgl/2.0.0/conformance2/misc/getextension-while-pbo-bound-stability-expected.txt:
  • webgl/2.0.0/conformance2/misc/object-deletion-behaviour-2-expected.txt:
  • webgl/2.0.0/conformance2/misc/views-with-offsets-expected.txt:
  • webgl/2.0.0/conformance2/renderbuffers/framebuffer-texture-layer-expected.txt:
  • webgl/2.0.0/conformance2/rendering/blitframebuffer-test-expected.txt:
  • webgl/2.0.0/conformance2/rendering/canvas-resizing-with-pbo-bound-expected.txt:
  • webgl/2.0.0/conformance2/rendering/out-of-bounds-index-buffers-after-copying-expected.txt:
  • webgl/2.0.0/conformance2/state/gl-get-calls-expected.txt:
  • webgl/2.0.0/conformance2/state/gl-getstring-expected.txt:
  • webgl/2.0.0/conformance2/state/gl-object-get-calls-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r32f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r8-red-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg32f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8-rg-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb32f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba32f-rgba-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-r16f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-r16f-red-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-r32f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-r8-red-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg16f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg16f-rg-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg32f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg8-rg-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb16f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb16f-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb32f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb8-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba16f-rgba-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba16f-rgba-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba32f-rgba-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba8-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-srgb8-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/copy-texture-image-luma-format-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/copy-texture-image-webgl-specific-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/gl-get-tex-parameter-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-image-and-sub-image-with-array-buffer-view-sub-source-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-input-validation-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-mipmap-levels-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-new-formats-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-storage-2d-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-storage-and-subimage-3d-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-unpack-params-expected.txt:
1:46 PM Changeset in webkit [261412] by Nikos Mouchtaris
  • 18 edits
    2 adds in trunk

Implement web-share v2 for files
https://bugs.webkit.org/show_bug.cgi?id=209265

Reviewed by Andy Estes.

LayoutTests/imported/w3c:

Updated test expectations for new behavior.

  • ios-wk2/imported/w3c/web-platform-tests/web-share/canShare-files.https-expected.txt :
  • mac-wk2/imported/w3c/web-platform-tests/web-share/canShare-files.https-expected.txt :

Source/WebCore:

Modified existing tests for new behavior.

Added support for handling of files in share/canShare,
and implemented asynchronous reading of data from blobs on
disk into memory.

  • WebCore.xcodeproj/project.pbxproj:
  • page/Navigator.cpp:

(WebCore::Navigator::canShare):
(WebCore::Navigator::share):
(WebCore::Navigator::finishedLoad):

  • page/Navigator.h:
  • page/ReadShareDataAsync.cpp: Added.

(WebCore::ReadShareDataAsync::readInternal):
(WebCore::ReadShareDataAsync::ReadShareDataAsync):
(WebCore::ReadShareDataAsync::~ReadShareDataAsync):
(WebCore::ReadShareDataAsync::start):
(WebCore::ReadShareDataAsync::didFinishLoading):
(WebCore::ReadShareDataAsync::didReceiveData):
(WebCore::ReadShareDataAsync::didStartLoading):
(WebCore::ReadShareDataAsync::didFail):

  • page/ReadShareDataAsync.hpp: Added.
  • page/ShareData.h:

Source/WebKit:

Added support for passing file objects over IPC and
sharing of files to share sheet.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<Vector<RawFile>>::encode):
(IPC::ArgumentCoder<Vector<RawFile>>::decode):
(IPC::ArgumentCoder<ShareDataWithParsedURL>::encode):
(IPC::ArgumentCoder<ShareDataWithParsedURL>::decode):

  • Shared/WebCoreArgumentCoders.h:
  • UIProcess/Cocoa/ShareableFileWrite.h: Added.
  • UIProcess/Cocoa/ShareableFileWrite.mm: Added.

(+[WKShareableFileWrite getSharingDirectoryPath]):
(+[WKShareableFileWrite getFileDirectoryForSharing]):
(+[WKShareableFileWrite removeFileDirectoryForSharing]):
(+[WKShareableFileWrite setQuarantineInformationForFilePath:]):
(+[WKShareableFileWrite applyQuarantineSandboxAndDownloadFlagsToFileAtPath:]):
(+[WKShareableFileWrite createFilename:]):
(+[WKShareableFileWrite writeFileToShareableURL:data:]):

  • UIProcess/Cocoa/WKShareSheet.mm:

(-[WKShareSheet presentWithParameters:inRect:completionHandler:]):
(-[WKShareSheet _didCompleteWithSuccess:]):

  • WebKit.xcodeproj/project.pbxproj:

LayoutTests:

Modified to no longer use url of image.

  • fast/web-share/share-with-files.html:
1:43 PM Changeset in webkit [261411] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

Revise sandbox to stop logging some commonly-used properties
https://bugs.webkit.org/show_bug.cgi?id=211636
<rdar://problem/63014244>

Reviewed by Per Arne Vollan.

Further living on and testing has shown a handful of sysctl entries that are in regular use, and do not need
to be logged or considered for removal. This patch has no change in behavior, just reduces logging.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
1:41 PM Changeset in webkit [261410] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION [ iOS ] fast/forms/validationMessage.html is flaky and timing out
https://bugs.webkit.org/show_bug.cgi?id=206630

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
1:27 PM Changeset in webkit [261409] by Ryan Haddad
  • 14 edits
    2 deletes in trunk

Unreviewed, reverting r261341 and r261392.

Caused multiple regression test failures

Reverted changesets:

"Poster set after playback begins should be ignored"
https://bugs.webkit.org/show_bug.cgi?id=211464
https://trac.webkit.org/changeset/261341

"REGRESSION(r261341): imported/w3c/web-platform-
tests/html/semantics/embedded-content/the-video-
element/intrinsic_sizes.htm is failing"
https://bugs.webkit.org/show_bug.cgi?id=211612
https://trac.webkit.org/changeset/261392

1:20 PM Changeset in webkit [261408] by aakash_jain@apple.com
  • 18 edits
    2 deletes in trunk/Tools

Delete old ews client side code
https://bugs.webkit.org/show_bug.cgi?id=211638

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/common/checkout/changelog_unittest.py:
  • Scripts/webkitpy/common/config/urls.py: Removed old ews server url.
  • Scripts/webkitpy/common/net/statusserver.py: Removed.
  • Scripts/webkitpy/common/net/statusserver_mock.py: Removed.
  • Scripts/webkitpy/tool/bot/botinfo.py:
  • Scripts/webkitpy/tool/bot/botinfo_unittest.py:
  • Scripts/webkitpy/tool/bot/flakytestreporter.py:
  • Scripts/webkitpy/tool/bot/flakytestreporter_unittest.py:
  • Scripts/webkitpy/tool/bot/queueengine.py:
  • Scripts/webkitpy/tool/bot/queueengine_unittest.py:
  • Scripts/webkitpy/tool/commands/earlywarningsystem.py:
  • Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py:
  • Scripts/webkitpy/tool/commands/perfalizer.py:
  • Scripts/webkitpy/tool/commands/queues.py:

(AbstractQueue._log_from_script_error_for_upload): Deleted.
(AbstractQueue._update_status_for_script_error): Deleted.
(AbstractPatchQueue._update_status): Deleted.
(AbstractPatchQueue._release_work_item): Deleted.
(AbstractPatchQueue._did_pass): Deleted.
(AbstractPatchQueue._did_fail): Deleted.

  • Scripts/webkitpy/tool/commands/queues_unittest.py:

(AbstractQueueTest._assert_run_webkit_patch):
(AbstractQueueTest.test_no_iteration_count):
(PatchProcessingQueueTest.test_upload_results_archive_for_patch):
(AbstractQueueTest._assert_log_message): Deleted.
(AbstractQueueTest.test_log_from_script_error_for_upload): Deleted.
(AbstractPatchQueueTest): Deleted.
(NeedsUpdateSequence): Deleted.
(NeedsUpdateSequence._run): Deleted.
(StyleQueueTest): Deleted.
(StyleQueueTest.test_style_queue_with_style_exception): Deleted.

  • Scripts/webkitpy/tool/commands/queuestest.py:

(QueuesTest._default_begin_work_queue_logs):
(QueuesTest._default_begin_work_queue_stderr): Deleted.

  • Scripts/webkitpy/tool/commands/sheriffbot.py:
  • Scripts/webkitpy/tool/main.py:
  • Scripts/webkitpy/tool/mocktool.py:
1:10 PM Changeset in webkit [261407] by Chris Dumez
  • 10 edits in trunk

Make WKWebViewConfiguration._alwaysRunsAtForegroundPriority an alias for _clientNavigationsRunAtForegroundPriority
https://bugs.webkit.org/show_bug.cgi?id=211632

Reviewed by Darin Adler.

Make WKWebViewConfiguration._alwaysRunsAtForegroundPriority an alias for _clientNavigationsRunAtForegroundPriority.
_alwaysRunsAtForegroundPriority is a frequent source of process assertion leaks that get blamed on WebKit. Clients
are using this in order to be able to do loads in background views so _clientNavigationsRunAtForegroundPriority
should suffice and is not leak prone since the process assertion is released after the navigation has completed.

  • UIProcess/API/APIPageConfiguration.cpp:

(API::PageConfiguration::copy const):

  • UIProcess/API/APIPageConfiguration.h:

(API::PageConfiguration::alwaysRunsAtForegroundPriority const): Deleted.
(API::PageConfiguration::setAlwaysRunsAtForegroundPriority): Deleted.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration _alwaysRunsAtForegroundPriority]):
(-[WKWebViewConfiguration _setAlwaysRunsAtForegroundPriority:]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::updateThrottleState):
(WebKit::WebPageProxy::resetStateAfterProcessExited):

  • UIProcess/WebPageProxy.h:
1:08 PM Changeset in webkit [261406] by Darin Adler
  • 1 edit
    2 adds in trunk/LayoutTests

Add a regression test for bug 211541
https://bugs.webkit.org/show_bug.cgi?id=211635

Reviewed by Geoffrey Garen.

  • fast/box-shadow/box-shadow-huge-area-crash-expected.html: Added.
  • fast/box-shadow/box-shadow-huge-area-crash.html: Added.
1:05 PM Changeset in webkit [261405] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Revert r260390
https://bugs.webkit.org/show_bug.cgi?id=210759
<rdar://problem/62608140>

r260390 was intended to stop hitting some assertions in ~PendingFrameLoad, but it seems to have caused a regression.
Reverting it and removing the invalid assertions.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::~PendingFrameLoad):
(WebKit::NetworkCache::SpeculativeLoadManager::~SpeculativeLoadManager):

12:59 PM Changeset in webkit [261404] by jer.noble@apple.com
  • 2 edits in trunk/LayoutTests

media/video-zoom.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=211631

Reviewed by Eric Carlson.

Remove the 1.5s early timeout check here; with the additional 150ms per video element timeout elsewhere
in the test, this is short enough to cause flaky failures on busy bots.

  • media/video-zoom.html:
12:45 PM Changeset in webkit [261403] by Alan Coon
  • 2 edits in branches/safari-610.1.12-branch/Source/WebKit

Revert r260787. rdar://problem/63032130

12:39 PM Changeset in webkit [261402] by commit-queue@webkit.org
  • 4 edits in trunk

Limit HTTP referer to 4kb
https://bugs.webkit.org/show_bug.cgi?id=211603
<rdar://problem/56768823>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-05-08
Reviewed by Chris Dumez.

Source/WebCore:

Use the origin if it's longer, unless the origin is too long.
This matches the behavior of other browsers.
See https://bugzilla.mozilla.org/show_bug.cgi?id=1557346

Tested by API tests.

  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::setHTTPReferrer):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:

(TEST):

12:11 PM Changeset in webkit [261401] by Ryan Haddad
  • 2 edits in branches/safari-609-branch/Tools

Cherry-pick r260484. rdar://problem/62140724

Bindings-test should not depend on current working directory.
https://bugs.webkit.org/show_bug.cgi?id=210831

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/bindings/main.py: (BindingsTests.main):

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

11:36 AM Changeset in webkit [261400] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

SIGILL @ WebCore::Shape::createRasterShape -- DOS ASAN
https://bugs.webkit.org/show_bug.cgi?id=211539

Patch by Pinki Gyanchandani <pgyanchandani@apple.com> on 2020-05-08
Reviewed by Simon Fraser.

Corrected the comment.

No new test needed.

  • rendering/shapes/Shape.cpp:

(WebCore::Shape::createRasterShape):

10:57 AM Changeset in webkit [261399] by commit-queue@webkit.org
  • 4 edits in trunk

Fix urlsearchparams-delete.html
https://bugs.webkit.org/show_bug.cgi?id=211456

Patch by Rob Buis <rbuis@igalia.com> on 2020-05-08
Reviewed by Daniel Bates.

LayoutTests/imported/w3c:

Update improved test expectation.

  • web-platform-tests/url/urlsearchparams-delete-expected.txt:

Source/WebCore:

Step 2 of URLSearchParams.delete algorithm [1] indicates
we should run the update steps, even if no name-value
pairs were removed.

Behavior matches Chrome and Firefox.

[1] https://url.spec.whatwg.org/#dom-urlsearchparams-delete

Test: web-platform-tests/url/urlsearchparams-delete.html

  • html/URLSearchParams.cpp:

(WebCore::URLSearchParams::remove):

10:57 AM Changeset in webkit [261398] by Wenson Hsieh
  • 12 edits
    2 adds in trunk

[iOS] caret appears in the middle of a search field when field is focused on agoda.com
https://bugs.webkit.org/show_bug.cgi?id=211591
<rdar://problem/60605873>

Reviewed by Antoine Quint.

Source/WebCore:

See WebKit/ChangeLog for more details.

Test: editing/selection/ios/caret-rect-after-animating-focused-text-field.html

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::finishNotificationSteps):

Add plumbing to call out to the WebKit client layer after an animation finishes running.

  • dom/Node.h:
  • editing/VisibleSelection.h:

WEBCORE_EXPORT a couple of methods.

  • page/ChromeClient.h:

(WebCore::ChromeClient::animationDidFinishForElement):

Source/WebKit:

The main search field on the mobile version of this website begins offscreen, with a CSS transform that moves it
to the far right; tapping the button element that (visually) has a search-field-like appearance on the front
page programmatically focuses the real offscreen search field, and animates it onscreen by changing the CSS
transform attribute to remove the x-axis translation.

On iOS, the caret rect is computed and sent to the UI process via editor state updates; however, the editor
state is computed immediately after focusing the input field. As such, the caret rect at this moment is computed
in the middle of the animation, leaving it stuck in an unpredictable location.

To fix this, add plumbing to call into the WebKit client layer when an animation has ended. On iOS, if the
selection is visible (i.e. a ranged selection, or editable caret), then check to see whether the element that
has finished animating contains either endpoint of the selection. If so, then schedule a followup editor state
update to push updated selection information to the UI process.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::animationDidFinishForElement):

  • WebProcess/WebCoreSupport/WebChromeClient.h:

Add a new client hook for when animations end.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::animationDidFinishForElement):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

Add logic to schedule a new editor state update if needed, after an animation ends that might affect either
the start or end of the selection.

(WebKit::WebPage::animationDidFinishForElement):

LayoutTests:

Add a new layout test to verify that the caret view eventually becomes visible when after a focused text field
containing the caret is animated.

  • editing/selection/ios/caret-rect-after-animating-focused-text-field-expected.txt: Added.
  • editing/selection/ios/caret-rect-after-animating-focused-text-field.html: Added.
10:56 AM Changeset in webkit [261397] by dino@apple.com
  • 2 edits in trunk/Tools

Allow run-safari to launch an iPad simulator
https://bugs.webkit.org/show_bug.cgi?id=211606
<rdar://problem/63002849>

Reviewed by Jon Lee.

Add an "--ipad-simulator" command line option to run-safari.

  • Scripts/webkitdirs.pm:

(argumentsForConfiguration):
(determineXcodeSDK): Mark the device idiom depending on the command line argument.
(printHelpAndExitForRunAndDebugWebKitAppIfNeeded):
(findOrCreateSimulatorForIOSDevice): Create an iPad Pro simulator if requested.

10:53 AM Changeset in webkit [261396] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r260228): Linker warning about limitsNavigationsToAppBoundDomains property overriding instance methods from class
<https://webkit.org/b/211393>

Reviewed by Brent Fulgham.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration limitsNavigationsToAppBoundDomains]):
(-[WKWebViewConfiguration setLimitsNavigationsToAppBoundDomains:]):

  • Move from WKPrivate category to main category to fix linker warnings.
10:35 AM Changeset in webkit [261395] by Wenson Hsieh
  • 11 edits
    2 adds in trunk

Preserve character set information when writing to the pasteboard when copying rich text
https://bugs.webkit.org/show_bug.cgi?id=211524

Reviewed by Darin Adler.

Source/WebCore:

This patch is a followup to r261247, which introduced a workaround for Cocoa platforms to automatically add a
meta charset when writing HTML data to the platform pasteboard. When copying a rich text selection, we use a
different codepath when sanitizing DOM content - that is, serializePreservingVisualAppearance.

The previous change also introduced an enum, AddMetaCharsetIfNeeded, to limit applying this workaround to only
when we're writing HTML to the clipboard. However, it should be harmless to include this when reading sanitized
HTML as well, so we can also simplify this code by removing the AddMetaCharsetIfNeeded enum (and all of its
uses).

Test: CopyHTML.SanitizationPreservesCharacterSetInSelectedText

  • Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp:

(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::sanitizeDataIfNeeded):

  • dom/DataTransfer.cpp:

(WebCore::DataTransfer::setDataFromItemList):

  • editing/MarkupAccumulator.h:

(WebCore::MarkupAccumulator::isAllASCII const):

  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::sanitizeMarkupWithArchive):
(WebCore::WebContentReader::readHTML):
(WebCore::WebContentMarkupReader::readHTML):

  • editing/markup.cpp:

(WebCore::sanitizeMarkup):
(WebCore::serializePreservingVisualAppearanceInternal):

Move the meta charset workaround from sanitizedMarkupForFragmentInDocument to
serializePreservingVisualAppearanceInternal, such that HTML data written to the pasteboard when copying rich
text can be used to load a web view, without losing the fact that the copied content was UTF-8 encoded.

(WebCore::sanitizedMarkupForFragmentInDocument):

  • editing/markup.h:

Tools:

Add a new API test to verify that the HTML data written to the pasteboard when copying a rich text selection
can be converted into an NSAttributedString that contains correctly encoded non-Latin characters.

  • TestWebKitAPI/Tests/WebKitCocoa/CopyHTML.mm:

LayoutTests:

Rebaseline several layout tests.

  • platform/ios/editing/pasteboard/onpaste-text-html-expected.txt:
  • platform/mac/editing/pasteboard/onpaste-text-html-expected.txt: Added.
  • platform/mac/fast/events/ondrop-text-html-expected.txt: Added.
10:33 AM Changeset in webkit [261394] by Chris Dumez
  • 5 edits in trunk

REGRESSION(r259209) Webview's pending URL is null after restoring session state
https://bugs.webkit.org/show_bug.cgi?id=211626
<rdar://problem/62992262>

Reviewed by Alex Christensen.

Source/WebKit:

The issue was that WebPageProxy::goToBackForwardItem() would behave differently whether
the page has a running process or not. In particular, when the page did not have a
running process, goToBackForwardItem() would return early and call launchProcessWithItem()
instead. Unlike goToBackForwardItem(), launchProcessWithItem() would fail to set the
pending API request.

To address the issue, I am getting rid of launchProcessWithItem() and merging its logic
into goToBackForwardItem() instead. Both methods shared a lot of code anyway and having
2 separate code paths that may diverge is error prone.

Change is covered by new API test.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::goToBackForwardItem):
(WebKit::WebPageProxy::launchProcessWithItem): Deleted.

  • UIProcess/WebPageProxy.h:

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKit/RestoreSessionState.cpp:

(TestWebKitAPI::TEST):

10:31 AM Changeset in webkit [261393] by don.olmstead@sony.com
  • 40 edits in trunk/Source/WTF

[clang-tidy] Run modernize-use-nullptr over WTF
https://bugs.webkit.org/show_bug.cgi?id=211628

Reviewed by Yusuke Suzuki.

Use the fix option in clang-tidy to ensure nullptr is being used across WTF.

  • wtf/Assertions.cpp:
  • wtf/BumpPointerAllocator.h:

(WTF::BumpPointerPool::BumpPointerPool):
(WTF::BumpPointerPool::create):
(WTF::BumpPointerAllocator::BumpPointerAllocator):

  • wtf/DataLog.cpp:

(WTF::setDataFile):

  • wtf/DateMath.cpp:

(WTF::parseES5DatePortion):
(WTF::parseES5TimePortion):

  • wtf/FastMalloc.cpp:

(WTF::fastZeroedMalloc):
(WTF::fastStrDup):
(WTF::tryFastZeroedMalloc):
(WTF::isFastMallocEnabled):
(WTF::fastMallocGoodSize):
(WTF::fastAlignedMalloc):
(WTF::tryFastAlignedMalloc):
(WTF::fastAlignedFree):
(WTF::tryFastMalloc):
(WTF::fastMalloc):
(WTF::tryFastCalloc):
(WTF::fastCalloc):
(WTF::fastFree):
(WTF::fastRealloc):
(WTF::tryFastRealloc):
(WTF::releaseFastMallocFreeMemory):
(WTF::releaseFastMallocFreeMemoryForThisThread):
(WTF::fastMallocStatistics):
(WTF::fastMallocSize):
(WTF::fastCommitAlignedMemory):
(WTF::fastDecommitAlignedMemory):
(WTF::fastEnableMiniMode):
(WTF::fastDisableScavenger):
(WTF::fastMallocDumpMallocStats):
(WTF::AvoidRecordingScope::avoidRecordingCount):
(WTF::AvoidRecordingScope::AvoidRecordingScope):
(WTF::AvoidRecordingScope::~AvoidRecordingScope):
(WTF::MallocCallTracker::MallocSiteData::MallocSiteData):
(WTF::MallocCallTracker::singleton):
(WTF::MallocCallTracker::MallocCallTracker):
(WTF::MallocCallTracker::recordMalloc):
(WTF::MallocCallTracker::recordRealloc):
(WTF::MallocCallTracker::recordFree):
(WTF::MallocCallTracker::dumpStats):

  • wtf/HashTable.h:

(WTF::KeyTraits>::inlineLookup):
(WTF::KeyTraits>::lookupForWriting):
(WTF::KeyTraits>::fullLookupForWriting):
(WTF::KeyTraits>::add):

  • wtf/MetaAllocator.cpp:

(WTF::MetaAllocator::findAndRemoveFreeSpace):

  • wtf/ParallelJobsGeneric.cpp:
  • wtf/RandomDevice.cpp:

(WTF::RandomDevice::cryptographicallyRandomValues):

  • wtf/RawPointer.h:

(WTF::RawPointer::RawPointer):

  • wtf/RedBlackTree.h:
  • wtf/SHA1.cpp:

(WTF::SHA1::hexDigest):

  • wtf/SchedulePair.h:

(WTF::SchedulePair::SchedulePair):

  • wtf/StackTrace.cpp:

(WTFGetBacktrace):
(WTF::StackTrace::dump const):

  • wtf/StringExtras.h:

(strnstr):

  • wtf/Variant.h:
  • wtf/Vector.h:

(WTF::VectorBufferBase::deallocateBuffer):
(WTF::VectorBufferBase::releaseBuffer):
(WTF::VectorBufferBase::VectorBufferBase):

  • wtf/cf/CFURLExtras.cpp:

(WTF::createCFURLFromBuffer):
(WTF::getURLBytes):

  • wtf/cf/CFURLExtras.h:
  • wtf/cf/FileSystemCF.cpp:

(WTF::FileSystem::pathAsURL):

  • wtf/dtoa/double-conversion.cc:
  • wtf/dtoa/utils.h:

(WTF::double_conversion::BufferReference::BufferReference):

  • wtf/text/CString.cpp:

(WTF::CString::mutableData):

  • wtf/text/CString.h:
  • wtf/text/StringBuffer.h:

(WTF::StringBuffer::release):

  • wtf/text/StringImpl.cpp:

(WTF::StringImpl::createUninitializedInternal):
(WTF::StringImpl::reallocateInternal):

  • wtf/text/StringImpl.h:

(WTF::StringImpl::constructInternal<LChar>):
(WTF::StringImpl::constructInternal<UChar>):
(WTF::StringImpl::characters<LChar> const):
(WTF::StringImpl::characters<UChar> const):
(WTF::find):
(WTF::reverseFindLineTerminator):
(WTF::reverseFind):
(WTF::equalIgnoringNullity):
(WTF::codePointCompare):
(WTF::isSpaceOrNewline):
(WTF::lengthOfNullTerminatedString):
(WTF::StringImplShape::StringImplShape):
(WTF::StringImpl::isolatedCopy const):
(WTF::StringImpl::isAllASCII const):
(WTF::StringImpl::isAllLatin1 const):
(WTF::isAllSpecialCharacters):
(WTF::isSpecialCharacter const):
(WTF::StringImpl::StringImpl):
(WTF::StringImpl::create8BitIfPossible):
(WTF::StringImpl::createSubstringSharingImpl):
(WTF::StringImpl::createFromLiteral):
(WTF::StringImpl::tryCreateUninitialized):
(WTF::StringImpl::adopt):
(WTF::StringImpl::cost const):
(WTF::StringImpl::costDuringGC):
(WTF::StringImpl::setIsAtom):
(WTF::StringImpl::setHash const):
(WTF::StringImpl::ref):
(WTF::StringImpl::deref):
(WTF::StringImpl::copyCharacters):
(WTF::StringImpl::at const):
(WTF::StringImpl::allocationSize):
(WTF::StringImpl::maxInternalLength):
(WTF::StringImpl::tailOffset):
(WTF::StringImpl::requiresCopy const):
(WTF::StringImpl::tailPointer const):
(WTF::StringImpl::tailPointer):
(WTF::StringImpl::substringBuffer const):
(WTF::StringImpl::substringBuffer):
(WTF::StringImpl::assertHashIsCorrect const):
(WTF::StringImpl::StaticStringImpl::StaticStringImpl):
(WTF::StringImpl::StaticStringImpl::operator StringImpl&):
(WTF::equalIgnoringASCIICase):
(WTF::startsWithLettersIgnoringASCIICase):
(WTF::equalLettersIgnoringASCIICase):

  • wtf/text/TextBreakIterator.cpp:

(WTF::initializeIterator):
(WTF::setContextAwareTextForIterator):
(WTF::openLineBreakIterator):

  • wtf/text/TextBreakIterator.h:

(WTF::LazyLineBreakIterator::get):

  • wtf/text/WTFString.cpp:

(WTF::charactersToFloat):

  • wtf/text/cf/StringImplCF.cpp:

(WTF::StringWrapperCFAllocator::allocate):
(WTF::StringWrapperCFAllocator::create):
(WTF::StringImpl::createCFString):

  • wtf/text/icu/UTextProviderLatin1.cpp:

(WTF::uTextLatin1Clone):
(WTF::openLatin1ContextAwareUTextProvider):

  • wtf/text/icu/UTextProviderUTF16.cpp:

(WTF::openUTF16ContextAwareUTextProvider):

  • wtf/win/FileSystemWin.cpp:

(WTF::FileSystemImpl::makeAllDirectories):
(WTF::FileSystemImpl::storageDirectory):
(WTF::FileSystemImpl::openTemporaryFile):
(WTF::FileSystemImpl::openFile):
(WTF::FileSystemImpl::writeToFile):
(WTF::FileSystemImpl::readFromFile):
(WTF::FileSystemImpl::deleteNonEmptyDirectory):

  • wtf/win/LanguageWin.cpp:

(WTF::localeInfo):

  • wtf/win/MainThreadWin.cpp:

(WTF::initializeMainThreadPlatform):

  • wtf/win/OSAllocatorWin.cpp:

(WTF::OSAllocator::reserveUncommitted):
(WTF::OSAllocator::reserveAndCommit):

  • wtf/win/RunLoopWin.cpp:

(WTF::RunLoop::run):
(WTF::RunLoop::iterate):
(WTF::RunLoop::RunLoop):
(WTF::RunLoop::cycle):
(WTF::RunLoop::TimerBase::start):

  • wtf/win/ThreadingWin.cpp:

(WTF::Thread::establishHandle):

10:30 AM Changeset in webkit [261392] by eric.carlson@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION(r261341): imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/intrinsic_sizes.htm is failing
https://bugs.webkit.org/show_bug.cgi?id=211612
<rdar://problem/63024081>

Unreviewed test gardening.

10:14 AM Changeset in webkit [261391] by ysuzuki@apple.com
  • 9 edits
    1 add in trunk/LayoutTests

Code pattern in GC tests in LayoutTests is broken
https://bugs.webkit.org/show_bug.cgi?id=211595

Reviewed by Saam Barati.

LayoutTests have several tests which attempt to ensure that document is not leaked. But they are broken since these tests are not correctly
handling conservative GC of JavaScriptCore. These tests are taking a following approach.

  1. Allocate *one* iframe doing something inside it.
  2. Remove iframe from the parent document to make it released.
  3. Repeatedly invoke GC and test whether (1)'s document gets collected.

This is not the right approach. Since JavaScriptCore has conservative GC, it is easily possible that (1)'s pointer value remains in some of
conservative roots: CPU registers, stack etc. And JavaScriptCore conservative GC scans it and keeps it alive. The above approach makes the
test super flaky and any unrelated changes in JavaScriptCore and C compiler can make this test failed.

This is not a problem in practice. Web pages are executing various kind of code and they clobber conservative roots. However, tests in
LayoutTests are too simple to keep it alive accidentally.

The right approach for conservative GC is the following.

  1. Allocate *many* iframes doing something inside them with loop. By creating iframes with loop, for every iteration, it is likely that the same CPU registers and stack locations are overwritten by the last created iframe reference. This dramatically reduces the possibility for GC to find these addresses in conservative roots.
  2. Remove iframes from the parent document to make them released.
  3. Repeatedly invoke GC and test whether *one of (1) iframes* gets collected at least. Theoretically this is still possible that completely unrelated integer value in conservative roots can point to the reference of (1). By allocating many iframes in (1) and testing one of them, we can reduce the possibility of this conflict.

This patch adds testDocumentIsNotLeaked helper function to enforce this pattern. And rewrite broken tests with this helper to make it less-flaky.

  • highlight/highlight-world-leak.html:
  • http/tests/IndexedDB/collect-IDB-objects.https.html:
  • http/tests/media/clearkey/collect-webkit-media-session.html:
  • http/tests/media/media-stream/collect-media-devices.https.html:
  • http/tests/resources/gc.js: Added.

(window.gc.gcRec):
(window.gc.window.gc):
(nukeArray):
(async testDocumentIsNotLeaked):

  • intersection-observer/no-document-leak.html:
  • performance-api/performance-observer-no-document-leak.html:
  • resources/gc.js:

(nukeArray):
(async testDocumentIsNotLeaked):

  • webanimations/leak-document-with-web-animation.html:
10:13 AM Changeset in webkit [261390] by commit-queue@webkit.org
  • 6 edits in trunk

WKWebView.title should be safe browsing warning's title during a safe browsing warning
https://bugs.webkit.org/show_bug.cgi?id=211403

Patch by Alex Christensen <achristensen@webkit.org> on 2020-05-08
Reviewed by Tim Horton.

Source/WebKit:

Add a new property to PageLoadState, which allows the title to be set underneath it.
That way, once the safe browsing warning is closed, we can update the title to what it would've been,
including any changes that happened while the warning was open.

Covered by an API test. I also manually verified this fixes rdar://problem/56201982

  • UIProcess/PageLoadState.cpp:

(WebKit::PageLoadState::commitChanges):
(WebKit::PageLoadState::reset):
(WebKit::PageLoadState::didCommitLoad):
(WebKit::PageLoadState::title const):
(WebKit::PageLoadState::setTitleFromSafeBrowsingWarning):

  • UIProcess/PageLoadState.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm:

(TEST):

9:55 AM Changeset in webkit [261389] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Update message filtering rules in the WebContent process' sandbox
https://bugs.webkit.org/show_bug.cgi?id=211188

Reviewed by Brent Fulgham.

Based on telemetry and local testing, update the message filtering rules in the WebContent process' sandbox on iOS.
Messages that have not been observed being in use should be denied.

No new tests, covered by existing tests.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
9:48 AM Changeset in webkit [261388] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Turn processDidBecomeUnresponsive logging into error logging
https://bugs.webkit.org/show_bug.cgi?id=211629

Reviewed by Youenn Fablet.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::processDidBecomeUnresponsive):

9:33 AM Changeset in webkit [261387] by pvollan@apple.com
  • 4 edits in trunk/Source

[Cocoa] Close connections to Launch Services after revoking extension
https://bugs.webkit.org/show_bug.cgi?id=211594

Reviewed by Brent Fulgham.

Source/WebCore/PAL:

Declare _LSDService class.

  • pal/spi/cocoa/LaunchServicesSPI.h:

Source/WebKit:

In <https://trac.webkit.org/changeset/258915/webkit>, connections to the Launch Services database mapping
services were denied, by creating a temporary extension. After revoking this extension in the WebContent
process, it is important to close any open connections to Launch Services initiated by the mapping.

No new tests, covered by existing UTI/MIME type tests.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

9:23 AM Changeset in webkit [261386] by Darin Adler
  • 2 edits in trunk/Source/WTF

Make callBufferProducingFunction safer to use by adding a compile-time assertion
https://bugs.webkit.org/show_bug.cgi?id=211599

Reviewed by Ross Kirsling.

  • wtf/unicode/icu/ICUHelpers.h:

(WTF::CallBufferProducingFunction::argumentTuple): Add a static_assert that
checks these are just simple types, aside from the Vector for the buffer.
This would have caught the UpconvertedCharacters problem fixed earlier today.

9:17 AM Changeset in webkit [261385] by Andres Gonzalez
  • 3 edits in trunk/Source/WebCore

Fix for crashes in LayoutTests in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=211622

Reviewed by Chris Fleizach.

Several LayoutTests.

Return the root from the isolated tree when it is really ready.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::rootObject):

Some code cleanup.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::clickPoint):

9:16 AM WebKitEmacsTips edited by Philippe Normand
(diff)
9:03 AM WebKitEmacsTips created by Philippe Normand
8:55 AM WebKitGTK edited by Philippe Normand
(diff)
8:39 AM Changeset in webkit [261384] by don.olmstead@sony.com
  • 20 edits in trunk/Source/WTF

WTF headers should compile independently
https://bugs.webkit.org/show_bug.cgi?id=211608

Reviewed by Yusuke Suzuki.

When a WTF header is included on its own within a source file it should compile.
These issues were found when working on a tooling build for running static
analysis over WTF. Forward declarations were used whenever possible otherwise
an include was used.

Additionally fix some errors found by Clang 10.

  • wtf/AggregateLogger.h:
  • wtf/CallbackAggregator.h:
  • wtf/Dominators.h:
  • wtf/HashIterators.h:
  • wtf/IndexSparseSet.h:
  • wtf/LoggingHashMap.h:
  • wtf/LoggingHashTraits.h:
  • wtf/RunLoopTimer.h:
  • wtf/Stopwatch.h:
  • wtf/Threading.h:
  • wtf/cf/RunLoopTimerCF.cpp:
  • wtf/persistence/PersistentCoder.h:
  • wtf/text/LineBreakIteratorPoolICU.h:
  • wtf/text/NullTextBreakIterator.h:
  • wtf/text/StringOperators.h:
  • wtf/text/StringToIntegerConversion.h:
  • wtf/text/cf/TextBreakIteratorCF.h:
  • wtf/text/icu/TextBreakIteratorICU.h:
  • wtf/text/win/WCharStringExtras.h:
8:21 AM Changeset in webkit [261383] by Lauro Moura
  • 6 edits
    2 adds in trunk

[GTK][WPE] Create common glib expectation file
https://bugs.webkit.org/show_bug.cgi?id=211183

Reviewed by Carlos Garcia Campos.

Tools:

  • Scripts/webkitpy/port/gtk.py:

(GtkPort._search_paths): Add glib to expectations search path
(GtkPort.test_expectations_file_position): Update test

  • Scripts/webkitpy/port/gtk_unittest.py:

(GtkPortTest.test_default_baseline_search_path): Update test
(GtkPortTest.test_port_specific_expectations_files): Update test and
make check-webkit-style happier

  • Scripts/webkitpy/port/wpe.py:

(WPEPort._search_paths): Add glib to expectations search path
(WPEPort.test_expectations_file_position): Update test

  • Scripts/webkitpy/port/wpe_unittest.py:

(WPEPortTest.test_default_baseline_search_path): Update test
(WPEPortTest.test_port_specific_expectations_files): Update test and
make check-webkit-style happier

LayoutTests:

  • platform/glib/TestExpectations: Added.
8:02 AM Changeset in webkit [261382] by Simon Fraser
  • 13 edits in trunk

Overflow scrollers in iframes don't get mouseMovedInContentArea()
https://bugs.webkit.org/show_bug.cgi?id=211347
<rdar://problem/62784560>

Reviewed by Tim Horton.

Source/WebCore:

We never dispatched mouseMovedInContentArea() on ScrollableAreas in subframes, so overlay scrollbar
interactions there were broken. This is because the code ran from EventHandler::mouseMoved(), which
only runs for the main frame.

Instead, move the mouseMovedInContentArea() dispatch down into updateMouseEventTargetNode() which
is run for each subframe. notifyScrollableAreasOfMouseEvents() takes an event name so we only dispatch
for mouseMove events. There's some complexity here related to whether the old and new ScrollableArea
targets are nested; this code doesn't try to do the right thing with nesting, but does handle the mouse
moving between the scrollable main frame and an overflow region.

enclosingScrollableArea() is fixed to return the FrameView. enclosingScrollableLayer() is flawed, as noted
in the RenderLayer.h comment.

Tests: fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-hovered.html

fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-reveal.html

  • page/EventHandler.cpp:

(WebCore::EventHandler::enclosingScrollableArea):
(WebCore::EventHandler::mouseMoved):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::pointerCaptureElementDidChange):
(WebCore::EventHandler::updateMouseEventTargetNode):
(WebCore::EventHandler::notifyScrollableAreasOfMouseEvents):
(WebCore::EventHandler::dispatchMouseEvent):
(WebCore::enclosingScrollableArea): Deleted.
(WebCore::EventHandler::notifyScrollableAreasOfMouseEnterExit): Deleted.

  • page/EventHandler.h:
  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::dispatchSyntheticMouseOut):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::debugDescription const):

  • rendering/RenderLayer.h:

LayoutTests:

The ordering of callbacks in the scroll-animator tests changed, but in ways that don't materially
affect behavior. Two new real overlay scrollbar tests.

  • fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-hovered-expected.txt: Added.
  • fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-hovered.html: Added.
  • fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-reveal-expected.txt: Added.
  • fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-reveal.html: Added.
  • fast/scrolling/scroll-animator-basic-events-expected.txt:
  • fast/scrolling/scroll-animator-overlay-scrollbars-clicked-expected.txt:
  • fast/scrolling/scroll-animator-overlay-scrollbars-hovered-expected.txt:
  • fast/scrolling/scroll-animator-select-list-events-expected.txt:
7:24 AM Changeset in webkit [261381] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

Flaky Test: media/track/track-in-band-metadata-display-order.html
https://bugs.webkit.org/show_bug.cgi?id=206226

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
7:08 AM Changeset in webkit [261380] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ macOS wk2 ] http/tests/IndexedDB/collect-IDB-objects.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207571

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
7:02 AM Changeset in webkit [261379] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] http/tests/cache-storage/cache-representation.https.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=207665

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
7:02 AM Changeset in webkit [261378] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][TFC] The fixed logical width should be used as the max width for a cell
https://bugs.webkit.org/show_bug.cgi?id=211610

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/table-simple-with-fixed-widht-and-inline-content.html

  • layout/tableformatting/TableFormattingContextGeometry.cpp:

(WebCore::Layout::TableFormattingContext::Geometry::intrinsicWidthConstraintsForCell):

LayoutTests:

  • fast/layoutformattingcontext/table-simple-with-fixed-widht-and-inline-content-expected.txt: Added.
  • fast/layoutformattingcontext/table-simple-with-fixed-widht-and-inline-content.html: Added.
6:51 AM Changeset in webkit [261377] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: [ iOS wk2 ] fast/forms/input-text-scroll-left-on-blur.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209812

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
6:46 AM Changeset in webkit [261376] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mojave wk1 Release ] platform/mac/media/media-source/videoplaybackquality-decompressionsession.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209866

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
5:42 AM Changeset in webkit [261375] by youenn@apple.com
  • 13 edits
    1 copy
    4 adds in trunk/Source

Handle remote audio capture IPC messages in a background thread
https://bugs.webkit.org/show_bug.cgi?id=211583

Reviewed by Eric Carlson.

Source/WebCore:

  • platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.cpp:

(WebCore::AudioMediaStreamTrackRendererCocoa::pushSamples):
Add assertion to check that we are not running on the main thread.

Source/WebKit:

We introduce RemoteCaptureSampleManager which is responsible to get remote capture sample IPC messages and treat them from a background thread.
It is currently used to handle audio capture IPC messages.
We move UserMediaCaptureManager::Source in its own file and rename it to RemoteRealtimeMediaSource.

Covered by existing tests.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • PlatformMac.cmake:
  • SourcesCocoa.txt:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp: Added.

(WebKit::RemoteCaptureSampleManager::RemoteCaptureSampleManager):
(WebKit::RemoteCaptureSampleManager::~RemoteCaptureSampleManager):
(WebKit::RemoteCaptureSampleManager::setConnection):
(WebKit::RemoteCaptureSampleManager::addSource):
(WebKit::RemoteCaptureSampleManager::removeSource):
(WebKit::RemoteCaptureSampleManager::dispatchToThread):
(WebKit::RemoteCaptureSampleManager::storageChanged):
(WebKit::RemoteCaptureSampleManager::audioSamplesAvailable):

  • WebProcess/cocoa/RemoteCaptureSampleManager.h: Added.
  • WebProcess/cocoa/RemoteCaptureSampleManager.messages.in: Added.
  • WebProcess/cocoa/RemoteRealtimeMediaSource.cpp: Added.

(WebKit::RemoteRealtimeMediaSource::RemoteRealtimeMediaSource):
(WebKit::RemoteRealtimeMediaSource::~RemoteRealtimeMediaSource):
(WebKit::RemoteRealtimeMediaSource::whenReady):
(WebKit::RemoteRealtimeMediaSource::didFail):
(WebKit::RemoteRealtimeMediaSource::setAsReady):
(WebKit::RemoteRealtimeMediaSource::clone):
(WebKit::RemoteRealtimeMediaSource::setCapabilities):
(WebKit::RemoteRealtimeMediaSource::setSettings):
(WebKit::RemoteRealtimeMediaSource::remoteAudioSamplesAvailable):
(WebKit::RemoteRealtimeMediaSource::remoteVideoSampleAvailable):
(WebKit::RemoteRealtimeMediaSource::connection):
(WebKit::RemoteRealtimeMediaSource::startProducingData):
(WebKit::RemoteRealtimeMediaSource::stopProducingData):
(WebKit::RemoteRealtimeMediaSource::setShouldApplyRotation):
(WebKit::RemoteRealtimeMediaSource::capabilities):
(WebKit::RemoteRealtimeMediaSource::applyConstraints):
(WebKit::RemoteRealtimeMediaSource::applyConstraintsSucceeded):
(WebKit::RemoteRealtimeMediaSource::applyConstraintsFailed):
(WebKit::RemoteRealtimeMediaSource::hasEnded):
(WebKit::RemoteRealtimeMediaSource::stopBeingObserved):
(WebKit::RemoteRealtimeMediaSource::requestToEnd):

  • WebProcess/cocoa/RemoteRealtimeMediaSource.h: Added.

(WebKit::RemoteRealtimeMediaSource::identifier const):
(WebKit::RemoteRealtimeMediaSource::settings const):
(WebKit::RemoteRealtimeMediaSource::setShouldCaptureInGPUProcess):
(WebKit::RemoteRealtimeMediaSource::shouldCaptureInGPUProcess const):

  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::createCaptureSource):
(WebKit::UserMediaCaptureManager::cloneSource):
(WebKit::UserMediaCaptureManager::cloneVideoSource):
(WebKit::UserMediaCaptureManager::AudioFactory::createAudioCaptureSource):
(WebKit::UserMediaCaptureManager::AudioFactory::setShouldCaptureInGPUProcess):
(WebKit::UserMediaCaptureManager::VideoFactory::createVideoCaptureSource):
(WebKit::UserMediaCaptureManager::DisplayFactory::createDisplayCaptureSource):

  • WebProcess/cocoa/UserMediaCaptureManager.h:
  • WebProcess/cocoa/UserMediaCaptureManager.messages.in:
4:55 AM WebKitGTK/2.28.x edited by aboya@igalia.com
(diff)
4:36 AM Changeset in webkit [261374] by Paulo Matos
  • 2 edits in trunk/Tools

Add myself as committer to contributors.json

Patch by Paulo Matos <Paulo Matos> on 2020-05-08

  • Scripts/webkitpy/common/config/contributors.json:
3:54 AM Changeset in webkit [261373] by youenn@apple.com
  • 20 edits in trunk

Video capture does not get unmuted in case of tab switch on iOS
https://bugs.webkit.org/show_bug.cgi?id=211509

Reviewed by Eric Carlson.

Source/WebCore:

Remove setInterrupted and related code.
Instead, directly use setMuted(true/false) of the source of capture tracks.
To ensure we validate that the active source is tied to a track of the document,
we add RealtimeSource::isSameAs which handles the case of a RealtimeVideoSource wrapping an AVVideoCaptureSource.
There might be multiple video tracks with each one its RealtimeVideoSource using the same AVVideoCaptureSource.
We mute the AVVideoCaptureSource directly to make sure all linked tracks will get muted/unmuted at the same time.
Tests to be fixed.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::MediaStreamTrack):
(WebCore::isSourceCapturingForDocument):
(WebCore::MediaStreamTrack::updateCaptureAccordingToMutedState):

  • Modules/mediastream/MediaStreamTrack.h:
  • dom/Document.cpp:

(WebCore::Document::visibilityStateChanged):

  • platform/mediastream/RealtimeMediaSource.cpp:
  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/RealtimeMediaSourceCenter.cpp:
  • platform/mediastream/RealtimeMediaSourceCenter.h:
  • platform/mediastream/RealtimeMediaSourceFactory.h:
  • platform/mediastream/RealtimeVideoSource.h:
  • platform/mediastream/ios/CoreAudioCaptureSourceIOS.mm:
  • platform/mediastream/mac/CoreAudioCaptureSource.h:
  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
  • platform/mock/MockRealtimeMediaSourceCenter.cpp:

Source/WebKit:

Remove no longer needed code.

  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::VideoFactory::setActiveSource):

  • WebProcess/cocoa/UserMediaCaptureManager.h:

LayoutTests:

  • platform/ios/TestExpectations:

Disable GPU process test since we are not able yet to mute/unmute handle multiple video tracks
with different sources as can be done if capture is done out of process.

  • platform/ios/mediastream/video-muted-in-background-tab.html:

Update test to ensure the track is producing content.

3:23 AM Changeset in webkit [261372] by Pablo Saavedra
  • 2 edits in trunk/JSTests

Unreviewed, reverting r261010.

Test skipped for all ARM. no evidence of this affecting iOS

Reverted changeset:

"Skip on ARM and MIPS stress/array-buffer-view-watchpoint-can-
be-fired-in-really-add-in-dfg.js added after r260990"
https://bugs.webkit.org/show_bug.cgi?id=211304
https://trac.webkit.org/changeset/261010

1:52 AM WebKitGTK/2.28.x edited by Philippe Normand
(diff)
1:49 AM WebKitGTK/2.28.x edited by Philippe Normand
(diff)
1:47 AM Changeset in webkit [261371] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

Unreviewed. Fix GTK4 build after r261370

  • UIProcess/API/gtk/WebKitScriptDialogGtk.cpp:

(webkitScriptDialogIsUserHandled):

1:21 AM Changeset in webkit [261370] by Lauro Moura
  • 6 edits in trunk/Source/WebKit

[WPE][WebDriver] Implement user prompt support
https://bugs.webkit.org/show_bug.cgi?id=207372

Reviewed by Carlos Garcia Campos.

Provide a default implementation for WebDriver dialog commands.
This implementation will mimic the expected browser behavior of
accepting/dismissing the dialogs, while not exposing any new API.

  • UIProcess/API/glib/WebKitScriptDialogPrivate.h:
  • Expose new private function to check whether the dialog is using a

default implementation or is handled by the user.

  • UIProcess/API/glib/WebKitWebView.cpp:
  • Avoid default WebDriver behavior if the dialog is user-handled.

(webkitWebViewSetCurrentScriptDialogUserInput):
(webkitWebViewAcceptCurrentScriptDialog):
(webkitWebViewDismissCurrentScriptDialog):

  • UIProcess/API/gtk/WebKitScriptDialogGtk.cpp:

(webkitScriptDialogIsUserHandled):

  • Return whether the dialog is user handled.
  • UIProcess/API/wpe/WebKitScriptDialogWPE.cpp:
  • Added basic behavior for the WebDriver dialog callbacks for WPE.

(webkitScriptDialogAccept):
(webkitScriptDialogDismiss):
(webkitScriptDialogSetUserInput):
(webkitScriptDialogIsUserHandled):

  • UIProcess/API/wpe/WebKitWebViewWPE.cpp:

(webkitWebViewScriptDialog):

  • Hold a dialog ref if the webview is controlled by automation and ends

up calling the default "script-dialog" event handler.

1:06 AM Changeset in webkit [261369] by Diego Pino Garcia
  • 3 edits
    1 add in trunk/LayoutTests

[GTK][WPE] Gardening, update expectations and baselines after r261341
https://bugs.webkit.org/show_bug.cgi?id=211616

Unreviewed gardening.

  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/intrinsic_sizes-expected.txt: Added.
  • platform/wpe/TestExpectations:

May 7, 2020:

10:48 PM Changeset in webkit [261368] by Simon Fraser
  • 5 edits
    4 adds in trunk

MayBegin wheel event in a <select> doesn't flash the scrollers
https://bugs.webkit.org/show_bug.cgi?id=211605

Reviewed by Antti Koivisto.

Source/WebCore:

We need to special-case scrollable <select> elements, because they are ScrollableAreas
which are never asynchronously scrolled, so the ScrollingTree never dispatches the handleWheelEventPhase()
which is necessary to flash overlay scrollbars. Scrollable <select> elements are always in the
non-fast scrollable region.

Fix findEnclosingScrollableContainer() to return a ScrollableArea for the "maybegin" and "canceled" events
that have no delta.

Remove some "inline" and make some things references.

Tests: fast/scrolling/mac/scrollbars/select-overlay-scrollbar-hovered.html

fast/scrolling/mac/scrollbars/select-overlay-scrollbar-reveal.html

  • page/EventHandler.cpp:

(WebCore::handleWheelEventPhaseInScrollableArea):
(WebCore::didScrollInScrollableArea):
(WebCore::handleWheelEventInAppropriateEnclosingBox):
(WebCore::shouldGesturesTriggerActive):
(WebCore::EventHandler::eventLoopHandleMouseUp):
(WebCore::EventHandler::eventLoopHandleMouseDragged):

  • page/mac/EventHandlerMac.mm:

(WebCore::findEnclosingScrollableContainer):
(WebCore::EventHandler::determineWheelEventTarget):

  • testing/Internals.cpp:

(WebCore::Internals::scrollableAreaForNode): Fix to find the ScrollableArea for RenderListBoxes.

LayoutTests:

  • fast/scrolling/mac/scrollbars/select-overlay-scrollbar-hovered-expected.txt: Added.
  • fast/scrolling/mac/scrollbars/select-overlay-scrollbar-hovered.html: Added.
  • fast/scrolling/mac/scrollbars/select-overlay-scrollbar-reveal-expected.txt: Added.
  • fast/scrolling/mac/scrollbars/select-overlay-scrollbar-reveal.html: Added.
9:23 PM Changeset in webkit [261367] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GTK] Gardening two poster tests and a webgl failure

Unreviewed test gardening.

  • platform/gtk/TestExpectations:
7:33 PM Changeset in webkit [261366] by jiewen_tan@apple.com
  • 7 edits
    1 add in trunk

[WebAuthn] Roll back newly created credentials if an error occurs
https://bugs.webkit.org/show_bug.cgi?id=183530
<rdar://problem/43357305>

Reviewed by Brent Fulgham.

Source/WebKit:

We should clean up any newly created credentials if an error occurs before the relying party
registers the identity. Otherwise we are left with a dangling credential.

Covered by API tests.

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.h:
  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserVerification):
(WebKit::LocalAuthenticator::continueGetAssertionAfterUserVerification):
(WebKit::LocalAuthenticator::receiveException const):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-la-no-attestation.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-la.html:
7:22 PM Changeset in webkit [261365] by sbarati@apple.com
  • 2 edits in trunk/Tools

run-javascriptcore-tests with remote should be verbose
https://bugs.webkit.org/show_bug.cgi?id=211596

Reviewed by Alexey Proskuryakov.

Our iOS testing bots could use this better output.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests):

7:14 PM Changeset in webkit [261364] by Chris Dumez
  • 11 edits in trunk/Source

Unreviewed, reverting r261252.

Reland r260684 now that a proper fix has landed in Reader

Reverted changeset:

"REGRESSION (r260684): Reader background is lost after
multitasking"
https://bugs.webkit.org/show_bug.cgi?id=211533
https://trac.webkit.org/changeset/261252

6:54 PM Changeset in webkit [261363] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

SIGILL @ WebCore::Shape::createRasterShape -- DOS ASAN
https://bugs.webkit.org/show_bug.cgi?id=211539

Patch by Pinki Gyanchandani <pgyanchandani@apple.com> on 2020-05-07
Reviewed by Geoffrey Garen.

Source/WebCore:

Removed the RELEASE_ASSERT because its possible for imageData to be null when imageRect size is huge value.

Test: fast/shapes/shape-outside-floats/shape-outside-imagedata-overflow.html

  • rendering/shapes/Shape.cpp:

(WebCore::Shape::createRasterShape):

LayoutTests:

Added a regression test and enabled it only for WK1.

  • TestExpectations:
  • fast/shapes/shape-outside-floats/shape-outside-imagedata-overflow-expected.txt: Added.
  • fast/shapes/shape-outside-floats/shape-outside-imagedata-overflow.html: Added.
  • platform/ios-wk1/TestExpectations:
  • platform/mac-wk1/TestExpectations:
6:04 PM Changeset in webkit [261362] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Timelines: visible outline after clicking the close X button
https://bugs.webkit.org/show_bug.cgi?id=211604
<rdar://problem/62998871>

Reviewed by Timothy Hatcher.

Never display focus outline for TreeOutline items.

  • UserInterface/Views/TreeOutline.css:

(.tree-outline .item):
(body:not(.window-inactive, .window-docked-inactive) .tree-outline:focus-within .item.selected):

5:39 PM Changeset in webkit [261361] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Build Fix for MacCatalyst
https://bugs.webkit.org/show_bug.cgi?id=211601

Reviewed by Tim Horton.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _removeContextMenuViewIfPossible]):

4:54 PM Changeset in webkit [261360] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Crash under WebKit::XPCServiceMain
https://bugs.webkit.org/show_bug.cgi?id=211600
<rdar://problem/62875458>

Reviewed by Darin Adler.

Made the following changes:

  • Crash under strcmp() could in theory happen if expectedBundleVersion.UTF8String was null, which could happen if expectedBundleVersion was null. I now use higher level String types for the versions, make sure they are not null and use String comparison to compare them.
  • Call CRASH() instead of builtin_trap(), to guarantee that we crash with a SIGTRAP (see comment next to CRASH() macro).
  • Move CRASH() call to a crashDueWebKitFrameworkVersionMismatch() never inlined function to make it clear when it crashes due to a framework version mismatch and distinguish from proper crashes.
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:

(WebKit::crashDueWebKitFrameworkVersionMismatch):
(WebKit::XPCServiceMain):

4:52 PM Changeset in webkit [261359] by Alan Coon
  • 12 edits
    8 deletes in branches/safari-610.1.12-branch

Revert r261056. rdar://problem/62937746

4:52 PM Changeset in webkit [261358] by Alan Coon
  • 539 edits
    19 adds
    160 deletes in branches/safari-610.1.12-branch/Source/ThirdParty/ANGLE

Cherry-pick r261262. rdar://problem/62998321

Update ANGLE to 2020-03-27
https://bugs.webkit.org/show_bug.cgi?id=209689

Reverting r259589. It caused
https://bugs.webkit.org/show_bug.cgi?id=210992

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

4:50 PM Changeset in webkit [261357] by Alan Coon
  • 2 edits in branches/safari-610.1.12-branch/Source/WebKit

Revert r260390. rdar://problem/62998314

4:50 PM Changeset in webkit [261356] by Alan Coon
  • 2 edits in branches/safari-610.1.12-branch/Source/WebInspectorUI

Cherry-pick r261183. rdar://problem/62995520

Web Inspector: Uncaught Exception: undefined is not an object (evaluating 'this.InspectorAgent.initialized')
https://bugs.webkit.org/show_bug.cgi?id=211434

Reviewed by Joseph Pecoraro.

  • UserInterface/Protocol/Target.js: (WI.Target.prototype.initialize): Worker targets don't (and are not expected to) have an Inspector domain.

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

4:50 PM Changeset in webkit [261355] by Alan Coon
  • 22 edits
    2 deletes in branches/safari-610.1.12-branch/Source/WebInspectorUI

Cherry-pick r261108. rdar://problem/62995520

Web Inspector: drop support for iOS 8.*
https://bugs.webkit.org/show_bug.cgi?id=211312

Reviewed by Daniel Bates.

  • UserInterface/Controllers/DOMManager.js: (WI.DOMManager.prototype.highlightSelector):
  • UserInterface/Controllers/NetworkManager.js: (WI.NetworkManager.prototype.resourceRequestWillBeSent):
  • UserInterface/Controllers/RuntimeManager.js: (WI.RuntimeManager.prototype.initializeTarget): (WI.RuntimeManager.prototype.evaluateInInspectedWindow):
  • UserInterface/Controllers/TimelineManager.js: (WI.TimelineManager.defaultTimelineTypes): (WI.TimelineManager.prototype._loadNewRecording):
  • UserInterface/Models/DOMNodeStyles.js: (WI.DOMNodeStyles.parseSelectorListPayload):
  • UserInterface/Models/FPSInstrument.js: (WI.FPSInstrument): Deleted. (WI.FPSInstrument.supported): Deleted.
  • UserInterface/Models/ObjectPreview.js: (WI.ObjectPreview.fromPayload):
  • UserInterface/Models/ProfileNode.js: (WI.ProfileNode): (WI.ProfileNode.prototype.get startTime): (WI.ProfileNode.prototype.get endTime): (WI.ProfileNode.prototype.computeCallInfoForTimeRange): (WI.ProfileNode.prototype.get calls): Deleted. (WI.ProfileNode.prototype.computeCallInfoForTimeRange.totalTimeInRange): Deleted.
  • UserInterface/Models/Resource.js: (WI.Resource.prototype.get initiatedResources): (WI.Resource.prototype.get originalRequestWillBeSentTimestamp): Deleted.
  • UserInterface/Models/ResourceTimingData.js: (WI.ResourceTimingData.fromPayload):
  • UserInterface/Models/ScriptTimelineRecord.js: (WI.ScriptTimelineRecord.prototype._initializeProfileFromPayload.profileNodeFromPayload):
  • UserInterface/Models/TimelineRecording.js: (WI.TimelineRecording): (WI.TimelineRecording.prototype.computeElapsedTime): (WI.TimelineRecording.prototype.setLegacyBaseTimestamp): Deleted.
  • UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js: Removed.
  • UserInterface/Protocol/RemoteObject.js: (WI.RemoteObject.fromPayload): (WI.RemoteObject.prototype.getDisplayablePropertyDescriptors):
  • UserInterface/Protocol/Target.js: (WI.Target.prototype.initialize):
  • UserInterface/Views/ObjectTreePropertyTreeElement.js: (WI.ObjectTreePropertyTreeElement.prototype._updateProperties): (WI.ObjectTreePropertyTreeElement):
  • UserInterface/Views/ObjectTreeView.js: (WI.ObjectTreeView.prototype._updateProperties):
  • UserInterface/Views/ScriptTimelineDataGridNode.js: (WI.ScriptTimelineDataGridNode.prototype.get data):
  • UserInterface/Views/SourceCodeTextEditor.js: (WI.SourceCodeTextEditor.prototype._createTypeTokenAnnotator): (WI.SourceCodeTextEditor.prototype._createBasicBlockAnnotator):
  • UserInterface/Views/SourcesNavigationSidebarPanel.js: (WI.SourcesNavigationSidebarPanel.prototype._updatePauseReasonSection):
  • UserInterface/Views/TimelineOverview.js: (WI.TimelineOverview):
  • UserInterface/Views/TimelineTabContentView.js: (WI.TimelineTabContentView): (WI.TimelineTabContentView.prototype.closed): (WI.TimelineTabContentView.prototype.restoreFromCookie):
  • Versions/Inspector-iOS-8.0.json: Removed.

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

4:50 PM Changeset in webkit [261354] by Alan Coon
  • 13 edits
    1 add in branches/safari-610.1.12-branch

Cherry-pick r261296. rdar://problem/62995467

Unreviewed, reverting r260769.
https://bugs.webkit.org/show_bug.cgi?id=211578

Introduced regressions related to sharing (Requested by
perarne on #webkit).

Reverted changeset:

"[Cocoa] After r258891, r255119 can be reverted"
https://bugs.webkit.org/show_bug.cgi?id=211083
https://trac.webkit.org/changeset/260769

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

4:50 PM Changeset in webkit [261353] by Alan Coon
  • 2 edits in branches/safari-610.1.12-branch/Source/WebKit

Cherry-pick r261263. rdar://problem/62995496

Unreviewed, reverting r260689.
https://bugs.webkit.org/show_bug.cgi?id=211542

"Caused regressions deleting text and filling password fields"
(Requested by ddkilzer on #webkit).

Reverted changeset:

"WebPasteboardProxy::getPasteboardStringsForType() and
WebPasteboardProxy::readURLFromPasteboard() should check
return value of SharedMemory::createHandle()"
https://bugs.webkit.org/show_bug.cgi?id=211002
https://trac.webkit.org/changeset/260689

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

4:50 PM Changeset in webkit [261352] by Alan Coon
  • 11 edits in branches/safari-610.1.12-branch/Source

Cherry-pick r261252. rdar://problem/62995461

REGRESSION (r260684): Reader background is lost after multitasking
https://bugs.webkit.org/show_bug.cgi?id=211533
<rdar://problem/62941837>

Unreviewed, revert r260684 due to regression.

Source/WebCore:

  • dom/EventTarget.cpp: (WebCore::EventTarget::fireEventListeners):
  • page/FrameView.cpp: (WebCore::FrameView::sendResizeEventIfNeeded):
  • page/Page.h: (WebCore::Page::shouldFireResizeEvents const): (WebCore::Page::setShouldFireResizeEvents):

Source/WebKit:

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setShouldFireResizeEvents):
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKApplicationStateTrackingView.mm: (-[WKApplicationStateTrackingView _willBeginSnapshotSequence]): (-[WKApplicationStateTrackingView _didCompleteSnapshotSequence]):
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setShouldFireResizeEvents):
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

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

4:50 PM Changeset in webkit [261351] by Alan Coon
  • 2 edits in branches/safari-610.1.12-branch/Source/WebCore

Cherry-pick r261245. rdar://problem/62995531

REGRESSION (r260753): Frequent crashes under TextIndicator's estimatedTextColorsForRange
https://bugs.webkit.org/show_bug.cgi?id=211523
<rdar://problem/62860203>

Reviewed by Darin Adler.

  • page/TextIndicator.cpp: (WebCore::estimatedTextColorsForRange): TextIterator's node() getter can return null. r260753 accidentally refactored away the null check.

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

4:50 PM Changeset in webkit [261350] by Alan Coon
  • 13 edits
    4 adds in branches/safari-610.1.12-branch

Cherry-pick r261147. rdar://problem/62995512

[JSC] DFG NotCellUse is used without considering about BigInt32
https://bugs.webkit.org/show_bug.cgi?id=211395

Reviewed by Saam Barati.

JSTests:

  • stress/non-cell-nor-bigint-should-be-emitted-for-to-number-target-if-bigint-appears.js: Added. (shouldThrow): (test): (i.shouldThrow):
  • stress/non-cell-nor-bigint-should-reject-bigint.js: Added. (shouldBe): (test):
  • stress/should-not-emit-double-rep-for-bigint.js: Added. (foo):
  • stress/urshift-value-to-int32-should-reject-bigint.js: Added. (shouldThrow): (test): (i.shouldThrow):

Source/JavaScriptCore:

When we see CompareXXX(BigInt32, Double), we are emitting CompareXXX(DoubleRep(BigInt:NotCellUse), Double). But this has two problems.

  1. We should emit CompareXXX(UntypedUse, UntypedUse) in this case.
  2. DoubleRep(NotCellUse) does not support converting BigInt32 to double. Since DoubleRep's semantics is for ToNumber, it should not accept BigInt32 since it should throw an error. However, DoubleRep currently assumes that NotCellUse value can be converted to double without any errors.

To keep DoubleRep's semantics ToNumber, we replace NotCellUse with NotCellNorBigIntUse, which rejects BigInt32. This patch also uses NotCellNorBigIntUse
for ValueToInt32 because of the same reason.

For CompareXXX and CompareEq nodes, we can optimize it if we introduce new DoubleRepAcceptingBigInt32 DFG node which can convert BigInt32 to Double, since
CompareXXX and CompareEq are not requiring toNumber semantics. This should be done in a separate bug https://bugs.webkit.org/show_bug.cgi?id=211407.

  • bytecode/SpeculatedType.h: (JSC::isNotCellNorBigIntSpeculation):
  • dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
  • dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode): (JSC::DFG::FixupPhase::fixIntConvertingEdge): (JSC::DFG::FixupPhase::fixupChecksInBlock):
  • dfg/DFGNode.h: (JSC::DFG::Node::shouldSpeculateNotCellNorBigInt):
  • dfg/DFGSafeToExecute.h: (JSC::DFG::SafeToExecuteEdge::operator()):
  • dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileValueToInt32): (JSC::DFG::SpeculativeJIT::compileDoubleRep): (JSC::DFG::SpeculativeJIT::speculateNotCellNorBigInt): (JSC::DFG::SpeculativeJIT::speculate):
  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGUseKind.cpp: (WTF::printInternal):
  • dfg/DFGUseKind.h: (JSC::DFG::typeFilterFor): (JSC::DFG::checkMayCrashIfInputIsEmpty):
  • ftl/FTLCapabilities.cpp: (JSC::FTL::canCompile):
  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileDoubleRep): (JSC::FTL::DFG::LowerDFGToB3::compileValueToInt32): (JSC::FTL::DFG::LowerDFGToB3::numberOrNotCellNorBigIntToInt32): (JSC::FTL::DFG::LowerDFGToB3::speculate): (JSC::FTL::DFG::LowerDFGToB3::speculateNotCellNorBigInt): (JSC::FTL::DFG::LowerDFGToB3::numberOrNotCellToInt32): Deleted.

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

4:50 PM Changeset in webkit [261349] by Alan Coon
  • 2 edits in branches/safari-610.1.12-branch/Source/WebKit

Cherry-pick r261146. rdar://problem/62995486

REGRESSION (r260791?): Assert not reached in ResourceLoadStatisticsDatabaseStore::openAndUpdateSchemaIfNecessary() and ResourceLoadStatisticsDatabaseStore::addMissingTablesIfNecessary()
https://bugs.webkit.org/show_bug.cgi?id=211305
<rdar://problem/62737871>

Reviewed by Alex Christensen.

This patch adds a busy timeout for the ITP database to allow for
some concurrency flexibility when running many WebKitTestRunner tests, which
recreate the ITP database store very often to test both the memory and
database stores.

With the timeout, an attempt to write to the database when another
thread is holding the lock will keep attempting to insert for 5
seconds as long as the statement execution returns SQLITE_BUSY.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: (WebKit::ResourceLoadStatisticsDatabaseStore::openITPDatabase):

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

4:50 PM Changeset in webkit [261348] by Alan Coon
  • 2 edits in branches/safari-610.1.12-branch/LayoutTests

Cherry-pick r261122. rdar://problem/62995479

REGRESSION (r261109): [ Mac ] inspector/css/getAllStyleSheets.html is failing
https://bugs.webkit.org/show_bug.cgi?id=211405
<rdar://problem/62863843>

Unreviewed, remove unnecessary call to function that no longer exists.

  • inspector/css/getAllStyleSheets.html:

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

4:50 PM Changeset in webkit [261347] by Alan Coon
  • 2 edits in branches/safari-610.1.12-branch/LayoutTests

Cherry-pick r261121. rdar://problem/62995508

REGRESSION (r261108): [ Mac ] inspector/timeline/timeline-recording.html is failing
https://bugs.webkit.org/show_bug.cgi?id=211404
<rdar://problem/62863766>

Unreviewed, update test expectation.

  • inspector/timeline/timeline-recording-expected.txt:

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

4:50 PM Changeset in webkit [261346] by Alan Coon
  • 2 edits in branches/safari-610.1.12-branch/Source/WebKit

Cherry-pick r261187. rdar://problem/62993016

Check for app-bound domains should confirm WKAppBoundDomains key exists when checking for default app-bound protocols.
https://bugs.webkit.org/show_bug.cgi?id=211451
<rdar://problem/62715316

Reviewed by Brent Fulgham.

Checks for WKAppBoundDomains key before treating a protocol as
app-bound. This is a regression in expected behavior after making
In-App Browser privacy opt-in based on the presence of the key.

Also moves the check for special protocols inside of the completion handler for
ensureAppBoundDomains to make sure the check for the key has finished.

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: (WebKit::WebsiteDataStore::beginAppBoundDomainCheck): Added a comment to clarify why we need to check for both an empty app-bound domains list and the presence of the key for testing purposes.

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

4:50 PM Changeset in webkit [261345] by Alan Coon
  • 3 edits in branches/safari-610.1.12-branch/Source/WebKit

Cherry-pick r261140. rdar://problem/62993055

[iOS] Make sure TestController::statisticsResetToConsistentState() does not hang due to process suspension
https://bugs.webkit.org/show_bug.cgi?id=211421

Reviewed by Maciej Stachowiak.

We have evidence of hangs in TestController::statisticsResetToConsistentState() on iOS and we suspect it
is due to process suspension. To address the issue, this patch updates the IPCs being sent as a result of
a call to statisticsResetToConsistentState() to take a background assertion while waiting for the IPC
response.

  • UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::setUseITPDatabase): (WebKit::NetworkProcessProxy::resetCacheMaxAgeCapForPrevalentResources): (WebKit::NetworkProcessProxy::resetParametersToDefaultValues): (WebKit::NetworkProcessProxy::scheduleClearInMemoryAndPersistent): (WebKit::NetworkProcessProxy::resetCrossSiteLoadsWithLinkDecorationForTesting): (WebKit::NetworkProcessProxy::setShouldDowngradeReferrerForTesting): (WebKit::NetworkProcessProxy::setShouldBlockThirdPartyCookiesForTesting): (WebKit::NetworkProcessProxy::setShouldEnbleSameSiteStrictEnforcementForTesting): (WebKit::NetworkProcessProxy::setFirstPartyWebsiteDataRemovalModeForTesting):
  • UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::setShouldBlockThirdPartyCookiesForTesting):

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

4:22 PM Changeset in webkit [261344] by Devin Rousso
  • 5 edits in trunk

Web Inspector: Uncaught Exception: TypeError: null is not an object (evaluating 'mimeType.endsWith')
https://bugs.webkit.org/show_bug.cgi?id=211593

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

  • UserInterface/Views/ResourceClusterContentView.js:

(WI.ResourceClusterContentView.prototype._normalizeMIMETypeForDOM):

LayoutTests:

  • inspector/unit-tests/mimetype-utilities.html:
  • inspector/unit-tests/mimetype-utilities-expected.txt:

Add some tests for parseMIMEType.

4:17 PM Changeset in webkit [261343] by youenn@apple.com
  • 8 edits in trunk/Source

Remove AudioMediaStreamTrackRenderer::muted
https://bugs.webkit.org/show_bug.cgi?id=211289

Reviewed by Eric Carlson.

Source/WebCore:

  • platform/mediastream/AudioMediaStreamTrackRenderer.h:

muted is unnecessary since we are using start/stop instead.

Source/WebKit:

muted is unnecessary since we are using start/stop instead.

  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp:
  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.h:
  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.messages.in:
  • WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp:
  • WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.h:
4:08 PM Changeset in webkit [261342] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[macOS] Playhead in Touch Bar continues when loading stalls
https://bugs.webkit.org/show_bug.cgi?id=211585
<rdar://problem/33893306>

Reviewed by Darin Adler.

  • platform/cocoa/PlaybackSessionModelMediaElement.h:
  • platform/cocoa/PlaybackSessionModelMediaElement.mm:

(WebCore::PlaybackSessionModelMediaElement::updateForEventName): Listen for waitingEvent
and canplay events. Don't claim to be playing when stalled.
(WebCore::PlaybackSessionModelMediaElement::isStalled const): New.

4:05 PM Changeset in webkit [261341] by eric.carlson@apple.com
  • 12 edits
    2 adds in trunk

Poster set after playback begins should be ignored
https://bugs.webkit.org/show_bug.cgi?id=211464

Reviewed by Jer Noble.
Source/WebCore:

Redo the poster frame logic to use the show poster flag logic from the spec.

Test: media/video-poster-set-after-playback.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_showPoster.
(WebCore::HTMLMediaElement::prepareForLoad): m_displayMode was removed.
(WebCore::HTMLMediaElement::selectMediaResource): Call setShowPosterFlag.
(WebCore::HTMLMediaElement::loadResource): Remove calls to setDisplayMode and updateDisplayState,
they have been deleted.
(WebCore::HTMLMediaElement::waitForSourceChange): Call setShowPosterFlag. Update spec text.
(WebCore::HTMLMediaElement::noneSupported): Call setShowPosterFlag.
(WebCore::HTMLMediaElement::mediaLoadingFailed): Remove call to updateDisplayState.
(WebCore::HTMLMediaElement::setReadyState): Ditto.
(WebCore::HTMLMediaElement::seekWithTolerance): Call setShowPosterFlag.
(WebCore::HTMLMediaElement::seekTask): Check m_showPoster, not displayMode.
(WebCore::HTMLMediaElement::playInternal): Call setShowPosterFlag.
(WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged): Don't check displayMode.
(WebCore::HTMLMediaElement::updatePlayState): No more setDisplayMode.
(WebCore::HTMLMediaElement::userCancelledLoad): Call setShowPosterFlag.
(WebCore::HTMLMediaElement::mediaPlayerFirstVideoFrameAvailable): Deleted.

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::showPosterFlag const):
(WebCore::HTMLMediaElement::setShowPosterFlag):
(WebCore::HTMLMediaElement::displayMode const): Deleted.
(WebCore::HTMLMediaElement::setDisplayMode): Deleted.
(WebCore::HTMLMediaElement::updateDisplayState): Deleted.

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::didAttachRenderers): No more updateDisplayState.
(WebCore::HTMLVideoElement::parseAttribute): Ditto. Call updateFromElement when poster is removed.
(WebCore::HTMLVideoElement::shouldDisplayPosterImage const): New.
(WebCore::HTMLVideoElement::mediaPlayerFirstVideoFrameAvailable): New, update player and
renderer if the poster isn't supposed to be visible.
(WebCore::HTMLVideoElement::setDisplayMode): Deleted.
(WebCore::HTMLVideoElement::updateDisplayState): Deleted.

  • html/HTMLVideoElement.h:
  • rendering/RenderVideo.cpp:

(WebCore::RenderVideo::failedToLoadPosterImage const): New.

  • rendering/RenderVideo.h:
  • testing/Internals.cpp:

(WebCore::Internals::elementShouldDisplayPosterImage const):

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

  • media/video-poster-set-after-playback-expected.txt: Added.
  • media/video-poster-set-after-playback.html: Added.
4:01 PM Changeset in webkit [261340] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Sources: Breakpoints status not remembered/restored correctly
https://bugs.webkit.org/show_bug.cgi?id=211558

Reviewed by Joseph Pecoraro.

  • UserInterface/Controllers/DOMDebuggerManager.js:

(WI.DOMDebuggerManager.prototype.initializeTarget):

3:59 PM Changeset in webkit [261339] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Storage: double clicking on a cookie field doesn't start editing it
https://bugs.webkit.org/show_bug.cgi?id=211598

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CookieStorageContentView.js:

(WI.CookieStorageContentView):
(WI.CookieStorageContentView.prototype.tableCellContextMenuClicked):
(WI.CookieStorageContentView.prototype.tablePopulateCell):
(WI.CookieStorageContentView.prototype._showCookiePopover):
(WI.CookieStorageContentView.prototype._handleSetCookieButtonClick):
Add a "dblclick" event listener to each cell that shows a WI.CookiePopover for that cell
and automatically select the current value of that field in the WI.Cookie. Unify the few
different ways to show a WI.CookiePopover.

  • UserInterface/Views/CookiePopover.js:

(WI.CookiePopover.prototype.show.createRow):
Provide a way to programmatically trigger the focusing of an editor once shown.

  • Localizations/en.lproj/localizedStrings.js:
3:58 PM Changeset in webkit [261338] by Jack Lee
  • 2 edits in trunk/Source/WebCore

In Document::willBeRemovedFromFrame, clear FrameSelection before Editor so the selection is removed.
https://bugs.webkit.org/show_bug.cgi?id=211551

Reviewed by Geoffrey Garen.

Covered by existing tests.

  • dom/Document.cpp:

(WebCore::Document::willBeRemovedFromFrame):

2:48 PM Changeset in webkit [261337] by Alan Coon
  • 8 edits in trunk/Source

Versioning.

2:44 PM Changeset in webkit [261336] by graouts@webkit.org
  • 10 edits in trunk/Source/WebCore

[Web Animations] imported/w3c/web-platform-tests/web-animations/timing-model/timelines/update-and-send-events.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=211232
<rdar://problem/62650227>

Reviewed by Dean Jackson.

The flakiness came from this porting of the test:

animA.finished.then(() => { animB.cancel() });
animB.finished.then(() => { animA.cancel() });

Sometimes, animA and animB would finish in different frames even though they were designed to finish at the
same time. If this happened, animA.finished would resolve and trigger animB.cancel, which then rejected
animB.finished. This happened because animB was attached to a DocumentTimeline created by script which isn't
the main DocumenTimeline accessed via document.timeline. Some curious code would handle syncing of the
various timelines such that they would use a shared timebase. This was in DocumentTimeline::currentTime():

auto& mainDocumentTimeline = m_document->timeline();
if (&mainDocumentTimeline != this) {

if (auto mainDocumentTimelineCurrentTime = mainDocumentTimeline.currentTime())

return *mainDocumentTimelineCurrentTime - m_originTime;

return WTF::nullopt;

}

We now move the currentTime caching at the DocumentTimelinesController level which ensures all DocumentTimeline
objects attached to a given Document use the exact same currentTime(). This prompted some overdue refactoring
where also all the related animation suspension code is moved from DocumentTimeline up to DocumentTimelinesController.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::detachFromDocument):
(WebCore::DocumentTimeline::suspendAnimations):
(WebCore::DocumentTimeline::resumeAnimations):
(WebCore::DocumentTimeline::animationsAreSuspended const):
(WebCore::DocumentTimeline::currentTime):
(WebCore::DocumentTimeline::scheduleAnimationResolution):
(WebCore::DocumentTimeline::documentWillUpdateAnimationsAndSendEvents):
(WebCore::DocumentTimeline::animationsAreSuspended): Deleted.
(WebCore::DocumentTimeline::liveCurrentTime const): Deleted.
(WebCore::DocumentTimeline::cacheCurrentTime): Deleted.
(WebCore::DocumentTimeline::maybeClearCachedCurrentTime): Deleted.

  • animation/DocumentTimeline.h:
  • animation/DocumentTimelinesController.cpp:

(WebCore::DocumentTimelinesController::detachFromDocument):
(WebCore::DocumentTimelinesController::updateAnimationsAndSendEvents):
(WebCore::DocumentTimelinesController::suspendAnimations):
(WebCore::DocumentTimelinesController::resumeAnimations):
(WebCore::DocumentTimelinesController::animationsAreSuspended const):
(WebCore::DocumentTimelinesController::liveCurrentTime const):
(WebCore::DocumentTimelinesController::currentTime):
(WebCore::DocumentTimelinesController::cacheCurrentTime):
(WebCore::DocumentTimelinesController::maybeClearCachedCurrentTime):

  • animation/DocumentTimelinesController.h:
  • dom/Document.cpp:

(WebCore::Document::didBecomeCurrentDocumentInFrame):
(WebCore::Document::resume):

  • dom/Document.h:
  • page/Frame.cpp:

(WebCore::Frame::clearTimers):
(WebCore::Frame::resumeActiveDOMObjectsAndAnimations):

  • page/Page.cpp:

(WebCore::Page::setIsVisibleInternal):
(WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged):

  • testing/Internals.cpp:

(WebCore::Internals::animationsAreSuspended const):
(WebCore::Internals::suspendAnimations const):
(WebCore::Internals::resumeAnimations const):

2:39 PM Changeset in webkit [261335] by Alan Coon
  • 1 copy in branches/safari-610.1.12-branch

New branch.

2:02 PM Changeset in webkit [261334] by Simon Fraser
  • 8 edits
    6 adds in trunk

REGRESSION (r252161): Animation of box-shadow with border-radius set is flashy
https://bugs.webkit.org/show_bug.cgi?id=211530
<rdar://problem/62570229>

Reviewed by Zalan Bujtas.

Source/WebCore:

Drawing inset box shadows with spread was broken, and in some cases generated invalid
rounded rects, causing inset shadows with border-radius to lose the radius.

First, with split inlines, the spread was not getting removed from the excluded edges.
Fix in the includeLogicalLeftEdge/includeLogicalRightEdge clauses, adding shiftXEdgeBy()/shiftYEdgeBy() helpers
to LayoutRect to simplify logic.

Second, when computing the rounded hole rect, we'd use the result of style.getRoundedInnerBorderFor()
but that doesn't take shadow spread into account, so we'd build a rounded rect with a rect that
accounted for spread, but radii computed without. That could result in unrenderable rounded rects.
Fix by calling style.getRoundedInnerBorderFor() a second time if we have spread; this will fix
up the radii for spread.

Tests: fast/box-shadow/inset-box-shadow-fractional-radius.html

fast/box-shadow/inset-shadow-split-inline.html
fast/box-shadow/inset-spread-box-shadow-split-inline.html

  • platform/graphics/LayoutRect.h:

(WebCore::LayoutRect::shiftXEdgeBy):
(WebCore::LayoutRect::shiftYEdgeBy):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintBoxShadow):

LayoutTests:

Some ref tests for inset shadows with border radius, with spread, and when on
split inlines.

  • fast/box-shadow/inset-box-shadow-expected.html:
  • fast/box-shadow/inset-box-shadow-fractional-radius-expected.html: Added.
  • fast/box-shadow/inset-box-shadow-fractional-radius.html: Added.
  • fast/box-shadow/inset-box-shadow.html:
  • fast/box-shadow/inset-shadow-split-inline-expected.html: Added.
  • fast/box-shadow/inset-shadow-split-inline.html: Added.
  • fast/box-shadow/inset-spread-box-shadow-split-inline-expected.html: Added.
  • fast/box-shadow/inset-spread-box-shadow-split-inline.html: Added.
1:57 PM Changeset in webkit [261333] by don.olmstead@sony.com
  • 39 edits in trunk/Source

Remove unused USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
https://bugs.webkit.org/show_bug.cgi?id=211582

Reviewed by Fujii Hironori.

After r261264 all ports implemented USE_REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR.

Source/WebCore:

  • page/ChromeClient.h:

(WebCore::ChromeClient::createDisplayRefreshMonitor const):

  • page/Page.cpp:

(WebCore::Page::windowScreenDidChange):

  • page/RenderingUpdateScheduler.cpp:

(WebCore::RenderingUpdateScheduler::RenderingUpdateScheduler):
(WebCore::RenderingUpdateScheduler::adjustRenderingUpdateFrequency):
(WebCore::RenderingUpdateScheduler::scheduleTimedRenderingUpdate):
(WebCore::RenderingUpdateScheduler::windowScreenDidChange):

  • page/RenderingUpdateScheduler.h:
  • platform/graphics/DisplayRefreshMonitor.cpp:
  • platform/graphics/DisplayRefreshMonitor.h:
  • platform/graphics/DisplayRefreshMonitorClient.cpp:
  • platform/graphics/DisplayRefreshMonitorClient.h:
  • platform/graphics/DisplayRefreshMonitorManager.cpp:
  • platform/graphics/DisplayRefreshMonitorManager.h:
  • platform/graphics/GraphicsLayerUpdater.cpp:

(WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):
(WebCore::GraphicsLayerUpdater::scheduleUpdate):
(WebCore::GraphicsLayerUpdater::screenDidChange):
(WebCore::GraphicsLayerUpdater::displayRefreshFired):
(WebCore::GraphicsLayerUpdater::createDisplayRefreshMonitor const):

  • platform/graphics/GraphicsLayerUpdater.h:
  • platform/graphics/gtk/DisplayRefreshMonitorGtk.cpp:
  • platform/graphics/gtk/DisplayRefreshMonitorGtk.h:
  • platform/graphics/ios/DisplayRefreshMonitorIOS.h:
  • platform/graphics/ios/DisplayRefreshMonitorIOS.mm:
  • platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
  • platform/graphics/mac/DisplayRefreshMonitorMac.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::createDisplayRefreshMonitor const):

  • rendering/RenderLayerCompositor.h:

Source/WebKit:

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::ThreadedCompositor):
(WebKit::m_displayRefreshMonitor):
(WebKit::ThreadedCompositor::invalidate):
(WebKit::ThreadedCompositor::sceneUpdateFinished):
(WebKit::ThreadedCompositor::displayRefreshMonitor):

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createDisplayRefreshMonitor const):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::createDisplayRefreshMonitor):

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h:
  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp:

(WebKit::LayerTreeHost::createDisplayRefreshMonitor):

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h:

(WebKit::LayerTreeHost::deviceOrPageScaleFactorChanged):

  • WebProcess/WebPage/DrawingArea.cpp:
  • WebProcess/WebPage/DrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm:
  • WebProcess/WebPage/mac/DrawingAreaMac.cpp:

Source/WTF:

  • wtf/PlatformUse.h:
1:15 PM Changeset in webkit [261332] by Jonathan Bedard
  • 2 edits in trunk/Tools

webkitpy: Use apple_additions certificate path if available
https://bugs.webkit.org/show_bug.cgi?id=211584

Rubber-stamped by Aakash Jain

  • Scripts/webkitpy/results/upload.py:

(Upload):
(Upload.certificate_chain): Certificate chain to be used, prefer apple_additions
over certifi.
(Upload.upload): Use Upload.certificate_chain().
(Upload.upload_archive): Ditto.

1:15 PM Changeset in webkit [261331] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Simplify preprocessor guards in GCMemoryOperations.h
https://bugs.webkit.org/show_bug.cgi?id=211588

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-05-07
Reviewed by Darin Adler.

If we adjust the guards a bit, then we don't need to repeat the fallback path.

  • heap/GCMemoryOperations.h:

(JSC::gcSafeMemmove):
(JSC::gcSafeZeroMemory):

1:07 PM Changeset in webkit [261330] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[ macOS wk1 ] imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-insert-text.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=209201

Unreviewed test gardening.

Remove flaky expectation since the test is consistently passing.

  • platform/mac-wk1/TestExpectations:
1:04 PM Changeset in webkit [261329] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

[ macOS debug ] REGRESSION (r259463): http/tests/media/clearkey/collect-webkit-media-session.html is failing
https://bugs.webkit.org/show_bug.cgi?id=209989

Unreviewed test gardening.

Remove failure expectations for tests that are now consistently passing.

  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
1:03 PM WebKitGTK/2.28.x edited by Michael Catanzaro
(diff)
12:49 PM Changeset in webkit [261328] by mark.lam@apple.com
  • 7 edits in trunk/Source

Give the DFG and FTL WorkList threads more stack space on ASAN builds.
https://bugs.webkit.org/show_bug.cgi?id=211535
<rdar://problem/62947884>

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::ThreadBody::ThreadBody):

  • Mark the AutomaticThread as ThreadType::Compiler.

Source/WTF:

  1. Add the ability to set the ThreadType for AutomaticThreads.
  2. Give ThreadType::Compiler (which currently only used for the DFG anf FTL WorkList threads) a larger stack for OS(DARWIN) on ASAN builds.

This is needed because ASAN is a memory hungry beast, and we want the ASAN
builds to get to exercise the same amount of code a regular build will (instead
of failing out early with a stack overflow error).

  • wtf/AutomaticThread.cpp:

(WTF::AutomaticThread::AutomaticThread):
(WTF::AutomaticThread::start):

  • wtf/AutomaticThread.h:
  • wtf/Threading.cpp:

(WTF::stackSize):

  • wtf/Threading.h:
12:36 PM Changeset in webkit [261327] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

Add watchOS media controls assets
https://bugs.webkit.org/show_bug.cgi?id=211508

Unreviewed. Cleaning up some stray logging.

  • WebCore.xcodeproj/project.pbxproj:
12:30 PM Changeset in webkit [261326] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r251875): Crash in JSC::StructureIDTable::get on ppc64le: gcSafeMemcpy broken on JSVALUE64 platforms other than x86_64 and aarch64
https://bugs.webkit.org/show_bug.cgi?id=210685

Patch by Daniel Kolesa <daniel@octaforge.org> on 2020-05-07
Reviewed by Michael Catanzaro.

Fix gcSafeMemcpy on non-x86_64/aarch64 64-bit architectures.

We were hitting an incorrect x86_64 assertion on values larger than
mediumCutoff on JSVALUE64 architectures other than x86_64 and aarch64,
as the control flow is wrong.

  • heap/GCMemoryOperations.h:

(JSC::gcSafeMemcpy):

12:25 PM Changeset in webkit [261325] by mark.lam@apple.com
  • 6 edits in trunk/Source

Add stack checks to the DFG and FTL bytecode parser.
https://bugs.webkit.org/show_bug.cgi?id=211547
<rdar://problem/62958880>

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

Inlining can cause some level of recursion of the DFG bytecode parser. We should
do a stack check at each inlining check before recursing. If a stack overflow
appears to be imminent, then just refuse to inline, and therefore, don't recurse
deeper into the parser.

This issue is more noticeable on ASan debug builds where stack frames can be
humongous.

Removed the SUPPRESS_ASAN on cloberrize() and the associated comment from r260692.
It was a mis-diagnosis. The stack checks are what we need.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleVarargsInlining):
(JSC::DFG::ByteCodeParser::handleInlining):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGGraph.h:

Source/WTF:

Added a StackCheck::Scope RAII object to help verify that the default reserved
zone size is at least adequate for known work loads. If this the StackCheck::Scope
assertions fail, then we either need more stack checks, or the reserved zone size
needs to be increased.

Note that the assertions are usually only on in Debug builds. Ideally, we would
want to measure the reserved zone size with a Release build. To do that, we
can just set VERIFY_STACK_CHECK_RESERVED_ZONE_SIZE to 1 unconditionally in
StackCheck.h and rebuild.

  • wtf/StackCheck.h:

(WTF::StackCheck::Scope::Scope):
(WTF::StackCheck::Scope::~Scope):
(WTF::StackCheck::Scope::isSafeToRecurse):
(WTF::StackCheck::StackCheck):

12:12 PM Changeset in webkit [261324] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Unreviewed, reverting r260959.
https://bugs.webkit.org/show_bug.cgi?id=211587

"Causes MiniBrowser to crash when closing a window" (Requested
by ddkilzer on #webkit).

Reverted changeset:

"REGRESSION (r176862, r210483): Leaks of
BrowserWindowController in MiniBrowser/mac/AppDelegate.m"
https://bugs.webkit.org/show_bug.cgi?id=211243
https://trac.webkit.org/changeset/260959

11:55 AM Changeset in webkit [261323] by Darin Adler
  • 5 edits in trunk/Source

Add some missing null checks for DocumentLoader
https://bugs.webkit.org/show_bug.cgi?id=211544
rdar://62843516

Reviewed by Anders Carlsson.

Source/WebCore:

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::transitionToCommitted): Use some more RefPtr,
and check for null before calling DocumentLoader::responseMIMEType.
Also removed a comment that made no sense, and an assertion that was
there for no reason, left over from some point in history where it
made sense.

  • loader/HistoryController.cpp:

(WebCore::FrameLoader::HistoryController::updateForRedirectWithLockedBackForwardList):
Add checks for null before calling urlForHistory and isClientRedirect.

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
Add a null check before calling DocumentLoader::response.

11:42 AM Changeset in webkit [261322] by commit-queue@webkit.org
  • 3 edits in trunk/Source/ThirdParty/ANGLE

Fix Google Maps rendering corruption in simulator with ANGLE
https://bugs.webkit.org/show_bug.cgi?id=211398

glReadPixels call needs to respect the row stride of the IOSurface.

Patch by James Darpinian <James Darpinian> on 2020-05-07
Reviewed by Alex Christensen.

  • src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.h:
  • src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm:

(rx::IOSurfaceSurfaceEAGL::IOSurfaceSurfaceEAGL):
(rx::IOSurfaceSurfaceEAGL::releaseTexImage):

11:38 AM Changeset in webkit [261321] by timothy_horton@apple.com
  • 1 edit
    3 adds in trunk/LayoutTests

Add a test for REGRESSION (r260753): Frequent crashes under TextIndicator's estimatedTextColorsForRange
https://bugs.webkit.org/show_bug.cgi?id=211532

Reviewed by Wenson Hsieh.

  • fast/text-indicator/text-indicator-estimated-color-with-implicit-newline-expected.txt: Added.
  • fast/text-indicator/text-indicator-estimated-color-with-implicit-newline.html: Added.
  • platform/ios/fast/text-indicator/text-indicator-estimated-color-with-implicit-newline-expected.txt: Added.

This test would trigger the null deref fixed in r261245.

11:37 AM Changeset in webkit [261320] by Darin Adler
  • 21 edits
    2 copies in trunk

Remove USE(INSERTION_UNDO_GROUPING) checks in macOS platform code
https://bugs.webkit.org/show_bug.cgi?id=211525

Reviewed by Anders Carlsson.

Source/WebCore:

  • editing/mac/TextUndoInsertionMarkupMac.h: Remove

NSTextInputContext_Private.h usage. Moving to NSTextInputContextSPI.h
instead. Also remove #pragma once since this is an Objective-C-only
header, not for cross-platform use.

  • editing/mac/TextUndoInsertionMarkupMac.mm: Above, plus move

NSUndoManager_Private.h to NSUndoManagerSPI.h.

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj: Added NSTextInputContextSPI.h and NSUndoManagerSPI.h.
  • pal/PlatformMac.cmake: Ditto.
  • pal/spi/mac/NSTextInputContextSPI.h: Added.
  • pal/spi/mac/NSUndoManagerSPI.h: Added.

Source/WebKit:

  • UIProcess/Cocoa/WebViewImpl.mm: Use NSTextInputContextSPI.h.

(WebKit::WebViewImpl::validAttributesForMarkedText): Removed
USE(INSERTION_UNDO_GROUPING) from the macOS-specific code here.
(WebKit::WebViewImpl::insertText): Ditto.

  • UIProcess/PageClient.h: Ditto.
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::registerInsertionUndoGrouping): Deleted.
This function is not needed at all on iOS.

  • UIProcess/mac/PageClientImplMac.h: Removed USE(INSERTION_UNDO_GROUPING).
  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::registerInsertionUndoGrouping): Ditto.

Source/WebKitLegacy/mac:

  • WebView/WebHTMLView.mm: Use NSTextInputContextSPI.h.

(-[WebHTMLView validAttributesForMarkedText]): Removed USE(INSERTION_UNDO_GROUPING).
(-[WebHTMLView insertText:]): Ditto.

Tools:

  • DumpRenderTree/mac/TextInputControllerMac.m: Use NSTextInputContextSPI.h.

(-[TextInputController stringWithUndoGroupingInsertion:]): Removed
SUPPORT_INSERTION_UNDO_GROUPING.

  • DumpRenderTree/mac/UIScriptControllerMac.mm: Use NSTextInputContextSPI.h.
  • TestRunnerShared/spi/AppKitTestSPI.h: Removed

NSTextInputContext_Private.h, clients can use NSTextInputContextSPI.h.

  • TestWebKitAPI/Tests/TestWebKitAPI/mac/AppKitSPI.h: Ditto.
  • TestWebKitAPI/Tests/mac/CandidateTests.mm: Use NSTextInputContextSPI.h.
  • TestWebKitAPI/Tests/mac/WKWebViewMacEditingTests.mm: Ditto.
11:24 AM Changeset in webkit [261319] by aakash_jain@apple.com
  • 5 edits
    4 deletes in trunk/Tools

Delete code for old commit queue
https://bugs.webkit.org/show_bug.cgi?id=211581

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/common/config/committervalidator.py: Removed.
  • Scripts/webkitpy/common/config/committervalidator_unittest.py: Removed.
  • Scripts/webkitpy/tool/bot/commitqueuetask.py: Removed.
  • Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py: Removed.
  • Scripts/webkitpy/tool/commands/queues.py:

(PatchProcessingQueue._upload_results_archive_for_patch):
(CommitQueue): Deleted.

  • Scripts/webkitpy/tool/commands/queues_unittest.py:

(NeedsUpdateSequence._run):
(TestCommitQueue): Deleted.
(AlwaysCommitQueueTool): Deleted.
(SecondThoughtsCommitQueue): Deleted.
(CommitQueueTest): Deleted.
(test_did_pass_testing_ews): Deleted.

  • Scripts/webkitpy/tool/steps/validatechangelogs.py:
  • Scripts/webkitpy/tool/steps/validatereviewer.py:
11:21 AM Changeset in webkit [261318] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk1 ] http/tests/security/clipboard/copy-paste-html-cross-origin-iframe-across-origin.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209154

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
11:12 AM Changeset in webkit [261317] by svillar@igalia.com
  • 3 edits
    6 adds in trunk/Source/WebCore

[Conditional=] not working for operations in WebGLRenderingContextBase.idl
https://bugs.webkit.org/show_bug.cgi?id=211528

Reviewed by Chris Dumez.

When an IDL interface under a given Condition defined an operation with
another Condition the generated source file should guard the operation
with both the Condition from the interface and the one from the
operation. This was working fine for sole interfaces but not for those
who were inheriting from a base one, i.e., it was not working for
supplemental interfaces.

Added a new minimalistic binding test showcasing the problem.

  • bindings/scripts/CodeGenerator.pm:

(ProcessSupplementalDependencies): Add Conditionals from both interface and operation.

  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::jsTestGlobalObjectTestOperationConditionalConstructorGetter): Updated result.
(WebCore::jsTestGlobalObjectTestOperationConditionalConstructor): Ditto.
(WebCore::setJSTestGlobalObjectTestOperationConditionalConstructorSetter): Ditto.
(WebCore::setJSTestGlobalObjectTestOperationConditionalConstructor): Ditto.

  • bindings/scripts/test/JS/JSTestOperationBase.cpp: Added.
  • bindings/scripts/test/JS/JSTestOperationBase.h: Added.
  • bindings/scripts/test/JS/JSTestOperationConditional.cpp: Added.
  • bindings/scripts/test/JS/JSTestOperationConditional.h: Added.
  • bindings/scripts/test/TestOperationBase.idl: Added.
  • bindings/scripts/test/TestOperationConditional.idl: Added.
11:07 AM Changeset in webkit [261316] by Ryan Haddad
  • 2 edits in trunk/Tools

Unreviewed, reverting r261286.

Tests are still crashing / failing

Reverted changeset:

"Unskip the test since it should now be passing"
https://trac.webkit.org/changeset/261286

11:02 AM Changeset in webkit [261315] by Darin Adler
  • 3 edits in trunk/Source/JavaScriptCore

REGRESSION (r261257): Lifetime problem with upconverted characters in toLocaleCase
https://bugs.webkit.org/show_bug.cgi?id=211580
rdar://62980449

Reviewed by Yusuke Suzuki.

The problem comes from the fact that callBufferProducingFunction is moving the same
arguments multiple times. At the moment, this works around the only practical
problem with that, but later it should be fixed in callBufferProducingFunction.

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::initializeDateTimeFormat): Work around mistakes in how
callBufferProducingFunction works with arguments by calling get() explicitly on the
result of upconvertedCharacters. Later we could fix callBufferProducingFunction to
be safer, but for now this solves the problem.

  • runtime/StringPrototype.cpp:

(JSC::toLocaleCase): Ditto.

11:01 AM Changeset in webkit [261314] by Antti Koivisto
  • 7 edits in trunk

[Wheel event region] Include listeners on Window
https://bugs.webkit.org/show_bug.cgi?id=211577

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/scrolling/mac/wheel-event-listener-region-window.html

  • dom/EventTarget.h:
  • dom/Node.h:
  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::computeEventListenerRegionTypes):

Take EventTarget so this can be used with DOMWindow.

  • style/StyleAdjuster.h:
  • style/StyleResolveForDocument.cpp:

(WebCore::Style::resolveForDocument):

LayoutTests:

  • fast/scrolling/mac/wheel-event-listener-region-window-expected.txt: Added.
  • fast/scrolling/mac/wheel-event-listener-region-window.html: Added.
11:00 AM Changeset in webkit [261313] by keith_miller@apple.com
  • 4 edits
    2 adds in trunk

Fix ArrayMode nodes after r261260
https://bugs.webkit.org/show_bug.cgi?id=211543

Reviewed by Yusuke Suzuki.

I accidentally ran tests with a release build rather than
release+assert when uploading r261260. This patch skips the
CheckArray node in the ArrayMode clobbersTop() logic before
Fixup. And also marks a GetArrayLength in the TypedArray
intrsinics as ExitOK.

This patch also relands r261260.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicGetter):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

10:58 AM Changeset in webkit [261312] by Alan Coon
  • 7 edits in branches/safari-609-branch

Apply patch. rdar://problem/62977667

10:58 AM Changeset in webkit [261311] by Alan Coon
  • 2 edits in branches/safari-609-branch/Source/WebKit

Cherry-pick r260474. rdar://problem/62977672

PiP buttons shows up in element fullscreen when PiP is disabled in WKWebViewConfiguration
https://bugs.webkit.org/show_bug.cgi?id=210813

Reviewed by Eric Carlson.

Not currently testable; entering fullscreen never completes in the iOS TestWebKitAPI app
because that process is not a UI Application.

  • UIProcess/ios/fullscreen/WKFullScreenViewController.mm: (-[WKFullScreenViewController videoControlsManagerDidChange]):

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

10:58 AM Changeset in webkit [261310] by Alan Coon
  • 5 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r260480. rdar://problem/62977665

Cherry-pick r260301. rdar://problem/62083309

[WebGL] Confirm there are no errors when setting up framebuffers
https://bugs.webkit.org/show_bug.cgi?id=210632
<rdar://problem/61916680>

Reviewed by Simon Fraser.

We're seeing crashes on macOS inside GraphicsContextGL::reshape().
Specifically when we submit work at the end of the function via
glFlush.

At the moment the cause is a mystery, because we should bail out
before then if the multisample renderbuffer was not complete. In
the hope that it helps somewhat, add a call to glGetError to double
check that there isn't anything horribly wrong before we talk to
the GPU.

  • html/canvas/WebGL2RenderingContext.cpp: (WebCore::WebGL2RenderingContext::WebGL2RenderingContext): If the underlying GCGL context was marked as "LOST" during initialization, skip the rest of our initialization.
  • html/canvas/WebGLRenderingContext.cpp: Ditto. (WebCore::WebGLRenderingContext::WebGLRenderingContext):
  • html/canvas/WebGLRenderingContextBase.cpp: Ditto. (WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase):
  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: Check for a GL error during setup and, if there is one, skip directly into a LOST state. (WebCore::GraphicsContext3D::reshape):

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

git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-609.2.9.1-branch@260480 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:58 AM Changeset in webkit [261309] by Alan Coon
  • 8 edits in branches/safari-609-branch/Source/WebKit

Apply patch. rdar://problem/62977657

10:58 AM Changeset in webkit [261308] by Alan Coon
  • 6 edits in branches/safari-609-branch/Source/WebKit

Apply patch. rdar://problem/62977647

10:58 AM Changeset in webkit [261307] by Alan Coon
  • 2 edits in branches/safari-609-branch/Source/WebKit

Apply patch. rdar://problem/62272254

10:45 AM Changeset in webkit [261306] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

REGRESSION (r261056): [ Mac WK1 ] inspector/console/console-api.html is flaky crashing
https://bugs.webkit.org/show_bug.cgi?id=211386

Reviewed by Darin Adler.

Address additional review feedback.

  • platform/mac/ScrollbarThemeMac.mm:

(WebCore::ScrollbarThemeMac::unregisterScrollbar):

10:37 AM Changeset in webkit [261305] by Chris Dumez
  • 6 edits in trunk/Source/WebKit

Drop dead platformPrepareToSuspend / platformProcessDidResume in NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=211579

Reviewed by Geoffrey Garen.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::prepareToSuspend):
(WebKit::NetworkProcess::resume):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformPrepareToSuspend): Deleted.
(WebKit::NetworkProcess::platformProcessDidResume): Deleted.

  • NetworkProcess/curl/NetworkProcessCurl.cpp:

(WebKit::NetworkProcess::platformPrepareToSuspend): Deleted.
(WebKit::NetworkProcess::platformProcessDidResume): Deleted.

  • NetworkProcess/soup/NetworkProcessSoup.cpp:

(WebKit::NetworkProcess::platformPrepareToSuspend): Deleted.
(WebKit::NetworkProcess::platformProcessDidResume): Deleted.

10:21 AM Changeset in webkit [261304] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/scroll-restoration-order.html as flaky on iOS.

This test has been flaky on iOS since its import.

  • platform/ios-wk2/TestExpectations:
10:17 AM Changeset in webkit [261303] by Megan Gardner
  • 6 edits in trunk/Source/WebKit

ContextMenu: entire webpage pops and disappears to generate preview of embedded image
https://bugs.webkit.org/show_bug.cgi?id=211272
<rdar://problem/62482013>

Reviewed by Tim Horton.

The ActionSheetAssistant is always around, so using the presence of one
to determine if we need to remove the _contextMenuHintContainerView is incorrect
and causes it to be around on the next invocation of the context menu, and
causing the failure of the creation of a new preview, which then will default to
popping the whole page. We need to ask the ActionSheetAssistant if it is actively showing
anything, and then correctly clean up the _contextMenuHintContainerView after the
end of the interactions for FileUploadMenu and ActionSheetAssistant are done with their
interactions.

  • UIProcess/ios/WKActionSheetAssistant.h:
  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant removeContextMenuInteraction]):
(-[WKActionSheetAssistant hasContextMenuInteraction]):

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView removeContextMenuViewIfPossibleForActionSheetAssistant:]):
(-[WKContentView _canRemoveContextMenuView]):
(-[WKContentView _removeContextMenuViewIfPossible]):
(-[WKContentView contextMenuInteraction:willEndForConfiguration:animator:]):

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel removeContextMenuInteraction]):

10:14 AM Changeset in webkit [261302] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[LFC[TFC] Adjust the table wrapper box style
https://bugs.webkit.org/show_bug.cgi?id=211574

Reviewed by Antti Koivisto.

Source/WebCore:

The computed values of properties 'position', 'float', 'margin-*', 'top', 'right', 'bottom', and 'left'
on the table element are used on the table wrapper box and not the table box; all other values of non-inheritable
properties are used on the table box and not the table wrapper box.

https://www.w3.org/TR/CSS22/tables.html#model

Test: fast/layoutformattingcontext/table-simple-with-border.html

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::isBlockContainerBox const):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::createLayoutBox):
(WebCore::Layout::TreeBuilder::buildTableStructure):

LayoutTests:

  • fast/layoutformattingcontext/table-simple-with-border-expected.txt: Added.
  • fast/layoutformattingcontext/table-simple-with-border.html: Added.
10:05 AM Changeset in webkit [261301] by Alan Coon
  • 8 edits in branches/safari-609-branch/Source

Versioning.

9:51 AM Changeset in webkit [261300] by Andres Gonzalez
  • 6 edits in trunk/Source/WebCore

Make debug build run in accessibility isolated tree mode = 1.
https://bugs.webkit.org/show_bug.cgi?id=211567

Reviewed by Chris Fleizach.

  • Removed several unnecessary ASSERTs that prevent debug builds to run

in isolated tree mode = 1, i.e., isolated tree mode on main thread.

  • AXIsolatedObject::children and updateBackingStore need to be executed

on both threads.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::detachRemoteParts):
(WebCore::AXIsolatedObject::children): Need to update the children
regardless of the thread in which it is invoked. Pending, must add a
lock to prevent thread collision.

(WebCore::AXIsolatedObject::updateBackingStore): Need to update the
backing store regardless of the thread in whhich it is invoked.

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::generateSubtree):
(WebCore::AXIsolatedTree::setRootNodeID):

  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm: Enable

isolated tree mode = 1.
(-[WebAccessibilityObjectWrapperBase detach]):
(-[WebAccessibilityObjectWrapperBase axBackingObject]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm: Use makeString

instead of String concatenation as pointed out by Darin Adler in bug 210914.
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
(-[WebAccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]):

9:50 AM Changeset in webkit [261299] by Chris Dumez
  • 20 edits in trunk/Source/WebKit

Simplify several IPC sending call sites in the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=211575

Reviewed by Alex Christensen.

Simplify several IPC sending call sites in the UIProcess by leveraging the fact
that WebPageProxy subclasses IPC::MessageSender.

  • UIProcess/Cocoa/TextCheckingController.mm:

(WebKit::TextCheckingController::replaceRelativeToSelection):
(WebKit::TextCheckingController::removeAnnotationRelativeToSelection):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::performDictionaryLookupAtLocation):
(WebKit::WebPageProxy::performDictionaryLookupOfCurrentSelection):
(WebKit::WebPageProxy::insertDictatedTextAsync):
(WebKit::WebPageProxy::speakingErrorOccurred):
(WebKit::WebPageProxy::boundaryEventOccurred):
(WebKit::WebPageProxy::voicesDidChange):

  • UIProcess/GeolocationPermissionRequestManagerProxy.cpp:

(WebKit::GeolocationPermissionRequestManagerProxy::didReceiveGeolocationPermissionDecision):

  • UIProcess/Inspector/RemoteWebInspectorProxy.cpp:

(WebKit::RemoteWebInspectorProxy::setDiagnosticLoggingAvailable):

  • UIProcess/Inspector/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::setDiagnosticLoggingAvailable):

  • UIProcess/Inspector/gtk/RemoteWebInspectorProxyGtk.cpp:

(WebKit::remoteFileReplaceContentsCallback):

  • UIProcess/Inspector/gtk/WebInspectorProxyGtk.cpp:

(WebKit::fileReplaceContentsCallback):

  • UIProcess/Inspector/mac/RemoteWebInspectorProxyMac.mm:

(WebKit::RemoteWebInspectorProxy::platformSave):
(WebKit::RemoteWebInspectorProxy::platformAppend):

  • UIProcess/Inspector/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformSave):
(WebKit::WebInspectorProxy::platformAppend):

  • UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp:

(WebKit::NotificationPermissionRequestManagerProxy::createRequest):

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::captureDevicesChanged):
(WebKit::UserMediaPermissionRequestManagerProxy::denyRequest):

  • UIProcess/WebFrameProxy.cpp:

(WebKit::WebFrameProxy::collapseSelection):

  • UIProcess/WebFullScreenManagerProxy.cpp:

(WebKit::WebFullScreenManagerProxy::willEnterFullScreen):
(WebKit::WebFullScreenManagerProxy::didEnterFullScreen):
(WebKit::WebFullScreenManagerProxy::willExitFullScreen):
(WebKit::WebFullScreenManagerProxy::didExitFullScreen):
(WebKit::WebFullScreenManagerProxy::setAnimatingFullScreen):
(WebKit::WebFullScreenManagerProxy::requestExitFullScreen):
(WebKit::WebFullScreenManagerProxy::saveScrollPosition):
(WebKit::WebFullScreenManagerProxy::restoreScrollPosition):
(WebKit::WebFullScreenManagerProxy::setFullscreenInsets):
(WebKit::WebFullScreenManagerProxy::setFullscreenAutoHideDuration):
(WebKit::WebFullScreenManagerProxy::setFullscreenControlsHidden):

  • UIProcess/gtk/WebPageProxyGtk.cpp:

(WebKit::WebPageProxy::getCenterForZoomGesture):

  • UIProcess/ios/SmartMagnificationController.mm:

(WebKit::SmartMagnificationController::handleSmartMagnificationGesture):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView ensurePositionInformationIsUpToDate:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::handleTwoFingerTapAtPoint):
(WebKit::WebPageProxy::handleStylusSingleTapAtPoint):
(WebKit::WebPageProxy::registerUIProcessAccessibilityTokens):
(WebKit::WebPageProxy::willStartUserTriggeredZooming):
(WebKit::WebPageProxy::potentialTapAtPosition):
(WebKit::WebPageProxy::commitPotentialTap):
(WebKit::WebPageProxy::cancelPotentialTap):
(WebKit::WebPageProxy::tapHighlightAtPosition):
(WebKit::WebPageProxy::handleTap):
(WebKit::WebPageProxy::didRecognizeLongPress):
(WebKit::WebPageProxy::handleDoubleTapForDoubleClickAtPoint):
(WebKit::WebPageProxy::inspectorNodeSearchMovedToPosition):
(WebKit::WebPageProxy::inspectorNodeSearchEndedAtPosition):
(WebKit::WebPageProxy::blurFocusedElement):
(WebKit::WebPageProxy::setIsShowingInputViewForFocusedElement):
(WebKit::WebPageProxy::setFocusedElementValue):
(WebKit::WebPageProxy::setFocusedElementValueAsNumber):
(WebKit::WebPageProxy::setFocusedElementSelectedIndex):
(WebKit::WebPageProxy::computePagesForPrintingAndDrawToPDF):
(WebKit::WebPageProxy::contentSizeCategoryDidChange):
(WebKit::WebPageProxy::generateSyntheticEditingCommand):

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::handleMagnificationGestureEvent):
(WebKit::ViewGestureController::handleSmartMagnificationGesture):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::windowAndViewFramesChanged):
(WebKit::WebPageProxy::setMainFrameIsScrollable):
(WebKit::WebPageProxy::attributedSubstringForCharacterRangeAsync):
(WebKit::WebPageProxy::fontAtSelection):
(WebKit::WebPageProxy::stringSelectionForPasteboard):
(WebKit::WebPageProxy::dataSelectionForPasteboard):
(WebKit::WebPageProxy::readSelectionFromPasteboard):
(WebKit::WebPageProxy::replaceSelectionWithPasteboardData):
(WebKit::WebPageProxy::sendComplexTextInputToPlugin):
(WebKit::WebPageProxy::uppercaseWord):
(WebKit::WebPageProxy::lowercaseWord):
(WebKit::WebPageProxy::capitalizeWord):
(WebKit::WebPageProxy::setSmartInsertDeleteEnabled):
(WebKit::WebPageProxy::registerUIProcessAccessibilityTokens):
(WebKit::WebPageProxy::shouldDelayWindowOrderingForEvent):
(WebKit::WebPageProxy::acceptsFirstMouse):

9:39 AM Changeset in webkit [261298] by Alan Bujtas
  • 5 edits
    2 adds in trunk

[LFC][TFC] Set section [top, left] used position.
https://bugs.webkit.org/show_bug.cgi?id=211546

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/table-simple-with-padding.html

  • layout/Verification.cpp:

(WebCore::Layout::outputMismatchingBlockBoxInformationIfNeeded):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layoutInFlowContent):
(WebCore::Layout::TableFormattingContext::setUsedGeometryForSections):

  • layout/tableformatting/TableFormattingContext.h:

LayoutTests:

  • fast/layoutformattingcontext/table-simple-with-padding-expected.txt: Added.
  • fast/layoutformattingcontext/table-simple-with-padding.html: Added.
9:38 AM Changeset in webkit [261297] by Antti Koivisto
  • 5 edits
    2 adds in trunk

[Wheel event region] Include listeners on Document
https://bugs.webkit.org/show_bug.cgi?id=211571

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/scrolling/mac/wheel-event-listener-region-document.html

  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::computeEventListenerRegionTypes):
(WebCore::Style::computeEventListenerRegionTypes): Deleted.

Make public and take Node instead of Element.

  • style/StyleAdjuster.h:
  • style/StyleResolveForDocument.cpp:

(WebCore::Style::resolveForDocument):

Gather event region bits from Document too.

LayoutTests:

  • fast/scrolling/mac/wheel-event-listener-region-document-expected.txt: Added.
  • fast/scrolling/mac/wheel-event-listener-region-document.html: Added.
9:29 AM Changeset in webkit [261296] by commit-queue@webkit.org
  • 13 edits
    1 add in trunk

Unreviewed, reverting r260769.
https://bugs.webkit.org/show_bug.cgi?id=211578

Introduced regressions related to sharing (Requested by
perarne on #webkit).

Reverted changeset:

"[Cocoa] After r258891, r255119 can be reverted"
https://bugs.webkit.org/show_bug.cgi?id=211083
https://trac.webkit.org/changeset/260769

9:23 AM Changeset in webkit [261295] by Ryan Haddad
  • 1 edit
    2 deletes in trunk/LayoutTests

Unreviewed, reverting r261251.

Test is failing on iOS

Reverted changeset:

"Add a test for `REGRESSION (r260753): Frequent crashes under
TextIndicator's estimatedTextColorsForRange`"
https://bugs.webkit.org/show_bug.cgi?id=211532
https://trac.webkit.org/changeset/261251

9:21 AM Changeset in webkit [261294] by Lauro Moura
  • 2 edits in trunk/Tools

[Flatpak SDK] Fix string.format invocation

Reviewed by Philippe Normand.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox):

9:19 AM Changeset in webkit [261293] by Ryan Haddad
  • 4 edits in trunk/Source/JavaScriptCore

Unreviewed, reverting r261260.

Caused 26 JSC test failures

Reverted changeset:

"DFG ByVal nodes with ArrayModes should clobberTop until Fixup
phase runs."
https://bugs.webkit.org/show_bug.cgi?id=211531
https://trac.webkit.org/changeset/261260

9:14 AM Changeset in webkit [261292] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-remove-source.html as flaky.

This test has been flaky since import from WPT.

9:00 AM Changeset in webkit [261291] by Darin Adler
  • 3 edits in trunk/Source/WebCore

Fix assertions seen when trying to draw an absurdly large shadow
https://bugs.webkit.org/show_bug.cgi?id=211541
rdar://62843377

Reviewed by Geoffrey Garen.

  • platform/graphics/IntSize.h:

(WebCore::IntSize::unclampedArea const): Return uint64_t instead of
size_t. Two 32-bit positive integers multiplied fit in a 64-bit integer,
but there's no guarantee they fit in a "pointer sized" integer.

  • platform/graphics/ShadowBlur.cpp:

(WebCore::ShadowBlur::drawRectShadow): When comparing an IntSize area with
a FloatSize area, avoid checked overflow by using IntSize::unclampedArea,
which returns something we can compare with a float. Using IntSize::area
meant we'd intentionally crash the process if the area number doesn't fit
in a 32-bit int, which is not important or helpful.
(WebCore::ShadowBlur::drawRectShadowWithTiling): Make sure
ScratchBuffer::scheduleScratchBufferPurge is always called after
ScratchBuffer::getScratchBuffer, even it returns nullptr. An alternative
would have been to change the logic inside getScratchBuffer, but this
seems easier to get right, and no need to optimize the failure case.
(WebCore::ShadowBlur::drawInsetShadowWithTiling): Ditto.

8:37 AM Changeset in webkit [261290] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Fix potential threading issue in AudioMediaStreamTrackRendererCocoa::render
https://bugs.webkit.org/show_bug.cgi?id=211560

Reviewed by Eric Carlson.

When the audio description is updated, the audio renderer is creating a new AudioSampleDataSource.
The refing of the source in the render method is not sufficient to protect agains the change.
For that purpose, we keep a separate reference to the source that is only used in the render method/render thread.
We add a boolean that tells the render method whether to update its source reference.
As long as the source reference is not updated, no new source will be created n the method processing the pushed samples.

  • platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.cpp:

(WebCore::AudioMediaStreamTrackRendererCocoa::pushSamples):
(WebCore::AudioMediaStreamTrackRendererCocoa::render):

  • platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.h:
8:32 AM Changeset in webkit [261289] by Diego Pino Garcia
  • 3 edits
    1 delete in trunk/LayoutTests

[GTK][WPE] Gardening, update test expectations
https://bugs.webkit.org/show_bug.cgi?id=211573

Review of several test failures that could be closed. Updated test
expectations accordingly.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/css/css-transitions/properties-value-auto-001-expected.txt: Removed.
8:01 AM Changeset in webkit [261288] by Chris Dumez
  • 17 edits in trunk/Source/WebKit

[iOS] AuxiliaryProcessProxy::sendWithAsyncReply() should prevent auxiliary process suspension while processing the IPC
https://bugs.webkit.org/show_bug.cgi?id=209928

Reviewed by Youenn Fablet.

AuxiliaryProcessProxy::sendWithAsyncReply() should prevent auxiliary process suspension
on iOS while processing the IPC. If the process is suspended either before or during
the IPC, this could result in hangs. This is a speculative fix for the flaky timeouts
we see on many tests on iOS only. We know that missing activities with
sendWithAsyncReply has caused test timeouts in the past (Bug 211421).

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::sendMessage):

  • UIProcess/AuxiliaryProcessProxy.h:

(WebKit::AuxiliaryProcessProxy::sendWithAsyncReply):

  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::getGPUProcessConnection):

  • UIProcess/GPU/GPUProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::getNetworkProcessConnection):
(WebKit::NetworkProcessProxy::setUseITPDatabase):
(WebKit::NetworkProcessProxy::resetCacheMaxAgeCapForPrevalentResources):
(WebKit::NetworkProcessProxy::resetParametersToDefaultValues):
(WebKit::NetworkProcessProxy::scheduleClearInMemoryAndPersistent):
(WebKit::NetworkProcessProxy::resetCrossSiteLoadsWithLinkDecorationForTesting):
(WebKit::NetworkProcessProxy::setAppBoundDomainsForResourceLoadStatistics):
(WebKit::NetworkProcessProxy::setShouldDowngradeReferrerForTesting):
(WebKit::NetworkProcessProxy::setThirdPartyCookieBlockingMode):
(WebKit::NetworkProcessProxy::setShouldEnbleSameSiteStrictEnforcementForTesting):
(WebKit::NetworkProcessProxy::setFirstPartyWebsiteDataRemovalModeForTesting):
(WebKit::NetworkProcessProxy::sendPrepareToSuspend):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Plugins/PluginProcessProxy.cpp:

(WebKit::PluginProcessProxy::PluginProcessProxy):

  • UIProcess/Plugins/PluginProcessProxy.h:
  • UIProcess/ProcessThrottler.h:

(WebKit::ProcessThrottler::Activity::Activity):
(WebKit::ProcessThrottler::Activity::isQuietActivity const):
(WebKit::ProcessThrottler::Activity::invalidate):

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest):

  • UIProcess/WebBackForwardCacheEntry.cpp:

(WebKit::WebBackForwardCacheEntry::~WebBackForwardCacheEntry):

  • UIProcess/WebCookieManagerProxy.cpp:

(WebKit::WebCookieManagerProxy::getHostnamesWithCookies):
(WebKit::WebCookieManagerProxy::deleteCookie):
(WebKit::WebCookieManagerProxy::deleteAllCookiesModifiedSince):
(WebKit::WebCookieManagerProxy::setCookies):
(WebKit::WebCookieManagerProxy::getAllCookies):
(WebKit::WebCookieManagerProxy::getCookies):
(WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy):
(WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::getProcessDisplayName):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::setThirdPartyCookieBlockingMode):
(WebKit::WebProcessProxy::fetchWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::WebProcessProxy::sendPrepareToSuspend):
(WebKit::WebProcessProxy::activePagesDomainsForTesting):
(WebKit::WebProcessProxy::establishServiceWorkerContext):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::insertTextPlaceholder):
(WebKit::WebPageProxy::removeTextPlaceholder):
(WebKit::WebPageProxy::requestAutocorrectionData):
(WebKit::WebPageProxy::requestEvasionRectsAboveSelection):
(WebKit::WebPageProxy::updateSelectionWithDelta):
(WebKit::WebPageProxy::requestDocumentEditingContext):
(WebKit::WebPageProxy::insertDroppedImagePlaceholders):

7:47 AM Changeset in webkit [261287] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] Doesn't generate crash logs on the bots
https://bugs.webkit.org/show_bug.cgi?id=211568

Patch by Philippe Normand <pnormand@igalia.com> on 2020-05-07
Reviewed by Carlos Alberto Lopez Perez.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox): Bind-mount the
WEBKIT_CORE_DUMPS_DIRECTORY so that the crash-log generator is
able to write crash log reports there.

7:37 AM Changeset in webkit [261286] by Truitt Savell
  • 2 edits in trunk/Tools

Unskip the test since it should now be passing

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
7:29 AM Changeset in webkit [261285] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

Fix for crash in AXIsolatedObject::identifierAttribute.
https://bugs.webkit.org/show_bug.cgi?id=211565

Reviewed by Chris Fleizach.

Covered by existing tests.

When adding the identifierAttribute property to the AXIsolatedObject's
properties map, must make an isolatedCopy of it in order to retrieve it
on the secondary thread.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):

7:26 AM Changeset in webkit [261284] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GTK] REGRESSION(r260996): Pressing <Tab> in an HTTP authentication dialog makes the dialog lose focus
https://bugs.webkit.org/show_bug.cgi?id=211555

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2020-05-07
Reviewed by Philippe Normand.

Bring back webkitWebViewBaseFocus to GTK3. I made it GTK4 only by mistake in r260996.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseFocus):
(webkit_web_view_base_class_init):

7:16 AM Changeset in webkit [261283] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GTK][WPE] Gardening, update test expectations after r261251
https://bugs.webkit.org/show_bug.cgi?id=211570

Unreviewed gardening.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
6:42 AM Changeset in webkit [261282] by Philippe Normand
  • 4 edits in trunk

[GTK] Test failures after Flatpak upgrade
https://bugs.webkit.org/show_bug.cgi?id=211497

Reviewed by Adrian Perez de Castro.

Tools:

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox): Don't set WEBKIT_TOP_LEVEL. I'm
not sure why it's needed at all. If it needs to be set it should
be /app/webkit/ anyway. Setting it to /app triggers test failures
due to invalid computed paths by internals' pathToLocalResource().

LayoutTests:

  • platform/gtk/TestExpectations: Unflag fixed tests. The webgl

failures seem more related to bug #211338 actually.

6:12 AM Changeset in webkit [261281] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GTK] Gardening, update baselines after r261248
https://bugs.webkit.org/show_bug.cgi?id=211562

Unreviewed gardening.

  • accessibility/gtk/object-attributes-expected.txt:
  • platform/gtk/accessibility/lists-expected.txt:
5:41 AM Changeset in webkit [261280] by Carlos Garcia Campos
  • 3 edits in trunk/Tools

Unreviewed. Fix GTK4 build with current GTK

GtkWindow and GtkOverlay aren't a GtkContainer anymore.

  • MiniBrowser/gtk/BrowserTab.c:

(browserTabConstructed):

  • MiniBrowser/gtk/BrowserWindow.c:

(browser_window_init):

4:16 AM Changeset in webkit [261279] by Antti Koivisto
  • 13 edits
    2 adds in trunk

Add basic support for generating accurate wheel event listener region
https://bugs.webkit.org/show_bug.cgi?id=211512

Reviewed by Simon Fraser.

Source/WebCore:

Add fake properties for wheel event listeners to RenderStyle and use them to
generate regions in EventRegion. There is a separate region for non-passive
wheel event listeners (that will require synchronous handling).

The generated regions are not used for anything in this patch.
Style is not yet invalided on event listener additions and removals.

Test: fast/scrolling/mac/wheel-event-listener-region-basic.html

  • dom/Node.h:
  • rendering/EventRegion.cpp:

(WebCore::EventRegion::unite):
(WebCore::EventRegion::uniteEventListeners):
(WebCore::EventRegion::dump const):

  • rendering/EventRegion.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateEventRegion):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::eventListenerRegionTypes const):
(WebCore::RenderStyle::setEventListenerRegionTypes):

  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleRareInheritedData.cpp:

(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator== const):

  • rendering/style/StyleRareInheritedData.h:
  • style/StyleAdjuster.cpp:

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

LayoutTests:

  • fast/scrolling/mac/wheel-event-listener-region-basic-expected.txt: Added.
  • fast/scrolling/mac/wheel-event-listener-region-basic.html: Added.
2:36 AM Changeset in webkit [261278] by Philippe Normand
  • 4 edits in trunk/Source/WebKit

[GTK] Build warning fixes

Rubber-stamped by Žan Doberšek.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseGrabFocus):

  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::getGPUProcessConnection):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::getNetworkProcessConnection):

2:23 AM Changeset in webkit [261277] by youenn@apple.com
  • 13 edits in trunk/Source

Sending WebRTC network packets should not go through the main thread
https://bugs.webkit.org/show_bug.cgi?id=211291

Reviewed by Eric Carlson.

Source/WebCore:

Covered by existing tests.

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::filterSDP const):
Fix a case where the SDP would be badly formatted if we do not have yet a MDNS name for the corresponding IP address.
Small refactoring to use early returns.

  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::LibWebRTCProvider::getStaticFactoryAndThreads):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:

Add the ability for WebKit LibWebRTCProvider to do some processing on creation of the RTC threads.

Source/WebKit:

Following on receiving RTC packets from a background thread, we also send RTC packets from a background thread.
Creation of the sockets also happens in a background thread.
LibWebRTCNetwork is getting the connection whenever a new connection to network process is created.
It will then hop to the RTC network thread to set the IPC connection to the libwebrtc socket factory.

At creation of the socket, we get the IPC connection to the network process and keep a ref in the RTC socket.
In case network process crashed and the IPC connection of the RTC network is null, we hop to the main thread to create a new IPC connection.
This will fail the creation of the socket (as well as new ones as well) as long as the IPC connection to network process is not valid again.

Covered by existing tests.

  • WebProcess/Network/webrtc/LibWebRTCNetwork.cpp:

(WebKit::LibWebRTCNetwork::setAsActive):
(WebKit::LibWebRTCNetwork::setConnection):
(WebKit::LibWebRTCNetwork::dispatchToThread):

  • WebProcess/Network/webrtc/LibWebRTCNetwork.h:

(WebKit::LibWebRTCNetwork::connection):
(WebKit::LibWebRTCNetwork::isActive const):

  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp:

(WebKit::LibWebRTCProvider::startedNetworkThread):

  • WebProcess/Network/webrtc/LibWebRTCProvider.h:
  • WebProcess/Network/webrtc/LibWebRTCSocket.cpp:

(WebKit::LibWebRTCSocket::SendTo):
(WebKit::LibWebRTCSocket::Close):
(WebKit::LibWebRTCSocket::SetOption):
(WebKit::LibWebRTCSocket::suspend):

  • WebProcess/Network/webrtc/LibWebRTCSocket.h:
  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:

(WebKit::LibWebRTCSocketFactory::setConnection):
(WebKit::LibWebRTCSocketFactory::connection):
(WebKit::LibWebRTCSocketFactory::createServerTcpSocket):
(WebKit::LibWebRTCSocketFactory::createUdpSocket):
(WebKit::LibWebRTCSocketFactory::createClientTcpSocket):
(WebKit::LibWebRTCSocketFactory::createNewConnectionSocket):
(WebKit::LibWebRTCSocketFactory::addSocket):
(WebKit::LibWebRTCSocketFactory::removeSocket):
(WebKit::LibWebRTCSocketFactory::forSocketInGroup):

  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.h:
2:05 AM Changeset in webkit [261276] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

[GTK4] Stop using the GtkWidget.destroy vfunc
https://bugs.webkit.org/show_bug.cgi?id=211553

Reviewed by Carlos Garcia Campos.

No new tests needed.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseDestroy): Removed.
(webkitWebViewBaseDispose): Bring in the code from the removed function, adapt
to use g_clear_pointer() to destroy the nested dialog.
(webkit_web_view_base_class_init): Do not set the GtkWidget.destroy vfunc.

1:40 AM Changeset in webkit [261275] by commit-queue@webkit.org
  • 4 edits in trunk

[WPE][Qt] Enable by default
https://bugs.webkit.org/show_bug.cgi?id=211517

Patch by Philippe Normand <pnormand@igalia.com> on 2020-05-07
Reviewed by Adrian Perez de Castro.

.:

  • Source/cmake/OptionsWPE.cmake: Now that the EWS and bots use the

Flatpak SDK, Qt5 libs are available so we can enable the module
and have bots run its tests.

Source/WebKit:

  • PlatformWPE.cmake: Fix WPEQt build.
1:33 AM Changeset in webkit [261274] by Philippe Normand
  • 4 edits
    158 adds in trunk

[Flatpak SDK] Import build definitions
https://bugs.webkit.org/show_bug.cgi?id=211448

Reviewed by Carlos Alberto Lopez Perez.

To build the SDK, run Tools/Scripts/webkit-flatpak-sdk --build,
this can take hours and use gigabytes of your hard-drive. To build
a single recipe, use something like:

Tools/Scripts/bst-wrapper build sdk/gtk.bst

To enter the Buildstream SDK shell and debug stuff when hacking on
a specific dependency, Tools/Scripts/bst-wrapper shell sdk/gtk.bst.

To test your changes in WebKit:
`shell
$ Tools/Scripts/webkit-flatpak -u --repo=Tools/buildstream/repo
$ Tools/Scripts/run-minibrowser --gtk --flatpak-repo=Tools/buildstream/repo <url>
...
`

bst-wrapper has the same options as bst itself, documented on
https://docs.buildstream.build/1.4.2/index.html.

Internally the bst-wrapper will install Buildstream and a few
other python dependencies in a local virtualenv managed by pipenv.
This is all abstracted though, in theory direct access to the
pipenv environment shouldn't be needed.

  • Scripts/bst-wrapper: Added.
  • Scripts/webkit-flatpak-sdk: Added.
  • buildstream/Makefile: Added.
  • buildstream/Pipfile: Added.
  • buildstream/Pipfile.lock: Added.
  • buildstream/elements/filtered-openh264.bst: Added.
  • buildstream/elements/filtered.bst: Added.
  • buildstream/elements/flatpak-platform-extensions.bst: Added.
  • buildstream/elements/flatpak-runtimes.bst: Added.
  • buildstream/elements/flatpak/platform-arch-libs-debug.bst: Added.
  • buildstream/elements/flatpak/platform-arch-libs.bst: Added.
  • buildstream/elements/flatpak/platform-image.bst: Added.
  • buildstream/elements/flatpak/platform-locale.bst: Added.
  • buildstream/elements/flatpak/platform.bst: Added.
  • buildstream/elements/flatpak/sdk-arch-libs-debug.bst: Added.
  • buildstream/elements/flatpak/sdk-arch-libs.bst: Added.
  • buildstream/elements/flatpak/sdk-debug.bst: Added.
  • buildstream/elements/flatpak/sdk-docs.bst: Added.
  • buildstream/elements/flatpak/sdk-image.bst: Added.
  • buildstream/elements/flatpak/sdk-locale.bst: Added.
  • buildstream/elements/flatpak/sdk.bst: Added.
  • buildstream/elements/freedesktop-sdk.bst: Added.
  • buildstream/elements/manifests/platform-manifest.bst: Added.
  • buildstream/elements/manifests/sdk-manifest.bst: Added.
  • buildstream/elements/qt5.bst: Added.
  • buildstream/elements/qt5/qtbase.bst: Added.
  • buildstream/elements/qt5/qtdeclarative.bst: Added.
  • buildstream/elements/qt5/qtquickcontrols.bst: Added.
  • buildstream/elements/qt5/qtquickcontrols2.bst: Added.
  • buildstream/elements/qt5/qtwayland.bst: Added.
  • buildstream/elements/qt5/qtx11extras.bst: Added.
  • buildstream/elements/sdk-build-depends/libusb.bst: Added.
  • buildstream/elements/sdk-build-depends/sassc.bst: Added.
  • buildstream/elements/sdk-build-depends/utf8proc.bst: Added.
  • buildstream/elements/sdk-depends/libsass.bst: Added.
  • buildstream/elements/sdk-platform.bst: Added.
  • buildstream/elements/sdk.bst: Added.
  • buildstream/elements/sdk/adwaita-icon-theme.bst: Added.
  • buildstream/elements/sdk/at-spi2-atk.bst: Added.
  • buildstream/elements/sdk/at-spi2-core.bst: Added.
  • buildstream/elements/sdk/atk.bst: Added.
  • buildstream/elements/sdk/brotli.bst: Added.
  • buildstream/elements/sdk/capnp.bst: Added.
  • buildstream/elements/sdk/enchant-2.bst: Added.
  • buildstream/elements/sdk/glib-networking.bst: Added.
  • buildstream/elements/sdk/glib.bst: Added.
  • buildstream/elements/sdk/gobject-introspection.bst: Added.
  • buildstream/elements/sdk/graphene.bst: Added.
  • buildstream/elements/sdk/graphviz.bst: Added.
  • buildstream/elements/sdk/gst-libav.bst: Added.
  • buildstream/elements/sdk/gst-plugins-bad.bst: Added.
  • buildstream/elements/sdk/gst-plugins-base.bst: Added.
  • buildstream/elements/sdk/gst-plugins-good.bst: Added.
  • buildstream/elements/sdk/gst-plugins-ugly.bst: Added.
  • buildstream/elements/sdk/gstreamer.bst: Added.
  • buildstream/elements/sdk/gtk+-3.bst: Added.
  • buildstream/elements/sdk/gtk.bst: Added.
  • buildstream/elements/sdk/icecc.bst: Added.
  • buildstream/elements/sdk/intltool.bst: Added.
  • buildstream/elements/sdk/krb5.bst: Added.
  • buildstream/elements/sdk/libcap-ng.bst: Added.
  • buildstream/elements/sdk/libevent.bst: Added.
  • buildstream/elements/sdk/libgcrypt.bst: Added.
  • buildstream/elements/sdk/libmanette.bst: Added.
  • buildstream/elements/sdk/libnotify.bst: Added.
  • buildstream/elements/sdk/libopenh264.bst: Added.
  • buildstream/elements/sdk/libsecret.bst: Added.
  • buildstream/elements/sdk/libsoup.bst: Added.
  • buildstream/elements/sdk/libsrtp2.bst: Added.
  • buildstream/elements/sdk/libusrsctp.bst: Added.
  • buildstream/elements/sdk/libwpe.bst: Added.
  • buildstream/elements/sdk/libzstd.bst: Added.
  • buildstream/elements/sdk/lzo2.bst: Added.
  • buildstream/elements/sdk/openjpeg.bst: Added.
  • buildstream/elements/sdk/openxr.bst: Added.
  • buildstream/elements/sdk/os-release.bst: Added.
  • buildstream/elements/sdk/patchelf.bst: Added.
  • buildstream/elements/sdk/psmisc.bst: Added.
  • buildstream/elements/sdk/pycairo.bst: Added.
  • buildstream/elements/sdk/pygobject.bst: Added.
  • buildstream/elements/sdk/python2-pycairo.bst: Added.
  • buildstream/elements/sdk/python2-pygobject.bst: Added.
  • buildstream/elements/sdk/python2-six.bst: Added.
  • buildstream/elements/sdk/python2-subprocess32.bst: Added.
  • buildstream/elements/sdk/python2.bst: Added.
  • buildstream/elements/sdk/rr.bst: Added.
  • buildstream/elements/sdk/sccache.bst: Added.
  • buildstream/elements/sdk/shared-mime-info.bst: Added.
  • buildstream/elements/sdk/subversion.bst: Added.
  • buildstream/elements/sdk/v4lutils.bst: Added.
  • buildstream/elements/sdk/woff2.bst: Added.
  • buildstream/elements/sdk/wpebackend-fdo.bst: Added.
  • buildstream/elements/sdk/x264.bst: Added.
  • buildstream/elements/sdk/xorg-server.bst: Added.
  • buildstream/elements/test-infra.bst: Added.
  • buildstream/elements/test-infra/apr-util.bst: Added.
  • buildstream/elements/test-infra/apr.bst: Added.
  • buildstream/elements/test-infra/httpd.bst: Added.
  • buildstream/elements/test-infra/perl-cgi-pm.bst: Added.
  • buildstream/elements/test-infra/perl-http-date-pm.bst: Added.
  • buildstream/elements/test-infra/php.bst: Added.
  • buildstream/elements/test-infra/webkitgtk-test-dicts.bst: Added.
  • buildstream/elements/test-infra/webkitgtk-test-fonts.bst: Added.
  • buildstream/files/krb5/krb5.conf: Added.
  • buildstream/files/os-release/issue.in: Added.
  • buildstream/files/os-release/issue.net.in: Added.
  • buildstream/files/os-release/org.webkit.Platform.appdata.xml.in: Added.
  • buildstream/files/os-release/org.webkit.Sdk.appdata.xml.in: Added.
  • buildstream/files/os-release/os-release.in: Added.
  • buildstream/patches/fdo-0001-Update-gcc-to-9.3.0.patch: Added.
  • buildstream/patches/fdo/0001-Add-Jack.patch: Added.
  • buildstream/patches/fdo/0001-components-xdg-desktop-portal.bst-Update-to-1.6.0.patch: Added.
  • buildstream/patches/fdo/0001-ffmpeg-Add-MS-MPEG-DivX-variants.patch: Added.
  • buildstream/patches/fdo/0002-Update-PipeWire-to-0.3.1.patch: Added.
  • buildstream/patches/fdo/0002-ffmpeg-Add-VP6-and-Sorenson-Spark-video-codecs.patch: Added.
  • buildstream/patches/fdo/0003-Add-Bluez.patch: Added.
  • buildstream/patches/fdo/0003-ffmpeg-Add-Intel-Indeo-and-Cinepak-video-support.patch: Added.
  • buildstream/patches/fdo/0004-ffmpeg-Add-MPEG-2-video-decoder.patch: Added.
  • buildstream/patches/fdo/0005-ffmpeg-Add-msmpeg4v3-support.patch: Added.
  • buildstream/patches/gst-libav-stop-caching-codecs.patch: Added.
  • buildstream/patches/gst-plugins-bad-0001-h264parse-Post-a-WARNING-when-data-is-broken.patch: Added.
  • buildstream/patches/gst-plugins-base-0001-glupload-Fix-fallback-from-direct-dmabuf-to-dmabuf-u.patch: Added.
  • buildstream/patches/gst-plugins-base-0001-playbin-Handle-error-message-with-redirection-indica.patch: Added.
  • buildstream/patches/gst-plugins-base-0002-glupload-fix-segfault.patch: Added.
  • buildstream/patches/gst-plugins-good-qtdemux-Specify-REDIRECT-information-in-error-messag.patch: Added.
  • buildstream/patches/gtk-meson-Bump-to-latest-version-of-the-3.24-branch.patch: Added.
  • buildstream/patches/httpd-0001-configure-use-pkg-config-for-PCRE-detection.patch: Added.
  • buildstream/patches/libav-0001-gstavviddec-Limit-default-number-of-decoder-threads.patch: Added.
  • buildstream/patches/libgcrypt-0001-Use-pkg-config-to-detect-gpg-error.patch: Added.
  • buildstream/patches/libgcrypt-use-only-dev-urandom-for-testing.patch: Added.
  • buildstream/patches/libsecret-b53e9876f4611525b7a8f69a3110fbec51dcede0.patch: Added.
  • buildstream/patches/nettle-no-debug.diff: Added.
  • buildstream/patches/qtbase-avoid-hardcoding-kernel-version.patch: Added.
  • buildstream/patches/qtbase-revert-correct-handling-for-xdg-runtime-dir.patch: Added.
  • buildstream/patches/qtbase-use-wayland-on-gnome.patch: Added.
  • buildstream/patches/qtdeclarative-use-python3.patch: Added.
  • buildstream/patches/qtwayland-use-gnome-platform-theme-on-gnome-based-desktops.patch: Added.
  • buildstream/patches/sccache-no-selenium.patch: Added.
  • buildstream/patches/xserver-search-for-DRI-drivers-at-LIBGL_DRIVERS_PATH-environ.patch: Added.
  • buildstream/project.conf: Added.
  • buildstream/utils/generate-version: Added.
  • gtk/install-dependencies:
  • wpe/install-dependencies:
12:49 AM Changeset in webkit [261273] by svillar@igalia.com
  • 6 edits in trunk/Source/WebCore

[WebXR] Implement simulateUserActivation()
https://bugs.webkit.org/show_bug.cgi?id=211516

Reviewed by Youenn Fablet.

simulateUserActivation() is the method used by the WebXR Test API to
mock a user activation and thus let WebXR API think that the user is
behind the request that is going to be made in the function passed as
argument.

No new tests added as the imported WebXR web-platform-tests already make
use of this API.

  • testing/WebXRTest.cpp:

(WebCore::WebXRTest::simulateUserActivation): Implemented.

  • testing/WebXRTest.h: Added Document parameter.
  • testing/WebXRTest.idl: Call with Document.
  • testing/XRSimulateUserActivationFunction.h: Removed function params.
  • testing/XRSimulateUserActivationFunction.idl: Ditto.
12:34 AM Changeset in webkit [261272] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GTK][WPE] Gardening, update test expectations after r259705
https://bugs.webkit.org/show_bug.cgi?id=211552

Unreviewed gardening.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
12:00 AM Changeset in webkit [261271] by mark.lam@apple.com
  • 8 edits in trunk

Fix broken exceptionFuzz tests.
https://bugs.webkit.org/show_bug.cgi?id=211550

Reviewed by Yusuke Suzuki.

JSTests:

The tests should not be relying on setting a JSC Option at runtime because the
options are already frozen by then. Instead, we set the needed
--useExceptionFuzz=true option from the command line.

  • exceptionFuzz/3d-cube.js:
  • exceptionFuzz/date-format-xparb.js:
  • exceptionFuzz/earley-boyer.js:

Source/JavaScriptCore:

Remove the bad and now unused utility function to set Options::useExceptionFuzz().

  • tools/JSDollarVM.cpp:

(JSC::JSDollarVM::finishCreation):
(JSC::functionEnableExceptionFuzz): Deleted.

Tools:

Pass the --useExceptionFuzz=true option from the command line for runExceptionFuzz.

  • Scripts/run-jsc-stress-tests:

May 6, 2020:

11:36 PM Changeset in webkit [261270] by achristensen@apple.com
  • 7 edits
    1 add in trunk/Source/WebKit

Fix webkitpy tests after r261254
https://bugs.webkit.org/show_bug.cgi?id=211112

test.messages.in was accidentally deleted instead of moved, and messages_unittest.py needed to be told of the new locations of results.
The rest is just running the generator to update results.

  • Scripts/MessageNames.cpp:

(IPC::description):
(IPC::receiverName):
(IPC::isValidMessageName):

  • Scripts/MessageNames.h:
  • Scripts/testMessageReceiver.cpp:

(Messages::WebPage::GetPluginProcessConnection::send):
(Messages::WebPage::TestMultipleAttributes::send):
(WebKit::WebPage::didReceiveMessage):
(WebKit::WebPage::didReceiveSyncMessage):

  • Scripts/testMessages.h:

(Messages::WebPage::messageReceiverName):
(Messages::WebPage::LoadURL::name):
(Messages::WebPage::LoadURL::LoadURL):
(Messages::WebPage::LoadURL::arguments const):
(Messages::WebPage::LoadSomething::name):
(Messages::WebPage::LoadSomething::LoadSomething):
(Messages::WebPage::LoadSomething::arguments const):
(Messages::WebPage::TouchEvent::name):
(Messages::WebPage::TouchEvent::TouchEvent):
(Messages::WebPage::TouchEvent::arguments const):
(Messages::WebPage::AddEvent::name):
(Messages::WebPage::AddEvent::AddEvent):
(Messages::WebPage::AddEvent::arguments const):
(Messages::WebPage::LoadSomethingElse::name):
(Messages::WebPage::LoadSomethingElse::LoadSomethingElse):
(Messages::WebPage::LoadSomethingElse::arguments const):
(Messages::WebPage::DidReceivePolicyDecision::name):
(Messages::WebPage::DidReceivePolicyDecision::DidReceivePolicyDecision):
(Messages::WebPage::DidReceivePolicyDecision::arguments const):
(Messages::WebPage::Close::name):
(Messages::WebPage::Close::arguments const):
(Messages::WebPage::PreferencesDidChange::name):
(Messages::WebPage::PreferencesDidChange::PreferencesDidChange):
(Messages::WebPage::PreferencesDidChange::arguments const):
(Messages::WebPage::SendDoubleAndFloat::name):
(Messages::WebPage::SendDoubleAndFloat::SendDoubleAndFloat):
(Messages::WebPage::SendDoubleAndFloat::arguments const):
(Messages::WebPage::SendInts::name):
(Messages::WebPage::SendInts::SendInts):
(Messages::WebPage::SendInts::arguments const):
(Messages::WebPage::CreatePlugin::name):
(Messages::WebPage::CreatePlugin::CreatePlugin):
(Messages::WebPage::CreatePlugin::arguments const):
(Messages::WebPage::RunJavaScriptAlert::name):
(Messages::WebPage::RunJavaScriptAlert::RunJavaScriptAlert):
(Messages::WebPage::RunJavaScriptAlert::arguments const):
(Messages::WebPage::GetPlugins::name):
(Messages::WebPage::GetPlugins::GetPlugins):
(Messages::WebPage::GetPlugins::arguments const):
(Messages::WebPage::GetPluginProcessConnection::name):
(Messages::WebPage::GetPluginProcessConnection::GetPluginProcessConnection):
(Messages::WebPage::GetPluginProcessConnection::arguments const):
(Messages::WebPage::TestMultipleAttributes::name):
(Messages::WebPage::TestMultipleAttributes::arguments const):
(Messages::WebPage::TestParameterAttributes::name):
(Messages::WebPage::TestParameterAttributes::TestParameterAttributes):
(Messages::WebPage::TestParameterAttributes::arguments const):
(Messages::WebPage::TemplateTest::name):
(Messages::WebPage::TemplateTest::TemplateTest):
(Messages::WebPage::TemplateTest::arguments const):
(Messages::WebPage::SetVideoLayerID::name):
(Messages::WebPage::SetVideoLayerID::SetVideoLayerID):
(Messages::WebPage::SetVideoLayerID::arguments const):
(Messages::WebPage::DidCreateWebProcessConnection::name):
(Messages::WebPage::DidCreateWebProcessConnection::DidCreateWebProcessConnection):
(Messages::WebPage::DidCreateWebProcessConnection::arguments const):
(Messages::WebPage::InterpretKeyEvent::name):
(Messages::WebPage::InterpretKeyEvent::InterpretKeyEvent):
(Messages::WebPage::InterpretKeyEvent::arguments const):
(Messages::WebPage::DeprecatedOperation::name):
(Messages::WebPage::DeprecatedOperation::DeprecatedOperation):
(Messages::WebPage::DeprecatedOperation::arguments const):
(Messages::WebPage::ExperimentalOperation::name):
(Messages::WebPage::ExperimentalOperation::ExperimentalOperation):
(Messages::WebPage::ExperimentalOperation::arguments const):
(Messages::None::messageReceiverName): Deleted.

  • Scripts/testMessagesReplies.h:
  • Scripts/webkit/messages_unittest.py:
  • Scripts/webkit/test.messages.in: Added.
11:18 PM Changeset in webkit [261269] by Megan Gardner
  • 3 edits in trunk/Source/WebKit

Context Menus presented from the wrong location when presented from sub-frames
https://bugs.webkit.org/show_bug.cgi?id=211537
<rdar://problem/60390846>

Reviewed by Tim Horton.

The calculation for bounds for selection Information did not take frames into account,
so if a frame was used, the location would not be correct in the context of the whole
page, so the presentation location ended up being way off.

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel showDocumentPickerMenu]):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::boundsPositionInformation):
(WebKit::selectionPositionInformation):

10:37 PM Changeset in webkit [261268] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

Unreviewed, reverting r260737.

Change not needed after r261267.

Reverted changeset:

"[GTK] Gardening, skipping more inspector tests."
https://trac.webkit.org/changeset/260737

10:34 PM Changeset in webkit [261267] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

Unreviewed, reverting r260713.

Change not needed after r260844.

Reverted changeset:

"[GTK] Gardening, temporarily skip WebInspector tests after
r210942 and r260696"
https://bugs.webkit.org/show_bug.cgi?id=211035
https://trac.webkit.org/changeset/260713

10:12 PM Changeset in webkit [261266] by Diego Pino Garcia
  • 5 edits in trunk/LayoutTests

[GTK] Gardening, dump stderr in console log for several web-animation tests
https://bugs.webkit.org/show_bug.cgi?id=211549

Unreviewed gardening.

  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
10:08 PM Changeset in webkit [261265] by Lauro Moura
  • 2 edits in trunk/WebDriverTests

[WebDriver] gardening flaky test.

Unreviewed test gardening.

8:40 PM Changeset in webkit [261264] by Fujii Hironori
  • 5 edits
    2 adds in trunk/Source

[Win] Implement DisplayRefreshMonitor by using RunLoop::Timer
https://bugs.webkit.org/show_bug.cgi?id=211431

Reviewed by Don Olmstead.

Source/WebCore:

  • PlatformWin.cmake:
  • platform/graphics/DisplayRefreshMonitor.cpp:

(WebCore::DisplayRefreshMonitor::createDefaultDisplayRefreshMonitor):

  • platform/graphics/win/DisplayRefreshMonitorWin.cpp: Added.

(WebCore::DisplayRefreshMonitorWin::create):
(WebCore::DisplayRefreshMonitorWin::DisplayRefreshMonitorWin):
(WebCore::DisplayRefreshMonitorWin::requestRefreshCallback):
(WebCore::DisplayRefreshMonitorWin::displayLinkFired):

  • platform/graphics/win/DisplayRefreshMonitorWin.h: Added.

Source/WTF:

USE_REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR is turned off only for Windows ports.
Turn it on, and add DisplayRefreshMonitorWin.

I'll remove USE_REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR macro in a follow-up patch.

  • wtf/PlatformUse.h:
7:13 PM Changeset in webkit [261263] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r260689.
https://bugs.webkit.org/show_bug.cgi?id=211542

"Caused regressions deleting text and filling password fields"
(Requested by ddkilzer on #webkit).

Reverted changeset:

"WebPasteboardProxy::getPasteboardStringsForType() and
WebPasteboardProxy::readURLFromPasteboard() should check
return value of SharedMemory::createHandle()"
https://bugs.webkit.org/show_bug.cgi?id=211002
https://trac.webkit.org/changeset/260689

5:27 PM Changeset in webkit [261262] by dino@apple.com
  • 539 edits
    19 adds
    160 deletes in trunk/Source/ThirdParty/ANGLE

Update ANGLE to 2020-03-27
https://bugs.webkit.org/show_bug.cgi?id=209689

Reverting r259589. It caused
https://bugs.webkit.org/show_bug.cgi?id=210992

5:18 PM Changeset in webkit [261261] by Alan Bujtas
  • 7 edits in trunk/Source

[ContentObservation] Shutterstock search bar is not activated on the first tap
https://bugs.webkit.org/show_bug.cgi?id=211529
<rdar://problem/58843932>

Reviewed by Simon Fraser.

Source/WebCore:

  • page/Quirks.cpp:

(WebCore::Quirks::shouldIgnoreContentObservationForSyntheticClick const):

  • page/Quirks.h:

Source/WebKit:

Shutterstock has a “initial click” action which converts some “actionable” elements (<a>) to some other “actionable” elements (<button>).
If this initial click also happens to be on an element that triggers content observation (input), we see those changes as actionable content and not proceed with the click event (stay at hover).
Any subsequent click works as expected.
It’s very difficult to eliminate such false positives since all we see is that some "actionable" content is going away while some "actionable" content is being created.
This quirk ensures that the first tap on the page does not trigger content observation. (It also means that any hover menu gets submitted on the first tap, but apparently
the Shutterstock top menu bar works fine with click events.)

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didStartPageTransition):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::handleSyntheticClick):

5:00 PM Changeset in webkit [261260] by keith_miller@apple.com
  • 5 edits in trunk

DFG ByVal nodes with ArrayModes should clobberTop until Fixup phase runs.
https://bugs.webkit.org/show_bug.cgi?id=211531

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/for-of-get-by-val-marks-clobbers-exit-state.js: Added.

(foo):

  • stress/put-by-val-correctly-clobbers-exit-state-when-misprofiling-index.js: Added.

(let.foo.vm.createBuiltin):

Source/JavaScriptCore:

When parsing bytecode we may pick a relatively constrained
ArrayMode based on our profiling. Some of these modes may not
clobber exit state. However, Fixup sometimes wants to widen this
to a more generic mode based on other data. This causes us to
think it was valid to exit immediately after the
GetByVal/HasIndexedProperty, which would be wrong with the wider
ArrayMode. We may also incorrectly insert invalidition points
if clobberize gives us the wrong data.

To fix this clobberize should say All ByVal nodes clobberTop()
until after fixup. Additionally, this patch adds an assertion that
nodes don't go from not clobbering exit state to clobbering exit
state during fixup.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGGraph.h:
4:50 PM Changeset in webkit [261259] by Wenson Hsieh
  • 11 edits
    1 copy in trunk/Source/WebKit

Use CocoaColor in more places instead of platform defines
https://bugs.webkit.org/show_bug.cgi?id=211527

Reviewed by Darin Adler and Tim Horton.

Use CocoaColor (added in r261247) in more places, and also introduce CocoaFont.h and use it to simplify some
existing code that uses platform ifdefs for UIFont, NSFont, UIFontDescriptor and NSFontDescriptor.

No change in behavior.

  • Platform/cocoa/CocoaColor.h:
  • Platform/cocoa/CocoaFont.h: Copied from Source/WebKit/Platform/cocoa/CocoaColor.h.
  • Platform/cocoa/CocoaImage.h:

Change @classes to OBJC_CLASS, so that this header can be safely imported in C++ code.

  • Shared/Cocoa/ArgumentCodersCocoa.mm:

(IPC::typeFromObject):
(IPC::isSerializableValue):
(IPC::encodeFontInternal):
(IPC::encodeObject):
(IPC::platformColorClass): Deleted.
(IPC::platformFontClass): Deleted.

  • Shared/Cocoa/CoreTextHelpers.h:
  • Shared/Cocoa/CoreTextHelpers.mm:

(WebKit::fontWithAttributes):

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
  • UIProcess/Cocoa/WKSafeBrowsingWarning.h:
  • UIProcess/Cocoa/WKSafeBrowsingWarning.mm:

(fontOfSize):
(colorForItem):
(-[WKSafeBrowsingBox setSafeBrowsingBackgroundColor:]):
(-[WKSafeBrowsingWarning showDetailsClicked]):
(-[WKSafeBrowsingTextView initWithAttributedString:forWarning:]):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::updateFontManagerIfNeeded):

  • WebKit.xcodeproj/project.pbxproj:
4:16 PM Changeset in webkit [261258] by Jack Lee
  • 3 edits
    2 adds in trunk

Nullptr crash in indentOutdentCommand::formatRange with asynchronous commands: indent and insert list.
https://bugs.webkit.org/show_bug.cgi?id=211466
<rdar://problem/62845430>

Reviewed by Geoffrey Garen.

Source/WebCore:

Check for null outerBlock returned by splitTreeToNode and bail out.

Test: fast/editing/indent-then-insertUL-crash.html

  • editing/IndentOutdentCommand.cpp:

(WebCore::IndentOutdentCommand::indentIntoBlockquote):

LayoutTests:

Added a regression test for the crash.

  • fast/editing/indent-then-insertUL-crash-expected.txt: Added.
  • fast/editing/indent-then-insertUL-crash.html: Added.
4:01 PM Changeset in webkit [261257] by Darin Adler
  • 11 edits in trunk/Source

Make a helper for the pattern of ICU functions that may need to be called twice to populate a buffer
https://bugs.webkit.org/show_bug.cgi?id=211499

Reviewed by Ross Kirsling.

Source/JavaScriptCore:

  • runtime/IntlDateTimeFormat.cpp:

(JSC::defaultTimeZone): Use callBufferProducingFunction.
(JSC::canonicalizeTimeZoneName): Ditto.
(JSC::IntlDateTimeFormat::initializeDateTimeFormat): Ditto.
(JSC::IntlDateTimeFormat::format const): Ditto.
(JSC::IntlDateTimeFormat::formatToParts const): Ditto.

  • runtime/IntlLocale.cpp:

(JSC::LocaleIDBuilder::toCanonical): Ditto.
(JSC::IntlLocale::language): Ditto.
(JSC::IntlLocale::script): Ditto.
(JSC::IntlLocale::region): Ditto.

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::format const): Ditto.
(JSC::IntlNumberFormat::formatToParts const): Ditto.

  • runtime/IntlObject.cpp:

(JSC::languageTagForLocaleID): Ditto.

  • runtime/IntlRelativeTimeFormat.cpp:

(JSC::IntlRelativeTimeFormat::formatInternal const): Ditto.
(JSC::IntlRelativeTimeFormat::formatToParts const): Ditto.

  • runtime/StringPrototype.cpp:

(JSC::toLocaleCase): Ditto.

Source/WebCore:

  • editing/TextIterator.cpp:

(WebCore::normalizeCharacters): Use callBufferProducingFunction.

Source/WTF:

This first cut version is ready to be used in most, but not all, of the places we use the
needsToGrowToProduceBuffer function. The places it is not right for yet are ones that have
special considerations because of null character termination or destinations that are
not a Vector. Later we can refine that further, if we like, and possibly use something
similar in call sites that use needsToGrowToProduceCString as well.

  • wtf/unicode/icu/ICUHelpers.h:

(WTF::needsToGrowToProduceBuffer): Changed to constexpr, since we can.
(WTF::needsToGrowToProduceCString): Ditto.
(WTF::CallBufferProducingFunction::findVector): Added. Implementation detail
of callBufferProducingFunction.
(WTF::CallBufferProducingFunction::argumentTuple): Ditto.
(WTF::callBufferProducingFunction): Added.

3:56 PM Changeset in webkit [261256] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

REGRESSION (r261056): [ Mac WK1 ] inspector/console/console-api.html is flaky crashing
https://bugs.webkit.org/show_bug.cgi?id=211386

Reviewed by Tim Horton.

This bug was caused by the failure to clear the delegate on an NSScrollerImp when, for testing,
we flip between the native scrollbar theme, and the mock scrollbar theme.

The crux of the fix is to have ScrollAnimatorMac's scrollerImpForScrollbar() call a
static function on ScrollbarThemeMac to get the painters, rather than going through
the possibly-null ScrollbarThemeMac instance.

A belt-and-braces fix in ScrollbarThemeMac::unregisterScrollbar() always clears the delegate
on the NSScrollerImp when unregistering a scrollbar.

Finally, modernize code in various places.

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::scrollerImpForScrollbar):
(WebCore::ScrollAnimatorMac::updateScrollerStyle):

  • platform/mac/ScrollbarThemeMac.h:
  • platform/mac/ScrollbarThemeMac.mm:

(WebCore::scrollbarMap):
(+[WebScrollbarPrefsObserver appearancePrefsChanged:]):
(WebCore::ScrollbarThemeMac::registerScrollbar):
(WebCore::ScrollbarThemeMac::unregisterScrollbar):
(WebCore::ScrollbarThemeMac::setNewPainterForScrollbar):
(WebCore::ScrollbarThemeMac::painterForScrollbar):
(WebCore::ScrollbarThemeMac::hasThumb):
(WebCore::ScrollbarThemeMac::minimumThumbLength):
(WebCore::ScrollbarThemeMac::updateEnabledState):
(WebCore::ScrollbarThemeMac::paint):

3:55 PM Changeset in webkit [261255] by Jack Lee
  • 3 edits
    2 adds in trunk

Nullptr crash in InsertListCommand::doApply with user-select:none elements
https://bugs.webkit.org/show_bug.cgi?id=211534
<rdar://problem/62898521>

Reviewed by Geoffrey Garen.

Source/WebCore:

Check for empty position in InsertListCommand::doApply when searching for the start of
last paragraph in the selected range. Skip listifying individual paragraphs in the range.

Test: editing/inserting/insert-list-user-select-none-crash.html

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::doApply):

LayoutTests:

Added a regression test for the crash.

  • editing/inserting/insert-list-user-select-none-crash-expected.txt: Added.
  • editing/inserting/insert-list-user-select-none-crash.html: Added.
3:54 PM Changeset in webkit [261254] by commit-queue@webkit.org
  • 65 edits
    2 copies
    9 moves
    2 adds
    3 deletes in trunk/Source

Reduce IPC overhead for message receiver name and message name to 2 bytes
https://bugs.webkit.org/show_bug.cgi?id=211112

Patch by Alex Christensen <achristensen@webkit.org> on 2020-05-06
Reviewed by Chris Dumez.

Source/WebKit:

  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::didReceiveInvalidMessage):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage):
(WebKit::NetworkConnectionToWebProcess::didReceiveInvalidMessage):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::didReceiveMessage):
(WebKit::NetworkProcess::didReceiveSyncMessage):

  • NetworkProcess/ios/NetworkConnectionToWebProcessIOS.mm:

(WebKit::NetworkConnectionToWebProcess::paymentCoordinatorAddMessageReceiver): Deleted.
(WebKit::NetworkConnectionToWebProcess::paymentCoordinatorRemoveMessageReceiver): Deleted.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::WaitForMessageState::WaitForMessageState):
(IPC::Connection::addWorkQueueMessageReceiver):
(IPC::Connection::removeWorkQueueMessageReceiver):
(IPC::Connection::dispatchWorkQueueMessageReceiverMessage):
(IPC::Connection::addThreadMessageReceiver):
(IPC::Connection::removeThreadMessageReceiver):
(IPC::Connection::dispatchThreadMessageReceiverMessage):
(IPC::Connection::createSyncMessageEncoder):
(IPC::Connection::sendMessage):
(IPC::Connection::waitForMessage):
(IPC::Connection::sendSyncMessage):
(IPC::Connection::waitForSyncReply):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::dispatchSyncMessage):
(IPC::Connection::dispatchDidReceiveInvalidMessage):
(IPC::Connection::dispatchMessage):
(IPC::Connection::dispatchMessageToWorkQueueReceiver):
(IPC::Connection::dispatchMessageToThreadReceiver):
(IPC::Connection::dispatchIncomingMessages):

  • Platform/IPC/Connection.h:

(IPC::Connection::send):
(IPC::Connection::sendWithAsyncReply):
(IPC::Connection::sendSync):
(IPC::Connection::waitForAndDispatchImmediately):

  • Platform/IPC/Decoder.cpp:
  • Platform/IPC/Decoder.h:

(IPC::Decoder::messageReceiverName const):
(IPC::Decoder::messageName const):
(IPC::Decoder::decode):
(IPC::Decoder::operator>>):

  • Platform/IPC/Encoder.cpp:

(IPC::Encoder::Encoder):
(IPC::Encoder::encodeHeader):

  • Platform/IPC/Encoder.h:
  • Platform/IPC/HandleMessage.h:

(IPC::handleMessageAsync):

  • Platform/IPC/MessageReceiverMap.cpp:

(IPC::MessageReceiverMap::addMessageReceiver):
(IPC::MessageReceiverMap::removeMessageReceiver):
(IPC::MessageReceiverMap::dispatchMessage):
(IPC::MessageReceiverMap::dispatchSyncMessage):

  • Platform/IPC/MessageReceiverMap.h:
  • Platform/IPC/MessageSender.h:
  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::Connection::open):
(IPC::Connection::sendMessage):
(IPC::Connection::sendOutgoingMessage):
(IPC::Connection::receiveSourceEventHandler):

  • Platform/IPC/cocoa/MachMessage.cpp:

(IPC::MachMessage::create):
(IPC::MachMessage::MachMessage):

  • Platform/IPC/cocoa/MachMessage.h:

(IPC::MachMessage::messageReceiverName const):
(IPC::MachMessage::messageName const):

  • PluginProcess/WebProcessConnection.cpp:

(WebKit::WebProcessConnection::didReceiveInvalidMessage):

  • PluginProcess/WebProcessConnection.h:
  • Scripts/Makefile:
  • Scripts/generate-message-receiver.py:

(main):

  • Scripts/webkit/LegacyMessages-expected.h: Removed.
  • Scripts/webkit/LegacyMessagesReplies-expected.h: Removed.
  • Scripts/webkit/MessageNames.cpp: Added.

(IPC::description):

  • Scripts/webkit/MessageNames.h: Added.

(IPC::receiverName):
(WTF::isValidEnum):

  • Scripts/webkit/MessageReceiver-expected.cpp: Removed.
  • Scripts/webkit/MessageReceiverSuperclass-expected.cpp: Removed.
  • Scripts/webkit/Messages-expected.h: Removed.
  • Scripts/webkit/MessagesReplies-expected.h: Removed.
  • Scripts/webkit/MessagesRepliesSuperclassReplies-expected.h: Removed.
  • Scripts/webkit/MessagesSuperclass-expected.h: Removed.
  • Scripts/webkit/messages.py:
  • Scripts/webkit/test-legacy-messages.in: Removed.
  • Scripts/webkit/test-legacy.messages.in: Copied from Source/WebKit/Scripts/webkit/test-legacy-messages.in.
  • Scripts/webkit/test-legacyMessageReceiver.cpp: Added.

(Messages::WebPage::GetPluginProcessConnection::send):
(Messages::WebPage::TestMultipleAttributes::send):
(WebKit::WebPage::didReceiveWebPageMessage):
(WebKit::WebPage::didReceiveSyncWebPageMessage):

  • Scripts/webkit/test-legacyMessages.h: Added.

(Messages::WebPage::messageReceiverName):
(Messages::WebPage::LoadURL::name):
(Messages::WebPage::LoadURL::LoadURL):
(Messages::WebPage::LoadURL::arguments const):
(Messages::WebPage::LoadSomething::name):
(Messages::WebPage::LoadSomething::LoadSomething):
(Messages::WebPage::LoadSomething::arguments const):
(Messages::WebPage::TouchEvent::name):
(Messages::WebPage::TouchEvent::TouchEvent):
(Messages::WebPage::TouchEvent::arguments const):
(Messages::WebPage::AddEvent::name):
(Messages::WebPage::AddEvent::AddEvent):
(Messages::WebPage::AddEvent::arguments const):
(Messages::WebPage::LoadSomethingElse::name):
(Messages::WebPage::LoadSomethingElse::LoadSomethingElse):
(Messages::WebPage::LoadSomethingElse::arguments const):
(Messages::WebPage::DidReceivePolicyDecision::name):
(Messages::WebPage::DidReceivePolicyDecision::DidReceivePolicyDecision):
(Messages::WebPage::DidReceivePolicyDecision::arguments const):
(Messages::WebPage::Close::name):
(Messages::WebPage::Close::arguments const):
(Messages::WebPage::PreferencesDidChange::name):
(Messages::WebPage::PreferencesDidChange::PreferencesDidChange):
(Messages::WebPage::PreferencesDidChange::arguments const):
(Messages::WebPage::SendDoubleAndFloat::name):
(Messages::WebPage::SendDoubleAndFloat::SendDoubleAndFloat):
(Messages::WebPage::SendDoubleAndFloat::arguments const):
(Messages::WebPage::SendInts::name):
(Messages::WebPage::SendInts::SendInts):
(Messages::WebPage::SendInts::arguments const):
(Messages::WebPage::CreatePlugin::name):
(Messages::WebPage::CreatePlugin::CreatePlugin):
(Messages::WebPage::CreatePlugin::arguments const):
(Messages::WebPage::RunJavaScriptAlert::name):
(Messages::WebPage::RunJavaScriptAlert::RunJavaScriptAlert):
(Messages::WebPage::RunJavaScriptAlert::arguments const):
(Messages::WebPage::GetPlugins::name):
(Messages::WebPage::GetPlugins::GetPlugins):
(Messages::WebPage::GetPlugins::arguments const):
(Messages::WebPage::GetPluginProcessConnection::name):
(Messages::WebPage::GetPluginProcessConnection::GetPluginProcessConnection):
(Messages::WebPage::GetPluginProcessConnection::arguments const):
(Messages::WebPage::TestMultipleAttributes::name):
(Messages::WebPage::TestMultipleAttributes::arguments const):
(Messages::WebPage::TestParameterAttributes::name):
(Messages::WebPage::TestParameterAttributes::TestParameterAttributes):
(Messages::WebPage::TestParameterAttributes::arguments const):
(Messages::WebPage::TemplateTest::name):
(Messages::WebPage::TemplateTest::TemplateTest):
(Messages::WebPage::TemplateTest::arguments const):
(Messages::WebPage::SetVideoLayerID::name):
(Messages::WebPage::SetVideoLayerID::SetVideoLayerID):
(Messages::WebPage::SetVideoLayerID::arguments const):
(Messages::WebPage::DidCreateWebProcessConnection::name):
(Messages::WebPage::DidCreateWebProcessConnection::DidCreateWebProcessConnection):
(Messages::WebPage::DidCreateWebProcessConnection::arguments const):
(Messages::WebPage::InterpretKeyEvent::name):
(Messages::WebPage::InterpretKeyEvent::InterpretKeyEvent):
(Messages::WebPage::InterpretKeyEvent::arguments const):
(Messages::WebPage::DeprecatedOperation::name):
(Messages::WebPage::DeprecatedOperation::DeprecatedOperation):
(Messages::WebPage::DeprecatedOperation::arguments const):
(Messages::WebPage::ExperimentalOperation::name):
(Messages::WebPage::ExperimentalOperation::ExperimentalOperation):
(Messages::WebPage::ExperimentalOperation::arguments const):

  • Scripts/webkit/test-legacyMessagesReplies.h: Added.
  • Scripts/webkit/test-messages.in: Removed.
  • Scripts/webkit/test-superclass-messages.in: Removed.
  • Scripts/webkit/test-superclass.messages.in: Copied from Source/WebKit/Scripts/webkit/test-superclass-messages.in.
  • Scripts/webkit/test-superclassMessageReceiver.cpp: Added.

(Messages::WebPage::TestAsyncMessage::callReply):
(Messages::WebPage::TestAsyncMessage::cancelReply):
(Messages::WebPage::TestAsyncMessage::send):
(Messages::WebPage::TestAsyncMessageWithNoArguments::callReply):
(Messages::WebPage::TestAsyncMessageWithNoArguments::cancelReply):
(Messages::WebPage::TestAsyncMessageWithNoArguments::send):
(Messages::WebPage::TestAsyncMessageWithMultipleArguments::callReply):
(Messages::WebPage::TestAsyncMessageWithMultipleArguments::cancelReply):
(Messages::WebPage::TestAsyncMessageWithMultipleArguments::send):
(Messages::WebPage::TestSyncMessage::send):
(Messages::WebPage::TestSynchronousMessage::send):
(WebKit::WebPage::didReceiveMessage):
(WebKit::WebPage::didReceiveSyncMessage):

  • Scripts/webkit/test-superclassMessages.h: Added.

(Messages::WebPage::messageReceiverName):
(Messages::WebPage::LoadURL::name):
(Messages::WebPage::LoadURL::LoadURL):
(Messages::WebPage::LoadURL::arguments const):
(Messages::WebPage::TestAsyncMessage::name):
(Messages::WebPage::TestAsyncMessage::asyncMessageReplyName):
(Messages::WebPage::TestAsyncMessage::TestAsyncMessage):
(Messages::WebPage::TestAsyncMessage::arguments const):
(Messages::WebPage::TestAsyncMessageWithNoArguments::name):
(Messages::WebPage::TestAsyncMessageWithNoArguments::asyncMessageReplyName):
(Messages::WebPage::TestAsyncMessageWithNoArguments::arguments const):
(Messages::WebPage::TestAsyncMessageWithMultipleArguments::name):
(Messages::WebPage::TestAsyncMessageWithMultipleArguments::asyncMessageReplyName):
(Messages::WebPage::TestAsyncMessageWithMultipleArguments::arguments const):
(Messages::WebPage::TestSyncMessage::name):
(Messages::WebPage::TestSyncMessage::TestSyncMessage):
(Messages::WebPage::TestSyncMessage::arguments const):
(Messages::WebPage::TestSynchronousMessage::name):
(Messages::WebPage::TestSynchronousMessage::TestSynchronousMessage):
(Messages::WebPage::TestSynchronousMessage::arguments const):

  • Scripts/webkit/test-superclassMessagesReplies.h: Added.
  • Scripts/webkit/test.messages.in: Added.
  • Scripts/webkit/testMessageReceiver.cpp: Added.
  • Scripts/webkit/testMessages.h: Added.

(Messages::None::messageReceiverName):

  • Scripts/webkit/testMessagesReplies.h: Added.
  • Shared/ApplePay/WebPaymentCoordinatorProxy.h:
  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::WebPaymentCoordinatorProxy::WebPaymentCoordinatorProxy):
(WebKit::WebPaymentCoordinatorProxy::~WebPaymentCoordinatorProxy):

  • Shared/AuxiliaryProcess.cpp:

(WebKit::AuxiliaryProcess::addMessageReceiver):
(WebKit::AuxiliaryProcess::removeMessageReceiver):
(WebKit::AuxiliaryProcess::didReceiveInvalidMessage):

  • Shared/AuxiliaryProcess.h:

(WebKit::AuxiliaryProcess::addMessageReceiver):
(WebKit::AuxiliaryProcess::removeMessageReceiver):

  • Shared/Cocoa/AuxiliaryProcessCocoa.mm:

(WebKit::AuxiliaryProcess::didReceiveInvalidMessage):

  • SourcesCocoa.txt:
  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::addMessageReceiver):
(WebKit::AuxiliaryProcessProxy::removeMessageReceiver):
(WebKit::AuxiliaryProcessProxy::logInvalidMessage):

  • UIProcess/AuxiliaryProcessProxy.h:

(WebKit::AuxiliaryProcessProxy::addMessageReceiver):
(WebKit::AuxiliaryProcessProxy::removeMessageReceiver):
(WebKit::AuxiliaryProcessProxy::send):
(WebKit::AuxiliaryProcessProxy::sendWithAsyncReply):

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::paymentCoordinatorAddMessageReceiver): Deleted.
(WebKit::WebPageProxy::paymentCoordinatorRemoveMessageReceiver): Deleted.

  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::didReceiveInvalidMessage):

  • UIProcess/GPU/GPUProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didReceiveInvalidMessage):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Plugins/PluginProcessProxy.cpp:

(WebKit::PluginProcessProxy::didReceiveInvalidMessage):

  • UIProcess/Plugins/PluginProcessProxy.h:
  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::didReceiveMessage):

  • UIProcess/SuspendedPageProxy.cpp:

(WebKit::messageNamesToIgnoreWhileSuspended):
(WebKit::SuspendedPageProxy::didReceiveMessage):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::didReceiveInvalidMessage):
(WebKit::WebProcessPool::addMessageReceiver):
(WebKit::WebProcessPool::removeMessageReceiver):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::shouldSendPendingMessage):
(WebKit::WebProcessProxy::didReceiveInvalidMessage):

  • UIProcess/WebProcessProxy.h:
  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::didReceiveInvalidMessage):

  • WebProcess/GPU/GPUProcessConnection.h:
  • WebProcess/Inspector/WebInspector.h:
  • WebProcess/Inspector/WebInspectorUI.h:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::didReceiveInvalidMessage):

  • WebProcess/Network/NetworkProcessConnection.h:
  • WebProcess/Plugins/PluginProcessConnection.cpp:

(WebKit::PluginProcessConnection::didReceiveInvalidMessage):

  • WebProcess/Plugins/PluginProcessConnection.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::updateRendering):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::didReceiveMessage):

Source/WTF:

  • wtf/EnumTraits.h:
3:43 PM Changeset in webkit [261253] by Ryan Haddad
  • 13 edits
    2 deletes in trunk

Unreviewed, reverting r261239.

Caused fast/events/wheel-event-outside-body.html to assert on
macOS WK1

Reverted changeset:

"Add basic support for generating accurate wheel event
listener region"
https://bugs.webkit.org/show_bug.cgi?id=211512
https://trac.webkit.org/changeset/261239

3:05 PM Changeset in webkit [261252] by Chris Dumez
  • 11 edits in trunk/Source

REGRESSION (r260684): Reader background is lost after multitasking
https://bugs.webkit.org/show_bug.cgi?id=211533
<rdar://problem/62941837>

Unreviewed, revert r260684 due to regression.

Source/WebCore:

  • dom/EventTarget.cpp:

(WebCore::EventTarget::fireEventListeners):

  • page/FrameView.cpp:

(WebCore::FrameView::sendResizeEventIfNeeded):

  • page/Page.h:

(WebCore::Page::shouldFireResizeEvents const):
(WebCore::Page::setShouldFireResizeEvents):

Source/WebKit:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setShouldFireResizeEvents):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKApplicationStateTrackingView.mm:

(-[WKApplicationStateTrackingView _willBeginSnapshotSequence]):
(-[WKApplicationStateTrackingView _didCompleteSnapshotSequence]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setShouldFireResizeEvents):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
2:54 PM Changeset in webkit [261251] by timothy_horton@apple.com
  • 1 edit
    2 adds in trunk/LayoutTests

Add a test for REGRESSION (r260753): Frequent crashes under TextIndicator's estimatedTextColorsForRange
https://bugs.webkit.org/show_bug.cgi?id=211532

Reviewed by Wenson Hsieh.

  • fast/text-indicator/text-indicator-estimated-color-with-implicit-newline-expected.txt: Added.
  • fast/text-indicator/text-indicator-estimated-color-with-implicit-newline.html: Added.

This test would trigger the null deref fixed in r261245.

1:59 PM Changeset in webkit [261250] by Kate Cheney
  • 5 edits
    3 adds in trunk

ResourceLoadStatistics data summary call should create a web process pool if one doesn't exist
https://bugs.webkit.org/show_bug.cgi?id=211520
<rdar://problem/59869619>

Reviewed by Chris Dumez.

Source/WebKit:

Ensures that a process pool and network process exist when requesting
resource load statistics data.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::getResourceLoadStatisticsDataSummary):

Tools:

Added API test coverage.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

Removed stray comment from previous test.

(TEST):

  • TestWebKitAPI/basicITPDatabase.db: Added.
  • TestWebKitAPI/basicITPDatabase.db-shm: Added.
  • TestWebKitAPI/basicITPDatabase.db-wal: Added.

New database resource with 2 entries: apple.com and webkit.org, with
webkit.org registered as a subframe of apple.com

1:35 PM Changeset in webkit [261249] by Keith Rollin
  • 3 edits in trunk/Source/WebKit

Better surfacing of the presenting parent PID in the Network process
https://bugs.webkit.org/show_bug.cgi?id=211495
<rdar://problem/62917205>

Reviewed by Youenn Fablet.

In Bug 205295, NetworkResourceLoader logging was improved, with one of
the changes being that the PID of parent process that invoked the
Network process was logged at the start of
NetworkResourceLoader::start(). However, there was an execution path
that skipped calling start()
(NetworkConnectionToWebProcess::scheduleResourceLoad ->
NetworkResourceLoader::startWithServiceWorker ->
serviceWorkerDidNotHandle -> restartNetworkLoad -> startNetworkLoad),
and so the the logging would not show the parent PID. This logging is
needed for diagnostic purposes, so tweak the logging a little bit more
in order to ensure we emit it. In this change, logging is added to
various loading-related NetworkConnectionToWebProcess entry points
(not just scheduleResourceLoad) in order to (a) ensure we emit the
logging we want and (b) to give a clearer picture of what operations
are being invoked in the Network process.

No new tests -- no new or changed functionality.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::hasUploadStateChanged):
(WebKit::NetworkConnectionToWebProcess::resolveBlobReferences):
(WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad):
(WebKit::NetworkConnectionToWebProcess::performSynchronousLoad):
(WebKit::NetworkConnectionToWebProcess::loadPing):
(WebKit::NetworkConnectionToWebProcess::preconnectTo):
(WebKit::NetworkConnectionToWebProcess::serverToContextConnectionNoLongerNeeded):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::start):

1:11 PM Changeset in webkit [261248] by Chris Fleizach
  • 16 edits
    1 add in trunk

AX: Implement accessibility of HTML 5.1 Drag & Drop
https://bugs.webkit.org/show_bug.cgi?id=211415
<rdar://problem/22695531>

Reviewed by Joanmarie Diggs.
Source/WebCore:

Support HTML5 drag and drop. Support dropzone attribute.
Add new notifications for VoiceOver to consume.

It appears that most of the dragging tests are skipped because of eventSender issues.
I think this test could do a little more if those issues were resolved. Specifically, not all
the notifications are seen that are expected.

Test: accessibility/mac/draggable.html

  • accessibility/AXObjectCache.h:
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::supportsARIAAttributes const):
(WebCore::AccessibilityObject::isAXHidden const):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::supportsDropping const):
(WebCore::AccessibilityRenderObject::supportsDragging const):
(WebCore::AccessibilityRenderObject::isGrabbed):
(WebCore::AccessibilityRenderObject::determineDropEffects):
(WebCore::AccessibilityRenderObject::supportsARIADropping const): Deleted.
(WebCore::AccessibilityRenderObject::supportsARIADragging const): Deleted.
(WebCore::AccessibilityRenderObject::isARIAGrabbed): Deleted.
(WebCore::AccessibilityRenderObject::determineARIADropEffects): Deleted.

  • accessibility/AccessibilityRenderObject.h:
  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::AXObjectCache::postPlatformNotification):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

  • html/HTMLAttributeNames.in:
  • page/EventHandler.cpp:

(WebCore::EventHandler::dispatchDragEvent):
(WebCore::EventHandler::draggingElement const):

  • page/EventHandler.h:

LayoutTests:

  • accessibility/mac/draggable-expected.txt: Added.
  • accessibility/mac/draggable.html: Added.
1:02 PM Changeset in webkit [261247] by Wenson Hsieh
  • 11 edits
    1 add in trunk

Cut and paste from Google Doc to Notes in several (non-Latin) languages doesn't work
https://bugs.webkit.org/show_bug.cgi?id=211498
<rdar://problem/56675345>

Reviewed by Darin Adler.

Source/WebCore:

When copying text in Google Docs, the page uses DataTransfer.setData to write text/html data to the system
pasteboard. This markup string includes a meta tag with charset="utf-8", indicating that the HTML string that
was copied should be interpreted as UTF-8 data.

However, before we write this data to the system pasteboard, we first sanitize it by loading it in a separate
page, and then build the final sanitized markup string to write by iterating over only visible content in the
main document of this page. Importantly, this last step skips over the meta element containing the charset.

Later, when pasting in Notes or TextEdit, both apps use -[NSAttributedString initWithData:...:] to convert the
HTML data on the pasteboard into an NSAttributedString. This takes the NSPasteboard's HTML data (a blob of
NSData) and synchronously loads it in a new legacy WebKit view by calling `-[WebFrame
loadData:MIMEType:textEncodingName:baseURL:], passing in nil` as the text encoding name. Since WebKit is only
given a blob of data and no particular encoding, we fall back to default Latin-1 encoding, which produces
gibberish for CJK text.

To fix this, we automatically insert a <meta charset="utf-8"> tag when writing HTML to the pasteboard, if the
sanitized markup contains non-ASCII characters.

Test: CopyHTML.SanitizationPreservesCharacterSet

  • Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp:

(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::sanitizeDataIfNeeded):

Pass in AddMetaCharsetIfNeeded::Yes.

  • dom/DataTransfer.cpp:

(WebCore::DataTransfer::setDataFromItemList):

Pass in AddMetaCharsetIfNeeded::Yes here too.

  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::sanitizeMarkupWithArchive):
(WebCore::WebContentReader::readHTML):
(WebCore::WebContentMarkupReader::readHTML):

  • editing/markup.cpp:

(WebCore::sanitizeMarkup):

Add a new enum so that we only add the extra meta tag when sanitizing content that is being written to the
system pasteboard through one of the clipboard DOM APIs.

(WebCore::sanitizedMarkupForFragmentInDocument):

  • editing/markup.h:

Source/WebKit:

Add a new header to allow Cocoa code to reason about UIColors and NSColors on iOS and macOS (respectively)
without requiring platform ifdefs. A followup patch will adopt this in several places in WebKit, where we
currently need ifdefs for iOS and macOS.

  • Platform/cocoa/CocoaColor.h: Added.
  • WebKit.xcodeproj/project.pbxproj:

Tools:

Add a test to verify that when writing markup to the clipboard via DOM API, if non-ASCII characters appear in
the written markup, they can still be converted to NSAttributedStrings containing the expected non-Latin text.

  • TestWebKitAPI/Configurations/Base.xcconfig:

Adjust header search paths so that we can import CocoaColor.h in WebKit.

  • TestWebKitAPI/Tests/WebKitCocoa/CopyHTML.mm:

(readHTMLDataFromPasteboard):
(readHTMLStringFromPasteboard):
(readHTMLFromPasteboard): Deleted.

12:57 PM Changeset in webkit [261246] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

pointermove event sometimes has incorrect pointerType of 'mouse' on touch interactions
https://bugs.webkit.org/show_bug.cgi?id=210716
<rdar://problem/62084817>

Patch by Antoine Quint <Antoine Quint> on 2020-05-06
Reviewed by Darin Adler.

Source/WebKit:

Set the SyntheticClickType to OneFingerTap when creating a synthetic "mousemove" event for a synthetic "click" event as part of a tap.
On top of being more indicative of the actual action that triggered the synthetic event, it also has the added quality that it will
not yield a "pointermove" event.

Test: pointerevents/ios/click-no-pointermove.html

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::dispatchSyntheticMouseMove):

LayoutTests:

Add a new test that checks that with content observation enabled a tap on a <button> element
dispatches synthetic mousemove and click events but no pointermove event.

  • pointerevents/ios/click-no-pointermove-expected.txt: Added.
  • pointerevents/ios/click-no-pointermove.html: Added.
  • pointerevents/utils.js:

(target_test):

12:36 PM Changeset in webkit [261245] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r260753): Frequent crashes under TextIndicator's estimatedTextColorsForRange
https://bugs.webkit.org/show_bug.cgi?id=211523
<rdar://problem/62860203>

Reviewed by Darin Adler.

  • page/TextIndicator.cpp:

(WebCore::estimatedTextColorsForRange):
TextIterator's node() getter can return null. r260753 accidentally refactored away the null check.

12:09 PM Changeset in webkit [261244] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Two 'tests' are running with out expectation files that are not real tests.
https://bugs.webkit.org/show_bug.cgi?id=208477

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations: Skip the test that seems to create these files.
12:09 PM Changeset in webkit [261243] by Ryan Haddad
  • 2 edits in trunk/Tools

REGRESSION (r260278): TestWebKitAPI.Fullscreen.Delegate is timing out on macOS bots
https://bugs.webkit.org/show_bug.cgi?id=210676

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/FullscreenAlert.mm:

(TestWebKitAPI::TEST): Skip the test to get the bots to green.

11:44 AM Changeset in webkit [261242] by wilander@apple.com
  • 38 edits
    7 adds in trunk

Exempt app-bound domains from ITP's website data deletion and third-party cookie blocking between themselves
https://bugs.webkit.org/show_bug.cgi?id=210674
<rdar://problem/61950767>

Reviewed by Chris Dumez.

Source/WebCore:

This change adds functionality to NetworkStorageSession to allow it to exempt
app-bound domains from third-party cookie blocking.

Tests: http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-cookie-blocking-between-each-other.html

http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-website-data-deletion-database.html
http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-website-data-deletion.html

  • platform/network/NetworkStorageSession.cpp:

(WebCore::NetworkStorageSession::shouldBlockCookies const):
(WebCore::NetworkStorageSession::shouldExemptDomainPairFromThirdPartyCookieBlocking const):
(WebCore::NetworkStorageSession::setAppBoundDomains):
(WebCore::NetworkStorageSession::resetAppBoundDomains):

  • platform/network/NetworkStorageSession.h:

Source/WebKit:

This change forwards information about app-bound domains to ITP and web
processes so that they can be exempt from website data deletion and
third-party cookie blocking between themselves.

App-bound domains are configured statically and apply to all website
data stores. Therefore the setting needs to be forwarded to all
website data stores and ITP functionality in all network and web
content processes. This is done through the new static function
WebsiteDataStore::setAppBoundDomainsForITPIfInitialized().

Since app-bound domains are loaded lazily from disk and on a background
thread, this patch forwards them in ResourceLoadStatisticsParameters if
they've already been loaded. Then every time app-bound domains are
updated, they are forwarded to ITP. This ensures that ITP will have them
as soon as possible.

Setting app-bound domains for the purposes of ITP automatically switches
ITP's cookie blocking policy to the new
WebCore::ThirdPartyCookieBlockingMode::AllExceptBetweenAppBoundDomains.
This is done in WebResourceLoadStatisticsStore::setAppBoundDomains().

The C API changes are for test purposes.

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

(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor):

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:

(WebKit::ResourceLoadStatisticsStore::setAppBoundDomains):
(WebKit::ResourceLoadStatisticsStore::resetParametersToDefaultValues):
(WebKit::ResourceLoadStatisticsStore::shouldExemptFromWebsiteDataDeletion const):

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:

(WebKit::ResourceLoadStatisticsStore::standaloneApplicationDomain const): Deleted.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::setAppBoundDomains):
(WebKit::WebResourceLoadStatisticsStore::resetParametersToDefaultValues):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::setAppBoundDomainsForResourceLoadStatistics):
(WebKit::NetworkProcess::setThirdPartyCookieBlockingMode):
(WebKit::NetworkProcess::setShouldBlockThirdPartyCookiesForTesting): Deleted.

Renamed setThirdPartyCookieBlockingMode.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

  • Shared/ResourceLoadStatisticsParameters.h:

(WebKit::ResourceLoadStatisticsParameters::encode const):
(WebKit::ResourceLoadStatisticsParameters::decode):

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreSetAppBoundDomainsForTesting):

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::setAppBoundDomainsForResourceLoadStatistics):
(WebKit::NetworkProcessProxy::setThirdPartyCookieBlockingMode):
(WebKit::NetworkProcessProxy::setShouldBlockThirdPartyCookiesForTesting): Deleted.

Renamed setThirdPartyCookieBlockingMode.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::setThirdPartyCookieBlockingMode):
(WebKit::WebProcessProxy::setShouldBlockThirdPartyCookiesForTesting): Deleted.

Renamed setThirdPartyCookieBlockingMode.

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::initializeAppBoundDomains):
(WebKit::WebsiteDataStore::ensureAppBoundDomains const):
(WebKit::WebsiteDataStore::appBoundDomainsIfInitialized):

This function allows fetching of app-bound domains without triggering
the lazy loading. This is just to allow speculative configuration of ITP
right when it's created — if any app-bound domains are already configured,
forward them to ITP via ResourceLoadStatisticsParameters.

(WebKit::WebsiteDataStore::setAppBoundDomainsForTesting):

This function is Cocoa-specific and only accepts localhost and 127.0.0.1
to be configured as app-bound domains.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::setResourceLoadStatisticsShouldBlockThirdPartyCookiesForTesting):
(WebKit::WebsiteDataStore::setThirdPartyCookieBlockingMode):
(WebKit::WebsiteDataStore::parameters):
(WebKit::WebsiteDataStore::forwardAppBoundDomainsToITPIfInitialized):
(WebKit::WebsiteDataStore::setAppBoundDomainsForITP):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setThirdPartyCookieBlockingMode):
(WebKit::WebProcess::setShouldBlockThirdPartyCookiesForTesting): Deleted.

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

Tools:

This change adds a new TestRunner function
setAppBoundDomain() which takes an array of origin
strings and sets them to app-bound domains.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::didReceiveMessageToPage):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setAppBoundDomains):
(WTR::TestRunner::didSetAppBoundDomainsCallback):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::AppBoundDomainsCallbackContext::AppBoundDomainsCallbackContext):
(WTR::didSetAppBoundDomainsCallback):
(WTR::TestController::setAppBoundDomains):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
(WTR::TestInvocation::didSetAppBoundDomains):

  • WebKitTestRunner/TestInvocation.h:

LayoutTests:

  • http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-cookie-blocking-between-each-other-expected.txt: Added.
  • http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-cookie-blocking-between-each-other.html: Added.
  • http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-website-data-deletion-database-expected.txt: Added.
  • http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-website-data-deletion-database.html: Added.
  • http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-website-data-deletion-expected.txt: Added.
  • http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-website-data-deletion.html: Added.
11:43 AM Changeset in webkit [261241] by aakash_jain@apple.com
  • 3 edits
    2 deletes in trunk/Tools

Delete code for feeder queue
https://bugs.webkit.org/show_bug.cgi?id=211518

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/tool/bot/feeders.py: Removed.
  • Scripts/webkitpy/tool/bot/feeders_unittest.py: Removed.
  • Scripts/webkitpy/tool/commands/queues.py:

(FeederQueue): Deleted.

  • Scripts/webkitpy/tool/commands/queues_unittest.py:

(TestFeederQueue): Deleted.
(FeederQueueTest): Deleted.
(PatchProcessingQueueTest): Deleted.

11:32 AM Changeset in webkit [261240] by dbates@webkit.org
  • 3 edits
    2 adds in trunk

[iOS] ASSERTION FAILED: !(_keyboardFlags & WebEventKeyboardInputModifierFlagsChanged) in -[WebEvent charactersIgnoringModifiers] when pressing modifier on PDF
https://bugs.webkit.org/show_bug.cgi?id=211472

Reviewed by Darin Adler.

Source/WebKit:

Do not ask for event character string for a flags changed event: they don't have one.

Test: fast/events/ios/pdf-modifer-key-down-crash.html

  • UIProcess/ios/WKKeyboardScrollingAnimator.mm:

(-[WKKeyboardScrollingAnimator keyboardScrollForEvent:]):

LayoutTests:

Add a test.

  • fast/events/ios/pdf-modifer-key-down-crash-expected.txt: Added.
  • fast/events/ios/pdf-modifer-key-down-crash.html: Added.
11:00 AM Changeset in webkit [261239] by Antti Koivisto
  • 13 edits
    2 adds in trunk

Add basic support for generating accurate wheel event listener region
https://bugs.webkit.org/show_bug.cgi?id=211512

Reviewed by Simon Fraser.

Source/WebCore:

Add fake properties for wheel event listeners to RenderStyle and use them to
generate regions in EventRegion. There is a separate region for non-passive
wheel event listeners (that will require synchronous handling).

The generated regions are not used for anything in this patch.
Style is not yet invalided on event listener additions and removals.

Test: fast/scrolling/mac/wheel-event-listener-region-basic.html

  • dom/Node.h:
  • rendering/EventRegion.cpp:

(WebCore::EventRegion::unite):
(WebCore::EventRegion::uniteEventListeners):
(WebCore::EventRegion::dump const):

  • rendering/EventRegion.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateEventRegion):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::eventListenerRegionTypes const):
(WebCore::RenderStyle::setEventListenerRegionTypes):

  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleRareInheritedData.cpp:

(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator== const):

  • rendering/style/StyleRareInheritedData.h:
  • style/StyleAdjuster.cpp:

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

LayoutTests:

  • fast/scrolling/mac/wheel-event-listener-region-basic-expected.txt: Added.
  • fast/scrolling/mac/wheel-event-listener-region-basic.html: Added.
10:32 AM Changeset in webkit [261238] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[MacCatalyst] Processes should check for network entitlement as we do for macOS apps
https://bugs.webkit.org/show_bug.cgi?id=211474
<rdar://problem/61182060>

Reviewed by Alexey Proskuryakov.

We should make the same entitlement checks in MacCatalyst as we do for macOS.

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:

(WebKit::XPCServiceInitializerDelegate::checkEntitlements):

10:14 AM Changeset in webkit [261237] by Devin Rousso
  • 9 edits in trunk/Source/WebInspectorUI

Web Inspector: Layers: the text at the bottom of the details sidebar can get squished
https://bugs.webkit.org/show_bug.cgi?id=211486

Reviewed by Brian Burg.

  • UserInterface/Views/Sidebar.js:

(WI.Sidebar.prototype.get minimumWidth):
Ask both the this._navigationBar and this._selectedSidebarPanel instead of just one.

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:

(WI.GeneralStyleDetailsSidebarPanel.prototype.get minimumWidth): Added.

  • UserInterface/Views/ComputedStyleDetailsPanel.js:

(WI.ComputedStyleDetailsPanel.prototype.get minimumWidth): Addede.

  • UserInterface/Views/BoxModelDetailsSectionRow.js:

(WI.BoxModelDetailsSectionRow):
(WI.BoxModelDetailsSectionRow.prototype.get minimumWidth): Added.
(WI.BoxModelDetailsSectionRow.prototype._updateMetrics):

  • UserInterface/Views/BoxModelDetailsSectionRow.css:

(.details-section .row.box-model):
Keep track of the outermost box and provide a way to report its width.

  • UserInterface/Views/LayerDetailsSidebarPanel.js:

(WI.LayerDetailsSidebarPanel):
(WI.LayerDetailsSidebarPanel.prototype.get minimumWidth): Added.
(WI.LayerDetailsSidebarPanel.prototype._buildBottomBar):
(WI.LayerDetailsSidebarPanel.prototype._updateBottomBar):

  • UserInterface/Views/LayerDetailsSidebarPanel.css:

(.panel.details.layer .bottom-bar):
(.panel.details.layer .bottom-bar > div):
Cache the width of the items in the bottom bar and use it in get minimumWidth.

9:38 AM WebKitGTK/Debugging edited by Philippe Normand
(diff)
9:36 AM WebKitGTK/Debugging edited by Philippe Normand
(diff)
9:30 AM Changeset in webkit [261236] by Chris Dumez
  • 2 edits in trunk/LayoutTests

fast/overflow/horizontal-scroll-after-back.html is a flaky timeout on macOS
https://bugs.webkit.org/show_bug.cgi?id=211515
<rdar://problem/61180247>

Reviewed by Darin Adler.

Update test to navigate to fast/history/resources/page-cache-helper.html instead of
a data URL which calls history.back() on load. Unlike the data URL, page-cache-helper.html
only navigates back in a 0-timer after the load event has fired. This is important to
guarantee that the current history item has been created before navigating back. If we
navigate back too early, then the current history item is still the one for the previous
page and we end up navigating back to the previous test, which would cause the timeout.

  • fast/overflow/horizontal-scroll-after-back.html:
9:29 AM Changeset in webkit [261235] by Alexey Shvayka
  • 5 edits
    9 deletes in trunk/LayoutTests

Remove orphaned WPT expectations & unused harness
https://bugs.webkit.org/show_bug.cgi?id=211454

Reviewed by Darin Adler.

  1. wpt/html/dom/interfaces was renamed to wpt/html/dom/idlharness.
  2. wpt/dom/nodes/Document-createEvent was superseded by HTTPS version.
  3. w3c/resources/WebIDLParser.js is unused.

LayoutTests/imported/w3c:

  • resources/WebIDLParser.js: Removed.
  • web-platform-tests/dom/nodes/Document-createEvent-expected.txt: Removed.
  • web-platform-tests/html/dom/interfaces-expected.txt: Removed.
  • web-platform-tests/html/dom/interfaces.worker-expected.txt: Removed.
  • web-platform-tests/html/dom/interfaces.worker.html: Removed.

LayoutTests:

  • TestExpectations:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/interfaces.worker-expected.txt: Removed.
  • platform/ios/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt: Removed.
  • platform/mac-wk1/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/dom/nodes/Document-createEvent-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt: Removed.
  • tests-options.json:
9:24 AM Changeset in webkit [261234] by Darin Adler
  • 6 edits in trunk/Source

Remove now-unneeded USE(GRAMMAR_CHECKING)
https://bugs.webkit.org/show_bug.cgi?id=211452

Reviewed by Anders Carlsson.

Source/WebCore:

  • editing/Editor.cpp:

(WebCore::Editor::advanceToNextMisspelling): Remove USE(GRAMMAR_CHECKING).
(WebCore::Editor::isSelectionUngrammatical): Ditto.
(WebCore::Editor::markMisspellingsOrBadGrammar): Ditto.
(WebCore::Editor::markBadGrammar): Ditto.

  • editing/TextCheckingHelper.cpp:

(WebCore::TextCheckingHelper::markAllBadGrammar): Ditto.
(WebCore::checkTextOfParagraph): Ditto. Also correct misspelling of the
word "misspelling".

  • editing/TextCheckingHelper.h: Ditto.

Source/WTF:

  • wtf/PlatformUse.h: Don't set USE_GRAMMAR_CHECKING.
9:15 AM Changeset in webkit [261233] by Devin Rousso
  • 24 edits in trunk/Source

ASSERT_WITH_MESSAGE(m_isOwnedByMainThread == isMainThread()) when web inspecting
https://bugs.webkit.org/show_bug.cgi?id=203638
<rdar://problem/56761893>

Reviewed by Brian Burg.

Source/JavaScriptCore:

Mark the InspectorEnvironment::executionStopwatch abstract function as const and have it
return a Stopwatch& instead of a RefPtr<Stopwatch>& as callers assume that it exists.
By not using a RefPtr, an additional copyRef can be avoided.

  • inspector/InspectorEnvironment.h:
  • inspector/JSGlobalObjectInspectorController.h:
  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::executionStopwatch const): Added.
(Inspector::JSGlobalObjectInspectorController::executionStopwatch): Deleted.

  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::didPause):
(Inspector::InspectorDebuggerAgent::breakpointActionProbe):
(Inspector::InspectorDebuggerAgent::didContinue):

  • inspector/agents/InspectorHeapAgent.cpp:

(Inspector::InspectorHeapAgent::snapshot):
(Inspector::InspectorHeapAgent::willGarbageCollect):
(Inspector::InspectorHeapAgent::didGarbageCollect):

  • inspector/agents/InspectorScriptProfilerAgent.cpp:

(Inspector::InspectorScriptProfilerAgent::startTracking):
(Inspector::InspectorScriptProfilerAgent::willEvaluateScript):
(Inspector::InspectorScriptProfilerAgent::didEvaluateScript):
(Inspector::InspectorScriptProfilerAgent::trackingComplete):

  • runtime/SamplingProfiler.h:
  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::SamplingProfiler):

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

(JSC::VM::ensureSamplingProfiler):

Source/WebCore:

Mark the InspectorEnvironment::executionStopwatch abstract function as const and have it
return a Stopwatch& instead of a RefPtr<Stopwatch>& as callers assume that it exists.
By not using a RefPtr, an additional copyRef can be avoided.

  • inspector/InspectorController.h:
  • inspector/InspectorController.cpp:

(WebCore::InspectorController::executionStopwatch const): Added.
(WebCore::InspectorController::executionStopwatch): Deleted.

  • inspector/WorkerInspectorController.h:

(WebCore::WorkerInspectorController::executionStopwatch const): Added.
(WebCore::WorkerInspectorController::executionStopwatch): Deleted.

  • inspector/agents/InspectorAnimationAgent.cpp:

(WebCore::InspectorAnimationAgent::startTracking):
(WebCore::InspectorAnimationAgent::stopTracking):
(WebCore::InspectorAnimationAgent::willApplyKeyframeEffect):
(WebCore::InspectorAnimationAgent::stopTrackingDeclarativeAnimation):

  • inspector/agents/InspectorCPUProfilerAgent.cpp:

(WebCore::InspectorCPUProfilerAgent::startTracking):
(WebCore::InspectorCPUProfilerAgent::stopTracking):
(WebCore::InspectorCPUProfilerAgent::collectSample):

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::mediaMetricsTimerFired):

  • inspector/agents/InspectorMemoryAgent.cpp:

(WebCore::InspectorMemoryAgent::startTracking):
(WebCore::InspectorMemoryAgent::stopTracking):
(WebCore::InspectorMemoryAgent::didHandleMemoryPressure):
(WebCore::InspectorMemoryAgent::collectSample):

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::buildObjectForTiming):
(WebCore::InspectorNetworkAgent::timestamp):
(WebCore::InspectorNetworkAgent::didFinishLoading):

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::enable):
(WebCore::InspectorPageAgent::timestamp):

  • inspector/agents/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::timestamp):

Source/WTF:

  • wtf/Stopwatch.h:

(WTF::Stopwatch::elapsedTime const): Added.
(WTF::Stopwatch::elapsedTimeSince const): Added.
(WTF::Stopwatch::elapsedTime): Deleted.
(WTF::Stopwatch::elapsedTimeSince): Deleted.

9:01 AM Changeset in webkit [261232] by Darin Adler
  • 29 edits in trunk

Eliminate checks of USE(DICTATION_ALTERNATIVES) in Cocoa-specific code
https://bugs.webkit.org/show_bug.cgi?id=211460

Reviewed by Anders Carlsson.

Source/WebCore:

  • editing/cocoa/AlternativeTextContextController.h: Remove USE(DICTATION_ALTERNATIVES).

Also remove unnecessary use of RetainPtr and add a FIXME. Also remove #pragma once
since this header is only imported from Objective-C++ sources.

  • editing/cocoa/AlternativeTextContextController.mm: Ditto.
  • editing/cocoa/AlternativeTextUIController.h: Ditto.
  • editing/cocoa/AlternativeTextUIController.mm: Ditto.
  • editing/mac/TextAlternativeWithRange.h: Ditto.
  • editing/mac/TextAlternativeWithRange.mm: Ditto.

Source/WebKit:

  • UIProcess/Cocoa/PageClientImplCocoa.h: Remove USE(DICTATION_ALTERNATIVES).

Also remove unnecessary use of RetainPtr.

  • UIProcess/Cocoa/PageClientImplCocoa.mm:

(WebKit::PageClientImplCocoa::PageClientImplCocoa): Ditto.
(WebKit::PageClientImplCocoa::pageClosed): Ditto.
(WebKit::PageClientImplCocoa::dictationAlternatives): Ditto.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::insertDictatedTextAsync): Ditto.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::validAttributesForMarkedText): Ditto.
(WebKit::WebViewImpl::insertText): Ditto.

  • UIProcess/PageClient.h: Ditto.
  • UIProcess/ios/PageClientImplIOS.h: Ditto.
  • UIProcess/ios/PageClientImplIOS.mm: Ditto.
  • UIProcess/ios/WKContentViewInteraction.mm: Ditto.
  • UIProcess/mac/PageClientImplMac.h: Ditto.
  • UIProcess/mac/PageClientImplMac.mm: Ditto.
  • WebProcess/WebCoreSupport/mac/WebAlternativeTextClient.cpp: Ditto.

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebAlternativeTextClient.h: Removed USE(DICTATION_ALTERNATIVES).
  • WebCoreSupport/WebAlternativeTextClient.mm:

(WebAlternativeTextClient::dictationAlternatives): Ditto.

  • WebView/WebHTMLView.mm: Ditto.
  • WebView/WebView.mm: Ditto. Also use modern for loop.
  • WebView/WebViewData.h: Ditto.
  • WebView/WebViewData.mm: Ditto.
  • WebView/WebViewInternal.h: Ditto.

Tools:

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm: Remove USE(DICTATION_ALTERNATIVES).
8:39 AM Changeset in webkit [261231] by Pablo Saavedra
  • 8 edits in trunk/Tools

Python3: Support Python3 in Tools/webkitpy/benchmark_runner
https://bugs.webkit.org/show_bug.cgi?id=211249

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/benchmark_runner/benchmark_builder.py:

(BenchmarkBuilder._fetch_remote_archive):

  • Scripts/webkitpy/benchmark_runner/benchmark_results.py:

(BenchmarkResults._format_values):
(BenchmarkResults._subtest_values_by_config_iteration):

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(istext):
(BenchmarkRunner._run_benchmark):
(BenchmarkRunner._merge):
(BenchmarkRunner.show_results):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:

(OSXSafariDriver.launch_url):

  • Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py:

(HTTPServerDriver):

  • Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:

(SimpleHTTPServerDriver.serve):
(SimpleHTTPServerDriver._wait_for_http_server):

  • Scripts/webkitpy/benchmark_runner/run_benchmark.py:

(parse_args):
(list_benchmark_plans):

  • Scripts/webkitpy/style/checker.py:

(CheckerDispatcher._create_checker):

8:32 AM Changeset in webkit [261230] by Lauro Moura
  • 3 edits in trunk/Source/WebKit

[GTK] Cleanup KeyBindingTranslator on WebView disposal
https://bugs.webkit.org/show_bug.cgi?id=211465

Reviewed by Carlos Garcia Campos.

Fixes assertion in debug mode when a test failed and the widget
followed a destruction pattern where KeyBindingTranslator would be
destroyed before the container widget is cleaned up.

Also renamed the method from 'destroyed' to 'invalidate' to try to
better convey the action being performed on the KeyBindingTranslator.

Covered by existing tests.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseContainerRemove): Update method name.
(webkitWebViewBaseDispose): Cleanup keyBindingTranslator when
disposing this widget.

  • UIProcess/gtk/KeyBindingTranslator.h:

(WebKit::KeyBindingTranslator::invalidate): Renamed from destroyed.
(WebKit::KeyBindingTranslator::destroyed): Deleted.

8:30 AM Changeset in webkit [261229] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Factor EventHandler code that sends mouseEnteredContentArea/mouseExitedContentArea into its own function
https://bugs.webkit.org/show_bug.cgi?id=211494

Reviewed by Antti Koivisto.

mouseEnteredContentArea/mouseEnteredContentArea are used only to notify overlay scrollbars
of state changes. Factor the code that calls these functions into a separate EventHandler
function, and refactor it for clarity, now we know that both lastElementUnderMouse and elementUnderMouse
must belong to this EventHandler's Frame's Document.

  • page/EventHandler.cpp:

(WebCore::EventHandler::updateMouseEventTargetNode):
(WebCore::EventHandler::notifyScrollableAreasOfMouseEnterExit):

  • page/EventHandler.h:
8:00 AM Changeset in webkit [261228] by Darin Adler
  • 5 edits in trunk/Source

Reduce HAVE(HOSTED_CORE_ANIMATION)
https://bugs.webkit.org/show_bug.cgi?id=211423

Reviewed by Anders Carlsson.

Source/WebKit:

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess): Removed redundant #if
checking both HAVE(HOSTED_CORE_ANIMATION) and !PLATFORM(IOS_FAMILY).

  • UIProcess/Plugins/mac/PluginProcessProxyMac.mm:

(WebKit::PluginProcessProxy::platformInitializePluginProcess): Removed unnecessary
HAVE(HOSTED_CORE_ANIMATION) check in code that is only compiled for macOS.

Source/WTF:

  • wtf/PlatformHave.h: Simplified conditional to just PLATFORM(MAC)

for HOSTED_CORE_ANIMATION.

7:30 AM Changeset in webkit [261227] by aakash_jain@apple.com
  • 5 edits
    2 deletes in trunk/Tools

Delete code for QueueStatusServer
https://bugs.webkit.org/show_bug.cgi?id=211504

Reviewed by Jonathan Bedard.

  • QueueStatusServer: Removed.
  • BuildSlaveSupport/ews-build/steps.py:

(CheckPatchRelevance): Removed QueueStatusServer.

  • Scripts/webkitpy/tool/steps/checkpatchrelevance.py:

(CheckPatchRelevance): Removed QueueStatusServer.

  • Scripts/webkitpy/common/net/statusserver.py: Removed implementation of most methods. Will delete it completely

in subsequent patch along-with all its callers.

  • Scripts/webkitpy/common/net/statusserver_unittest.py: Removed.
  • Scripts/webkitpy/test/main.py:
7:18 AM Changeset in webkit [261226] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC] BlockFormattingContext::computeHeightAndMargin should special case the table box
https://bugs.webkit.org/show_bug.cgi?id=211493

Reviewed by Antti Koivisto.

By the time we get to BlockFormattingContext::computeHeightAndMargin(), the used valued for the table height is already been computed.
(Table box height is mostly content driven, and both the computed height and the min/max pair are taken into account
while we are laying out the table content).

  • layout/blockformatting/BlockFormattingContext.cpp:

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

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):

7:15 AM Changeset in webkit [261225] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r261163): [ Mac WK2 ] webrtc/libwebrtc/descriptionGetters.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=211455
<rdar://problem/62895451>

Reviewed by Eric Carlson.

  • webrtc/libwebrtc/descriptionGetters.html:

Sanitize SDP before comparison as port information and candidates are no longer blocked by main thread.

7:04 AM Changeset in webkit [261224] by commit-queue@webkit.org
  • 2 edits
    4 adds in trunk/Source/WebCore

Add watchOS media controls assets
https://bugs.webkit.org/show_bug.cgi?id=211508
<rdar://problem/62926565>

Patch by Antoine Quint <Antoine Quint> on 2020-05-06
Reviewed by Eric Carlson.

  • Modules/modern-media-controls/images/watchOS/ActivityIndicatorSpriteCompact@2x.png: Added.
  • Modules/modern-media-controls/images/watchOS/InvalidCompact.pdf: Added.
  • Modules/modern-media-controls/images/watchOS/PlayCompact.pdf: Added.
  • WebCore.xcodeproj/project.pbxproj:
7:04 AM Changeset in webkit [261223] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][BFC] FormattingContext::ConstraintsForInFlowContent should include the computed value of height
https://bugs.webkit.org/show_bug.cgi?id=211487

Reviewed by Antti Koivisto.

When the formatting context root has fixed height, the computed value should be passed in to the formatting context layout
as the available vertical space.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::constraintsForInFlowContent):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraVerticalSpace):

6:33 AM Changeset in webkit [261222] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening, expected to fail but passed
https://bugs.webkit.org/show_bug.cgi?id=211510

Unreviewed gardening.

  • platform/gtk/TestExpectations:
6:05 AM Changeset in webkit [261221] by Diego Pino Garcia
  • 6 edits
    6 adds
    2 deletes in trunk/LayoutTests

[WPE] Gardening, update baselines after r261219
https://bugs.webkit.org/show_bug.cgi?id=211507

Unreviewed gardening.

  • platform/wpe/fast/css/font-face-opentype-expected.txt: Updated after r261190.
  • platform/wpe/fast/xmlhttprequest/xmlhttprequest-nonexistent-file-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/css/css-animations/Element-getAnimations.tentative-expected.txt: Added after r260139.
  • platform/wpe/imported/w3c/web-platform-tests/css/css-animations/animation-base-response-001-expected.txt: Added after r260662.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/pservers-grad-08-b-manual-expected.txt: Updated after r261191.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/text-altglyph-01-b-manual-expected.txt: Updated after r261191.
  • platform/wpe/imported/w3c/web-platform-tests/wasm/jsapi/global/value-set.any-expected.txt: Added after r260690.
  • platform/wpe/imported/w3c/web-platform-tests/wasm/jsapi/global/value-set.any.worker-expected.txt: Added after r260690.
  • platform/wpe/storage/domstorage/sessionstorage/blocked-file-access-expected.txt: Removed.
  • platform/wpe/svg/batik/text/xmlSpace-expected.txt: Updated after r261154.
2:30 AM Changeset in webkit [261220] by svillar@igalia.com
  • 10 edits
    3 adds in trunk

[WebXR] Implement isSessionSupported()
https://bugs.webkit.org/show_bug.cgi?id=211187

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/webxr/xrDevice_isSessionSupported_immersive.https-expected.txt: Added.
  • web-platform-tests/webxr/xrDevice_isSessionSupported_immersive_unsupported.https-expected.txt: Added.
  • web-platform-tests/webxr/xrDevice_isSessionSupported_inline.https-expected.txt: Added.

Source/WebCore:

The isSessionSupported() method queries if a given mode may be supported
by the UA and device capabilities. Apart from the needed machinery in
the webxr Module we're adding an OpenXR implementation of the
enumerateImmersiveXRDevices() method required by isSessionSupported().

The method is not completely implemented as it lacks a few action at its
very end, like firing events. They'll be implemented in follow up
patches as they require additional changes.

Some OpenXR runtimes as Monado always enumerate at least one device even
if none is connected. This dummy device might interfere with tests
execution (as there will be more devices than expected) so we're adding
a testMode to WebXRSystem which does not query platform for existing
devices.

Added expected results and unskipped some WPT that are now passing.

  • Modules/webxr/WebXRSystem.cpp:

(WebCore::WebXRSystem::ensureImmersiveXRDeviceIsSelected): Asks platform
code for the list of attached XR devices and properly set the active
immersive device if any.
(WebCore::WebXRSystem::isSessionSupported): Partially implemented.
(WebCore::WebXRSystem::registerSimulatedXRDeviceForTesting): Set the
passed in mock device as either the current active immersive or inline
device.
(WebCore::WebXRSystem::unregisterSimulatedXRDeviceForTesting): Removes
the passed in mock device from the list of immersive devices.

  • Modules/webxr/WebXRSystem.h:
  • html/FeaturePolicy.cpp:

(WebCore::policyTypeName): Handle XRSpatialTracking.
(WebCore::FeaturePolicy::parse): Parse "xr-spatial-tracking".
(WebCore::FeaturePolicy::allows const): Handle XRSpatialTracking.

  • html/FeaturePolicy.h: Added XRSpatialTracking.
  • platform/xr/PlatformXR.h:

(PlatformXR::Instance::immersiveXRDevices const): Keep a list of immersive devices.

  • platform/xr/openxr/PlatformXR.cpp:

(PlatformXR::Instance::Impl::collectSupportedSessionModes): Gather supported session
modes for a given device from OpenXR.
(PlatformXR::Instance::enumerateImmersiveXRDevices): Collect devices from OpenXR. We
are currently asking for HMD devices.

LayoutTests:

  • platform/wpe/TestExpectations: Added some skipped tests that are now passing.
1:28 AM Changeset in webkit [261219] by Diego Pino Garcia
  • 6 edits
    2 adds in trunk/LayoutTests

GTK] Gardening, update expectations and baselines after r261191
https://bugs.webkit.org/show_bug.cgi?id=211502

Unreviewed gardening.

embedded-credentials.tentative.sub-expected.txt is passing more tests
than the general baseline since r260937.

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/css/font-face-opentype-expected.txt: Updated after r261190.
  • platform/gtk/imported/w3c/web-platform-tests/fetch/security/embedded-credentials.tentative.sub-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/svg/import/pservers-grad-08-b-manual-expected.txt: Updated after r261191.
  • platform/gtk/imported/w3c/web-platform-tests/svg/import/text-altglyph-01-b-manual-expected.txt: Updated after r261191.
  • platform/gtk/svg/batik/text/xmlSpace-expected.txt: Updated after r261154.
1:09 AM Changeset in webkit [261218] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

[Web Animations] Coordinate "update animations and send events" procedure across multiple timelines
https://bugs.webkit.org/show_bug.cgi?id=202109

Unreviewed.

Remove an unused function.

  • animation/AnimationTimeline.h:

(WebCore::AnimationTimeline::allAnimations const): Deleted.

1:06 AM Changeset in webkit [261217] by graouts@webkit.org
  • 6 edits in trunk

Fix animation ordering to make imported/w3c/web-platform-tests/css/css-animations/Element-getAnimations.tentative.html pass
https://bugs.webkit.org/show_bug.cgi?id=211468
<rdar://problem/62732578>

Reviewed by David Kilzer.

LayoutTests/imported/w3c:

Mark the final two failures in imported/w3c/web-platform-tests/css/css-animations/Element-getAnimations.tentative.html as PASS.

  • web-platform-tests/css/css-animations/Element-getAnimations.tentative-expected.txt:

Source/WebCore:

The "Animation composite order" section of the CSS Animations Level 2 specification (https://drafts.csswg.org/css-animations-2/#animation-composite-order)
defines the relative composite order of animations. We bake this into compareAnimationsByCompositeOrder(), but this function would not yield consistent
results if it is called in a non-stable sort, because if both CSSAnimation objects passed to this function have the same backing Animation object, they
would not return the same value if passed in a different order. The Web Animations spec always ensures that procedures that sort using the composite
order are called as part of a stable sort. So we change all call sites to use std::stable_sort and add an assertion in case we have two CSSAnimation
objects with the same backing Animation objects to catch cases like this in the future.

Finally, since we already know only relevant animations can find their way into the output of Document::getAnimations(), we also ensure we iterate over
m_animations (which holds only relevant animations) rather than m_allAnimations (which may not).

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::getAnimations const):

  • animation/KeyframeEffectStack.cpp:

(WebCore::KeyframeEffectStack::ensureEffectsAreSorted):

  • animation/WebAnimationUtilities.cpp:

(WebCore::compareAnimationsByCompositeOrder):

May 5, 2020:

11:51 PM Changeset in webkit [261216] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening, update expectations after r260889
https://bugs.webkit.org/show_bug.cgi?id=211500

Unreviewed gardening.

These failures started to happen once the GTK Test bot was
switched to Flatpak, which occurred on build #13542 (r260889).

  • platform/gtk/TestExpectations:
11:01 PM Changeset in webkit [261215] by Ross Kirsling
  • 20 edits
    8 adds in trunk

[ECMA-402] Implement Intl.Locale
https://bugs.webkit.org/show_bug.cgi?id=209772

Reviewed by Darin Adler and Saam Barati.

JSTests:

  • stress/intl-locale.js: Added.
  • stress/intl-locale-as-intl-param.js: Added.
  • test262/config.yaml:

Enable Intl.Locale feature with flag.

  • test262/expectations.yaml:

Mark known failures.
None of these should be specific to Intl.Locale.

Source/JavaScriptCore:

This patch implements the recent ECMA-402 feature Intl.Locale.

This is effectively a wrapper class for all the pieces of uloc.h that ECMA-402 cares about.
(If we used the C++ API, there's a LocaleBuilder that would make this much easier, but in sticking to the C API,
it's basically an object that has an ICU localeID as data and uloc_* functions as methods / getters.
Furthermore, there's no way to modify said data, so every method / getter can be lazy and cache its result.)

Usage example:

locale = new Intl.Locale('ja', { region: 'JP', calendar: 'japanese', numeric: false })

"ja-JP-u-ca-japanese-kn-false"

locale.baseName

"ja-JP"

Intl.Locale can be used anywhere that Intl APIs accept locale strings as input parameters,
and is moreover hoped to be the class by which future Web APIs will handle the current locale.

This feature is runtime-guarded by the useIntlLocale option.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • runtime/CommonIdentifiers.h:
  • runtime/IntlLocale.cpp: Added.
  • runtime/IntlLocale.h: Added.
  • runtime/IntlLocaleConstructor.cpp: Added.
  • runtime/IntlLocaleConstructor.h: Added.
  • runtime/IntlLocalePrototype.cpp: Added.
  • runtime/IntlLocalePrototype.h: Added.
  • runtime/IntlObject.cpp:

(JSC::IntlObject::finishCreation):
(JSC::localeIDBufferForLanguageTag): Added.
(JSC::languageTagForLocaleID): Renamed from JSC::convertICULocaleToBCP47LanguageTag.
(JSC::intlAvailableLocales):
(JSC::intlCollatorAvailableLocales):
(JSC::canonicalizeLanguageTag):
(JSC::canonicalizeLocaleList):
(JSC::defaultLocale):

  • runtime/IntlObject.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::collatorStructure):
(JSC::JSGlobalObject::numberFormatStructure):
(JSC::JSGlobalObject::localeStructure):

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

(JSC::VM::VM):

  • runtime/VM.h:

Tools:

  • Scripts/run-jsc-stress-tests:

Add runIntlLocaleEnabled.

10:55 PM Changeset in webkit [261214] by Lauro Moura
  • 2 edits in trunk/WebDriverTests

[WebDriver] Gardening more GTK failures.

Unreviewed test gardening.

10:22 PM Changeset in webkit [261213] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

EventHandler::dispatchMouseEvent() cleanup
https://bugs.webkit.org/show_bug.cgi?id=211491

Reviewed by Zalan Bujtas.

Replace the last bool argument with FireMouseOverOut, and remove the "cancelable" argument that was unused.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseDoubleClickEvent):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::EventHandler::handleMouseForceEvent):
(WebCore::EventHandler::dispatchMouseEvent):
(WebCore::EventHandler::sendContextMenuEvent):

  • page/EventHandler.h:
9:37 PM Changeset in webkit [261212] by commit-queue@webkit.org
  • 9 edits in trunk

Fix setting host on URL when no port is specified
https://bugs.webkit.org/show_bug.cgi?id=211453

Patch by Rob Buis <rbuis@igalia.com> on 2020-05-05
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update improved test expectations.

  • web-platform-tests/url/url-setters-expected.txt:

Source/WebCore:

Behavior matches Firefox and Chrome.

Test: web-platform-tests/url/url-setters.html

  • html/URLDecomposition.cpp:

(WebCore::URLDecomposition::setHost):

LayoutTests:

Update improved test expectations.

  • fast/dom/DOMURL/set-href-attribute-host-expected.txt:
  • fast/dom/DOMURL/set-href-attribute-host.html:
  • fast/dom/HTMLAnchorElement/set-href-attribute-host-expected.txt:
  • fast/dom/HTMLAnchorElement/set-href-attribute-host.html:
8:53 PM Changeset in webkit [261211] by Simon Fraser
  • 13 edits in trunk

Minor EventHandler and test cleanup
https://bugs.webkit.org/show_bug.cgi?id=211475

Reviewed by Zalan Bujtas.

Source/WebCore:

Now that we assert that m_elementUnderMouse and m_lastElementUnderMouse are either null
or in this EventHandler's document, we can remove the document comparisons (but this code
is probably wrong as well).

Fix enclosingScrollableArea(), which would return any RenderLayer, but should only
return scrollable ones, and should only return scrollable RenderListBoxes.

  • page/EventHandler.cpp:

(WebCore::enclosingScrollableArea):
(WebCore::EventHandler::updateMouseEventTargetNode):

LayoutTests:

Clean up some tests that were mixing js-test and notifyDone().

  • fast/scrolling/scroll-animator-basic-events-expected.txt:
  • fast/scrolling/scroll-animator-basic-events.html:
  • fast/scrolling/scroll-animator-overlay-scrollbars-clicked-expected.txt:
  • fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html:
  • fast/scrolling/scroll-animator-overlay-scrollbars-hovered-expected.txt:
  • fast/scrolling/scroll-animator-overlay-scrollbars-hovered.html:
  • fast/scrolling/scroll-animator-select-list-events-expected.txt:
  • fast/scrolling/scroll-animator-select-list-events.html:
  • platform/mac-wk1/fast/scrolling/scroll-animator-basic-events-expected.txt:
  • platform/mac-wk1/fast/scrolling/scroll-animator-select-list-events-expected.txt:
8:45 PM Changeset in webkit [261210] by ddkilzer@apple.com
  • 15 edits in trunk/Source

Fix deprecated NSGraphicsContext methods using 'graphicsPort'
<https://webkit.org/b/211481>

Reviewed by Darin Adler.

  • Replace uses of -graphicsPort with -CGContext.
  • Replace uses of -graphicsContextWithGraphicsPort:flipped: with -graphicsContextWithCGContext:flipped:.
  • Remove ALLOW_DEPRECATED_DECLARATIONS_{BEGIN,END} if possible.

Source/WebCore:

  • platform/cocoa/DragImageCocoa.mm:

(WebCore::createDragImageForLink):

  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(WebCore::PlatformCALayer::drawLayerContents):

  • platform/mac/ThemeMac.mm:

(WebCore::drawCellFocusRingWithFrameAtTime):

  • platform/mac/WidgetMac.mm:

(WebCore::Widget::paint):

Source/WebKit:

  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView _drawPDFDocument:page:atPoint:]):
(-[WKPrintingView _drawPreview:]):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::drawPDFPage):

Source/WebKitLegacy/mac:

  • Misc/WebKitNSStringExtras.mm:

(-[NSString _web_drawAtPoint:font:textColor:]):

  • Plugins/Hosted/WebHostedNetscapePluginView.mm:

(-[WebHostedNetscapePluginView drawRect:]):

  • Plugins/WebNetscapePluginView.mm:

(-[WebNetscapePluginView saveAndSetNewPortStateForUpdate:]):
(-[WebNetscapePluginView sendDrawRectEvent:]):

  • WebInspector/WebNodeHighlightView.mm:

(-[WebNodeHighlightView drawRect:]):

  • WebView/WebFrame.mm:

(-[WebFrame _drawRect:contentsOnly:]):

  • WebView/WebPDFView.mm:

(-[WebPDFView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]):
(-[WebPDFView _recursiveDisplayAllDirtyWithLockFocus:visRect:]):
(-[WebPDFView _recursive:displayRectIgnoringOpacity:inContext:topView:]):

8:08 PM Changeset in webkit [261209] by Alan Bujtas
  • 2 edits in trunk/Source/WebKit

[Quirk] Job listing page goes blank when scrolling on stackoverflow.com
https://bugs.webkit.org/show_bug.cgi?id=211480
<rdar://problem/62558405>

Reviewed by Wenson Hsieh.

Add the option of returning "use desktop web content" on any configuration when the host application asks for content recommendation.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::desktopClassBrowsingRecommendedForRequest):
(WebKit::desktopClassBrowsingRecommended):
(WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies):

6:40 PM Changeset in webkit [261208] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Crash in match_constness<WebCore::CSSValue, WebCore::CSSPrimitiveValue>::type& WTF::downcast<WebCore::CSSPrimitiveValue, WebCore::CSSValue> -- ASAN
https://bugs.webkit.org/show_bug.cgi?id=211479

Patch by Pinki Gyanchandani <pgyanchandani@apple.com> on 2020-05-05
Reviewed by Geoffrey Garen.

Added check to downcast CSSValue to CSSPrimitiveValue, only if valid CSSPrimitveValue is associated with the property.

New test would be added to Internal repository.

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::pageBreakPropertyValue const):

5:11 PM Changeset in webkit [261207] by sbarati@apple.com
  • 7 edits in trunk

Don't use the DebugHeap for catalyst
https://bugs.webkit.org/show_bug.cgi?id=211471

Reviewed by Tim Horton.

Source/bmalloc:

  • bmalloc/BPlatform.h:
  • bmalloc/Environment.cpp:

(bmalloc::Environment::computeIsDebugHeapEnabled):

  • bmalloc/ProcessCheck.h:

(bmalloc::shouldProcessUnconditionallyUseBmalloc): Deleted.

  • bmalloc/ProcessCheck.mm:

Tools:

  • TestWebKitAPI/Tests/WTF/bmalloc/IsoHeap.cpp:

(TEST):

4:52 PM Changeset in webkit [261206] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Crash under _LSSetApplicationInformationItem()
https://bugs.webkit.org/show_bug.cgi?id=211478
<rdar://problem/62201314>

Reviewed by Alex Christensen.

Given the crashes, I suspect it is not actually safe to call _LSSetApplicationInformationItem()
from a non main-thread like it was done in r238289. We still run the code asynchronously to
address the issue that r238289 was trying to fix but we now call _LSSetApplicationInformationItem()
on the main thread.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::updateProcessName):
(WebKit::WebProcess::updateActivePages):
(WebKit::setProcessNameQueue): Deleted.

4:12 PM Changeset in webkit [261205] by Chris Dumez
  • 2 edits in trunk/LayoutTests

fast/overflow/horizontal-scroll-after-back.html is a flaky timeout on macOS
https://bugs.webkit.org/show_bug.cgi?id=211473
<rdar://problem/61180247>

Reviewed by Darin Adler.

I made the following changes to the test:

  • Stop relying on 200ms timers and instead just a 0 timer after the load event.
  • Detect the case where we failed to enter page cache and fail nicely in this case instead of timing out.
  • Use Element.click() to trigger the navigation instead of dispatching a custom click event.

I have not been able to reproduce the flakiness locally. However, the changes in
this patch will at the very least make the test faster to run and cause the test
to fail instead of timing out if the issue is that we fail to enter the back /
forward cache, which would help us fix this.

  • fast/overflow/horizontal-scroll-after-back.html:
3:58 PM Changeset in webkit [261204] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: (r261113): [ Mac ] http/tests/frame-throttling/raf-throttle-in-cross-origin-subframe.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=211470

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:37 PM Changeset in webkit [261203] by Peng Liu
  • 21 edits
    2 adds in trunk

Update WebKitTestRunner to support running multiple video fullscreen and Picture-in-Picture tests simultaneously
https://bugs.webkit.org/show_bug.cgi?id=203723

Reviewed by Jer Noble.

Source/WebCore:

Test: media/video-presentation-mode.html

Add a flag MockVideoPresentationModeEnabled to "internals" for video fullscreen
and picture-in-picture tests.

  • page/ChromeClient.h:

(WebCore::ChromeClient::setMockVideoPresentationModeEnabled):

  • testing/Internals.cpp:

(WebCore::Internals::setMockVideoPresentationModeEnabled):

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit:

When the flag MockVideoPresentationModeEnabled is true, the VideoFullscreenManagerProxy in the UI process
will mock the behavior of the VideoFullscreenInterface[Mac|AVKit].

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.h:

(WebKit::VideoFullscreenManagerProxy::setMockVideoPresentationModeEnabled):

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::requestHideAndExitFullscreen):
(WebKit::VideoFullscreenManagerProxy::applicationDidBecomeActive):
(WebKit::VideoFullscreenManagerProxy::setupFullscreenWithID):
(WebKit::VideoFullscreenManagerProxy::setHasVideo):
(WebKit::VideoFullscreenManagerProxy::setVideoDimensions):
(WebKit::VideoFullscreenManagerProxy::enterFullscreen):
(WebKit::VideoFullscreenManagerProxy::exitFullscreen):
(WebKit::VideoFullscreenManagerProxy::exitFullscreenWithoutAnimationToMode):
(WebKit::VideoFullscreenManagerProxy::setInlineRect):
(WebKit::VideoFullscreenManagerProxy::setHasVideoContentLayer):
(WebKit::VideoFullscreenManagerProxy::cleanupFullscreen):
(WebKit::VideoFullscreenManagerProxy::preparedToReturnToInline):
(WebKit::VideoFullscreenManagerProxy::preparedToExitFullscreen):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didAttachToRunningProcess):
(WebKit::WebPageProxy::setMockVideoPresentationModeEnabled):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::setMockVideoPresentationModeEnabled):
(WebKit::WebChromeClient::setUpPlaybackControlsManager):
(WebKit::WebChromeClient::clearPlaybackControlsManager):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/cocoa/VideoFullscreenManager.h:

Source/WebKitLegacy/mac:

When the flag MockVideoPresentationModeEnabled is true, WebView will ignore the requests to
WebVideoFullscreenController, so that the DumpRenderTree can run multiple video fullscreen
and picture-in-picture tests in parallel.

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::setMockVideoPresentationModeEnabled):

  • WebView/WebView.mm:
  • WebView/WebViewData.h:
  • WebView/WebViewInternal.h:

LayoutTests:

  • media/video-presentation-mode-expected.txt: Added.
  • media/video-presentation-mode.html: Added.
3:31 PM Changeset in webkit [261202] by Darin Adler
  • 8 edits
    2 deletes in trunk/Source

Remove HAVE(AVFOUNDATION_LEGIBLE_OUTPUT_SUPPORT)
https://bugs.webkit.org/show_bug.cgi?id=211461

Reviewed by Eric Carlson.

Source/WebCore:

  • PlatformMac.cmake: Removed InbandTextTrackPrivateLegacyAVFObjC.mm.
  • SourcesCocoa.txt: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto, also the header.
  • platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.h: Removed.
  • platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.mm: Removed.
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:

Removed HAVE(AVFOUNDATION_LEGIBLE_OUTPUT_SUPPORT). Also moved data member
initialization to the class definition, made more things private and final,
made outputObscuredDueToInsufficientExternalProtectionChanged unconditional,
changed friend class MediaPlayerFactoryAVFoundationObjC into member class
MediaPlayerPrivateAVFoundationObjC::Factory, removed unused removeSession function,
and tweaked conditionals.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

Removed import of InbandTextTrackPrivateLegacyAVFObjC.h. Moved data member
initialization to the class definition. Moved include of BinarySemaphore here.

Source/WTF:

  • wtf/PlatformHave.h: Don't define HAVE_AVFOUNDATION_LEGIBLE_OUTPUT_SUPPORT.
3:22 PM Changeset in webkit [261201] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

clobberize validator should use branchTest8 directly.
https://bugs.webkit.org/show_bug.cgi?id=211469

Reviewed by Yusuke Suzuki.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCurrentBlock):

3:09 PM Changeset in webkit [261200] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r239175): Source Maps: original source not shown when in nested folder
https://bugs.webkit.org/show_bug.cgi?id=198276

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/TreeOutline.js:

(WI.TreeOutline.prototype.removeChildren):
r239175 made it so that WI.TreeOutline.prototype.removeChildren actually modified the
this.children member property array (which is not a getter), meaning that if a caller had
previously saved a reference to it before calling removeChildren(), the saved reference
would also be modified, preventing it from being of any real use afterwards. At that time,
WI.TreeOutline maintained an index value for each WI.TreeElement, which meant that it
was necessary to remove from this.children as otherwise Array.prototype.indexOf calls
would not be accurate. Since then, WI.TreeOutline has moved to using representedObject,
meaning it's no longer necessary to modify this.children.

  • UserInterface/Views/SourceCodeTreeElement.js:

(WI.SourceCodeTreeElement.prototype.onpopulate):
(WI.SourceCodeTreeElement.prototype.onpopulate.combineFolderChain): Deleted.
(WI.SourceCodeTreeElement.prototype.onpopulate.findAndCombineFolderChains): Deleted.
Drive-by: don't attempt to combine folder chains when "Group by Path" to match the rest of

the look/feel of the navigation sidebar.

  • UserInterface/Models/SourceMapResource.js:

(WI.SourceMapResource.prototype.get sourceMapDisplaySubpath):
Drive-by: fix "null" being shown as the root subpath folder when using a local server.

2:15 PM Changeset in webkit [261199] by ysuzuki@apple.com
  • 6 edits
    2 adds in trunk

[JSC] Implement BigInt.asIntN and BigInt.asUintN
https://bugs.webkit.org/show_bug.cgi?id=181144

Reviewed by Darin Adler.

JSTests:

  • stress/bigint-asintn.js: Added.

(shouldBe):
(shouldThrow):
(BigInt.asIntN):

  • stress/bigint-asuintn.js: Added.

(shouldBe):
(shouldThrow):
(BigInt.asUintN):

  • test262/expectations.yaml:

Source/JavaScriptCore:

This patch implements BigInt.asIntN[1] and BigInt.asUintN[2] features.
As the same to the other BigInt runtime C++ code, we port V8 code to JSC to implement both.

BigInt.asIntN is static_cast<intN_t>(BigInt value) and BigInt.asUintN is static_cast<uintN_t>(BigInt value).
They are getting slice of N bits from two's complement representation of the given BigInt. The difference between
asIntN and asUintN is asIntN renders MSB as a sign.

This patch is once rolled out due to ARM64_32 build failure, which is caused by the existing bug[3]. Relanding it
since it is now fixed.

[1]: https://tc39.es/ecma262/#sec-bigint.asintn
[2]: https://tc39.es/ecma262/#sec-bigint.asuintn
[3]: https://trac.webkit.org/changeset/261174/webkit

  • runtime/BigIntConstructor.cpp:

(JSC::toBigInt):
(JSC::bigIntConstructorFuncAsUintN):
(JSC::bigIntConstructorFuncAsIntN):

  • runtime/JSBigInt.cpp:

(JSC::zeroImpl):
(JSC::JSBigInt::divideImpl):
(JSC::JSBigInt::unaryMinusImpl):
(JSC::JSBigInt::remainderImpl):
(JSC::JSBigInt::digitDiv):
(JSC::JSBigInt::absoluteSub):
(JSC::JSBigInt::asIntNImpl):
(JSC::JSBigInt::asUintNImpl):
(JSC::JSBigInt::truncateToNBits):
(JSC::JSBigInt::truncateAndSubFromPowerOfTwo):
(JSC::JSBigInt::asIntN):
(JSC::JSBigInt::asUintN):

  • runtime/JSBigInt.h:
2:01 PM Changeset in webkit [261198] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: the divider before the console message icons in the tab bar is shown even if there are no other icons
https://bugs.webkit.org/show_bug.cgi?id=211390

Reviewed by Brian Burg.

  • UserInterface/Base/Main.js:

(WI._updateTabBarDividers):
(WI._updateTabBarDividers.isHidden): Added.
If the various WI.ButtonNavigationItem aren't actually created, then the optional chain
will return undefined instead of the desired true when checking whether it is hidden.
Effectively, a WI.ButtonNavigationItem that does not exist should be considered hidden.

2:00 PM Changeset in webkit [261197] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Timelines: Memory: the stacked area graph should not extend beyond the "stopping time" marker
https://bugs.webkit.org/show_bug.cgi?id=211327

Reviewed by Brian Burg.

  • UserInterface/Views/MemoryTimelineOverviewGraph.js:

(WI.MemoryTimelineOverviewGraph.prototype.layout):
(WI.MemoryTimelineOverviewGraph.prototype.layout.insertDiscontinuity):

1:52 PM Changeset in webkit [261196] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Assert that EventHandler only tracks event target nodes in its own document
https://bugs.webkit.org/show_bug.cgi?id=211462

Reviewed by Zalan Bujtas.

EventHandler is per-Frame, so should not track Nodes from different documents. However, it did so
by mistake if an event handler moved a node between documents.

  • page/EventHandler.cpp:

(WebCore::EventHandler::updateMouseEventTargetNode):

  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::targetNode const):

1:50 PM Changeset in webkit [261195] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed fix for MotionMark regression.

Revert minor part of r260017. Remove telemetry from IOKit filtering allow rules. This telemetry is causing higher
CPU usage on the system, and is not needed, since we have already confirmed these messages are being used.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
1:29 PM Changeset in webkit [261194] by dbates@webkit.org
  • 5 edits in trunk

Should show selection highlight during text interaction
https://bugs.webkit.org/show_bug.cgi?id=211362
<rdar://problem/59191873>

Reviewed by Wenson Hsieh.

Source/WebKit:

Break out text interaction tracking into its own ivar instead of using the
WebKit::InteractionIsHappening selection suppression reason so that I can
key off it to only disallow zooming to reveal the focused element during
a text interaction. The selection suppression machinery does more than this.
It also deactivates selection assistance, painting of highlights, etc, which
I don't want.

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView cleanUpInteraction]): Reset state.
(-[WKContentView becomeFirstResponderForWebView]): Activate selection assistant
during a text interaction if the selection assistant is not being suppressed.
(-[WKContentView _zoomToRevealFocusedElement]): Early return if called during a
text interaction. The function -_didFinishTextInteractionInTextInputContext will
trigger the zoom after the interaction completes.
(-[WKContentView _didCommitLoadForMainFrame]): Reset state.

(-[WKContentView _willBeginTextInteractionInTextInputContext:]):
(-[WKContentView _didFinishTextInteractionInTextInputContext:]):
Update state. While I am here, text interaction is considered a gesture so
also update _usingGestureForSelection. This means that the selection view
will be updated immediately on a selection change during a text interaction
instead of waiting until the next layer tree commit occurs.

Tools:

Add a test to ensure the selection view has rects after selecting
text during a text interaction. These rects represents the highlight.

  • TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm:

(TestWebKitAPI::TEST):

12:30 PM Changeset in webkit [261193] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

[ Mac ] fast/animation/request-animation-frame-timestamps.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209079

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-05-05
Reviewed by Antoine Quint.

Make the test asynchronous instead of using timers to fix its flakiness.

  • fast/animation/request-animation-frame-timestamps-expected.txt:
  • fast/animation/request-animation-frame-timestamps.html:
  • platform/mac/TestExpectations:
12:25 PM Changeset in webkit [261192] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Factor RenderLayerBacking::updateEventRegion skip conditions into a lambda
https://bugs.webkit.org/show_bug.cgi?id=211450

Reviewed by Simon Fraser.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateEventRegion):

12:23 PM Changeset in webkit [261191] by mmaxfield@apple.com
  • 5 edits in trunk/LayoutTests

Update two svg tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=211331
<rdar://problem/61844271>

Unreviewed.

Apply https://github.com/web-platform-tests/wpt/commit/51151cf5bfc32adb8d96fca51a30c126d1e0200d
to our own tree.

  • platform/mac/imported/w3c/web-platform-tests/svg/import/pservers-grad-08-b-manual-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/svg/import/text-altglyph-01-b-manual-expected.txt:
  • web-platform-tests/svg/import/pservers-grad-08-b-manual.svg:
  • web-platform-tests/svg/import/text-altglyph-01-b-manual.svg:
12:21 PM Changeset in webkit [261190] by mmaxfield@apple.com
  • 6 edits
    1 delete in trunk/LayoutTests

Rebaseline fast/css/font-face-opentype.html
https://bugs.webkit.org/show_bug.cgi?id=211332
<rdar://problem/61833165>

Update for iOS. Also make the test insensitive to platform fallback fonts.

Unreviewed.

  • fast/css/font-face-opentype.html:
  • platform/ios-wk1/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/ios/fast/css/font-face-opentype-expected.txt:
  • platform/mac/fast/css/font-face-opentype-expected.txt:
12:12 PM Changeset in webkit [261189] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

webkitbot isn't responding properly in irc
https://bugs.webkit.org/show_bug.cgi?id=211458

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/tool/commands/queues.py:

(AbstractQueue.run_webkit_patch): Removed status-host paramter since old ews server has been decommissioned.

  • Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py: Updated unit-tests.
  • Scripts/webkitpy/tool/commands/queues_unittest.py:
11:59 AM Changeset in webkit [261188] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Drop code path using the legacy CFNetwork cookie change notification SPI
https://bugs.webkit.org/show_bug.cgi?id=211411
<rdar://problem/62869148>

Reviewed by John Wilander.

Source/WebCore:

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::NetworkStorageSession::registerCookieChangeListenersIfNecessary):
(WebCore::NetworkStorageSession::unregisterCookieChangeListenersIfNecessary):
(WebCore::NetworkStorageSession::supportsCookieChangeListenerAPI const):

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:
11:56 AM Changeset in webkit [261187] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

Check for app-bound domains should confirm WKAppBoundDomains key exists when checking for default app-bound protocols.
https://bugs.webkit.org/show_bug.cgi?id=211451
<rdar://problem/62715316

Reviewed by Brent Fulgham.

Checks for WKAppBoundDomains key before treating a protocol as
app-bound. This is a regression in expected behavior after making
In-App Browser privacy opt-in based on the presence of the key.

Also moves the check for special protocols inside of the completion handler for
ensureAppBoundDomains to make sure the check for the key has finished.

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::beginAppBoundDomainCheck):
Added a comment to clarify why we need to check for both an empty
app-bound domains list and the presence of the key for testing
purposes.

11:44 AM Changeset in webkit [261186] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[ Mac ] fast/animation/request-animation-frame-cancel2.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209491

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-05-05
Reviewed by Antoine Quint.

Make the test asynchronous instead of using timers to fix its flakiness.

  • fast/animation/request-animation-frame-cancel2.html:
  • platform/mac/TestExpectations:
11:42 AM Changeset in webkit [261185] by sbarati@apple.com
  • 7 edits in trunk/Source/ThirdParty/ANGLE

Unreviewed, reverting r261176.

It broke the build

Reverted changeset:

"[ANGLE] Declarations should match definitions"
https://bugs.webkit.org/show_bug.cgi?id=211410
https://trac.webkit.org/changeset/261176

11:34 AM Changeset in webkit [261184] by aakash_jain@apple.com
  • 5 edits in trunk/Tools

EWS should skip Apple Win build and tests for patches that only change WebKit2 sources
https://bugs.webkit.org/show_bug.cgi?id=211210

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/factories.py:

(WindowsFactory.init): enabled relevance checking for windows ews.

  • BuildSlaveSupport/ews-build/factories_unittest.py: Updated unit-test.
  • BuildSlaveSupport/ews-build/steps.py:

(CheckPatchRelevance): Defined relevance info for windows ews.

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(TestCheckPatchRelevance.test_relevant_windows_wk1_patch): Added unit test.
(TestCheckPatchRelevance.test_queues_without_relevance_info): Fixed unit-test.

11:26 AM Changeset in webkit [261183] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exception: undefined is not an object (evaluating 'this.InspectorAgent.initialized')
https://bugs.webkit.org/show_bug.cgi?id=211434

Reviewed by Joseph Pecoraro.

  • UserInterface/Protocol/Target.js:

(WI.Target.prototype.initialize):
Worker targets don't (and are not expected to) have an Inspector domain.

11:21 AM Changeset in webkit [261182] by Ross Kirsling
  • 14 edits in trunk

[Intl] Alphabetize extension keys and correctly mark const methods
https://bugs.webkit.org/show_bug.cgi?id=211359

Reviewed by Darin Adler.

JSTests:

  • stress/intl-collator.js:
  • stress/intl-datetimeformat.js:

Add tests.

Source/JavaScriptCore:

Two cleanup items for Intl classes:

  1. Ensure resolvedOptions().locale returns relevant extension keys in alphabetical order. ICU does this for us via Intl.getCanonicalLocales / Intl.*.supportedLocalesOf but not via ResolveLocale. However, we don't need to do any sorting in ResolveLocale; we can just pre-alphabetize relevantExtensionKeys. (See also https://github.com/tc39/ecma402/pull/433.)
  1. Ensure Intl classes are marking const methods correctly.
  • runtime/IntlCollator.cpp:

(JSC::IntlCollator::sortLocaleData):
(JSC::IntlCollator::searchLocaleData):
(JSC::IntlCollator::compareStrings const): Add const specifier.
(JSC::IntlCollator::resolvedOptions const): Add const specifier.

  • runtime/IntlCollator.h:
  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::localeData):
(JSC::IntlDateTimeFormat::resolvedOptions const): Add const specifier.
(JSC::IntlDateTimeFormat::format const): Add const specifier.
(JSC::IntlDateTimeFormat::formatToParts const): Add const specifier.

  • runtime/IntlDateTimeFormat.h:
  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::format const): Add const specifier.
(JSC::IntlNumberFormat::resolvedOptions const): Add const specifier.
(JSC::IntlNumberFormat::formatToParts const): Add const specifier.

  • runtime/IntlNumberFormat.h:
  • runtime/IntlPluralRules.cpp:

(JSC::IntlPluralRules::resolvedOptions const): Add const specifier.
(JSC::IntlPluralRules::select const): Add const specifier.

  • runtime/IntlPluralRules.h:
  • runtime/IntlRelativeTimeFormat.cpp:

(JSC::IntlRelativeTimeFormat::resolvedOptions const): Add const specifier.
(JSC::IntlRelativeTimeFormat::formatInternal const): Add const specifier.
(JSC::IntlRelativeTimeFormat::format const): Add const specifier.
(JSC::IntlRelativeTimeFormat::formatToParts const): Add const specifier.

  • runtime/IntlRelativeTimeFormat.h:
11:17 AM Changeset in webkit [261181] by keith_miller@apple.com
  • 12 edits in trunk/Source/JavaScriptCore

Add Clobberize validator for clobber top.
https://bugs.webkit.org/show_bug.cgi?id=209432

Reviewed by Yusuke Suzuki.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::scratchRegister):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::scratchRegister):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCurrentBlock):

  • dfg/DFGSpeculativeJIT64.cpp:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lower):
(JSC::FTL::DFG::LowerDFGToB3::compileBlock):
(JSC::FTL::DFG::LowerDFGToB3::compileNode):

  • interpreter/Interpreter.cpp:

(JSC::eval):
(JSC::Interpreter::executeProgram):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::execute):
(JSC::Interpreter::executeModuleProgram):

  • jit/JITCodeInlines.h:

(JSC::JITCode::execute):

  • llint/LLIntThunks.h:

(JSC::vmEntryToWasm):

  • runtime/OptionsList.h:
  • runtime/VM.h:
10:10 AM Changeset in webkit [261180] by timothy_horton@apple.com
  • 5 edits in trunk/Source

"Essential Skeleton" does not respond to mouse events, only touch events
https://bugs.webkit.org/show_bug.cgi?id=211439
<rdar://problem/62694519>

Reviewed by Wenson Hsieh.

Source/WebCore:

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::IOSApplication::isEssentialSkeleton):

Source/WebKit:

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView shouldUseMouseGestureRecognizer]):
Add a quirk.

10:08 AM Changeset in webkit [261179] by mark.lam@apple.com
  • 13 edits
    2 adds in trunk

Allow Bitmap to use up to a UCPURegister word size for internal bit storage.
https://bugs.webkit.org/show_bug.cgi?id=211328
<rdar://problem/62755865>

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  • assembler/CPU.h:

Source/WTF:

  1. Moved the definition of CPURegister and UCPURegister down into WTF. Added CPU(REGISTER64) and CPU(REGISTER32) for determining what size a CPU general purpose register is.
  1. Updated Bitmap so that it will automatically choose the minimal required word size for the number of bits it needs to store. This means the Bitmap can automatically choose a WordType from uint8_t up to UCPURegister. Previously, the WordType is always uint32_t by default.

This should improve perf with use of Bitmap on 64-bit platforms. The size
optimization is necessary to prevent bloat on 64-bit platforms which would have
resulted if we simply set the default to always be UCPURegister.

  1. Added a check in findRunOfZeros() for handling the edge case where the requested runLength exceeds the bitmapSize.
  1. Fixed a bug in count() that was unnecessarily casting the bits to unsigned instead of just using the Bitmap WordType. As a result, when using a WordType of uint64_t, it was discarding bits from the count.
  1. Fixed invert() to leave the bits beyond bitmapSize untouched. Fixed isFull() to ignore the bits beyond bitmapSize.

By fixing invert() to leave those bits as 0, isEmpty() and hash() will
continue to work. Otherwise, inverting those bits will cause isEmpty() to
always fail, and hash()'s result may be different for the same set of bit
values within bitmapSize.

isFull(), on the other hand, checks for set bits in the words. Since there
may be 0 valued bits beyond bitmapSize, isFull() needs to be fixed to ignore
those.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/Bitmap.h:

(WTF::WordType>::invert):
(WTF::WordType>::findRunOfZeros const):
(WTF::WordType>::count const):
(WTF::WordType>::isFull const):

  • wtf/CMakeLists.txt:
  • wtf/PlatformCPU.h:
  • wtf/PlatformUse.h:
  • wtf/StdIntExtras.h: Copied from Source/WTF/wtf/StdIntExtras.h.

Tools:

Added API tests for WTF::Bitmap to make sure that Bitmap is behaving correctly.
Since Bitmap is used in critical infrastructure like the GC, it is important to
ensure that there are no latent bugs.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/Bitmap.cpp: Added.

(TestWebKitAPI::countBits):
(TestWebKitAPI::testBitmapSize):
(TestWebKitAPI::testBitmapConstructedEmpty):
(TestWebKitAPI::testBitmapSetGet):
(TestWebKitAPI::testBitmapTestAndSet):
(TestWebKitAPI::testBitmapTestAndClear):
(TestWebKitAPI::testBitmapConcurrentTestAndSet):
(TestWebKitAPI::testBitmapConcurrentTestAndClear):
(TestWebKitAPI::testBitmapClear):
(TestWebKitAPI::testBitmapClearAll):
(TestWebKitAPI::testBitmapInvert):
(TestWebKitAPI::testBitmapFindRunOfZeros):
(TestWebKitAPI::testBitmapCount):
(TestWebKitAPI::testBitmapIsEmpty):
(TestWebKitAPI::testBitmapIsFull):
(TestWebKitAPI::testBitmapMerge):
(TestWebKitAPI::testBitmapFilter):
(TestWebKitAPI::testBitmapExclude):
(TestWebKitAPI::testBitmapConcurrentFilter):
(TestWebKitAPI::testBitmapSubsumes):
(TestWebKitAPI::testBitmapForEachSetBit):
(TestWebKitAPI::testBitmapFindBit):
(TestWebKitAPI::testBitmapIteration):
(TestWebKitAPI::testBitmapMergeAndClear):
(TestWebKitAPI::testBitmapSetAndClear):
(TestWebKitAPI::testBitmapOperatorEqual):
(TestWebKitAPI::testBitmapOperatorNotEqual):
(TestWebKitAPI::testBitmapHash):
(TestWebKitAPI::TEST):

LayoutTests:

editing/undo-manager/undo-manager-delete-stale-undo-items.html exposed a bug in
this patch. However, when a failure occurs, this test runs perpetually until it
times out. There's no need to do this. After a finite number of GC cycles,
unreachable objects should be collected. This is especially so because
GCController.collect() does a synchronous full GC.

Added a cap of 10 GC tries, and fail out if the test does not see the expected
result. This allows the test to fail fast and avoid the costly time out.

  • editing/undo-manager/undo-manager-delete-stale-undo-items.html:
9:52 AM Changeset in webkit [261178] by commit-queue@webkit.org
  • 5 edits in trunk

Compile GPUProcess in WPE port as experimental feature
https://bugs.webkit.org/show_bug.cgi?id=211442

Patch by Víctor Manuel Jáquez Leal <vjaquez@igalia.com> on 2020-05-05
Reviewed by Don Olmstead.

.:

Enable GPUProcess in WPE.

  • Source/cmake/OptionsWPE.cmake: enable GPU Process as

experimental feature

Source/WebKit:

Enable GPU Process in WPE.

This is compilation only. No new tests required.

  • PlatformWPE.cmake: Add Platform/generic include directory.
  • SourcesWPE.txt: Add related source files.
9:51 AM Changeset in webkit [261177] by Megan Gardner
  • 5 edits
    3 adds in trunk

Style is not applied when changed on the first line of a new mail message.
https://bugs.webkit.org/show_bug.cgi?id=211200
<rdar://problem/62087514>

Reviewed by Darin Adler.

Source/WebCore:

After r257487 when we resign first responder, we immediatly
update activity state. This means that if we resign first responder, and then
become first responder, we are clearing the selection if the caret is at the beginning
of the document, due to a check in setSelectionFromNone. This check was originally added
in 2006 because it happened to fix <rdar://problem/4483145>. Removing this check and
merging the iOS and Mac logic.

Test: editing/execCommand/ios/first-line-text-attribute-change-presist-through-resigning-first-responder.html

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::setSelectionFromNone):

LayoutTests:

  • editing/execCommand/ios/first-line-text-attribute-change-presist-through-resigning-first-responder-expected.txt: Added.
  • editing/execCommand/ios/first-line-text-attribute-change-presist-through-resigning-first-responder.html: Added.
9:38 AM Changeset in webkit [261176] by Jonathan Bedard
  • 7 edits in trunk/Source/ThirdParty/ANGLE

[ANGLE] Declarations should match definitions
https://bugs.webkit.org/show_bug.cgi?id=211410

Reviewed by Alex Christensen.

  • src/libANGLE/renderer/gl/eagl/DisplayEAGL.h: Skip definitions for platforms

where class is undefined.

  • src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm:

(rx::DisplayEAGL::generateConfigs): Function is not defined for for MacCatalyst.

  • src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.h: Skip definitions for platforms

where class is undefined.

  • src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm:
  • src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.h: Skip definitions for platforms

where class is undefined.

  • src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.mm:
9:28 AM Changeset in webkit [261175] by keith_miller@apple.com
  • 3 edits
    1 add in trunk

iterator_open should remap the symbolIterator argument correctly when inlined.
https://bugs.webkit.org/show_bug.cgi?id=211308
<rdar://problem/62287877>

Reviewed by Mark Lam.

JSTests:

  • stress/inlining-for-of-should-validate.js: Added.

(bar):
(foo):

Source/JavaScriptCore:

  • dfg/DFGByteCodeParser.cpp:

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

9:24 AM Changeset in webkit [261174] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] JSBigInt::maxLengthBits and JSBigInt::maxLength are wrong
https://bugs.webkit.org/show_bug.cgi?id=211445

Reviewed by Mark Lam.

JSBigInt::maxLengthBits and JSBigInt::maxLength definitions are wrong.

  1. We are defining maxLength and maxLengthBits as an unrelated value to each other. This is wrong. maxLength should be defined as maxLengthBits / (sizeof(Digit) * bitsPerByte).
  2. We use sizeof(void*) and assume that sizeof(Digit) == sizeof(void*). This is wrong in ARM64_32 environment where Digit size is sizeof(uint64_t) while the pointer size is sizeof(uint32_t). This causes compile errors in ARM64_32 when the code is using these values with static_assert.
  • runtime/JSBigInt.h:
9:09 AM Changeset in webkit [261173] by commit-queue@webkit.org
  • 4 edits in trunk

A URL cannot have a username/password/port if its host is null
https://bugs.webkit.org/show_bug.cgi?id=211358

Patch by Rob Buis <rbuis@igalia.com> on 2020-05-05
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update improved test results.

  • web-platform-tests/url/url-setters-expected.txt:

Source/WebCore:

A URL cannot have a username/password/port if its host is null [1], so
adjust URL.cpp accordingly.

Behavior matches Chrome and Firefox.

[1] https://url.spec.whatwg.org/#cannot-have-a-username-password-port

  • html/URLDecomposition.cpp:

(WebCore::URLDecomposition::setUsername):
(WebCore::URLDecomposition::setPassword):
(WebCore::URLDecomposition::setPort):

9:05 AM Changeset in webkit [261172] by youenn@apple.com
  • 4 edits
    2 adds in trunk

MediaPlayerPrivateMediaStreamAVFObjC should unobserve the tracks from its audio and video track sets
https://bugs.webkit.org/show_bug.cgi?id=211444
<rdar://problem/62886221>

Reviewed by Eric Carlson.

Source/WebCore:

Test: fast/mediastream/MediaStream-removeTrack-while-playing.html

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::~MediaPlayerPrivateMediaStreamAVFObjC):
We keep maps of audio and video tracks we are observing.
Use these two maps to properly unobserve all tracks at destruction time.
While this is not strictly needed since we are using weak pointers, this helps keeping the code healthy.

  • platform/mediastream/MediaStreamTrackPrivate.cpp:

(WebCore::MediaStreamTrackPrivate::forEachObserver):
Add a debug ASSERT so that we ensure add/remove observers is done properly.

LayoutTests:

  • fast/mediastream/MediaStream-removeTrack-while-playing-expected.txt: Added.
  • fast/mediastream/MediaStream-removeTrack-while-playing.html: Added.
9:03 AM Changeset in webkit [261171] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Unreviewed, reverting r261130.

Caused crashes on some of our bots

Reverted changeset:

"Drop code path using the legacy CFNetwork cookie change
notification SPI"
https://bugs.webkit.org/show_bug.cgi?id=211411
https://trac.webkit.org/changeset/261130

8:58 AM Changeset in webkit [261170] by Darin Adler
  • 17 edits in trunk/Source

Remove now-unneeded USE(COREMEDIA) and USE(VIDEOTOOLBOX)
https://bugs.webkit.org/show_bug.cgi?id=211437

Reviewed by Eric Carlson.

Source/WebCore:

  • platform/cocoa/VideoToolboxSoftLink.cpp: Remove USE(VIDEOTOOLBOX).
  • platform/cocoa/VideoToolboxSoftLink.h: Ditto.
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage): Ditto.

  • platform/graphics/cocoa/WebCoreDecompressionSession.h: Ditto. Also remove

#pragma once since this header is only used with #import, not #include.

  • platform/graphics/cocoa/WebCoreDecompressionSession.mm: Ditto.
  • platform/graphics/cv/ImageRotationSessionVT.h: Ditto.
  • platform/graphics/cv/ImageRotationSessionVT.mm: Ditto.
  • platform/graphics/cv/ImageTransferSessionVT.h: Ditto.
  • platform/graphics/cv/ImageTransferSessionVT.mm: Ditto.
  • platform/graphics/cv/PixelBufferConformerCV.cpp:

(WebCore::PixelBufferConformerCV::PixelBufferConformerCV): Ditto.
(WebCore::PixelBufferConformerCV::convert): Ditto.
(WebCore::PixelBufferConformerCV::createImageFromPixelBuffer): Ditto.

  • platform/graphics/cv/PixelBufferConformerCV.h: Ditto.

Source/WebCore/PAL:

  • pal/system/mac/ClockCM.h: Remove USE(COREMEDIA). Also made everything

private since nothing includes this header. Removed everything unused.

  • pal/system/mac/ClockCM.mm: Remove USE(COREMEDIA). Put everything inside

the PAL namespace.
(PAL::ClockCM::ClockCM): Merged in the second constructor and initializeWithTimingSource.
(PAL::ClockCM::ClockCM): Deleted.
(PAL::ClockCM::initializeWithTimingSource): Deleted.
(PAL::ClockCM::setCurrentTime): Tweaked.
(PAL::ClockCM::currentTime const): Tweaked.
(PAL::ClockCM::setCurrentMediaTime): Deleted.
(PAL::ClockCM::currentMediaTime const): Deleted.

Source/WTF:

  • wtf/PlatformUse.h: Don't set USE_COREMEDIA or USE_VIDEOTOOLBOX.
7:50 AM Changeset in webkit [261169] by youenn@apple.com
  • 19 edits in trunk/Source

Remove LegacySchemeRegistry::canServiceWorkersHandleURLScheme
https://bugs.webkit.org/show_bug.cgi?id=211170

Reviewed by Alex Christensen.

Source/WebCore:

Since we no longer use custom service worker schemes in API tests,
we no longer need custom schemes in web process, given they are not supported in network process anyway.
Remove related code.

  • Modules/cache/DOMWindowCaches.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(NeedsRuntimeCheck):
(GenerateRuntimeEnableConditionalString):

  • bindings/scripts/IDLAttributes.json:
  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::hasServiceWorkerScheme const): Deleted.

  • dom/ScriptExecutionContext.h:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::matchRegistration):
(WebCore::DocumentLoader::commitData):

  • page/NavigatorServiceWorker.idl:
  • platform/LegacySchemeRegistry.cpp:

(WebCore::serviceWorkerSchemes): Deleted.
(WebCore::LegacySchemeRegistry::registerURLSchemeServiceWorkersCanHandle): Deleted.
(WebCore::LegacySchemeRegistry::canServiceWorkersHandleURLScheme): Deleted.
(WebCore::LegacySchemeRegistry::isServiceWorkerContainerCustomScheme): Deleted.

  • platform/LegacySchemeRegistry.h:
  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::addRegistration):

Source/WebKit:

Remove unused parameters since they are no longer being set in UIProcess.

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

7:43 AM Changeset in webkit [261168] by Darin Adler
  • 8 edits in trunk/Source

Remove now-uneeded HAVE macros related to PDF
https://bugs.webkit.org/show_bug.cgi?id=211435

Reviewed by Anders Carlsson.

Source/WebKit:

  • Platform/spi/ios/PDFKitSPI.h: Removed HAVE(PDFHOSTVIEWCONTROLLER_SNAPSHOTTING).
  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView web_initWithFrame:webView:mimeType:]): Removed
HAVE(PDF_HOST_VIEW_CONTROLLER_WITH_BACKGROUND_COLOR).
(+[WKPDFView web_requiresCustomSnapshotting]): Removed HAVE(PDFHOSTVIEWCONTROLLER_SNAPSHOTTING).
(-[WKPDFView web_snapshotRectInContentViewCoordinates:snapshotWidth:completionHandler:]):
Ditto.

Source/WebKitLegacy/mac:

  • WebView/WebFrameView.mm:

(+[WebFrameView _viewTypesAllowImageTypeOmission:]): Removed HAVE(LEGACY_PDF_SUPPORT).

  • WebView/WebView.mm:

(+[WebView _viewClass:andRepresentationClass:forMIMEType:allowingPlugins:]): Ditto.

Source/WTF:

  • wtf/PlatformHave.h: Remove HAVE_PDFHOSTVIEWCONTROLLER_SNAPSHOTTING,

always set for iOS, HAVE_LEGACY_PDF_SUPPORT, always set for all Cocoa
platforms, and HAVE_PDF_HOST_VIEW_CONTROLLER_WITH_BACKGROUND_COLOR,
always set for iOS family platforms.

7:40 AM Changeset in webkit [261167] by ysuzuki@apple.com
  • 6 edits
    2 deletes in trunk

Unreviewed, reverting r261156.

Break ARM64_32 build due to existing bug

Reverted changeset:

"[JSC] Implement BigInt.asIntN and BigInt.asUintN"
https://bugs.webkit.org/show_bug.cgi?id=181144
https://trac.webkit.org/changeset/261156

7:39 AM Changeset in webkit [261166] by Darin Adler
  • 7 edits in trunk/Source

Remove now-unneeded HAVE(DISALLOWABLE_USER_INSTALLED_FONTS)
https://bugs.webkit.org/show_bug.cgi?id=211428

Reviewed by Anders Carlsson.

Source/WebCore:

  • platform/graphics/Font.h: Removed isUserInstalledFont, only used for

an assertion that I took the liberty of removing.

  • platform/graphics/FontCascadeFonts.cpp:

(WebCore::FontCascadeFonts::glyphDataForSystemFallback): Removed an
assertion since it was the only reason to introduce the concept of a
user-installed font to the cross-platform code. The assertion is a bit
of a self-check that doesn't seem critical.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontDatabase::singleton): Deleted.
(WebCore::FontDatabase::singletonAllowingUserInstalledFonts): Remove
HAVE(DISALLOWABLE_USER_INSTALLED_FONTS).
(WebCore::FontDatabase::singletonDisallowingUserInstalledFonts): Ditto.
(WebCore::isUserInstalledFont): Ditto.
(WebCore::addAttributesForInstalledFonts): Ditto.
(WebCore::isFontMatchingUserInstalledFontFallback): Ditto.
(WebCore::addAttributesForWebFonts): Ditto.
(WebCore::installedFontMandatoryAttributes): Ditto.

  • platform/graphics/mac/SimpleFontDataCoreText.cpp:

(WebCore::Font::isUserInstalledFont const): Deleted.

Source/WTF:

  • wtf/PlatformHave.h: Don't define HAVE_DISALLOWABLE_USER_INSTALLED_FONTS.
7:36 AM Changeset in webkit [261165] by aboya@igalia.com
  • 4 edits in trunk

[GStreamer] Video loops when ran in rr record --chaos
https://bugs.webkit.org/show_bug.cgi?id=211182

Reviewed by Philippe Normand.

Source/WebCore:

While trying to investigate a different bug, I ran the browser with
rr record --chaos, which makes it run very slowly and shuffles
thread scheduling to try to make existing race conditions more likely
to show up, also inevitably making the software run very slow.

Doing so I found something strange: the video kept looping even though
it didn't have the loop attribute set.

After some debugging I found that MediaPlayer decides if the video has
ended in part by checking currentMediaTime() is greater or equal to
the video duration, which was not guaranteed to be the case in
MediaPlayerPrivateGStreamer.

As a consequence of this patch, one new LayoutTest has passed.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::playbackPosition const):

LayoutTests:

imported/w3c/web-platform-tests/media-source/mediasource-getvideoplaybackquality.html
is now passing.

  • platform/gtk/TestExpectations:
6:48 AM Changeset in webkit [261164] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC] Rename computedContentHeight/Width to computedHeight/Width
https://bugs.webkit.org/show_bug.cgi?id=211432

Reviewed by Darin Adler.

These functions used to return the computed content box height/width but with box-sizing
support the name is not correct anymore.

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::computedHeight const):
(WebCore::Layout::FormattingContext::Geometry::computedWidth const):
(WebCore::Layout::FormattingContext::Geometry::computedMinHeight const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::complicatedCases const):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::computedContentHeight const): Deleted.
(WebCore::Layout::FormattingContext::Geometry::computedContentWidth const): Deleted.

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin const):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowWidthAndMargin):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraVerticalSpace):

  • layout/tableformatting/TableFormattingContextGeometry.cpp:

(WebCore::Layout::TableFormattingContext::Geometry::cellHeigh const):
(WebCore::Layout::TableFormattingContext::Geometry::computedColumnWidth const):

6:40 AM Changeset in webkit [261163] by youenn@apple.com
  • 14 edits
    1 move
    1 add
    2 deletes in trunk/Source/WebKit

Receiving WebRTC network packets should not go through the main thread
https://bugs.webkit.org/show_bug.cgi?id=211290

Reviewed by Alex Christensen.

Instead of going to main thread before going to rtc network thread, we register a message receiver and dispatch directly to rtc network thread.
This ensures rtc packets are not blocked if main thread is busy.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • NetworkProcess/webrtc/LibWebRTCSocketClient.cpp:

(WebKit::LibWebRTCSocketClient::signalReadPacket):
(WebKit::LibWebRTCSocketClient::signalSentPacket):
(WebKit::LibWebRTCSocketClient::signalAddressReady):
(WebKit::LibWebRTCSocketClient::signalConnect):
(WebKit::LibWebRTCSocketClient::signalClose):

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::NetworkRTCProvider::createSocket):
(WebKit::NetworkRTCProvider::createServerTCPSocket):
(WebKit::NetworkRTCProvider::createClientTCPSocket):
(WebKit::NetworkRTCProvider::newConnection):
(WebKit::NetworkRTCProvider::closeListeningSockets):

  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::NetworkProcessConnection):
(WebKit::NetworkProcessConnection::didReceiveMessage):

  • WebProcess/Network/webrtc/LibWebRTCNetwork.cpp: Added
  • WebProcess/Network/webrtc/LibWebRTCNetwork.h:

(WebKit::LibWebRTCNetwork::connection):
(WebKit::LibWebRTCNetwork::~LibWebRTCNetwork):
(WebKit::LibWebRTCNetwork::networkProcessCrashed):
(WebKit::LibWebRTCNetwork::setConnection):
(WebKit::LibWebRTCNetwork::dispatchToThread):
(WebKit::LibWebRTCNetwork::signalAddressReady):
(WebKit::LibWebRTCNetwork::signalReadPacket):
(WebKit::LibWebRTCNetwork::signalSentPacket):
(WebKit::LibWebRTCNetwork::signalConnect):
(WebKit::LibWebRTCNetwork::signalClose):
(WebKit::LibWebRTCNetwork::signalNewConnection):

  • WebProcess/Network/webrtc/LibWebRTCNetwork.messages.in: Added.
  • WebProcess/Network/webrtc/LibWebRTCSocket.h:
  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:
  • WebProcess/Network/webrtc/WebRTCSocket.cpp: Removed.
  • WebProcess/Network/webrtc/WebRTCSocket.h: Removed.
6:01 AM Changeset in webkit [261162] by graouts@webkit.org
  • 6 edits in trunk

Unreviewed, reverting r260989.

Mistakenly identified cause of MotionMark 1.1 performance regression

Reverted changeset:

"REGRESSION: MotionMark 1.1 regressed due to r260016"
https://bugs.webkit.org/show_bug.cgi?id=211280
https://trac.webkit.org/changeset/260989

5:37 AM Changeset in webkit [261161] by commit-queue@webkit.org
  • 6 edits in trunk

[GTK][WPE][Fetch API] Stale-while-revalidate is not enabled
https://bugs.webkit.org/show_bug.cgi?id=206416

Patch by Rob Buis <rbuis@igalia.com> on 2020-05-05
Reviewed by Carlos Alberto Lopez Perez.

.:

Enable s-w-r for GTK/WPE.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

LayoutTests:

Unskip s-w-r tests for GTK/WPE.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
4:49 AM Changeset in webkit [261160] by cturner@igalia.com
  • 6 edits
    12 deletes in trunk/LayoutTests

[EME] media/encrypted-media/encrypted-media-can-play-type.html is outdated
https://bugs.webkit.org/show_bug.cgi?id=154848

Reviewed by Xabier Rodriguez-Calvar.

Remove out-of-date EME tests and expectations.

  • gpu-process/TestExpectations:
  • media/encrypted-media/encrypted-media-events-expected.txt: Removed.
  • media/encrypted-media/encrypted-media-events.html: Removed.
  • media/encrypted-media/encrypted-media-not-loaded-expected.txt: Removed.
  • media/encrypted-media/encrypted-media-not-loaded.html: Removed.
  • media/encrypted-media/encrypted-media-syntax-expected.txt: Removed.
  • media/encrypted-media/encrypted-media-syntax.html: Removed.
  • media/encrypted-media/encrypted-media-v2-events-expected.txt: Removed.
  • media/encrypted-media/encrypted-media-v2-events.html: Removed.
  • media/encrypted-media/encrypted-media-v2-syntax-expected.txt: Removed.
  • media/encrypted-media/encrypted-media-v2-syntax.html: Removed.
  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/mac/media/encrypted-media/encrypted-media-can-play-type-expected.txt: Removed.
  • platform/win/TestExpectations:
  • platform/win/media/encrypted-media/encrypted-media-can-play-type-expected.txt: Removed.
  • platform/wpe/TestExpectations:
4:33 AM Changeset in webkit [261159] by Alexey Shvayka
  • 53 edits
    1 delete in trunk

Object.prototype.toString is not spec-perfect
https://bugs.webkit.org/show_bug.cgi?id=199138

Reviewed by Darin Adler and Keith Miller.

JSTests:

  • ChakraCore.yaml: Skip a test as global now has @@toStringTag.
  • ChakraCore/test/LetConst/delete.baseline: Removed.
  • stress/internal-promise-constructor-not-confusing.js: Use @isPromise.
  • stress/object-get-own-property-symbols.js: Adjust test as global now has @@toStringTag.
  • test262/expectations.yaml: Mark 6 test cases as passing.

LayoutTests/imported/w3c:

  • web-platform-tests/WebIDL/ecmascript-binding/class-string-interface.any-expected.txt:
  • web-platform-tests/WebIDL/ecmascript-binding/class-string-interface.any.worker-expected.txt:
  • web-platform-tests/WebIDL/ecmascript-binding/class-string-iterator-prototype-object.any-expected.txt:
  • web-platform-tests/WebIDL/ecmascript-binding/class-string-iterator-prototype-object.any.worker-expected.txt:

Source/JavaScriptCore:

Before ES6, Object.prototype.toString relied only on internal Class? slot. Starting with ES6,
Object.prototype.toString checks for a handful of internal slots, mimicing Class?, to ensure
backwards compatibility for pre-ES6 instances. Newly-added built-ins provide @@toStringTag for
the method to use.

Before this change, Object.prototype.toString in JSC relied on className() a.k.a Class? for
all instances. For (almost all) new built-ins, it was overriden by toStringName() returning
"Object", while @@toStringTag was set to correct value. This is quite an error-prone approach
and observable spec discrepancy if @@toStringTag is deleted or set to a non-string.

This change eliminates the above-mentioned discrepancy and fixes Object.prototype.toString
to return "[object Function]" for callable Proxy objects, aligning JSC with the spec [1], V8,
and SpiderMonkey.

For Object.prototype.toString to work through DebuggerScope and JSProxy, we perform all checks
in JSObject::toStringName(). Given that isArray() may throw a TypeError [2], we invoke
toStringName() before @@toStringTag lookup to accomodate revoked Proxy case.

Also, this patch defines @@toStringTag for WebAssembly namespace object (to match Chrome),
JSC shell, and ConsoleObject.

[1]: https://tc39.es/ecma262/#sec-object.prototype.tostring
[2]: https://tc39.es/ecma262/#sec-isarray (step 3.a)

  • jsc.cpp:
  • runtime/BigIntObject.cpp:

(JSC::BigIntObject::toStringName): Deleted.

  • runtime/BigIntObject.h:
  • runtime/BooleanObject.cpp:

(JSC::BooleanObject::toStringName):

  • runtime/BooleanObject.h:
  • runtime/ConsoleObject.cpp:

(JSC::ConsoleObject::finishCreation):

  • runtime/DateInstance.cpp:

(JSC::DateInstance::toStringName):

  • runtime/DateInstance.h:
  • runtime/ErrorInstance.cpp:

(JSC::ErrorInstance::toStringName):

  • runtime/ErrorInstance.h:
  • runtime/JSArrayBufferView.cpp:

(JSC::JSArrayBufferView::toStringName): Deleted.

  • runtime/JSArrayBufferView.h:
  • runtime/JSMap.cpp:

(JSC::JSMap::toStringName): Deleted.

  • runtime/JSMap.h:
  • runtime/JSObject.cpp:

(JSC::JSObject::toStringName):

  • runtime/JSSet.cpp:

(JSC::JSSet::toStringName): Deleted.

  • runtime/JSSet.h:
  • runtime/JSWeakMap.cpp:

(JSC::JSWeakMap::toStringName): Deleted.

  • runtime/JSWeakMap.h:
  • runtime/JSWeakObjectRef.cpp:

(JSC::JSWeakObjectRef::toStringName): Deleted.

  • runtime/JSWeakObjectRef.h:
  • runtime/JSWeakSet.cpp:

(JSC::JSWeakSet::toStringName): Deleted.

  • runtime/JSWeakSet.h:
  • runtime/NumberObject.cpp:

(JSC::NumberObject::toStringName):

  • runtime/NumberObject.h:
  • runtime/ObjectPrototype.cpp:

(JSC::objectProtoFuncToString):

  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::toStringName): Deleted.

  • runtime/ProxyObject.h:
  • runtime/RegExpObject.cpp:

(JSC::RegExpObject::toStringName):

  • runtime/RegExpObject.h:
  • runtime/StringObject.cpp:

(JSC::StringObject::toStringName):

  • runtime/StringObject.h:
  • runtime/SymbolObject.cpp:

(JSC::SymbolObject::toStringName): Deleted.

  • runtime/SymbolObject.h:
  • wasm/js/JSWebAssembly.cpp:

(JSC::JSWebAssembly::finishCreation):

Source/WebCore:

This patch defines @@toStringTag symbols for all WebIDL prototypes, including
interfaces that are not exposed, as required by the spec [1].

With updated JSObject::toStringName() and @@toStringTag symbols added in r260992,
className() and toStringName() methods of JSDOMConstructorBase can be safely removed.

[1]: https://heycam.github.io/webidl/#dfn-class-string

Tests: imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/class-string-interface.any.js

imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/class-string-iterator-prototype-object.any.js

  • bindings/js/JSDOMConstructorBase.cpp:

(WebCore::JSDOMConstructorBase::className): Deleted.
(WebCore::JSDOMConstructorBase::toStringName): Deleted.

  • bindings/js/JSDOMConstructorBase.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GeneratePrototypeDeclaration):

  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::JSTestGlobalObjectPrototype::finishCreation):

Tools:

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:
2:45 AM Changeset in webkit [261158] by Diego Pino Garcia
  • 3 edits
    2 adds
    2 deletes in trunk/LayoutTests

[GTK] Gardening, update baselines after r260889
https://bugs.webkit.org/show_bug.cgi?id=211440

Unreviewed gardening.

  • platform/gtk/fast/canvas/webgl/webgl-compressed-texture-astc-expected.txt: Added.
  • platform/gtk/fast/canvas/webgl/webgl-depth-texture-expected.txt: Added.
  • platform/gtk/fast/xmlhttprequest/xmlhttprequest-nonexistent-file-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/svg/import/animate-elem-77-t-manual-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/svg/import/text-tspan-01-b-manual-expected.txt:
  • platform/gtk/storage/domstorage/sessionstorage/blocked-file-access-expected.txt: Removed.
2:03 AM Changeset in webkit [261157] by timothy_horton@apple.com
  • 5 edits in trunk

Excessive error logging from daemons trying to use WebKit, under -[UIDevice currentDevice]
https://bugs.webkit.org/show_bug.cgi?id=211397
<rdar://problem/61635403>

Reviewed by Simon Fraser.

Source/WebKit:

  • Shared/UserInterfaceIdiom.mm:

(WebKit::userInterfaceIdiomIsPad):
Adjust userInterfaceIdiomIsPad so that in daemons, it consults only MobileGestalt,
which returns the actual hardware model, and does not try to use UIDevice.
UIDevice is more accurate for applications because it will report that
the device is an iPhone when called inside an iPhone app running on iPad,
but it cannot be used in daemons that do not have a UIApplication.

For the behaviors we gate on this bit, it makes sense to use iPhone
behaviors on iPad in the iPhone app jail, so we continue using
UIDevice if possible.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
Make use of the new mechanism instead of going straight to MobileGestalt,
for the aforementioned reasons.

Tools:

  • TestWebKitAPI/ios/UserInterfaceSwizzler.h:

We need a UIApplication or WebKit won't look at UIDevice.

2:01 AM WebKitGTK/Debugging edited by Philippe Normand
(diff)
1:30 AM Changeset in webkit [261156] by ysuzuki@apple.com
  • 6 edits
    2 adds in trunk

[JSC] Implement BigInt.asIntN and BigInt.asUintN
https://bugs.webkit.org/show_bug.cgi?id=181144

Reviewed by Darin Adler.

JSTests:

  • stress/bigint-asintn.js: Added.

(shouldBe):
(shouldThrow):
(BigInt.asIntN):

  • stress/bigint-asuintn.js: Added.

(shouldBe):
(shouldThrow):
(BigInt.asUintN):

  • test262/expectations.yaml:

Source/JavaScriptCore:

This patch implements BigInt.asIntN[1] and BigInt.asUintN[2] features.
As the same to the other BigInt runtime C++ code, we port V8 code to JSC to implement both.

BigInt.asIntN is static_cast<intN_t>(BigInt value) and BigInt.asUintN is static_cast<uintN_t>(BigInt value).
They are getting slice of N bits from two's complement representation of the given BigInt. The difference between
asIntN and asUintN is asIntN renders MSB as a sign.

[1]: https://tc39.es/ecma262/#sec-bigint.asintn
[2]: https://tc39.es/ecma262/#sec-bigint.asuintn

  • runtime/BigIntConstructor.cpp:

(JSC::toBigInt):
(JSC::bigIntConstructorFuncAsUintN):
(JSC::bigIntConstructorFuncAsIntN):

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::zeroImpl):
(JSC::JSBigInt::divideImpl):
(JSC::JSBigInt::unaryMinusImpl):
(JSC::JSBigInt::remainderImpl):
(JSC::JSBigInt::digitDiv):
(JSC::JSBigInt::asIntNImpl):
(JSC::JSBigInt::asUintNImpl):
(JSC::JSBigInt::truncateToNBits):
(JSC::JSBigInt::truncateAndSubFromPowerOfTwo):
(JSC::JSBigInt::asIntN):
(JSC::JSBigInt::asUintN):

  • runtime/JSBigInt.h:
1:19 AM WebKitGTK/Debugging edited by Philippe Normand
(diff)
1:17 AM WebKitGTK/Debugging edited by Philippe Normand
(diff)

May 4, 2020:

11:51 PM Changeset in webkit [261155] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Relax WKRemoteObjectRegistry signature validation for bool-equivalent types
https://bugs.webkit.org/show_bug.cgi?id=211419

Reviewed by Saam Barati.

  • Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:

(blockSignaturesAreCompatible):
(replyBlockSignature):
(-[_WKRemoteObjectRegistry _invokeMethod:]):
(validateReplyBlockSignature): Deleted.
Relax reply block signature validation slightly, considering signed char and BOOL,
which are equivalent and sometimes substituted for each other, to be equal.

This is still stricter than NSXPC's validation, but this is one of the
exceptions that they make.

11:27 PM Changeset in webkit [261154] by mmaxfield@apple.com
  • 4 edits
    1 copy
    1 delete in trunk/LayoutTests

Update svg/batik/text/xmlSpace.svg to yield consistent text metrics
https://bugs.webkit.org/show_bug.cgi?id=211005
<rdar://problem/62312187>

Reviewed by Darin Adler.

The test is rendering a bunch of characters without using a specified font.
This means that Core Text is picking an arbitrary font. However, the
-expected.txt file is measuring exact pixel widths. The solution is to just
give the test an explicit fallback font.

  • platform/ios/TestExpectations:
  • platform/ios/svg/batik/text/xmlSpace-expected.txt:
  • platform/mac/svg/batik/text/xmlSpace-expected.txt:
  • svg/batik/text/xmlSpace-expected.txt: Removed. Platform-specific metrics

shouldn't live outside the platform/ directory.

  • svg/batik/text/xmlSpace.svg:
10:51 PM Changeset in webkit [261153] by Darin Adler
  • 37 edits
    1 delete in trunk

[Mac] Remove MAC_OS_X_VERSION_MIN_REQUIRED checks for versions older than 10.14
https://bugs.webkit.org/show_bug.cgi?id=211420

Reviewed by Alex Christensen.

Source/WebCore:

  • editing/cocoa/DataDetection.mm:

(WebCore::detectItem): Remove MAC_OS_X_VERSION_MIN_REQUIRED >= 101400.

  • editing/cocoa/HTMLConverter.mm:

(_WebMessageDocumentClass): Ditto.

  • platform/graphics/cg/GraphicsContextCG.cpp: Ditto.
  • platform/mac/WebCoreFullScreenPlaceholderView.mm:

(-[WebCoreFullScreenPlaceholderView initWithFrame:]): Ditto.

  • platform/network/cocoa/CookieCocoa.mm:

(WebCore::nsSameSitePolicy): Ditto.
(WebCore::Cookie::operator NSHTTPCookie * _Nullable const): Ditto.

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::cookiesForURL): Ditto.
(WebCore::NetworkStorageSession::setHTTPCookiesForURL const): Ditto.

  • platform/network/cocoa/ResourceRequestCocoa.mm:

(WebCore::ResourceRequest::doUpdateResourceRequest): Ditto.
(WebCore::siteForCookies): Ditto.
(WebCore::ResourceRequest::doUpdatePlatformRequest): Ditto.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintTextField): Ditto.

  • testing/Internals.h: Ditto.

Source/WebCore/PAL:

  • pal/spi/cocoa/NSColorSPI.h: Remove MAC_OS_X_VERSION_MIN_REQUIRED >= 101400.
  • pal/spi/cocoa/QuartzCoreSPI.h: Ditto.
  • pal/spi/mac/DataDetectorsSPI.h: Ditto.
  • pal/spi/mac/NSApplicationSPI.h: Ditto.

Source/WebKit:

  • NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:

(WebKit::Download::resume): Remove MAC_OS_X_VERSION_MIN_REQUIRED >= 101400.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa): Ditto.

  • PluginProcess/mac/PluginProcessMac.mm:

(WebKit::PluginProcess::platformInitializePluginProcess): Ditto.

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:

(WebKit::XPCServiceMain): Ditto.

  • UIProcess/mac/ServicesController.mm:

(WebKit::hasCompatibleServicesForItems): Ditto.

  • UIProcess/mac/WebProcessProxyMac.mm:

(WebKit::WebProcessProxy::shouldAllowNonValidInjectedCode const): Ditto.

Source/WebKitLegacy/mac:

  • WebView/WebHTMLView.mm: Remove MAC_OS_X_VERSION_MIN_REQUIRED >= 101400.

(-[WebHTMLView _recursive:displayRectIgnoringOpacity:inContext:stopAtLayerBackedViews:_recursive:displayRectIgnoringOpacity:inContext:shouldChangeFontReferenceColor:stopAtLayerBackedViews:]): Ditto.
(-[WebHTMLView _recursive:displayRectIgnoringOpacity:inContext:stopAtLayerBackedViews:_recursive:displayRectIgnoringOpacity:inContext:shouldChangeFontReferenceColor:stopAtLayerBackedViews:_recursive:displayRectIgnoringOpacity:inContext:shouldChangeFontReferenceColor:]): Deleted.
(-[WebHTMLView _recursive:displayRectIgnoringOpacity:inGraphicsContext:shouldChangeFontReferenceColor:]): Deleted.

  • WebView/WebTextCompletionController.mm:

(-[WebTextCompletionController _buildUI]): Remove some code only compiled with
MAC_OS_X_VERSION_MIN_REQUIRED < 101400.

Source/WTF:

  • WTF.xcodeproj/project.pbxproj: Removed DeprecatedSymbolsUsedBySafari.mm.
  • wtf/PlatformEnableCocoa.h: Removed MAC_OS_X_VERSION_MIN_REQUIRED >= 101400.
  • wtf/PlatformHave.h: Ditto. This leaves behind some cases of
"PLATFORM(MAC) and tvOS too, eventually. Also "PLATFORM(MAC)
PLATFORM(IOS)" that should probably be turned on for watchOS
PLATFORM(IOS) PLATFORM(MACCATALYST)".
  • wtf/PlatformMac.cmake: Removed DeprecatedSymbolsUsedBySafari.mm.
  • wtf/PlatformUse.h: Removed MAC_OS_X_VERSION_MIN_REQUIRED >= 101400.
  • wtf/mac/DeprecatedSymbolsUsedBySafari.mm: Removed.
  • wtf/spi/darwin/ProcessMemoryFootprint.h: Removed

MAC_OS_X_VERSION_MIN_REQUIRED >= 101400.

Tools:

  • TestWebKitAPI/Tests/WebCore/CtapPinTest.cpp: Remove

MAC_OS_X_VERSION_MIN_REQUIRED >= 101400.

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

Removed code disabling this test for MAC_OS_X_VERSION_MIN_REQUIRED < 101400.

  • TestWebKitAPI/config.h: Removed MAC_OS_X_VERSION_MIN_REQUIRED >= 101400.
  • WebKitTestRunner/InjectedBundle/cocoa/ActivateFontsCocoa.mm:

(WTR::installFakeHelvetica): Removed MAC_OS_X_VERSION_MIN_REQUIRED >= 101400.

10:47 PM Changeset in webkit [261152] by Darin Adler
  • 5 edits in trunk/Source

Remove now-unneeded HAVE(SANDBOX_ISSUE_MACH/READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN)
https://bugs.webkit.org/show_bug.cgi?id=211427

Reviewed by Alex Christensen.

Source/WebKit:

  • Shared/Cocoa/SandboxExtensionCocoa.mm:

(WebKit::SandboxExtensionImpl::sandboxExtensionForType): Remove #if HAVE.

Source/WTF:

  • wtf/PlatformHave.h: Remove both macros mentioned in the title above.
  • wtf/spi/darwin/SandboxSPI.h: Remove #if HAVE.
10:40 PM Changeset in webkit [261151] by Darin Adler
  • 4 edits in trunk/Source

Remove now-unneeded HAVE(AUTHORIZATION_STATUS_FOR_MEDIA_TYPE)
https://bugs.webkit.org/show_bug.cgi?id=211426

Reviewed by Alex Christensen.

Source/WebKit:

  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest):
Remove HAVE(AUTHORIZATION_STATUS_FOR_MEDIA_TYPE).

Source/WTF:

  • wtf/PlatformHave.h: Removed code to set HAVE_AUTHORIZATION_STATUS_FOR_MEDIA_TYPE,

which was doing so on all Cocoa platforms.

10:35 PM Changeset in webkit [261150] by Darin Adler
  • 6 edits in trunk/Source

Remove now-unneeded HAVE(ACCESSIBILITY_SUPPORT)
https://bugs.webkit.org/show_bug.cgi?id=211425

Reviewed by Alex Christensen.

Source/WebCore/PAL:

  • pal/spi/cocoa/AccessibilitySupportSPI.h: Remove HAVE(ACCESSIBILITY_SUPPORT).

Source/WebKit:

  • Platform/spi/Cocoa/AccessibilitySupportSPI.h: Remove HAVE(ACCESSIBILITY_SUPPORT)

and now-unnecessary C include guards.

Source/WTF:

  • wtf/PlatformHave.h: Don't set HAVE_ACCESSIBILITY_SUPPORT. It was on for all

Cocoa platform builds.

10:20 PM Changeset in webkit [261149] by Darin Adler
  • 8 edits in trunk

Remove now-unneeded HAVE(NETWORK_EXTENSION)
https://bugs.webkit.org/show_bug.cgi?id=211424

Reviewed by Alex Christensen.

Source/WebCore:

  • loader/ContentFilter.cpp:

(WebCore::ContentFilter::types): Remove check of HAVE(NETWORK_EXTENSION),
not needed because ENABLE(CONTENT_FILTER) is only done on Cocoa platforms,
and HAVE(NETWORK_EXTENSION) is true for all of those.

  • platform/cocoa/NetworkExtensionContentFilter.mm: Ditto.

Source/WTF:

  • wtf/PlatformHave.h: Don't define HAVE_NETWORK_EXTENSION.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ContentFiltering.mm:

(-[LazilyLoadPlatformFrameworksController expectParentalControlsLoaded:networkExtensionLoaded:]):
Remove check of HAVE(NETWORK_EXTENSION).

  • TestWebKitAPI/Tests/WebKitCocoa/ContentFilteringPlugIn.mm:

(-[ContentFilteringPlugIn checkIfPlatformFrameworksAreLoaded:]): Ditto.

10:10 PM Changeset in webkit [261148] by Darin Adler
  • 6 edits in trunk/Source

Remove now-unneeded HAVE(SEC_TRUST_EVALUATE_WITH_ERROR)
https://bugs.webkit.org/show_bug.cgi?id=211429

Reviewed by Alex Christensen.

Source/WebCore:

  • platform/network/cocoa/ResourceResponseCocoa.mm:

(WebCore::ResourceResponse::platformCertificateInfo const):
Remove HAVE(SEC_TRUST_EVALUATE_WITH_ERROR).

Source/WebKit:

  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(-[WKFullScreenWindowController _EVOrganizationName]):
Remove HAVE(SEC_TRUST_EVALUATE_WITH_ERROR).

Source/WTF:

  • wtf/PlatformHave.h: Don't set HAVE_SEC_TRUST_EVALUATE_WITH_ERROR.
10:05 PM Changeset in webkit [261147] by ysuzuki@apple.com
  • 13 edits
    4 adds in trunk

[JSC] DFG NotCellUse is used without considering about BigInt32
https://bugs.webkit.org/show_bug.cgi?id=211395

Reviewed by Saam Barati.

JSTests:

  • stress/non-cell-nor-bigint-should-be-emitted-for-to-number-target-if-bigint-appears.js: Added.

(shouldThrow):
(test):
(i.shouldThrow):

  • stress/non-cell-nor-bigint-should-reject-bigint.js: Added.

(shouldBe):
(test):

  • stress/should-not-emit-double-rep-for-bigint.js: Added.

(foo):

  • stress/urshift-value-to-int32-should-reject-bigint.js: Added.

(shouldThrow):
(test):
(i.shouldThrow):

Source/JavaScriptCore:

When we see CompareXXX(BigInt32, Double), we are emitting CompareXXX(DoubleRep(BigInt:NotCellUse), Double). But this has two problems.

  1. We should emit CompareXXX(UntypedUse, UntypedUse) in this case.
  2. DoubleRep(NotCellUse) does not support converting BigInt32 to double. Since DoubleRep's semantics is for ToNumber, it should not accept BigInt32 since it should throw an error. However, DoubleRep currently assumes that NotCellUse value can be converted to double without any errors.

To keep DoubleRep's semantics ToNumber, we replace NotCellUse with NotCellNorBigIntUse, which rejects BigInt32. This patch also uses NotCellNorBigIntUse
for ValueToInt32 because of the same reason.

For CompareXXX and CompareEq nodes, we can optimize it if we introduce new DoubleRepAcceptingBigInt32 DFG node which can convert BigInt32 to Double, since
CompareXXX and CompareEq are not requiring toNumber semantics. This should be done in a separate bug https://bugs.webkit.org/show_bug.cgi?id=211407.

  • bytecode/SpeculatedType.h:

(JSC::isNotCellNorBigIntSpeculation):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::fixIntConvertingEdge):
(JSC::DFG::FixupPhase::fixupChecksInBlock):

  • dfg/DFGNode.h:

(JSC::DFG::Node::shouldSpeculateNotCellNorBigInt):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::SafeToExecuteEdge::operator()):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileValueToInt32):
(JSC::DFG::SpeculativeJIT::compileDoubleRep):
(JSC::DFG::SpeculativeJIT::speculateNotCellNorBigInt):
(JSC::DFG::SpeculativeJIT::speculate):

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

(WTF::printInternal):

  • dfg/DFGUseKind.h:

(JSC::DFG::typeFilterFor):
(JSC::DFG::checkMayCrashIfInputIsEmpty):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileDoubleRep):
(JSC::FTL::DFG::LowerDFGToB3::compileValueToInt32):
(JSC::FTL::DFG::LowerDFGToB3::numberOrNotCellNorBigIntToInt32):
(JSC::FTL::DFG::LowerDFGToB3::speculate):
(JSC::FTL::DFG::LowerDFGToB3::speculateNotCellNorBigInt):
(JSC::FTL::DFG::LowerDFGToB3::numberOrNotCellToInt32): Deleted.

9:55 PM Changeset in webkit [261146] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

REGRESSION (r260791?): Assert not reached in ResourceLoadStatisticsDatabaseStore::openAndUpdateSchemaIfNecessary() and ResourceLoadStatisticsDatabaseStore::addMissingTablesIfNecessary()
https://bugs.webkit.org/show_bug.cgi?id=211305
<rdar://problem/62737871>

Reviewed by Alex Christensen.

This patch adds a busy timeout for the ITP database to allow for
some concurrency flexibility when running many WebKitTestRunner tests, which
recreate the ITP database store very often to test both the memory and
database stores.

With the timeout, an attempt to write to the database when another
thread is holding the lock will keep attempting to insert for 5
seconds as long as the statement execution returns SQLITE_BUSY.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::openITPDatabase):

9:50 PM Changeset in webkit [261145] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

TestWebKitAPI.WebKit.CustomDisplayName is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=211299

Patch by Alex Christensen <achristensen@webkit.org> on 2020-05-04
Reviewed by Chris Dumez.

Use a serial queue instead of a concurrent queue to set the web process's display name to prevent race conditions.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::setProcessNameQueue):
(WebKit::WebProcess::updateProcessName):
(WebKit::WebProcess::updateActivePages):

9:42 PM Changeset in webkit [261144] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

[GTK4] Header bars no longer have title and subtitle properties
https://bugs.webkit.org/show_bug.cgi?id=211412

Reviewed by Carlos Garcia Campos.

No new tests needed.

  • UIProcess/Inspector/gtk/WebKitInspectorWindow.cpp: For GTK4 use a vertical

box as title widget, with two labels acting as title and subtitle.
(webkit_inspector_window_init):
(webkitInspectorWindowSetSubtitle):

9:01 PM Changeset in webkit [261143] by Simon Fraser
  • 8 edits in trunk/Source

Code cleanup in EventHandler
https://bugs.webkit.org/show_bug.cgi?id=211413

Reviewed by Tim Horton.

Use a better name for "hoveredNode" which is a HitTestResult.

Convert Frame* to Frame&.

Have a couple of helper functions return RefPtr<Frame>.

  • page/AutoscrollController.cpp:

(WebCore::AutoscrollController::stopAutoscrollTimer):

  • page/EventHandler.cpp:

(WebCore::EventHandler::subframeForHitTestResult):
(WebCore::EventHandler::subframeForTargetNode):
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseDoubleClickEvent):
(WebCore::EventHandler::mouseMoved):
(WebCore::EventHandler::passMouseMovedEventToScrollbars):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::EventHandler::passMousePressEventToScrollbar):
(WebCore::EventHandler::passMousePressEventToSubframe):
(WebCore::EventHandler::passMouseReleaseEventToSubframe):
(WebCore::EventHandler::passWidgetMouseDownEventToWidget):
(WebCore::EventHandler::passMouseMoveEventToSubframe):

  • page/EventHandler.h:
  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::passSubframeEventToSubframe):
(WebCore::EventHandler::passMousePressEventToSubframe):
(WebCore::EventHandler::passMouseMoveEventToSubframe):
(WebCore::EventHandler::passMouseReleaseEventToSubframe):
(WebCore::EventHandler::tryToBeginDragAtPoint):

  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::passSubframeEventToSubframe):
(WebCore::EventHandler::passMousePressEventToSubframe):
(WebCore::EventHandler::passMouseMoveEventToSubframe):
(WebCore::EventHandler::passMouseReleaseEventToSubframe):

  • page/win/EventHandlerWin.cpp:

(WebCore::EventHandler::passMouseMoveEventToSubframe):

8:47 PM Changeset in webkit [261142] by Devin Rousso
  • 1 edit
    4 adds in trunk/Source/WebInspectorUI

Web Inspector: add a tool for viewing UserInterface/Images files
https://bugs.webkit.org/show_bug.cgi?id=211422

Reviewed by Timothy Hatcher.

  • Tools/Images/index.html: Added.
  • Tools/Images/index.css: Added.

(body):
(h1):
(textarea):
(.flex):
(#preview):
(#preview > img):
(#preview > img.light):
(#preview > img.dark):

  • Tools/Images/index.js: Added.

(async loadImage):
(async parseSVG):
(async loadPNG):
(normalizePath):
(changeSize):
(updateURL):

8:19 PM Changeset in webkit [261141] by Ben Nham
  • 11 edits
    4 adds in trunk

IndexedDB WAL file keeps growing while app is in use
https://bugs.webkit.org/show_bug.cgi?id=202137

Reviewed by Brady Eidson.

Source/WebCore:

It's easy to get into a situation where the WAL file associated with a SQLite-backed
IndexedDB grows indefinitely while a site is in use for two reasons:

  1. We don't promptly reset cached prepared statements in SQLiteIDBBackingStore. Many

statements are left hanging in the SQLITE_ROW state without being reset or fully stepped to
the SQLITE_DONE state. These hanging statements keep their associated transactions open and
prevent the WAL checkpointer from progressing past those active transactions.

To fix this, I added SQLiteStatementAutoResetScope. This is a scope guard that
SQLiteIDBBackingStore uses to ensure that cached statements are reset in a timely manner.

While going through the reset code I also noticed we aren't clearing bindings after
resetting statements. We should be doing this because sqlite3_reset does not clear bindings
(and their associated copies of blobs/strings); sqlite3_clear_bindings does that.

  1. The default WAL hook for auto-checkpointing in upstream SQLite uses the

SQLITE_CHECKPOINT_PASSIVE mode, which doesn't truncate the WAL until the next write
transaction occurs. (It actually doesn't truncate at all when compiled with default
settings, but macOS's SQLite sets SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT, which causes the
truncation to occur on the next write.)

We want the WAL to be truncated more promptly, because otherwise the quota check that
happens on each mutation won't be as accurate. To do this, I installed a WAL hook that
truncates the WAL with SQLITE_CHECKPOINT_TRUNCATE after the default threshold of 1000 WAL
pages. I didn't enable this for all SQLiteDatabases because this checkpoint call can block
on the busy handler. This isn't a problem for IDB since we don't use busy handlers in IDB.

  • Headers.cmake:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::getOrEstablishDatabaseInfo):
(WebCore::IDBServer::SQLiteIDBBackingStore::createObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::renameObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::clearObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::createIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedHasIndexRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedPutIndexRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::renameIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::keyExistsInObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteUnusedBlobFileRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::updateAllIndexesForAddRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::addRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getBlobRecordsForObjectStoreRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::cachedStatementForGetAllObjectStoreRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::getAllObjectStoreRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedGetIndexRecordForOneKey):
(WebCore::IDBServer::SQLiteIDBBackingStore::getCount):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedGetKeyGeneratorValue):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedSetKeyGeneratorValue):
(WebCore::IDBServer::SQLiteIDBBackingStore::cachedStatement):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/sql/SQLiteDatabase.cpp:

(WebCore::walAutomaticTruncationHook):
(WebCore::SQLiteDatabase::enableAutomaticWALTruncation):

  • platform/sql/SQLiteDatabase.h:
  • platform/sql/SQLiteStatement.cpp:

(WebCore::SQLiteStatement::reset):

  • platform/sql/SQLiteStatementAutoResetScope.cpp: Added.

(WebCore::SQLiteStatementAutoResetScope::SQLiteStatementAutoResetScope):
(WebCore::SQLiteStatementAutoResetScope::operator=):
(WebCore::SQLiteStatementAutoResetScope::~SQLiteStatementAutoResetScope):

  • platform/sql/SQLiteStatementAutoResetScope.h: Added.

(WebCore::SQLiteStatementAutoResetScope::operator bool const):
(WebCore::SQLiteStatementAutoResetScope::operator! const):
(WebCore::SQLiteStatementAutoResetScope::get):
(WebCore::SQLiteStatementAutoResetScope::operator->):

Tools:

Add a test to make sure that WAL auto-checkpointing actually works.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/IDBCheckpointWAL.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/IDBCheckpointWAL.mm: Added.

(-[IDBCheckpointWALMessageHandler userContentController:didReceiveScriptMessage:]):
(fileSizeAtPath):
(TEST):

8:19 PM Changeset in webkit [261140] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

[iOS] Make sure TestController::statisticsResetToConsistentState() does not hang due to process suspension
https://bugs.webkit.org/show_bug.cgi?id=211421

Reviewed by Maciej Stachowiak.

We have evidence of hangs in TestController::statisticsResetToConsistentState() on iOS and we suspect it
is due to process suspension. To address the issue, this patch updates the IPCs being sent as a result of
a call to statisticsResetToConsistentState() to take a background assertion while waiting for the IPC
response.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::setUseITPDatabase):
(WebKit::NetworkProcessProxy::resetCacheMaxAgeCapForPrevalentResources):
(WebKit::NetworkProcessProxy::resetParametersToDefaultValues):
(WebKit::NetworkProcessProxy::scheduleClearInMemoryAndPersistent):
(WebKit::NetworkProcessProxy::resetCrossSiteLoadsWithLinkDecorationForTesting):
(WebKit::NetworkProcessProxy::setShouldDowngradeReferrerForTesting):
(WebKit::NetworkProcessProxy::setShouldBlockThirdPartyCookiesForTesting):
(WebKit::NetworkProcessProxy::setShouldEnbleSameSiteStrictEnforcementForTesting):
(WebKit::NetworkProcessProxy::setFirstPartyWebsiteDataRemovalModeForTesting):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::setShouldBlockThirdPartyCookiesForTesting):

7:45 PM Changeset in webkit [261139] by Wenson Hsieh
  • 14 edits in trunk

Tapping to focus editable elements should start caret selection at word boundary
https://bugs.webkit.org/show_bug.cgi?id=211409
<rdar://problem/62869098>

Reviewed by Megan Gardner.

Source/WebCore:

Match platform behavior when focusing editable text content by beginning the caret selection at word
granularity (i.e. the start or end of a word), rather than character granularity. This will match behavior of
other editable widgets on iOS (such as UITextField and UITextView), as well as our current behavior when tapping
to change the selection when the text interaction is editable (i.e. when the caret is already visible when
tapping).

Rebaselined existing layout tests.

  • editing/VisibleUnits.cpp:

(WebCore::wordBoundaryForPositionWithoutCrossingLine):

Move logic previously in WebPage::selectWithGesture down into VisibleUnits.h, as a new standalone helper
function. Given a VisiblePosition, this new helper will return the given position if it is either already at
word boundary or line boundary; if it is within the boundary of a word, it will instead return the start or end
of the word.

  • editing/VisibleUnits.h:
  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMousePressEventSingleClick):

When setting the selection due to a synthetic single click, automatically adjust the caret position to be at
word boundary instead of using the hit-tested position directly.

Source/WebKit:

See WebCore/ChangeLog for more details.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::selectWithGesture):

Rewrite this using the new VisibleUnits helper function, wordBoundaryForPositionWithoutCrossingLine.

LayoutTests:

Adjust some existing layout test expectations on iOS, such that tapping to focus input fields places the
selection at the beginning or end of a word.

  • editing/selection/ios/hide-selection-after-hiding-contenteditable-expected.txt:
  • editing/selection/ios/place-selection-in-overflow-area-expected.txt:
  • fast/forms/ios/zoom-after-input-tap-wide-input-expected.txt:
  • platform/ios/editing/deleting/smart-delete-002-expected.txt:
  • platform/ios/editing/deleting/smart-delete-003-expected.txt:
  • platform/ios/editing/deleting/smart-delete-004-expected.txt:
  • platform/ios/editing/pasteboard/smart-paste-008-expected.txt:
6:53 PM Changeset in webkit [261138] by Darin Adler
  • 33 edits in trunk

Make IPHONE_OS_VERSION_MIN_REQUIRED checks against old versions explicit about watchOS and tvOS
https://bugs.webkit.org/show_bug.cgi?id=211402

Reviewed by Alexey Proskuryakov.

Source/WebCore:

  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::attributesForAttributedStringConversion): Move from IPHONE_OS_VERSION_MIN_REQUIRED
to !PLATFORM(WATCHOS) && !PLATFORM(APPLETV). Move NSExcludedElementsDocumentAttribute to
AttributedStringSPI.h.

  • page/SettingsDefaultValues.h: Rewrite conic gradient conditional to call out

tvOS as an exception rather than doing that indirectly through IPHONE_OS_VERSION_MIN_REQUIRED.

  • platform/graphics/cg/GradientCG.cpp:

(WebCore::Gradient::paint): Ditto.

  • platform/graphics/cocoa/FontCacheCoreText.cpp: Rewrite

HAS_CORE_TEXT_WIDTH_ATTRIBUTE to use !PLATFORM(WATCHOS) && !PLATFORM(APPLETV).
(WebCore::variationCapabilitiesForFontDescriptor): Ditto.
(WebCore::FontCache::lastResortFallbackFont): Ditto.

  • platform/graphics/cocoa/FontDescriptionCocoa.cpp:

(WebCore::matchSystemFontUse): Use HAVE(SYSTEM_FONT_STYLE_TITLE_0) and
HAVE(SYSTEM_FONT_STYLE_TITLE_4) instead of IPHONE_OS_VERSION_MIN_REQUIRED.
This consolidates the watchOS/tvOS issue into the PlatformHave.h file, and
does not change behavior at this time.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::cascadeToLastResortAttributesDictionary): Changed this to not use
a global since it's only called as part of initializing another global, and
to return a RetainPtr.
(WebCore::cascadeToLastResortAndVariationsFontDescriptor): Removed
WORKAROUND_CORETEXT_VARIATIONS_WITH_FALLBACK_LIST_BUG after researching to
be sure it's fixed on recent watchOS and tvOS. Also changed this to return
a raw pointer instead of RetainPtr since it returns a single global object.
Also removed the CTFontRef argument.
(WebCore::FontPlatformData::ctFont const): Updated for the changes above.

  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::surfaceID const): Move from IPHONE_OS_VERSION_MIN_REQUIRED
to !PLATFORM(WATCHOS) && !PLATFORM(APPLETV).

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::platformFontWithFamilySpecialCase): Ditto.

  • platform/graphics/mac/FontCustomPlatformData.cpp:

(WebCore::createFontCustomPlatformData): Ditto.

Source/WebCore/PAL:

  • pal/spi/cocoa/NSAttributedStringSPI.h: Moved iOS family version of

NSExcludedElementsDocumentAttribute to this header. For now didn't
change its implementation to match, just moved it as is.

Source/WebKit:

  • NetworkProcess/NetworkActivityTracker.h: Move from IPHONE_OS_VERSION_MIN_REQUIRED

to !PLATFORM(APPLETV). There was already an explicit watchOS case here.

  • Platform/spi/ios/UIKitSPI.h: Move from IPHONE_OS_VERSION_MIN_REQUIRED to

PLATFORM(IOS) in one place, and in the other removed the conditional entirely.
THe one place here that does PLATFORM(IOS) is for a property that is not on
watchOS and tvOS at this time, related to dragging. Decided not to add a comment
about it.

  • Shared/WebPreferencesDefaultValues.h: Move from IPHONE_OS_VERSION_MIN_REQUIRED

to !PLATFORM(APPLETV). There was already an explicit watchOS case here.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(contentOffsetBoundedInValidRange): Move from IPHONE_OS_VERSION_MIN_REQUIRED
to !PLATFORM(WATCHOS) && !PLATFORM(APPLETV).
(-[WKWebView activeViewLayoutSize:]): Ditto.
(-[WKWebView _updateScrollViewInsetAdjustmentBehavior]): Ditto.

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:

(-[WKChildScrollView initWithFrame:]): Ditto.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView gestureRecognizer:canBePreventedByGestureRecognizer:]): Ditto.
(-[WKContentView _showPlaybackTargetPicker:fromRect:routeSharingPolicy:routingContextUID:]): Ditto.

  • UIProcess/ios/WKScrollView.h: Ditto.
  • UIProcess/ios/WKScrollView.mm:

(-[WKScrollView initWithFrame:]): Ditto.

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebEditorClient.mm:

(attributesForAttributedStringConversion): Move from IPHONE_OS_VERSION_MIN_REQUIRED

to PLATFORM(WATCHOS)
PLATFORM(APPLETV).
  • WebView/WebUIDelegatePrivate.h: Move from IPHONE_OS_VERSION_MIN_REQUIRED to

TARGET_OS_IOS for a method that is based on dragging concepts not present in
watchOS and tvOS.

  • WebView/WebView.mm: Move from IPHONE_OS_VERSION_MIN_REQUIRED

to PLATFORM(IOS).

  • WebView/WebViewPrivate.h: Move from IPHONE_OS_VERSION_MIN_REQUIRED to

TARGET_OS_IOS.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/DataDetection.mm:

Remove unneeded IPHONE_OS_VERSION_MIN_REQUIRED check.

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

Move from IPHONE_OS_VERSION_MIN_REQUIRED to
!PLATFORM(WATCHOS) && !PLATFORM(APPLETV).

  • TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:

Move from IPHONE_OS_VERSION_MIN_REQUIRED to
PLATFORM(IOS).

  • TestWebKitAPI/Tests/ios/OverflowScrollViewTests.mm:

Move from IPHONE_OS_VERSION_MIN_REQUIRED to
!PLATFORM(WATCHOS) && !PLATFORM(APPLETV).

  • WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:

(-[TestRunnerWKWebView setOverrideSafeAreaInsets:]): Ditto.

6:43 PM Changeset in webkit [261137] by Peng Liu
  • 4 edits in trunk/Source

Fix the mistake on macro HAVE_SYSTEM_FEATURE_FLAGS
https://bugs.webkit.org/show_bug.cgi?id=211416

Reviewed by Tim Horton.

We should use "#if HAVE(SYSTEM_FEATURE_FLAGS)" instead of "#if HAVE(HAVE_SYSTEM_FEATURE_FLAGS)".
Source/WebCore/PAL:

  • pal/spi/cocoa/FeatureFlagsSPI.h:

Source/WebKit:

And we have to use the function _os_feature_enabled_impl() instead of the macro os_feature_enabled()
because WebKit is a namespace and cannot be used in os_feature_enabled().

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultAsyncFrameAndOverflowScrollingEnabled):
(WebKit::defaultUseGPUProcessForMedia):
(WebKit::defaultRenderCanvasInGPUProcessEnabled):
(WebKit::defaultCaptureAudioInGPUProcessEnabled):
(WebKit::defaultCaptureVideoInGPUProcessEnabled):
(WebKit::defaultWebRTCCodecsInGPUProcess):
(WebKit::defaultWebGL2Enabled):
(WebKit::defaultWebGPUEnabled):
(WebKit::defaultInAppBrowserPrivacy):
(WebKit::defaultIncrementalPDFEnabled):
(WebKit::defaultWebXREnabled):

6:27 PM Changeset in webkit [261136] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Eliminate SecurityServer and OCSPD from the WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=211417
<rdar://problem/46235370>

Reviewed by Per Arne Vollan.

We can now re-block access to these services.

  • WebProcess/com.apple.WebProcess.sb.in:
6:18 PM Changeset in webkit [261135] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit

Unreviewed, reverting r261117.

Broke lots of API tests

Reverted changeset:

"Excessive error logging from daemons trying to use WebKit,
under -[UIDevice currentDevice]"
https://bugs.webkit.org/show_bug.cgi?id=211397
https://trac.webkit.org/changeset/261117

6:03 PM Changeset in webkit [261134] by Darin Adler
  • 5 edits in trunk

[Cocoa] Remove a few unneeded IPHONE_OS_VERSION_MIN_REQUIRED checks
https://bugs.webkit.org/show_bug.cgi?id=211383

Reviewed by Alexey Proskuryakov.

Source/WebKit:

  • UIProcess/ios/forms/WKAirPlayRoutePicker.h: Removed a check against

iOS 11, in code that already explicitly checks for watchOS and tvOS.

Tools:

  • TestWebKitAPI/Tests/WebCore/cocoa/AVFoundationSoftLinkTest.mm:

(TestWebKitAPI::TEST): Removed checks against iOS 12 and 13 in code that
uses PLATFORM(IOS), not PLATFORM(IOS_FAMILY).

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm: Removed a

check against iOS 11 in code using PLATFORM(IOS).

6:00 PM Changeset in webkit [261133] by Darin Adler
  • 31 edits in trunk

Remove HAVE(IOSURFACE) checks in Cocoa-platform-specific code
https://bugs.webkit.org/show_bug.cgi?id=211389

Reviewed by Alexey Proskuryakov.

Source/WebCore:

  • page/cocoa/MemoryReleaseCocoa.mm:

(WebCore::platformReleaseMemory): Remove HAVE(IOSURFACE) since it's always true
on Cocoa platforms.

  • platform/graphics/RemoteVideoSample.cpp:

(WebCore::RemoteVideoSample::surface const): Ditto.

  • platform/graphics/RemoteVideoSample.h: Ditto.
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::allocateIOSurfaceBackingStore): Ditto.
(WebCore::GraphicsContextGLOpenGL::updateFramebufferTextureBackingStoreFromLayer): Ditto.

  • platform/graphics/cocoa/IOSurface.mm: Ditto.
  • platform/graphics/cocoa/IOSurfacePoolCocoa.mm: Ditto.
  • platform/graphics/cocoa/WebGLLayer.h: Ditto.
  • platform/graphics/cocoa/WebGLLayer.mm:

(-[WebGLLayer display]): Ditto.

  • platform/graphics/cv/ImageTransferSessionVT.h: Ditto.
  • platform/graphics/cv/ImageTransferSessionVT.mm: Ditto.
  • platform/graphics/cv/VideoTextureCopierCV.cpp:

(WebCore::YCbCrToRGBMatrixForRangeAndTransferFunction): Ditto.
(WebCore::VideoTextureCopierCV::copyImageToPlatformTexture): Ditto.

  • platform/graphics/cv/VideoTextureCopierCV.h: Ditto.
  • rendering/RenderThemeIOS.h: Ditto.

Source/WebCore/PAL:

  • pal/spi/cocoa/QuartzCoreSPI.h: Remove HAVE(IOSURFACE).

Source/WebKit:

  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:

(WebKit::LibWebRTCCodecsProxy::encodeFrame): Remove HAVE(IOSURFACE) since
this is Cocoa-specific code.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::ensureBackingStore): Ditto.
(WebKit::RemoteLayerBackingStore::clearBackingStore): Ditto.
(WebKit::RemoteLayerBackingStore::encode const): Ditto.
(WebKit::RemoteLayerBackingStore::decode): Ditto.
(WebKit::RemoteLayerBackingStore::bytesPerPixel const): Ditto.
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer): Ditto.
(WebKit::RemoteLayerBackingStore::display): Ditto.
(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer): Ditto.
(WebKit::RemoteLayerBackingStore::setBufferVolatility): Ditto.
(WebKit::RemoteLayerBackingStore::Buffer::discard): Ditto.
(WebKit::RemoteLayerBackingStore::surfaceBufferFormat const): Ditto.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _takeViewSnapshot]): Ditto.
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): Ditto.

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp: Ditto.
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy): Ditto.

  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:

(WebKit::recursivelyMapIOSurfaceBackingStore): Ditto.
(WebKit::RemoteLayerTreeHost::mapAllIOSurfaceBackingStore): Ditto.

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.cpp: Ditto.
  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.h: Ditto.
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:

(WebKit::MediaRecorderPrivate::sampleBufferUpdated): Ditto.

  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp:

(WebKit::LibWebRTCProvider::createDecoderFactory): Ditto.

  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::Source::remoteVideoSampleAvailable): Ditto.
(WebKit::UserMediaCaptureManager::remoteVideoSampleAvailable): Ditto.

Tools:

  • DumpRenderTree/ios/PixelDumpSupportIOS.mm:

(createBitmapContextFromWebView): Remove BEGIN/END_BLOCK_OBJC_EXCEPTIONS
since they are not needed/appropriate in test code. Remove HAVE(IOSURFACE)
since this is Cocoa-specific.

  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:

(WTR::PlatformWebView::windowSnapshotImage): Ditto.

5:59 PM Changeset in webkit [261132] by Simon Fraser
  • 19 edits
    2 copies
    4 adds in trunk

Overflow scrollbars don't grow when hovered
https://bugs.webkit.org/show_bug.cgi?id=210692
<rdar://problem/61977273>

Reviewed by Tim Horton.

Source/WebCore:

Overlay scrollar interaction has a few behaviors that are mediated by ScrollAnimatorMac. These
are a trackpad two-finger tap, which sends a "MayBegin" wheel event (which can be followed by
a "Cancelled" on fingers up, if they didn't move), and hovering the scrollbar when visible, which
causes it to expand (unhovering causes it to fade out).

To track these gestures on the scrolling thread, give ScrollingTree a ScrollingTreeGestureState.

Flashing the scrollbars on "MayBegin" is driven by didBeginScrollGesture()/didEndScrollGesture().
This relies on sending these for the correct scrollable area, and matching the begin/cancel,
so use the normal scrolling tree event handling code path for "MayBegin", and always send
"Cancelled" on the node that received "MayBegin. Do the same for "Began" and "Ended".

Scrollbars expanding on hover is controlled by these functions on ScrollAnimatorMac:

void mouseEnteredContentArea();
void mouseExitedContentArea();
void mouseMovedInContentArea();
void mouseEnteredScrollbar(Scrollbar*) const;
void mouseExitedScrollbar(Scrollbar*) const;

This mostly (webkit.org/b/211347) works now that the mayBegin/Canceled state is updated correctly,
and is tested by a new test.

Tests: fast/scrolling/mac/scrollbars/overflow-overlay-scrollbar-hovered.html

fast/scrolling/mac/scrollbars/overflow-overlay-scrollbar-reveal.html

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

(WebCore::ScrollingTree::ScrollingTree):
(WebCore::ScrollingTree::handleWheelEvent):

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ScrollingTreeGestureState.cpp: Added.

(WebCore::ScrollingTreeGestureState::ScrollingTreeGestureState):
(WebCore::ScrollingTreeGestureState::receivedWheelEvent):
(WebCore::ScrollingTreeGestureState::handleGestureCancel):
(WebCore::ScrollingTreeGestureState::nodeDidHandleEvent):
(WebCore::ScrollingTreeGestureState::clearAllNodes):

  • page/scrolling/ScrollingTreeGestureState.h: Copied from Source/WebCore/page/scrolling/ScrollingTreeLatchingController.h.
  • page/scrolling/ScrollingTreeLatchingController.cpp:

(WebCore::ScrollingTreeLatchingController::nodeDidHandleEvent):

  • page/scrolling/ScrollingTreeLatchingController.h:
  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::canHandleWheelEvent const):
(WebCore::ScrollingTreeScrollingNode::canScrollWithWheelEvent const): Deleted.

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::handleWheelEvent):

  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm:

(WebCore::ScrollingTreeOverflowScrollingNodeMac::handleWheelEvent):

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::handleWheelEvent):

  • platform/Logging.cpp:

(WebCore::initializeLogChannelsIfNecessary):

  • platform/PlatformWheelEvent.h:

(WebCore::PlatformWheelEvent::isGestureStart const):
(WebCore::PlatformWheelEvent::isGestureCancel const):

  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::handleWheelEvent):

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::scrollbarState):

LayoutTests:

  • fast/scrolling/mac/scrollbars/overflow-overlay-scrollbar-hovered-expected.txt: Added.
  • fast/scrolling/mac/scrollbars/overflow-overlay-scrollbar-hovered.html: Added.
  • fast/scrolling/mac/scrollbars/overflow-overlay-scrollbar-reveal-expected.txt: Added.
  • fast/scrolling/mac/scrollbars/overflow-overlay-scrollbar-reveal.html: Copied from LayoutTests/fast/scrolling/mac/scrollbars/overlay-scrollbar-reveal.html.
  • fast/scrolling/mac/scrollbars/overlay-scrollbar-reveal.html:
5:36 PM Changeset in webkit [261131] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, reverting r261102.
https://bugs.webkit.org/show_bug.cgi?id=211418

Revert some debug logging (Requested by smfr on #webkit).

Reverted changeset:

"REGRESSION: [ Mac WK1 ] inspector/console/console-api.html is
flaky crashing"
https://bugs.webkit.org/show_bug.cgi?id=211386
https://trac.webkit.org/changeset/261102

5:31 PM Changeset in webkit [261130] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Drop code path using the legacy CFNetwork cookie change notification SPI
https://bugs.webkit.org/show_bug.cgi?id=211411

Reviewed by John Wilander.

Source/WebCore:

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::NetworkStorageSession::registerCookieChangeListenersIfNecessary):
(WebCore::NetworkStorageSession::unregisterCookieChangeListenersIfNecessary):

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:
5:24 PM Changeset in webkit [261129] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebKit

Use default constructor and default initializer for SecItemRequestData
<https://webkit.org/b/211399>
<rdar://problem/62861551>

Reviewed by Darin Adler.

  • Shared/mac/SecItemRequestData.cpp:
  • Remove default constructor implementation.
  • Shared/mac/SecItemRequestData.h:
  • Use default constructor for class.
  • Use default initializer for m_type.
5:09 PM Changeset in webkit [261128] by ap@apple.com
  • 2 edits in trunk/Tools

block-spammers tool should hide attachments
https://bugs.webkit.org/show_bug.cgi?id=211406

Reviewed by Darin Adler.

The logic is nearly identical to hiding comments. Just need to limit fields in the
search, so that we don't have to download attachment data.

  • Scripts/block-spammers:

(get_comments):
(get_bugs_with_attachments_created_by_user):
(get_attachments):
(hide_comments):
(hide_attachments):
(main):

5:03 PM Changeset in webkit [261127] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Tabs jiggle on click
https://bugs.webkit.org/show_bug.cgi?id=211177
<rdar://problem/62590810>

Reviewed by Devin Rousso.

Currently, tab dragging starts immediately after mouse down. With this patch,
dragging starts only after the mouse cursor moving 12 pixels. This roughly matches
macOS Safari tabs.

  • UserInterface/Views/TabBar.js:

(WI.TabBar):
(WI.TabBar.prototype._handleTabContainerMouseDown):
(WI.TabBar.prototype._handleMouseUp):
(WI.TabBar.prototype._handleTabContainerMouseLeave):

4:55 PM Changeset in webkit [261126] by Jack Lee
  • 3 edits
    2 adds in trunk

Nullptr crash in CompositeEditCommand::moveParagraphs when changing style on elements that are
user-select:none and dir:rtl.
https://bugs.webkit.org/show_bug.cgi?id=211206
<rdar://problem/61830589>

Reviewed by Geoffrey Garen.

Source/WebCore:

In function moveParagraphs check if the destination is an empty position and
bail out before moving the paragraphs.

Test: fast/editing/justify-user-select-none-dir-rtl-crash.html

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::moveParagraphs):

LayoutTests:

Added a regression test for the crash.

  • fast/editing/justify-user-select-none-dir-rtl-crash-expected.txt: Added.
  • fast/editing/justify-user-select-none-dir-rtl-crash.html: Added.
4:37 PM Changeset in webkit [261125] by ysuzuki@apple.com
  • 5 edits in trunk

[JSC] Add @@toStringTag to WebAssembly.Global
https://bugs.webkit.org/show_bug.cgi?id=211372

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/wasm/jsapi/global/toString.any-expected.txt:
  • web-platform-tests/wasm/jsapi/global/toString.any.worker-expected.txt:

Source/JavaScriptCore:

As r260992 did for the other wasm prototypes, we should put @@toStringTag to WebAssembly.Global's prototype too.

  • wasm/js/WebAssemblyGlobalPrototype.cpp:

(JSC::WebAssemblyGlobalPrototype::finishCreation):

4:25 PM Changeset in webkit [261124] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ iPadOS wk2 ] editing/selection/selection-change-in-mutation-event-by-remove-children.html is timing out.
https://bugs.webkit.org/show_bug.cgi?id=208840

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
4:24 PM Changeset in webkit [261123] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

REGRESSION (r259470): Accessibility Stereo to Mono is not working
https://bugs.webkit.org/show_bug.cgi?id=211408
<rdar://problem/62847299>

Reviewed by Per Arne Vollan.

The changes in r259470 regressed our Accessibility features. We need to do a rollout of that
change to restore proper behavior.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
4:22 PM Changeset in webkit [261122] by Devin Rousso
  • 2 edits in trunk/LayoutTests

REGRESSION (r261109): [ Mac ] inspector/css/getAllStyleSheets.html is failing
https://bugs.webkit.org/show_bug.cgi?id=211405
<rdar://problem/62863843>

Unreviewed, remove unnecessary call to function that no longer exists.

  • inspector/css/getAllStyleSheets.html:
4:17 PM Changeset in webkit [261121] by Devin Rousso
  • 2 edits in trunk/LayoutTests

REGRESSION (r261108): [ Mac ] inspector/timeline/timeline-recording.html is failing
https://bugs.webkit.org/show_bug.cgi?id=211404
<rdar://problem/62863766>

Unreviewed, update test expectation.

  • inspector/timeline/timeline-recording-expected.txt:
3:58 PM Changeset in webkit [261120] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS ] webgl/2.0.0/conformance/extensions/webgl-draw-buffers.html has been timing out ever since it was introduced.
https://bugs.webkit.org/show_bug.cgi?id=208524

Unreviewed test gardening: Removing expectations.

  • platform/mac-wk1/TestExpectations:
3:51 PM Changeset in webkit [261119] by Alan Coon
  • 1 copy in tags/Safari-610.1.11.7

Tag Safari-610.1.11.7.

3:26 PM Changeset in webkit [261118] by jiewen_tan@apple.com
  • 8 edits in trunk/Source

[WebAuthn] Implement +[_WKWebAuthenticationPanel clearAllLocalAuthenticatorCredentials]
https://bugs.webkit.org/show_bug.cgi?id=211369
<rdar://problem/60246635>

Reviewed by Brent Fulgham.

Source/WebCore:

Covered by manual tests given auto tests could clear developers' actual credentials.

  • Modules/webauthn/WebAuthenticationConstants.h:

Source/WebKit:

Adds a new SPI for UI clients to clear all existing credentials from the keychain.

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(+[_WKWebAuthenticationPanel clearAllLocalAuthenticatorCredentials]):

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.h:
  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::clearAllCredentials):

  • UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:

(WebKit::LocalConnection::createCredentialPrivateKey const):

3:11 PM Changeset in webkit [261117] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit

Excessive error logging from daemons trying to use WebKit, under -[UIDevice currentDevice]
https://bugs.webkit.org/show_bug.cgi?id=211397
<rdar://problem/61635403>

Reviewed by Simon Fraser.

  • Shared/UserInterfaceIdiom.mm:

(WebKit::userInterfaceIdiomIsPad):
Adjust userInterfaceIdiomIsPad so that in daemons, it consults only MobileGestalt,
which returns the actual hardware model, and does not try to use UIDevice.
UIDevice is more accurate for applications because it will report that
the device is an iPhone when called inside an iPhone app running on iPad,
but it cannot be used in daemons that do not have a UIApplication.

For the behaviors we gate on this bit, it makes sense to use iPhone
behaviors on iPad in the iPhone app jail, so we continue using
UIDevice if possible.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
Make use of the new mechanism instead of going straight to MobileGestalt,
for the aforementioned reasons.

3:08 PM Changeset in webkit [261116] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Stop hard-coding get-task-allow entitlement for simulator builds
https://bugs.webkit.org/show_bug.cgi?id=211392

Reviewed by Geoffrey Garen.

Stop hard-coding get-task-allow entitlement for simulator builds and let Xcode inject it as needed.

  • Configurations/BaseXPCService.xcconfig:
  • Resources/ios/XPCService-embedded-simulator.entitlements:
3:00 PM Changeset in webkit [261115] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

REGRESSION (JazzkonE): ResourceLoadStatisticsDatabaseStore checks 'hasHadUserInteraction' without ensuring the domain has been added to the ITP database (211388)
https://bugs.webkit.org/show_bug.cgi?id=211388
<rdar://problem/62849919>

Reviewed by John Wilander.

A spurious log entry is created if we check 'hasHadUserInteraction' before inserting a row for the domain
being checked (if that domain had not previosly been observed). This patch changes the order of the two
commands to avoid this possibility. This makes the database implementation behave like the in-memory version.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::logUserInteraction):

2:58 PM Changeset in webkit [261114] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Reduce AlternativeService assertion to debug-only assert
https://bugs.webkit.org/show_bug.cgi?id=211263
<rdar://problem/61354813>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-05-04
Reviewed by Chris Dumez.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
This is asserting sometimes. No need to crash. Reduce to debug-only assert.

2:24 PM Changeset in webkit [261113] by commit-queue@webkit.org
  • 45 edits
    1 add in trunk

Throttling requestAnimationFrame should be controlled by RenderingUpdateScheduler
https://bugs.webkit.org/show_bug.cgi?id=204713

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-05-04
Reviewed by Simon Fraser.

Source/WebCore:

rAF and Page rendering were managed by two different timers. Throttling
rAF was implemented by changing its timer. After r242624, RenderingUpdate
steps have been managed by RenderingUpdateScheduler. This means rAF is
now serviced by the preferredFramesPerSecond which is 60 fps regardless
it's throttled or not. Moreover the rAF throttling timer was mistakenly
kept and it has been running under the old assumption which is: rAF is
serviced by a timer only. This means rAF will be serviced by its timer
and by the RenderingUpdate steps at the same time when it is supposed to
throttle. This will make it fire more than 60 fps in cases which it is
supposed to run less than 60 fps.

The solution is to have two throttling types:

1) Page throttling (or full throttling): This slows down all the steps

of RenderingUpdate for the main document and all the sub-documents.
Page throttling reasons are:
-- VisuallyIdle: Aggressive throttling.
-- LowPowerMode: Half speed throttling.

2) Document throttling (or partial throttling): This only slows down the

rAF of a certain document. Document throttling reasons are:
-- OutsideViewport: Aggressive throttling.
-- NonInteractedCrossOriginFrame: Half speed throttling.

RenderingUpdate steps will still be managed by RenderingUpdateScheduler
which can be throttled. The assumption is none of these steps will need
to run faster than the Page preferredFramesPerSecond. If rAF wants to
run slower than the Page because of a Document throttling reason, no rAF
callbacks will be serviced before its preferredFrameInterval has elapsed.

In this patch, "Half speed throttling" is only implemented for the Page
and the Document throttling. The "Aggressive throttling" will be done in
following patches. Page rendering was never throttled before. We need to
make sure this is not going to affect PLT. Some tests need to be changed
and new tests need to be written. All of the throttling tests checks the
state of the code but none of them checks the real user's experience.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::animationInterval const):
(WebCore::DocumentTimeline::updateThrottlingState): Deleted.

  • animation/DocumentTimeline.h:

There is no need to have DocumentTimeline throttling. It is already
throttled when the page RenderingUpdate is throttled.

  • dom/Document.cpp:

(WebCore::Document::requestAnimationFrame):
(WebCore::Document::updateLastHandledUserGestureTimestamp):
LowPowerMode throttling is now handled by the Page. So remove its handling
from the Document.

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::ScriptedAnimationController):
(WebCore::ScriptedAnimationController::page const):
(WebCore::ScriptedAnimationController::interval const):
(WebCore::ScriptedAnimationController::preferredScriptedAnimationInterval const):
(WebCore::ScriptedAnimationController::throttlingReasons const):
(WebCore::ScriptedAnimationController::isThrottledRelativeToPage const):
(WebCore::ScriptedAnimationController::shouldRescheduleRequestAnimationFrame const):
(WebCore::ScriptedAnimationController::registerCallback):
(WebCore::ScriptedAnimationController::cancelCallback):
(WebCore::ScriptedAnimationController::serviceRequestAnimationFrameCallbacks):
(WebCore::ScriptedAnimationController::scheduleAnimation):
(WebCore::throttlingReasonToString): Deleted.
(WebCore::throttlingReasonsToString): Deleted.
(WebCore::ScriptedAnimationController::addThrottlingReason): Deleted.
(WebCore::ScriptedAnimationController::removeThrottlingReason): Deleted.
(WebCore::ScriptedAnimationController::isThrottled const): Deleted.
(WebCore::ScriptedAnimationController::animationTimerFired): Deleted.

  • dom/ScriptedAnimationController.h:

(WebCore::ScriptedAnimationController::addThrottlingReason):
(WebCore::ScriptedAnimationController::removeThrottlingReason):
Get rid of the rAF throttling timer. Service the rAF callback only when
the period from the current time stamp till the last service time stamp
is greater than the preferred rAF interval.

  • page/FrameView.cpp:

(WebCore::FrameView::updateScriptedAnimationsAndTimersThrottlingState):
ThrottlingReason is now defined outside ScriptedAnimationController.

  • page/Page.cpp:

(WebCore::m_loadsFromNetwork):
(WebCore::Page::setLowPowerModeEnabledOverrideForTesting):

(WebCore::Page::preferredRenderingUpdateInterval const):
Calculate the preferred RenderingUpdate interval from the throttling
reasons.

(WebCore::Page::setIsVisuallyIdleInternal):
(WebCore::Page::handleLowModePowerChange):
Call adjustRenderingUpdateFrequency() when isLowPowerModeEnabled or
IsVisuallyIdle is toggled.

(WebCore::Page::isLowPowerModeEnabled const): Deleted.
(WebCore::updateScriptedAnimationsThrottlingReason): Deleted.

  • page/Page.h:

(WebCore::Page::isLowPowerModeEnabled const):
(WebCore::Page::throttlingReasons const):
(WebCore::Page::canUpdateThrottlingReason const):

  • page/RenderingUpdateScheduler.cpp:

(WebCore::RenderingUpdateScheduler::setPreferredFramesPerSecond):
(WebCore::RenderingUpdateScheduler::scheduleAnimation):
(WebCore::RenderingUpdateScheduler::adjustRenderingUpdateFrequency):
Change the preferredFramesPerSecond of the DisplayRefreshMonitor if the
throttling is not aggressive e.g. 10_s. Otherwise use the timer.

(WebCore::RenderingUpdateScheduler::scheduleTimedRenderingUpdate):
Call adjustFramesPerSecond() when DisplayRefreshMonitor is created.

(WebCore::RenderingUpdateScheduler::startTimer):

  • page/RenderingUpdateScheduler.h:
  • platform/graphics/AnimationFrameRate.h: Added.

(WebCore::preferredFrameInterval):
(WebCore::preferredFramesPerSecond):
(WebCore::operator<<):
Push names of ThrottlingReasons to a TextStream.

  • platform/graphics/DisplayRefreshMonitor.h:

(WebCore::DisplayRefreshMonitor::setPreferredFramesPerSecond):

  • platform/graphics/DisplayRefreshMonitorManager.cpp:

(WebCore::DisplayRefreshMonitorManager::monitorForClient):
Rename createMonitorForClient() to monitorForClient() since it may return
a cached DisplayRefreshMonitor.

(WebCore::DisplayRefreshMonitorManager::setPreferredFramesPerSecond):
(WebCore::DisplayRefreshMonitorManager::scheduleAnimation):
(WebCore::DisplayRefreshMonitorManager::windowScreenDidChange):
No need to call registerClient(). This function was just ensuring the
DisplayRefreshMonitor is created. scheduleAnimation() does the same thing.

(WebCore::DisplayRefreshMonitorManager::createMonitorForClient): Deleted.
(WebCore::DisplayRefreshMonitorManager::registerClient): Deleted.

  • platform/graphics/DisplayRefreshMonitorManager.h:

(WebCore::DisplayRefreshMonitorManager::DisplayRefreshMonitorManager): Deleted.

  • platform/graphics/GraphicsLayerUpdater.cpp:

(WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):

  • platform/graphics/ios/DisplayRefreshMonitorIOS.mm:

(-[WebDisplayLinkHandler setPreferredFramesPerSecond:]):
Set the preferredFramesPerSecond of the CADisplayLink.

  • testing/Internals.cpp:

(WebCore::Internals::requestAnimationFrameThrottlingReasons const):
(WebCore::Internals::isRequestAnimationFrameThrottled const): Deleted.

  • testing/Internals.h:
  • testing/Internals.idl:

Replace isRequestAnimationFrameThrottled() which returns a boolean by
requestAnimationFrameThrottlingReasons() which returns a string. The
string represents the throttling reasons.

Source/WebKit:

Create an IPC message on the DrawingArea to send a message from the
WebProcess to the UIProcess to setPreferredFramesPerSecond of the
DisplayRefreshMonitor.

  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.messages.in:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:

(-[WKOneShotDisplayLinkHandler setPreferredFramesPerSecond:]):
(WebKit::RemoteLayerTreeDrawingAreaProxy::setPreferredFramesPerSecond):
Set the preferredFramesPerSecond of the CADisplayLink.

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm:

(WebKit::RemoteLayerTreeDisplayRefreshMonitor::setPreferredFramesPerSecond):
Forward the call to RemoteLayerTreeDrawingArea.

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::setPreferredFramesPerSecond):
Send the IPC message from the WebProcess to the UIProcess.

LayoutTests:

  • fast/animation/request-animation-frame-throttle-inside-overflow-scroll-expected.txt:
  • fast/animation/request-animation-frame-throttle-inside-overflow-scroll.html:
  • fast/animation/request-animation-frame-throttle-subframe-display-none-expected.txt:
  • fast/animation/request-animation-frame-throttle-subframe-display-none.html:
  • fast/animation/request-animation-frame-throttle-subframe-expected.txt:
  • fast/animation/request-animation-frame-throttle-subframe-zero-size-expected.txt:
  • fast/animation/request-animation-frame-throttle-subframe-zero-size.html:
  • fast/animation/request-animation-frame-throttle-subframe.html:
  • fast/animation/request-animation-frame-throttling-detached-iframe-expected.txt:
  • fast/animation/request-animation-frame-throttling-detached-iframe.html:

Replace the call isRequestAnimationFrameThrottled() by requestAnimationFrameThrottlingReasons().

  • fast/animation/request-animation-frame-throttling-lowPowerMode-expected.txt:
  • fast/animation/request-animation-frame-throttling-lowPowerMode.html:

Ensure the actual rAF interval is > 30ms for lowPowerMode.

  • http/tests/frame-throttling/raf-throttle-in-cross-origin-subframe-expected.txt:
  • http/tests/frame-throttling/raf-throttle-in-cross-origin-subframe.html:
  • http/tests/frame-throttling/resources/requestAnimationFrame-frame.html:

Replace the call isRequestAnimationFrameThrottled() by requestAnimationFrameThrottlingReasons().

2:04 PM Changeset in webkit [261112] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

TestWebKitAPI.WebKit.CustomDisplayName is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=211299

Patch by Alex Christensen <achristensen@webkit.org> on 2020-05-04
Reviewed by Chris Dumez.

Sometimes the task queued in WebProcess::updateProcessName happens after the one in WebProcess::updateActivePages.
Schedule them on the same queue so they happen in deterministic order so we get reliable process names eventually.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::updateActivePages):

1:41 PM Changeset in webkit [261111] by Alan Coon
  • 8 edits in branches/safari-610.1.11-branch/Source

Versioning.

1:21 PM Changeset in webkit [261110] by Darin Adler
  • 11 edits in trunk

Remove unneeded USE(MEDIAREMOTE)
https://bugs.webkit.org/show_bug.cgi?id=211385

Reviewed by Eric Carlson.

Source/WebCore:

  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::updateNowPlayingInfo): Remove USE(MEDIAREMOTE).

  • platform/mac/MediaRemoteSoftLink.cpp: Ditto.
  • platform/mac/MediaRemoteSoftLink.h: Ditto.
  • platform/mac/RemoteCommandListenerMac.mm:

(WebCore::RemoteCommandListenerMac::updateSupportedCommands): Ditto.
(WebCore::RemoteCommandListenerMac::RemoteCommandListenerMac): Ditto.
(WebCore::RemoteCommandListenerMac::~RemoteCommandListenerMac): Ditto.

Source/WebCore/PAL:

  • pal/spi/mac/MediaRemoteSPI.h: Removed check of USE(MEDIAREMOTE).

Also got rid of has_include for MRNowPlayingTypes.h and moved
it down into the normal sections below.

Source/WTF:

  • wtf/PlatformUse.h: Don't set USE_MEDIAREMOTE.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/NowPlaying.mm: Reverse conditional so it's

consistently listing which platforms we do *not* compile the test on.

1:14 PM Changeset in webkit [261109] by Devin Rousso
  • 19 edits
    4 deletes in trunk/Source/WebInspectorUI

Web Inspector: drop support for iOS 9.*
https://bugs.webkit.org/show_bug.cgi?id=211314

Reviewed by Daniel Bates.

  • UserInterface/Controllers/BreakpointPopoverController.js:

(WI.BreakpointPopoverController.prototype._createPopoverContent):

  • UserInterface/Controllers/CSSManager.js:

(WI.CSSManager):
(WI.CSSManager.prototype.preferredInspectorStyleSheetForFrame):
(WI.CSSManager.prototype._mainResourceDidChange):
(WI.CSSManager.prototype._fetchInfoForAllStyleSheets):
(WI.CSSManager.prototype.fetchStyleSheetsIfNeeded): Deleted.
(WI.CSSManager.prototype.preferredInspectorStyleSheetForFrame.documentNodeAvailable): Deleted.
(WI.CSSManager.prototype.preferredInspectorStyleSheetForFrame.bodyNodeAvailable): Deleted.
(WI.CSSManager.prototype.preferredInspectorStyleSheetForFrame.cssRuleAvailable): Deleted.

  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager.prototype._scopeChainNodeFromPayload):

  • UserInterface/Controllers/LayerTreeManager.js:

(WI.LayerTreeManager.prototype.set showPaintRects):

  • UserInterface/Controllers/TimelineManager.js:

(WI.TimelineManager.prototype.initializeTarget):
(WI.TimelineManager.defaultTimelineTypes):
(WI.TimelineManager.availableTimelineTypes):
(WI.TimelineManager.prototype.set autoCaptureOnPageLoad):
(WI.TimelineManager.prototype._processRecord):
(WI.TimelineManager.prototype._attemptAutoCapturingForFrame):

  • UserInterface/Models/CSSCompletions.js:

(WI.CSSCompletions.initializeCSSCompletions):

  • UserInterface/Models/DOMNodeStyles.js:

(WI.DOMNodeStyles.prototype.refresh):

  • UserInterface/Models/HeapAllocationsInstrument.js:

(WI.HeapAllocationsInstrument):
(WI.HeapAllocationsInstrument.supported): Deleted.

  • UserInterface/Models/MemoryInstrument.js:

(WI.MemoryInstrument): Deleted.
(WI.MemoryInstrument.supported): Deleted.

  • UserInterface/Models/NativeFunctionParameters.js:
  • UserInterface/Models/ScriptInstrument.js:

(WI.ScriptInstrument.prototype.startInstrumentation):
(WI.ScriptInstrument.prototype.stopInstrumentation):

  • UserInterface/Models/ScriptSyntaxTree.js:

(WI.ScriptSyntaxTree.functionReturnDivot):

  • UserInterface/Models/ScriptTimelineRecord.js:

(WI.ScriptTimelineRecord):
(WI.ScriptTimelineRecord.prototype._initializeProfileFromPayload):

  • UserInterface/Protocol/DebuggerObserver.js:

(WI.DebuggerObserver.prototype.scriptParsed):

  • UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js: Removed.
  • UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js: Removed.
  • UserInterface/Views/ScriptClusterTimelineView.js:

(WI.ScriptClusterTimelineView):
(WI.ScriptClusterTimelineView.createPathComponent):
(WI.ScriptClusterTimelineView.prototype.reset):
(WI.ScriptClusterTimelineView.prototype.showProfile):
(WI.ScriptClusterTimelineView.prototype._canShowProfileView): Deleted.

  • UserInterface/Views/ScriptDetailsTimelineView.js:

(WI.ScriptDetailsTimelineView):

  • UserInterface/Views/SearchSidebarPanel.js:

(WI.SearchSidebarPanel.prototype.performSearch):

  • UserInterface/Views/TimelineRecordingContentView.js:

(WI.TimelineRecordingContentView.prototype._startUpdatingCurrentTime):
(WI.TimelineRecordingContentView.prototype._recordingTimesUpdated):

  • Versions/Inspector-iOS-9.0.json: Removed.
  • Versions/Inspector-iOS-9.3.json: Removed.
1:12 PM Changeset in webkit [261108] by Devin Rousso
  • 22 edits
    2 deletes in trunk/Source/WebInspectorUI

Web Inspector: drop support for iOS 8.*
https://bugs.webkit.org/show_bug.cgi?id=211312

Reviewed by Daniel Bates.

  • UserInterface/Controllers/DOMManager.js:

(WI.DOMManager.prototype.highlightSelector):

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager.prototype.resourceRequestWillBeSent):

  • UserInterface/Controllers/RuntimeManager.js:

(WI.RuntimeManager.prototype.initializeTarget):
(WI.RuntimeManager.prototype.evaluateInInspectedWindow):

  • UserInterface/Controllers/TimelineManager.js:

(WI.TimelineManager.defaultTimelineTypes):
(WI.TimelineManager.prototype._loadNewRecording):

  • UserInterface/Models/DOMNodeStyles.js:

(WI.DOMNodeStyles.parseSelectorListPayload):

  • UserInterface/Models/FPSInstrument.js:

(WI.FPSInstrument): Deleted.
(WI.FPSInstrument.supported): Deleted.

  • UserInterface/Models/ObjectPreview.js:

(WI.ObjectPreview.fromPayload):

  • UserInterface/Models/ProfileNode.js:

(WI.ProfileNode):
(WI.ProfileNode.prototype.get startTime):
(WI.ProfileNode.prototype.get endTime):
(WI.ProfileNode.prototype.computeCallInfoForTimeRange):
(WI.ProfileNode.prototype.get calls): Deleted.
(WI.ProfileNode.prototype.computeCallInfoForTimeRange.totalTimeInRange): Deleted.

  • UserInterface/Models/Resource.js:

(WI.Resource.prototype.get initiatedResources):
(WI.Resource.prototype.get originalRequestWillBeSentTimestamp): Deleted.

  • UserInterface/Models/ResourceTimingData.js:

(WI.ResourceTimingData.fromPayload):

  • UserInterface/Models/ScriptTimelineRecord.js:

(WI.ScriptTimelineRecord.prototype._initializeProfileFromPayload.profileNodeFromPayload):

  • UserInterface/Models/TimelineRecording.js:

(WI.TimelineRecording):
(WI.TimelineRecording.prototype.computeElapsedTime):
(WI.TimelineRecording.prototype.setLegacyBaseTimestamp): Deleted.

  • UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js: Removed.
  • UserInterface/Protocol/RemoteObject.js:

(WI.RemoteObject.fromPayload):
(WI.RemoteObject.prototype.getDisplayablePropertyDescriptors):

  • UserInterface/Protocol/Target.js:

(WI.Target.prototype.initialize):

  • UserInterface/Views/ObjectTreePropertyTreeElement.js:

(WI.ObjectTreePropertyTreeElement.prototype._updateProperties):
(WI.ObjectTreePropertyTreeElement):

  • UserInterface/Views/ObjectTreeView.js:

(WI.ObjectTreeView.prototype._updateProperties):

  • UserInterface/Views/ScriptTimelineDataGridNode.js:

(WI.ScriptTimelineDataGridNode.prototype.get data):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WI.SourceCodeTextEditor.prototype._createTypeTokenAnnotator):
(WI.SourceCodeTextEditor.prototype._createBasicBlockAnnotator):

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel.prototype._updatePauseReasonSection):

  • UserInterface/Views/TimelineOverview.js:

(WI.TimelineOverview):

  • UserInterface/Views/TimelineTabContentView.js:

(WI.TimelineTabContentView):
(WI.TimelineTabContentView.prototype.closed):
(WI.TimelineTabContentView.prototype.restoreFromCookie):

  • Versions/Inspector-iOS-8.0.json: Removed.
1:02 PM Changeset in webkit [261107] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Remove unneeded check for Apple Media Services
https://bugs.webkit.org/show_bug.cgi?id=211391
<rdar://problem/62853199>

Reviewed by Per Arne Vollan.

Earlier in the development cycle we added an entitlement check for AppleMediaServices, that we now realize
we do not need. Since this is a non-zero performance cost, remove this check.

  • UIProcess/WebPageProxy.cpp:
1:00 PM Changeset in webkit [261106] by eric.carlson@apple.com
  • 4 edits in trunk/LayoutTests

(r261004) platform/mac/media/media-source/media-source-change-source.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=211326
<rdar://problem/62751237>

Unreviewed, skip new test on platforms where it is expected to fail.

Set explicitly timeout before checking initial audio session category so it will fail
with an error message if it takes too long to run. Skip the test in the GPU process, because
audio session is not yet fully supported, and on WK1 because audio session is a singleton.

  • gpu-process/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac/media/media-source/media-source-change-source.html: Added.
12:58 PM Changeset in webkit [261105] by Devin Rousso
  • 17 edits
    4 deletes in trunk/Source/WebInspectorUI

Web Inspector: drop support for iOS 10.*
https://bugs.webkit.org/show_bug.cgi?id=211318

Reviewed by Daniel Bates.

  • UserInterface/Controllers/DOMDebuggerManager.js:

(WI.DOMDebuggerManager.supportsDOMBreakpoints):
(WI.DOMDebuggerManager.prototype._updateDOMBreakpoint):

  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager.prototype.async initializeTarget):
(WI.DebuggerManager.prototype.debuggerDidResume):

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager.prototype.initializeTarget):
(WI.NetworkManager.prototype.webSocketWillSendHandshakeRequest):
(WI.NetworkManager.prototype.resourceRequestDidReceiveResponse):
(WI.NetworkManager.prototype.markResourceRequestAsServedFromMemoryCache): Deleted.

  • UserInterface/Controllers/RuntimeManager.js:

(WI.RuntimeManager.prototype.initializeTarget):

  • UserInterface/Models/Resource.js:

(WI.Resource.prototype.legacyMarkServedFromMemoryCache): Deleted.
(WI.Resource.prototype.legacyMarkServedFromDiskCache): Deleted.

  • UserInterface/Models/ResourceTimingData.js:

(WI.ResourceTimingData.fromPayload):

  • UserInterface/Models/WebSocketResource.js:

(WI.WebSocketResource.prototype.addFrame):

  • UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js: Removed.
  • UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js: Removed.
  • UserInterface/Protocol/NetworkObserver.js:

(WI.NetworkObserver.prototype.requestServedFromCache): Deleted.

  • UserInterface/Protocol/PageObserver.js:

(WI.PageObserver.prototype.frameClearedScheduledNavigation):
(WI.PageObserver):
(WI.PageObserver.prototype.javascriptDialogOpening): Deleted.
(WI.PageObserver.prototype.javascriptDialogClosed): Deleted.
(WI.PageObserver.prototype.scriptsEnabled): Deleted.

  • UserInterface/Views/LogContentView.js:

(WI.LogContentView.prototype._garbageCollect):

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView):

  • UserInterface/Views/NetworkTimelineView.js:

(WI.NetworkTimelineView):

  • UserInterface/Views/ResourceDetailsSidebarPanel.js:

(WI.ResourceDetailsSidebarPanel.prototype._refreshRequestAndResponse):

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel):

  • UserInterface/Views/WebSocketContentView.js:

(WI.WebSocketContentView):
(WI.WebSocketContentView.prototype._addRow):

  • Versions/Inspector-iOS-10.0.json: Removed.
  • Versions/Inspector-iOS-10.3.json: Removed.
  • UserInterface/Protocol/CSSObserver.js:

(WI.CSSObserver.prototype.namedFlowCreated):
(WI.CSSObserver.prototype.namedFlowRemoved):
(WI.CSSObserver.prototype.regionOversetChanged):
(WI.CSSObserver.prototype.registeredNamedFlowContentElement):
(WI.CSSObserver.prototype.unregisteredNamedFlowContentElement):
Fix compatibility comments.

12:51 PM Changeset in webkit [261104] by Devin Rousso
  • 19 edits in trunk

Web Inspector: Worker: should use the name of the worker if it exists
https://bugs.webkit.org/show_bug.cgi?id=211244

Reviewed by Brian Burg.

Source/JavaScriptCore:

  • inspector/protocol/Worker.json:

Include the name in Worker.workerCreated.

Source/WebCore:

Test: inspector/worker/runtime-basic.html

Pass the name from the WorkerOptions given to the Worker when it's constructed to Web
Inspector so it can be used in the frontend UI.

Drive-by: replace lots of pointers with references.

  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):

  • workers/WorkerInspectorProxy.h:

(WebCore::WorkerInspectorProxy::name const): Added.

  • workers/WorkerInspectorProxy.cpp:

(WebCore::WorkerInspectorProxy::workerStarted):
(WebCore::WorkerInspectorProxy::workerTerminated):
(WebCore::WorkerInspectorProxy::connectToWorkerInspectorController):
(WebCore::WorkerInspectorProxy::sendMessageFromWorkerToFrontend):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::workerStarted):
(WebCore::InspectorInstrumentation::workerTerminated):

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::workerStartedImpl):
(WebCore::InspectorInstrumentation::workerTerminatedImpl):

  • inspector/agents/InspectorWorkerAgent.h:
  • inspector/agents/InspectorWorkerAgent.cpp:

(WebCore::InspectorWorkerAgent::sendMessageFromWorkerToFrontend):
(WebCore::InspectorWorkerAgent::workerStarted):
(WebCore::InspectorWorkerAgent::workerTerminated):
(WebCore::InspectorWorkerAgent::connectToAllWorkerInspectorProxiesForPage):
(WebCore::InspectorWorkerAgent::connectToWorkerInspectorProxy):
(WebCore::InspectorWorkerAgent::disconnectFromWorkerInspectorProxy):

Source/WebInspectorUI:

  • UserInterface/Protocol/WorkerObserver.js:

(WI.WorkerObserver.prototype.workerCreated):

  • UserInterface/Controllers/WorkerManager.js:

(WI.WorkerManager.prototype.workerCreated):

  • UserInterface/Protocol/WorkerTarget.js:

(WI.WorkerTarget):
(WI.WorkerTarget.prototype.get customName): Added.
(WI.WorkerTarget.prototype.get displayName):
(WI.WorkerTarget.prototype.get displayURL): Added.
Use the name from the WorkerOptions given to the Worker when it's constructed as the
displayName of the WI.WorkerTarget if able. Also exposed via get customName.

  • UserInterface/Views/ScriptTreeElement.js:

(WI.ScriptTreeElement):

  • UserInterface/Views/WorkerTreeElement.js:

(WI.WorkerTreeElement):
Accept an options optional object that can be used to override the mainTitle.

LayoutTests:

  • inspector/worker/runtime-basic.html:
  • inspector/worker/runtime-basic-expected.txt:
12:51 PM Changeset in webkit [261103] by Devin Rousso
  • 27 edits
    4 adds in trunk

Web Inspector: provide a way for inspector to turn on/off ITP debug mode and AdClickAttribution debug mode
https://bugs.webkit.org/show_bug.cgi?id=209763

Reviewed by Brian Burg.

Source/JavaScriptCore:

  • inspector/protocol/Page.json:

Add new enum values to Page.Setting:

  • AdClickAttributionDebugModeEnabled
  • ITPDebugModeEnabled

Source/WebCore:

Tests: inspector/page/overrideSetting-AdClickAttributionDebugModeEnabled.html

inspector/page/overrideSetting-ITPDebugModeEnabled.html

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::overrideSetting):

  • inspector/InspectorClient.h:

(WebCore::InspectorClient::setDeveloperPreferenceOverride): Added.
(WebCore::InspectorClient::setMockCaptureDevicesEnabledOverride): Deleted.

Source/WebInspectorUI:

  • UserInterface/Base/Main.js:

(WI._handleDeviceSettingsTabBarButtonClicked):
Add a new section to the device settings popover:

Enable: [ ] ITP Debug Mode

[ ] Ad Click Attribution Debug Mode

  • Localizations/en.lproj/localizedStrings.js:

Source/WebKit:

Generalize the setMockCaptureDevicesEnabledOverride to be setDeveloperPreferenceOverride
that uses an enum WebCore::InspectorClient::DeveloperPreference to know what to do.

Communicate with the NetworkProcess (from the WebProcess via the UIProcess) in the case of:

  • AdClickAttributionDebugModeEnabled
  • ITPDebugModeEnabled
  • WebProcess/Inspector/WebInspectorClient.h:
  • WebProcess/Inspector/WebInspectorClient.cpp:

(WebKit::WebInspectorClient::setDeveloperPreferenceOverride): Added.
(WebKit::WebInspectorClient::setMockCaptureDevicesEnabledOverride): Deleted.

  • WebProcess/Inspector/WebInspector.h:
  • WebProcess/Inspector/WebInspector.cpp:

(WebKit::WebInspector::setDeveloperPreferenceOverride): Added.
(WebKit::WebInspector::setMockCaptureDevicesEnabledOverride): Deleted.

  • UIProcess/Inspector/WebInspectorProxy.messages.in:
  • UIProcess/Inspector/WebInspectorProxy.h:
  • UIProcess/Inspector/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::setDeveloperPreferenceOverride): Added.
(WebKit::WebInspectorProxy::setMockCaptureDevicesEnabledOverride): Deleted.

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::setAdClickAttributionDebugMode): Added.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::setAdClickAttributionDebugMode): Added.

  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::setAdClickAttributionDebugMode): Added.

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:

(WebKit::ResourceLoadStatisticsStore::setResourceLoadStatisticsDebugMode):

LayoutTests:

  • inspector/page/overrideSetting-AdClickAttributionDebugModeEnabled.html: Added.
  • inspector/page/overrideSetting-AdClickAttributionDebugModeEnabled-expected.txt: Added.
  • inspector/page/overrideSetting-ITPDebugModeEnabled.html: Added.
  • inspector/page/overrideSetting-ITPDebugModeEnabled-expected.txt: Added.
12:49 PM Changeset in webkit [261102] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

REGRESSION: [ Mac WK1 ] inspector/console/console-api.html is flaky crashing
https://bugs.webkit.org/show_bug.cgi?id=211386

Reviewed by David Kilzer.

Add some temporary logging code to get data from Mojave bots related to this
NSScrollerImp crash.

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::dumpPaintersWithDelegates):
(WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
(WebCore::ScrollAnimatorMac::~ScrollAnimatorMac):
(WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
(WebCore::ScrollAnimatorMac::willRemoveVerticalScrollbar):
(WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):
(WebCore::ScrollAnimatorMac::willRemoveHorizontalScrollbar):

12:46 PM Changeset in webkit [261101] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Catalina] ASSERTION FAILED: Unsafe to ref/deref from different threads seen with TestWebKitAPI.MultipleClientCertificateConnections.Failure
https://bugs.webkit.org/show_bug.cgi?id=211300

Patch by Alex Christensen <achristensen@webkit.org> on 2020-05-04
Reviewed by Youenn Fablet.

RequestData references are stored in blocks given to the network framework, which does things on background threads.
To make them safe to ref and deref on non-main threads, make RequestData ThreadSafeRefCounted.

  • TestWebKitAPI/cocoa/HTTPServer.mm:
12:44 PM Changeset in webkit [261100] by Doug Kelly
  • 2 edits in trunk/Source/WebCore

Add additional null checks to MediaPlayerPrivateMediaSourceAVFObjC
https://bugs.webkit.org/show_bug.cgi?id=211134
<rdar://problem/62056577>

Reviewed by Daniel Bates.

Add additional null checks for a set m_mediaSourcePrivate to MediaPlayerPrivateMediaSourceAVFObjC. Most uses in this
class are already guarded, but a few were not, which could lead to a null pointer crash if encountered.

No new tests; no functional changes.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playInternal):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setCDMSession):

12:28 PM Changeset in webkit [261099] by Chris Dumez
  • 3 edits
    1 add in trunk/Source/WebKit

[iOS] Unable to take RunningBoard process assertions in the iOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=211254
<rdar://problem/62674074>

Reviewed by Geoffrey Garen.

Add com.apple.runningboard.assertions.webkit entitlement to iOS Simulator builds so that
we can take RunningBoard assertions on those platforms too.

While doing this, I found that we were not adding the entitlements properly for simulator
builds. For simulator builds, entitlements go into an entitlements section of the binary,
rather than in the signature. Use CODE_SIGN_ENTITLEMENTS directive in xcconfig so that
XCode does the right thing for simulator builds.

  • Configurations/BaseXPCService.xcconfig:
  • Resources/ios/XPCService-embedded-simulator.entitlements: Added.
  • Scripts/process-entitlements.sh:
12:18 PM Changeset in webkit [261098] by Darin Adler
  • 5 edits in trunk/Source

Remove now-unneded HAVE(WINDOW_SERVER_OCCLUSION_NOTIFICATIONS)
https://bugs.webkit.org/show_bug.cgi?id=211380

Reviewed by Sam Weinig.

Source/WebKit:

  • UIProcess/mac/WindowServerConnection.h: Don't check

HAVE(WINDOW_SERVER_OCCLUSION_NOTIFICATIONS) in this Mac-only header.
Also removed #pragma once in this header that is only included from .mm files.

  • UIProcess/mac/WindowServerConnection.mm: Wrapped the whole file in

PLATFORM(MAC) because this is macOS-specific code that may be compiled on
iOS family platforms. Could wrap it in HAVE(WINDOW_SERVER) instead, but we
don't have anything like that and PageClientImplMac.mm, the client of this
code, uses PLATFORM(MAC).
(WebKit::registerOcclusionNotificationHandler): Ditto.
(WebKit::WindowServerConnection::WindowServerConnection): Ditto.

Source/WTF:

  • wtf/PlatformHave.h: Don't define HAVE_WINDOW_SERVER_OCCLUSION_NOTIFICATIONS.
12:04 PM Changeset in webkit [261097] by Darin Adler
  • 2 edits in trunk/Source/WTF

Remove unused USE(COREAUDIO)
https://bugs.webkit.org/show_bug.cgi?id=211384

Reviewed by Alex Christensen.

  • wtf/PlatformUse.h: Don't define USE_COREAUDIO.
11:52 AM Changeset in webkit [261096] by Darin Adler
  • 5 edits in trunk/Source

Remove now-unneeded HAVE(UI_REMOTE_VIEW)
https://bugs.webkit.org/show_bug.cgi?id=211382

Reviewed by Alex Christensen.

Source/WebKit:

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm:

(WebKit::createRemoteView): Deleted.
(WebKit::RemoteLayerTreeHost::makeNode): After researching to be sure the method
is present in the relevant versions of iOS 13, changed this code to use the
initWithFrame:pid:contextID: method without doing a selector check, and also
without a HAVE(UI_REMOTE_VIEW) conditional.

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: Removed the

HAVE(UI_REMOTE_VIEW) conditional.

Source/WTF:

  • wtf/PlatformHave.h: Remove code to define HAVE_UI_REMOTE_VIEW.
11:47 AM Changeset in webkit [261095] by Darin Adler
  • 4 edits in trunk/Source

Remove now-unneeded HAVE(MENU_CONTROLLER_SHOW_HIDE_API)
https://bugs.webkit.org/show_bug.cgi?id=211381

Reviewed by Alex Christensen.

Source/WebKit:

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _handleDOMPasteRequestWithResult:]): Use hideMenuFromView: directly.
(-[WKContentView _requestDOMPasteAccessWithElementRect:originIdentifier:completionHandler:]):
Use showMenuFromView: directly.
(-[WKContentView showGlobalMenuControllerInRect:]): Deleted.
(-[WKContentView hideGlobalMenuController]): Deleted.

Source/WTF:

  • wtf/PlatformHave.h: Remove code to set HAVE_MENU_CONTROLLER_SHOW_HIDE_API.
11:41 AM Changeset in webkit [261094] by Darin Adler
  • 4 edits in trunk/Source

Remove now-unneeded HAVE(VOUCHERS)
https://bugs.webkit.org/show_bug.cgi?id=211379

Reviewed by Alex Christensen.

Source/WebKit:

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:

(WebKit::XPCServiceInitializer): Remove HAVE(VOUCHERS) checks from this
Cocoa-only source file.

Source/WTF:

  • wtf/PlatformHave.h: Remove definition of HAVE_VOUCHERS.
11:26 AM Changeset in webkit [261093] by Darin Adler
  • 9 edits in trunk

Remove now-unneeded HAVE(MEDIA_PLAYER)
https://bugs.webkit.org/show_bug.cgi?id=211378

Reviewed by Alex Christensen.

Source/WebCore:

  • platform/RemoteCommandListener.cpp: Remove uneeded check for HAVE(MEDIA_PLAYER)

in code that already checks for Cocoa platforms explicitly.

  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::MediaSessionManageriOS::configureWireLessTargetMonitoring): Removed
check of HAVE(MEDIA_PLAYER) in a Cocoa-only source file.

  • platform/ios/RemoteCommandListenerIOS.h: Ditto. Also removed #pragma once and

some other unnecessary things because this is only included in the .mm file below.

  • platform/ios/RemoteCommandListenerIOS.mm: Ditto.

Source/WTF:

  • wtf/PlatformHave.h: Remove code that sets HAVE_MEDIA_PLAYER.

Tools:

  • TestWebKitAPI/Tests/WebCore/cocoa/AVFoundationSoftLinkTest.mm:

(TestWebKitAPI::TEST): Removed HAVE(MEDIA_PLAYER) check since it's now always
true in Objective-C source files.

11:24 AM Changeset in webkit [261092] by Darin Adler
  • 4 edits in trunk

Remove unused HAVE(STRINGS_H)
https://bugs.webkit.org/show_bug.cgi?id=211377

Reviewed by Alex Christensen.

.:

  • Source/cmake/OptionsCommon.cmake: Remove code to set HAVE_STRINGS_H.

Source/WTF:

  • wtf/PlatformHave.h: Remove code to set HAVE_STRINGS_H.
11:18 AM Changeset in webkit [261091] by commit-queue@webkit.org
  • 5 edits in trunk

Source/WebCore:
WebGPU: Textures should be able to have OUTPUT_ATTACHMENT | SAMPLED usage flags
https://bugs.webkit.org/show_bug.cgi?id=211345
<rdar://problem/62264423>

Patch by Guillem Vinals <gvinals@apple.com> on 2020-05-04
Reviewed by Myles C. Maxfield.

Added support for off-screen render targets.

Test: webgpu/textures-textureviews.html

  • platform/graphics/gpu/cocoa/GPUTextureMetal.mm:

(WebCore::mtlTextureUsageForGPUTextureUsageFlags):

LayoutTests:
WebGPU: Textures should be able to have OUTPUT_ATTACHEMENT | SAMPLED usage flags
https://bugs.webkit.org/show_bug.cgi?id=211345

Patch by Guillem Vinals <gvinals@apple.com> on 2020-05-04
Reviewed by Myles C. Maxfield.

  • webgpu/textures-textureviews-expected.txt:
  • webgpu/textures-textureviews.html:
11:00 AM Changeset in webkit [261090] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

TestWebKitAPI.WebKit.CustomDisplayName is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=211299

Patch by Alex Christensen <achristensen@webkit.org> on 2020-05-04
Reviewed by Darin Adler.

The application name is being set on a background queue, but there's nothing actually keeping the NSString alive.
This may fix some timeouts we were seeing. I wonder why ASAN or guard malloc didn't catch this yet.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::updateProcessName):

11:00 AM Changeset in webkit [261089] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

WebGPU: copyTextureToTexture() has an implementation bug (src copy view info is used also as dst)
https://bugs.webkit.org/show_bug.cgi?id=211303

Patch by Guillem Vinals <gvinals@apple.com> on 2020-05-04
Reviewed by Daniel Bates.

Source/WebCore:

The source copy information is also used as the destination copy information.

Test: webgpu/blit-commands-texture-to-texture.html

  • platform/graphics/gpu/cocoa/GPUCommandBufferMetal.mm:

(WebCore::GPUCommandBuffer::copyTextureToTexture):

LayoutTests:

  • webgpu/blit-commands-texture-to-texture-expected.html: Added.
  • webgpu/blit-commands-texture-to-texture.html: Added.
  • webgpu/js/webgpu-functions.js:

(drawGreenMipChainOnRedBackgroundInSoftware):

9:55 AM Changeset in webkit [261088] by Darin Adler
  • 8 edits in trunk/Source

Remove no-longer-needed HAVE(UISCENE)
https://bugs.webkit.org/show_bug.cgi?id=211376

Reviewed by Chris Dumez.

Source/WebKit:

  • Platform/spi/ios/UIKitSPI.h: Don't check HAVE(UISCENE) any more in this

iOS-family-only source file; it's always true.

  • UIProcess/ApplicationStateTracker.h: Ditto.
  • UIProcess/ApplicationStateTracker.mm:

(WebKit::ApplicationStateTracker::ApplicationStateTracker): Ditto.
(WebKit::ApplicationStateTracker::~ApplicationStateTracker): Ditto.

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView interfaceOrientation]): Ditto.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView textEffectsWindow]): Ditto.

Source/WTF:

  • wtf/PlatformHave.h: Don't define HAVE_UISCENE any more.

It's always true for PLATFORM(IOS_FAMILY).

8:58 AM Changeset in webkit [261087] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[WPE][GTK] Should install python3-secretstorage
https://bugs.webkit.org/show_bug.cgi?id=207473

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-05-04
Reviewed by Adrian Perez de Castro.

If python3-secretstorage is not installed, webkit-patch will use a custom encrypted file
for password storage instead of utilizing the system keyring. This means unnecessary
password prompts to unlock the custom encrypted key storage.

There is no benefit to using custom key storage over the system keyring.

  • gtk/install-dependencies:
  • wpe/install-dependencies:
8:46 AM Changeset in webkit [261086] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening.

  • fast/sandbox/ios/sandbox-mach-lookup-mail-expected.txt:
8:35 AM Changeset in webkit [261085] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening.

  • fast/sandbox/ios/sandbox-mach-lookup-mail-expected.txt:
8:28 AM Changeset in webkit [261084] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Media controls tracks menu shows "Auto" selected instead of track selected via the JS API
https://bugs.webkit.org/show_bug.cgi?id=211230
<rdar://problem/62648409>

Patch by Antoine Quint <Antoine Quint> on 2020-05-04
Reviewed by Eric Carlson.

Source/WebCore:

Test: media/modern-media-controls/tracks-support/tracks-support-text-track-selected-via-media-api.html

We're fixing two issues with the captions menu on macOS here.

First, if a text track was marked as "showing" with the JS API, we would not show it as selected in the UI
because MediaControlsHost would report that the captionDisplayMode was "automatic" and we'd take this as
sufficient data to say that the "Automatic (Recommended)" item should be shown as selected. We now only
do this if we also don't have any text tracks set as "showing".

The second issue was when trying to select "Automatic (Recommended)" when a text track had been marked as
"showing" with the JS API. Calling setSelectedTextTrack() on MediaControlsHost in this case was not sufficient
because HTMLMediaElement::setSelectedTextTrack is a no-op if the automatic text track is provided but captionDisplayMode
is still set to "automatic". To address this, we first disable all text tracks before calling setSelectedTextTrack().

  • Modules/modern-media-controls/media/tracks-support.js:

(TracksSupport.prototype.tracksPanelIsTrackInSectionSelected):
(TracksSupport.prototype.tracksPanelSelectionDidChange):

LayoutTests:

Add a test that:

  • sets an embedded text track as selected via the HTMLMediaElement TextTrack APIs,
  • brings up the tracks panel,
  • dumps its initial UI state, checking that the track selected via the API shows as selected in the UI,
  • selects the "Automatic (Recommended)" track,
  • brings up the tracks panel again,
  • dumps its current UI state, checking that the "Automatic (Recommended)" shows as selected in the UI.
  • media/modern-media-controls/tracks-support/tracks-support-text-track-selected-via-media-api-expected.txt: Added.
  • media/modern-media-controls/tracks-support/tracks-support-text-track-selected-via-media-api.html: Added.
7:59 AM Changeset in webkit [261083] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][TFC] Override the table computed height when content needs more space
https://bugs.webkit.org/show_bug.cgi?id=211367

Reviewed by Antti Koivisto.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):

7:53 AM Changeset in webkit [261082] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][TFC] Use distributeAvailableSpace for row sizing
https://bugs.webkit.org/show_bug.cgi?id=211366

Reviewed by Antti Koivisto.

Switch over to the generic space distribution for table row sizing.

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::RowSpan::hasSpan):
(WebCore::Layout::RowSpan::isSpanned):
(WebCore::Layout::RowSpan::spanCount):
(WebCore::Layout::RowSpan::startSpan):
(WebCore::Layout::RowSpan::endSpan):
(WebCore::Layout::RowSpan::index):
(WebCore::Layout::RowSpan::size):
(WebCore::Layout::RowSpan::spacing):
(WebCore::Layout::distributeAvailableSpace):
(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraVerticalSpace):

7:35 AM Changeset in webkit [261081] by Andres Gonzalez
  • 13 edits in trunk

Add WTR::AccessibilityUIElement::attributeValueAsync to retrieve attribute values in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=211341

Reviewed by Chris Fleizach.

Tools:

To simulate running WebAccessibilityObjectWrapper methods on the secondary
thread, WTR::AccessibilityUIElement dispatches those calls to the AX
thread. But some WebAccessibilityObjectWrapper calls cannot be fulfilled
on the secondary thread and in turn have to be dispatched to the main
thread. This was causing a thread lock during LayoutTests in isolated
tree mode since the initial dispatch to the secondary thread blocks the
main thread. The solution in this patch is to add an asynchronous
mechanism to retrieve attribute values.

  • Added WTR::AccessibilityUIElement::attributeValueAsync.
  • Made several fixes consisting of retaining variables in the main

thread whose values are computed on the secondary thread.

  • WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:

(WTR::AccessibilityController::executeOnAXThreadAndWait):
(WTR::AccessibilityController::executeOnAXThread):
(WTR::AccessibilityController::executeOnMainThread):
(WTR::AXThread::dispatchBarrier):
(WTR::AccessibilityController::executeOnAXThreadIfPossible): Renamed executeOnAXThreadAndWait.

  • WebKitTestRunner/InjectedBundle/AccessibilityController.h:
  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityCommonMac.h:
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityCommonMac.mm:

(WTR::webAccessibilityObjectWrapperClass):
(WTR::makeArrayRefForArray):
(WTR::makeObjectRefForDictionary):
(WTR::makeValueRefForValue):
(WTR::searchPredicateParameterizedAttributeForSearchCriteria):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityControllerMac.mm:

(WTR::AccessibilityController::accessibleElementById):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityNotificationHandler.mm:

(-[AccessibilityNotificationHandler startObserving]):
(-[AccessibilityNotificationHandler _notificationReceived:]):
(webAccessibilityObjectWrapperClass): Moved to AccessibilityCommonMac.
(makeValueRefForValue): Moved to AccessibilityCommonMac.
(makeArrayRefForArray): Moved to AccessibilityCommonMac.
(makeObjectRefForDictionary): Moved to AccessibilityCommonMac.

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::supportedAttributes):
(WTR::attributeValue):
(WTR::setAttributeValue):
(WTR::attributesOfElement):
(WTR::AccessibilityUIElement::getChildrenWithRange):
(WTR::AccessibilityUIElement::elementAtPoint):
(WTR::AccessibilityUIElement::indexOfChild):
(WTR::AccessibilityUIElement::selectedChildrenCount const):
(WTR::AccessibilityUIElement::attributeValueAsync):
(WTR::AccessibilityUIElement::selectTextWithCriteria):

LayoutTests:

This test exercises the new WTR::AccessibilityUIElement::atributeValueAsync method.
Instead of using shouldBeTrue that does not work with local variables,
uses debug to log results.

  • accessibility/mac/primary-screen-height-expected.txt:
  • accessibility/mac/primary-screen-height.html:
7:13 AM Changeset in webkit [261080] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Camera video samples have a bad orientation if upside down
https://bugs.webkit.org/show_bug.cgi?id=211373

Reviewed by Eric Carlson.

Manually tested on iPad and iPhones.

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::computeSampleRotation):
-90 should be the same as 270 not -270.

1:57 AM Changeset in webkit [261079] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Unreviewed, reverting r261076.
https://bugs.webkit.org/show_bug.cgi?id=211371

Triggers obscure X11 error on GTK bots (Requested by philn on
#webkit).

Reverted changeset:

"[Flatpak SDK] Query the doc portal path with DBus"
https://bugs.webkit.org/show_bug.cgi?id=211281
https://trac.webkit.org/changeset/261076

1:31 AM Changeset in webkit [261078] by Philippe Normand
  • 3 edits in trunk/Tools

[Flatpak SDK] Support for local repository and drive-by fixes
https://bugs.webkit.org/show_bug.cgi?id=211370

Reviewed by Žan Doberšek.

This patch adds a new --repo option to webkit-flatpak, allowing
SDK developers to test local changes made to the SDK. As future
versions of the SDK will depend on the ffmpeg FDO extension,
flatpakutils installs it from now on. One consequence is that the
LD_LIBRARY_PATH set in the GTK layout test driver is no longer
overriden when running in the flatpak SDK, in order to allow the
extension to set it correctly.

  • Scripts/webkitpy/port/gtk.py:

(GtkPort.setup_environ_for_server):

  • flatpak/flatpakutils.py:

(FlatpakRepos.add):
(FlatpakRepo.repo_file):
(WebkitFlatpak.load_from_args):
(WebkitFlatpak.init):
(WebkitFlatpak.clean_args):
(WebkitFlatpak._reset_repository):
(WebkitFlatpak.run_in_sandbox):
(WebkitFlatpak._get_packages):
(run_in_sandbox_if_available):

1:27 AM Changeset in webkit [261077] by ysuzuki@apple.com
  • 4 edits in trunk/Source

Unreviewed, speculative build fix for r261071
https://bugs.webkit.org/show_bug.cgi?id=211274

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:
1:23 AM Changeset in webkit [261076] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[Flatpak SDK] Query the doc portal path with DBus
https://bugs.webkit.org/show_bug.cgi?id=211281

Patch by Philippe Normand <pnormand@igalia.com> on 2020-05-04
Reviewed by Žan Doberšek.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox):

12:28 AM Changeset in webkit [261075] by ysuzuki@apple.com
  • 3 edits in trunk/Source/WebCore

[gtk] isMainThread() assert when running minibrowser in debug builds.
https://bugs.webkit.org/show_bug.cgi?id=211355

Reviewed by Mark Lam.

Using NeverDestroyed<const AtomString> is discouraged if it is in the non main thread. This can be quite easily wrong:
if the running thread is one of WorkerPool, then this is wrong since AtomStringTable will be destroyed every time underlying
Thread is shutdown. If this is invoked by AutomaticThread, this is also wrong due to the same reason etc. This is why
we introduced MainThreadNeverDestroyed and use it for const AtomString. This restriction found the bug that we are using
NeverDestroyed<const AtomString> in non main thread. We should not do that.

This patch fixes the issue by introducing TextureMapperShaderProgram::Variable instead of using AtomString. Then this code
no longer has thread affinity.

  • platform/graphics/texmap/TextureMapperShaderProgram.cpp:

(WebCore::TextureMapperShaderProgram::getLocation): Deleted.

  • platform/graphics/texmap/TextureMapperShaderProgram.h:
12:16 AM Changeset in webkit [261074] by emilio
  • 18 edits in trunk

Put lh / rlh units behind a flag until bug 211351 is sorted out.
https://bugs.webkit.org/show_bug.cgi?id=211356

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-values/lh-rlh-on-root-001.html: Enable the flag in relevant tests.
  • web-platform-tests/css/css-values/lh-unit-001.html:
  • web-platform-tests/css/css-values/lh-unit-002.html:

Source/WebCore:

  • css/parser/CSSParserToken.cpp: Use the new runtime flag to disable parsing the units.

(WebCore::cssPrimitiveValueUnitFromTrie):

  • page/RuntimeEnabledFeatures.h: Define the new runtime flag.

(WebCore::RuntimeEnabledFeatures::setLineHeightUnitsEnabled):
(WebCore::RuntimeEnabledFeatures::lineHeightUnitsEnabled const):

Source/WebKit:

  • Shared/WebPreferences.yaml: Define the runtime flag.

Source/WebKitLegacy/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences lineHeightUnitsEnabled]):
(-[WebPreferences setLineHeightUnitsEnabled:]):

  • WebView/WebView.mm:

Tools:

  • DumpRenderTree/TestOptions.cpp:

(TestOptions::TestOptions):

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

(setWebPreferencesForTestOptions):

12:13 AM Changeset in webkit [261073] by mark.lam@apple.com
  • 2 edits in trunk/Source/WTF

Remove some unused and broken functions in Bitmap.
https://bugs.webkit.org/show_bug.cgi?id=211368

Reviewed by Yusuke Suzuki.

Bitmap::operator[] never worked. There's currently no way to use it to read a
bit value. We also can't use it to set a bit value because it relies on
Bitmap::iterator::operator= to set the value. However, Bitmap::iterator stores
the Bitmap* as a const pointer, and Bitmap::iterator::operator= calls set() on
the const pointer. If we try to use operator[] to set a bit, we'll get a
compilation error.

This patch removes the 2 variants of Bitmap::operator[] and Bitmap::iterator::operator=.

  • wtf/Bitmap.h:

(WTF::WordType>::operator): Deleted.
(WTF::WordType>::operator const const): Deleted.

12:07 AM Changeset in webkit [261072] by Patrick Griffis
  • 2 edits in trunk/Tools

[Flatpak SDK] Misc flatpakutils.py fixes
https://bugs.webkit.org/show_bug.cgi?id=211032

Reviewed by Philippe Normand.

Pass SSLKEYLOGFILE into sandbox which is useful for debugging with Wireshark.

Sanitize G_MESSAGES_DEBUG env var when checking output of flatpak command.

Fix check for --noninteractive support.

Fix python 3 exception when setting up icecc mixing strings and bytes.

  • flatpak/flatpakutils.py:

(Console.warning_message):
(flatpak_check_output):
(check_flatpak):
(FlatpakObject.flatpak):

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox):

Note: See TracTimeline for information about the timeline view.